[Pkg-gtkpod-devel] r194 - in gtkpod/trunk: . debian po scripts src

djpig at alioth.debian.org djpig at alioth.debian.org
Wed Jun 27 21:27:14 UTC 2007


Author: djpig
Date: 2007-06-27 21:27:12 +0000 (Wed, 27 Jun 2007)
New Revision: 194

Added:
   gtkpod/trunk/data/
   gtkpod/trunk/intltool-extract.in
   gtkpod/trunk/intltool-merge.in
   gtkpod/trunk/intltool-update.in
   gtkpod/trunk/po/POTFILES.skip
   gtkpod/trunk/scripts/convert-flac2m4a.sh
   gtkpod/trunk/scripts/convert-flac2mp3.sh
   gtkpod/trunk/scripts/convert-m4a2mp3.sh
   gtkpod/trunk/scripts/convert-mp32m4a.sh
   gtkpod/trunk/scripts/convert-ogg2m4a.sh
   gtkpod/trunk/scripts/convert-ogg2mp3.sh
   gtkpod/trunk/scripts/convert-wav2m4a.sh
   gtkpod/trunk/scripts/convert-wav2mp3.sh
   gtkpod/trunk/src/autodetection.c
   gtkpod/trunk/src/autodetection.h
   gtkpod/trunk/src/display_coverart.c
   gtkpod/trunk/src/display_coverart.h
   gtkpod/trunk/src/display_tracks.c
   gtkpod/trunk/src/fetchcover.c
   gtkpod/trunk/src/fetchcover.h
   gtkpod/trunk/src/file_convert.c
   gtkpod/trunk/src/file_convert.h
   gtkpod/trunk/src/flacfile.c
   gtkpod/trunk/src/flacfile.h
   gtkpod/trunk/src/oggfile.c
   gtkpod/trunk/src/oggfile.h
   gtkpod/trunk/src/sha1.c
   gtkpod/trunk/src/sha1.h
Removed:
   gtkpod/trunk/gtkpod.glade
   gtkpod/trunk/gtkpod.gladep
   gtkpod/trunk/pixmaps/
   gtkpod/trunk/po/de.gmo
   gtkpod/trunk/po/es.gmo
   gtkpod/trunk/po/fr.gmo
   gtkpod/trunk/po/gtkpod.pot
   gtkpod/trunk/po/he.gmo
   gtkpod/trunk/po/it.gmo
   gtkpod/trunk/po/ja.gmo
   gtkpod/trunk/po/sv.gmo
   gtkpod/trunk/src/display_songs.c
   gtkpod/trunk/src/md5.c
   gtkpod/trunk/src/md5.h
Modified:
   gtkpod/trunk/ChangeLog
   gtkpod/trunk/INSTALL
   gtkpod/trunk/Makefile.am
   gtkpod/trunk/Makefile.in
   gtkpod/trunk/README
   gtkpod/trunk/TODOandBUGS.txt
   gtkpod/trunk/aclocal.m4
   gtkpod/trunk/autogen.sh
   gtkpod/trunk/config.h.in
   gtkpod/trunk/configure
   gtkpod/trunk/configure.in
   gtkpod/trunk/debian/changelog
   gtkpod/trunk/po/Makefile.in.in
   gtkpod/trunk/po/POTFILES.in
   gtkpod/trunk/po/de.po
   gtkpod/trunk/po/es.po
   gtkpod/trunk/po/fr.po
   gtkpod/trunk/po/he.po
   gtkpod/trunk/po/it.po
   gtkpod/trunk/po/ja.po
   gtkpod/trunk/po/sv.po
   gtkpod/trunk/scripts/Makefile.am
   gtkpod/trunk/scripts/Makefile.in
   gtkpod/trunk/scripts/mab2vcard
   gtkpod/trunk/scripts/sync-abook.sh
   gtkpod/trunk/scripts/sync-evocalendar.sh
   gtkpod/trunk/scripts/sync-evolution.sh
   gtkpod/trunk/scripts/sync-kaddressbook.sh
   gtkpod/trunk/scripts/sync-korganizer.sh
   gtkpod/trunk/scripts/sync-notes.sh
   gtkpod/trunk/scripts/sync-tomboy.sh
   gtkpod/trunk/scripts/sync-webcalendar.sh
   gtkpod/trunk/src/Makefile.am
   gtkpod/trunk/src/Makefile.in
   gtkpod/trunk/src/charset.c
   gtkpod/trunk/src/charset.h
   gtkpod/trunk/src/clientserver.c
   gtkpod/trunk/src/clientserver.h
   gtkpod/trunk/src/confirmation.c
   gtkpod/trunk/src/confirmation.h
   gtkpod/trunk/src/context_menus.c
   gtkpod/trunk/src/context_menus.h
   gtkpod/trunk/src/date_parser.c
   gtkpod/trunk/src/date_parser.h
   gtkpod/trunk/src/date_parser.l
   gtkpod/trunk/src/date_parser2.c
   gtkpod/trunk/src/date_parser2.l
   gtkpod/trunk/src/details.c
   gtkpod/trunk/src/details.h
   gtkpod/trunk/src/display.c
   gtkpod/trunk/src/display.h
   gtkpod/trunk/src/display_itdb.c
   gtkpod/trunk/src/display_itdb.h
   gtkpod/trunk/src/display_playlists.c
   gtkpod/trunk/src/display_private.h
   gtkpod/trunk/src/display_sorttabs.c
   gtkpod/trunk/src/display_spl.c
   gtkpod/trunk/src/file.c
   gtkpod/trunk/src/file.h
   gtkpod/trunk/src/file_export.c
   gtkpod/trunk/src/file_itunesdb.c
   gtkpod/trunk/src/fileselection.c
   gtkpod/trunk/src/fileselection.h
   gtkpod/trunk/src/info.c
   gtkpod/trunk/src/info.h
   gtkpod/trunk/src/ipod_init.c
   gtkpod/trunk/src/ipod_init.h
   gtkpod/trunk/src/itdb.h
   gtkpod/trunk/src/main.c
   gtkpod/trunk/src/misc.c
   gtkpod/trunk/src/misc.h
   gtkpod/trunk/src/misc_confirm.c
   gtkpod/trunk/src/misc_conversion.c
   gtkpod/trunk/src/misc_input.c
   gtkpod/trunk/src/misc_playlist.c
   gtkpod/trunk/src/misc_track.c
   gtkpod/trunk/src/misc_track.h
   gtkpod/trunk/src/mp3file.c
   gtkpod/trunk/src/mp3file.h
   gtkpod/trunk/src/mp4file.c
   gtkpod/trunk/src/mp4file.h
   gtkpod/trunk/src/podcast.c
   gtkpod/trunk/src/podcast.h
   gtkpod/trunk/src/prefs.c
   gtkpod/trunk/src/prefs.h
   gtkpod/trunk/src/prefs_window.c
   gtkpod/trunk/src/prefs_window.h
   gtkpod/trunk/src/repository.c
   gtkpod/trunk/src/repository.h
   gtkpod/trunk/src/syncdir.c
   gtkpod/trunk/src/syncdir.h
   gtkpod/trunk/src/tools.c
   gtkpod/trunk/src/tools.h
   gtkpod/trunk/src/wavfile.c
   gtkpod/trunk/src/wavfile.h
Log:
Merge 0.99.10~cvs20070626 into trunk/
(Tarball from http://pobox.com/~tmz/gtkpod/gtkpod-0.99.10.tar.gz)


Modified: gtkpod/trunk/ChangeLog
===================================================================
--- gtkpod/trunk/ChangeLog	2007-06-27 20:59:02 UTC (rev 193)
+++ gtkpod/trunk/ChangeLog	2007-06-27 21:27:12 UTC (rev 194)
@@ -1,3 +1,39 @@
+gtkpod V0.99.9CVS
+
+       NEW FEATURE: on-the-fly conversion of WAV, FLAC and OGG (as well
+       as MP3 and M4A). Thanks to Marc d[readlock], Simon Naunton and
+       Peter Edwards! Multi-threaded background conversion was added by
+       Jorg Schuler.
+
+       NEW FEATURE: editing of TV show metadata and track media
+       type. Thanks to Mario Rossi.
+
+       NEW FEATURE: Display of Album Art. Thanks to P.G. Richardson.
+
+       NEW FEATURE: Download of Album Art from the net. Thanks to
+       P.G. Richardson.
+
+       NEW FEATURE: copy playlists and tracks from within the context
+       menu without DND can simplify life with many playlists. Thanks
+       to Andrzej Palejko for his patch.
+
+       UPDATE: Smart playlists now support the following new fields:
+       album artist, tv show, last skipped, season number, skipcount
+       and video kind.
+
+       IMPROVEMENT: Clicking on an item with the right mouse button
+       will select and open the context menu, which is the intended
+       behavior. As a consequence, the interface will remain blocked
+       while the selection is being updated and displayed.
+
+       BUGFIX: dragging tracks between two iPods would sometimes not
+       actually copy the file.
+
+       UPDATED: Italian translation (thanks to Daniele Forsi)
+
+       PACKAGING: Install a .desktop file and icons according to the
+       freedesktop.org specification.
+
 gtkpod V0.99.8
 
        NEW FEATURE: Support of several iPods (currently you need to

Modified: gtkpod/trunk/INSTALL
===================================================================
--- gtkpod/trunk/INSTALL	2007-06-27 20:59:02 UTC (rev 193)
+++ gtkpod/trunk/INSTALL	2007-06-27 21:27:12 UTC (rev 194)
@@ -10,10 +10,10 @@
    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. 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
+   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 development snapshot can
    be found at http://www.gtkpod.org/libgpod.html
 
    The libmp4v2 package is ONLY NEEDED if you need AAC support.  You
@@ -33,7 +33,7 @@
         autoconf (at least 2.55)
         flex (or lex)
 	glib (at least 2.4.0)
-        gtk+ (at least 2.4.0)
+        gtk+ (at least 2.6.0)
         libglade (at least 2.4.0)
         libgpod (at least 0.4.0)
         libid3tag (at least 0.15)
@@ -41,15 +41,19 @@
 
    Optional packages:
 
-        gettext (for internationalization)
         libmpv4 (for AAC/M4A support)
+	libvorbis (for ogg libvorbis support)
+	libflac (for FLAC support)
+	libcurl (for coverart download support)
+	libgnome-vfs-2.0 >2.6 (for iPod autodetection under GNOME)
+	libhal >0.5 <0.6 (in combination with libgnome-vfs: better detection of iPods)
 
 
 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
 
      LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib
-     PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib
+     PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig
      export LD_LIBRARY_PATH
      export PKG_CONFIG_PATH
 

Modified: gtkpod/trunk/Makefile.am
===================================================================
--- gtkpod/trunk/Makefile.am	2007-06-27 20:59:02 UTC (rev 193)
+++ gtkpod/trunk/Makefile.am	2007-06-27 21:27:12 UTC (rev 194)
@@ -1,53 +1,21 @@
 ## Process this file with automake to produce Makefile.in
 
-SUBDIRS = src po scripts
+SUBDIRS = src po scripts data
 
+EXTRA_DIST =			\
+	autogen.sh		\
+	intltool-extract.in	\
+	intltool-merge.in	\
+	intltool-update.in	\
+	TROUBLESHOOTING		\
+	TODOandBUGS.txt
 
-EXTRA_DIST = \
-	autogen.sh \
-	gtkpod.glade \
-	gtkpod.gladep \
-	TROUBLESHOOTING \
-	TODOandBUGS.txt \
-	pixmaps
+DISTCLEANFILES =		\
+	intltool-extract	\
+	intltool-merge		\
+	intltool-update
 
-install-data-hook:
-	if test -d $(srcdir)/pixmaps; then \
-	  $(mkinstalldirs) $(DESTDIR)$(pkgdatadir)/pixmaps; \
-	  for pixmap in $(srcdir)/pixmaps/*; do \
-	    if test -f $$pixmap; then \
-	      if ! test -h $$pixmap; then \
-	        $(INSTALL_DATA) $$pixmap $(DESTDIR)$(pkgdatadir)/pixmaps; \
-	      fi \
-	    fi \
-	  done \
-	fi
-	for gladefile in gtkpod.glade gtkpod.gladep; do \
-	  if test -f $$gladefile; then \
-            $(INSTALL_DATA) $$gladefile $(DESTDIR)$(pkgdatadir); \
-	    rm -f $(DESTDIR)$(pkgdatadir)/pixmaps/$$gladefile; \
-	    ln -s ../$$gladefile $(DESTDIR)$(pkgdatadir)/pixmaps/$$gladefile; \
-	  fi \
-	done
-
 uninstall-hook:
-	if test -d $(DESTDIR)$(pkgdatadir)/pixmaps; then \
-	      rm -fr $(DESTDIR)$(pkgdatadir)/pixmaps/ ; \
-	fi
-	for gladefile in gtkpod.glade gtkpod.gladep; do \
-	    rm -f $(DESTDIR)$(pkgdatadir)/$$gladefile; \
-	done
-	if test -d $(DESTDIR)$(pkgdatadir)/scripts ; then \
-	    rmdir --ignore-fail-on-non-empty $(DESTDIR)$(pkgdatadir)/scripts; \
-	fi
-	if test -d $(DESTDIR)$(pkgdatadir) ; then \
-	    rmdir --ignore-fail-on-non-empty $(DESTDIR)$(pkgdatadir); \
-	fi
-
-dist-hook:
-	for gladefile in gtkpod.glade gtkpod.gladep; do \
-	    rm -f $(distdir)/pixmaps/$$gladefile; \
-	done
-	rm -rf $(distdir)/pixmaps/CVS
-
-
+	-rmdir --ignore-fail-on-non-empty $(DESTDIR)$(pkgdatadir)/data
+	-rmdir --ignore-fail-on-non-empty $(DESTDIR)$(pkgdatadir)/scripts
+	-rmdir --ignore-fail-on-non-empty $(DESTDIR)$(pkgdatadir)

Modified: gtkpod/trunk/Makefile.in
===================================================================
--- gtkpod/trunk/Makefile.in	2007-06-27 20:59:02 UTC (rev 193)
+++ gtkpod/trunk/Makefile.in	2007-06-27 21:27:12 UTC (rev 194)
@@ -37,6 +37,7 @@
 POST_UNINSTALL = :
 host_triplet = @host@
 ACLOCAL = @ACLOCAL@
+ALL_LINGUAS = @ALL_LINGUAS@
 AMDEP_FALSE = @AMDEP_FALSE@
 AMDEP_TRUE = @AMDEP_TRUE@
 AMTAR = @AMTAR@
@@ -51,6 +52,8 @@
 CFLAGS = @CFLAGS@
 CPP = @CPP@
 CPPFLAGS = @CPPFLAGS@
+CURL_CFLAGS = @CURL_CFLAGS@
+CURL_LIBS = @CURL_LIBS@
 CYGPATH_W = @CYGPATH_W@
 DATADIRNAME = @DATADIRNAME@
 DEFS = @DEFS@
@@ -63,13 +66,47 @@
 GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
 GMOFILES = @GMOFILES@
 GMSGFMT = @GMSGFMT@
+GNOME_VFS_CFLAGS = @GNOME_VFS_CFLAGS@
+GNOME_VFS_LIBS = @GNOME_VFS_LIBS@
 GREP = @GREP@
+HAL_CFLAGS = @HAL_CFLAGS@
+HAL_LIBS = @HAL_LIBS@
+HAVE_GNOME_VFS_FALSE = @HAVE_GNOME_VFS_FALSE@
+HAVE_GNOME_VFS_TRUE = @HAVE_GNOME_VFS_TRUE@
+HAVE_HAL_FALSE = @HAVE_HAL_FALSE@
+HAVE_HAL_TRUE = @HAVE_HAL_TRUE@
 INSTALL_DATA = @INSTALL_DATA@
 INSTALL_PROGRAM = @INSTALL_PROGRAM@
 INSTALL_SCRIPT = @INSTALL_SCRIPT@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
 INSTOBJEXT = @INSTOBJEXT@
 INTLLIBS = @INTLLIBS@
+INTLTOOL_CAVES_RULE = @INTLTOOL_CAVES_RULE@
+INTLTOOL_DESKTOP_RULE = @INTLTOOL_DESKTOP_RULE@
+INTLTOOL_DIRECTORY_RULE = @INTLTOOL_DIRECTORY_RULE@
+INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@
+INTLTOOL_ICONV = @INTLTOOL_ICONV@
+INTLTOOL_KBD_RULE = @INTLTOOL_KBD_RULE@
+INTLTOOL_KEYS_RULE = @INTLTOOL_KEYS_RULE@
+INTLTOOL_MERGE = @INTLTOOL_MERGE@
+INTLTOOL_MSGFMT = @INTLTOOL_MSGFMT@
+INTLTOOL_MSGMERGE = @INTLTOOL_MSGMERGE@
+INTLTOOL_OAF_RULE = @INTLTOOL_OAF_RULE@
+INTLTOOL_PERL = @INTLTOOL_PERL@
+INTLTOOL_PONG_RULE = @INTLTOOL_PONG_RULE@
+INTLTOOL_PROP_RULE = @INTLTOOL_PROP_RULE@
+INTLTOOL_SCHEMAS_RULE = @INTLTOOL_SCHEMAS_RULE@
+INTLTOOL_SERVER_RULE = @INTLTOOL_SERVER_RULE@
+INTLTOOL_SERVICE_RULE = @INTLTOOL_SERVICE_RULE@
+INTLTOOL_SHEET_RULE = @INTLTOOL_SHEET_RULE@
+INTLTOOL_SOUNDLIST_RULE = @INTLTOOL_SOUNDLIST_RULE@
+INTLTOOL_THEME_RULE = @INTLTOOL_THEME_RULE@
+INTLTOOL_UI_RULE = @INTLTOOL_UI_RULE@
+INTLTOOL_UPDATE = @INTLTOOL_UPDATE@
+INTLTOOL_XAM_RULE = @INTLTOOL_XAM_RULE@
+INTLTOOL_XGETTEXT = @INTLTOOL_XGETTEXT@
+INTLTOOL_XML_NOMERGE_RULE = @INTLTOOL_XML_NOMERGE_RULE@
+INTLTOOL_XML_RULE = @INTLTOOL_XML_RULE@
 LDFLAGS = @LDFLAGS@
 LEX = @LEX@
 LEXLIB = @LEXLIB@
@@ -148,16 +185,22 @@
 sysconfdir = @sysconfdir@
 target_alias = @target_alias@
 
-SUBDIRS = src po scripts
+SUBDIRS = src po scripts data
 
 EXTRA_DIST = \
-	autogen.sh \
-	gtkpod.glade \
-	gtkpod.gladep \
-	TROUBLESHOOTING \
-	TODOandBUGS.txt \
-	pixmaps
+	autogen.sh		\
+	intltool-extract.in	\
+	intltool-merge.in	\
+	intltool-update.in	\
+	TROUBLESHOOTING		\
+	TODOandBUGS.txt
 
+
+DISTCLEANFILES = \
+	intltool-extract	\
+	intltool-merge		\
+	intltool-update
+
 subdir = .
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
@@ -172,8 +215,8 @@
 	check-recursive installcheck-recursive
 DIST_COMMON = README $(srcdir)/Makefile.in $(srcdir)/configure AUTHORS \
 	COPYING ChangeLog INSTALL Makefile.am NEWS aclocal.m4 \
-	config.guess config.h.in config.sub configure configure.in \
-	depcomp install-sh missing mkinstalldirs ylwrap
+	config.guess config.h.in config.sub configure.in depcomp \
+	install-sh missing mkinstalldirs ylwrap
 DIST_SUBDIRS = $(SUBDIRS)
 all: config.h
 	$(MAKE) $(AM_MAKEFLAGS) all-recursive
@@ -394,9 +437,6 @@
 	      || exit 1; \
 	  fi; \
 	done
-	$(MAKE) $(AM_MAKEFLAGS) \
-	  top_distdir="$(top_distdir)" distdir="$(distdir)" \
-	  dist-hook
 	-find $(distdir) -type d ! -perm -777 -exec chmod a+rwx {} \; -o \
 	  ! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \
 	  ! -type d ! -perm -400 -exec chmod a+r {} \; -o \
@@ -492,6 +532,7 @@
 
 distclean-generic:
 	-rm -f $(CONFIG_CLEAN_FILES)
+	-test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES)
 
 maintainer-clean-generic:
 	@echo "This command is intended for maintainers to use"
@@ -514,8 +555,6 @@
 info-am:
 
 install-data-am:
-	@$(NORMAL_INSTALL)
-	$(MAKE) $(AM_MAKEFLAGS) install-data-hook
 
 install-exec-am:
 
@@ -567,44 +606,10 @@
 	uninstall-info-am uninstall-info-recursive uninstall-recursive
 
 
-install-data-hook:
-	if test -d $(srcdir)/pixmaps; then \
-	  $(mkinstalldirs) $(DESTDIR)$(pkgdatadir)/pixmaps; \
-	  for pixmap in $(srcdir)/pixmaps/*; do \
-	    if test -f $$pixmap; then \
-	      if ! test -h $$pixmap; then \
-	        $(INSTALL_DATA) $$pixmap $(DESTDIR)$(pkgdatadir)/pixmaps; \
-	      fi \
-	    fi \
-	  done \
-	fi
-	for gladefile in gtkpod.glade gtkpod.gladep; do \
-	  if test -f $$gladefile; then \
-            $(INSTALL_DATA) $$gladefile $(DESTDIR)$(pkgdatadir); \
-	    rm -f $(DESTDIR)$(pkgdatadir)/pixmaps/$$gladefile; \
-	    ln -s ../$$gladefile $(DESTDIR)$(pkgdatadir)/pixmaps/$$gladefile; \
-	  fi \
-	done
-
 uninstall-hook:
-	if test -d $(DESTDIR)$(pkgdatadir)/pixmaps; then \
-	      rm -fr $(DESTDIR)$(pkgdatadir)/pixmaps/ ; \
-	fi
-	for gladefile in gtkpod.glade gtkpod.gladep; do \
-	    rm -f $(DESTDIR)$(pkgdatadir)/$$gladefile; \
-	done
-	if test -d $(DESTDIR)$(pkgdatadir)/scripts ; then \
-	    rmdir --ignore-fail-on-non-empty $(DESTDIR)$(pkgdatadir)/scripts; \
-	fi
-	if test -d $(DESTDIR)$(pkgdatadir) ; then \
-	    rmdir --ignore-fail-on-non-empty $(DESTDIR)$(pkgdatadir); \
-	fi
-
-dist-hook:
-	for gladefile in gtkpod.glade gtkpod.gladep; do \
-	    rm -f $(distdir)/pixmaps/$$gladefile; \
-	done
-	rm -rf $(distdir)/pixmaps/CVS
+	-rmdir --ignore-fail-on-non-empty $(DESTDIR)$(pkgdatadir)/data
+	-rmdir --ignore-fail-on-non-empty $(DESTDIR)$(pkgdatadir)/scripts
+	-rmdir --ignore-fail-on-non-empty $(DESTDIR)$(pkgdatadir)
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
 .NOEXPORT:

Modified: gtkpod/trunk/README
===================================================================
--- gtkpod/trunk/README	2007-06-27 20:59:02 UTC (rev 193)
+++ gtkpod/trunk/README	2007-06-27 21:27:12 UTC (rev 194)
@@ -30,7 +30,6 @@
      - Synchronize Directories
      - Volume Normalization
      - Podcasts
-     - Offline Mode
      - Export of Tracks (Copy from iPod)
      - Encoding of ID3 tags (charsets)
      - Extracting tag information from the filename
@@ -50,29 +49,36 @@
 *----------------------------------*
 
 
-Follow steps 1-7 in the "Connecting your iPod to a Linux box"
-(basically you need to get the iPod partition mounted to /media/ipod)
+1) If your iPod is not mounted automatically when connecting it to
+   your computer follow steps 1-7 in the "Connecting your iPod to a
+   Linux box" (basically you need to get the iPod partition mounted to
+   /media/ipod).  In most cases this should not be necessary any more
+   these days.
 
+2) If you are using GNOME, starting with V1.0 of gtkpod your iPod will
+   be automatically loaded and displayed within gtkpod once you
+   connect it to your box. Otherwise:
 
-1) The faint-of-heart make a backup of their iTunesDB:
+   - Use "Load iPods" to import the contents of your old iTunesDB (you
+     may have to specify the correct mountpoint: right-button click on
+     the "iPod" repository, select "Edit iPod's Properties" and change
+     the mountpoint).
 
-cp /media/ipod/iPod_Control/iTunes/iTunesDB /media/ipod/iPod_Control/iTunes/iTunesDB.bak
-
-2) Start gtkpod
-
-3) Use "Import" to import the contents of your old iTunesDB.
-
-4) Use "Add Files", "Add Directories" or DND to add files or
+3) Use "Add Files", "Add Directories" or DND to add files or
    directories.
 
-5) Use "Sync" to write the added files to the iPod and create a new
-   iTunesDB.
+4) Use "Eject iPod" in the context menu or click on the icon to the
+   left of the iPod name to write the added files to the iPod and
+   create a new iTunesDB and unload the iPod from gtkpod.
 
-6) Quit the program.
+5) Unmount your iPod. The easiest way is to use the windowmanager. If
+   this is not an option for you continue with step 8-11 of the
+   "Connecting your iPod to a Linux box" section (basically describing
+   how to unmount and disconnect your iPod).
 
-and continue with step 8-11 of the "Connecting your iPod to a Linux
-box" section (basically describing how to unmount and disconnect your
-iPod).
+   You can automate the unmounting by adding creating a
+   ~/.gtkpod/gtkpod.eject file with the following line in it (without
+   the quotation marks): "eject $1"
 
 
 *----------------------------------*
@@ -100,8 +106,8 @@
 - You can rename ID3 tags by editing the fields in gtkpod. You can
   change an entire group of ID3 tags by editing an entry in the sort
   tab (or mark several tracks and edit the first).
-- Cou can specify which tags to display in the preferences window
-- Cou can specify (in the prefs window) if the ID3 tags of the
+- You can specify which tags to display in the preferences window
+- You can specify (in the prefs window) if the ID3 tags of the
   corresponding mp3 file(s) should also be updated
 
 
@@ -204,7 +210,7 @@
 -------------------
 
 You can instruct gtkpod (in the prefs window) to use
-file-size-dependent MD5 checksums to prevent the same file from
+file-size-dependent SHA1 checksums to prevent the same file from
 being copied to your iPod twice.
 
 If a duplicate is detected, gtkpod will print out the the filenames
@@ -221,10 +227,16 @@
 database. You can therefore instruct gtkpod to write an additional
 file (iTunesDB.ext) with extended information. For each track it stores
 
-  - MD5 hash
+  - SHA1 hash
   - filename in the locale's encoding
   - filename in UTF8 encoding
   - hostname where the file was added (not used for anything yet)
+  - filename of an associated converted file (for example an .mp3 for
+    a .flac file)
+  - if the file is present in the local database a reference to there
+    in order for playcounts to work on the local database as well
+  - last modification time
+  - the charset used for the file when adding it
 
 Since the extended information file is only valid with the
 corresponding standard iTunes database, a checksum of the iTunes
@@ -232,16 +244,13 @@
 
 Using an extended information file will considerably speed up the
 import of an existing iTunes database when using duplicate detection,
-since the MD5 checksums do not have to be re-calculated.
+since the SHA1 checksums do not have to be re-calculated.
 
 Using an extended information file will also allow modification of ID3
 tags in the track files after the initial import, because the full
 filenames are still available.
 
-The extended information file is also used for the "Offline Mode"
-described below.
 
-
 Refresh (Update) Track Info From File
 ------------------------------------
 
@@ -260,17 +269,16 @@
 refresh.
 
 
-Synchronize Directories
------------------------
+Synchronize with Directories
+----------------------------
 
 If you have added files to directories or changed files in directories
 you have previously added tracks from, you can use the "Synchronize
 Dirs" utility to update your iTunesDB.
 
-"Synchronize Dirs" will use the selected tracks to make a list of
-directories to update, so you should activate the "Write Extended
-Information" option in the export section of the preferences
-dialogue.
+"Synchronize with Dir(s)" will use the selected tracks to make a list
+of directories to update, so you should activate the "Write Extended
+Information" option in the export section of the preferences dialogue.
 
 It will then add all non-existing tracks in those directories and
 update (see "Refresh") all existing tracks. The tracks are also added to
@@ -283,6 +291,7 @@
 avoids unnecessary copying of unchanged tracks.
 
 
+
 Volume Normalization
 --------------------
 
@@ -304,15 +313,12 @@
 consuming, it is not done automatically during import. You need to
 install mp3gain in the default path or set the full path in the
 'Tools' section of the preferences dialog. If the iPod is connected,
-the tag is written to the file stored on the iPod. If the iPod is not
-connected (i.e. in 'offline mode') the original file on the PC is used
-if the filename is available (requires the extended information file
-iTunesDB.ext).
+the tag is written to the file stored on the iPod.
 
 At this time "album gain" functionality is not supported. "Album gain"
 means that the volume of all tracks of one album is adjusted by the
 same gain, such that the relative volume level remains the same. It is
-planned to realize this in on of the next versions.
+planned to realize this in one of the next versions.
 
 Also, please be aware that tracks are not normalized on a 'per
 playlist' fashion. If a track is normalized, it's normalized in all
@@ -327,7 +333,7 @@
 Podcasts
 --------
 
-You have to download podcasts using a third party tool like bashpooder
+You have to download podcasts using a third party tool like bashpodder
 (http://linc.homeunix.org:8080/scripts/bashpodder/) or gpodder
 (http://perli.net/projekte/gpodder/)
 
@@ -347,34 +353,6 @@
 time. You have to drag the podcasts over manually.
 
 
-Offline Mode
-------------
-
-It is possible to modify your iTunesDB "offline", i.e. without your
-iPod connected to your computer. You can then synchronize the contents
-of your iPod at any later time.
-
-To to this, you must have a backup of your iTunes database and the
-extended information file in the ~/.gtkpod/ directory (choose the
-backup option in the prefs menu for automatic backups).
-
-Before importing your iTunes database, you must select the "Offline"
-option in the "Files" menu. (The import and export of your iTunes
-database will then be done from or to ~/.gtkpod/.) Then import your
-iTunes database.
-
-You can modify (add tracks, add playlists, modify playlists, delete
-playlists, delete tracks) as usual. When you export your iTunesDB, it
-will be written to ~/.gtkpod/ along with an extended information file
-(even if you have not chosen that option in the prefs menu), tagging
-the tracks not yet transferred.
-
-Next time around you can import the database as described above,
-switch off the offline mode, and export the iTunes database to your
-iPod. The contents of your iPod hard drive are then brought up to
-date.
-
-
 Export of Tracks (Copy from iPod)
 ---------------------------------
 
@@ -394,7 +372,7 @@
 If you use correctly written unicode ID3V2 tags you don't have to
 worry about the charset setting.
 
-Otherwise you must specify the carset to be used for representing ID3
+Otherwise you must specify the charset to be used for representing ID3
 tags in the preferences menu. The default is "System Charset", which
 is the charset associated with the locale gtkpod is running under. If
 your tags are stored in a different encoding, you should set it
@@ -406,7 +384,7 @@
 
 If you chose "Japanese (automatic detection)", gtkpod will try to
 determine if the string is in ISO-2022-JP, Shift_JIS, or EUC-JP
-(Hankaku Katakana (1-byte Katakana) may not be recognised correctly --
+(Hankaku Katakana (1-byte Katakana) may not be recognized correctly --
 specify the correct encoding if you run into this problem). The actual
 encoding used for the ID tags will be stored and will be used when
 writing tags or doing updates/syncs. Check the "Use selected charset
@@ -425,14 +403,14 @@
 --------------------------------------------
 Tags can also be extracted from the filename if you activate the
 option 'Use this template to parse filename for tag information' and
-supply a template that explains how the filanames are constructed.
+supply a template that explains how the filenames are constructed.
 
 For filenames like 
     music/new/latin1/alan_jackson - drive/01 drive_for_daddy_gene.mp3
 you could use
     %a - %A/%T %*.mp3
 
-to extract artist, alabum, track number and title.
+to extract artist, album, track number and title.
 
 The following character sequences are supported:
 
@@ -479,21 +457,27 @@
 
 Restoring your iPod after file system error
 -------------------------------------------
-If iPod's file system gets corrpted and you need to reformat your
+If iPod's file system gets corrupted and you need to reformat your
 iPod, there is a way to restore the contents semi-automatically if you
-have been using the "backup to ~/.gtkpod" and "write extended
-information file" (iTunesDB.ext) options:
+have been using the "write extended information file" (iTunesDB.ext)
+options:
 
-1) Make gtkpod think it still needs to copy the tracks 
-  
-$ perl -p -i -e 's/transferred=1/transferred=0/g' ~/.gtkpod/iTunesDB.ext
+ - If the directory structure on the iPod doesn't exist yet,
+   load the iPod in gtkpod and have it created for you. Then unload
+   the iPod again.
 
-2) Import the iTunesDB in "Offline" mode
+ - copy your backup files in .gtkpod/ (usually iTunesDB and
+   iTunesDB.ext) to your iPod (usually
+   <mountpoint>/iPod_Control/iTunes/
+   On the iPod the files must be named iTunesDB and iTunesDB.ext.
 
-3) Switch to "Online" mode
+ - load the iPod in gtkpod
 
-4) Export iTunesDB
+ - select the iPod repository and start "Check iPod's files" from the
+   File menu
 
+ - unload the iPod (or save changes)
+
 This should restore your iPod to what it was before, provided you
 didn't move or remove any of the original tracks on your harddrive, and
 the charset information was stored correctly.
@@ -503,7 +487,7 @@
 -------------------
 
 Whenever you play a track completely on the iPod (firmware version 1.3
-or higher) a counter in a the "Play Counts" file will be increased by
+or higher) a counter in the "Play Counts" file will be increased by
 one. The same file also contains the rating you can set with the 3rd
 generation iPods.
 
@@ -567,8 +551,8 @@
 However, the "Add Files" and "Add Playlists" dialogue (at the moment)
 uses the standard GTK+-2.0 file selection dialogue. Therefore I have
 no access on the conversion functions used, and a warning is printed
-when filenames are encountered that are encoded in a an encoding other
-than the once of the current locale. ID3 tags are still read currectly
+when filenames are encountered that are encoded in an encoding other
+than the one of the current locale. ID3 tags are still read correctly
 (according to the charset set in the preference dialogue).
 
 
@@ -682,7 +666,7 @@
 4) Write rules for udev (/etc/udev/udev.rules, add at the beginning)
    to recognize your iPod automatically (mind the spaces within
    "iPod...", and be aware that some distributions require a double
-   equal after the BUS keyworkd (BUS=="scsi"...)):
+   equal after the BUS keyword (BUS=="scsi"...)):
 
 BUS="scsi", SYSFS{model}="iPod            ", KERNEL="sd?2", NAME="%k", SYMLINK="ipod"
 
@@ -1036,7 +1020,7 @@
 ------------------------------- End Here -----------------------------------
 I use the force inquiry hack cause I have an older iPod, if you normally can
 get by with /sbin/modprobe sbp2 then ignore the inquiry hack stuff.  Note
-that explicitly specifying with module to probe/remove keeps the user from
+that explicitly specifying which module to probe/remove keeps the user from
 being able to add/remove arbitrary modules.  This allows us to keep gtkpod
 as a user process, and execute commands the user wouldn't usually have
 enough rights to.
@@ -1129,4 +1113,4 @@
   iTunesDB, sometimes the interface freezes. I tried to track this
   problem down but only found out that gtk+ does not return control
   back to gtkpod. Selecting the "All" filter tabs seems to unfreeze the
-  interace again.
+  interface again.

Modified: gtkpod/trunk/TODOandBUGS.txt
===================================================================
--- gtkpod/trunk/TODOandBUGS.txt	2007-06-27 20:59:02 UTC (rev 193)
+++ gtkpod/trunk/TODOandBUGS.txt	2007-06-27 21:27:12 UTC (rev 194)
@@ -1,5 +1,71 @@
-TODO:
+BUGS, TODO:
 
+- when auto-loading iPods: set backup path if not set.
+
+- move part of free-space-update to file_convert.c
+
+- when creating new repository: make sure backup repository filename isn't
+  already used.
+
+- don't keep iTunesDB on iPod when syncing (takes up valuable space)
+
+- fileselection_select_script(): display @additional_text.
+
+- modify "warning" when matching checksums: Send a patch that changes
+  the behavior from printing into the info window to opening a dialog
+  with the "never show this dialog again" button. Then add an option
+  to the preferences to get the dialog back.
+
+- save extended database when rehash was done, even if main database
+  is not changed.
+
+CoverArt_display:
+- Remove the preference and add by default, complete with arrows to minimize the display if required.
+# Add a title to the display indicating the album displayed.
+# Selection of a track causes the display to switch to the relevant album cover
+# Selecting an album from either sort list causes switching display to relevant album cover
+# Update the covers when the alphabetize function is called
+- Improve animation?
+- Automatically retrieve album art through Amazon or Google
+# Clear images before setting them in case a null is returned from get_thumb()
+- On Delete of album / track / artist, call cover_set_images again
+- On add of album / track / artist, call cover_set_images again
+
+
+###
+
+CoverArt_display:
+- Remove the preference and add by default, complete with arrows to minimize the display if required.
+# Add a title to the display indicating the album displayed.
+# Selection of a track causes the display to switch to the relevant album cover
+# Selecting an album from either sort list causes switching display to relevant album cover
+# Update the covers when the alphabetize function is called
+- Improve animation?
+- Automatically retrieve album art through Amazon or Google
+# Clear images before setting them in case a null is returned from get_thumb()
+- On Delete of album / track / artist, call cover_set_images again
+- On add of album / track / artist, call cover_set_images again
+
+
+###
+
+CoverArt_display:
+# Remove the preference and add by default, complete with arrows to minimize the display if required.
+# Add a title to the display indicating the album displayed.
+# Selection of a track causes the display to switch to the relevant album cover
+# Selecting an album from either sort list causes switching display to relevant album cover
+# Update the covers when the alphabetize function is called
+# Improve animation?
+- Automatically retrieve album art through Amazon or Google
+# Clear images before setting them in case a null is returned from get_thumb()
+# On Delete of album / track / artist, call cover_set_images again
+# On add of album / track / artist, call cover_set_images again
+
+
+###
+
+- unload iPods when exiting gtkpod (ask/option).
+
 - cddb lookup (http://freedb.freedb.org). See also
   http://musicbrainz.org/doc/libmusicbrainzDownload
 

Modified: gtkpod/trunk/aclocal.m4
===================================================================
--- gtkpod/trunk/aclocal.m4	2007-06-27 20:59:02 UTC (rev 193)
+++ gtkpod/trunk/aclocal.m4	2007-06-27 21:27:12 UTC (rev 194)
@@ -898,32 +898,7 @@
 
 AU_DEFUN([jm_MAINTAINER_MODE], [AM_MAINTAINER_MODE])
 
-# isc-posix.m4 serial 2 (gettext-0.11.2)
-dnl Copyright (C) 1995-2002 Free Software Foundation, Inc.
-dnl This file is free software; the Free Software Foundation
-dnl gives unlimited permission to copy and/or distribute it,
-dnl with or without modifications, as long as this notice is preserved.
 
-# This file is not needed with autoconf-2.53 and newer.  Remove it in 2005.
-
-# This test replaces the one in autoconf.
-# Currently this macro should have the same name as the autoconf macro
-# because gettext's gettext.m4 (distributed in the automake package)
-# still uses it.  Otherwise, the use in gettext.m4 makes autoheader
-# give these diagnostics:
-#   configure.in:556: AC_TRY_COMPILE was called before AC_ISC_POSIX
-#   configure.in:556: AC_TRY_RUN was called before AC_ISC_POSIX
-
-undefine([AC_ISC_POSIX])
-
-AC_DEFUN([AC_ISC_POSIX],
-  [
-    dnl This test replaces the obsolescent AC_ISC_POSIX kludge.
-    AC_CHECK_LIB(cposix, strerror, [LIBS="$LIBS -lcposix"])
-  ]
-)
-
-
 # Copyright 1996, 1997, 1999, 2000, 2001, 2002  Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
@@ -1031,6 +1006,211 @@
 
 AU_DEFUN([fp_PROG_CC_STDC], [AM_PROG_CC_STDC])
 
+
+dnl IT_PROG_INTLTOOL([MINIMUM-VERSION], [no-xml])
+# serial 35 IT_PROG_INTLTOOL
+AC_DEFUN([IT_PROG_INTLTOOL],
+[AC_PREREQ([2.50])dnl
+
+case "$am__api_version" in
+    1.[01234])
+	AC_MSG_ERROR([Automake 1.5 or newer is required to use intltool])
+    ;;
+    *)
+    ;;
+esac
+
+if test -n "$1"; then
+    AC_MSG_CHECKING(for intltool >= $1)
+
+    INTLTOOL_REQUIRED_VERSION_AS_INT=`echo $1 | awk -F. '{ print $ 1 * 1000 + $ 2 * 100 + $ 3; }'`
+    INTLTOOL_APPLIED_VERSION=`awk -F\" '/\\$VERSION / { print $ 2; }' ${ac_aux_dir}/intltool-update.in`
+    [INTLTOOL_APPLIED_VERSION_AS_INT=`awk -F\" '/\\$VERSION / { split($ 2, VERSION, "."); print VERSION[1] * 1000 + VERSION[2] * 100 + VERSION[3];}' ${ac_aux_dir}/intltool-update.in`
+    ]
+    AC_MSG_RESULT([$INTLTOOL_APPLIED_VERSION found])
+    test "$INTLTOOL_APPLIED_VERSION_AS_INT" -ge "$INTLTOOL_REQUIRED_VERSION_AS_INT" ||
+	AC_MSG_ERROR([Your intltool is too old.  You need intltool $1 or later.])
+fi
+
+  INTLTOOL_DESKTOP_RULE='%.desktop:   %.desktop.in   $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' 
+INTLTOOL_DIRECTORY_RULE='%.directory: %.directory.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' 
+     INTLTOOL_KEYS_RULE='%.keys:      %.keys.in      $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -k -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' 
+     INTLTOOL_PROP_RULE='%.prop:      %.prop.in      $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' 
+      INTLTOOL_OAF_RULE='%.oaf:       %.oaf.in       $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -o -p $(top_srcdir)/po $< [$]@'
+     INTLTOOL_PONG_RULE='%.pong:      %.pong.in      $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' 
+   INTLTOOL_SERVER_RULE='%.server:    %.server.in    $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -o -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' 
+    INTLTOOL_SHEET_RULE='%.sheet:     %.sheet.in     $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' 
+INTLTOOL_SOUNDLIST_RULE='%.soundlist: %.soundlist.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' 
+       INTLTOOL_UI_RULE='%.ui:        %.ui.in        $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' 
+      INTLTOOL_XML_RULE='%.xml:       %.xml.in       $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' 
+      INTLTOOL_XML_NOMERGE_RULE='%.xml:       %.xml.in       $(INTLTOOL_MERGE) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u /tmp $< [$]@' 
+      INTLTOOL_XAM_RULE='%.xam:       %.xml.in       $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' 
+      INTLTOOL_KBD_RULE='%.kbd:       %.kbd.in       $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -m -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' 
+    INTLTOOL_CAVES_RULE='%.caves:     %.caves.in     $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' 
+  INTLTOOL_SCHEMAS_RULE='%.schemas:   %.schemas.in   $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -s -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' 
+    INTLTOOL_THEME_RULE='%.theme:     %.theme.in     $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' 
+    INTLTOOL_SERVICE_RULE='%.service: %.service.in   $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@'
+
+AC_SUBST(INTLTOOL_DESKTOP_RULE)
+AC_SUBST(INTLTOOL_DIRECTORY_RULE)
+AC_SUBST(INTLTOOL_KEYS_RULE)
+AC_SUBST(INTLTOOL_PROP_RULE)
+AC_SUBST(INTLTOOL_OAF_RULE)
+AC_SUBST(INTLTOOL_PONG_RULE)
+AC_SUBST(INTLTOOL_SERVER_RULE)
+AC_SUBST(INTLTOOL_SHEET_RULE)
+AC_SUBST(INTLTOOL_SOUNDLIST_RULE)
+AC_SUBST(INTLTOOL_UI_RULE)
+AC_SUBST(INTLTOOL_XAM_RULE)
+AC_SUBST(INTLTOOL_KBD_RULE)
+AC_SUBST(INTLTOOL_XML_RULE)
+AC_SUBST(INTLTOOL_XML_NOMERGE_RULE)
+AC_SUBST(INTLTOOL_CAVES_RULE)
+AC_SUBST(INTLTOOL_SCHEMAS_RULE)
+AC_SUBST(INTLTOOL_THEME_RULE)
+AC_SUBST(INTLTOOL_SERVICE_RULE)
+
+# Use the tools built into the package, not the ones that are installed.
+AC_SUBST(INTLTOOL_EXTRACT, '$(top_builddir)/intltool-extract')
+AC_SUBST(INTLTOOL_MERGE, '$(top_builddir)/intltool-merge')
+AC_SUBST(INTLTOOL_UPDATE, '$(top_builddir)/intltool-update')
+
+AC_PATH_PROG(INTLTOOL_PERL, perl)
+if test -z "$INTLTOOL_PERL"; then
+   AC_MSG_ERROR([perl not found; required for intltool])
+fi
+if test -z "`$INTLTOOL_PERL -v | fgrep '5.' 2> /dev/null`"; then
+   AC_MSG_ERROR([perl 5.x required for intltool])
+fi
+if test "x$2" != "xno-xml"; then
+   AC_MSG_CHECKING([for XML::Parser])
+   if `$INTLTOOL_PERL -e "require XML::Parser" 2>/dev/null`; then
+       AC_MSG_RESULT([ok])
+   else
+       AC_MSG_ERROR([XML::Parser perl module is required for intltool])
+   fi
+fi
+
+AC_PATH_PROG(INTLTOOL_ICONV, iconv, iconv)
+AC_PATH_PROG(INTLTOOL_MSGFMT, msgfmt, msgfmt)
+AC_PATH_PROG(INTLTOOL_MSGMERGE, msgmerge, msgmerge)
+AC_PATH_PROG(INTLTOOL_XGETTEXT, xgettext, xgettext)
+
+# Substitute ALL_LINGUAS so we can use it in po/Makefile
+AC_SUBST(ALL_LINGUAS)
+
+# Set DATADIRNAME correctly if it is not set yet
+# (copied from glib-gettext.m4)
+if test -z "$DATADIRNAME"; then
+  AC_TRY_LINK(, [extern int _nl_msg_cat_cntr;
+                 return _nl_msg_cat_cntr],
+    [DATADIRNAME=share],
+    [case $host in
+    *-*-solaris*)
+    dnl On Solaris, if bind_textdomain_codeset is in libc,
+    dnl GNU format message catalog is always supported,
+    dnl since both are added to the libc all together.
+    dnl Hence, we'd like to go with DATADIRNAME=share
+    dnl in this case.
+    AC_CHECK_FUNC(bind_textdomain_codeset,
+      [DATADIRNAME=share], [DATADIRNAME=lib])
+    ;;
+    *)
+    [DATADIRNAME=lib]
+    ;;
+    esac])
+fi
+AC_SUBST(DATADIRNAME)
+
+IT_PO_SUBDIR([po])
+
+dnl The following is very similar to
+dnl
+dnl	AC_CONFIG_FILES([intltool-extract intltool-merge intltool-update])
+dnl
+dnl with the following slight differences:
+dnl  - the *.in files are in ac_aux_dir,
+dnl  - if the file haven't changed upon reconfigure, it's not touched,
+dnl  - the evaluation of the third parameter enables a hack which computes
+dnl    the actual value of $libdir,
+dnl  - the user sees "executing intltool commands", instead of
+dnl    "creating intltool-extract" and such.
+dnl
+dnl Nothing crucial here, and we could use AC_CONFIG_FILES, if there were
+dnl a reason for it.
+
+AC_CONFIG_COMMANDS([intltool], [
+
+for file in intltool-extract intltool-merge intltool-update; do
+  sed -e "s|@INTLTOOL_EXTRACT@|`pwd`/intltool-extract|g" \
+      -e "s|@INTLTOOL_LIBDIR@|${INTLTOOL_LIBDIR}|g" \
+      -e "s|@INTLTOOL_ICONV@|${INTLTOOL_ICONV}|g" \
+      -e "s|@INTLTOOL_MSGFMT@|${INTLTOOL_MSGFMT}|g" \
+      -e "s|@INTLTOOL_MSGMERGE@|${INTLTOOL_MSGMERGE}|g" \
+      -e "s|@INTLTOOL_XGETTEXT@|${INTLTOOL_XGETTEXT}|g" \
+      -e "s|@INTLTOOL_PERL@|${INTLTOOL_PERL}|g" \
+	< ${ac_aux_dir}/${file}.in > ${file}.out
+  if cmp -s ${file} ${file}.out 2>/dev/null; then
+    rm -f ${file}.out
+  else
+    mv -f ${file}.out ${file}
+  fi
+  chmod ugo+x ${file}
+  chmod u+w ${file}
+done
+
+],
+[INTLTOOL_PERL='${INTLTOOL_PERL}' ac_aux_dir='${ac_aux_dir}'
+prefix="$prefix" exec_prefix="$exec_prefix" INTLTOOL_LIBDIR="$libdir" 
+INTLTOOL_EXTRACT='${INTLTOOL_EXTRACT}' INTLTOOL_ICONV='${INTLTOOL_ICONV}'
+INTLTOOL_MSGFMT='${INTLTOOL_MSGFMT}' INTLTOOL_MSGMERGE='${INTLTOOL_MSGMERGE}'
+INTLTOOL_XGETTEXT='${INTLTOOL_XGETTEXT}'])
+
+])
+
+
+# IT_PO_SUBDIR(DIRNAME)
+# ---------------------
+# All po subdirs have to be declared with this macro; the subdir "po" is
+# declared by IT_PROG_INTLTOOL.
+#
+AC_DEFUN([IT_PO_SUBDIR],
+[AC_PREREQ([2.53])dnl We use ac_top_srcdir inside AC_CONFIG_COMMANDS.
+dnl
+dnl The following CONFIG_COMMANDS should be exetuted at the very end
+dnl of config.status.
+AC_CONFIG_COMMANDS_PRE([
+  AC_CONFIG_COMMANDS([$1/stamp-it], [
+    rm -f "$1/stamp-it" "$1/stamp-it.tmp" "$1/POTFILES" "$1/Makefile.tmp"
+    >"$1/stamp-it.tmp"
+    [sed '/^#/d
+	 s/^[[].*] *//
+	 /^[ 	]*$/d
+	'"s|^|	$ac_top_srcdir/|" \
+      "$srcdir/$1/POTFILES.in" | sed '$!s/$/ \\/' >"$1/POTFILES"
+    ]
+    if test ! -f "$1/Makefile"; then
+      AC_MSG_ERROR([$1/Makefile is not ready.])
+    fi
+    mv "$1/Makefile" "$1/Makefile.tmp"
+    [sed '/^POTFILES =/,/[^\\]$/ {
+		/^POTFILES =/!d
+		r $1/POTFILES
+	  }
+	 ' "$1/Makefile.tmp" >"$1/Makefile"]
+    rm -f "$1/Makefile.tmp"
+    mv "$1/stamp-it.tmp" "$1/stamp-it"
+  ])
+])dnl
+])
+
+
+# deprecated macros
+AU_ALIAS([AC_PROG_INTLTOOL], [IT_PROG_INTLTOOL])
+# A hint is needed for aclocal from Automake <= 1.9.4:
+# AC_DEFUN([AC_PROG_INTLTOOL], ...)
+
+
 # pkg.m4 - Macros to locate and utilise pkg-config.            -*- Autoconf -*-
 # 
 # Copyright © 2004 Scott James Remnant <scott at netsplit.com>.
@@ -1600,8 +1780,10 @@
 [glib_REQUIRE([GLIB_GNU_GETTEXT])dnl
 glib_save_prefix="$prefix"
 glib_save_exec_prefix="$exec_prefix"
+glib_save_datarootdir="$datarootdir"
 test "x$prefix" = xNONE && prefix=$ac_default_prefix
 test "x$exec_prefix" = xNONE && exec_prefix=$prefix
+datarootdir=`eval echo "${datarootdir}"`
 if test "x$CATOBJEXT" = "x.mo" ; then
   localedir=`eval echo "${libdir}/locale"`
 else
@@ -1609,6 +1791,7 @@
 fi
 prefix="$glib_save_prefix"
 exec_prefix="$glib_save_exec_prefix"
+datarootdir="$glib_save_datarootdir"
 AC_DEFINE_UNQUOTED($1, "$localedir",
   [Define the location where the catalogs will be installed])
 ])

Modified: gtkpod/trunk/autogen.sh
===================================================================
--- gtkpod/trunk/autogen.sh	2007-06-27 20:59:02 UTC (rev 193)
+++ gtkpod/trunk/autogen.sh	2007-06-27 21:27:12 UTC (rev 194)
@@ -6,11 +6,11 @@
 DIE=0
 
 if [ -n "$GNOME2_DIR" ]; then
-	ACLOCAL_FLAGS="-I $GNOME2_DIR/share/aclocal $ACLOCAL_FLAGS"
-	LD_LIBRARY_PATH="$GNOME2_DIR/lib:$LD_LIBRARY_PATH"
-	PATH="$GNOME2_DIR/bin:$PATH"
-	export PATH
-	export LD_LIBRARY_PATH
+    ACLOCAL_FLAGS="-I $GNOME2_DIR/share/aclocal $ACLOCAL_FLAGS"
+    LD_LIBRARY_PATH="$GNOME2_DIR/lib:$LD_LIBRARY_PATH"
+    PATH="$GNOME2_DIR/bin:$PATH"
+    export PATH
+    export LD_LIBRARY_PATH
 fi
 
 (test -f $srcdir/configure.in) || {
@@ -27,7 +27,7 @@
   DIE=1
 }
 
-(grep "^AC_PROG_INTLTOOL" $srcdir/configure.in >/dev/null) && {
+(grep "^IT_PROG_INTLTOOL" $srcdir/configure.in >/dev/null) && {
   (intltoolize --version) < /dev/null > /dev/null 2>&1 || {
     echo 
     echo "**Error**: You must have \`intltool' installed."
@@ -60,13 +60,13 @@
   (grep "sed.*POTFILES" $srcdir/configure.in) > /dev/null || \
   (glib-gettextize --version) < /dev/null > /dev/null 2>&1 || {
     if [ -f /etc/debian_version ]
-    then	
-   	echo "**Error**: Please apt-get install libglib2.0-dev"
-    else	
-    	echo
-    	echo "**Error**: You must have \`glib' installed."
-    	echo "You can get it from: ftp://ftp.gtk.org/pub/gtk."
-	echo "When using packages, make sure you also install the -dev package."
+    then
+        echo "**Error**: Please apt-get install libglib2.0-dev"
+    else
+        echo
+        echo "**Error**: You must have \`glib' installed."
+        echo "You can get it from: ftp://ftp.gtk.org/pub/gtk."
+        echo "When using packages, make sure you also install the -dev package."
     fi
     DIE=1
   }
@@ -106,7 +106,7 @@
   am_opt=--include-deps;;
 esac
 
-for coin in `find $srcdir -path $srcdir/CVS -prune -o -name configure.in -print`
+for coin in `find $srcdir -name configure.in -print`
 do 
   dr=`dirname $coin`
   if test -f $dr/NO-AUTO-GEN; then
@@ -118,32 +118,32 @@
       aclocalinclude="$ACLOCAL_FLAGS"
 
       if grep "^AM_GLIB_GNU_GETTEXT" configure.in >/dev/null; then
-	echo "Creating $dr/aclocal.m4 ..."
-	test -r $dr/aclocal.m4 || touch $dr/aclocal.m4
-	echo "Running glib-gettextize...  Ignore non-fatal messages."
-	echo "no" | glib-gettextize --force --copy
-	echo "Making $dr/aclocal.m4 writable ..."
-	test -r $dr/aclocal.m4 && chmod u+w $dr/aclocal.m4
+        echo "Creating $dr/aclocal.m4 ..."
+        test -r $dr/aclocal.m4 || touch $dr/aclocal.m4
+        echo "Running glib-gettextize...  Ignore non-fatal messages."
+        echo "no" | glib-gettextize --force --copy
+        echo "Making $dr/aclocal.m4 writable ..."
+        test -r $dr/aclocal.m4 && chmod u+w $dr/aclocal.m4
       fi
-      if grep "^AC_PROG_INTLTOOL" configure.in >/dev/null; then
+      if grep "^IT_PROG_INTLTOOL" configure.in >/dev/null; then
         echo "Running intltoolize..."
-	intltoolize --copy --force --automake
+        intltoolize --copy --force --automake
       fi
       if grep "^AM_PROG_XML_I18N_TOOLS" configure.in >/dev/null; then
         echo "Running xml-i18n-toolize..."
-	xml-i18n-toolize --copy --force --automake
+        xml-i18n-toolize --copy --force --automake
       fi
       if grep "^AM_PROG_LIBTOOL" configure.in >/dev/null; then
-	if test -z "$NO_LIBTOOLIZE" ; then 
-	  echo "Running libtoolize..."
-	  ${LIBTOOLIZE:-libtoolize} --force --copy
-	fi
+        if test -z "$NO_LIBTOOLIZE" ; then 
+          echo "Running libtoolize..."
+          ${LIBTOOLIZE:-libtoolize} --force --copy
+        fi
       fi
       echo "Running aclocal $aclocalinclude ..."
       ${ACLOCAL:-aclocal} $aclocalinclude
       if grep "^AM_CONFIG_HEADER" configure.in >/dev/null; then
-	echo "Running autoheader..."
-	${AUTOHEADER:-autoheader}
+        echo "Running autoheader..."
+        ${AUTOHEADER:-autoheader}
       fi
       echo "Running automake --gnu $am_opt ..."
       ${AUTOMAKE:-automake} --add-missing --gnu $am_opt

Modified: gtkpod/trunk/config.h.in
===================================================================
--- gtkpod/trunk/config.h.in	2007-06-27 20:59:02 UTC (rev 193)
+++ gtkpod/trunk/config.h.in	2007-06-27 21:27:12 UTC (rev 194)
@@ -9,9 +9,15 @@
 /* Define to 1 if you have the `bind_textdomain_codeset' function. */
 #undef HAVE_BIND_TEXTDOMAIN_CODESET
 
+/* "libcurl support" */
+#undef HAVE_CURL
+
 /* Define to 1 if you have the `dcgettext' function. */
 #undef HAVE_DCGETTEXT
 
+/* "Define to 1 if you have the flac library" */
+#undef HAVE_FLAC
+
 /* Define to 1 if you have the `flock' function. */
 #undef HAVE_FLOCK
 
@@ -21,18 +27,24 @@
 /* Define if the GNU gettext() function is already present or preinstalled. */
 #undef HAVE_GETTEXT
 
+/* Define if you have gnome-vfs support */
+#undef HAVE_GNOME_VFS
+
+/* Define if you want HAL support */
+#undef HAVE_HAL
+
 /* Define to 1 if you have the <inttypes.h> header file. */
 #undef HAVE_INTTYPES_H
 
 /* Define if your <locale.h> file defines LC_MESSAGES. */
 #undef HAVE_LC_MESSAGES
 
-/* Define to 1 if you have the `id3tag' library (-lid3tag). */
-#undef HAVE_LIBID3TAG
-
 /* "Define to 1 if you have the mp4v2 library" */
 #undef HAVE_LIBMP4V2
 
+/* "Define to 1 if you have the ogg library" */
+#undef HAVE_LIBVORBISFILE
+
 /* Define to 1 if you have the <linux/cdrom.h> header file. */
 #undef HAVE_LINUX_CDROM_H
 

Modified: gtkpod/trunk/configure
===================================================================
--- gtkpod/trunk/configure	2007-06-27 20:59:02 UTC (rev 193)
+++ gtkpod/trunk/configure	2007-06-27 21:27:12 UTC (rev 194)
@@ -1,6 +1,6 @@
 #! /bin/sh
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.60a.
+# Generated by GNU Autoconf 2.61.
 #
 # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
 # 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
@@ -10,7 +10,8 @@
 ## M4sh Initialization.  ##
 ## --------------------- ##
 
-# Be Bourne compatible
+# Be more Bourne compatible
+DUALCASE=1; export DUALCASE # for MKS sh
 if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
   emulate sh
   NULLCMD=:
@@ -19,12 +20,15 @@
   alias -g '${1+"$@"}'='"$@"'
   setopt NO_GLOB_SUBST
 else
-  case `(set -o) 2>/dev/null` in *posix*) set -o posix;; esac
+  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'
@@ -215,7 +219,7 @@
 else
   as_candidate_shells=
     as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in /usr/bin/posix$PATH_SEPARATOR/bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH
+for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH
 do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
@@ -233,7 +237,6 @@
 	 # 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=:
@@ -242,18 +245,19 @@
   alias -g '${1+"$@"}'='"$@"'
   setopt NO_GLOB_SUBST
 else
-  case `(set -o) 2>/dev/null` in *posix*) set -o posix;; esac
+  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=:
@@ -262,11 +266,13 @@
   alias -g '${1+"$@"}'='"$@"'
   setopt NO_GLOB_SUBST
 else
-  case `(set -o) 2>/dev/null` in *posix*) set -o posix;; esac
+  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)
@@ -512,19 +518,28 @@
   as_mkdir_p=false
 fi
 
-# 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"
+if test -x / >/dev/null 2>&1; then
+  as_test_x='test -x'
 else
-  as_executable_p=:
+  if ls -dL / >/dev/null 2>&1; then
+    as_ls_L_option=L
+  else
+    as_ls_L_option=
+  fi
+  as_test_x='
+    eval sh -c '\''
+      if test -d "$1"; then
+        test -d "$1/.";
+      else
+	case $1 in
+        -*)set "./$1";;
+	esac;
+	case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in
+	???[sx]*):;;*)false;;esac;fi
+    '\'' sh
+  '
 fi
-rm -f conf$$.file
+as_executable_p=$as_test_x
 
 # 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'"
@@ -680,6 +695,34 @@
 CCDEPMODE
 am__fastdepCC_TRUE
 am__fastdepCC_FALSE
+INTLTOOL_DESKTOP_RULE
+INTLTOOL_DIRECTORY_RULE
+INTLTOOL_KEYS_RULE
+INTLTOOL_PROP_RULE
+INTLTOOL_OAF_RULE
+INTLTOOL_PONG_RULE
+INTLTOOL_SERVER_RULE
+INTLTOOL_SHEET_RULE
+INTLTOOL_SOUNDLIST_RULE
+INTLTOOL_UI_RULE
+INTLTOOL_XAM_RULE
+INTLTOOL_KBD_RULE
+INTLTOOL_XML_RULE
+INTLTOOL_XML_NOMERGE_RULE
+INTLTOOL_CAVES_RULE
+INTLTOOL_SCHEMAS_RULE
+INTLTOOL_THEME_RULE
+INTLTOOL_SERVICE_RULE
+INTLTOOL_EXTRACT
+INTLTOOL_MERGE
+INTLTOOL_UPDATE
+INTLTOOL_PERL
+INTLTOOL_ICONV
+INTLTOOL_MSGFMT
+INTLTOOL_MSGMERGE
+INTLTOOL_XGETTEXT
+ALL_LINGUAS
+DATADIRNAME
 GETTEXT_PACKAGE
 have_pkgconfig
 PKG_CONFIG
@@ -699,7 +742,6 @@
 XGETTEXT
 CATALOGS
 CATOBJEXT
-DATADIRNAME
 GMOFILES
 INSTOBJEXT
 INTLLIBS
@@ -709,6 +751,16 @@
 POSUB
 MKINSTALLDIRS
 LIBOBJS
+CURL_CFLAGS
+CURL_LIBS
+GNOME_VFS_CFLAGS
+GNOME_VFS_LIBS
+HAVE_GNOME_VFS_TRUE
+HAVE_GNOME_VFS_FALSE
+HAL_CFLAGS
+HAL_LIBS
+HAVE_HAL_TRUE
+HAVE_HAL_FALSE
 LTLIBOBJS'
 ac_subst_files=''
       ac_precious_vars='build_alias
@@ -717,11 +769,18 @@
 CC
 CFLAGS
 LDFLAGS
+LIBS
 CPPFLAGS
 PKG_CONFIG
 PACKAGE_CFLAGS
 PACKAGE_LIBS
-CPP'
+CPP
+CURL_CFLAGS
+CURL_LIBS
+GNOME_VFS_CFLAGS
+GNOME_VFS_LIBS
+HAL_CFLAGS
+HAL_LIBS'
 
 
 # Initialize some variables set by options.
@@ -827,10 +886,10 @@
   -disable-* | --disable-*)
     ac_feature=`expr "x$ac_option" : 'x-*disable-\(.*\)'`
     # Reject names that are not valid shell variable names.
-    expr "x$ac_feature" : ".*[^-_$as_cr_alnum]" >/dev/null &&
+    expr "x$ac_feature" : ".*[^-._$as_cr_alnum]" >/dev/null &&
       { echo "$as_me: error: invalid feature name: $ac_feature" >&2
    { (exit 1); exit 1; }; }
-    ac_feature=`echo $ac_feature | sed 's/-/_/g'`
+    ac_feature=`echo $ac_feature | sed 's/[-.]/_/g'`
     eval enable_$ac_feature=no ;;
 
   -docdir | --docdir | --docdi | --doc | --do)
@@ -846,10 +905,10 @@
   -enable-* | --enable-*)
     ac_feature=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'`
     # Reject names that are not valid shell variable names.
-    expr "x$ac_feature" : ".*[^-_$as_cr_alnum]" >/dev/null &&
+    expr "x$ac_feature" : ".*[^-._$as_cr_alnum]" >/dev/null &&
       { echo "$as_me: error: invalid feature name: $ac_feature" >&2
    { (exit 1); exit 1; }; }
-    ac_feature=`echo $ac_feature | sed 's/-/_/g'`
+    ac_feature=`echo $ac_feature | sed 's/[-.]/_/g'`
     eval enable_$ac_feature=\$ac_optarg ;;
 
   -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \
@@ -1043,19 +1102,19 @@
   -with-* | --with-*)
     ac_package=`expr "x$ac_option" : 'x-*with-\([^=]*\)'`
     # Reject names that are not valid shell variable names.
-    expr "x$ac_package" : ".*[^-_$as_cr_alnum]" >/dev/null &&
+    expr "x$ac_package" : ".*[^-._$as_cr_alnum]" >/dev/null &&
       { echo "$as_me: error: invalid package name: $ac_package" >&2
    { (exit 1); exit 1; }; }
-    ac_package=`echo $ac_package| sed 's/-/_/g'`
+    ac_package=`echo $ac_package | sed 's/[-.]/_/g'`
     eval with_$ac_package=\$ac_optarg ;;
 
   -without-* | --without-*)
     ac_package=`expr "x$ac_option" : 'x-*without-\(.*\)'`
     # Reject names that are not valid shell variable names.
-    expr "x$ac_package" : ".*[^-_$as_cr_alnum]" >/dev/null &&
+    expr "x$ac_package" : ".*[^-._$as_cr_alnum]" >/dev/null &&
       { echo "$as_me: error: invalid package name: $ac_package" >&2
    { (exit 1); exit 1; }; }
-    ac_package=`echo $ac_package | sed 's/-/_/g'`
+    ac_package=`echo $ac_package | sed 's/[-.]/_/g'`
     eval with_$ac_package=no ;;
 
   --x)
@@ -1304,11 +1363,18 @@
   --disable-dependency-tracking Speeds up one-time builds
   --enable-dependency-tracking  Do not reject slow dependency extractors
 
+Optional Packages:
+  --with-PACKAGE[=ARG]    use PACKAGE [ARG=yes]
+  --without-PACKAGE       do not use PACKAGE (same as --with-PACKAGE=no)
+  --without-gnome-vfs     Disable autodetection support
+  --without-hal           Disable HAL support
+
 Some influential environment variables:
   CC          C compiler command
   CFLAGS      C compiler flags
   LDFLAGS     linker flags, e.g. -L<lib dir> if you have libraries in a
               nonstandard directory <lib dir>
+  LIBS        libraries to pass to the linker, e.g. -l<library>
   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
@@ -1317,6 +1383,14 @@
   PACKAGE_LIBS
               linker flags for PACKAGE, overriding pkg-config
   CPP         C preprocessor
+  CURL_CFLAGS C compiler flags for CURL, overriding pkg-config
+  CURL_LIBS   linker flags for CURL, overriding pkg-config
+  GNOME_VFS_CFLAGS
+              C compiler flags for GNOME_VFS, overriding pkg-config
+  GNOME_VFS_LIBS
+              linker flags for GNOME_VFS, overriding pkg-config
+  HAL_CFLAGS  C compiler flags for HAL, overriding pkg-config
+  HAL_LIBS    linker flags for HAL, overriding pkg-config
 
 Use these variables to override the choices made by `configure' or to help
 it to find libraries and programs with nonstandard names/locations.
@@ -1382,7 +1456,7 @@
 if $ac_init_version; then
   cat <<\_ACEOF
 configure
-generated by GNU Autoconf 2.60a
+generated by GNU Autoconf 2.61
 
 Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
@@ -1396,7 +1470,7 @@
 running configure, to aid debugging if configure makes a mistake.
 
 It was created by $as_me, which was
-generated by GNU Autoconf 2.60a.  Invocation command line was
+generated by GNU Autoconf 2.61.  Invocation command line was
 
   $ $0 $@
 
@@ -1808,7 +1882,7 @@
     # by default.
     for ac_prog in ginstall scoinst install; do
       for ac_exec_ext in '' $ac_executable_extensions; do
-	if { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_executable_p "$as_dir/$ac_prog$ac_exec_ext"; }; then
+	if { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; }; then
 	  if test $ac_prog = install &&
 	    grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
 	    # AIX install.  It has an incompatible calling convention.
@@ -1942,7 +2016,7 @@
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
   for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; }; then
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$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
@@ -2025,7 +2099,7 @@
 
 # Define the identity of the package.
  PACKAGE=gtkpod
- VERSION=0.99.8
+ VERSION=0.99.10
 
 
 cat >>confdefs.h <<_ACEOF
@@ -2080,7 +2154,7 @@
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
   for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; }; then
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$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
@@ -2120,7 +2194,7 @@
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
   for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; }; then
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_prog_ac_ct_STRIP="strip"
     echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
@@ -2363,7 +2437,7 @@
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
   for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; }; then
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_prog_CC="${ac_tool_prefix}gcc"
     echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
@@ -2403,7 +2477,7 @@
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
   for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; }; then
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_prog_ac_ct_CC="gcc"
     echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
@@ -2460,7 +2534,7 @@
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
   for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; }; then
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_prog_CC="${ac_tool_prefix}cc"
     echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
@@ -2501,7 +2575,7 @@
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
   for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; }; then
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then
        ac_prog_rejected=yes
        continue
@@ -2559,7 +2633,7 @@
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
   for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; }; then
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_prog_CC="$ac_tool_prefix$ac_prog"
     echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
@@ -2603,7 +2677,7 @@
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
   for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; }; then
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_prog_ac_ct_CC="$ac_prog"
     echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
@@ -2966,27 +3040,10 @@
   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
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
   ac_compiler_gnu=yes
 else
   echo "$as_me: failed program was:" >&5
@@ -3041,27 +3098,10 @@
   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
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
   ac_cv_prog_cc_g=yes
 else
   echo "$as_me: failed program was:" >&5
@@ -3096,27 +3136,10 @@
   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
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
   :
 else
   echo "$as_me: failed program was:" >&5
@@ -3152,27 +3175,10 @@
   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
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
   ac_cv_prog_cc_g=yes
 else
   echo "$as_me: failed program was:" >&5
@@ -3288,27 +3294,10 @@
   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
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
   ac_cv_prog_cc_c89=$ac_arg
 else
   echo "$as_me: failed program was:" >&5
@@ -3448,14 +3437,12 @@
 
 
 
-
-        { 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 "$as_me:$LINENO: checking for library containing strerror" >&5
+echo $ECHO_N "checking for library containing strerror... $ECHO_C" >&6; }
+if test "${ac_cv_search_strerror+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-lcposix  $LIBS"
+  ac_func_search_save_LIBS=$LIBS
 cat >conftest.$ac_ext <<_ACEOF
 /* confdefs.h.  */
 _ACEOF
@@ -3478,7 +3465,14 @@
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
+for ac_lib in '' cposix; 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;;
@@ -3491,47 +3485,41 @@
   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_exeext'
-  { (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_cposix_strerror=yes
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+  ac_cv_search_strerror=$ac_res
 else
   echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
-	ac_cv_lib_cposix_strerror=no
+
 fi
 
 rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
+      conftest$ac_exeext
+  if test "${ac_cv_search_strerror+set}" = set; then
+  break
 fi
-{ 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"
+done
+if test "${ac_cv_search_strerror+set}" = set; then
+  :
+else
+  ac_cv_search_strerror=no
 fi
+rm conftest.$ac_ext
+LIBS=$ac_func_search_save_LIBS
+fi
+{ echo "$as_me:$LINENO: result: $ac_cv_search_strerror" >&5
+echo "${ECHO_T}$ac_cv_search_strerror" >&6; }
+ac_res=$ac_cv_search_strerror
+if test "$ac_res" != no; then
+  test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
 
+fi
 
-
 ac_ext=c
 ac_cpp='$CPP $CPPFLAGS'
 ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
@@ -3554,7 +3542,7 @@
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
   for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; }; then
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_prog_CC="${ac_tool_prefix}gcc"
     echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
@@ -3594,7 +3582,7 @@
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
   for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; }; then
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_prog_ac_ct_CC="gcc"
     echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
@@ -3651,7 +3639,7 @@
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
   for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; }; then
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_prog_CC="${ac_tool_prefix}cc"
     echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
@@ -3692,7 +3680,7 @@
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
   for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; }; then
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then
        ac_prog_rejected=yes
        continue
@@ -3750,7 +3738,7 @@
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
   for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; }; then
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_prog_CC="$ac_tool_prefix$ac_prog"
     echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
@@ -3794,7 +3782,7 @@
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
   for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; }; then
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_prog_ac_ct_CC="$ac_prog"
     echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
@@ -3914,27 +3902,10 @@
   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
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
   ac_compiler_gnu=yes
 else
   echo "$as_me: failed program was:" >&5
@@ -3989,27 +3960,10 @@
   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
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
   ac_cv_prog_cc_g=yes
 else
   echo "$as_me: failed program was:" >&5
@@ -4044,27 +3998,10 @@
   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
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
   :
 else
   echo "$as_me: failed program was:" >&5
@@ -4100,27 +4037,10 @@
   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
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
   ac_cv_prog_cc_g=yes
 else
   echo "$as_me: failed program was:" >&5
@@ -4236,27 +4156,10 @@
   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
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
   ac_cv_prog_cc_c89=$ac_arg
 else
   echo "$as_me: failed program was:" >&5
@@ -4473,27 +4376,10 @@
   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
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
   am_cv_prog_cc_stdc="$ac_arg"; break
 else
   echo "$as_me: failed program was:" >&5
@@ -4521,6 +4407,461 @@
 esac
 
 
+
+case "$am__api_version" in
+    1.01234)
+	{ { echo "$as_me:$LINENO: error: Automake 1.5 or newer is required to use intltool" >&5
+echo "$as_me: error: Automake 1.5 or newer is required to use intltool" >&2;}
+   { (exit 1); exit 1; }; }
+    ;;
+    *)
+    ;;
+esac
+
+if test -n "0.33"; then
+    { echo "$as_me:$LINENO: checking for intltool >= 0.33" >&5
+echo $ECHO_N "checking for intltool >= 0.33... $ECHO_C" >&6; }
+
+    INTLTOOL_REQUIRED_VERSION_AS_INT=`echo 0.33 | awk -F. '{ print $ 1 * 1000 + $ 2 * 100 + $ 3; }'`
+    INTLTOOL_APPLIED_VERSION=`awk -F\" '/\\$VERSION / { print $ 2; }' ${ac_aux_dir}/intltool-update.in`
+    INTLTOOL_APPLIED_VERSION_AS_INT=`awk -F\" '/\\$VERSION / { split($ 2, VERSION, "."); print VERSION[1] * 1000 + VERSION[2] * 100 + VERSION[3];}' ${ac_aux_dir}/intltool-update.in`
+
+    { echo "$as_me:$LINENO: result: $INTLTOOL_APPLIED_VERSION found" >&5
+echo "${ECHO_T}$INTLTOOL_APPLIED_VERSION found" >&6; }
+    test "$INTLTOOL_APPLIED_VERSION_AS_INT" -ge "$INTLTOOL_REQUIRED_VERSION_AS_INT" ||
+	{ { echo "$as_me:$LINENO: error: Your intltool is too old.  You need intltool 0.33 or later." >&5
+echo "$as_me: error: Your intltool is too old.  You need intltool 0.33 or later." >&2;}
+   { (exit 1); exit 1; }; }
+fi
+
+  INTLTOOL_DESKTOP_RULE='%.desktop:   %.desktop.in   $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@'
+INTLTOOL_DIRECTORY_RULE='%.directory: %.directory.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@'
+     INTLTOOL_KEYS_RULE='%.keys:      %.keys.in      $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -k -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@'
+     INTLTOOL_PROP_RULE='%.prop:      %.prop.in      $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@'
+      INTLTOOL_OAF_RULE='%.oaf:       %.oaf.in       $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -o -p $(top_srcdir)/po $< $@'
+     INTLTOOL_PONG_RULE='%.pong:      %.pong.in      $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@'
+   INTLTOOL_SERVER_RULE='%.server:    %.server.in    $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -o -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@'
+    INTLTOOL_SHEET_RULE='%.sheet:     %.sheet.in     $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@'
+INTLTOOL_SOUNDLIST_RULE='%.soundlist: %.soundlist.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@'
+       INTLTOOL_UI_RULE='%.ui:        %.ui.in        $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@'
+      INTLTOOL_XML_RULE='%.xml:       %.xml.in       $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@'
+      INTLTOOL_XML_NOMERGE_RULE='%.xml:       %.xml.in       $(INTLTOOL_MERGE) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u /tmp $< $@'
+      INTLTOOL_XAM_RULE='%.xam:       %.xml.in       $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@'
+      INTLTOOL_KBD_RULE='%.kbd:       %.kbd.in       $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -m -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@'
+    INTLTOOL_CAVES_RULE='%.caves:     %.caves.in     $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@'
+  INTLTOOL_SCHEMAS_RULE='%.schemas:   %.schemas.in   $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -s -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@'
+    INTLTOOL_THEME_RULE='%.theme:     %.theme.in     $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@'
+    INTLTOOL_SERVICE_RULE='%.service: %.service.in   $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@'
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+# Use the tools built into the package, not the ones that are installed.
+INTLTOOL_EXTRACT='$(top_builddir)/intltool-extract'
+
+INTLTOOL_MERGE='$(top_builddir)/intltool-merge'
+
+INTLTOOL_UPDATE='$(top_builddir)/intltool-update'
+
+
+# Extract the first word of "perl", so it can be a program name with args.
+set dummy perl; 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_path_INTLTOOL_PERL+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  case $INTLTOOL_PERL in
+  [\\/]* | ?:[\\/]*)
+  ac_cv_path_INTLTOOL_PERL="$INTLTOOL_PERL" # Let the user override the test with a path.
+  ;;
+  *)
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  for ac_exec_ext in '' $ac_executable_extensions; do
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+    ac_cv_path_INTLTOOL_PERL="$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
+INTLTOOL_PERL=$ac_cv_path_INTLTOOL_PERL
+if test -n "$INTLTOOL_PERL"; then
+  { echo "$as_me:$LINENO: result: $INTLTOOL_PERL" >&5
+echo "${ECHO_T}$INTLTOOL_PERL" >&6; }
+else
+  { echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6; }
+fi
+
+
+if test -z "$INTLTOOL_PERL"; then
+   { { echo "$as_me:$LINENO: error: perl not found; required for intltool" >&5
+echo "$as_me: error: perl not found; required for intltool" >&2;}
+   { (exit 1); exit 1; }; }
+fi
+if test -z "`$INTLTOOL_PERL -v | fgrep '5.' 2> /dev/null`"; then
+   { { echo "$as_me:$LINENO: error: perl 5.x required for intltool" >&5
+echo "$as_me: error: perl 5.x required for intltool" >&2;}
+   { (exit 1); exit 1; }; }
+fi
+if test "x" != "xno-xml"; then
+   { echo "$as_me:$LINENO: checking for XML::Parser" >&5
+echo $ECHO_N "checking for XML::Parser... $ECHO_C" >&6; }
+   if `$INTLTOOL_PERL -e "require XML::Parser" 2>/dev/null`; then
+       { echo "$as_me:$LINENO: result: ok" >&5
+echo "${ECHO_T}ok" >&6; }
+   else
+       { { echo "$as_me:$LINENO: error: XML::Parser perl module is required for intltool" >&5
+echo "$as_me: error: XML::Parser perl module is required for intltool" >&2;}
+   { (exit 1); exit 1; }; }
+   fi
+fi
+
+# Extract the first word of "iconv", so it can be a program name with args.
+set dummy iconv; 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_path_INTLTOOL_ICONV+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  case $INTLTOOL_ICONV in
+  [\\/]* | ?:[\\/]*)
+  ac_cv_path_INTLTOOL_ICONV="$INTLTOOL_ICONV" # Let the user override the test with a path.
+  ;;
+  *)
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  for ac_exec_ext in '' $ac_executable_extensions; do
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+    ac_cv_path_INTLTOOL_ICONV="$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_INTLTOOL_ICONV" && ac_cv_path_INTLTOOL_ICONV="iconv"
+  ;;
+esac
+fi
+INTLTOOL_ICONV=$ac_cv_path_INTLTOOL_ICONV
+if test -n "$INTLTOOL_ICONV"; then
+  { echo "$as_me:$LINENO: result: $INTLTOOL_ICONV" >&5
+echo "${ECHO_T}$INTLTOOL_ICONV" >&6; }
+else
+  { echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6; }
+fi
+
+
+# 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; }
+if test "${ac_cv_path_INTLTOOL_MSGFMT+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  case $INTLTOOL_MSGFMT in
+  [\\/]* | ?:[\\/]*)
+  ac_cv_path_INTLTOOL_MSGFMT="$INTLTOOL_MSGFMT" # Let the user override the test with a path.
+  ;;
+  *)
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  for ac_exec_ext in '' $ac_executable_extensions; do
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+    ac_cv_path_INTLTOOL_MSGFMT="$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_INTLTOOL_MSGFMT" && ac_cv_path_INTLTOOL_MSGFMT="msgfmt"
+  ;;
+esac
+fi
+INTLTOOL_MSGFMT=$ac_cv_path_INTLTOOL_MSGFMT
+if test -n "$INTLTOOL_MSGFMT"; then
+  { echo "$as_me:$LINENO: result: $INTLTOOL_MSGFMT" >&5
+echo "${ECHO_T}$INTLTOOL_MSGFMT" >&6; }
+else
+  { echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6; }
+fi
+
+
+# Extract the first word of "msgmerge", so it can be a program name with args.
+set dummy msgmerge; 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_path_INTLTOOL_MSGMERGE+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  case $INTLTOOL_MSGMERGE in
+  [\\/]* | ?:[\\/]*)
+  ac_cv_path_INTLTOOL_MSGMERGE="$INTLTOOL_MSGMERGE" # Let the user override the test with a path.
+  ;;
+  *)
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  for ac_exec_ext in '' $ac_executable_extensions; do
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+    ac_cv_path_INTLTOOL_MSGMERGE="$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_INTLTOOL_MSGMERGE" && ac_cv_path_INTLTOOL_MSGMERGE="msgmerge"
+  ;;
+esac
+fi
+INTLTOOL_MSGMERGE=$ac_cv_path_INTLTOOL_MSGMERGE
+if test -n "$INTLTOOL_MSGMERGE"; then
+  { echo "$as_me:$LINENO: result: $INTLTOOL_MSGMERGE" >&5
+echo "${ECHO_T}$INTLTOOL_MSGMERGE" >&6; }
+else
+  { 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; }
+if test "${ac_cv_path_INTLTOOL_XGETTEXT+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  case $INTLTOOL_XGETTEXT in
+  [\\/]* | ?:[\\/]*)
+  ac_cv_path_INTLTOOL_XGETTEXT="$INTLTOOL_XGETTEXT" # Let the user override the test with a path.
+  ;;
+  *)
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  for ac_exec_ext in '' $ac_executable_extensions; do
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+    ac_cv_path_INTLTOOL_XGETTEXT="$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_INTLTOOL_XGETTEXT" && ac_cv_path_INTLTOOL_XGETTEXT="xgettext"
+  ;;
+esac
+fi
+INTLTOOL_XGETTEXT=$ac_cv_path_INTLTOOL_XGETTEXT
+if test -n "$INTLTOOL_XGETTEXT"; then
+  { echo "$as_me:$LINENO: result: $INTLTOOL_XGETTEXT" >&5
+echo "${ECHO_T}$INTLTOOL_XGETTEXT" >&6; }
+else
+  { echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6; }
+fi
+
+
+
+# Substitute ALL_LINGUAS so we can use it in po/Makefile
+
+
+# Set DATADIRNAME correctly if it is not set yet
+# (copied from glib-gettext.m4)
+if test -z "$DATADIRNAME"; then
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+int
+main ()
+{
+extern int _nl_msg_cat_cntr;
+                 return _nl_msg_cat_cntr
+  ;
+  return 0;
+}
+_ACEOF
+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); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+  DATADIRNAME=share
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	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; }
+if test "${ac_cv_func_bind_textdomain_codeset+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+/* Define bind_textdomain_codeset to an innocuous variant, in case <limits.h> declares bind_textdomain_codeset.
+   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
+#define bind_textdomain_codeset innocuous_bind_textdomain_codeset
+
+/* System header to define __stub macros and hopefully few prototypes,
+    which can conflict with char bind_textdomain_codeset (); below.
+    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+    <limits.h> exists even on freestanding compilers.  */
+
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+
+#undef bind_textdomain_codeset
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char 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
+choke me
+#endif
+
+int
+main ()
+{
+return bind_textdomain_codeset ();
+  ;
+  return 0;
+}
+_ACEOF
+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); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+  ac_cv_func_bind_textdomain_codeset=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	ac_cv_func_bind_textdomain_codeset=no
+fi
+
+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; }
+if test $ac_cv_func_bind_textdomain_codeset = yes; then
+  DATADIRNAME=share
+else
+  DATADIRNAME=lib
+fi
+
+    ;;
+    *)
+    DATADIRNAME=lib
+    ;;
+    esac
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+fi
+
+
+
+
+
+ac_config_commands="$ac_config_commands intltool"
+
+
+
+
 if test "x$GCC" = "xyes"; then
   if test -z "`echo "$CFLAGS" | grep "\-Wall" 2> /dev/null`" ; then
     CFLAGS="$CFLAGS -Wall"
@@ -4557,27 +4898,10 @@
   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
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
   :
 else
   echo "$as_me: failed program was:" >&5
@@ -4613,7 +4937,7 @@
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
   for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; }; then
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$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
@@ -4665,7 +4989,7 @@
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
   for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; }; then
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext"
     echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
@@ -4708,7 +5032,7 @@
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
   for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; }; then
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_path_ac_pt_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext"
     echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
@@ -4773,12 +5097,12 @@
         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
+    { (echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"gtk+-2.0 >= 2.6.0 gthread-2.0 >= 0.14.0 glib-2.0 > 2.4.0 libglade-2.0  >=  2.4.0 libgnomecanvas-2.0 >= 2.14.0 gmodule-2.0 libgpod-1.0 >= 0.5.2\"") >&5
+  ($PKG_CONFIG --exists --print-errors "gtk+-2.0 >= 2.6.0 gthread-2.0 >= 0.14.0 glib-2.0 > 2.4.0 libglade-2.0  >=  2.4.0 libgnomecanvas-2.0 >= 2.14.0 gmodule-2.0 libgpod-1.0 >= 0.5.2") 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.4.0" 2>/dev/null`
+  pkg_cv_PACKAGE_CFLAGS=`$PKG_CONFIG --cflags "gtk+-2.0 >= 2.6.0 gthread-2.0 >= 0.14.0 glib-2.0 > 2.4.0 libglade-2.0  >=  2.4.0 libgnomecanvas-2.0 >= 2.14.0 gmodule-2.0 libgpod-1.0 >= 0.5.2" 2>/dev/null`
 else
   pkg_failed=yes
 fi
@@ -4791,12 +5115,12 @@
         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
+    { (echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"gtk+-2.0 >= 2.6.0 gthread-2.0 >= 0.14.0 glib-2.0 > 2.4.0 libglade-2.0  >=  2.4.0 libgnomecanvas-2.0 >= 2.14.0 gmodule-2.0 libgpod-1.0 >= 0.5.2\"") >&5
+  ($PKG_CONFIG --exists --print-errors "gtk+-2.0 >= 2.6.0 gthread-2.0 >= 0.14.0 glib-2.0 > 2.4.0 libglade-2.0  >=  2.4.0 libgnomecanvas-2.0 >= 2.14.0 gmodule-2.0 libgpod-1.0 >= 0.5.2") 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.4.0" 2>/dev/null`
+  pkg_cv_PACKAGE_LIBS=`$PKG_CONFIG --libs "gtk+-2.0 >= 2.6.0 gthread-2.0 >= 0.14.0 glib-2.0 > 2.4.0 libglade-2.0  >=  2.4.0 libgnomecanvas-2.0 >= 2.14.0 gmodule-2.0 libgpod-1.0 >= 0.5.2" 2>/dev/null`
 else
   pkg_failed=yes
 fi
@@ -4815,9 +5139,9 @@
         _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"`
+	        PACKAGE_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "gtk+-2.0 >= 2.6.0 gthread-2.0 >= 0.14.0 glib-2.0 > 2.4.0 libglade-2.0  >=  2.4.0 libgnomecanvas-2.0 >= 2.14.0 gmodule-2.0 libgpod-1.0 >= 0.5.2"`
         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"`
+	        PACKAGE_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "gtk+-2.0 >= 2.6.0 gthread-2.0 >= 0.14.0 glib-2.0 > 2.4.0 libglade-2.0  >=  2.4.0 libgnomecanvas-2.0 >= 2.14.0 gmodule-2.0 libgpod-1.0 >= 0.5.2"`
         fi
 	# Put the nasty error message in config.log where it belongs
 	echo "$PACKAGE_PKG_ERRORS" >&5
@@ -4863,7 +5187,7 @@
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
   for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; }; then
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$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
@@ -4965,27 +5289,11 @@
   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_exeext'
-  { (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
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
   ac_cv_lib_lex=$ac_lib
 else
   echo "$as_me: failed program was:" >&5
@@ -5035,27 +5343,11 @@
   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_exeext'
-  { (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
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
   ac_cv_prog_lex_yytext_pointer=yes
 else
   echo "$as_me: failed program was:" >&5
@@ -5112,7 +5404,7 @@
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
   for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; }; then
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$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
@@ -5153,7 +5445,7 @@
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
   for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; }; then
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$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
@@ -5230,17 +5522,10 @@
   rm -f conftest.er1
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } >/dev/null; then
-  if test -s conftest.err; then
-    ac_cpp_err=$ac_c_preproc_warn_flag
-    ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
-  else
-    ac_cpp_err=
-  fi
-else
-  ac_cpp_err=yes
-fi
-if test -z "$ac_cpp_err"; then
+  (exit $ac_status); } >/dev/null && {
+	 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       }; then
   :
 else
   echo "$as_me: failed program was:" >&5
@@ -5274,17 +5559,10 @@
   rm -f conftest.er1
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } >/dev/null; then
-  if test -s conftest.err; then
-    ac_cpp_err=$ac_c_preproc_warn_flag
-    ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
-  else
-    ac_cpp_err=
-  fi
-else
-  ac_cpp_err=yes
-fi
-if test -z "$ac_cpp_err"; then
+  (exit $ac_status); } >/dev/null && {
+	 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       }; then
   # Broken: success on invalid input.
 continue
 else
@@ -5349,17 +5627,10 @@
   rm -f conftest.er1
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } >/dev/null; then
-  if test -s conftest.err; then
-    ac_cpp_err=$ac_c_preproc_warn_flag
-    ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
-  else
-    ac_cpp_err=
-  fi
-else
-  ac_cpp_err=yes
-fi
-if test -z "$ac_cpp_err"; then
+  (exit $ac_status); } >/dev/null && {
+	 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       }; then
   :
 else
   echo "$as_me: failed program was:" >&5
@@ -5393,17 +5664,10 @@
   rm -f conftest.er1
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } >/dev/null; then
-  if test -s conftest.err; then
-    ac_cpp_err=$ac_c_preproc_warn_flag
-    ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
-  else
-    ac_cpp_err=
-  fi
-else
-  ac_cpp_err=yes
-fi
-if test -z "$ac_cpp_err"; then
+  (exit $ac_status); } >/dev/null && {
+	 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       }; then
   # Broken: success on invalid input.
 continue
 else
@@ -5458,7 +5722,7 @@
   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
+    { test -f "$ac_path_GREP" && $as_test_x "$ac_path_GREP"; } || continue
     # Check for GNU ac_path_GREP and select it if it is found.
   # Check for GNU $ac_path_GREP
 case `"$ac_path_GREP" --version 2>&1` in
@@ -5540,7 +5804,7 @@
   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
+    { test -f "$ac_path_EGREP" && $as_test_x "$ac_path_EGREP"; } || continue
     # Check for GNU ac_path_EGREP and select it if it is found.
   # Check for GNU $ac_path_EGREP
 case `"$ac_path_EGREP" --version 2>&1` in
@@ -5636,27 +5900,10 @@
   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
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
   ac_cv_header_stdc=yes
 else
   echo "$as_me: failed program was:" >&5
@@ -5832,27 +6079,10 @@
   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
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
   eval "$as_ac_Header=yes"
 else
   echo "$as_me: failed program was:" >&5
@@ -5916,27 +6146,10 @@
   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
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
   ac_header_compiler=yes
 else
   echo "$as_me: failed program was:" >&5
@@ -5972,17 +6185,10 @@
   rm -f conftest.er1
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } >/dev/null; then
-  if test -s conftest.err; then
-    ac_cpp_err=$ac_c_preproc_warn_flag
-    ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
-  else
-    ac_cpp_err=
-  fi
-else
-  ac_cpp_err=yes
-fi
-if test -z "$ac_cpp_err"; then
+  (exit $ac_status); } >/dev/null && {
+	 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       }; then
   ac_header_preproc=yes
 else
   echo "$as_me: failed program was:" >&5
@@ -6075,27 +6281,11 @@
   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_exeext'
-  { (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
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
   am_cv_val_LC_MESSAGES=yes
 else
   echo "$as_me: failed program was:" >&5
@@ -6160,27 +6350,10 @@
   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
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
   ac_header_compiler=yes
 else
   echo "$as_me: failed program was:" >&5
@@ -6216,17 +6389,10 @@
   rm -f conftest.er1
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } >/dev/null; then
-  if test -s conftest.err; then
-    ac_cpp_err=$ac_c_preproc_warn_flag
-    ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
-  else
-    ac_cpp_err=
-  fi
-else
-  ac_cpp_err=yes
-fi
-if test -z "$ac_cpp_err"; then
+  (exit $ac_status); } >/dev/null && {
+	 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       }; then
   ac_header_preproc=yes
 else
   echo "$as_me: failed program was:" >&5
@@ -6317,27 +6483,11 @@
   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_exeext'
-  { (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
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
   gt_cv_func_ngettext_libc=yes
 else
   echo "$as_me: failed program was:" >&5
@@ -6389,27 +6539,11 @@
   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_exeext'
-  { (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
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
   gt_cv_func_dgettext_libc=yes
 else
   echo "$as_me: failed program was:" >&5
@@ -6494,27 +6628,11 @@
   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_exeext'
-  { (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
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
   eval "$as_ac_var=yes"
 else
   echo "$as_me: failed program was:" >&5
@@ -6588,27 +6706,11 @@
   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_exeext'
-  { (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
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
   ac_cv_lib_intl_bindtextdomain=yes
 else
   echo "$as_me: failed program was:" >&5
@@ -6666,27 +6768,11 @@
   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_exeext'
-  { (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
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
   ac_cv_lib_intl_ngettext=yes
 else
   echo "$as_me: failed program was:" >&5
@@ -6744,27 +6830,11 @@
   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_exeext'
-  { (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
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
   ac_cv_lib_intl_dgettext=yes
 else
   echo "$as_me: failed program was:" >&5
@@ -6835,27 +6905,11 @@
   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_exeext'
-  { (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
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
   ac_cv_lib_intl_ngettext=yes
 else
   echo "$as_me: failed program was:" >&5
@@ -6913,27 +6967,11 @@
   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_exeext'
-  { (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
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
   ac_cv_lib_intl_dcgettext=yes
 else
   echo "$as_me: failed program was:" >&5
@@ -7037,27 +7075,11 @@
   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_exeext'
-  { (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
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
   eval "$as_ac_var=yes"
 else
   echo "$as_me: failed program was:" >&5
@@ -7213,27 +7235,11 @@
   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_exeext'
-  { (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
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
   eval "$as_ac_var=yes"
 else
   echo "$as_me: failed program was:" >&5
@@ -7274,7 +7280,7 @@
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
   for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; }; then
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_path_GMSGFMT="$as_dir/$ac_word$ac_exec_ext"
     echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
@@ -7362,27 +7368,11 @@
   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_exeext'
-  { (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
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
   CATOBJEXT=.gmo
              DATADIRNAME=share
 else
@@ -7454,27 +7444,11 @@
   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_exeext'
-  { (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
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
   ac_cv_func_bind_textdomain_codeset=yes
 else
   echo "$as_me: failed program was:" >&5
@@ -7687,27 +7661,11 @@
   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_exeext'
-  { (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
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
   eval "$as_ac_var=yes"
 else
   echo "$as_me: failed program was:" >&5
@@ -7804,27 +7762,11 @@
   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_exeext'
-  { (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
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
   eval "$as_ac_var=yes"
 else
   echo "$as_me: failed program was:" >&5
@@ -7922,27 +7864,11 @@
   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_exeext'
-  { (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
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
   eval "$as_ac_var=yes"
 else
   echo "$as_me: failed program was:" >&5
@@ -8033,27 +7959,11 @@
   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_exeext'
-  { (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
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
   eval "$as_ac_var=yes"
 else
   echo "$as_me: failed program was:" >&5
@@ -8077,14 +7987,12 @@
 done
 
 
-
-{ 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 "$as_me:$LINENO: checking for library containing id3_frame_field" >&5
+echo $ECHO_N "checking for library containing id3_frame_field... $ECHO_C" >&6; }
+if test "${ac_cv_search_id3_frame_field+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-lid3tag  $LIBS"
+  ac_func_search_save_LIBS=$LIBS
 cat >conftest.$ac_ext <<_ACEOF
 /* confdefs.h.  */
 _ACEOF
@@ -8107,7 +8015,14 @@
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
+for ac_lib in '' "id3tag" "id3tag -lz"; 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;;
@@ -8120,62 +8035,354 @@
   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
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+  ac_cv_search_id3_frame_field=$ac_res
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext
+  if test "${ac_cv_search_id3_frame_field+set}" = set; then
+  break
+fi
+done
+if test "${ac_cv_search_id3_frame_field+set}" = set; then
+  :
+else
+  ac_cv_search_id3_frame_field=no
+fi
+rm conftest.$ac_ext
+LIBS=$ac_func_search_save_LIBS
+fi
+{ echo "$as_me:$LINENO: result: $ac_cv_search_id3_frame_field" >&5
+echo "${ECHO_T}$ac_cv_search_id3_frame_field" >&6; }
+ac_res=$ac_cv_search_id3_frame_field
+if test "$ac_res" != no; then
+  test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
+
+else
+  { { echo "$as_me:$LINENO: error: *** id3tag >= 0.15 lib not found (0.14 will not work!)" >&5
+echo "$as_me: error: *** id3tag >= 0.15 lib not found (0.14 will not work!)" >&2;}
+   { (exit 1); exit 1; }; }
+fi
+
+
+
+pkg_failed=no
+{ echo "$as_me:$LINENO: checking for CURL" >&5
+echo $ECHO_N "checking for CURL... $ECHO_C" >&6; }
+
+if test -n "$PKG_CONFIG"; then
+    if test -n "$CURL_CFLAGS"; then
+        pkg_cv_CURL_CFLAGS="$CURL_CFLAGS"
+    else
+        if test -n "$PKG_CONFIG" && \
+    { (echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"libcurl >= 7.10.0\"") >&5
+  ($PKG_CONFIG --exists --print-errors "libcurl >= 7.10.0") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; } &&
-	 { ac_try='test -s conftest$ac_exeext'
-  { (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
+  (exit $ac_status); }; then
+  pkg_cv_CURL_CFLAGS=`$PKG_CONFIG --cflags "libcurl >= 7.10.0" 2>/dev/null`
+else
+  pkg_failed=yes
+fi
+    fi
+else
+	pkg_failed=untried
+fi
+if test -n "$PKG_CONFIG"; then
+    if test -n "$CURL_LIBS"; then
+        pkg_cv_CURL_LIBS="$CURL_LIBS"
+    else
+        if test -n "$PKG_CONFIG" && \
+    { (echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"libcurl >= 7.10.0\"") >&5
+  ($PKG_CONFIG --exists --print-errors "libcurl >= 7.10.0") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  ac_cv_lib_id3tag_id3_frame_field=yes
+  (exit $ac_status); }; then
+  pkg_cv_CURL_LIBS=`$PKG_CONFIG --libs "libcurl >= 7.10.0" 2>/dev/null`
 else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
+  pkg_failed=yes
+fi
+    fi
+else
+	pkg_failed=untried
+fi
 
-	ac_cv_lib_id3tag_id3_frame_field=no
+
+
+if test $pkg_failed = yes; then
+
+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
+	        CURL_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "libcurl >= 7.10.0"`
+        else
+	        CURL_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "libcurl >= 7.10.0"`
+        fi
+	# Put the nasty error message in config.log where it belongs
+	echo "$CURL_PKG_ERRORS" >&5
 
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
+	{ echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6; }
+                have_curl=no
+elif test $pkg_failed = untried; then
+	have_curl=no
+else
+	CURL_CFLAGS=$pkg_cv_CURL_CFLAGS
+	CURL_LIBS=$pkg_cv_CURL_LIBS
+        { echo "$as_me:$LINENO: result: yes" >&5
+echo "${ECHO_T}yes" >&6; }
+	have_curl=yes
 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; }
-if test $ac_cv_lib_id3tag_id3_frame_field = yes; then
-  cat >>confdefs.h <<_ACEOF
-#define HAVE_LIBID3TAG 1
+if test "$have_curl" != "no"; then
+
+cat >>confdefs.h <<\_ACEOF
+#define HAVE_CURL 1
 _ACEOF
 
-  LIBS="-lid3tag $LIBS"
+    have_curl="yes -- will build with coverart download support"
+    CPPFLAGS="$CPPFLAGS $CURL_CFLAGS"
+    CFLAGS="$CFLAGS $CURL_CFLAGS"
+    LDFLAGS="$LDFLAGS $CURL_LIBS"
+else
+    echo "*** libcurl could not be found, not building coverart download support"
+    have_curl="*no -- will build without coverart download support"
+fi
 
+
+# Check whether --with-gnome-vfs was given.
+if test "${with_gnome_vfs+set}" = set; then
+  withval=$with_gnome_vfs;
+fi
+
+if test "x$with_gnome_vfs" != "xno"; then
+
+pkg_failed=no
+{ echo "$as_me:$LINENO: checking for GNOME_VFS" >&5
+echo $ECHO_N "checking for GNOME_VFS... $ECHO_C" >&6; }
+
+if test -n "$PKG_CONFIG"; then
+    if test -n "$GNOME_VFS_CFLAGS"; then
+        pkg_cv_GNOME_VFS_CFLAGS="$GNOME_VFS_CFLAGS"
+    else
+        if test -n "$PKG_CONFIG" && \
+    { (echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"gnome-vfs-2.0 >= 2.6.0\"") >&5
+  ($PKG_CONFIG --exists --print-errors "gnome-vfs-2.0 >= 2.6.0") 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; then
+  pkg_cv_GNOME_VFS_CFLAGS=`$PKG_CONFIG --cflags "gnome-vfs-2.0 >= 2.6.0" 2>/dev/null`
 else
-  { { echo "$as_me:$LINENO: error: *** id3tag >= 0.15 lib not found (0.14 will not work!)" >&5
-echo "$as_me: error: *** id3tag >= 0.15 lib not found (0.14 will not work!)" >&2;}
+  pkg_failed=yes
+fi
+    fi
+else
+	pkg_failed=untried
+fi
+if test -n "$PKG_CONFIG"; then
+    if test -n "$GNOME_VFS_LIBS"; then
+        pkg_cv_GNOME_VFS_LIBS="$GNOME_VFS_LIBS"
+    else
+        if test -n "$PKG_CONFIG" && \
+    { (echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"gnome-vfs-2.0 >= 2.6.0\"") >&5
+  ($PKG_CONFIG --exists --print-errors "gnome-vfs-2.0 >= 2.6.0") 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; then
+  pkg_cv_GNOME_VFS_LIBS=`$PKG_CONFIG --libs "gnome-vfs-2.0 >= 2.6.0" 2>/dev/null`
+else
+  pkg_failed=yes
+fi
+    fi
+else
+	pkg_failed=untried
+fi
+
+
+
+if test $pkg_failed = yes; then
+
+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
+	        GNOME_VFS_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "gnome-vfs-2.0 >= 2.6.0"`
+        else
+	        GNOME_VFS_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "gnome-vfs-2.0 >= 2.6.0"`
+        fi
+	# Put the nasty error message in config.log where it belongs
+	echo "$GNOME_VFS_PKG_ERRORS" >&5
+
+	{ echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6; }
+                enable_gnome_vfs=no
+elif test $pkg_failed = untried; then
+	enable_gnome_vfs=no
+else
+	GNOME_VFS_CFLAGS=$pkg_cv_GNOME_VFS_CFLAGS
+	GNOME_VFS_LIBS=$pkg_cv_GNOME_VFS_LIBS
+        { echo "$as_me:$LINENO: result: yes" >&5
+echo "${ECHO_T}yes" >&6; }
+	enable_gnome_vfs=yes
+fi
+  if test "x$enable_gnome_vfs" != "xyes" -a "x$with_gnome_vfs" = "xyes"; then
+      { { echo "$as_me:$LINENO: error: gnome-vfs support explicitly requested but gnome-vfs couldn't be found" >&5
+echo "$as_me: error: gnome-vfs support explicitly requested but gnome-vfs couldn't be found" >&2;}
    { (exit 1); exit 1; }; }
+  fi
 fi
+if test "x$enable_gnome_vfs" = "xyes"; then
+    have_gnomevfs="yes -- will build with automount support"
 
+cat >>confdefs.h <<\_ACEOF
+#define HAVE_GNOME_VFS 1
+_ACEOF
 
-# was needed for podcast fetch -- disabled.
-# AC_CHECK_LIB([curl],  [curl_easy_init], ,
-#	     AC_MSG_ERROR([*** curl lib not found!]))
+    CPPFLAGS="$CPPFLAGS $GNOME_VFS_CFLAGS"
+    CFLAGS="$CFLAGS $GNOME_VFS_CFLAGS"
+    LDFLAGS="$LDFLAGS $GNOME_VFS_LIBS"
+else
+    echo "*** gnome-vfs-2 not found or disabled, not building iPod autodetection support"
+    have_gnomevfs="*no -- will build without iPod autodetection support"
+fi
 
-{ 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
+
+if test x"$enable_gnome_vfs" = xyes; then
+  HAVE_GNOME_VFS_TRUE=
+  HAVE_GNOME_VFS_FALSE='#'
+else
+  HAVE_GNOME_VFS_TRUE='#'
+  HAVE_GNOME_VFS_FALSE=
+fi
+
+
+#dnl Check for HAL
+
+# Check whether --with-hal was given.
+if test "${with_hal+set}" = set; then
+  withval=$with_hal;
+fi
+
+if test "x$with_hal" != "xno"; then
+
+pkg_failed=no
+{ echo "$as_me:$LINENO: checking for HAL" >&5
+echo $ECHO_N "checking for HAL... $ECHO_C" >&6; }
+
+if test -n "$PKG_CONFIG"; then
+    if test -n "$HAL_CFLAGS"; then
+        pkg_cv_HAL_CFLAGS="$HAL_CFLAGS"
+    else
+        if test -n "$PKG_CONFIG" && \
+    { (echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"hal >= 0.5 hal < 0.6\"") >&5
+  ($PKG_CONFIG --exists --print-errors "hal >= 0.5 hal < 0.6") 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; then
+  pkg_cv_HAL_CFLAGS=`$PKG_CONFIG --cflags "hal >= 0.5 hal < 0.6" 2>/dev/null`
+else
+  pkg_failed=yes
+fi
+    fi
+else
+	pkg_failed=untried
+fi
+if test -n "$PKG_CONFIG"; then
+    if test -n "$HAL_LIBS"; then
+        pkg_cv_HAL_LIBS="$HAL_LIBS"
+    else
+        if test -n "$PKG_CONFIG" && \
+    { (echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"hal >= 0.5 hal < 0.6\"") >&5
+  ($PKG_CONFIG --exists --print-errors "hal >= 0.5 hal < 0.6") 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; then
+  pkg_cv_HAL_LIBS=`$PKG_CONFIG --libs "hal >= 0.5 hal < 0.6" 2>/dev/null`
+else
+  pkg_failed=yes
+fi
+    fi
+else
+	pkg_failed=untried
+fi
+
+
+
+if test $pkg_failed = yes; then
+
+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
+	        HAL_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "hal >= 0.5 hal < 0.6"`
+        else
+	        HAL_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "hal >= 0.5 hal < 0.6"`
+        fi
+	# Put the nasty error message in config.log where it belongs
+	echo "$HAL_PKG_ERRORS" >&5
+
+	{ echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6; }
+                enable_hal=no
+elif test $pkg_failed = untried; then
+	enable_hal=no
+else
+	HAL_CFLAGS=$pkg_cv_HAL_CFLAGS
+	HAL_LIBS=$pkg_cv_HAL_LIBS
+        { echo "$as_me:$LINENO: result: yes" >&5
+echo "${ECHO_T}yes" >&6; }
+	enable_hal=yes
+fi
+  if test "x$enable_hal" != "xyes" -a "x$with_hal" = "xyes"; then
+      { { echo "$as_me:$LINENO: error: HAL support explicitly requested but HAL couldn't be found" >&5
+echo "$as_me: error: HAL support explicitly requested but HAL couldn't be found" >&2;}
+   { (exit 1); exit 1; }; }
+  fi
+fi
+if test "x$enable_hal" = "xyes"; then
+  have_hal="yes -- will build with HAL support"
+
+cat >>confdefs.h <<\_ACEOF
+#define HAVE_HAL 1
+_ACEOF
+
+  CPPFLAGS="$CPPFLAGS $HAL_CFLAGS"
+  CFLAGS="$CFLAGS $HAL_CFLAGS"
+  LDFLAGS="$LDFLAGS $HAL_LIBS"
+else
+  have_hal="*no -- will build without HAL support"
+fi
+
+
+if test x"$enable_hal" = xyes; then
+  HAVE_HAL_TRUE=
+  HAVE_HAL_FALSE='#'
+else
+  HAVE_HAL_TRUE='#'
+  HAVE_HAL_FALSE=
+fi
+
+
+
+{ echo "$as_me:$LINENO: checking for library containing MP4GetMetadataGrouping" >&5
+echo $ECHO_N "checking for library containing MP4GetMetadataGrouping... $ECHO_C" >&6; }
+if test "${ac_cv_search_MP4GetMetadataGrouping+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
   ac_func_search_save_LIBS=$LIBS
@@ -8192,11 +8399,11 @@
 #ifdef __cplusplus
 extern "C"
 #endif
-char MP4FileInfo ();
+char MP4GetMetadataGrouping ();
 int
 main ()
 {
-return MP4FileInfo ();
+return MP4GetMetadataGrouping ();
   ;
   return 0;
 }
@@ -8221,28 +8428,12 @@
   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_exeext'
-  { (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=$ac_res
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+  ac_cv_search_MP4GetMetadataGrouping=$ac_res
 else
   echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
@@ -8252,21 +8443,21 @@
 
 rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
       conftest$ac_exeext
-  if test "${ac_cv_search_MP4FileInfo+set}" = set; then
+  if test "${ac_cv_search_MP4GetMetadataGrouping+set}" = set; then
   break
 fi
 done
-if test "${ac_cv_search_MP4FileInfo+set}" = set; then
+if test "${ac_cv_search_MP4GetMetadataGrouping+set}" = set; then
   :
 else
-  ac_cv_search_MP4FileInfo=no
+  ac_cv_search_MP4GetMetadataGrouping=no
 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; }
-ac_res=$ac_cv_search_MP4FileInfo
+{ echo "$as_me:$LINENO: result: $ac_cv_search_MP4GetMetadataGrouping" >&5
+echo "${ECHO_T}$ac_cv_search_MP4GetMetadataGrouping" >&6; }
+ac_res=$ac_cv_search_MP4GetMetadataGrouping
 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
@@ -8303,27 +8494,10 @@
   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
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
   ac_header_compiler=yes
 else
   echo "$as_me: failed program was:" >&5
@@ -8359,17 +8533,10 @@
   rm -f conftest.er1
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } >/dev/null; then
-  if test -s conftest.err; then
-    ac_cpp_err=$ac_c_preproc_warn_flag
-    ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
-  else
-    ac_cpp_err=
-  fi
-else
-  ac_cpp_err=yes
-fi
-if test -z "$ac_cpp_err"; then
+  (exit $ac_status); } >/dev/null && {
+	 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       }; then
   ac_header_preproc=yes
 else
   echo "$as_me: failed program was:" >&5
@@ -8433,12 +8600,12 @@
 
 
 if test "y$have_mp4v2" = "y"; then
-	have_mp4v2="*** no -- will build without aac support"
+	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; }
-if test "${ac_cv_search_bind+set}" = set; then
+{ echo "$as_me:$LINENO: checking for library containing ov_open" >&5
+echo $ECHO_N "checking for library containing ov_open... $ECHO_C" >&6; }
+if test "${ac_cv_search_ov_open+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
   ac_func_search_save_LIBS=$LIBS
@@ -8455,16 +8622,16 @@
 #ifdef __cplusplus
 extern "C"
 #endif
-char bind ();
+char ov_open ();
 int
 main ()
 {
-return bind ();
+return ov_open ();
   ;
   return 0;
 }
 _ACEOF
-for ac_lib in '' "socket" "nsl" "socket -lnsl"; do
+for ac_lib in '' "vorbisfile"; do
   if test -z "$ac_lib"; then
     ac_res="none required"
   else
@@ -8484,27 +8651,455 @@
   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
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+  ac_cv_search_ov_open=$ac_res
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext
+  if test "${ac_cv_search_ov_open+set}" = set; then
+  break
+fi
+done
+if test "${ac_cv_search_ov_open+set}" = set; then
+  :
+else
+  ac_cv_search_ov_open=no
+fi
+rm conftest.$ac_ext
+LIBS=$ac_func_search_save_LIBS
+fi
+{ echo "$as_me:$LINENO: result: $ac_cv_search_ov_open" >&5
+echo "${ECHO_T}$ac_cv_search_ov_open" >&6; }
+ac_res=$ac_cv_search_ov_open
+if test "$ac_res" != no; then
+  test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
+  if test "${ac_cv_header_vorbis_vorbisfile_h+set}" = set; then
+  { echo "$as_me:$LINENO: checking for vorbis/vorbisfile.h" >&5
+echo $ECHO_N "checking for vorbis/vorbisfile.h... $ECHO_C" >&6; }
+if test "${ac_cv_header_vorbis_vorbisfile_h+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+fi
+{ echo "$as_me:$LINENO: result: $ac_cv_header_vorbis_vorbisfile_h" >&5
+echo "${ECHO_T}$ac_cv_header_vorbis_vorbisfile_h" >&6; }
+else
+  # Is the header compilable?
+{ echo "$as_me:$LINENO: checking vorbis/vorbisfile.h usability" >&5
+echo $ECHO_N "checking vorbis/vorbisfile.h usability... $ECHO_C" >&6; }
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+#include <vorbis/vorbisfile.h>
+_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_try") 2>&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 -s conftest$ac_exeext'
-  { (case "(($ac_try" in
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
+  ac_header_compiler=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	ac_header_compiler=no
+fi
+
+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 vorbis/vorbisfile.h presence" >&5
+echo $ECHO_N "checking vorbis/vorbisfile.h presence... $ECHO_C" >&6; }
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <vorbis/vorbisfile.h>
+_ACEOF
+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_try") 2>&5
+  (eval "$ac_cpp conftest.$ac_ext") 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); }; }; then
+  (exit $ac_status); } >/dev/null && {
+	 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       }; then
+  ac_header_preproc=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+  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; }
+
+# So?  What about this header?
+case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
+  yes:no: )
+    { echo "$as_me:$LINENO: WARNING: vorbis/vorbisfile.h: accepted by the compiler, rejected by the preprocessor!" >&5
+echo "$as_me: WARNING: vorbis/vorbisfile.h: accepted by the compiler, rejected by the preprocessor!" >&2;}
+    { echo "$as_me:$LINENO: WARNING: vorbis/vorbisfile.h: proceeding with the compiler's result" >&5
+echo "$as_me: WARNING: vorbis/vorbisfile.h: proceeding with the compiler's result" >&2;}
+    ac_header_preproc=yes
+    ;;
+  no:yes:* )
+    { echo "$as_me:$LINENO: WARNING: vorbis/vorbisfile.h: present but cannot be compiled" >&5
+echo "$as_me: WARNING: vorbis/vorbisfile.h: present but cannot be compiled" >&2;}
+    { echo "$as_me:$LINENO: WARNING: vorbis/vorbisfile.h:     check for missing prerequisite headers?" >&5
+echo "$as_me: WARNING: vorbis/vorbisfile.h:     check for missing prerequisite headers?" >&2;}
+    { echo "$as_me:$LINENO: WARNING: vorbis/vorbisfile.h: see the Autoconf documentation" >&5
+echo "$as_me: WARNING: vorbis/vorbisfile.h: see the Autoconf documentation" >&2;}
+    { echo "$as_me:$LINENO: WARNING: vorbis/vorbisfile.h:     section \"Present But Cannot Be Compiled\"" >&5
+echo "$as_me: WARNING: vorbis/vorbisfile.h:     section \"Present But Cannot Be Compiled\"" >&2;}
+    { echo "$as_me:$LINENO: WARNING: vorbis/vorbisfile.h: proceeding with the preprocessor's result" >&5
+echo "$as_me: WARNING: vorbis/vorbisfile.h: proceeding with the preprocessor's result" >&2;}
+    { echo "$as_me:$LINENO: WARNING: vorbis/vorbisfile.h: in the future, the compiler will take precedence" >&5
+echo "$as_me: WARNING: vorbis/vorbisfile.h: in the future, the compiler will take precedence" >&2;}
+
+    ;;
+esac
+{ echo "$as_me:$LINENO: checking for vorbis/vorbisfile.h" >&5
+echo $ECHO_N "checking for vorbis/vorbisfile.h... $ECHO_C" >&6; }
+if test "${ac_cv_header_vorbis_vorbisfile_h+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_cv_header_vorbis_vorbisfile_h=$ac_header_preproc
+fi
+{ echo "$as_me:$LINENO: result: $ac_cv_header_vorbis_vorbisfile_h" >&5
+echo "${ECHO_T}$ac_cv_header_vorbis_vorbisfile_h" >&6; }
+
+fi
+if test $ac_cv_header_vorbis_vorbisfile_h = yes; then
+  have_vorbisfile="yes -- will build with ogg support"
+cat >>confdefs.h <<_ACEOF
+#define HAVE_LIBVORBISFILE 1
+_ACEOF
+
+else
+  echo "*** vorbisfile.h cannot be found. Check your ogg/vorbis installation."
+fi
+
+
+fi
+
+if test "y$have_vorbisfile" = "y"; then
+        have_vorbisfile="*no -- will build without ogg support"
+fi
+
+{ echo "$as_me:$LINENO: checking for library containing FLAC__metadata_get_streaminfo" >&5
+echo $ECHO_N "checking for library containing FLAC__metadata_get_streaminfo... $ECHO_C" >&6; }
+if test "${ac_cv_search_FLAC__metadata_get_streaminfo+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_func_search_save_LIBS=$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 GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char FLAC__metadata_get_streaminfo ();
+int
+main ()
+{
+return FLAC__metadata_get_streaminfo ();
+  ;
+  return 0;
+}
+_ACEOF
+for ac_lib in '' "FLAC"; 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); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+  ac_cv_search_FLAC__metadata_get_streaminfo=$ac_res
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext
+  if test "${ac_cv_search_FLAC__metadata_get_streaminfo+set}" = set; then
+  break
+fi
+done
+if test "${ac_cv_search_FLAC__metadata_get_streaminfo+set}" = set; then
+  :
+else
+  ac_cv_search_FLAC__metadata_get_streaminfo=no
+fi
+rm conftest.$ac_ext
+LIBS=$ac_func_search_save_LIBS
+fi
+{ echo "$as_me:$LINENO: result: $ac_cv_search_FLAC__metadata_get_streaminfo" >&5
+echo "${ECHO_T}$ac_cv_search_FLAC__metadata_get_streaminfo" >&6; }
+ac_res=$ac_cv_search_FLAC__metadata_get_streaminfo
+if test "$ac_res" != no; then
+  test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
+  if test "${ac_cv_header_FLAC_metadata_h+set}" = set; then
+  { echo "$as_me:$LINENO: checking for FLAC/metadata.h" >&5
+echo $ECHO_N "checking for FLAC/metadata.h... $ECHO_C" >&6; }
+if test "${ac_cv_header_FLAC_metadata_h+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+fi
+{ echo "$as_me:$LINENO: result: $ac_cv_header_FLAC_metadata_h" >&5
+echo "${ECHO_T}$ac_cv_header_FLAC_metadata_h" >&6; }
+else
+  # Is the header compilable?
+{ echo "$as_me:$LINENO: checking FLAC/metadata.h usability" >&5
+echo $ECHO_N "checking FLAC/metadata.h usability... $ECHO_C" >&6; }
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+#include <FLAC/metadata.h>
+_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); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
+  ac_header_compiler=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	ac_header_compiler=no
+fi
+
+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 FLAC/metadata.h presence" >&5
+echo $ECHO_N "checking FLAC/metadata.h presence... $ECHO_C" >&6; }
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <FLAC/metadata.h>
+_ACEOF
+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
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } >/dev/null && {
+	 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       }; then
+  ac_header_preproc=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+  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; }
+
+# So?  What about this header?
+case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
+  yes:no: )
+    { echo "$as_me:$LINENO: WARNING: FLAC/metadata.h: accepted by the compiler, rejected by the preprocessor!" >&5
+echo "$as_me: WARNING: FLAC/metadata.h: accepted by the compiler, rejected by the preprocessor!" >&2;}
+    { echo "$as_me:$LINENO: WARNING: FLAC/metadata.h: proceeding with the compiler's result" >&5
+echo "$as_me: WARNING: FLAC/metadata.h: proceeding with the compiler's result" >&2;}
+    ac_header_preproc=yes
+    ;;
+  no:yes:* )
+    { echo "$as_me:$LINENO: WARNING: FLAC/metadata.h: present but cannot be compiled" >&5
+echo "$as_me: WARNING: FLAC/metadata.h: present but cannot be compiled" >&2;}
+    { echo "$as_me:$LINENO: WARNING: FLAC/metadata.h:     check for missing prerequisite headers?" >&5
+echo "$as_me: WARNING: FLAC/metadata.h:     check for missing prerequisite headers?" >&2;}
+    { echo "$as_me:$LINENO: WARNING: FLAC/metadata.h: see the Autoconf documentation" >&5
+echo "$as_me: WARNING: FLAC/metadata.h: see the Autoconf documentation" >&2;}
+    { echo "$as_me:$LINENO: WARNING: FLAC/metadata.h:     section \"Present But Cannot Be Compiled\"" >&5
+echo "$as_me: WARNING: FLAC/metadata.h:     section \"Present But Cannot Be Compiled\"" >&2;}
+    { echo "$as_me:$LINENO: WARNING: FLAC/metadata.h: proceeding with the preprocessor's result" >&5
+echo "$as_me: WARNING: FLAC/metadata.h: proceeding with the preprocessor's result" >&2;}
+    { echo "$as_me:$LINENO: WARNING: FLAC/metadata.h: in the future, the compiler will take precedence" >&5
+echo "$as_me: WARNING: FLAC/metadata.h: in the future, the compiler will take precedence" >&2;}
+
+    ;;
+esac
+{ echo "$as_me:$LINENO: checking for FLAC/metadata.h" >&5
+echo $ECHO_N "checking for FLAC/metadata.h... $ECHO_C" >&6; }
+if test "${ac_cv_header_FLAC_metadata_h+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_cv_header_FLAC_metadata_h=$ac_header_preproc
+fi
+{ echo "$as_me:$LINENO: result: $ac_cv_header_FLAC_metadata_h" >&5
+echo "${ECHO_T}$ac_cv_header_FLAC_metadata_h" >&6; }
+
+fi
+if test $ac_cv_header_FLAC_metadata_h = yes; then
+  have_flac="yes -- will build with FLAC support"
+cat >>confdefs.h <<_ACEOF
+#define HAVE_FLAC 1
+_ACEOF
+
+else
+  echo "*** FLAC/metadata.h cannot be found. Check your FLAC installation."
+fi
+
+
+fi
+
+if test "y$have_flac" = "y"; then
+        have_flac="*no -- will build without FLAC support"
+fi
+
+{ 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
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char bind ();
+int
+main ()
+{
+return bind ();
+  ;
+  return 0;
+}
+_ACEOF
+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); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
   ac_cv_search_bind=$ac_res
 else
   echo "$as_me: failed program was:" >&5
@@ -8578,27 +9173,10 @@
   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
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
   ac_header_compiler=yes
 else
   echo "$as_me: failed program was:" >&5
@@ -8634,17 +9212,10 @@
   rm -f conftest.er1
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } >/dev/null; then
-  if test -s conftest.err; then
-    ac_cpp_err=$ac_c_preproc_warn_flag
-    ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
-  else
-    ac_cpp_err=
-  fi
-else
-  ac_cpp_err=yes
-fi
-if test -z "$ac_cpp_err"; then
+  (exit $ac_status); } >/dev/null && {
+	 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       }; then
   ac_header_preproc=yes
 else
   echo "$as_me: failed program was:" >&5
@@ -8704,7 +9275,7 @@
 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 data/Makefile data/icons/Makefile data/icons/32x32/Makefile data/icons/48x48/Makefile data/icons/64x64/Makefile"
 
 cat >confcache <<\_ACEOF
 # This file is a shell script that caches the results of configure
@@ -8831,6 +9402,24 @@
    { (exit 1); exit 1; }; }
 fi
 
+  ac_config_commands="$ac_config_commands po/stamp-it"
+
+
+if test -z "${HAVE_GNOME_VFS_TRUE}" && test -z "${HAVE_GNOME_VFS_FALSE}"; then
+  { { echo "$as_me:$LINENO: error: conditional \"HAVE_GNOME_VFS\" was never defined.
+Usually this means the macro was only invoked conditionally." >&5
+echo "$as_me: error: conditional \"HAVE_GNOME_VFS\" was never defined.
+Usually this means the macro was only invoked conditionally." >&2;}
+   { (exit 1); exit 1; }; }
+fi
+if test -z "${HAVE_HAL_TRUE}" && test -z "${HAVE_HAL_FALSE}"; then
+  { { echo "$as_me:$LINENO: error: conditional \"HAVE_HAL\" was never defined.
+Usually this means the macro was only invoked conditionally." >&5
+echo "$as_me: error: conditional \"HAVE_HAL\" was never defined.
+Usually this means the macro was only invoked conditionally." >&2;}
+   { (exit 1); exit 1; }; }
+fi
+
 : ${CONFIG_STATUS=./config.status}
 ac_clean_files_save=$ac_clean_files
 ac_clean_files="$ac_clean_files $CONFIG_STATUS"
@@ -8854,7 +9443,8 @@
 ## M4sh Initialization.  ##
 ## --------------------- ##
 
-# Be Bourne compatible
+# Be more Bourne compatible
+DUALCASE=1; export DUALCASE # for MKS sh
 if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
   emulate sh
   NULLCMD=:
@@ -8863,12 +9453,15 @@
   alias -g '${1+"$@"}'='"$@"'
   setopt NO_GLOB_SUBST
 else
-  case `(set -o) 2>/dev/null` in *posix*) set -o posix;; esac
+  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'
@@ -9090,19 +9683,28 @@
   as_mkdir_p=false
 fi
 
-# 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"
+if test -x / >/dev/null 2>&1; then
+  as_test_x='test -x'
 else
-  as_executable_p=:
+  if ls -dL / >/dev/null 2>&1; then
+    as_ls_L_option=L
+  else
+    as_ls_L_option=
+  fi
+  as_test_x='
+    eval sh -c '\''
+      if test -d "$1"; then
+        test -d "$1/.";
+      else
+	case $1 in
+        -*)set "./$1";;
+	esac;
+	case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in
+	???[sx]*):;;*)false;;esac;fi
+    '\'' sh
+  '
 fi
-rm -f conf$$.file
+as_executable_p=$as_test_x
 
 # 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'"
@@ -9118,7 +9720,7 @@
 # values after options handling.
 ac_log="
 This file was extended by $as_me, which was
-generated by GNU Autoconf 2.60a.  Invocation command line was
+generated by GNU Autoconf 2.61.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
   CONFIG_HEADERS  = $CONFIG_HEADERS
@@ -9171,7 +9773,7 @@
 cat >>$CONFIG_STATUS <<_ACEOF
 ac_cs_version="\\
 config.status
-configured by $0, generated by GNU Autoconf 2.60a,
+configured by $0, generated by GNU Autoconf 2.61,
   with options \\"`echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\"
 
 Copyright (C) 2006 Free Software Foundation, Inc.
@@ -9274,6 +9876,11 @@
 # INIT-COMMANDS
 #
 AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"
+INTLTOOL_PERL='${INTLTOOL_PERL}' ac_aux_dir='${ac_aux_dir}'
+prefix="$prefix" exec_prefix="$exec_prefix" INTLTOOL_LIBDIR="$libdir"
+INTLTOOL_EXTRACT='${INTLTOOL_EXTRACT}' INTLTOOL_ICONV='${INTLTOOL_ICONV}'
+INTLTOOL_MSGFMT='${INTLTOOL_MSGFMT}' INTLTOOL_MSGMERGE='${INTLTOOL_MSGMERGE}'
+INTLTOOL_XGETTEXT='${INTLTOOL_XGETTEXT}'
 
 
 _ACEOF
@@ -9286,11 +9893,18 @@
   case $ac_config_target in
     "config.h") CONFIG_HEADERS="$CONFIG_HEADERS config.h" ;;
     "depfiles") CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;;
+    "intltool") CONFIG_COMMANDS="$CONFIG_COMMANDS intltool" ;;
     "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" ;;
+    "data/Makefile") CONFIG_FILES="$CONFIG_FILES data/Makefile" ;;
+    "data/icons/Makefile") CONFIG_FILES="$CONFIG_FILES data/icons/Makefile" ;;
+    "data/icons/32x32/Makefile") CONFIG_FILES="$CONFIG_FILES data/icons/32x32/Makefile" ;;
+    "data/icons/48x48/Makefile") CONFIG_FILES="$CONFIG_FILES data/icons/48x48/Makefile" ;;
+    "data/icons/64x64/Makefile") CONFIG_FILES="$CONFIG_FILES data/icons/64x64/Makefile" ;;
+    "po/stamp-it") CONFIG_COMMANDS="$CONFIG_COMMANDS po/stamp-it" ;;
 
   *) { { echo "$as_me:$LINENO: error: invalid argument: $ac_config_target" >&5
 echo "$as_me: error: invalid argument: $ac_config_target" >&2;}
@@ -9435,21 +10049,21 @@
 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
+INTLTOOL_DESKTOP_RULE!$INTLTOOL_DESKTOP_RULE$ac_delim
+INTLTOOL_DIRECTORY_RULE!$INTLTOOL_DIRECTORY_RULE$ac_delim
+INTLTOOL_KEYS_RULE!$INTLTOOL_KEYS_RULE$ac_delim
+INTLTOOL_PROP_RULE!$INTLTOOL_PROP_RULE$ac_delim
+INTLTOOL_OAF_RULE!$INTLTOOL_OAF_RULE$ac_delim
+INTLTOOL_PONG_RULE!$INTLTOOL_PONG_RULE$ac_delim
+INTLTOOL_SERVER_RULE!$INTLTOOL_SERVER_RULE$ac_delim
+INTLTOOL_SHEET_RULE!$INTLTOOL_SHEET_RULE$ac_delim
+INTLTOOL_SOUNDLIST_RULE!$INTLTOOL_SOUNDLIST_RULE$ac_delim
+INTLTOOL_UI_RULE!$INTLTOOL_UI_RULE$ac_delim
+INTLTOOL_XAM_RULE!$INTLTOOL_XAM_RULE$ac_delim
+INTLTOOL_KBD_RULE!$INTLTOOL_KBD_RULE$ac_delim
+INTLTOOL_XML_RULE!$INTLTOOL_XML_RULE$ac_delim
+INTLTOOL_XML_NOMERGE_RULE!$INTLTOOL_XML_NOMERGE_RULE$ac_delim
+INTLTOOL_CAVES_RULE!$INTLTOOL_CAVES_RULE$ac_delim
 _ACEOF
 
   if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 97; then
@@ -9491,11 +10105,38 @@
 ac_delim='%!_!# '
 for ac_last_try in false false false false false :; do
   cat >conf$$subs.sed <<_ACEOF
+INTLTOOL_SCHEMAS_RULE!$INTLTOOL_SCHEMAS_RULE$ac_delim
+INTLTOOL_THEME_RULE!$INTLTOOL_THEME_RULE$ac_delim
+INTLTOOL_SERVICE_RULE!$INTLTOOL_SERVICE_RULE$ac_delim
+INTLTOOL_EXTRACT!$INTLTOOL_EXTRACT$ac_delim
+INTLTOOL_MERGE!$INTLTOOL_MERGE$ac_delim
+INTLTOOL_UPDATE!$INTLTOOL_UPDATE$ac_delim
+INTLTOOL_PERL!$INTLTOOL_PERL$ac_delim
+INTLTOOL_ICONV!$INTLTOOL_ICONV$ac_delim
+INTLTOOL_MSGFMT!$INTLTOOL_MSGFMT$ac_delim
+INTLTOOL_MSGMERGE!$INTLTOOL_MSGMERGE$ac_delim
+INTLTOOL_XGETTEXT!$INTLTOOL_XGETTEXT$ac_delim
+ALL_LINGUAS!$ALL_LINGUAS$ac_delim
+DATADIRNAME!$DATADIRNAME$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
 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
@@ -9505,10 +10146,20 @@
 POSUB!$POSUB$ac_delim
 MKINSTALLDIRS!$MKINSTALLDIRS$ac_delim
 LIBOBJS!$LIBOBJS$ac_delim
+CURL_CFLAGS!$CURL_CFLAGS$ac_delim
+CURL_LIBS!$CURL_LIBS$ac_delim
+GNOME_VFS_CFLAGS!$GNOME_VFS_CFLAGS$ac_delim
+GNOME_VFS_LIBS!$GNOME_VFS_LIBS$ac_delim
+HAVE_GNOME_VFS_TRUE!$HAVE_GNOME_VFS_TRUE$ac_delim
+HAVE_GNOME_VFS_FALSE!$HAVE_GNOME_VFS_FALSE$ac_delim
+HAL_CFLAGS!$HAL_CFLAGS$ac_delim
+HAL_LIBS!$HAL_LIBS$ac_delim
+HAVE_HAL_TRUE!$HAVE_HAL_TRUE$ac_delim
+HAVE_HAL_FALSE!$HAVE_HAL_FALSE$ac_delim
 LTLIBOBJS!$LTLIBOBJS$ac_delim
 _ACEOF
 
-  if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 15; then
+  if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 52; then
     break
   elif $ac_last_try; then
     { { echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5
@@ -10073,10 +10724,54 @@
   done
 done
  ;;
+    "intltool":C)
+
+for file in intltool-extract intltool-merge intltool-update; do
+  sed -e "s|@INTLTOOL_EXTRACT@|`pwd`/intltool-extract|g" \
+      -e "s|@INTLTOOL_LIBDIR@|${INTLTOOL_LIBDIR}|g" \
+      -e "s|@INTLTOOL_ICONV@|${INTLTOOL_ICONV}|g" \
+      -e "s|@INTLTOOL_MSGFMT@|${INTLTOOL_MSGFMT}|g" \
+      -e "s|@INTLTOOL_MSGMERGE@|${INTLTOOL_MSGMERGE}|g" \
+      -e "s|@INTLTOOL_XGETTEXT@|${INTLTOOL_XGETTEXT}|g" \
+      -e "s|@INTLTOOL_PERL@|${INTLTOOL_PERL}|g" \
+	< ${ac_aux_dir}/${file}.in > ${file}.out
+  if cmp -s ${file} ${file}.out 2>/dev/null; then
+    rm -f ${file}.out
+  else
+    mv -f ${file}.out ${file}
+  fi
+  chmod ugo+x ${file}
+  chmod u+w ${file}
+done
+
+ ;;
     "default-1":C) case "$CONFIG_FILES" in *po/Makefile.in*)
         sed -e "/POTFILES =/r po/POTFILES" po/Makefile.in > po/Makefile
       esac ;;
+    "po/stamp-it":C)
+    rm -f "po/stamp-it" "po/stamp-it.tmp" "po/POTFILES" "po/Makefile.tmp"
+    >"po/stamp-it.tmp"
+    sed '/^#/d
+	 s/^[[].*] *//
+	 /^[ 	]*$/d
+	'"s|^|	$ac_top_srcdir/|" \
+      "$srcdir/po/POTFILES.in" | sed '$!s/$/ \\/' >"po/POTFILES"
 
+    if test ! -f "po/Makefile"; then
+      { { echo "$as_me:$LINENO: error: po/Makefile is not ready." >&5
+echo "$as_me: error: po/Makefile is not ready." >&2;}
+   { (exit 1); exit 1; }; }
+    fi
+    mv "po/Makefile" "po/Makefile.tmp"
+    sed '/^POTFILES =/,/[^\\]$/ {
+		/^POTFILES =/!d
+		r po/POTFILES
+	  }
+	 ' "po/Makefile.tmp" >"po/Makefile"
+    rm -f "po/Makefile.tmp"
+    mv "po/stamp-it.tmp" "po/stamp-it"
+   ;;
+
   esac
 done # for ac_tag
 
@@ -10115,14 +10810,17 @@
 
  Host System Type .....: $host
  Install path .........: $prefix
+ GTK2 version .........: `pkg-config gtk+-2.0 --modversion`
+ GLib2/GThread version : `pkg-config gthread-2.0 --modversion`
+ gnome-vfs.............: $have_gnomevfs
+ hal...................: $have_hal
+ libcurl ..............: $have_curl
+ mp4v2 ................: $have_mp4v2
+ vorbisfile ...........: $have_vorbisfile
+ FLAC .................: $have_flac
  Preprocessor .........: $CC $CPPFLAGS
  Compiler .............: $CC $CFLAGS $PACKAGE_CFLAGS
  Linker ...............: $CC $LDFLAGS $LIBS $PACKAGE_LIBS
- GTK2 version .........: `pkg-config gtk+-2.0 --modversion`
- GLib2/GThread version : `pkg-config gthread-2.0 --modversion`
- id3tag lib ...........: yes
- mp4v2 ................: $have_mp4v2
- NLS/gettext ..........: $USE_NLS
 
  Now type 'make' to build $PACKAGE $VERSION,
  and then 'make install' for installation.

Modified: gtkpod/trunk/configure.in
===================================================================
--- gtkpod/trunk/configure.in	2007-06-27 20:59:02 UTC (rev 193)
+++ gtkpod/trunk/configure.in	2007-06-27 21:27:12 UTC (rev 194)
@@ -4,7 +4,7 @@
 AC_PREREQ(2.55)
 
 AC_INIT(configure.in)
-AM_INIT_AUTOMAKE(gtkpod, 0.99.8)
+AM_INIT_AUTOMAKE(gtkpod, 0.99.10)
 AM_CONFIG_HEADER(config.h)
 AM_MAINTAINER_MODE
 AC_CANONICAL_HOST
@@ -12,6 +12,8 @@
 AC_PROG_CC
 AM_PROG_CC_STDC
 
+IT_PROG_INTLTOOL([0.33])
+
 dnl Only use -Wall if we have gcc
 if test "x$GCC" = "xyes"; then
   if test -z "`echo "$CFLAGS" | grep "\-Wall" 2> /dev/null`" ; then
@@ -37,7 +39,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.4.0],,[AC_MSG_FAILURE([*** $PACKAGE_PKG_ERRORS])])
+PKG_CHECK_MODULES(PACKAGE, [gtk+-2.0 >= 2.6.0 gthread-2.0 >= 0.14.0 glib-2.0 > 2.4.0 libglade-2.0  >=  2.4.0 libgnomecanvas-2.0 >= 2.14.0 gmodule-2.0 libgpod-1.0 >= 0.5.2],,[AC_MSG_FAILURE([*** $PACKAGE_PKG_ERRORS])])
 AC_SUBST(PACKAGE_CFLAGS)
 AC_SUBST(PACKAGE_LIBS)
 
@@ -74,24 +76,97 @@
 AC_CHECK_FUNCS(statvfs)
 
 dnl Check for libid3tag
-AC_CHECK_LIB([id3tag], [id3_frame_field], ,
-             AC_MSG_ERROR([*** id3tag >= 0.15 lib not found (0.14 will not work!)]))
+AC_SEARCH_LIBS([id3_frame_field],
+	["id3tag" "id3tag -lz"],
+	,
+	AC_MSG_ERROR([*** id3tag >= 0.15 lib not found (0.14 will not work!)]))
 
-# was needed for podcast fetch -- disabled.
-# AC_CHECK_LIB([curl],  [curl_easy_init], ,
-#	     AC_MSG_ERROR([*** curl lib not found!]))
+dnl Check for libcurl
+PKG_CHECK_MODULES(CURL, [libcurl >= 7.10.0], have_curl=yes, have_curl=no)
+if test "$have_curl" != "no"; then
+    AC_DEFINE(HAVE_CURL, 1, ["libcurl support"])
+    have_curl="yes -- will build with coverart download support"
+    CPPFLAGS="$CPPFLAGS $CURL_CFLAGS"
+    CFLAGS="$CFLAGS $CURL_CFLAGS"
+    LDFLAGS="$LDFLAGS $CURL_LIBS"
+else
+    echo "*** libcurl could not be found, not building coverart download support"
+    have_curl="*no -- will build without coverart download support"
+fi
 
+dnl Check for gnome-vfs
+AC_ARG_WITH(gnome-vfs,
+	    AC_HELP_STRING([--without-gnome-vfs],[Disable autodetection support]))
+if test "x$with_gnome_vfs" != "xno"; then
+  PKG_CHECK_MODULES(GNOME_VFS, [gnome-vfs-2.0 >= 2.6.0], enable_gnome_vfs=yes, enable_gnome_vfs=no)
+  if test "x$enable_gnome_vfs" != "xyes" -a "x$with_gnome_vfs" = "xyes"; then
+      AC_MSG_ERROR([gnome-vfs support explicitly requested but gnome-vfs couldn't be found])
+  fi
+fi
+if test "x$enable_gnome_vfs" = "xyes"; then
+    have_gnomevfs="yes -- will build with automount support"
+    AC_DEFINE(HAVE_GNOME_VFS, 1, [Define if you have gnome-vfs support])
+    CPPFLAGS="$CPPFLAGS $GNOME_VFS_CFLAGS"
+    CFLAGS="$CFLAGS $GNOME_VFS_CFLAGS"
+    LDFLAGS="$LDFLAGS $GNOME_VFS_LIBS"
+else
+    echo "*** gnome-vfs-2 not found or disabled, not building iPod autodetection support"
+    have_gnomevfs="*no -- will build without iPod autodetection support"
+fi
+AM_CONDITIONAL(HAVE_GNOME_VFS, test x"$enable_gnome_vfs" = xyes)
+
+#dnl Check for HAL
+AC_ARG_WITH(hal,
+	    AC_HELP_STRING([--without-hal],[Disable HAL support]))
+if test "x$with_hal" != "xno"; then
+  PKG_CHECK_MODULES(HAL, hal >= 0.5 hal < 0.6, enable_hal=yes, enable_hal=no)
+  if test "x$enable_hal" != "xyes" -a "x$with_hal" = "xyes"; then
+      AC_MSG_ERROR([HAL support explicitly requested but HAL couldn't be found])
+  fi
+fi
+if test "x$enable_hal" = "xyes"; then
+  have_hal="yes -- will build with HAL support"
+  AC_DEFINE(HAVE_HAL, 1, [Define if you want HAL support])
+  CPPFLAGS="$CPPFLAGS $HAL_CFLAGS"
+  CFLAGS="$CFLAGS $HAL_CFLAGS"
+  LDFLAGS="$LDFLAGS $HAL_LIBS"
+else
+  have_hal="*no -- will build without HAL support"
+fi
+AM_CONDITIONAL(HAVE_HAL, test x"$enable_hal" = xyes)
+
+
 dnl Check for libmp4v2 (and mp4.h)
-AC_SEARCH_LIBS(MP4FileInfo,
+AC_SEARCH_LIBS(MP4GetMetadataGrouping,
 	["mp4v2" "mp4v2 -lstdc++" "mp4v2 -lz" "mp4v2 -lz -lstdc++"],
 	[AC_CHECK_HEADER(mp4.h,
 	  [have_mp4v2="yes -- will build with aac support" AC_DEFINE_UNQUOTED(HAVE_LIBMP4V2, 1, ["Define to 1 if you have the mp4v2 library"])],
 	  [echo "*** mp4.h cannot be found. Check your mp4v2 installation."])])
 
 if test "y$have_mp4v2" = "y"; then
-	have_mp4v2="*** no -- will build without aac support"
+	have_mp4v2="*no -- will build without aac support"
 fi
 
+dnl Check for libvorbisfile 
+AC_SEARCH_LIBS(ov_open,
+        ["vorbisfile"],
+        [AC_CHECK_HEADER(vorbis/vorbisfile.h,
+          [have_vorbisfile="yes -- will build with ogg support" AC_DEFINE_UNQUOTED(HAVE_LIBVORBISFILE, 1, ["Define to 1 if you have the ogg library"])],
+          [echo "*** vorbisfile.h cannot be found. Check your ogg/vorbis installation."])])
+if test "y$have_vorbisfile" = "y"; then
+        have_vorbisfile="*no -- will build without ogg support"
+fi
+
+dnl Check for FLAC
+AC_SEARCH_LIBS(FLAC__metadata_get_streaminfo,
+	["FLAC"],
+	[AC_CHECK_HEADER(FLAC/metadata.h,
+          [have_flac="yes -- will build with FLAC support" AC_DEFINE_UNQUOTED(HAVE_FLAC, 1, ["Define to 1 if you have the flac library"])],
+          [echo "*** FLAC/metadata.h cannot be found. Check your FLAC installation."])])
+if test "y$have_flac" = "y"; then
+        have_flac="*no -- will build without FLAC support"
+fi
+
 dnl Additional libs maybe needed when compiling under solaris
 AC_SEARCH_LIBS(bind,
 	      ["socket" "nsl" "socket -lnsl"])
@@ -105,6 +180,11 @@
 src/Makefile
 po/Makefile.in
 scripts/Makefile
+data/Makefile
+data/icons/Makefile
+data/icons/32x32/Makefile
+data/icons/48x48/Makefile
+data/icons/64x64/Makefile
 ])
 
 echo "
@@ -113,14 +193,17 @@
 
  Host System Type .....: $host
  Install path .........: $prefix
+ GTK2 version .........: `pkg-config gtk+-2.0 --modversion`
+ GLib2/GThread version : `pkg-config gthread-2.0 --modversion`
+ gnome-vfs.............: $have_gnomevfs
+ hal...................: $have_hal
+ libcurl ..............: $have_curl
+ mp4v2 ................: $have_mp4v2
+ vorbisfile ...........: $have_vorbisfile
+ FLAC .................: $have_flac
  Preprocessor .........: $CC $CPPFLAGS
  Compiler .............: $CC $CFLAGS $PACKAGE_CFLAGS
  Linker ...............: $CC $LDFLAGS $LIBS $PACKAGE_LIBS
- GTK2 version .........: `pkg-config gtk+-2.0 --modversion`
- GLib2/GThread version : `pkg-config gthread-2.0 --modversion`
- id3tag lib ...........: yes
- mp4v2 ................: $have_mp4v2
- NLS/gettext ..........: $USE_NLS
 
  Now type 'make' to build $PACKAGE $VERSION,
  and then 'make install' for installation.

Copied: gtkpod/trunk/data (from rev 193, gtkpod/branches/upstream/current/data)

Modified: gtkpod/trunk/debian/changelog
===================================================================
--- gtkpod/trunk/debian/changelog	2007-06-27 20:59:02 UTC (rev 193)
+++ gtkpod/trunk/debian/changelog	2007-06-27 21:27:12 UTC (rev 194)
@@ -1,3 +1,9 @@
+gtkpod (0.99.10~cvs20070626-1) UNRELEASED; urgency=low
+
+  * (NOT RELEASED YET) New upstream release
+
+ -- Frank Lichtenheld <djpig at debian.org>  Wed, 27 Jun 2007 23:03:03 +0200
+
 gtkpod (0.99.8-3) unstable; urgency=low
 
   [ Frank Lichtenheld ]

Deleted: gtkpod/trunk/gtkpod.glade
===================================================================
--- gtkpod/trunk/gtkpod.glade	2007-06-27 20:59:02 UTC (rev 193)
+++ gtkpod/trunk/gtkpod.glade	2007-06-27 21:27:12 UTC (rev 194)
@@ -1,18996 +0,0 @@
-<?xml version="1.0" standalone="no"?> <!--*- mode: xml -*-->
-<!DOCTYPE glade-interface SYSTEM "http://glade.gnome.org/glade-2.0.dtd">
-
-<glade-interface>
-
-<widget class="GtkWindow" id="gtkpod">
-  <property name="title" translatable="yes">gtkpod</property>
-  <property name="type">GTK_WINDOW_TOPLEVEL</property>
-  <property name="window_position">GTK_WIN_POS_NONE</property>
-  <property name="modal">False</property>
-  <property name="default_width">600</property>
-  <property name="default_height">500</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>
-  <signal name="delete_event" handler="on_gtkpod_delete_event" last_modification_time="Sun, 24 Nov 2002 13:00:13 GMT"/>
-
-  <child>
-    <widget class="GtkVBox" id="vbox1">
-      <property name="visible">True</property>
-      <property name="homogeneous">False</property>
-      <property name="spacing">0</property>
-
-      <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">
-	      <property name="visible">True</property>
-	      <property name="label" translatable="yes">_File</property>
-	      <property name="use_underline">True</property>
-
-	      <child>
-		<widget class="GtkMenu" id="menuitem10_menu">
-
-		  <child>
-		    <widget class="GtkImageMenuItem" id="load_ipods_mi">
-		      <property name="visible">True</property>
-		      <property name="label" translatable="yes">_Load iPod(s)</property>
-		      <property name="use_underline">True</property>
-		      <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="image3836">
-			  <property name="visible">True</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>
-			  <property name="ypad">0</property>
-			</widget>
-		      </child>
-		    </widget>
-		  </child>
-
-		  <child>
-		    <widget class="GtkImageMenuItem" id="save_changes_mi">
-		      <property name="visible">True</property>
-		      <property name="label" translatable="yes">_Save Changes</property>
-		      <property name="use_underline">True</property>
-		      <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="image3837">
-			  <property name="visible">True</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>
-			  <property name="xpad">0</property>
-			  <property name="ypad">0</property>
-			</widget>
-		      </child>
-		    </widget>
-		  </child>
-
-		  <child>
-		    <widget class="GtkImageMenuItem" id="add_files1">
-		      <property name="visible">True</property>
-		      <property name="label" translatable="yes">Add _Files</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"/>
-
-		      <child internal-child="image">
-			<widget class="GtkImage" id="image3838">
-			  <property name="visible">True</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>
-			  <property name="xpad">0</property>
-			  <property name="ypad">0</property>
-			</widget>
-		      </child>
-		    </widget>
-		  </child>
-
-		  <child>
-		    <widget class="GtkImageMenuItem" id="add_directory1">
-		      <property name="visible">True</property>
-		      <property name="label" translatable="yes">Add _Directory</property>
-		      <property name="use_underline">True</property>
-		      <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="image3839">
-			  <property name="visible">True</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>
-			  <property name="xpad">0</property>
-			  <property name="ypad">0</property>
-			</widget>
-		      </child>
-		    </widget>
-		  </child>
-
-		  <child>
-		    <widget class="GtkImageMenuItem" id="add_playlist1">
-		      <property name="visible">True</property>
-		      <property name="label" translatable="yes">Add _Playlist</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"/>
-
-		      <child internal-child="image">
-			<widget class="GtkImage" id="image3840">
-			  <property name="visible">True</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>
-			  <property name="xpad">0</property>
-			  <property name="ypad">0</property>
-			</widget>
-		      </child>
-		    </widget>
-		  </child>
-
-		  <child>
-		    <widget class="GtkSeparatorMenuItem" id="separator3">
-		      <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="image3841">
-			  <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>
-
-		      <child>
-			<widget class="GtkMenu" id="update_menu_menu">
-
-			  <child>
-			    <widget class="GtkMenuItem" id="update_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_update_playlist_activate" last_modification_time="Sun, 23 Mar 2003 09:00:04 GMT"/>
-			    </widget>
-			  </child>
-
-			  <child>
-			    <widget class="GtkMenuItem" id="update_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_update_tab_entry_activate" last_modification_time="Sat, 15 Mar 2003 03:49:29 GMT"/>
-			    </widget>
-			  </child>
-
-			  <child>
-			    <widget class="GtkMenuItem" id="update_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_update_tracks_activate" last_modification_time="Sun, 23 Mar 2003 09:00:04 GMT"/>
-			    </widget>
-			  </child>
-			</widget>
-		      </child>
-		    </widget>
-		  </child>
-
-		  <child>
-		    <widget class="GtkImageMenuItem" id="mserv_from_file_menu">
-		      <property name="visible">True</property>
-		      <property name="label" translatable="yes">Update _mserv Data from File</property>
-		      <property name="use_underline">True</property>
-
-		      <child internal-child="image">
-			<widget class="GtkImage" id="image3842">
-			  <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>
-
-		      <child>
-			<widget class="GtkMenu" id="mserv_from_file_menu_menu">
-
-			  <child>
-			    <widget class="GtkMenuItem" id="mserv_from_file_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_mserv_from_file_playlist_menu_activate" last_modification_time="Sat, 02 Oct 2004 05:09:52 GMT"/>
-			    </widget>
-			  </child>
-
-			  <child>
-			    <widget class="GtkMenuItem" id="mserv_from_file_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_mserv_from_file_entry_menu_activate" last_modification_time="Sat, 02 Oct 2004 05:09:52 GMT"/>
-			    </widget>
-			  </child>
-
-			  <child>
-			    <widget class="GtkMenuItem" id="mserv_from_file_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_mserv_from_file_tracks_menu_activate" last_modification_time="Sat, 02 Oct 2004 05:09:52 GMT"/>
-			    </widget>
-			  </child>
-			</widget>
-		      </child>
-		    </widget>
-		  </child>
-
-		  <child>
-		    <widget class="GtkImageMenuItem" id="sync_menu">
-		      <property name="visible">True</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="image3843">
-			  <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="separator6">
-		      <property name="visible">True</property>
-		    </widget>
-		  </child>
-
-		  <child>
-		    <widget class="GtkImageMenuItem" id="export_menu">
-		      <property name="visible">True</property>
-		      <property name="label" translatable="yes">_Export Tracks from Database</property>
-		      <property name="use_underline">True</property>
-
-		      <child internal-child="image">
-			<widget class="GtkImage" id="image3844">
-			  <property name="visible">True</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>
-			  <property name="xpad">0</property>
-			  <property name="ypad">0</property>
-			</widget>
-		      </child>
-
-		      <child>
-			<widget class="GtkMenu" id="export_menu_menu">
-
-			  <child>
-			    <widget class="GtkMenuItem" id="export_playlist">
-			      <property name="visible">True</property>
-			      <property name="label" translatable="yes">Selected _Playlist</property>
-			      <property name="use_underline">True</property>
-			      <signal name="activate" handler="on_export_playlist_activate" last_modification_time="Sun, 23 Mar 2003 09:00:04 GMT"/>
-			    </widget>
-			  </child>
-
-			  <child>
-			    <widget class="GtkMenuItem" id="export_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_export_tab_entry_activate" last_modification_time="Sun, 23 Mar 2003 09:00:04 GMT"/>
-			    </widget>
-			  </child>
-
-			  <child>
-			    <widget class="GtkMenuItem" id="export_tracks">
-			      <property name="visible">True</property>
-			      <property name="label" translatable="yes">Selected _Tracks</property>
-			      <property name="use_underline">True</property>
-			      <signal name="activate" handler="on_export_tracks_activate" last_modification_time="Sun, 23 Mar 2003 09:00:04 GMT"/>
-			    </widget>
-			  </child>
-			</widget>
-		      </child>
-		    </widget>
-		  </child>
-
-		  <child>
-		    <widget class="GtkImageMenuItem" id="create_playlist_file_menu">
-		      <property name="visible">True</property>
-		      <property name="label" translatable="yes">Create _Playlist File</property>
-		      <property name="use_underline">True</property>
-
-		      <child internal-child="image">
-			<widget class="GtkImage" id="image3845">
-			  <property name="visible">True</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>
-			  <property name="xpad">0</property>
-			  <property name="ypad">0</property>
-			</widget>
-		      </child>
-
-		      <child>
-			<widget class="GtkMenu" id="create_playlist_file_menu_menu">
-
-			  <child>
-			    <widget class="GtkMenuItem" id="playlist_file_playlist">
-			      <property name="visible">True</property>
-			      <property name="label" translatable="yes">Selected _Playlist</property>
-			      <property name="use_underline">True</property>
-			      <signal name="activate" handler="on_playlist_file_playlist_activate" last_modification_time="Sat, 21 Aug 2004 08:43:11 GMT"/>
-			    </widget>
-			  </child>
-
-			  <child>
-			    <widget class="GtkMenuItem" id="playlist_file_tab_entry">
-			      <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_playlist_file_tab_entry_activate" last_modification_time="Sat, 21 Aug 2004 08:43:11 GMT"/>
-			    </widget>
-			  </child>
-
-			  <child>
-			    <widget class="GtkMenuItem" id="playlist_file_tracks">
-			      <property name="visible">True</property>
-			      <property name="label" translatable="yes">Selected _Tracks</property>
-			      <property name="use_underline">True</property>
-			      <signal name="activate" handler="on_playlist_file_tracks_activate" last_modification_time="Sat, 21 Aug 2004 08:43:11 GMT"/>
-			    </widget>
-			  </child>
-			</widget>
-		      </child>
-		    </widget>
-		  </child>
-
-		  <child>
-		    <widget class="GtkSeparatorMenuItem" id="trennlinie6">
-		      <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>
-		      <property name="use_underline">True</property>
-		      <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="image3846">
-			  <property name="visible">True</property>
-			  <property name="stock">gtk-execute</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="GtkMenuItem" id="check_ipod_files_mi">
-		      <property name="visible">True</property>
-		      <property name="tooltip" translatable="yes">Find orphan files (files with no track info in DB) and dangling tracks (tracks with no corresponding files on iPOD)</property>
-		      <property name="label" translatable="yes">_Check iPod's Files</property>
-		      <property name="use_underline">True</property>
-		      <signal name="activate" handler="on_check_ipod_files_activate" last_modification_time="Sat, 24 Jan 2004 09:02:49 GMT"/>
-		    </widget>
-		  </child>
-
-		  <child>
-		    <widget class="GtkSeparatorMenuItem" id="trennlinie3">
-		      <property name="visible">True</property>
-		    </widget>
-		  </child>
-
-		  <child>
-		    <widget class="GtkImageMenuItem" id="quit1">
-		      <property name="visible">True</property>
-		      <property name="label">gtk-quit</property>
-		      <property name="use_stock">True</property>
-		      <signal name="activate" handler="on_quit1_activate" last_modification_time="Sat, 23 Nov 2002 03:06:04 GMT"/>
-		    </widget>
-		  </child>
-		</widget>
-	      </child>
-	    </widget>
-	  </child>
-
-	  <child>
-	    <widget class="GtkMenuItem" id="edit_menu">
-	      <property name="visible">True</property>
-	      <property name="label" translatable="yes">_Edit</property>
-	      <property name="use_underline">True</property>
-
-	      <child>
-		<widget class="GtkMenu" id="edit_menu_menu">
-
-		  <child>
-		    <widget class="GtkImageMenuItem" id="edit_details_menu">
-		      <property name="visible">True</property>
-		      <property name="label" translatable="yes">Edit Track Details</property>
-		      <property name="use_underline">True</property>
-
-		      <child internal-child="image">
-			<widget class="GtkImage" id="image3847">
-			  <property name="visible">True</property>
-			  <property name="stock">gtk-edit</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>
-
-		      <child>
-			<widget class="GtkMenu" id="edit_details_menu_menu">
-
-			  <child>
-			    <widget class="GtkMenuItem" id="edit_details_selected_playlist">
-			      <property name="visible">True</property>
-			      <property name="label" translatable="yes">Tracks in Selected _Playlist</property>
-			      <property name="use_underline">True</property>
-			      <signal name="activate" handler="on_edit_details_selected_playlist" last_modification_time="Fri, 09 Dec 2005 15:42:30 GMT"/>
-			    </widget>
-			  </child>
-
-			  <child>
-			    <widget class="GtkMenuItem" id="edit_details_selected_tab_entry">
-			      <property name="visible">True</property>
-			      <property name="label" translatable="yes">Tracks in Selected Tab _Entry</property>
-			      <property name="use_underline">True</property>
-			      <signal name="activate" handler="on_edit_details_selected_tab_entry" last_modification_time="Fri, 09 Dec 2005 15:42:30 GMT"/>
-			    </widget>
-			  </child>
-
-			  <child>
-			    <widget class="GtkMenuItem" id="edit_details_selected_tracks">
-			      <property name="visible">True</property>
-			      <property name="label" translatable="yes">Selected _Tracks</property>
-			      <property name="use_underline">True</property>
-			      <signal name="activate" handler="on_edit_details_selected_tracks" last_modification_time="Fri, 09 Dec 2005 15:42:30 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="image3848">
-			  <property name="visible">True</property>
-			  <property name="stock">gtk-delete</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>
-
-		      <child>
-			<widget class="GtkMenu" id="delete_menu_menu">
-
-			  <child>
-			    <widget class="GtkMenuItem" id="delete_selected_playlist">
-			      <property name="visible">True</property>
-			      <property name="label" translatable="yes">Selected playlist</property>
-			      <property name="use_underline">True</property>
-			      <signal name="activate" handler="on_delete_selected_playlist" last_modification_time="Sat, 10 Dec 2005 07:34:07 GMT"/>
-			    </widget>
-			  </child>
-
-			  <child>
-			    <widget class="GtkMenuItem" id="delete_selected_playlist_including_tracks_from_ipod">
-			      <property name="visible">True</property>
-			      <property name="label" translatable="yes">Selected playlist including tracks from iPod</property>
-			      <property name="use_underline">True</property>
-			      <signal name="activate" handler="on_delete_selected_playlist_including_tracks_from_ipod" last_modification_time="Sat, 10 Dec 2005 07:34:07 GMT"/>
-			    </widget>
-			  </child>
-
-			  <child>
-			    <widget class="GtkMenuItem" id="delete_selected_playlist_including_tracks_from_database">
-			      <property name="visible">True</property>
-			      <property name="label" translatable="yes">Selected playlist including tracks from database</property>
-			      <property name="use_underline">True</property>
-			      <signal name="activate" handler="on_delete_selected_playlist_including_tracks_from_database" last_modification_time="Sat, 10 Dec 2005 07:34:07 GMT"/>
-			    </widget>
-			  </child>
-
-			  <child>
-			    <widget class="GtkMenuItem" id="delete_selected_playlist_including_tracks_from_harddisk">
-			      <property name="visible">True</property>
-			      <property name="label" translatable="yes">Selected playlist including tracks from harddisk</property>
-			      <property name="use_underline">True</property>
-			      <signal name="activate" handler="on_delete_selected_playlist_including_tracks_from_harddisk" last_modification_time="Sat, 10 Dec 2005 07:34:07 GMT"/>
-			    </widget>
-			  </child>
-
-			  <child>
-			    <widget class="GtkSeparatorMenuItem" id="delete_separator1">
-			      <property name="visible">True</property>
-			    </widget>
-			  </child>
-
-			  <child>
-			    <widget class="GtkMenuItem" id="delete_selected_entry_from_playlist">
-			      <property name="visible">True</property>
-			      <property name="label" translatable="yes">Selected filter tab entry from playlist</property>
-			      <property name="use_underline">True</property>
-			      <signal name="activate" handler="on_delete_selected_entry_from_playlist" last_modification_time="Sat, 10 Dec 2005 07:34:07 GMT"/>
-			    </widget>
-			  </child>
-
-			  <child>
-			    <widget class="GtkMenuItem" id="delete_selected_entry_from_ipod">
-			      <property name="visible">True</property>
-			      <property name="label" translatable="yes">Selected filter tab entry from iPod</property>
-			      <property name="use_underline">True</property>
-			      <signal name="activate" handler="on_delete_selected_entry_from_ipod" last_modification_time="Sat, 10 Dec 2005 07:34:07 GMT"/>
-			    </widget>
-			  </child>
-
-			  <child>
-			    <widget class="GtkMenuItem" id="delete_selected_entry_from_database">
-			      <property name="visible">True</property>
-			      <property name="label" translatable="yes">Selected filter tab entry from database</property>
-			      <property name="use_underline">True</property>
-			      <signal name="activate" handler="on_delete_selected_entry_from_database" last_modification_time="Sat, 10 Dec 2005 07:34:07 GMT"/>
-			    </widget>
-			  </child>
-
-			  <child>
-			    <widget class="GtkMenuItem" id="delete_selected_entry_from_harddisk">
-			      <property name="visible">True</property>
-			      <property name="label" translatable="yes">Selected filter tab entry from harddisk</property>
-			      <property name="use_underline">True</property>
-			      <signal name="activate" handler="on_delete_selected_entry_from_harddisk" last_modification_time="Sat, 10 Dec 2005 07:34:07 GMT"/>
-			    </widget>
-			  </child>
-
-			  <child>
-			    <widget class="GtkSeparatorMenuItem" id="delete_separator2">
-			      <property name="visible">True</property>
-			    </widget>
-			  </child>
-
-			  <child>
-			    <widget class="GtkMenuItem" id="delete_selected_tracks_from_playlist">
-			      <property name="visible">True</property>
-			      <property name="label" translatable="yes">Selected tracks from playlist</property>
-			      <property name="use_underline">True</property>
-			      <signal name="activate" handler="on_delete_selected_tracks_from_playlist" last_modification_time="Sat, 10 Dec 2005 07:34:07 GMT"/>
-			    </widget>
-			  </child>
-
-			  <child>
-			    <widget class="GtkMenuItem" id="delete_selected_tracks_from_ipod">
-			      <property name="visible">True</property>
-			      <property name="label" translatable="yes">Selected tracks from iPod</property>
-			      <property name="use_underline">True</property>
-			      <signal name="activate" handler="on_delete_selected_tracks_from_ipod" last_modification_time="Sat, 10 Dec 2005 07:34:07 GMT"/>
-			    </widget>
-			  </child>
-
-			  <child>
-			    <widget class="GtkMenuItem" id="delete_selected_tracks_from_database">
-			      <property name="visible">True</property>
-			      <property name="label" translatable="yes">Selected tracks from database</property>
-			      <property name="use_underline">True</property>
-			      <signal name="activate" handler="on_delete_selected_tracks_from_database" last_modification_time="Sat, 10 Dec 2005 07:34:07 GMT"/>
-			    </widget>
-			  </child>
-
-			  <child>
-			    <widget class="GtkMenuItem" id="delete_selected_tracks_from_harddisk">
-			      <property name="visible">True</property>
-			      <property name="label" translatable="yes">Selected tracks from harddisk</property>
-			      <property name="use_underline">True</property>
-			      <signal name="activate" handler="on_delete_selected_tracks_from_harddisk" last_modification_time="Sat, 10 Dec 2005 07:34:07 GMT"/>
-			    </widget>
-			  </child>
-			</widget>
-		      </child>
-		    </widget>
-		  </child>
-
-		  <child>
-		    <widget class="GtkSeparatorMenuItem" id="separator7">
-		      <property name="visible">True</property>
-		    </widget>
-		  </child>
-
-		  <child>
-		    <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="image3849">
-			  <property name="visible">True</property>
-			  <property name="stock">gtk-copy</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>
-
-		      <child>
-			<widget class="GtkMenu" id="create_playlists_menu_menu">
-
-			  <child>
-			    <widget class="GtkMenuItem" id="new_playlist1">
-			      <property name="visible">True</property>
-			      <property name="label" translatable="yes">Empty Playlist</property>
-			      <property name="use_underline">True</property>
-			      <signal name="activate" handler="on_new_playlist1_activate" last_modification_time="Sun, 03 Aug 2003 03:58:25 GMT"/>
-			    </widget>
-			  </child>
-
-			  <child>
-			    <widget class="GtkMenuItem" id="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_smart_playlist_activate" last_modification_time="Mon, 06 Dec 2004 14:36:42 GMT"/>
-			    </widget>
-			  </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>
-			      <property name="use_underline">True</property>
-			      <signal name="activate" handler="on_random_playlist_activate" last_modification_time="Fri, 19 Mar 2004 17:27:51 GMT"/>
-			    </widget>
-			  </child>
-
-			  <child>
-			    <widget class="GtkMenuItem" id="pl_containing_displayed_tracks">
-			      <property name="visible">True</property>
-			      <property name="label" translatable="yes">Containing Displayed Tracks</property>
-			      <property name="use_underline">True</property>
-			      <signal name="activate" handler="on_pl_containing_displayed_tracks_activate" last_modification_time="Sun, 03 Aug 2003 04:03:36 GMT"/>
-			    </widget>
-			  </child>
-
-			  <child>
-			    <widget class="GtkMenuItem" id="pl_containing_selected_tracks">
-			      <property name="visible">True</property>
-			      <property name="label" translatable="yes">Containing Selected Tracks</property>
-			      <property name="use_underline">True</property>
-			      <signal name="activate" handler="on_pl_containing_selected_tracks_activate" last_modification_time="Sun, 03 Aug 2003 04:03:36 GMT"/>
-			    </widget>
-			  </child>
-
-			  <child>
-			    <widget class="GtkMenuItem" id="pl_for_each_artist">
-			      <property name="visible">True</property>
-			      <property name="label" translatable="yes">One for each Artist</property>
-			      <property name="use_underline">True</property>
-			      <signal name="activate" handler="on_pl_for_each_artist_activate" last_modification_time="Sun, 03 Aug 2003 03:48:28 GMT"/>
-			    </widget>
-			  </child>
-
-			  <child>
-			    <widget class="GtkMenuItem" id="pl_for_each_album">
-			      <property name="visible">True</property>
-			      <property name="label" translatable="yes">One for each Album</property>
-			      <property name="use_underline">True</property>
-			      <signal name="activate" handler="on_pl_for_each_album_activate" last_modification_time="Sun, 03 Aug 2003 03:48:28 GMT"/>
-			    </widget>
-			  </child>
-
-			  <child>
-			    <widget class="GtkMenuItem" id="pl_for_each_genre">
-			      <property name="visible">True</property>
-			      <property name="label" translatable="yes">One for each Genre</property>
-			      <property name="use_underline">True</property>
-			      <signal name="activate" handler="on_pl_for_each_genre_activate" last_modification_time="Sun, 03 Aug 2003 03:48:28 GMT"/>
-			    </widget>
-			  </child>
-
-			  <child>
-			    <widget class="GtkMenuItem" id="pl_for_each_composer">
-			      <property name="visible">True</property>
-			      <property name="label" translatable="yes">One for each Composer</property>
-			      <property name="use_underline">True</property>
-			      <signal name="activate" handler="on_pl_for_each_composer_activate" last_modification_time="Sun, 03 Aug 2003 03:48:28 GMT"/>
-			    </widget>
-			  </child>
-
-			  <child>
-			    <widget class="GtkMenuItem" id="pl_for_each_year">
-			      <property name="visible">True</property>
-			      <property name="label" translatable="yes">One for each Year</property>
-			      <property name="use_underline">True</property>
-			      <signal name="activate" handler="on_pl_for_each_year_activate" last_modification_time="Thu, 11 Mar 2004 14:10:34 GMT"/>
-			    </widget>
-			  </child>
-
-			  <child>
-			    <widget class="GtkMenuItem" id="pl_for_each_rating">
-			      <property name="visible">True</property>
-			      <property name="label" translatable="yes">One for each Rating</property>
-			      <property name="use_underline">True</property>
-			      <signal name="activate" handler="on_pl_for_each_rating_activate" last_modification_time="Sun, 05 Dec 2004 12:52:43 GMT"/>
-			    </widget>
-			  </child>
-
-			  <child>
-			    <widget class="GtkMenuItem" id="most_rated_tracks">
-			      <property name="visible">True</property>
-			      <property name="label" translatable="yes">Best Rated Tracks</property>
-			      <property name="use_underline">True</property>
-			      <signal name="activate" handler="on_most_rated_tracks_playlist_s1_activate" last_modification_time="Sun, 10 Aug 2003 14:21:51 GMT"/>
-			    </widget>
-			  </child>
-
-			  <child>
-			    <widget class="GtkMenuItem" id="most_listened_tracks">
-			      <property name="visible">True</property>
-			      <property name="label" translatable="yes">Tracks Most Often Listened To</property>
-			      <property name="use_underline">True</property>
-			      <signal name="activate" handler="on_most_listened_tracks1_activate" last_modification_time="Sun, 10 Aug 2003 14:24:20 GMT"/>
-			    </widget>
-			  </child>
-
-			  <child>
-			    <widget class="GtkMenuItem" id="most_recent_played_tracks">
-			      <property name="visible">True</property>
-			      <property name="label" translatable="yes">Most Recently Played Tracks</property>
-			      <property name="use_underline">True</property>
-			      <signal name="activate" handler="on_most_recent_played_tracks_activate" last_modification_time="Sun, 10 Aug 2003 14:24:57 GMT"/>
-			    </widget>
-			  </child>
-
-			  <child>
-			    <widget class="GtkMenuItem" id="played_since_last_time1">
-			      <property name="visible">True</property>
-			      <property name="label" translatable="yes">All Tracks Played Since Last Time</property>
-			      <property name="use_underline">True</property>
-			      <signal name="activate" handler="on_played_since_last_time1_activate" last_modification_time="Fri, 22 Aug 2003 12:24:50 GMT"/>
-			    </widget>
-			  </child>
-
-			  <child>
-			    <widget class="GtkMenuItem" id="all_tracks_never_listened_to1">
-			      <property name="visible">True</property>
-			      <property name="label" translatable="yes">All Tracks Never Listened To</property>
-			      <property name="use_underline">True</property>
-			      <signal name="activate" handler="on_all_tracks_never_listened_to1_activate" last_modification_time="Fri, 07 Nov 2003 15:51:06 GMT"/>
-			    </widget>
-			  </child>
-
-			  <child>
-			    <widget class="GtkMenuItem" id="all_tracks_not_listed_in_any_playlist1">
-			      <property name="visible">True</property>
-			      <property name="label" translatable="yes">All Tracks not Listed in any Playlist</property>
-			      <property name="use_underline">True</property>
-			      <signal name="activate" handler="on_all_tracks_not_listed_in_any_playlist1_activate" last_modification_time="Thu, 11 Mar 2004 14:09:28 GMT"/>
-			    </widget>
-			  </child>
-			</widget>
-		      </child>
-		    </widget>
-		  </child>
-
-		  <child>
-		    <widget class="GtkSeparatorMenuItem" id="separator1">
-		      <property name="visible">True</property>
-		    </widget>
-		  </child>
-
-		  <child>
-		    <widget class="GtkImageMenuItem" id="sorting1">
-		      <property name="visible">True</property>
-		      <property name="label" translatable="yes">_Sorting</property>
-		      <property name="use_underline">True</property>
-		      <signal name="activate" handler="on_sorting_activate" last_modification_time="Mon, 22 Sep 2003 08:00:42 GMT"/>
-		      <accelerator key="s" modifiers="GDK_CONTROL_MASK" signal="activate"/>
-
-		      <child internal-child="image">
-			<widget class="GtkImage" id="image3850">
-			  <property name="visible">True</property>
-			  <property name="stock">gtk-sort-ascending</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="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="image3851">
-			  <property name="visible">True</property>
-			  <property name="stock">gtk-justify-fill</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="separator2">
-		      <property name="visible">True</property>
-		    </widget>
-		  </child>
-
-		  <child>
-		    <widget class="GtkImageMenuItem" id="edit_repository_options">
-		      <property name="visible">True</property>
-		      <property name="label" translatable="yes">Edit Repository/iPod Options</property>
-		      <property name="use_underline">True</property>
-		      <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="image3853">
-			  <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>
-		</widget>
-	      </child>
-	    </widget>
-	  </child>
-
-	  <child>
-	    <widget class="GtkMenuItem" id="item1">
-	      <property name="visible">True</property>
-	      <property name="label" translatable="yes">_View</property>
-	      <property name="use_underline">True</property>
-
-	      <child>
-		<widget class="GtkMenu" id="item1_menu">
-
-		  <child>
-		    <widget class="GtkCheckMenuItem" id="toolbar_menu">
-		      <property name="visible">True</property>
-		      <property name="label" translatable="yes">_Toolbar</property>
-		      <property name="use_underline">True</property>
-		      <property name="active">False</property>
-		      <signal name="activate" handler="on_toolbar_menu_activate" last_modification_time="Fri, 14 Mar 2003 10:58:38 GMT"/>
-		    </widget>
-		  </child>
-
-		  <child>
-		    <widget class="GtkCheckMenuItem" id="tooltips_menu">
-		      <property name="visible">True</property>
-		      <property name="label" translatable="yes">_Tooltips</property>
-		      <property name="use_underline">True</property>
-		      <property name="active">False</property>
-		      <signal name="activate" handler="on_tooltips_menu_activate" last_modification_time="Sat, 14 Jun 2003 16:48:32 GMT"/>
-		    </widget>
-		  </child>
-
-		  <child>
-		    <widget class="GtkCheckMenuItem" id="info_window_menu">
-		      <property name="visible">True</property>
-		      <property name="label" translatable="yes">_Info Window</property>
-		      <property name="use_underline">True</property>
-		      <property name="active">False</property>
-		      <signal name="activate" handler="on_info_window1_activate" last_modification_time="Sun, 23 Nov 2003 15:25:04 GMT"/>
-		      <accelerator key="i" modifiers="GDK_CONTROL_MASK" signal="activate"/>
-		    </widget>
-		  </child>
-
-		  <child>
-		    <widget class="GtkImageMenuItem" id="more_sort_tabs">
-		      <property name="visible">True</property>
-		      <property name="label" translatable="yes">_More Sort Tabs</property>
-		      <property name="use_underline">True</property>
-		      <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="image3854">
-			  <property name="visible">True</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>
-			  <property name="xpad">0</property>
-			  <property name="ypad">0</property>
-			</widget>
-		      </child>
-		    </widget>
-		  </child>
-
-		  <child>
-		    <widget class="GtkImageMenuItem" id="less_sort_tabs">
-		      <property name="visible">True</property>
-		      <property name="label" translatable="yes">_Less Sort Tabs</property>
-		      <property name="use_underline">True</property>
-		      <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="image3855">
-			  <property name="visible">True</property>
-			  <property name="stock">gtk-remove</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="GtkMenuItem" id="arrange_sort_tabs">
-		      <property name="visible">True</property>
-		      <property name="label" translatable="yes">_Arrange Sort Tabs</property>
-		      <property name="use_underline">True</property>
-		      <signal name="activate" handler="on_arrange_sort_tabs_activate" last_modification_time="Tue, 25 Mar 2003 13:59:28 GMT"/>
-		    </widget>
-		  </child>
-		</widget>
-	      </child>
-	    </widget>
-	  </child>
-
-	  <child>
-	    <widget class="GtkMenuItem" id="tools1">
-	      <property name="visible">True</property>
-	      <property name="label" translatable="yes">_Tools</property>
-	      <property name="use_underline">True</property>
-
-	      <child>
-		<widget class="GtkMenu" id="tools1_menu">
-
-		  <child>
-		    <widget class="GtkImageMenuItem" id="play_menu">
-		      <property name="visible">True</property>
-		      <property name="label" translatable="yes">_Play Now</property>
-		      <property name="use_underline">True</property>
-
-		      <child internal-child="image">
-			<widget class="GtkImage" id="image3856">
-			  <property name="visible">True</property>
-			  <property name="stock">gtk-cdrom</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>
-
-		      <child>
-			<widget class="GtkMenu" id="play_menu_menu">
-
-			  <child>
-			    <widget class="GtkMenuItem" id="play_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_play_playlist_activate" last_modification_time="Sun, 23 Mar 2003 09:00:04 GMT"/>
-			    </widget>
-			  </child>
-
-			  <child>
-			    <widget class="GtkMenuItem" id="play_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_play_tab_entry_activate" last_modification_time="Sun, 23 Mar 2003 09:00:04 GMT"/>
-			    </widget>
-			  </child>
-
-			  <child>
-			    <widget class="GtkMenuItem" id="play_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_play_tracks_activate" last_modification_time="Sun, 23 Mar 2003 09:00:04 GMT"/>
-			    </widget>
-			  </child>
-			</widget>
-		      </child>
-		    </widget>
-		  </child>
-
-		  <child>
-		    <widget class="GtkImageMenuItem" id="enqueue_menu">
-		      <property name="visible">True</property>
-		      <property name="label" translatable="yes">_Enqueue</property>
-		      <property name="use_underline">True</property>
-
-		      <child internal-child="image">
-			<widget class="GtkImage" id="image3857">
-			  <property name="visible">True</property>
-			  <property name="stock">gtk-cdrom</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>
-
-		      <child>
-			<widget class="GtkMenu" id="enqueue_menu_menu">
-
-			  <child>
-			    <widget class="GtkMenuItem" id="enqueue_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_enqueue_playlist_activate" last_modification_time="Sun, 23 Mar 2003 09:00:04 GMT"/>
-			    </widget>
-			  </child>
-
-			  <child>
-			    <widget class="GtkMenuItem" id="enqueue_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_enqueue_tab_entry_activate" last_modification_time="Sun, 23 Mar 2003 09:00:04 GMT"/>
-			    </widget>
-			  </child>
-
-			  <child>
-			    <widget class="GtkMenuItem" id="enqueue_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_enqueue_tracks_activate" last_modification_time="Sun, 23 Mar 2003 09:00:04 GMT"/>
-			    </widget>
-			  </child>
-			</widget>
-		      </child>
-		    </widget>
-		  </child>
-
-		  <child>
-		    <widget class="GtkSeparatorMenuItem" id="trennlinie4">
-		      <property name="visible">True</property>
-		    </widget>
-		  </child>
-
-		  <child>
-		    <widget class="GtkMenuItem" id="normalize_tracks1">
-		      <property name="visible">True</property>
-		      <property name="label" translatable="yes">_Normalize Volume</property>
-		      <property name="use_underline">True</property>
-
-		      <child>
-			<widget class="GtkMenu" id="normalize_tracks1_menu">
-
-			  <child>
-			    <widget class="GtkMenuItem" id="normalize_selected_playlist">
-			      <property name="visible">True</property>
-			      <property name="label" translatable="yes">Selected _Playlist</property>
-			      <property name="use_underline">True</property>
-			      <signal name="activate" handler="on_normalize_selected_playlist_activate" last_modification_time="Fri, 26 Sep 2003 16:01:19 GMT"/>
-			    </widget>
-			  </child>
-
-			  <child>
-			    <widget class="GtkMenuItem" id="normalize_selected_tab_entry">
-			      <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_normalize_selected_tab_entry_activate" last_modification_time="Fri, 26 Sep 2003 16:01:19 GMT"/>
-			    </widget>
-			  </child>
-
-			  <child>
-			    <widget class="GtkMenuItem" id="normalize_selected_tracks">
-			      <property name="visible">True</property>
-			      <property name="label" translatable="yes">Selected _Tracks</property>
-			      <property name="use_underline">True</property>
-			      <signal name="activate" handler="on_normalize_selected_tracks_activate" last_modification_time="Fri, 26 Sep 2003 16:01:19 GMT"/>
-			    </widget>
-			  </child>
-
-			  <child>
-			    <widget class="GtkMenuItem" id="normalize_displayed_tracks">
-			      <property name="visible">True</property>
-			      <property name="label" translatable="yes">_Displayed Tracks</property>
-			      <property name="use_underline">True</property>
-			      <signal name="activate" handler="on_normalize_displayed_tracks_activate" last_modification_time="Fri, 26 Sep 2003 16:01:19 GMT"/>
-			    </widget>
-			  </child>
-
-			  <child>
-			    <widget class="GtkMenuItem" id="normalize_all_tracks">
-			      <property name="visible">True</property>
-			      <property name="label" translatable="yes">_All Tracks</property>
-			      <property name="use_underline">True</property>
-			      <signal name="activate" handler="on_normalize_all_tracks" last_modification_time="Fri, 26 Sep 2003 16:01:19 GMT"/>
-			    </widget>
-			  </child>
-
-			  <child>
-			    <widget class="GtkMenuItem" id="normalize_newly_added_tracks">
-			      <property name="visible">True</property>
-			      <property name="label" translatable="yes">_Newly Added Tracks</property>
-			      <property name="use_underline">True</property>
-			      <signal name="activate" handler="on_normalize_newly_added_tracks" last_modification_time="Fri, 26 Sep 2003 16:01:19 GMT"/>
-			    </widget>
-			  </child>
-			</widget>
-		      </child>
-		    </widget>
-		  </child>
-
-		  <child>
-		    <widget class="GtkSeparatorMenuItem" id="trennlinie5">
-		      <property name="visible">True</property>
-		    </widget>
-		  </child>
-
-		  <child>
-		    <widget class="GtkMenuItem" id="sync_all">
-		      <property name="visible">True</property>
-		      <property name="tooltip" translatable="yes">Synchronise Contacts, Calendar and Notes</property>
-		      <property name="label" translatable="yes">Synchronize All</property>
-		      <property name="use_underline">True</property>
-		      <signal name="activate" handler="on_sync_all_activate" last_modification_time="Thu, 16 Dec 2004 00:15:04 GMT"/>
-		    </widget>
-		  </child>
-
-		  <child>
-		    <widget class="GtkMenuItem" id="sync_contacts">
-		      <property name="visible">True</property>
-		      <property name="label" translatable="yes">Synchronize Contacts</property>
-		      <property name="use_underline">True</property>
-		      <signal name="activate" handler="on_sync_contacts_activate" last_modification_time="Sun, 01 Feb 2004 10:51:37 GMT"/>
-		    </widget>
-		  </child>
-
-		  <child>
-		    <widget class="GtkMenuItem" id="sync_calendar">
-		      <property name="visible">True</property>
-		      <property name="label" translatable="yes">Synchronize Calendar</property>
-		      <property name="use_underline">True</property>
-		      <signal name="activate" handler="on_sync_calendar_activate" last_modification_time="Sun, 01 Feb 2004 10:51:37 GMT"/>
-		    </widget>
-		  </child>
-
-		  <child>
-		    <widget class="GtkMenuItem" id="sync_notes">
-		      <property name="visible">True</property>
-		      <property name="label" translatable="yes">Synchronize Notes</property>
-		      <property name="use_underline">True</property>
-		      <signal name="activate" handler="on_sync_notes_activate" last_modification_time="Thu, 16 Dec 2004 00:15:04 GMT"/>
-		    </widget>
-		  </child>
-		</widget>
-	      </child>
-	    </widget>
-	  </child>
-
-	  <child>
-	    <widget class="GtkMenuItem" id="menuitem13">
-	      <property name="visible">True</property>
-	      <property name="label" translatable="yes">_Help</property>
-	      <property name="use_underline">True</property>
-
-	      <child>
-		<widget class="GtkMenu" id="menuitem13_menu">
-
-		  <child>
-		    <widget class="GtkImageMenuItem" id="about1">
-		      <property name="visible">True</property>
-		      <property name="label" translatable="yes">_About</property>
-		      <property name="use_underline">True</property>
-		      <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="image3858">
-			  <property name="visible">True</property>
-			  <property name="stock">gtk-dialog-info</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>
-		</widget>
-	      </child>
-	    </widget>
-	  </child>
-	</widget>
-	<packing>
-	  <property name="padding">0</property>
-	  <property name="expand">False</property>
-	  <property name="fill">False</property>
-	</packing>
-      </child>
-
-      <child>
-	<widget class="GtkToolbar" id="toolbar">
-	  <property name="visible">True</property>
-	  <property name="orientation">GTK_ORIENTATION_HORIZONTAL</property>
-	  <property name="toolbar_style">GTK_TOOLBAR_BOTH</property>
-	  <property name="tooltips">True</property>
-	  <property name="show_arrow">True</property>
-
-	  <child>
-	    <widget class="GtkToolButton" id="load_ipods_button">
-	      <property name="visible">True</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_load_ipods_clicked" last_modification_time="Sat, 20 May 2006 14:20:43 GMT"/>
-	    </widget>
-	    <packing>
-	      <property name="expand">False</property>
-	      <property name="homogeneous">True</property>
-	    </packing>
-	  </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>
-	      <property name="label" translatable="yes">Files</property>
-	      <property name="use_underline">True</property>
-	      <property name="icon">gtkpod-add-files.png</property>
-	      <property name="visible_horizontal">True</property>
-	      <property name="visible_vertical">True</property>
-	      <property name="is_important">False</property>
-	      <signal name="clicked" handler="create_add_files_dialog" last_modification_time="Sun, 05 Jun 2005 13:09:54 GMT"/>
-	    </widget>
-	    <packing>
-	      <property name="expand">False</property>
-	      <property name="homogeneous">True</property>
-	    </packing>
-	  </child>
-
-	  <child>
-	    <widget class="GtkToolButton" id="add_dirs_button">
-	      <property name="visible">True</property>
-	      <property name="tooltip" translatable="yes">Add Directories Recursively</property>
-	      <property name="label" translatable="yes">Dirs</property>
-	      <property name="use_underline">True</property>
-	      <property name="icon">gtkpod-add-dirs.png</property>
-	      <property name="visible_horizontal">True</property>
-	      <property name="visible_vertical">True</property>
-	      <property name="is_important">False</property>
-	      <signal name="clicked" handler="dirbrowser_create" last_modification_time="Sun, 05 Jun 2005 13:10:20 GMT"/>
-	    </widget>
-	    <packing>
-	      <property name="expand">False</property>
-	      <property name="homogeneous">True</property>
-	    </packing>
-	  </child>
-
-	  <child>
-	    <widget class="GtkToolButton" id="add_PL_button">
-	      <property name="visible">True</property>
-	      <property name="tooltip" translatable="yes">Add playlist from file</property>
-	      <property name="label" translatable="yes">Playlist</property>
-	      <property name="use_underline">True</property>
-	      <property name="icon">gtkpod-add-playlists.png</property>
-	      <property name="visible_horizontal">True</property>
-	      <property name="visible_vertical">True</property>
-	      <property name="is_important">False</property>
-	      <signal name="clicked" handler="create_add_playlists_dialog" last_modification_time="Sun, 05 Jun 2005 13:13:11 GMT"/>
-	    </widget>
-	    <packing>
-	      <property name="expand">False</property>
-	      <property name="homogeneous">True</property>
-	    </packing>
-	  </child>
-
-	  <child>
-	    <widget class="GtkToolButton" id="new_PL_button">
-	      <property name="visible">True</property>
-	      <property name="tooltip" translatable="yes">Create New Playlist</property>
-	      <property name="label" translatable="yes">New PL</property>
-	      <property name="use_underline">True</property>
-	      <property name="icon">gtkpod-new-playlist.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_new_playlist_button" last_modification_time="Thu, 05 Dec 2002 12:17:43 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>
-	      <property name="use_underline">True</property>
-	      <property name="stock_id">gtk-stop</property>
-	      <property name="visible_horizontal">True</property>
-	      <property name="visible_vertical">True</property>
-	      <property name="is_important">False</property>
-	      <signal name="clicked" handler="on_stop_button_clicked" last_modification_time="Tue, 18 Feb 2003 05:40:30 GMT"/>
-	    </widget>
-	    <packing>
-	      <property name="expand">False</property>
-	      <property name="homogeneous">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="GtkHPaned" id="paned0">
-	  <property name="visible">True</property>
-	  <property name="can_focus">True</property>
-	  <property name="position">150</property>
-
-	  <child>
-	    <widget class="GtkScrolledWindow" id="playlist_window">
-	      <property name="visible">True</property>
-	      <property name="can_focus">True</property>
-	      <property name="hscrollbar_policy">GTK_POLICY_AUTOMATIC</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>
-		<placeholder/>
-	      </child>
-	    </widget>
-	    <packing>
-	      <property name="shrink">True</property>
-	      <property name="resize">False</property>
-	    </packing>
-	  </child>
-
-	  <child>
-	    <widget class="GtkVPaned" id="paned1">
-	      <property name="visible">True</property>
-	      <property name="can_focus">True</property>
-	      <property name="position">180</property>
-
-	      <child>
-		<widget class="GtkScrolledWindow" id="paned1_dummy">
-		  <property name="visible">True</property>
-		  <property name="can_focus">True</property>
-		  <property name="hscrollbar_policy">GTK_POLICY_AUTOMATIC</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>
-		    <placeholder/>
-		  </child>
-		</widget>
-		<packing>
-		  <property name="shrink">True</property>
-		  <property name="resize">False</property>
-		</packing>
-	      </child>
-
-	      <child>
-		<widget class="GtkScrolledWindow" id="track_window">
-		  <property name="visible">True</property>
-		  <property name="can_focus">True</property>
-		  <property name="hscrollbar_policy">GTK_POLICY_AUTOMATIC</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>
-		    <placeholder/>
-		  </child>
-		</widget>
-		<packing>
-		  <property name="shrink">True</property>
-		  <property name="resize">True</property>
-		</packing>
-	      </child>
-	    </widget>
-	    <packing>
-	      <property name="shrink">True</property>
-	      <property name="resize">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="GtkHPaned" id="paned2">
-	  <property name="visible">True</property>
-	  <property name="can_focus">True</property>
-	  <property name="position">0</property>
-
-	  <child>
-	    <widget class="GtkStatusbar" id="gtkpod_status">
-	      <property name="border_width">1</property>
-	      <property name="width_request">300</property>
-	      <property name="visible">True</property>
-	      <property name="has_resize_grip">False</property>
-	    </widget>
-	    <packing>
-	      <property name="shrink">False</property>
-	      <property name="resize">True</property>
-	    </packing>
-	  </child>
-
-	  <child>
-	    <widget class="GtkHPaned" id="paned3">
-	      <property name="visible">True</property>
-	      <property name="can_focus">True</property>
-	      <property name="position">130</property>
-
-	      <child>
-		<widget class="GtkStatusbar" id="space_statusbar">
-		  <property name="border_width">1</property>
-		  <property name="width_request">80</property>
-		  <property name="visible">True</property>
-		  <property name="has_resize_grip">False</property>
-		</widget>
-		<packing>
-		  <property name="shrink">True</property>
-		  <property name="resize">False</property>
-		</packing>
-	      </child>
-
-	      <child>
-		<widget class="GtkStatusbar" id="tracks_statusbar">
-		  <property name="border_width">1</property>
-		  <property name="width_request">175</property>
-		  <property name="visible">True</property>
-		  <property name="has_resize_grip">True</property>
-		</widget>
-		<packing>
-		  <property name="shrink">True</property>
-		  <property name="resize">True</property>
-		</packing>
-	      </child>
-	    </widget>
-	    <packing>
-	      <property name="shrink">True</property>
-	      <property name="resize">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>
-
-<widget class="GtkWindow" id="gtkpod_about_window">
-  <property name="width_request">350</property>
-  <property name="height_request">0</property>
-  <property name="title" translatable="yes">About gtkpod</property>
-  <property name="type">GTK_WINDOW_TOPLEVEL</property>
-  <property name="window_position">GTK_WIN_POS_NONE</property>
-  <property name="modal">False</property>
-  <property name="default_width">450</property>
-  <property name="default_height">450</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>
-  <signal name="delete_event" handler="on_about_window_close" last_modification_time="Sat, 30 Nov 2002 16:10:01 GMT"/>
-
-  <child>
-    <widget class="GtkVBox" id="vbox2">
-      <property name="visible">True</property>
-      <property name="homogeneous">False</property>
-      <property name="spacing">0</property>
-
-      <child>
-	<widget class="GtkVBox" id="about_top_box">
-	  <property name="visible">True</property>
-	  <property name="homogeneous">False</property>
-	  <property name="spacing">0</property>
-
-	  <child>
-	    <widget class="GtkImage" id="logo_image">
-	      <property name="visible">True</property>
-	      <property name="pixbuf">gtkpod-logo.png</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="GtkLabel" id="about_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_CENTER</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">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>
-
-      <child>
-	<widget class="GtkNotebook" id="notebook1">
-	  <property name="border_width">2</property>
-	  <property name="visible">True</property>
-	  <property name="can_focus">True</property>
-	  <property name="show_tabs">True</property>
-	  <property name="show_border">True</property>
-	  <property name="tab_pos">GTK_POS_TOP</property>
-	  <property name="scrollable">False</property>
-	  <property name="enable_popup">False</property>
-
-	  <child>
-	    <widget class="GtkScrolledWindow" id="scrolledwindow2">
-	      <property name="visible">True</property>
-	      <property name="can_focus">True</property>
-	      <property name="hscrollbar_policy">GTK_POLICY_AUTOMATIC</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="GtkTextView" id="credits_textview">
-		  <property name="visible">True</property>
-		  <property name="can_focus">True</property>
-		  <property name="editable">False</property>
-		  <property name="overwrite">False</property>
-		  <property name="accepts_tab">True</property>
-		  <property name="justification">GTK_JUSTIFY_LEFT</property>
-		  <property name="wrap_mode">GTK_WRAP_WORD</property>
-		  <property name="cursor_visible">True</property>
-		  <property name="pixels_above_lines">0</property>
-		  <property name="pixels_below_lines">0</property>
-		  <property name="pixels_inside_wrap">0</property>
-		  <property name="left_margin">0</property>
-		  <property name="right_margin">0</property>
-		  <property name="indent">0</property>
-		  <property name="text" translatable="yes"></property>
-		</widget>
-	      </child>
-	    </widget>
-	    <packing>
-	      <property name="tab_expand">False</property>
-	      <property name="tab_fill">True</property>
-	    </packing>
-	  </child>
-
-	  <child>
-	    <widget class="GtkLabel" id="label3">
-	      <property name="visible">True</property>
-	      <property name="label" translatable="yes">Credits</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="type">tab</property>
-	    </packing>
-	  </child>
-
-	  <child>
-	    <widget class="GtkScrolledWindow" id="scrolledwindow3">
-	      <property name="visible">True</property>
-	      <property name="can_focus">True</property>
-	      <property name="hscrollbar_policy">GTK_POLICY_AUTOMATIC</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="GtkTextView" id="translators_textview">
-		  <property name="visible">True</property>
-		  <property name="can_focus">True</property>
-		  <property name="editable">False</property>
-		  <property name="overwrite">False</property>
-		  <property name="accepts_tab">True</property>
-		  <property name="justification">GTK_JUSTIFY_LEFT</property>
-		  <property name="wrap_mode">GTK_WRAP_WORD</property>
-		  <property name="cursor_visible">True</property>
-		  <property name="pixels_above_lines">0</property>
-		  <property name="pixels_below_lines">0</property>
-		  <property name="pixels_inside_wrap">0</property>
-		  <property name="left_margin">0</property>
-		  <property name="right_margin">0</property>
-		  <property name="indent">0</property>
-		  <property name="text" translatable="yes"></property>
-		</widget>
-	      </child>
-	    </widget>
-	    <packing>
-	      <property name="tab_expand">False</property>
-	      <property name="tab_fill">True</property>
-	    </packing>
-	  </child>
-
-	  <child>
-	    <widget class="GtkLabel" id="label4">
-	      <property name="visible">True</property>
-	      <property name="label" translatable="yes">Translators</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="type">tab</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="GtkHButtonBox" id="hbuttonbox2">
-	  <property name="border_width">5</property>
-	  <property name="visible">True</property>
-	  <property name="layout_style">GTK_BUTTONBOX_DEFAULT_STYLE</property>
-	  <property name="spacing">0</property>
-
-	  <child>
-	    <widget class="GtkButton" id="about_close">
-	      <property name="visible">True</property>
-	      <property name="can_default">True</property>
-	      <property name="can_focus">True</property>
-	      <property name="label">gtk-close</property>
-	      <property name="use_stock">True</property>
-	      <property name="relief">GTK_RELIEF_NORMAL</property>
-	      <property name="focus_on_click">True</property>
-	      <signal name="clicked" handler="on_about_window_close_button" object="gtkpod_about_window" last_modification_time="Sat, 30 Nov 2002 17:00:55 GMT"/>
-	    </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="GtkWindow" id="special_sorttab">
-  <property name="title" translatable="yes">special_sorttab -- Don't translate!</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_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">
-      <property name="visible">True</property>
-      <property name="shadow_type">GTK_SHADOW_IN</property>
-
-      <child>
-	<widget class="GtkVBox" id="vbox37">
-	  <property name="visible">True</property>
-	  <property name="homogeneous">False</property>
-	  <property name="spacing">0</property>
-
-	  <child>
-	    <widget class="GtkHBox" id="hbox20">
-	      <property name="visible">True</property>
-	      <property name="homogeneous">False</property>
-	      <property name="spacing">0</property>
-
-	      <child>
-		<widget class="GtkLabel" id="label52">
-		  <property name="visible">True</property>
-		  <property name="can_focus">True</property>
-		  <property name="label" translatable="yes"> Logic: </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">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="padding">0</property>
-		  <property name="expand">False</property>
-		  <property name="fill">False</property>
-		</packing>
-	      </child>
-
-	      <child>
-		<widget class="GtkRadioButton" id="sp_or_button">
-		  <property name="visible">True</property>
-		  <property name="can_focus">True</property>
-		  <property name="label" translatable="yes">Any (OR)</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="sp_and_button">
-		  <property name="visible">True</property>
-		  <property name="can_focus">True</property>
-		  <property name="label" translatable="yes">All (AND)</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">sp_or_button</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">True</property>
-	    </packing>
-	  </child>
-
-	  <child>
-	    <widget class="GtkHSeparator" id="hseparator1">
-	      <property name="visible">True</property>
-	    </widget>
-	    <packing>
-	      <property name="padding">2</property>
-	      <property name="expand">False</property>
-	      <property name="fill">True</property>
-	    </packing>
-	  </child>
-
-	  <child>
-	    <widget class="GtkTable" id="table6">
-	      <property name="visible">True</property>
-	      <property name="n_rows">5</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="GtkHBox" id="hbox14">
-		  <property name="visible">True</property>
-		  <property name="homogeneous">False</property>
-		  <property name="spacing">0</property>
-
-		  <child>
-		    <widget class="GtkCheckButton" id="sp_rating0">
-		      <property name="visible">True</property>
-		      <property name="can_focus">True</property>
-		      <property name="label" translatable="yes">0</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="sp_rating1">
-		      <property name="visible">True</property>
-		      <property name="can_focus">True</property>
-		      <property name="label" translatable="yes">1</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="sp_rating2">
-		      <property name="visible">True</property>
-		      <property name="can_focus">True</property>
-		      <property name="label" translatable="yes">2</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="sp_rating3">
-		      <property name="visible">True</property>
-		      <property name="can_focus">True</property>
-		      <property name="label" translatable="yes">3</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="sp_rating4">
-		      <property name="visible">True</property>
-		      <property name="can_focus">True</property>
-		      <property name="label" translatable="yes">4</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="sp_rating5">
-		      <property name="visible">True</property>
-		      <property name="can_focus">True</property>
-		      <property name="label" translatable="yes">5</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="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">fill</property>
-		</packing>
-	      </child>
-
-	      <child>
-		<widget class="GtkHBox" id="hbox15">
-		  <property name="visible">True</property>
-		  <property name="homogeneous">False</property>
-		  <property name="spacing">0</property>
-
-		  <child>
-		    <widget class="GtkHBox" id="hbox23">
-		      <property name="visible">True</property>
-		      <property name="homogeneous">False</property>
-		      <property name="spacing">0</property>
-
-		      <child>
-			<widget class="GtkSpinButton" id="sp_playcount_low">
-			  <property name="visible">True</property>
-			  <property name="tooltip" translatable="yes">Select '0' for no lower limit.</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 0 2147480000 1 10 10</property>
-			</widget>
-			<packing>
-			  <property name="padding">0</property>
-			  <property name="expand">True</property>
-			  <property name="fill">True</property>
-			</packing>
-		      </child>
-
-		      <child>
-			<widget class="GtkLabel" id="label54">
-			  <property name="visible">True</property>
-			  <property name="can_focus">True</property>
-			  <property name="label" translatable="yes"> &lt;= cts &lt;= </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">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="padding">0</property>
-			  <property name="expand">False</property>
-			  <property name="fill">False</property>
-			</packing>
-		      </child>
-
-		      <child>
-			<widget class="GtkSpinButton" id="sp_playcount_high">
-			  <property name="visible">True</property>
-			  <property name="tooltip" translatable="yes">Select '-1' for no upper limit.</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 2147480000 1 10 10</property>
-			</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="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">fill</property>
-		</packing>
-	      </child>
-
-	      <child>
-		<widget class="GtkHBox" id="hbox17">
-		  <property name="visible">True</property>
-		  <property name="homogeneous">False</property>
-		  <property name="spacing">0</property>
-
-		  <child>
-		    <widget class="GtkEntry" id="sp_played_entry">
-		      <property name="visible">True</property>
-		      <property name="tooltip" translatable="yes">'DD/MM/YYYY HH:MM &lt; d &lt; DD/MM/YYYY HH:MM' or similar. Press 'enter' when finished.</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="GtkLabel" id="label49">
-		      <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>
-		      <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="GtkButton" id="sp_played_cal_button">
-		      <property name="visible">True</property>
-		      <property name="can_focus">True</property>
-		      <property name="label" translatable="yes">Calendar</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="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_options">fill</property>
-		  <property name="y_options">fill</property>
-		</packing>
-	      </child>
-
-	      <child>
-		<widget class="GtkHBox" id="hbox18">
-		  <property name="visible">True</property>
-		  <property name="homogeneous">False</property>
-		  <property name="spacing">0</property>
-
-		  <child>
-		    <widget class="GtkEntry" id="sp_modified_entry">
-		      <property name="visible">True</property>
-		      <property name="tooltip" translatable="yes">'DD/MM/YYYY HH:MM &lt; d &lt; DD/MM/YYYY HH:MM' or similar. Press 'enter' when finished.</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="GtkLabel" id="label50">
-		      <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>
-		      <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="GtkButton" id="sp_modified_cal_button">
-		      <property name="visible">True</property>
-		      <property name="can_focus">True</property>
-		      <property name="label" translatable="yes">Calendar</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="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_options">fill</property>
-		  <property name="y_options">fill</property>
-		</packing>
-	      </child>
-
-	      <child>
-		<widget class="GtkCheckButton" id="sp_playcount_button">
-		  <property name="visible">True</property>
-		  <property name="tooltip" translatable="yes">Specify interval</property>
-		  <property name="can_focus">True</property>
-		  <property name="label" translatable="yes">Playcount</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">0</property>
-		  <property name="right_attach">1</property>
-		  <property name="top_attach">1</property>
-		  <property name="bottom_attach">2</property>
-		  <property name="x_padding">2</property>
-		  <property name="x_options">fill</property>
-		  <property name="y_options"></property>
-		</packing>
-	      </child>
-
-	      <child>
-		<widget class="GtkCheckButton" id="sp_rating_button">
-		  <property name="visible">True</property>
-		  <property name="can_focus">True</property>
-		  <property name="label" translatable="yes">Rating</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">0</property>
-		  <property name="right_attach">1</property>
-		  <property name="top_attach">0</property>
-		  <property name="bottom_attach">1</property>
-		  <property name="x_padding">2</property>
-		  <property name="x_options">fill</property>
-		  <property name="y_options"></property>
-		</packing>
-	      </child>
-
-	      <child>
-		<widget class="GtkCheckButton" id="sp_played_button">
-		  <property name="visible">True</property>
-		  <property name="can_focus">True</property>
-		  <property name="label" translatable="yes">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>
-		</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_padding">2</property>
-		  <property name="x_options">fill</property>
-		  <property name="y_options"></property>
-		</packing>
-	      </child>
-
-	      <child>
-		<widget class="GtkCheckButton" id="sp_modified_button">
-		  <property name="visible">True</property>
-		  <property name="can_focus">True</property>
-		  <property name="label" translatable="yes">Modified</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">0</property>
-		  <property name="right_attach">1</property>
-		  <property name="top_attach">3</property>
-		  <property name="bottom_attach">4</property>
-		  <property name="x_padding">2</property>
-		  <property name="x_options">fill</property>
-		  <property name="y_options"></property>
-		</packing>
-	      </child>
-
-	      <child>
-		<widget class="GtkHBox" id="hbox57">
-		  <property name="visible">True</property>
-		  <property name="homogeneous">False</property>
-		  <property name="spacing">0</property>
-
-		  <child>
-		    <widget class="GtkEntry" id="sp_added_entry">
-		      <property name="visible">True</property>
-		      <property name="tooltip" translatable="yes">'DD/MM/YYYY HH:MM &lt; d &lt; DD/MM/YYYY HH:MM' or similar. Press 'enter' when finished.</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="GtkLabel" id="label159">
-		      <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>
-		      <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="GtkButton" id="sp_added_cal_button">
-		      <property name="visible">True</property>
-		      <property name="can_focus">True</property>
-		      <property name="label" translatable="yes">Calendar</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="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_options">fill</property>
-		</packing>
-	      </child>
-
-	      <child>
-		<widget class="GtkCheckButton" id="sp_added_button">
-		  <property name="visible">True</property>
-		  <property name="can_focus">True</property>
-		  <property name="label" translatable="yes">Added</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">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"></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="GtkHSeparator" id="hseparator2">
-	      <property name="visible">True</property>
-	    </widget>
-	    <packing>
-	      <property name="padding">0</property>
-	      <property name="expand">False</property>
-	      <property name="fill">True</property>
-	    </packing>
-	  </child>
-
-	  <child>
-	    <widget class="GtkHBox" id="hbox21">
-	      <property name="visible">True</property>
-	      <property name="homogeneous">False</property>
-	      <property name="spacing">0</property>
-
-	      <child>
-		<widget class="GtkButton" id="sp_go">
-		  <property name="visible">True</property>
-		  <property name="tooltip" translatable="yes">Display tracks that match the criteria entered above.</property>
-		  <property name="can_focus">True</property>
-		  <property name="relief">GTK_RELIEF_NORMAL</property>
-		  <property name="focus_on_click">True</property>
-
-		  <child>
-		    <widget class="GtkAlignment" id="alignment1">
-		      <property name="visible">True</property>
-		      <property name="xalign">0.5</property>
-		      <property name="yalign">0.5</property>
-		      <property name="xscale">0</property>
-		      <property name="yscale">0</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="GtkHBox" id="hbox22">
-			  <property name="visible">True</property>
-			  <property name="homogeneous">False</property>
-			  <property name="spacing">2</property>
-
-			  <child>
-			    <widget class="GtkImage" id="image1056">
-			      <property name="visible">True</property>
-			      <property name="stock">gtk-execute</property>
-			      <property name="icon_size">4</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="GtkLabel" id="label53">
-			      <property name="visible">True</property>
-			      <property name="label" translatable="yes">_Display</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="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>
-			</widget>
-		      </child>
-		    </widget>
-		  </child>
-		</widget>
-		<packing>
-		  <property name="padding">2</property>
-		  <property name="expand">False</property>
-		  <property name="fill">True</property>
-		</packing>
-	      </child>
-
-	      <child>
-		<widget class="GtkCheckButton" id="sp_go_always">
-		  <property name="visible">True</property>
-		  <property name="tooltip" translatable="yes">Automatically start displaying tracks that match the criteria entered above. If not selected, you must press 'Display' to start displaying.</property>
-		  <property name="can_focus">True</property>
-		  <property name="label" translatable="yes">Start display automatically</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">2</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>
-      </child>
-    </widget>
-  </child>
-</widget>
-
-<widget class="GtkWindow" id="calendar_window">
-  <property name="title" translatable="yes">Calendar</property>
-  <property name="type">GTK_WINDOW_TOPLEVEL</property>
-  <property name="window_position">GTK_WIN_POS_NONE</property>
-  <property name="modal">False</property>
-  <property name="default_width">480</property>
-  <property name="default_height">290</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="scrolledwindow4">
-      <property name="visible">True</property>
-      <property name="can_focus">True</property>
-      <property name="hscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
-      <property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
-      <property name="shadow_type">GTK_SHADOW_ETCHED_IN</property>
-      <property name="window_placement">GTK_CORNER_TOP_LEFT</property>
-
-      <child>
-	<widget class="GtkViewport" id="viewport1">
-	  <property name="visible">True</property>
-	  <property name="shadow_type">GTK_SHADOW_ETCHED_IN</property>
-
-	  <child>
-	    <widget class="GtkVBox" id="vbox43">
-	      <property name="visible">True</property>
-	      <property name="homogeneous">False</property>
-	      <property name="spacing">0</property>
-
-	      <child>
-		<widget class="GtkHBox" id="hbox29">
-		  <property name="visible">True</property>
-		  <property name="homogeneous">False</property>
-		  <property name="spacing">0</property>
-
-		  <child>
-		    <widget class="GtkLabel" id="label64">
-		      <property name="visible">True</property>
-		      <property name="can_focus">True</property>
-		      <property name="label" translatable="yes">Sorttab: </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">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="padding">3</property>
-		      <property name="expand">False</property>
-		      <property name="fill">False</property>
-		    </packing>
-		  </child>
-
-		  <child>
-		    <widget class="GtkSpinButton" id="sorttab_num_spin">
-		      <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 0 100 1 10 10</property>
-		    </widget>
-		    <packing>
-		      <property name="padding">0</property>
-		      <property name="expand">False</property>
-		      <property name="fill">False</property>
-		    </packing>
-		  </child>
-
-		  <child>
-		    <widget class="GtkLabel" id="label65">
-		      <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>
-		      <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="GtkLabel" id="label66">
-		      <property name="visible">True</property>
-		      <property name="can_focus">True</property>
-		      <property name="label" translatable="yes">Category: </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">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="padding">3</property>
-		      <property name="expand">False</property>
-		      <property name="fill">False</property>
-		    </packing>
-		  </child>
-
-		  <child>
-		    <widget class="GtkCombo" id="cat_combo">
-		      <property name="visible">True</property>
-		      <property name="value_in_list">True</property>
-		      <property name="allow_empty">False</property>
-		      <property name="case_sensitive">False</property>
-		      <property name="enable_arrow_keys">True</property>
-		      <property name="enable_arrows_always">False</property>
-
-		      <child internal-child="entry">
-			<widget class="GtkEntry" id="cat_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>
-		      </child>
-
-		      <child internal-child="list">
-			<widget class="GtkList" id="cat_list">
-			  <property name="visible">True</property>
-			  <property name="selection_mode">GTK_SELECTION_BROWSE</property>
-			</widget>
-		      </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">2</property>
-		  <property name="expand">False</property>
-		  <property name="fill">True</property>
-		</packing>
-	      </child>
-
-	      <child>
-		<widget class="GtkHSeparator" id="hseparator6">
-		  <property name="visible">True</property>
-		</widget>
-		<packing>
-		  <property name="padding">0</property>
-		  <property name="expand">False</property>
-		  <property name="fill">False</property>
-		</packing>
-	      </child>
-
-	      <child>
-		<widget class="GtkLabel" id="label63">
-		  <property name="visible">True</property>
-		  <property name="can_focus">True</property>
-		  <property name="label" translatable="yes">Please specify a time interval</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">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="padding">3</property>
-		  <property name="expand">False</property>
-		  <property name="fill">False</property>
-		</packing>
-	      </child>
-
-	      <child>
-		<widget class="GtkHSeparator" id="hseparator5">
-		  <property name="visible">True</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="hbox25">
-		  <property name="visible">True</property>
-		  <property name="homogeneous">False</property>
-		  <property name="spacing">0</property>
-
-		  <child>
-		    <widget class="GtkVBox" id="vbox44">
-		      <property name="visible">True</property>
-		      <property name="homogeneous">False</property>
-		      <property name="spacing">0</property>
-
-		      <child>
-			<widget class="GtkLabel" id="label57">
-			  <property name="visible">True</property>
-			  <property name="can_focus">True</property>
-			  <property name="label" translatable="yes">Lower Margin</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">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="padding">2</property>
-			  <property name="expand">False</property>
-			  <property name="fill">False</property>
-			</packing>
-		      </child>
-
-		      <child>
-			<widget class="GtkVBox" id="lower_cal_box">
-			  <property name="visible">True</property>
-			  <property name="homogeneous">False</property>
-			  <property name="spacing">0</property>
-
-			  <child>
-			    <widget class="GtkCalendar" id="lower_cal">
-			      <property name="visible">True</property>
-			      <property name="can_focus">True</property>
-			      <property name="display_options">GTK_CALENDAR_SHOW_HEADING|GTK_CALENDAR_SHOW_DAY_NAMES|GTK_CALENDAR_WEEK_START_MONDAY</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="lower_time_fullbox">
-			      <property name="visible">True</property>
-			      <property name="homogeneous">False</property>
-			      <property name="spacing">0</property>
-
-			      <child>
-				<widget class="GtkCheckButton" id="lower_time">
-				  <property name="visible">True</property>
-				  <property name="can_focus">True</property>
-				  <property name="label" translatable="yes">Time:</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="GtkHBox" id="lower_time_box">
-				  <property name="visible">True</property>
-				  <property name="homogeneous">False</property>
-				  <property name="spacing">0</property>
-
-				  <child>
-				    <widget class="GtkSpinButton" id="lower_hours">
-				      <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">True</property>
-				      <property name="update_policy">GTK_UPDATE_ALWAYS</property>
-				      <property name="snap_to_ticks">False</property>
-				      <property name="wrap">True</property>
-				      <property name="adjustment">0 0 23 1 2 10</property>
-				    </widget>
-				    <packing>
-				      <property name="padding">0</property>
-				      <property name="expand">True</property>
-				      <property name="fill">True</property>
-				    </packing>
-				  </child>
-
-				  <child>
-				    <widget class="GtkLabel" id="label59">
-				      <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>
-				      <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="GtkSpinButton" id="lower_minutes">
-				      <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">True</property>
-				      <property name="update_policy">GTK_UPDATE_ALWAYS</property>
-				      <property name="snap_to_ticks">False</property>
-				      <property name="wrap">True</property>
-				      <property name="adjustment">3 0 59 1 5 2</property>
-				    </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>
-			    </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="GtkHSeparator" id="hseparator3">
-			  <property name="visible">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="no_lower_margin">
-			  <property name="visible">True</property>
-			  <property name="can_focus">True</property>
-			  <property name="label" translatable="yes">No lower margin</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>
-
-		  <child>
-		    <widget class="GtkVSeparator" id="vseparator1">
-		      <property name="visible">True</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="vbox47">
-		      <property name="visible">True</property>
-		      <property name="homogeneous">False</property>
-		      <property name="spacing">0</property>
-
-		      <child>
-			<widget class="GtkLabel" id="label58">
-			  <property name="visible">True</property>
-			  <property name="can_focus">True</property>
-			  <property name="label" translatable="yes">Upper margin</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">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="padding">2</property>
-			  <property name="expand">False</property>
-			  <property name="fill">False</property>
-			</packing>
-		      </child>
-
-		      <child>
-			<widget class="GtkVBox" id="upper_cal_box">
-			  <property name="visible">True</property>
-			  <property name="homogeneous">False</property>
-			  <property name="spacing">0</property>
-
-			  <child>
-			    <widget class="GtkCalendar" id="upper_cal">
-			      <property name="visible">True</property>
-			      <property name="can_focus">True</property>
-			      <property name="display_options">GTK_CALENDAR_SHOW_HEADING|GTK_CALENDAR_SHOW_DAY_NAMES|GTK_CALENDAR_WEEK_START_MONDAY</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="upper_time_fullbox">
-			      <property name="visible">True</property>
-			      <property name="homogeneous">False</property>
-			      <property name="spacing">0</property>
-
-			      <child>
-				<widget class="GtkCheckButton" id="upper_time">
-				  <property name="visible">True</property>
-				  <property name="can_focus">True</property>
-				  <property name="label" translatable="yes">Time:</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="GtkHBox" id="upper_time_box">
-				  <property name="visible">True</property>
-				  <property name="homogeneous">False</property>
-				  <property name="spacing">0</property>
-
-				  <child>
-				    <widget class="GtkSpinButton" id="upper_hours">
-				      <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">True</property>
-				      <property name="update_policy">GTK_UPDATE_ALWAYS</property>
-				      <property name="snap_to_ticks">False</property>
-				      <property name="wrap">True</property>
-				      <property name="adjustment">0 0 23 1 2 10</property>
-				    </widget>
-				    <packing>
-				      <property name="padding">0</property>
-				      <property name="expand">True</property>
-				      <property name="fill">True</property>
-				    </packing>
-				  </child>
-
-				  <child>
-				    <widget class="GtkLabel" id="label62">
-				      <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>
-				      <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="GtkSpinButton" id="upper_minutes">
-				      <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">True</property>
-				      <property name="update_policy">GTK_UPDATE_ALWAYS</property>
-				      <property name="snap_to_ticks">False</property>
-				      <property name="wrap">True</property>
-				      <property name="adjustment">3 0 59 1 5 2</property>
-				    </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>
-			    </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="GtkHSeparator" id="hseparator4">
-			  <property name="visible">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="no_upper_margin">
-			  <property name="visible">True</property>
-			  <property name="can_focus">True</property>
-			  <property name="label" translatable="yes">No upper margin</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">0</property>
-		  <property name="expand">False</property>
-		  <property name="fill">True</property>
-		</packing>
-	      </child>
-
-	      <child>
-		<widget class="GtkHSeparator" id="hseparator7">
-		  <property name="visible">True</property>
-		</widget>
-		<packing>
-		  <property name="padding">0</property>
-		  <property name="expand">False</property>
-		  <property name="fill">False</property>
-		</packing>
-	      </child>
-
-	      <child>
-		<widget class="GtkHButtonBox" id="hbuttonbox7">
-		  <property name="visible">True</property>
-		  <property name="layout_style">GTK_BUTTONBOX_SPREAD</property>
-		  <property name="spacing">0</property>
-
-		  <child>
-		    <widget class="GtkButton" id="cal_apply">
-		      <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="cal_cancel">
-		      <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="cal_ok">
-		      <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">2</property>
-		  <property name="expand">False</property>
-		  <property name="fill">True</property>
-		  <property name="pack_type">GTK_PACK_END</property>
-		</packing>
-	      </child>
-	    </widget>
-	  </child>
-	</widget>
-      </child>
-    </widget>
-  </child>
-</widget>
-
-<widget class="GtkWindow" id="sort_window">
-  <property name="title" translatable="yes">Sorting 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>
-  <signal name="delete_event" handler="on_sort_window_delete_event" last_modification_time="Mon, 22 Sep 2003 11:54:32 GMT"/>
-
-  <child>
-    <widget class="GtkVBox" id="vbox52">
-      <property name="border_width">6</property>
-      <property name="visible">True</property>
-      <property name="homogeneous">False</property>
-      <property name="spacing">4</property>
-
-      <child>
-	<widget class="GtkVBox" id="vbox135">
-	  <property name="visible">True</property>
-	  <property name="homogeneous">False</property>
-	  <property name="spacing">6</property>
-
-	  <child>
-	    <widget class="GtkLabel" id="label283">
-	      <property name="visible">True</property>
-	      <property name="label" translatable="yes">&lt;b&gt;Sort Order&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="hbox128">
-	      <property name="visible">True</property>
-	      <property name="homogeneous">False</property>
-	      <property name="spacing">0</property>
-
-	      <child>
-		<widget class="GtkLabel" id="label284">
-		  <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>
-		  <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="vbox53">
-		  <property name="visible">True</property>
-		  <property name="homogeneous">False</property>
-		  <property name="spacing">0</property>
-
-		  <child>
-		    <widget class="GtkLabel" id="label296">
-		      <property name="visible">True</property>
-		      <property name="can_focus">True</property>
-		      <property name="label" translatable="yes">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.</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">True</property>
-		      <property name="xalign">0.0399999991059</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>
-
-		  <child>
-		    <widget class="GtkHBox" id="hbox30">
-		      <property name="visible">True</property>
-		      <property name="homogeneous">False</property>
-		      <property name="spacing">0</property>
-
-		      <child>
-			<widget class="GtkTable" id="table11">
-			  <property name="border_width">4</property>
-			  <property name="visible">True</property>
-			  <property name="n_rows">9</property>
-			  <property name="n_columns">11</property>
-			  <property name="homogeneous">False</property>
-			  <property name="row_spacing">0</property>
-			  <property name="column_spacing">0</property>
-
-			  <child>
-			    <widget class="GtkHBox" id="hbox34">
-			      <property name="visible">True</property>
-			      <property name="homogeneous">True</property>
-			      <property name="spacing">0</property>
-
-			      <child>
-				<widget class="GtkRadioButton" id="st_ascend">
-				  <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>
-				  <property name="active">False</property>
-				  <property name="inconsistent">False</property>
-				  <property name="draw_indicator">True</property>
-				  <signal name="toggled" handler="on_st_ascend_toggled" last_modification_time="Mon, 22 Sep 2003 11:25:58 GMT"/>
-
-				  <child>
-				    <widget class="GtkImage" id="image1931">
-				      <property name="visible">True</property>
-				      <property name="stock">gtk-sort-ascending</property>
-				      <property name="icon_size">4</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>
-				<packing>
-				  <property name="padding">0</property>
-				  <property name="expand">False</property>
-				  <property name="fill">False</property>
-				</packing>
-			      </child>
-			    </widget>
-			    <packing>
-			      <property name="left_attach">3</property>
-			      <property name="right_attach">4</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="GtkHBox" id="hbox35">
-			      <property name="visible">True</property>
-			      <property name="homogeneous">True</property>
-			      <property name="spacing">0</property>
-
-			      <child>
-				<widget class="GtkRadioButton" id="st_descend">
-				  <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>
-				  <property name="active">False</property>
-				  <property name="inconsistent">False</property>
-				  <property name="draw_indicator">True</property>
-				  <property name="group">st_ascend</property>
-				  <signal name="toggled" handler="on_st_descend_toggled" last_modification_time="Mon, 22 Sep 2003 11:25:53 GMT"/>
-
-				  <child>
-				    <widget class="GtkImage" id="image1932">
-				      <property name="visible">True</property>
-				      <property name="stock">gtk-sort-descending</property>
-				      <property name="icon_size">4</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>
-				<packing>
-				  <property name="padding">0</property>
-				  <property name="expand">False</property>
-				  <property name="fill">False</property>
-				</packing>
-			      </child>
-			    </widget>
-			    <packing>
-			      <property name="left_attach">5</property>
-			      <property name="right_attach">6</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="GtkHBox" id="hbox36">
-			      <property name="visible">True</property>
-			      <property name="homogeneous">True</property>
-			      <property name="spacing">0</property>
-
-			      <child>
-				<widget class="GtkRadioButton" id="st_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>
-				  <property name="active">False</property>
-				  <property name="inconsistent">False</property>
-				  <property name="draw_indicator">True</property>
-				  <property name="group">st_ascend</property>
-				  <signal name="toggled" handler="on_st_none_toggled" last_modification_time="Mon, 22 Sep 2003 11:25:46 GMT"/>
-
-				  <child>
-				    <widget class="GtkImage" id="image1933">
-				      <property name="visible">True</property>
-				      <property name="stock">gtk-undo</property>
-				      <property name="icon_size">4</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>
-				<packing>
-				  <property name="padding">0</property>
-				  <property name="expand">False</property>
-				  <property name="fill">False</property>
-				</packing>
-			      </child>
-			    </widget>
-			    <packing>
-			      <property name="left_attach">7</property>
-			      <property name="right_attach">8</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="GtkHBox" id="hbox33">
-			      <property name="visible">True</property>
-			      <property name="homogeneous">True</property>
-			      <property name="spacing">0</property>
-
-			      <child>
-				<widget class="GtkRadioButton" id="pm_none">
-				  <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_none_toggled" last_modification_time="Mon, 22 Sep 2003 11:26:52 GMT"/>
-
-				  <child>
-				    <widget class="GtkImage" id="image1930">
-				      <property name="visible">True</property>
-				      <property name="stock">gtk-undo</property>
-				      <property name="icon_size">4</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>
-				<packing>
-				  <property name="padding">0</property>
-				  <property name="expand">False</property>
-				  <property name="fill">False</property>
-				</packing>
-			      </child>
-			    </widget>
-			    <packing>
-			      <property name="left_attach">7</property>
-			      <property name="right_attach">8</property>
-			      <property name="top_attach">3</property>
-			      <property name="bottom_attach">4</property>
-			      <property name="y_options">fill</property>
-			    </packing>
-			  </child>
-
-			  <child>
-			    <widget class="GtkHBox" id="hbox32">
-			      <property name="homogeneous">True</property>
-			      <property name="spacing">0</property>
-
-			      <child>
-				<widget class="GtkRadioButton" id="pm_descend">
-				  <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>
-				  <property name="active">False</property>
-				  <property name="inconsistent">False</property>
-				  <property name="draw_indicator">True</property>
-				  <property name="group">pm_none</property>
-				  <signal name="toggled" handler="on_pm_descend_toggled" last_modification_time="Mon, 22 Sep 2003 11:26:59 GMT"/>
-
-				  <child>
-				    <widget class="GtkImage" id="image1929">
-				      <property name="visible">True</property>
-				      <property name="stock">gtk-sort-descending</property>
-				      <property name="icon_size">4</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>
-				<packing>
-				  <property name="padding">0</property>
-				  <property name="expand">False</property>
-				  <property name="fill">False</property>
-				</packing>
-			      </child>
-			    </widget>
-			    <packing>
-			      <property name="left_attach">5</property>
-			      <property name="right_attach">6</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="hbox37">
-			      <property name="homogeneous">True</property>
-			      <property name="spacing">0</property>
-
-			      <child>
-				<widget class="GtkRadioButton" id="pm_ascend">
-				  <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>
-				  <property name="active">False</property>
-				  <property name="inconsistent">False</property>
-				  <property name="draw_indicator">True</property>
-				  <property name="group">pm_none</property>
-				  <signal name="toggled" handler="on_pm_ascend_toggled" last_modification_time="Mon, 22 Sep 2003 11:27:07 GMT"/>
-
-				  <child>
-				    <widget class="GtkImage" id="image1928">
-				      <property name="visible">True</property>
-				      <property name="stock">gtk-sort-ascending</property>
-				      <property name="icon_size">4</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>
-				<packing>
-				  <property name="padding">0</property>
-				  <property name="expand">False</property>
-				  <property name="fill">False</property>
-				</packing>
-			      </child>
-			    </widget>
-			    <packing>
-			      <property name="left_attach">3</property>
-			      <property name="right_attach">4</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="GtkVSeparator" id="vseparator2">
-			      <property name="visible">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">8</property>
-			      <property name="x_options"></property>
-			      <property name="y_options">fill</property>
-			    </packing>
-			  </child>
-
-			  <child>
-			    <widget class="GtkVSeparator" id="vseparator3">
-			      <property name="visible">True</property>
-			    </widget>
-			    <packing>
-			      <property name="left_attach">8</property>
-			      <property name="right_attach">9</property>
-			      <property name="top_attach">1</property>
-			      <property name="bottom_attach">8</property>
-			      <property name="x_options"></property>
-			      <property name="y_options">fill</property>
-			    </packing>
-			  </child>
-
-			  <child>
-			    <widget class="GtkVSeparator" id="vseparator6">
-			      <property name="visible">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">8</property>
-			      <property name="x_options"></property>
-			      <property name="y_options">fill</property>
-			    </packing>
-			  </child>
-
-			  <child>
-			    <widget class="GtkVSeparator" id="vseparator8">
-			      <property name="visible">True</property>
-			    </widget>
-			    <packing>
-			      <property name="left_attach">6</property>
-			      <property name="right_attach">7</property>
-			      <property name="top_attach">1</property>
-			      <property name="bottom_attach">8</property>
-			      <property name="x_options"></property>
-			      <property name="y_options">fill</property>
-			    </packing>
-			  </child>
-
-			  <child>
-			    <widget class="GtkTable" id="table12">
-			      <property name="border_width">3</property>
-			      <property name="visible">True</property>
-			      <property name="n_rows">1</property>
-			      <property name="n_columns">1</property>
-			      <property name="homogeneous">False</property>
-			      <property name="row_spacing">0</property>
-			      <property name="column_spacing">0</property>
-
-			      <child>
-				<widget class="GtkLabel" id="label82">
-				  <property name="visible">True</property>
-				  <property name="can_focus">True</property>
-				  <property name="label" translatable="yes">Ascending</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">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">0</property>
-				  <property name="right_attach">1</property>
-				  <property name="top_attach">0</property>
-				  <property name="bottom_attach">1</property>
-				  <property name="y_options"></property>
-				</packing>
-			      </child>
-			    </widget>
-			    <packing>
-			      <property name="left_attach">3</property>
-			      <property name="right_attach">4</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="GtkTable" id="table13">
-			      <property name="border_width">3</property>
-			      <property name="visible">True</property>
-			      <property name="n_rows">1</property>
-			      <property name="n_columns">1</property>
-			      <property name="homogeneous">False</property>
-			      <property name="row_spacing">0</property>
-			      <property name="column_spacing">0</property>
-
-			      <child>
-				<widget class="GtkLabel" id="label85">
-				  <property name="visible">True</property>
-				  <property name="can_focus">True</property>
-				  <property name="label" translatable="yes">Descending</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">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">0</property>
-				  <property name="right_attach">1</property>
-				  <property name="top_attach">0</property>
-				  <property name="bottom_attach">1</property>
-				  <property name="y_options"></property>
-				</packing>
-			      </child>
-			    </widget>
-			    <packing>
-			      <property name="left_attach">5</property>
-			      <property name="right_attach">6</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="GtkTable" id="table14">
-			      <property name="border_width">3</property>
-			      <property name="visible">True</property>
-			      <property name="n_rows">1</property>
-			      <property name="n_columns">1</property>
-			      <property name="homogeneous">False</property>
-			      <property name="row_spacing">0</property>
-			      <property name="column_spacing">0</property>
-
-			      <child>
-				<widget class="GtkLabel" id="label86">
-				  <property name="visible">True</property>
-				  <property name="can_focus">True</property>
-				  <property name="label" translatable="yes">None</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">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">0</property>
-				  <property name="right_attach">1</property>
-				  <property name="top_attach">0</property>
-				  <property name="bottom_attach">1</property>
-				  <property name="y_options"></property>
-				</packing>
-			      </child>
-			    </widget>
-			    <packing>
-			      <property name="left_attach">7</property>
-			      <property name="right_attach">8</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="GtkTable" id="table15">
-			      <property name="border_width">3</property>
-			      <property name="visible">True</property>
-			      <property name="n_rows">1</property>
-			      <property name="n_columns">1</property>
-			      <property name="homogeneous">False</property>
-			      <property name="row_spacing">0</property>
-			      <property name="column_spacing">0</property>
-
-			      <child>
-				<widget class="GtkLabel" id="label87">
-				  <property name="can_focus">True</property>
-				  <property name="label" translatable="yes">Playlists</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">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">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>
-			    </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_options">fill</property>
-			      <property name="y_options">fill</property>
-			    </packing>
-			  </child>
-
-			  <child>
-			    <widget class="GtkTable" id="table16">
-			      <property name="border_width">3</property>
-			      <property name="visible">True</property>
-			      <property name="n_rows">1</property>
-			      <property name="n_columns">1</property>
-			      <property name="homogeneous">False</property>
-			      <property name="row_spacing">0</property>
-			      <property name="column_spacing">0</property>
-
-			      <child>
-				<widget class="GtkLabel" id="label88">
-				  <property name="visible">True</property>
-				  <property name="can_focus">True</property>
-				  <property name="label" translatable="yes">Sorttabs</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">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">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>
-			    </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_options">fill</property>
-			      <property name="y_options">fill</property>
-			    </packing>
-			  </child>
-
-			  <child>
-			    <widget class="GtkTable" id="table17">
-			      <property name="border_width">3</property>
-			      <property name="visible">True</property>
-			      <property name="n_rows">1</property>
-			      <property name="n_columns">1</property>
-			      <property name="homogeneous">False</property>
-			      <property name="row_spacing">0</property>
-			      <property name="column_spacing">0</property>
-
-			      <child>
-				<widget class="GtkLabel" id="label89">
-				  <property name="visible">True</property>
-				  <property name="can_focus">True</property>
-				  <property name="label" translatable="yes">Tracks</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">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">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>
-			    </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">fill</property>
-			    </packing>
-			  </child>
-
-			  <child>
-			    <widget class="GtkLabel" id="label91">
-			      <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</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">1</property>
-			      <property name="bottom_attach">2</property>
-			      <property name="x_options">fill</property>
-			      <property name="y_options"></property>
-			    </packing>
-			  </child>
-
-			  <child>
-			    <widget class="GtkHSeparator" id="hseparator9">
-			      <property name="visible">True</property>
-			    </widget>
-			    <packing>
-			      <property name="left_attach">0</property>
-			      <property name="right_attach">11</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="GtkHSeparator" id="hseparator10">
-			      <property name="visible">True</property>
-			    </widget>
-			    <packing>
-			      <property name="left_attach">0</property>
-			      <property name="right_attach">11</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="GtkHSeparator" id="hseparator13">
-			      <property name="visible">True</property>
-			    </widget>
-			    <packing>
-			      <property name="left_attach">1</property>
-			      <property name="right_attach">10</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="GtkHSeparator" id="hseparator12">
-			    </widget>
-			    <packing>
-			      <property name="left_attach">1</property>
-			      <property name="right_attach">10</property>
-			      <property name="top_attach">4</property>
-			      <property name="bottom_attach">5</property>
-			      <property name="x_options">fill</property>
-			      <property name="y_options"></property>
-			    </packing>
-			  </child>
-
-			  <child>
-			    <widget class="GtkHSeparator" id="hseparator11">
-			      <property name="visible">True</property>
-			    </widget>
-			    <packing>
-			      <property name="left_attach">1</property>
-			      <property name="right_attach">10</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="GtkVSeparator" id="vseparator9">
-			      <property name="visible">True</property>
-			    </widget>
-			    <packing>
-			      <property name="left_attach">10</property>
-			      <property name="right_attach">11</property>
-			      <property name="top_attach">1</property>
-			      <property name="bottom_attach">8</property>
-			      <property name="x_options"></property>
-			      <property name="y_options">fill</property>
-			    </packing>
-			  </child>
-
-			  <child>
-			    <widget class="GtkTable" id="table19">
-			      <property name="border_width">3</property>
-			      <property name="visible">True</property>
-			      <property name="n_rows">1</property>
-			      <property name="n_columns">1</property>
-			      <property name="homogeneous">False</property>
-			      <property name="row_spacing">0</property>
-			      <property name="column_spacing">0</property>
-
-			      <child>
-				<widget class="GtkLabel" id="label95">
-				  <property name="visible">True</property>
-				  <property name="can_focus">True</property>
-				  <property name="label" translatable="yes">Auto Store</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">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">0</property>
-				  <property name="right_attach">1</property>
-				  <property name="top_attach">0</property>
-				  <property name="bottom_attach">1</property>
-				  <property name="y_options"></property>
-				</packing>
-			      </child>
-			    </widget>
-			    <packing>
-			      <property name="left_attach">9</property>
-			      <property name="right_attach">10</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="GtkHBox" id="hbox41">
-			      <property name="visible">True</property>
-			      <property name="homogeneous">True</property>
-			      <property name="spacing">0</property>
-
-			      <child>
-				<widget class="GtkCheckButton" id="tm_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_tm_autostore_toggled" last_modification_time="Mon, 22 Sep 2003 13:30:09 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="left_attach">9</property>
-			      <property name="right_attach">10</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="GtkLabel" id="label96">
-			      <property name="visible">True</property>
-			      <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">5</property>
-			      <property name="bottom_attach">6</property>
-			      <property name="y_options"></property>
-			    </packing>
-			  </child>
-
-			  <child>
-			    <widget class="GtkHBox" id="hbox43">
-			      <property name="visible">True</property>
-			      <property name="homogeneous">True</property>
-			      <property name="spacing">0</property>
-
-			      <child>
-				<widget class="GtkRadioButton" id="tm_ascend">
-				  <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>
-				  <property name="active">False</property>
-				  <property name="inconsistent">False</property>
-				  <property name="draw_indicator">True</property>
-				  <signal name="toggled" handler="on_tm_ascend_toggled" last_modification_time="Tue, 23 Sep 2003 03:07:09 GMT"/>
-
-				  <child>
-				    <widget class="GtkImage" id="image2013">
-				      <property name="visible">True</property>
-				      <property name="stock">gtk-sort-ascending</property>
-				      <property name="icon_size">4</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>
-				<packing>
-				  <property name="padding">0</property>
-				  <property name="expand">False</property>
-				  <property name="fill">False</property>
-				</packing>
-			      </child>
-			    </widget>
-			    <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="x_options">fill</property>
-			      <property name="y_options">fill</property>
-			    </packing>
-			  </child>
-
-			  <child>
-			    <widget class="GtkVSeparator" id="vseparator7">
-			      <property name="visible">True</property>
-			    </widget>
-			    <packing>
-			      <property name="left_attach">4</property>
-			      <property name="right_attach">5</property>
-			      <property name="top_attach">1</property>
-			      <property name="bottom_attach">8</property>
-			      <property name="x_options"></property>
-			      <property name="y_options">fill</property>
-			    </packing>
-			  </child>
-
-			  <child>
-			    <widget class="GtkHBox" id="hbox44">
-			      <property name="visible">True</property>
-			      <property name="homogeneous">True</property>
-			      <property name="spacing">0</property>
-
-			      <child>
-				<widget class="GtkRadioButton" id="tm_descend">
-				  <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>
-				  <property name="active">False</property>
-				  <property name="inconsistent">False</property>
-				  <property name="draw_indicator">True</property>
-				  <property name="group">tm_ascend</property>
-				  <signal name="toggled" handler="on_tm_descend_toggled" last_modification_time="Tue, 23 Sep 2003 03:07:03 GMT"/>
-
-				  <child>
-				    <widget class="GtkImage" id="image2014">
-				      <property name="visible">True</property>
-				      <property name="stock">gtk-sort-descending</property>
-				      <property name="icon_size">4</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>
-				<packing>
-				  <property name="padding">0</property>
-				  <property name="expand">False</property>
-				  <property name="fill">False</property>
-				</packing>
-			      </child>
-			    </widget>
-			    <packing>
-			      <property name="left_attach">5</property>
-			      <property name="right_attach">6</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="GtkHBox" id="hbox45">
-			      <property name="visible">True</property>
-			      <property name="homogeneous">True</property>
-			      <property name="spacing">0</property>
-
-			      <child>
-				<widget class="GtkRadioButton" id="tm_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>
-				  <property name="active">False</property>
-				  <property name="inconsistent">False</property>
-				  <property name="draw_indicator">True</property>
-				  <property name="group">tm_ascend</property>
-				  <signal name="toggled" handler="on_tm_none_toggled" last_modification_time="Tue, 23 Sep 2003 03:06:56 GMT"/>
-
-				  <child>
-				    <widget class="GtkImage" id="image2015">
-				      <property name="visible">True</property>
-				      <property name="stock">gtk-undo</property>
-				      <property name="icon_size">4</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>
-				<packing>
-				  <property name="padding">0</property>
-				  <property name="expand">False</property>
-				  <property name="fill">False</property>
-				</packing>
-			      </child>
-			    </widget>
-			    <packing>
-			      <property name="left_attach">7</property>
-			      <property name="right_attach">8</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="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>
-			  <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">True</property>
-		    </packing>
-		  </child>
-
-		  <child>
-		    <widget class="GtkHBox" id="hbox46">
-		      <property name="visible">True</property>
-		      <property name="homogeneous">False</property>
-		      <property name="spacing">0</property>
-
-		      <child>
-			<widget class="GtkLabel" id="label97">
-			  <property name="visible">True</property>
-			  <property name="can_focus">True</property>
-			  <property name="label" translatable="yes">Sort tracks according 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">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="padding">4</property>
-			  <property name="expand">False</property>
-			  <property name="fill">False</property>
-			</packing>
-		      </child>
-
-		      <child>
-			<widget class="GtkCombo" id="sort_combo">
-			  <property name="visible">True</property>
-			  <property name="value_in_list">False</property>
-			  <property name="allow_empty">True</property>
-			  <property name="case_sensitive">False</property>
-			  <property name="enable_arrow_keys">True</property>
-			  <property name="enable_arrows_always">False</property>
-
-			  <child internal-child="entry">
-			    <widget class="GtkEntry" id="sort_combo-entry">
-			      <property name="visible">True</property>
-			      <property name="tooltip" translatable="yes">You can also use the table headers, but this allows you to sort according to a column that is not displayed.</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>
-			  </child>
-
-			  <child internal-child="list">
-			    <widget class="GtkList" id="sort_combo-list">
-			      <property name="visible">True</property>
-			      <property name="selection_mode">GTK_SELECTION_BROWSE</property>
-			    </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>
-
-		  <child>
-		    <widget class="GtkCheckButton" id="cfg_case_sensitive">
-		      <property name="visible">True</property>
-		      <property name="tooltip" translatable="yes">If checked, sorting will be case sensitive. Please note that case sensitive sorting will not work well with most charsets.</property>
-		      <property name="can_focus">True</property>
-		      <property name="label" translatable="yes">Sorting case sensitive</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_sort_case_sensitive_toggled" last_modification_time="Sun, 21 Sep 2003 14:47:47 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>
-	</widget>
-	<packing>
-	  <property name="padding">0</property>
-	  <property name="expand">False</property>
-	  <property name="fill">True</property>
-	</packing>
-      </child>
-
-      <child>
-	<widget class="GtkVBox" id="vbox136">
-	  <property name="visible">True</property>
-	  <property name="homogeneous">False</property>
-	  <property name="spacing">6</property>
-
-	  <child>
-	    <widget class="GtkLabel" id="label297">
-	      <property name="visible">True</property>
-	      <property name="label" translatable="yes">&lt;b&gt;Ignore Frequent Words&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="hbox143">
-	      <property name="visible">True</property>
-	      <property name="homogeneous">False</property>
-	      <property name="spacing">0</property>
-
-	      <child>
-		<widget class="GtkLabel" id="label298">
-		  <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>
-		  <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="vbox137">
-		  <property name="visible">True</property>
-		  <property name="homogeneous">False</property>
-		  <property name="spacing">0</property>
-
-		  <child>
-		    <widget class="GtkScrolledWindow" id="scrolledwindow15">
-		      <property name="border_width">4</property>
-		      <property name="visible">True</property>
-		      <property name="can_focus">True</property>
-		      <property name="hscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
-		      <property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
-		      <property name="shadow_type">GTK_SHADOW_IN</property>
-		      <property name="window_placement">GTK_CORNER_TOP_LEFT</property>
-
-		      <child>
-			<widget class="GtkTextView" id="sort_ign_strings">
-			  <property name="visible">True</property>
-			  <property name="can_focus">True</property>
-			  <property name="editable">True</property>
-			  <property name="overwrite">False</property>
-			  <property name="accepts_tab">True</property>
-			  <property name="justification">GTK_JUSTIFY_LEFT</property>
-			  <property name="wrap_mode">GTK_WRAP_NONE</property>
-			  <property name="cursor_visible">True</property>
-			  <property name="pixels_above_lines">0</property>
-			  <property name="pixels_below_lines">0</property>
-			  <property name="pixels_inside_wrap">0</property>
-			  <property name="left_margin">0</property>
-			  <property name="right_margin">0</property>
-			  <property name="indent">0</property>
-			  <property name="text" translatable="yes"></property>
-			</widget>
-		      </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="label310">
-		      <property name="visible">True</property>
-		      <property name="can_focus">True</property>
-		      <property name="label" translatable="yes">Ignore these words when at the beginning of the following fields:</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">True</property>
-		      <property name="xalign">0.0399999991059</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>
-
-		  <child>
-		    <widget class="GtkHBox" id="hbox158">
-		      <property name="visible">True</property>
-		      <property name="homogeneous">False</property>
-		      <property name="spacing">0</property>
-
-		      <child>
-			<widget class="GtkVBox" id="vbox138">
-			  <property name="visible">True</property>
-			  <property name="homogeneous">False</property>
-			  <property name="spacing">0</property>
-
-			  <child>
-			    <widget class="GtkCheckButton" id="sort_ign_field_3">
-			      <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>
-
-			  <child>
-			    <widget class="GtkCheckButton" id="sort_ign_field_1">
-			      <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>
-
-			  <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>
-
-		      <child>
-			<widget class="GtkVBox" id="vbox139">
-			  <property name="visible">True</property>
-			  <property name="homogeneous">False</property>
-			  <property name="spacing">0</property>
-
-			  <child>
-			    <widget class="GtkCheckButton" id="sort_ign_field_2">
-			      <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>
-
-			  <child>
-			    <widget class="GtkCheckButton" id="sort_ign_field_6">
-			      <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>
-
-			  <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>
-
-		      <child>
-			<widget class="GtkVBox" id="vbox140">
-			  <property name="visible">True</property>
-			  <property name="homogeneous">False</property>
-			  <property name="spacing">0</property>
-
-			  <child>
-			    <placeholder/>
-			  </child>
-
-			  <child>
-			    <placeholder/>
-			  </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>
-		<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="GtkHSeparator" id="hseparator49">
-	  <property name="visible">True</property>
-	</widget>
-	<packing>
-	  <property name="padding">0</property>
-	  <property name="expand">False</property>
-	  <property name="fill">False</property>
-	</packing>
-      </child>
-
-      <child>
-	<widget class="GtkHButtonBox" id="hbuttonbox8">
-	  <property name="border_width">5</property>
-	  <property name="visible">True</property>
-	  <property name="layout_style">GTK_BUTTONBOX_SPREAD</property>
-	  <property name="spacing">0</property>
-
-	  <child>
-	    <widget class="GtkButton" id="sort_cancel">
-	      <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>
-	      <signal name="clicked" handler="on_sort_cancel_clicked" last_modification_time="Mon, 22 Sep 2003 11:30:46 GMT"/>
-	    </widget>
-	  </child>
-
-	  <child>
-	    <widget class="GtkButton" id="sort_apply">
-	      <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>
-	      <signal name="clicked" handler="on_sort_apply_clicked" last_modification_time="Mon, 22 Sep 2003 11:30:39 GMT"/>
-	    </widget>
-	  </child>
-
-	  <child>
-	    <widget class="GtkButton" id="sort_ok">
-	      <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>
-	      <signal name="clicked" handler="on_sort_ok_clicked" last_modification_time="Mon, 22 Sep 2003 11:31:10 GMT"/>
-	    </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="GtkWindow" id="gtkpod_info">
-  <property name="title" translatable="yes">gtkpod Info</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>
-  <signal name="delete_event" handler="on_gtkpod_info_delete_event" last_modification_time="Sun, 16 May 2004 04:40:47 GMT"/>
-
-  <child>
-    <widget class="GtkVBox" id="vbox56">
-      <property name="visible">True</property>
-      <property name="homogeneous">False</property>
-      <property name="spacing">0</property>
-
-      <child>
-	<placeholder/>
-      </child>
-
-      <child>
-	<widget class="GtkScrolledWindow" id="scrolledwindow10">
-	  <property name="visible">True</property>
-	  <property name="can_focus">True</property>
-	  <property name="hscrollbar_policy">GTK_POLICY_AUTOMATIC</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="viewport7">
-	      <property name="visible">True</property>
-	      <property name="shadow_type">GTK_SHADOW_IN</property>
-
-	      <child>
-		<widget class="GtkVBox" id="vbox57">
-		  <property name="border_width">6</property>
-		  <property name="visible">True</property>
-		  <property name="homogeneous">False</property>
-		  <property name="spacing">0</property>
-
-		  <child>
-		    <widget class="GtkHBox" id="hbox49">
-		      <property name="visible">True</property>
-		      <property name="homogeneous">False</property>
-		      <property name="spacing">0</property>
-
-		      <child>
-			<widget class="GtkTable" id="table22">
-			  <property name="border_width">4</property>
-			  <property name="visible">True</property>
-			  <property name="n_rows">21</property>
-			  <property name="n_columns">13</property>
-			  <property name="homogeneous">False</property>
-			  <property name="row_spacing">0</property>
-			  <property name="column_spacing">1</property>
-
-			  <child>
-			    <widget class="GtkHSeparator" id="hseparator39">
-			      <property name="visible">True</property>
-			    </widget>
-			    <packing>
-			      <property name="left_attach">0</property>
-			      <property name="right_attach">5</property>
-			      <property name="top_attach">20</property>
-			      <property name="bottom_attach">21</property>
-			      <property name="x_options">fill</property>
-			    </packing>
-			  </child>
-
-			  <child>
-			    <widget class="GtkLabel" id="free_space">
-			      <property name="visible">True</property>
-			      <property name="can_focus">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">True</property>
-			      <property name="xalign">1</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">3</property>
-			      <property name="right_attach">4</property>
-			      <property name="top_attach">19</property>
-			      <property name="bottom_attach">20</property>
-			      <property name="x_options">fill</property>
-			      <property name="y_options"></property>
-			    </packing>
-			  </child>
-
-			  <child>
-			    <widget class="GtkLabel" id="non_transferred_filesize">
-			      <property name="visible">True</property>
-			      <property name="can_focus">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">True</property>
-			      <property name="xalign">1</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">3</property>
-			      <property name="right_attach">4</property>
-			      <property name="top_attach">17</property>
-			      <property name="bottom_attach">18</property>
-			      <property name="x_options">fill</property>
-			      <property name="y_options"></property>
-			    </packing>
-			  </child>
-
-			  <child>
-			    <widget class="GtkHSeparator" id="hseparator37">
-			      <property name="visible">True</property>
-			    </widget>
-			    <packing>
-			      <property name="left_attach">0</property>
-			      <property name="right_attach">5</property>
-			      <property name="top_attach">16</property>
-			      <property name="bottom_attach">17</property>
-			      <property name="x_options">fill</property>
-			    </packing>
-			  </child>
-
-			  <child>
-			    <widget class="GtkLabel" id="non_transferred_tracks">
-			      <property name="visible">True</property>
-			      <property name="can_focus">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">True</property>
-			      <property name="xalign">1</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">3</property>
-			      <property name="right_attach">4</property>
-			      <property name="top_attach">15</property>
-			      <property name="bottom_attach">16</property>
-			      <property name="x_options">fill</property>
-			      <property name="y_options"></property>
-			    </packing>
-			  </child>
-
-			  <child>
-			    <widget class="GtkVSeparator" id="vseparator17">
-			      <property name="visible">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">20</property>
-			      <property name="x_options"></property>
-			      <property name="y_options">fill</property>
-			    </packing>
-			  </child>
-
-			  <child>
-			    <widget class="GtkVSeparator" id="vseparator18">
-			      <property name="visible">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">20</property>
-			      <property name="x_options">fill</property>
-			      <property name="y_options">fill</property>
-			    </packing>
-			  </child>
-
-			  <child>
-			    <widget class="GtkVSeparator" id="vseparator19">
-			      <property name="visible">True</property>
-			    </widget>
-			    <packing>
-			      <property name="left_attach">4</property>
-			      <property name="right_attach">5</property>
-			      <property name="top_attach">1</property>
-			      <property name="bottom_attach">20</property>
-			      <property name="x_options">fill</property>
-			      <property name="y_options">fill</property>
-			    </packing>
-			  </child>
-
-			  <child>
-			    <widget class="GtkHSeparator" id="hseparator42">
-			      <property name="visible">True</property>
-			    </widget>
-			    <packing>
-			      <property name="left_attach">1</property>
-			      <property name="right_attach">4</property>
-			      <property name="top_attach">12</property>
-			      <property name="bottom_attach">13</property>
-			      <property name="x_options">fill</property>
-			      <property name="y_options">fill</property>
-			    </packing>
-			  </child>
-
-			  <child>
-			    <widget class="GtkLabel" id="deleted_filesize">
-			      <property name="visible">True</property>
-			      <property name="can_focus">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">True</property>
-			      <property name="xalign">1</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">3</property>
-			      <property name="right_attach">4</property>
-			      <property name="top_attach">13</property>
-			      <property name="bottom_attach">14</property>
-			      <property name="x_options">fill</property>
-			      <property name="y_options"></property>
-			    </packing>
-			  </child>
-
-			  <child>
-			    <widget class="GtkLabel" id="deleted_tracks">
-			      <property name="visible">True</property>
-			      <property name="can_focus">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">True</property>
-			      <property name="xalign">1</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">3</property>
-			      <property name="right_attach">4</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="GtkHSeparator" id="hseparator41">
-			      <property name="visible">True</property>
-			    </widget>
-			    <packing>
-			      <property name="left_attach">1</property>
-			      <property name="right_attach">4</property>
-			      <property name="top_attach">14</property>
-			      <property name="bottom_attach">15</property>
-			      <property name="x_options">fill</property>
-			      <property name="y_options">fill</property>
-			    </packing>
-			  </child>
-
-			  <child>
-			    <widget class="GtkHSeparator" id="hseparator38">
-			      <property name="visible">True</property>
-			    </widget>
-			    <packing>
-			      <property name="left_attach">0</property>
-			      <property name="right_attach">5</property>
-			      <property name="top_attach">18</property>
-			      <property name="bottom_attach">19</property>
-			      <property name="x_options">fill</property>
-			    </packing>
-			  </child>
-
-			  <child>
-			    <widget class="GtkLabel" id="total_tracks_ipod">
-			      <property name="visible">True</property>
-			      <property name="can_focus">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">True</property>
-			      <property name="xalign">1</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">3</property>
-			      <property name="right_attach">4</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>
-
-			  <child>
-			    <widget class="GtkLabel" id="total_playtime_ipod">
-			      <property name="visible">True</property>
-			      <property name="can_focus">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">True</property>
-			      <property name="xalign">1</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">3</property>
-			      <property name="right_attach">4</property>
-			      <property name="top_attach">5</property>
-			      <property name="bottom_attach">6</property>
-			      <property name="x_options">fill</property>
-			      <property name="y_options"></property>
-			    </packing>
-			  </child>
-
-			  <child>
-			    <widget class="GtkLabel" id="total_filesize_ipod">
-			      <property name="visible">True</property>
-			      <property name="can_focus">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">True</property>
-			      <property name="xalign">1</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">3</property>
-			      <property name="right_attach">4</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="GtkLabel" id="total_playlists_ipod">
-			      <property name="visible">True</property>
-			      <property name="can_focus">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">True</property>
-			      <property name="xalign">1</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">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="GtkLabel" id="playlist_tracks">
-			      <property name="visible">True</property>
-			      <property name="can_focus">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">True</property>
-			      <property name="xalign">1</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">7</property>
-			      <property name="right_attach">8</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>
-
-			  <child>
-			    <widget class="GtkLabel" id="playlist_playtime">
-			      <property name="visible">True</property>
-			      <property name="can_focus">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">True</property>
-			      <property name="xalign">1</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">7</property>
-			      <property name="right_attach">8</property>
-			      <property name="top_attach">5</property>
-			      <property name="bottom_attach">6</property>
-			      <property name="x_options">fill</property>
-			      <property name="y_options"></property>
-			    </packing>
-			  </child>
-
-			  <child>
-			    <widget class="GtkLabel" id="playlist_filesize">
-			      <property name="visible">True</property>
-			      <property name="can_focus">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">True</property>
-			      <property name="xalign">1</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">7</property>
-			      <property name="right_attach">8</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="GtkLabel" id="tracks_displayed">
-			      <property name="visible">True</property>
-			      <property name="can_focus">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">True</property>
-			      <property name="xalign">1</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>
-
-			  <child>
-			    <widget class="GtkLabel" id="playtime_displayed">
-			      <property name="visible">True</property>
-			      <property name="can_focus">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">True</property>
-			      <property name="xalign">1</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">5</property>
-			      <property name="bottom_attach">6</property>
-			      <property name="x_options">fill</property>
-			      <property name="y_options"></property>
-			    </packing>
-			  </child>
-
-			  <child>
-			    <widget class="GtkLabel" id="filesize_displayed">
-			      <property name="visible">True</property>
-			      <property name="can_focus">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">True</property>
-			      <property name="xalign">1</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">7</property>
-			      <property name="bottom_attach">8</property>
-			      <property name="x_options">fill</property>
-			      <property name="y_options"></property>
-			    </packing>
-			  </child>
-
-			  <child>
-			    <widget class="GtkVSeparator" id="vseparator21">
-			      <property name="visible">True</property>
-			    </widget>
-			    <packing>
-			      <property name="left_attach">8</property>
-			      <property name="right_attach">9</property>
-			      <property name="top_attach">1</property>
-			      <property name="bottom_attach">8</property>
-			      <property name="x_options">fill</property>
-			      <property name="y_options">fill</property>
-			    </packing>
-			  </child>
-
-			  <child>
-			    <widget class="GtkLabel" id="tracks_selected">
-			      <property name="visible">True</property>
-			      <property name="can_focus">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">True</property>
-			      <property name="xalign">1</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">11</property>
-			      <property name="right_attach">12</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>
-
-			  <child>
-			    <widget class="GtkLabel" id="playtime_selected">
-			      <property name="visible">True</property>
-			      <property name="can_focus">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">True</property>
-			      <property name="xalign">1</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">11</property>
-			      <property name="right_attach">12</property>
-			      <property name="top_attach">5</property>
-			      <property name="bottom_attach">6</property>
-			      <property name="x_options">fill</property>
-			      <property name="y_options"></property>
-			    </packing>
-			  </child>
-
-			  <child>
-			    <widget class="GtkLabel" id="filesize_selected">
-			      <property name="visible">True</property>
-			      <property name="can_focus">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">True</property>
-			      <property name="xalign">1</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">11</property>
-			      <property name="right_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="GtkVSeparator" id="vseparator22">
-			      <property name="visible">True</property>
-			    </widget>
-			    <packing>
-			      <property name="left_attach">10</property>
-			      <property name="right_attach">11</property>
-			      <property name="top_attach">1</property>
-			      <property name="bottom_attach">8</property>
-			      <property name="x_options">fill</property>
-			      <property name="y_options">fill</property>
-			    </packing>
-			  </child>
-
-			  <child>
-			    <widget class="GtkLabel" id="label137">
-			      <property name="visible">True</property>
-			      <property name="can_focus">True</property>
-			      <property name="label" translatable="yes">Number of tracks</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">True</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">3</property>
-			      <property name="bottom_attach">4</property>
-			      <property name="x_padding">1</property>
-			      <property name="x_options">fill</property>
-			      <property name="y_options"></property>
-			    </packing>
-			  </child>
-
-			  <child>
-			    <widget class="GtkLabel" id="label139">
-			      <property name="visible">True</property>
-			      <property name="can_focus">True</property>
-			      <property name="label" translatable="yes">Play time</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">True</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">5</property>
-			      <property name="bottom_attach">6</property>
-			      <property name="x_padding">1</property>
-			      <property name="y_padding">1</property>
-			      <property name="x_options">fill</property>
-			      <property name="y_options"></property>
-			    </packing>
-			  </child>
-
-			  <child>
-			    <widget class="GtkLabel" id="label141">
-			      <property name="visible">True</property>
-			      <property name="can_focus">True</property>
-			      <property name="label" translatable="yes">File size</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">True</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">7</property>
-			      <property name="bottom_attach">8</property>
-			      <property name="x_padding">1</property>
-			      <property name="x_options">fill</property>
-			      <property name="y_options"></property>
-			    </packing>
-			  </child>
-
-			  <child>
-			    <widget class="GtkLabel" id="label147">
-			      <property name="visible">True</property>
-			      <property name="can_focus">True</property>
-			      <property name="label" translatable="yes">Number of playlists</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">True</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="x_padding">1</property>
-			      <property name="x_options">fill</property>
-			      <property name="y_options"></property>
-			    </packing>
-			  </child>
-
-			  <child>
-			    <widget class="GtkLabel" id="label149">
-			      <property name="visible">True</property>
-			      <property name="can_focus">True</property>
-			      <property name="label" translatable="yes">Deleted tracks</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">True</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">11</property>
-			      <property name="bottom_attach">12</property>
-			      <property name="x_padding">1</property>
-			      <property name="x_options">fill</property>
-			      <property name="y_options"></property>
-			    </packing>
-			  </child>
-
-			  <child>
-			    <widget class="GtkLabel" id="label150">
-			      <property name="visible">True</property>
-			      <property name="can_focus">True</property>
-			      <property name="label" translatable="yes">File size (deleted)</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">True</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">13</property>
-			      <property name="bottom_attach">14</property>
-			      <property name="x_padding">1</property>
-			      <property name="x_options">fill</property>
-			      <property name="y_options"></property>
-			    </packing>
-			  </child>
-
-			  <child>
-			    <widget class="GtkLabel" id="label143">
-			      <property name="visible">True</property>
-			      <property name="can_focus">True</property>
-			      <property name="label" translatable="yes">Non-transferred tracks</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">True</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">15</property>
-			      <property name="bottom_attach">16</property>
-			      <property name="x_padding">1</property>
-			      <property name="x_options">fill</property>
-			      <property name="y_options"></property>
-			    </packing>
-			  </child>
-
-			  <child>
-			    <widget class="GtkLabel" id="label145">
-			      <property name="visible">True</property>
-			      <property name="can_focus">True</property>
-			      <property name="label" translatable="yes">File size (non-transferred)</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">True</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">17</property>
-			      <property name="bottom_attach">18</property>
-			      <property name="x_padding">1</property>
-			      <property name="x_options">fill</property>
-			      <property name="y_options"></property>
-			    </packing>
-			  </child>
-
-			  <child>
-			    <widget class="GtkLabel" id="label146">
-			      <property name="visible">True</property>
-			      <property name="can_focus">True</property>
-			      <property name="label" translatable="yes">Effective free space</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">True</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">19</property>
-			      <property name="bottom_attach">20</property>
-			      <property name="x_padding">1</property>
-			      <property name="x_options">fill</property>
-			      <property name="y_options"></property>
-			    </packing>
-			  </child>
-
-			  <child>
-			    <widget class="GtkLabel" id="label99">
-			      <property name="visible">True</property>
-			      <property name="can_focus">True</property>
-			      <property name="label" translatable="yes">Total
-(iPod)</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">3</property>
-			      <property name="right_attach">4</property>
-			      <property name="top_attach">1</property>
-			      <property name="bottom_attach">2</property>
-			      <property name="x_padding">1</property>
-			      <property name="y_padding">1</property>
-			      <property name="x_options">fill</property>
-			      <property name="y_options"></property>
-			    </packing>
-			  </child>
-
-			  <child>
-			    <widget class="GtkLabel" id="label153">
-			      <property name="visible">True</property>
-			      <property name="can_focus">True</property>
-			      <property name="label" translatable="yes">Selected
-Playlist</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">7</property>
-			      <property name="right_attach">8</property>
-			      <property name="top_attach">1</property>
-			      <property name="bottom_attach">2</property>
-			      <property name="x_padding">1</property>
-			      <property name="y_padding">1</property>
-			      <property name="x_options">fill</property>
-			      <property name="y_options"></property>
-			    </packing>
-			  </child>
-
-			  <child>
-			    <widget class="GtkLabel" id="label154">
-			      <property name="visible">True</property>
-			      <property name="can_focus">True</property>
-			      <property name="label" translatable="yes">Displayed
-Tracks</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">1</property>
-			      <property name="bottom_attach">2</property>
-			      <property name="x_padding">1</property>
-			      <property name="y_padding">1</property>
-			      <property name="x_options">fill</property>
-			      <property name="y_options"></property>
-			    </packing>
-			  </child>
-
-			  <child>
-			    <widget class="GtkLabel" id="label155">
-			      <property name="visible">True</property>
-			      <property name="can_focus">True</property>
-			      <property name="label" translatable="yes">Selected
-Tracks</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">11</property>
-			      <property name="right_attach">12</property>
-			      <property name="top_attach">1</property>
-			      <property name="bottom_attach">2</property>
-			      <property name="x_padding">1</property>
-			      <property name="y_padding">1</property>
-			      <property name="x_options">fill</property>
-			      <property name="y_options"></property>
-			    </packing>
-			  </child>
-
-			  <child>
-			    <widget class="GtkLabel" id="label176">
-			      <property name="visible">True</property>
-			      <property name="can_focus">True</property>
-			      <property name="label" translatable="yes">Total
-(local)</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">5</property>
-			      <property name="right_attach">6</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="total_tracks_local">
-			      <property name="visible">True</property>
-			      <property name="can_focus">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">True</property>
-			      <property name="xalign">1</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">5</property>
-			      <property name="right_attach">6</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>
-
-			  <child>
-			    <widget class="GtkLabel" id="total_playtime_local">
-			      <property name="visible">True</property>
-			      <property name="can_focus">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">True</property>
-			      <property name="xalign">1</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">5</property>
-			      <property name="right_attach">6</property>
-			      <property name="top_attach">5</property>
-			      <property name="bottom_attach">6</property>
-			      <property name="x_options">fill</property>
-			      <property name="y_options"></property>
-			    </packing>
-			  </child>
-
-			  <child>
-			    <widget class="GtkLabel" id="total_filesize_local">
-			      <property name="visible">True</property>
-			      <property name="can_focus">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">True</property>
-			      <property name="xalign">1</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">5</property>
-			      <property name="right_attach">6</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="GtkVBox" id="vbox58">
-			      <property name="visible">True</property>
-			      <property name="homogeneous">False</property>
-			      <property name="spacing">0</property>
-
-			      <child>
-				<widget class="GtkHBox" id="hbox50">
-				  <property name="visible">True</property>
-				  <property name="homogeneous">False</property>
-				  <property name="spacing">0</property>
-
-				  <child>
-				    <widget class="GtkHButtonBox" id="hbuttonbox9">
-				      <property name="border_width">5</property>
-				      <property name="visible">True</property>
-				      <property name="layout_style">GTK_BUTTONBOX_DEFAULT_STYLE</property>
-				      <property name="spacing">0</property>
-
-				      <child>
-					<widget class="GtkButton" id="info_close">
-					  <property name="visible">True</property>
-					  <property name="can_default">True</property>
-					  <property name="can_focus">True</property>
-					  <property name="label">gtk-close</property>
-					  <property name="use_stock">True</property>
-					  <property name="relief">GTK_RELIEF_NORMAL</property>
-					  <property name="focus_on_click">True</property>
-					  <signal name="clicked" handler="on_info_close_clicked" last_modification_time="Sun, 23 Nov 2003 15:28:50 GMT"/>
-					</widget>
-				      </child>
-				    </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>
-				  <property name="pack_type">GTK_PACK_END</property>
-				</packing>
-			      </child>
-			    </widget>
-			    <packing>
-			      <property name="left_attach">5</property>
-			      <property name="right_attach">11</property>
-			      <property name="top_attach">11</property>
-			      <property name="bottom_attach">21</property>
-			      <property name="x_options">fill</property>
-			      <property name="y_options">fill</property>
-			    </packing>
-			  </child>
-
-			  <child>
-			    <widget class="GtkLabel" id="total_playlists_local">
-			      <property name="visible">True</property>
-			      <property name="can_focus">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">True</property>
-			      <property name="xalign">1</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">5</property>
-			      <property name="right_attach">6</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="GtkHSeparator" id="hseparator45">
-			      <property name="visible">True</property>
-			    </widget>
-			    <packing>
-			      <property name="left_attach">0</property>
-			      <property name="right_attach">13</property>
-			      <property name="top_attach">0</property>
-			      <property name="bottom_attach">1</property>
-			      <property name="x_options">fill</property>
-			    </packing>
-			  </child>
-
-			  <child>
-			    <widget class="GtkHSeparator" id="hseparator35">
-			      <property name="visible">True</property>
-			    </widget>
-			    <packing>
-			      <property name="left_attach">0</property>
-			      <property name="right_attach">13</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="GtkHSeparator" id="hseparator32">
-			      <property name="visible">True</property>
-			    </widget>
-			    <packing>
-			      <property name="left_attach">0</property>
-			      <property name="right_attach">13</property>
-			      <property name="top_attach">4</property>
-			      <property name="bottom_attach">5</property>
-			      <property name="x_options">fill</property>
-			    </packing>
-			  </child>
-
-			  <child>
-			    <widget class="GtkHSeparator" id="hseparator33">
-			      <property name="visible">True</property>
-			    </widget>
-			    <packing>
-			      <property name="left_attach">0</property>
-			      <property name="right_attach">13</property>
-			      <property name="top_attach">6</property>
-			      <property name="bottom_attach">7</property>
-			      <property name="x_options">fill</property>
-			    </packing>
-			  </child>
-
-			  <child>
-			    <widget class="GtkHSeparator" id="hseparator34">
-			      <property name="visible">True</property>
-			    </widget>
-			    <packing>
-			      <property name="left_attach">0</property>
-			      <property name="right_attach">13</property>
-			      <property name="top_attach">8</property>
-			      <property name="bottom_attach">9</property>
-			      <property name="x_options">fill</property>
-			    </packing>
-			  </child>
-
-			  <child>
-			    <widget class="GtkVSeparator" id="vseparator20">
-			      <property name="visible">True</property>
-			    </widget>
-			    <packing>
-			      <property name="left_attach">6</property>
-			      <property name="right_attach">7</property>
-			      <property name="top_attach">1</property>
-			      <property name="bottom_attach">10</property>
-			      <property name="x_options">fill</property>
-			      <property name="y_options">fill</property>
-			    </packing>
-			  </child>
-
-			  <child>
-			    <widget class="GtkHSeparator" id="hseparator36">
-			      <property name="visible">True</property>
-			    </widget>
-			    <packing>
-			      <property name="left_attach">0</property>
-			      <property name="right_attach">7</property>
-			      <property name="top_attach">10</property>
-			      <property name="bottom_attach">11</property>
-			      <property name="x_options">fill</property>
-			    </packing>
-			  </child>
-
-			  <child>
-			    <widget class="GtkVSeparator" id="vseparator23">
-			      <property name="visible">True</property>
-			    </widget>
-			    <packing>
-			      <property name="left_attach">12</property>
-			      <property name="right_attach">13</property>
-			      <property name="top_attach">1</property>
-			      <property name="bottom_attach">9</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">False</property>
-			  <property name="fill">False</property>
-			</packing>
-		      </child>
-		    </widget>
-		    <packing>
-		      <property name="padding">6</property>
-		      <property name="expand">False</property>
-		      <property name="fill">False</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>
-    </widget>
-  </child>
-</widget>
-
-<widget class="GtkDialog" id="confirm_dialog">
-  <property name="title" translatable="yes"></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_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-vbox1">
-      <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_area1">
-	  <property name="visible">True</property>
-	  <property name="layout_style">GTK_BUTTONBOX_END</property>
-
-	  <child>
-	    <widget class="GtkButton" id="cancel">
-	      <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="apply">
-	      <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>
-	      <property name="response_id">-10</property>
-	    </widget>
-	  </child>
-
-	  <child>
-	    <widget class="GtkButton" id="ok">
-	      <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="vbox6">
-	  <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="can_focus">True</property>
-	      <property name="label" translatable="yes">label21</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">True</property>
-	      <property name="xalign">0.5</property>
-	      <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>
-	      <property name="expand">False</property>
-	      <property name="fill">True</property>
-	    </packing>
-	  </child>
-
-	  <child>
-	    <widget class="GtkVBox" id="vbox7">
-	      <property name="visible">True</property>
-	      <property name="homogeneous">False</property>
-	      <property name="spacing">0</property>
-
-	      <child>
-		<widget class="GtkScrolledWindow" id="scroller">
-		  <property name="visible">True</property>
-		  <property name="can_focus">True</property>
-		  <property name="hscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
-		  <property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
-		  <property name="shadow_type">GTK_SHADOW_IN</property>
-		  <property name="window_placement">GTK_CORNER_TOP_LEFT</property>
-
-		  <child>
-		    <widget class="GtkTextView" id="text">
-		      <property name="visible">True</property>
-		      <property name="can_focus">True</property>
-		      <property name="editable">True</property>
-		      <property name="overwrite">False</property>
-		      <property name="accepts_tab">True</property>
-		      <property name="justification">GTK_JUSTIFY_LEFT</property>
-		      <property name="wrap_mode">GTK_WRAP_WORD</property>
-		      <property name="cursor_visible">True</property>
-		      <property name="pixels_above_lines">0</property>
-		      <property name="pixels_below_lines">0</property>
-		      <property name="pixels_inside_wrap">0</property>
-		      <property name="left_margin">0</property>
-		      <property name="right_margin">0</property>
-		      <property name="indent">0</property>
-		      <property name="text" translatable="yes"></property>
-		    </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>
-
-	  <child>
-	    <widget class="GtkHBox" id="option_hbox">
-	      <property name="visible">True</property>
-	      <property name="homogeneous">True</property>
-	      <property name="spacing">0</property>
-
-	      <child>
-		<widget class="GtkVBox" id="option_vbox">
-		  <property name="visible">True</property>
-		  <property name="homogeneous">False</property>
-		  <property name="spacing">0</property>
-
-		  <child>
-		    <placeholder/>
-		  </child>
-
-		  <child>
-		    <placeholder/>
-		  </child>
-
-		  <child>
-		    <widget class="GtkCheckButton" id="never_again">
-		      <property name="visible">True</property>
-		      <property name="can_focus">True</property>
-		      <property name="label" translatable="yes">Never show this dialogue again</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>
-		      <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">True</property>
-		</packing>
-	      </child>
-	    </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">True</property>
-	  <property name="fill">True</property>
-	</packing>
-      </child>
-    </widget>
-  </child>
-</widget>
-
-<widget class="GtkWindow" id="export_playlist_file_options">
-  <property name="title" translatable="yes">window1</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_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">
-      <property name="visible">True</property>
-      <property name="label_xalign">0</property>
-      <property name="label_yalign">0.5</property>
-      <property name="shadow_type">GTK_SHADOW_ETCHED_OUT</property>
-
-      <child>
-	<widget class="GtkAlignment" id="alignment4">
-	  <property name="border_width">5</property>
-	  <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">12</property>
-	  <property name="right_padding">0</property>
-
-	  <child>
-	    <widget class="GtkVBox" id="vbox61">
-	      <property name="visible">True</property>
-	      <property name="homogeneous">False</property>
-	      <property name="spacing">0</property>
-
-	      <child>
-		<widget class="GtkTable" id="table29">
-		  <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="GtkHBox" id="hbox59">
-		      <property name="visible">True</property>
-		      <property name="homogeneous">False</property>
-		      <property name="spacing">10</property>
-
-		      <child>
-			<widget class="GtkRadioButton" id="type_m3u">
-			  <property name="visible">True</property>
-			  <property name="can_focus">True</property>
-			  <property name="label" translatable="yes">_M3U</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="type_pls">
-			  <property name="visible">True</property>
-			  <property name="can_focus">True</property>
-			  <property name="label" translatable="yes">_PLS</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">type_m3u</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="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">fill</property>
-		    </packing>
-		  </child>
-
-		  <child>
-		    <widget class="GtkHBox" id="hbox60">
-		      <property name="visible">True</property>
-		      <property name="homogeneous">False</property>
-		      <property name="spacing">10</property>
-
-		      <child>
-			<widget class="GtkRadioButton" id="source_prefer_local">
-			  <property name="visible">True</property>
-			  <property name="tooltip" translatable="yes">If available, the local copy of the track is referenced in the playlist. Otherwise the file on the iPod is used.</property>
-			  <property name="can_focus">True</property>
-			  <property name="label" translatable="yes">_Prefer Local</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="source_local">
-			  <property name="visible">True</property>
-			  <property name="tooltip" translatable="yes">The local copy of the track is referenced in the playlist. If the track is not available locally, an error message is displayed.</property>
-			  <property name="can_focus">True</property>
-			  <property name="label" translatable="yes">_Local</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">source_prefer_local</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="source_ipod">
-			  <property name="visible">True</property>
-			  <property name="tooltip" translatable="yes">The track on the iPod is referenced in the playlist file.</property>
-			  <property name="can_focus">True</property>
-			  <property name="label" translatable="yes">_iPod</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">source_prefer_local</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="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">fill</property>
-		    </packing>
-		  </child>
-
-		  <child>
-		    <widget class="GtkLabel" id="label167">
-		      <property name="visible">True</property>
-		      <property name="label" translatable="yes">Playlist 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">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">0</property>
-		      <property name="bottom_attach">1</property>
-		      <property name="y_padding">4</property>
-		      <property name="x_options">fill</property>
-		      <property name="y_options"></property>
-		    </packing>
-		  </child>
-
-		  <child>
-		    <widget class="GtkLabel" id="label168">
-		      <property name="visible">True</property>
-		      <property name="label" translatable="yes">Source:</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">0</property>
-		      <property name="right_attach">1</property>
-		      <property name="top_attach">1</property>
-		      <property name="bottom_attach">2</property>
-		      <property name="y_padding">4</property>
-		      <property name="x_options">fill</property>
-		      <property name="y_options"></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="hbox58">
-		  <property name="visible">True</property>
-		  <property name="homogeneous">False</property>
-		  <property name="spacing">0</property>
-
-		  <child>
-		    <widget class="GtkLabel" id="label165">
-		      <property name="visible">True</property>
-		      <property name="can_focus">True</property>
-		      <property name="label" translatable="yes">Template for info field: </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">True</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="export_playlist_file_template">
-		      <property name="visible">True</property>
-		      <property name="tooltip" translatable="yes">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 '%': %%.</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>
-		</widget>
-		<packing>
-		  <property name="padding">0</property>
-		  <property name="expand">False</property>
-		  <property name="fill">False</property>
-		</packing>
-	      </child>
-	    </widget>
-	  </child>
-	</widget>
-      </child>
-
-      <child>
-	<widget class="GtkLabel" id="label166">
-	  <property name="visible">True</property>
-	  <property name="label" translatable="yes">gtkpod options</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>
-  </child>
-</widget>
-
-<widget class="GtkWindow" id="export_files_options">
-  <property name="title" translatable="yes">window1</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_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">
-      <property name="visible">True</property>
-      <property name="label_xalign">0</property>
-      <property name="label_yalign">0.5</property>
-      <property name="shadow_type">GTK_SHADOW_ETCHED_OUT</property>
-
-      <child>
-	<widget class="GtkVBox" id="vbox50">
-	  <property name="border_width">5</property>
-	  <property name="visible">True</property>
-	  <property name="homogeneous">False</property>
-	  <property name="spacing">0</property>
-
-	  <child>
-	    <widget class="GtkHBox" id="hbox51">
-	      <property name="visible">True</property>
-	      <property name="homogeneous">False</property>
-	      <property name="spacing">0</property>
-
-	      <child>
-		<widget class="GtkLabel" id="label70">
-		  <property name="visible">True</property>
-		  <property name="can_focus">True</property>
-		  <property name="label" translatable="yes">Filename Format: </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">True</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="export_files_template">
-		  <property name="visible">True</property>
-		  <property name="tooltip" translatable="yes">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 '%': %%.</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>
-	    </widget>
-	    <packing>
-	      <property name="padding">0</property>
-	      <property name="expand">False</property>
-	      <property name="fill">False</property>
-	    </packing>
-	  </child>
-
-	  <child>
-	    <widget class="GtkCheckButton" id="export_files_special_charset">
-	      <property name="visible">True</property>
-	      <property name="tooltip" translatable="yes">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.</property>
-	      <property name="can_focus">True</property>
-	      <property name="label" translatable="yes">Use selected charset (Preferences/'Adding/Updating/ Syncing')
-for this filename.</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="export_files_check_existing">
-	      <property name="visible">True</property>
-	      <property name="tooltip" translatable="yes">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.</property>
-	      <property name="can_focus">True</property>
-	      <property name="label" translatable="yes">Check for existing files when copying from iPod.</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="GtkVBox" id="message_box">
-	      <property name="visible">True</property>
-	      <property name="homogeneous">False</property>
-	      <property name="spacing">0</property>
-
-	      <child>
-		<widget class="GtkHSeparator" id="hseparator48">
-		  <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="GtkLabel" id="message">
-		  <property name="visible">True</property>
-		  <property name="can_focus">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">True</property>
-		  <property name="xalign">0.5</property>
-		  <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>
-		  <property name="expand">False</property>
-		  <property name="fill">False</property>
-		</packing>
-	      </child>
-
-	      <child>
-		<widget class="GtkScrolledWindow" id="scrolledwindow13">
-		  <property name="visible">True</property>
-		  <property name="can_focus">True</property>
-		  <property name="hscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
-		  <property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
-		  <property name="shadow_type">GTK_SHADOW_IN</property>
-		  <property name="window_placement">GTK_CORNER_TOP_LEFT</property>
-
-		  <child>
-		    <widget class="GtkTextView" id="textview">
-		      <property name="visible">True</property>
-		      <property name="can_focus">True</property>
-		      <property name="editable">True</property>
-		      <property name="overwrite">False</property>
-		      <property name="accepts_tab">True</property>
-		      <property name="justification">GTK_JUSTIFY_LEFT</property>
-		      <property name="wrap_mode">GTK_WRAP_WORD</property>
-		      <property name="cursor_visible">True</property>
-		      <property name="pixels_above_lines">0</property>
-		      <property name="pixels_below_lines">0</property>
-		      <property name="pixels_inside_wrap">0</property>
-		      <property name="left_margin">0</property>
-		      <property name="right_margin">0</property>
-		      <property name="indent">0</property>
-		      <property name="text" translatable="yes"></property>
-		    </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">2</property>
-	      <property name="expand">True</property>
-	      <property name="fill">True</property>
-	    </packing>
-	  </child>
-	</widget>
-      </child>
-
-      <child>
-	<widget class="GtkLabel" id="label72">
-	  <property name="visible">True</property>
-	  <property name="can_focus">True</property>
-	  <property name="label" translatable="yes">gtkpod options</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">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="type">label_item</property>
-	</packing>
-      </child>
-    </widget>
-  </child>
-</widget>
-
-<widget class="GtkWindow" id="spl_window">
-  <property name="title" translatable="yes">Smart Playlist</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="GtkScrolledWindow" id="spl_scroll">
-      <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_NEVER</property>
-      <property name="shadow_type">GTK_SHADOW_IN</property>
-      <property name="window_placement">GTK_CORNER_TOP_LEFT</property>
-
-      <child>
-	<widget class="GtkViewport" id="spl_viewport">
-	  <property name="visible">True</property>
-	  <property name="shadow_type">GTK_SHADOW_IN</property>
-
-	  <child>
-	    <widget class="GtkVBox" id="vbox63">
-	      <property name="visible">True</property>
-	      <property name="homogeneous">False</property>
-	      <property name="spacing">0</property>
-
-	      <child>
-		<widget class="GtkHBox" id="spl_name_hbox">
-		  <property name="visible">True</property>
-		  <property name="homogeneous">False</property>
-		  <property name="spacing">0</property>
-
-		  <child>
-		    <widget class="GtkLabel" id="label175">
-		      <property name="visible">True</property>
-		      <property name="label" translatable="yes">Playlist 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.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="GtkEntry" id="spl_name_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="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">False</property>
-		  <property name="fill">True</property>
-		</packing>
-	      </child>
-
-	      <child>
-		<widget class="GtkHSeparator" id="hseparator47">
-		  <property name="visible">True</property>
-		</widget>
-		<packing>
-		  <property name="padding">4</property>
-		  <property name="expand">False</property>
-		  <property name="fill">True</property>
-		</packing>
-	      </child>
-
-	      <child>
-		<widget class="GtkHBox" id="hbox61">
-		  <property name="visible">True</property>
-		  <property name="homogeneous">False</property>
-		  <property name="spacing">0</property>
-
-		  <child>
-		    <widget class="GtkRadioButton" id="spl_all_radio">
-		      <property name="visible">True</property>
-		      <property name="can_focus">True</property>
-		      <property name="label" translatable="yes">Match al_l of the following</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">5</property>
-		      <property name="expand">False</property>
-		      <property name="fill">False</property>
-		    </packing>
-		  </child>
-
-		  <child>
-		    <widget class="GtkRadioButton" id="spl_any_radio">
-		      <property name="visible">True</property>
-		      <property name="can_focus">True</property>
-		      <property name="label" translatable="yes">Match an_y of the following</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">spl_all_radio</property>
-		    </widget>
-		    <packing>
-		      <property name="padding">5</property>
-		      <property name="expand">False</property>
-		      <property name="fill">False</property>
-		    </packing>
-		  </child>
-
-		  <child>
-		    <widget class="GtkRadioButton" id="spl_none_radio">
-		      <property name="visible">True</property>
-		      <property name="can_focus">True</property>
-		      <property name="label" translatable="yes">_Ignore rules</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">spl_all_radio</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">True</property>
-		</packing>
-	      </child>
-
-	      <child>
-		<widget class="GtkFrame" id="spl_rules_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_ETCHED_OUT</property>
-
-		  <child>
-		    <widget class="GtkScrolledWindow" id="scrolledwindow16">
-		      <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="viewport10">
-			  <property name="visible">True</property>
-			  <property name="shadow_type">GTK_SHADOW_IN</property>
-
-			  <child>
-			    <widget class="GtkAlignment" id="spl_rules_table_align">
-			      <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">5</property>
-			      <property name="bottom_padding">5</property>
-			      <property name="left_padding">5</property>
-			      <property name="right_padding">5</property>
-
-			      <child>
-				<placeholder/>
-			      </child>
-			    </widget>
-			  </child>
-			</widget>
-		      </child>
-		    </widget>
-		  </child>
-
-		  <child>
-		    <widget class="GtkLabel" id="label174">
-		      <property name="visible">True</property>
-		      <property name="can_focus">True</property>
-		      <property name="label" translatable="yes">Rules</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">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="type">label_item</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="hbox62">
-		  <property name="visible">True</property>
-		  <property name="homogeneous">False</property>
-		  <property name="spacing">0</property>
-
-		  <child>
-		    <widget class="GtkCheckButton" id="spl_checklimits_button">
-		      <property name="visible">True</property>
-		      <property name="can_focus">True</property>
-		      <property name="label" translatable="yes">_Limit to</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">5</property>
-		      <property name="expand">False</property>
-		      <property name="fill">False</property>
-		    </packing>
-		  </child>
-
-		  <child>
-		    <widget class="GtkEntry" id="spl_limitvalue_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">12</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="width_chars">6</property>
-		    </widget>
-		    <packing>
-		      <property name="padding">0</property>
-		      <property name="expand">False</property>
-		      <property name="fill">False</property>
-		    </packing>
-		  </child>
-
-		  <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>
-		      <property name="expand">False</property>
-		      <property name="fill">True</property>
-		    </packing>
-		  </child>
-
-		  <child>
-		    <widget class="GtkLabel" id="spl_limitsort_label">
-		      <property name="visible">True</property>
-		      <property name="label" translatable="yes">   Sort by:</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">5</property>
-		      <property name="expand">False</property>
-		      <property name="fill">False</property>
-		    </packing>
-		  </child>
-
-		  <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>
-		      <property name="expand">False</property>
-		      <property name="fill">True</property>
-		    </packing>
-		  </child>
-		</widget>
-		<packing>
-		  <property name="padding">2</property>
-		  <property name="expand">False</property>
-		  <property name="fill">True</property>
-		</packing>
-	      </child>
-
-	      <child>
-		<widget class="GtkHBox" id="hbox63">
-		  <property name="visible">True</property>
-		  <property name="homogeneous">False</property>
-		  <property name="spacing">0</property>
-
-		  <child>
-		    <widget class="GtkCheckButton" id="spl_matchcheckedonly_button">
-		      <property name="visible">True</property>
-		      <property name="can_focus">True</property>
-		      <property name="label" translatable="yes">Match only _checked 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>
-		    </widget>
-		    <packing>
-		      <property name="padding">5</property>
-		      <property name="expand">False</property>
-		      <property name="fill">False</property>
-		    </packing>
-		  </child>
-		</widget>
-		<packing>
-		  <property name="padding">5</property>
-		  <property name="expand">False</property>
-		  <property name="fill">False</property>
-		</packing>
-	      </child>
-
-	      <child>
-		<widget class="GtkHBox" id="hbox64">
-		  <property name="visible">True</property>
-		  <property name="homogeneous">False</property>
-		  <property name="spacing">0</property>
-
-		  <child>
-		    <widget class="GtkCheckButton" id="spl_liveupdate_button">
-		      <property name="visible">True</property>
-		      <property name="can_focus">True</property>
-		      <property name="label" translatable="yes">Live _updating</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">5</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">True</property>
-		</packing>
-	      </child>
-
-	      <child>
-		<widget class="GtkHSeparator" id="hseparator46">
-		  <property name="visible">True</property>
-		</widget>
-		<packing>
-		  <property name="padding">4</property>
-		  <property name="expand">False</property>
-		  <property name="fill">True</property>
-		</packing>
-	      </child>
-
-	      <child>
-		<widget class="GtkHBox" id="hbox65">
-		  <property name="visible">True</property>
-		  <property name="homogeneous">False</property>
-		  <property name="spacing">0</property>
-
-		  <child>
-		    <widget class="GtkHButtonBox" id="hbuttonbox11">
-		      <property name="visible">True</property>
-		      <property name="layout_style">GTK_BUTTONBOX_END</property>
-		      <property name="spacing">0</property>
-
-		      <child>
-			<widget class="GtkButton" id="spl_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="spl_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">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>
-  </child>
-</widget>
-
-<widget class="GtkWindow" id="prefs_window">
-  <property name="title" translatable="yes">Preferences</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>
-  <signal name="delete_event" handler="on_prefs_window_delete_event" last_modification_time="Fri, 13 May 2005 17:19:54 GMT"/>
-
-  <child>
-    <widget class="GtkVBox" id="vbox64">
-      <property name="border_width">12</property>
-      <property name="visible">True</property>
-      <property name="homogeneous">False</property>
-      <property name="spacing">8</property>
-
-      <child>
-	<widget class="GtkNotebook" id="notebook">
-	  <property name="visible">True</property>
-	  <property name="can_focus">True</property>
-	  <property name="show_tabs">True</property>
-	  <property name="show_border">True</property>
-	  <property name="tab_pos">GTK_POS_TOP</property>
-	  <property name="scrollable">False</property>
-	  <property name="enable_popup">False</property>
-
-	  <child>
-	    <widget class="GtkScrolledWindow" id="scrolledwindow11">
-	      <property name="visible">True</property>
-	      <property name="can_focus">True</property>
-	      <property name="hscrollbar_policy">GTK_POLICY_AUTOMATIC</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="viewport8">
-		  <property name="visible">True</property>
-		  <property name="shadow_type">GTK_SHADOW_IN</property>
-
-		  <child>
-		    <widget class="GtkVBox" id="vbox111">
-		      <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="vbox166">
-			  <property name="visible">True</property>
-			  <property name="homogeneous">False</property>
-			  <property name="spacing">6</property>
-
-			  <child>
-			    <widget class="GtkLabel" id="label418">
-			      <property name="visible">True</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>
-			      <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="hbox202">
-			      <property name="visible">True</property>
-			      <property name="homogeneous">False</property>
-			      <property name="spacing">8</property>
-
-			      <child>
-				<widget class="GtkLabel" id="label419">
-				  <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="vbox167">
-				  <property name="visible">True</property>
-				  <property name="homogeneous">False</property>
-				  <property name="spacing">6</property>
-
-				  <child>
-				    <widget class="GtkButton" id="cfg_edit_repository_button">
-				      <property name="visible">True</property>
-				      <property name="can_focus">True</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>
-				      <signal name="clicked" handler="on_edit_repository_clicked" last_modification_time="Mon, 01 May 2006 11:37:56 GMT"/>
-				    </widget>
-				    <packing>
-				      <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 iTunesDBs 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_cfg_autoimport_toggled" last_modification_time="Thu, 14 Apr 2005 19:38:15 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>
-			</widget>
-			<packing>
-			  <property name="padding">0</property>
-			  <property name="expand">False</property>
-			  <property name="fill">True</property>
-			</packing>
-		      </child>
-
-		      <child>
-			<widget class="GtkVBox" id="vbox114">
-			  <property name="visible">True</property>
-			  <property name="homogeneous">False</property>
-			  <property name="spacing">6</property>
-
-			  <child>
-			    <widget class="GtkLabel" id="label256">
-			      <property name="visible">True</property>
-			      <property name="label" translatable="yes">&lt;b&gt;Adding/Updating/Syncing&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="hbox109">
-			      <property name="visible">True</property>
-			      <property name="homogeneous">False</property>
-			      <property name="spacing">8</property>
-
-			      <child>
-				<widget class="GtkLabel" id="label257">
-				  <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="vbox115">
-				  <property name="visible">True</property>
-				  <property name="homogeneous">False</property>
-				  <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>
-				      <property name="spacing">8</property>
-
-				      <child>
-					<widget class="GtkLabel" id="label258">
-					  <property name="visible">True</property>
-					  <property name="label" translatable="yes">_Encoding (ID3, files):</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">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>
-					  <property name="expand">False</property>
-					  <property name="fill">False</property>
-					</packing>
-				      </child>
-
-				      <child>
-					<widget class="GtkCombo" id="charset_combo">
-					  <property name="visible">True</property>
-					  <property name="value_in_list">False</property>
-					  <property name="allow_empty">True</property>
-					  <property name="case_sensitive">False</property>
-					  <property name="enable_arrow_keys">True</property>
-					  <property name="enable_arrows_always">False</property>
-
-					  <child internal-child="entry">
-					    <widget class="GtkEntry" id="charset_combo_entry">
-					      <property name="visible">True</property>
-					      <property name="tooltip" translatable="yes">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.</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>
-					      <signal name="changed" handler="on_charset_combo_entry_changed" last_modification_time="Tue, 14 Jan 2003 13:53:44 GMT"/>
-					    </widget>
-					  </child>
-
-					  <child internal-child="list">
-					    <widget class="GtkList" id="list1">
-					      <property name="visible">True</property>
-					      <property name="selection_mode">GTK_SELECTION_BROWSE</property>
-					    </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">False</property>
-				      <property name="fill">True</property>
-				    </packing>
-				  </child>
-
-				  <child>
-				    <widget class="GtkCheckButton" id="cfg_update_charset">
-				      <property name="visible">True</property>
-				      <property name="tooltip" translatable="yes">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.</property>
-				      <property name="can_focus">True</property>
-				      <property name="label" translatable="yes">Use selected encoding also when updating 
-or syncing 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_update_charset_toggled" last_modification_time="Thu, 14 Apr 2005 19:38:42 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="cfg_add_recursively">
-				      <property name="visible">True</property>
-				      <property name="tooltip" translatable="yes">If you check this, gtkpod will descend into subdirectories recursively.</property>
-				      <property name="can_focus">True</property>
-				      <property name="label" translatable="yes">Add directories recursively</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_add_recursively_toggled" last_modification_time="Thu, 14 Apr 2005 19:38:51 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="cfg_md5tracks">
-				      <property name="visible">True</property>
-				      <property name="tooltip" translatable="yes">Duplicate Recognition is based on a (modified) md5 hash over the file.</property>
-				      <property name="can_focus">True</property>
-				      <property name="label" translatable="yes">Don't allow file duplication</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_md5tracks_toggled" last_modification_time="Thu, 14 Apr 2005 19:39:00 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="hbox111">
-				      <property name="visible">True</property>
-				      <property name="homogeneous">False</property>
-				      <property name="spacing">0</property>
-
-				      <child>
-					<widget class="GtkLabel" id="label259">
-					  <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="GtkCheckButton" id="cfg_show_duplicates">
-					  <property name="visible">True</property>
-					  <property name="tooltip" translatable="yes">Display the list of duplicates that have been detected after adding files.</property>
-					  <property name="can_focus">True</property>
-					  <property name="label" translatable="yes">Display info about detected duplicates</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_duplicates_toggled" last_modification_time="Thu, 14 Apr 2005 19:39:08 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="cfg_update_existing">
-				      <property name="visible">True</property>
-				      <property name="tooltip" translatable="yes">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.</property>
-				      <property name="can_focus">True</property>
-				      <property name="label" translatable="yes">When adding dirs/files, update information of
-existing tracks with identical filenames</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_update_existing_toggled" last_modification_time="Thu, 14 Apr 2005 19:39:15 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="hbox112">
-				      <property name="visible">True</property>
-				      <property name="homogeneous">False</property>
-				      <property name="spacing">0</property>
-
-				      <child>
-					<widget class="GtkLabel" id="label260">
-					  <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="GtkCheckButton" id="cfg_show_updated">
-					  <property name="visible">True</property>
-					  <property name="tooltip" translatable="yes">Display a list of tracks that could actually be updated.</property>
-					  <property name="can_focus">True</property>
-					  <property name="label" translatable="yes">Display info about updated 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_show_updated_toggled" last_modification_time="Thu, 14 Apr 2005 19:39:19 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">False</property>
-				      <property name="fill">False</property>
-				    </packing>
-				  </child>
-
-				  <child>
-				    <widget class="GtkHBox" id="hbox113">
-				      <property name="visible">True</property>
-				      <property name="homogeneous">False</property>
-				      <property name="spacing">0</property>
-
-				      <child>
-					<widget class="GtkLabel" id="label261">
-					  <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="GtkCheckButton" id="cfg_show_non_updated">
-					  <property name="visible">True</property>
-					  <property name="tooltip" translatable="yes">Display a list of tracks that could not be updated.</property>
-					  <property name="can_focus">True</property>
-					  <property name="label" translatable="yes">Display info about non-updated 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_show_non_updated_toggled" last_modification_time="Thu, 14 Apr 2005 19:39:22 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">False</property>
-				      <property name="fill">False</property>
-				    </packing>
-				  </child>
-
-				  <child>
-				    <widget class="GtkLabel" id="label262">
-				      <property name="visible">True</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>
-				      <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="hbox114">
-				      <property name="visible">True</property>
-				      <property name="homogeneous">False</property>
-				      <property name="spacing">0</property>
-
-				      <child>
-					<widget class="GtkLabel" id="label263">
-					  <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="GtkAlignment" id="alignment13">
-					  <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="GtkVBox" id="vbox116">
-					      <property name="visible">True</property>
-					      <property name="homogeneous">False</property>
-					      <property name="spacing">4</property>
-
-					      <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="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>
-					  </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">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="vbox117">
-			  <property name="visible">True</property>
-			  <property name="homogeneous">False</property>
-			  <property name="spacing">8</property>
-
-			  <child>
-			    <widget class="GtkLabel" id="label264">
-			      <property name="visible">True</property>
-			      <property name="label" translatable="yes">&lt;b&gt;Sync&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="hbox115">
-			      <property name="visible">True</property>
-			      <property name="homogeneous">False</property>
-			      <property name="spacing">8</property>
-
-			      <child>
-				<widget class="GtkLabel" id="label265">
-				  <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="GtkCheckButton" id="cfg_write_extended">
-				  <property name="visible">True</property>
-				  <property name="tooltip" translatable="yes">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 &quot;transferred=&quot; entries in your backuped database).</property>
-				  <property name="can_focus">True</property>
-				  <property name="label" translatable="yes">Write extended information (PC filenames,
- MD5 hashes, encoding). Recommended.</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_write_extended_info_toggled" last_modification_time="Sat, 04 Jan 2003 16:44:20 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">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>
-		  </child>
-		</widget>
-	      </child>
-	    </widget>
-	    <packing>
-	      <property name="tab_expand">False</property>
-	      <property name="tab_fill">True</property>
-	    </packing>
-	  </child>
-
-	  <child>
-	    <widget class="GtkLabel" id="label252">
-	      <property name="visible">True</property>
-	      <property name="label" translatable="yes">_General</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="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>
-	    </packing>
-	  </child>
-
-	  <child>
-	    <widget class="GtkVBox" id="vbox72">
-	      <property name="border_width">12</property>
-	      <property name="visible">True</property>
-	      <property name="homogeneous">False</property>
-	      <property name="spacing">19</property>
-
-	      <child>
-		<widget class="GtkVBox" id="vbox73">
-		  <property name="visible">True</property>
-		  <property name="homogeneous">False</property>
-		  <property name="spacing">6</property>
-
-		  <child>
-		    <widget class="GtkLabel" id="label191">
-		      <property name="visible">True</property>
-		      <property name="label" translatable="yes">&lt;b&gt;Tag Reading&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="hbox75">
-		      <property name="visible">True</property>
-		      <property name="homogeneous">False</property>
-		      <property name="spacing">8</property>
-
-		      <child>
-			<widget class="GtkLabel" id="label192">
-			  <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="vbox74">
-			  <property name="visible">True</property>
-			  <property name="homogeneous">False</property>
-			  <property name="spacing">0</property>
-
-			  <child>
-			    <widget class="GtkCheckButton" id="readtags">
-			      <property name="visible">True</property>
-			      <property name="can_focus">True</property>
-			      <property name="label" translatable="yes">Read tags from file contents (e.g. ID3 tags in MP3 files)</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_readtags_toggled" last_modification_time="Thu, 26 May 2005 15:28:01 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="parsetags">
-			      <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">Use this template to parse filename for tag information:</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_parsetags_toggled" last_modification_time="Thu, 26 May 2005 15:27:49 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="hbox76">
-			      <property name="visible">True</property>
-			      <property name="homogeneous">False</property>
-			      <property name="spacing">0</property>
-
-			      <child>
-				<widget class="GtkLabel" id="label193">
-				  <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="vbox75">
-				  <property name="visible">True</property>
-				  <property name="homogeneous">False</property>
-				  <property name="spacing">8</property>
-
-				  <child>
-				    <widget class="GtkEntry" id="parsetags_template">
-				      <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_parsetags_template_changed" last_modification_time="Thu, 26 May 2005 15:28:19 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="parsetags_overwrite">
-				      <property name="visible">True</property>
-				      <property name="can_focus">True</property>
-				      <property name="label" translatable="yes">Overwrite tags that are already set</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_parsetags_overwrite_toggled" last_modification_time="Thu, 26 May 2005 15:28:32 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">False</property>
-			      <property name="fill">False</property>
-			    </packing>
-			  </child>
-
-			  <child>
-			    <widget class="GtkLabel" id="label194">
-			      <property name="visible">True</property>
-			      <property name="label" translatable="yes">As a last resort set the following tags to the
-filename if they are (still) empty:</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="GtkTable" id="table32">
-			      <property name="visible">True</property>
-			      <property name="n_rows">2</property>
-			      <property name="n_columns">3</property>
-			      <property name="homogeneous">True</property>
-			      <property name="row_spacing">0</property>
-			      <property name="column_spacing">8</property>
-
-			      <child>
-				<widget class="GtkCheckButton" id="tag_autoset1">
-				  <property name="visible">True</property>
-				  <property name="can_focus">True</property>
-				  <property name="label" translatable="yes">Artist</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">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="GtkCheckButton" id="tag_autoset3">
-				  <property name="visible">True</property>
-				  <property name="can_focus">True</property>
-				  <property name="label" translatable="yes">Genre</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">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="GtkCheckButton" id="tag_autoset2">
-				  <property name="visible">True</property>
-				  <property name="can_focus">True</property>
-				  <property name="label" translatable="yes">Album</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">0</property>
-				  <property name="bottom_attach">1</property>
-				  <property name="x_options">fill</property>
-				  <property name="y_options"></property>
-				</packing>
-			      </child>
-
-			      <child>
-				<widget class="GtkCheckButton" id="tag_autoset4">
-				  <property name="visible">True</property>
-				  <property name="can_focus">True</property>
-				  <property name="label" translatable="yes">Composer</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>
-
-			      <child>
-				<widget class="GtkCheckButton" id="tag_autoset0">
-				  <property name="visible">True</property>
-				  <property name="can_focus">True</property>
-				  <property name="label" translatable="yes">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>
-				</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>
-			    </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="vbox155">
-		  <property name="visible">True</property>
-		  <property name="homogeneous">False</property>
-		  <property name="spacing">6</property>
-
-		  <child>
-		    <widget class="GtkLabel" id="label394">
-		      <property name="visible">True</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>
-		      <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="hbox195">
-		      <property name="visible">True</property>
-		      <property name="homogeneous">False</property>
-		      <property name="spacing">8</property>
-
-		      <child>
-			<widget class="GtkLabel" id="label395">
-			  <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="vbox156">
-			  <property name="visible">True</property>
-			  <property name="homogeneous">False</property>
-			  <property name="spacing">0</property>
-
-			  <child>
-			    <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 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_file_toggled" last_modification_time="Mon, 18 Sep 2006 06:14:44 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="hbox196">
-			      <property name="visible">True</property>
-			      <property name="homogeneous">False</property>
-			      <property name="spacing">0</property>
-
-			      <child>
-				<widget class="GtkLabel" id="label396">
-				  <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="vbox157">
-				  <property name="visible">True</property>
-				  <property name="homogeneous">False</property>
-				  <property name="spacing">6</property>
-
-				  <child>
-				    <widget class="GtkEntry" id="coverart_template">
-				      <property name="visible">True</property>
-				      <property name="tooltip" translatable="yes">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 '%': %%.</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_coverart_template_changed" last_modification_time="Sat, 10 Dec 2005 13:42:35 GMT"/>
-				    </widget>
-				    <packing>
-				      <property name="padding">0</property>
-				      <property name="expand">False</property>
-				      <property name="fill">False</property>
-				    </packing>
-				  </child>
-
-				  <child>
-				    <widget class="GtkLabel" id="label397">
-				      <property name="visible">True</property>
-				      <property name="label" translatable="yes">&lt;b&gt;Examples&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="GtkTable" id="table42">
-				      <property name="visible">True</property>
-				      <property name="n_rows">6</property>
-				      <property name="n_columns">2</property>
-				      <property name="homogeneous">False</property>
-				      <property name="row_spacing">2</property>
-				      <property name="column_spacing">20</property>
-
-				      <child>
-					<widget class="GtkLabel" id="label398">
-					  <property name="visible">True</property>
-					  <property name="label" translatable="yes">folder.jpg</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">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="GtkLabel" id="label399">
-					  <property name="visible">True</property>
-					  <property name="label" translatable="yes">folder</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">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="GtkLabel" id="label400">
-					  <property name="visible">True</property>
-					  <property name="label" translatable="yes">../%A.jpg</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">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="GtkLabel" id="label401">
-					  <property name="visible">True</property>
-					  <property name="label" translatable="yes">%A</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">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"></property>
-					</packing>
-				      </child>
-
-				      <child>
-					<widget class="GtkLabel" id="label402">
-					  <property name="visible">True</property>
-					  <property name="label" translatable="yes">Use &lt;i&gt;folder.jpg&lt;/i&gt; as cover art.</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="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_options">fill</property>
-					  <property name="y_options"></property>
-					</packing>
-				      </child>
-
-				      <child>
-					<widget class="GtkLabel" id="label403">
-					  <property name="visible">True</property>
-					  <property name="label" translatable="yes">Use &lt;i&gt;folder.jpg&lt;/i&gt;, &lt;i&gt;folder.png&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</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">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="label404">
-					  <property name="visible">True</property>
-					  <property name="label" translatable="yes">Use &lt;i&gt;&amp;lt;Album&amp;gt;.jpg&lt;/i&gt; in the parent directory</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="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_options">fill</property>
-					  <property name="y_options"></property>
-					</packing>
-				      </child>
-
-				      <child>
-					<widget class="GtkLabel" id="label405">
-					  <property name="visible">True</property>
-					  <property name="label" translatable="yes">Use &lt;i&gt;&amp;lt;Album&amp;gt;.jpg&lt;/i&gt;, &lt;i&gt;&amp;lt;Album&amp;gt;.png&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</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">3</property>
-					  <property name="bottom_attach">4</property>
-					  <property name="x_options">fill</property>
-					  <property name="y_options"></property>
-					</packing>
-				      </child>
-
-				      <child>
-					<widget class="GtkLabel" id="label406">
-					  <property name="visible">True</property>
-					  <property name="label" translatable="yes">folder.jpg;%a.jpg</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">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"></property>
-					</packing>
-				      </child>
-
-				      <child>
-					<widget class="GtkLabel" id="label407">
-					  <property name="visible">True</property>
-					  <property name="label" translatable="yes">First try &lt;i&gt;folder.jpg&lt;/i&gt;, then &lt;i&gt;&amp;lt;artist&amp;gt;.jpg&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</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="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>
-				    <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">False</property>
-			      <property name="fill">False</property>
-			    </packing>
-			  </child>
-
-			  <child>
-			    <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>
-			  <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="vbox76">
-		  <property name="visible">True</property>
-		  <property name="homogeneous">False</property>
-		  <property name="spacing">6</property>
-
-		  <child>
-		    <widget class="GtkLabel" id="label195">
-		      <property name="visible">True</property>
-		      <property name="label" translatable="yes">&lt;b&gt;mserv&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="hbox77">
-		      <property name="visible">True</property>
-		      <property name="homogeneous">False</property>
-		      <property name="spacing">8</property>
-
-		      <child>
-			<widget class="GtkLabel" id="label196">
-			  <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="vbox77">
-			  <property name="visible">True</property>
-			  <property name="homogeneous">False</property>
-			  <property name="spacing">8</property>
-
-			  <child>
-			    <widget class="GtkCheckButton" id="cfg_mserv_use">
-			      <property name="visible">True</property>
-			      <property name="tooltip" translatable="yes">Currently only rating is supported.</property>
-			      <property name="can_focus">True</property>
-			      <property name="label" translatable="yes">Use mserv database to fill additional information</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_mserv_use_toggled" last_modification_time="Sat, 16 Apr 2005 11:22:56 GMT"/>
-			    </widget>
-			    <packing>
-			      <property name="padding">0</property>
-			      <property name="expand">False</property>
-			      <property name="fill">False</property>
-			    </packing>
-			  </child>
-
-			  <child>
-			    <widget class="GtkTable" id="table33">
-			      <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="label198">
-				  <property name="visible">True</property>
-				  <property name="label" translatable="yes">Music Root:</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">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="mserv_music_root_entry">
-				  <property name="visible">True</property>
-				  <property name="tooltip" translatable="yes">mserv database lookup will be done for music in this directory.</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="GtkLabel" id="label199">
-				  <property name="visible">True</property>
-				  <property name="label" translatable="yes">mserv Root:</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">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="mserv_trackinfo_root_entry">
-				  <property name="visible">True</property>
-				  <property name="tooltip" translatable="yes">Root directory of mserv database (trackinfo root).</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="GtkLabel" id="label200">
-				  <property name="visible">True</property>
-				  <property name="label" translatable="yes">Username:</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">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="mserv_username_entry">
-				  <property name="visible">True</property>
-				  <property name="tooltip" translatable="yes">Username to be used for mserv database lookup.</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_mserv_username_entry_changed" last_modification_time="Thu, 26 May 2005 15:29:20 GMT"/>
-				</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="mserv_music_root_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="GtkButton" id="mserv_trackinfo_root_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>
-			    </widget>
-			    <packing>
-			      <property name="padding">0</property>
-			      <property name="expand">True</property>
-			      <property name="fill">True</property>
-			    </packing>
-			  </child>
-
-			  <child>
-			    <widget class="GtkCheckButton" id="cfg_mserv_report_probs">
-			      <property name="visible">True</property>
-			      <property name="tooltip" translatable="yes">Currently only rating is supported.</property>
-			      <property name="can_focus">True</property>
-			      <property name="label" translatable="yes">Show information about problems when accessing mserv</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_mserv_report_probs_toggled" last_modification_time="Sat, 16 Apr 2005 11:22:09 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">False</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>
-	    <packing>
-	      <property name="tab_expand">False</property>
-	      <property name="tab_fill">True</property>
-	    </packing>
-	  </child>
-
-	  <child>
-	    <widget class="GtkLabel" id="label178">
-	      <property name="visible">True</property>
-	      <property name="label" translatable="yes">_Track Info</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="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>
-	    </packing>
-	  </child>
-
-	  <child>
-	    <widget class="GtkScrolledWindow" id="scrolledwindow12">
-	      <property name="visible">True</property>
-	      <property name="can_focus">True</property>
-	      <property name="hscrollbar_policy">GTK_POLICY_AUTOMATIC</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="viewport9">
-		  <property name="visible">True</property>
-		  <property name="shadow_type">GTK_SHADOW_IN</property>
-
-		  <child>
-		    <widget class="GtkVBox" id="vbox118">
-		      <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="vbox119">
-			  <property name="visible">True</property>
-			  <property name="homogeneous">False</property>
-			  <property name="spacing">6</property>
-
-			  <child>
-			    <widget class="GtkLabel" id="label267">
-			      <property name="visible">True</property>
-			      <property name="label" translatable="yes">&lt;b&gt;Displayed Track Attributes&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="hbox116">
-			      <property name="visible">True</property>
-			      <property name="homogeneous">False</property>
-			      <property name="spacing">8</property>
-
-			      <child>
-				<widget class="GtkLabel" id="label268">
-				  <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="GtkHBox" id="hbox117">
-				  <property name="visible">True</property>
-				  <property name="homogeneous">False</property>
-				  <property name="spacing">0</property>
-
-				  <child>
-				    <widget class="GtkVBox" id="vbox120">
-				      <property name="visible">True</property>
-				      <property name="homogeneous">False</property>
-				      <property name="spacing">0</property>
-
-				      <child>
-					<widget class="GtkCheckButton" id="col_visible1">
-					  <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>
-
-				      <child>
-					<widget class="GtkCheckButton" id="col_visible4">
-					  <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>
-
-				      <child>
-					<widget class="GtkCheckButton" id="col_visible28">
-					  <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>
-
-				      <child>
-					<widget class="GtkCheckButton" id="col_visible32">
-					  <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>
-
-				      <child>
-					<widget class="GtkCheckButton" id="col_visible9">
-					  <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>
-
-				      <child>
-					<widget class="GtkCheckButton" id="col_visible19">
-					  <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>
-
-				      <child>
-					<widget class="GtkCheckButton" id="col_visible12">
-					  <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>
-
-				      <child>
-					<widget class="GtkCheckButton" id="col_visible11">
-					  <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>
-
-				      <child>
-					<widget class="GtkCheckButton" id="col_visible18">
-					  <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>
-				      <property name="padding">0</property>
-				      <property name="expand">True</property>
-				      <property name="fill">True</property>
-				    </packing>
-				  </child>
-
-				  <child>
-				    <widget class="GtkVBox" id="vbox121">
-				      <property name="visible">True</property>
-				      <property name="homogeneous">False</property>
-				      <property name="spacing">0</property>
-
-				      <child>
-					<widget class="GtkCheckButton" id="col_visible2">
-					  <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>
-
-				      <child>
-					<widget class="GtkCheckButton" id="col_visible24">
-					  <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>
-
-				      <child>
-					<widget class="GtkCheckButton" id="col_visible29">
-					  <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>
-
-				      <child>
-					<widget class="GtkCheckButton" id="col_visible7">
-					  <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>
-
-				      <child>
-					<widget class="GtkCheckButton" id="col_visible10">
-					  <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>
-
-				      <child>
-					<widget class="GtkCheckButton" id="col_visible15">
-					  <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>
-
-				      <child>
-					<widget class="GtkCheckButton" id="col_visible13">
-					  <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>
-
-				      <child>
-					<widget class="GtkCheckButton" id="col_visible22">
-					  <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>
-
-				      <child>
-					<widget class="GtkCheckButton" id="col_visible5">
-					  <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>
-				      <property name="padding">0</property>
-				      <property name="expand">True</property>
-				      <property name="fill">True</property>
-				    </packing>
-				  </child>
-
-				  <child>
-				    <widget class="GtkVBox" id="vbox122">
-				      <property name="visible">True</property>
-				      <property name="homogeneous">False</property>
-				      <property name="spacing">0</property>
-
-				      <child>
-					<widget class="GtkCheckButton" id="col_visible0">
-					  <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>
-
-				      <child>
-					<widget class="GtkCheckButton" id="col_visible25">
-					  <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>
-
-				      <child>
-					<widget class="GtkCheckButton" id="col_visible30">
-					  <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>
-
-				      <child>
-					<widget class="GtkCheckButton" id="col_visible20">
-					  <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>
-
-				      <child>
-					<widget class="GtkCheckButton" id="col_visible16">
-					  <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>
-
-				      <child>
-					<widget class="GtkCheckButton" id="col_visible14">
-					  <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>
-
-				      <child>
-					<widget class="GtkCheckButton" id="col_visible26">
-					  <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>
-
-				      <child>
-					<widget class="GtkCheckButton" id="col_visible23">
-					  <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>
-
-				      <child>
-					<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>
-				      <property name="padding">0</property>
-				      <property name="expand">True</property>
-				      <property name="fill">True</property>
-				    </packing>
-				  </child>
-
-				  <child>
-				    <widget class="GtkVBox" id="vbox123">
-				      <property name="visible">True</property>
-				      <property name="homogeneous">False</property>
-				      <property name="spacing">0</property>
-
-				      <child>
-					<widget class="GtkCheckButton" id="col_visible3">
-					  <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>
-
-				      <child>
-					<widget class="GtkCheckButton" id="col_visible27">
-					  <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>
-
-				      <child>
-					<widget class="GtkCheckButton" id="col_visible31">
-					  <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>
-
-				      <child>
-					<widget class="GtkCheckButton" id="col_visible17">
-					  <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>
-
-				      <child>
-					<widget class="GtkCheckButton" id="col_visible21">
-					  <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>
-
-				      <child>
-					<widget class="GtkCheckButton" id="col_visible33">
-					  <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>
-
-				      <child>
-					<widget class="GtkCheckButton" id="col_visible6">
-					  <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>
-
-				      <child>
-					<widget class="GtkCheckButton" id="col_visible8">
-					  <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>
-
-				      <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">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="vbox124">
-			  <property name="visible">True</property>
-			  <property name="homogeneous">False</property>
-			  <property name="spacing">6</property>
-
-			  <child>
-			    <widget class="GtkLabel" id="label269">
-			      <property name="visible">True</property>
-			      <property name="label" translatable="yes">&lt;b&gt;Sort Tabs&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="hbox118">
-			      <property name="visible">True</property>
-			      <property name="homogeneous">False</property>
-			      <property name="spacing">8</property>
-
-			      <child>
-				<widget class="GtkLabel" id="label270">
-				  <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="vbox125">
-				  <property name="visible">True</property>
-				  <property name="homogeneous">False</property>
-				  <property name="spacing">6</property>
-
-				  <child>
-				    <widget class="GtkCheckButton" id="cfg_group_compilations">
-				      <property name="visible">True</property>
-				      <property name="tooltip" translatable="yes">Keeps all compilation CDs grouped together in the artists sort tab.</property>
-				      <property name="can_focus">True</property>
-				      <property name="label" translatable="yes">Group artists on compilation CDs</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_group_compilations_toggled" last_modification_time="Sun, 23 Nov 2003 22:23:00 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="hbox119">
-				      <property name="visible">True</property>
-				      <property name="homogeneous">False</property>
-				      <property name="spacing">12</property>
-
-				      <child>
-					<widget class="GtkLabel" id="label271">
-					  <property name="visible">True</property>
-					  <property name="label" translatable="yes">_Number of sort tabs:</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_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>
-					  <property name="expand">False</property>
-					  <property name="fill">False</property>
-					</packing>
-				      </child>
-
-				      <child>
-					<widget class="GtkSpinButton" id="cfg_sort_tab_num_sb">
-					  <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_cfg_sort_tab_num_sb_value_changed" last_modification_time="Thu, 14 Apr 2005 19:41:27 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>
-				  <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>
-			<packing>
-			  <property name="padding">0</property>
-			  <property name="expand">True</property>
-			  <property name="fill">True</property>
-			</packing>
-		      </child>
-
-		      <child>
-			<widget class="GtkVBox" id="vbox126">
-			  <property name="visible">True</property>
-			  <property name="homogeneous">False</property>
-			  <property name="spacing">6</property>
-
-			  <child>
-			    <widget class="GtkLabel" id="label272">
-			      <property name="visible">True</property>
-			      <property name="label" translatable="yes">&lt;b&gt;Automatically select...&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="hbox121">
-			      <property name="visible">True</property>
-			      <property name="homogeneous">False</property>
-			      <property name="spacing">8</property>
-
-			      <child>
-				<widget class="GtkLabel" id="label273">
-				  <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="autoselect_vbox">
-				  <property name="visible">True</property>
-				  <property name="homogeneous">False</property>
-				  <property name="spacing">8</property>
-
-				  <child>
-				    <widget class="GtkCheckButton" id="cfg_mpl_autoselect">
-				      <property name="visible">True</property>
-				      <property name="tooltip" translatable="yes">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.</property>
-				      <property name="can_focus">True</property>
-				      <property name="label" translatable="yes">...master 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>
-				      <signal name="toggled" handler="on_cfg_mpl_autoselect_toggled" last_modification_time="Sun, 09 Feb 2003 07:01:19 GMT"/>
-				    </widget>
-				    <packing>
-				      <property name="padding">0</property>
-				      <property name="expand">False</property>
-				      <property name="fill">False</property>
-				    </packing>
-				  </child>
-
-				  <child>
-				    <widget class="GtkLabel" id="label274">
-				      <property name="visible">True</property>
-				      <property name="can_focus">True</property>
-				      <property name="label" translatable="yes">...entry 'All' in sort tab...</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">True</property>
-				      <property name="xalign">0</property>
-				      <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>
-				      <property name="expand">False</property>
-				      <property name="fill">False</property>
-				    </packing>
-				  </child>
-
-				  <child>
-				    <widget class="GtkHBox" id="autoselect_hbox">
-				      <property name="visible">True</property>
-				      <property name="homogeneous">False</property>
-				      <property name="spacing">0</property>
-
-				      <child>
-					<placeholder/>
-				      </child>
-
-				      <child>
-					<placeholder/>
-				      </child>
-
-				      <child>
-					<placeholder/>
-				      </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>
-			    </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="vbox128">
-			  <property name="visible">True</property>
-			  <property name="homogeneous">False</property>
-			  <property name="spacing">6</property>
-
-			  <child>
-			    <widget class="GtkLabel" id="label275">
-			      <property name="visible">True</property>
-			      <property name="label" translatable="yes">&lt;b&gt;Tooltips&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="hbox123">
-			      <property name="visible">True</property>
-			      <property name="homogeneous">False</property>
-			      <property name="spacing">8</property>
-
-			      <child>
-				<widget class="GtkLabel" id="label276">
-				  <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="vbox129">
-				  <property name="visible">True</property>
-				  <property name="homogeneous">False</property>
-				  <property name="spacing">6</property>
-
-				  <child>
-				    <widget class="GtkCheckButton" id="cfg_display_tooltips_main">
-				      <property name="visible">True</property>
-				      <property name="can_focus">True</property>
-				      <property name="label" translatable="yes">Display tooltips in main window</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_display_tooltips_main_toggled" last_modification_time="Sat, 14 Jun 2003 16:46:29 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="cfg_display_tooltips_prefs">
-				      <property name="visible">True</property>
-				      <property name="can_focus">True</property>
-				      <property name="label" translatable="yes">Display tooltips in prefs window</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_display_tooltips_prefs_toggled" last_modification_time="Sat, 14 Jun 2003 16:46:49 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>
-			</widget>
-			<packing>
-			  <property name="padding">0</property>
-			  <property name="expand">True</property>
-			  <property name="fill">True</property>
-			</packing>
-		      </child>
-
-		      <child>
-			<widget class="GtkVBox" id="vbox132">
-			  <property name="visible">True</property>
-			  <property name="homogeneous">False</property>
-			  <property name="spacing">6</property>
-
-			  <child>
-			    <widget class="GtkLabel" id="label280">
-			      <property name="visible">True</property>
-			      <property name="label" translatable="yes">&lt;b&gt;Toolbar&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="hbox126">
-			      <property name="visible">True</property>
-			      <property name="homogeneous">False</property>
-			      <property name="spacing">8</property>
-
-			      <child>
-				<widget class="GtkLabel" id="label281">
-				  <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="vbox133">
-				  <property name="visible">True</property>
-				  <property name="homogeneous">False</property>
-				  <property name="spacing">6</property>
-
-				  <child>
-				    <widget class="GtkCheckButton" id="cfg_display_toolbar">
-				      <property name="visible">True</property>
-				      <property name="can_focus">True</property>
-				      <property name="label" translatable="yes">Display toolbar...</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_display_toolbar_toggled" last_modification_time="Fri, 14 Mar 2003 11:50:10 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="hbox127">
-				      <property name="visible">True</property>
-				      <property name="homogeneous">False</property>
-				      <property name="spacing">0</property>
-
-				      <child>
-					<widget class="GtkLabel" id="label282">
-					  <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>
-					  <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="vbox134">
-					  <property name="visible">True</property>
-					  <property name="homogeneous">False</property>
-					  <property name="spacing">6</property>
-
-					  <child>
-					    <widget class="GtkRadioButton" id="cfg_toolbar_style_icons">
-					      <property name="visible">True</property>
-					      <property name="can_focus">True</property>
-					      <property name="label" translatable="yes">...as icons</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_toolbar_style_icons_toggled" last_modification_time="Fri, 14 Mar 2003 13:46:08 GMT"/>
-					    </widget>
-					    <packing>
-					      <property name="padding">0</property>
-					      <property name="expand">False</property>
-					      <property name="fill">False</property>
-					    </packing>
-					  </child>
-
-					  <child>
-					    <widget class="GtkRadioButton" id="cfg_toolbar_style_text">
-					      <property name="visible">True</property>
-					      <property name="can_focus">True</property>
-					      <property name="label" translatable="yes">...as text</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">cfg_toolbar_style_icons</property>
-					      <signal name="toggled" handler="on_cfg_toolbar_style_text_toggled" last_modification_time="Fri, 14 Mar 2003 13:29:43 GMT"/>
-					    </widget>
-					    <packing>
-					      <property name="padding">0</property>
-					      <property name="expand">False</property>
-					      <property name="fill">False</property>
-					    </packing>
-					  </child>
-
-					  <child>
-					    <widget class="GtkRadioButton" id="cfg_toolbar_style_both">
-					      <property name="visible">True</property>
-					      <property name="can_focus">True</property>
-					      <property name="label" translatable="yes">...both as icons and text</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">cfg_toolbar_style_icons</property>
-					      <signal name="toggled" handler="on_cfg_toolbar_style_both_toggled" last_modification_time="Fri, 14 Mar 2003 13:29:49 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>
-				</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="vbox130">
-			  <property name="visible">True</property>
-			  <property name="homogeneous">False</property>
-			  <property name="spacing">6</property>
-
-			  <child>
-			    <widget class="GtkLabel" id="label277">
-			      <property name="visible">True</property>
-			      <property name="label" translatable="yes">&lt;b&gt;Misc&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="hbox124">
-			      <property name="visible">True</property>
-			      <property name="homogeneous">False</property>
-			      <property name="spacing">8</property>
-
-			      <child>
-				<widget class="GtkLabel" id="label278">
-				  <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="vbox131">
-				  <property name="visible">True</property>
-				  <property name="homogeneous">False</property>
-				  <property name="spacing">6</property>
-
-				  <child>
-				    <widget class="GtkCheckButton" id="cfg_tmp_disable_sort">
-				      <property name="visible">True</property>
-				      <property name="tooltip" translatable="yes">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.</property>
-				      <property name="can_focus">True</property>
-				      <property name="label" translatable="yes">Temporarily disable sorting when changing playlist
-or tab entry (faster!)</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_temporarily_disable_sorting" last_modification_time="Mon, 20 Sep 2004 10:59:24 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="cfg_block_display">
-				      <property name="visible">True</property>
-				      <property name="tooltip" translatable="yes">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).</property>
-				      <property name="can_focus">True</property>
-				      <property name="label" translatable="yes">Block display when changing playlist or tab
- entry (faster!)</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_block_display_toggled" last_modification_time="Sun, 09 Feb 2003 11:14:32 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="cfg_startup_messages">
-				      <property name="visible">True</property>
-				      <property name="tooltip" translatable="yes">This option will be re-activated when you upgrade gtkpod.</property>
-				      <property name="can_focus">True</property>
-				      <property name="label" translatable="yes">Display messages and warnings at 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_cfg_startup_messages" last_modification_time="Thu, 16 Dec 2004 12:49:12 GMT"/>
-				    </widget>
-				    <packing>
-				      <property name="padding">0</property>
-				      <property name="expand">False</property>
-				      <property name="fill">False</property>
-				    </packing>
-				  </child>
-
-				  <child>
-				    <widget class="GtkButton" id="button8">
-				      <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>
-				      <signal name="clicked" handler="on_sorting_clicked" last_modification_time="Fri, 06 May 2005 18:33:34 GMT"/>
-
-				      <child>
-					<widget class="GtkAlignment" id="alignment5">
-					  <property name="visible">True</property>
-					  <property name="xalign">0.5</property>
-					  <property name="yalign">0.5</property>
-					  <property name="xscale">0</property>
-					  <property name="yscale">0</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="GtkHBox" id="hbox125">
-					      <property name="visible">True</property>
-					      <property name="homogeneous">False</property>
-					      <property name="spacing">2</property>
-
-					      <child>
-						<widget class="GtkImage" id="image2938">
-						  <property name="visible">True</property>
-						  <property name="stock">gtk-sort-ascending</property>
-						  <property name="icon_size">4</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="GtkLabel" id="label279">
-						  <property name="visible">True</property>
-						  <property name="label" translatable="yes">Advanced Sorting Options</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="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>
-					    </widget>
-					  </child>
-					</widget>
-				      </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">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>
-		  </child>
-		</widget>
-	      </child>
-	    </widget>
-	    <packing>
-	      <property name="tab_expand">False</property>
-	      <property name="tab_fill">True</property>
-	    </packing>
-	  </child>
-
-	  <child>
-	    <widget class="GtkLabel" id="label266">
-	      <property name="visible">True</property>
-	      <property name="label" translatable="yes">_Display</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="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>
-	    </packing>
-	  </child>
-
-	  <child>
-	    <widget class="GtkVBox" id="vbox78">
-	      <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="vbox79">
-		  <property name="visible">True</property>
-		  <property name="homogeneous">False</property>
-		  <property name="spacing">6</property>
-
-		  <child>
-		    <widget class="GtkLabel" id="label202">
-		      <property name="visible">True</property>
-		      <property name="label" translatable="yes">&lt;b&gt;Track Editing&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="hbox79">
-		      <property name="visible">True</property>
-		      <property name="homogeneous">False</property>
-		      <property name="spacing">8</property>
-
-		      <child>
-			<widget class="GtkLabel" id="label203">
-			  <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="vbox80">
-			  <property name="visible">True</property>
-			  <property name="homogeneous">False</property>
-			  <property name="spacing">8</property>
-
-			  <child>
-			    <widget class="GtkCheckButton" id="cfg_id3_write">
-			      <property name="visible">True</property>
-			      <property name="tooltip" translatable="yes">The tags are written to the files on your harddrive and on the ipod (if available).</property>
-			      <property name="can_focus">True</property>
-			      <property name="label" translatable="yes">Write ID3 tags to disk when modified in gtkpod</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_id3_write_toggled" last_modification_time="Thu, 28 Apr 2005 18:07:39 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="hbox80">
-			      <property name="visible">True</property>
-			      <property name="homogeneous">False</property>
-			      <property name="spacing">0</property>
-
-			      <child>
-				<widget class="GtkLabel" id="label204">
-				  <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>
-				  <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="vbox81">
-				  <property name="visible">True</property>
-				  <property name="homogeneous">False</property>
-				  <property name="spacing">0</property>
-
-				  <child>
-				    <widget class="GtkCheckButton" id="cfg_write_charset">
-				      <property name="visible">True</property>
-				      <property name="tooltip" translatable="yes">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.</property>
-				      <property name="can_focus">True</property>
-				      <property name="label" translatable="yes">Use selected encoding (on the 'General' page)
-when writing tags</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_write_charset_toggled" last_modification_time="Thu, 26 May 2005 15:32:16 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="cfg_id3_write_id3v24">
-				      <property name="visible">True</property>
-				      <property name="tooltip" translatable="yes">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.</property>
-				      <property name="can_focus">True</property>
-				      <property name="label" translatable="yes">Always write ID3v2.4 tags (only applies to MP3)</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_id3_write_id3v24_toggled" last_modification_time="Thu, 26 May 2005 15:32:35 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">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="cfg_multi_edit">
-			      <property name="visible">True</property>
-			      <property name="tooltip" translatable="yes">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.</property>
-			      <property name="can_focus">True</property>
-			      <property name="label" translatable="yes">Use 'Multi-Edit' for tracks selections</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_multi_edit_toggled" last_modification_time="Thu, 28 Apr 2005 18:08:31 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="hbox81">
-			      <property name="visible">True</property>
-			      <property name="homogeneous">False</property>
-			      <property name="spacing">0</property>
-
-			      <child>
-				<widget class="GtkLabel" id="label205">
-				  <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>
-				  <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="GtkCheckButton" id="cfg_multi_edit_title">
-				  <property name="visible">True</property>
-				  <property name="tooltip" translatable="yes">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).</property>
-				  <property name="can_focus">True</property>
-				  <property name="label" translatable="yes">Use 'Multi-Edit' also for title field</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_multi_edit_title_toggled" last_modification_time="Thu, 26 May 2005 15:32:53 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>
-		    </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="vbox82">
-		  <property name="visible">True</property>
-		  <property name="homogeneous">False</property>
-		  <property name="spacing">6</property>
-
-		  <child>
-		    <widget class="GtkLabel" id="label206">
-		      <property name="visible">True</property>
-		      <property name="label" translatable="yes">&lt;b&gt;Auto-Generated 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</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="hbox82">
-		      <property name="visible">True</property>
-		      <property name="homogeneous">False</property>
-		      <property name="spacing">8</property>
-
-		      <child>
-			<widget class="GtkLabel" id="label207">
-			  <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="vbox83">
-			  <property name="visible">True</property>
-			  <property name="homogeneous">False</property>
-			  <property name="spacing">8</property>
-
-			  <child>
-			    <widget class="GtkHBox" id="hbox83">
-			      <property name="visible">True</property>
-			      <property name="homogeneous">False</property>
-			      <property name="spacing">8</property>
-
-			      <child>
-				<widget class="GtkLabel" id="label208">
-				  <property name="visible">True</property>
-				  <property name="label" translatable="yes">Number of tracks in generated playlists:</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="GtkSpinButton" id="cfg_misc_track_nr">
-				  <property name="visible">True</property>
-				  <property name="tooltip" translatable="yes">Number of tracks in the generated playlists 'Most Often Listened', 'Best Rated' and 'Most Recently Played'. Choose '0' for 'no limit'.</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">20 0 100 1 10 10</property>
-				  <signal name="value_changed" handler="on_cfg_misc_track_nr_value_changed" last_modification_time="Thu, 28 Apr 2005 18:09:09 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="GtkCheckButton" id="cfg_not_played_track">
-			      <property name="visible">True</property>
-			      <property name="can_focus">True</property>
-			      <property name="label" translatable="yes">Also include tracks never played in &quot;Best Rated&quot; 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>
-			      <signal name="toggled" handler="on_cfg_not_played_track_toggled" last_modification_time="Thu, 28 Apr 2005 18:08:52 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>
-		</widget>
-		<packing>
-		  <property name="padding">0</property>
-		  <property name="expand">False</property>
-		  <property name="fill">True</property>
-		</packing>
-	      </child>
-
-	      <child>
-		<widget class="GtkVBox" id="vbox84">
-		  <property name="visible">True</property>
-		  <property name="homogeneous">False</property>
-		  <property name="spacing">6</property>
-
-		  <child>
-		    <widget class="GtkLabel" id="label209">
-		      <property name="visible">True</property>
-		      <property name="label" translatable="yes">&lt;b&gt;Delete Confirmation&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="hbox84">
-		      <property name="visible">True</property>
-		      <property name="homogeneous">False</property>
-		      <property name="spacing">8</property>
-
-		      <child>
-			<widget class="GtkLabel" id="label210">
-			  <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="vbox85">
-			  <property name="visible">True</property>
-			  <property name="homogeneous">False</property>
-			  <property name="spacing">8</property>
-
-			  <child>
-			    <widget class="GtkCheckButton" id="cfg_delete_track_from_playlist">
-			      <property name="visible">True</property>
-			      <property name="can_focus">True</property>
-			      <property name="label" translatable="yes">Before removing playlists or tracks from a 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>
-			      <signal name="toggled" handler="on_cfg_delete_track_from_playlist_toggled" last_modification_time="Thu, 28 Apr 2005 18:09:28 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="cfg_delete_track_from_ipod">
-			      <property name="visible">True</property>
-			      <property name="can_focus">True</property>
-			      <property name="label" translatable="yes">Before removing tracks from the iPod</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_delete_track_from_ipod_toggled" last_modification_time="Thu, 28 Apr 2005 18:09:36 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="cfg_track_local_file_deletion">
-			      <property name="visible">True</property>
-			      <property name="can_focus">True</property>
-			      <property name="label" translatable="yes">Before removing tracks from the harddisk</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_track_local_file_deletion_toggled" last_modification_time="Tue, 24 May 2005 14:27:44 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="cfg_track_database_deletion">
-			      <property name="visible">True</property>
-			      <property name="can_focus">True</property>
-			      <property name="label" translatable="yes">Before removing tracks from the local database</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_track_database_deletion_toggled" last_modification_time="Tue, 24 May 2005 14:28:06 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_delete_toggle2">
-			      <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
-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_sync_confirm_delete_toggled" last_modification_time="Mon, 15 May 2006 15:29:44 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>
-		</widget>
-		<packing>
-		  <property name="padding">0</property>
-		  <property name="expand">False</property>
-		  <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="label201">
-	      <property name="visible">True</property>
-	      <property name="label" translatable="yes">_Edit</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="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>
-	    </packing>
-	  </child>
-
-	  <child>
-	    <widget class="GtkVBox" id="vbox86">
-	      <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="vbox87">
-		  <property name="visible">True</property>
-		  <property name="homogeneous">False</property>
-		  <property name="spacing">6</property>
-
-		  <child>
-		    <widget class="GtkLabel" id="label212">
-		      <property name="visible">True</property>
-		      <property name="label" translatable="yes">&lt;b&gt;Play&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="hbox85">
-		      <property name="visible">True</property>
-		      <property name="homogeneous">False</property>
-		      <property name="spacing">8</property>
-
-		      <child>
-			<widget class="GtkLabel" id="label213">
-			  <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="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="row_spacing">8</property>
-			  <property name="column_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</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">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="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</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">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="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="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="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="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="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="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="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="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>
-			<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>
-		      <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="hbox88">
-		      <property name="visible">True</property>
-		      <property name="homogeneous">False</property>
-		      <property name="spacing">8</property>
-
-		      <child>
-			<widget class="GtkLabel" id="label218">
-			  <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="GtkTable" id="table49">
-			  <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">8</property>
-			  <property name="column_spacing">8</property>
-
-			  <child>
-			    <widget class="GtkLabel" id="label219">
-			      <property name="visible">True</property>
-			      <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="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="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="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="mp3gain_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="label432">
-			      <property name="visible">True</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>
-			      <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">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="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>
-			      <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="aacgain_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>
-			</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;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>
-		      <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="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">    </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="vbox91">
-			  <property name="visible">True</property>
-			  <property name="homogeneous">False</property>
-			  <property name="spacing">6</property>
-
-			  <child>
-			    <widget class="GtkButton" id="button23">
-			      <property name="visible">True</property>
-			      <property name="can_focus">True</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>
-			      <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>
-			      <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>
-		</widget>
-		<packing>
-		  <property name="padding">0</property>
-		  <property name="expand">False</property>
-		  <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>
-	      <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>
-	    </packing>
-	  </child>
-	</widget>
-	<packing>
-	  <property name="padding">0</property>
-	  <property name="expand">True</property>
-	  <property name="fill">True</property>
-	</packing>
-      </child>
-
-      <child>
-	<widget class="GtkHButtonBox" id="hbuttonbox12">
-	  <property name="visible">True</property>
-	  <property name="layout_style">GTK_BUTTONBOX_END</property>
-	  <property name="spacing">8</property>
-
-	  <child>
-	    <widget class="GtkButton" id="prefs_apply">
-	      <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>
-	      <signal name="clicked" handler="on_prefs_apply_clicked" last_modification_time="Fri, 06 May 2005 17:42:20 GMT"/>
-	    </widget>
-	  </child>
-
-	  <child>
-	    <widget class="GtkButton" id="prefs_cancel">
-	      <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>
-	      <signal name="clicked" handler="on_prefs_cancel_clicked" last_modification_time="Fri, 06 May 2005 17:41:59 GMT"/>
-	    </widget>
-	  </child>
-
-	  <child>
-	    <widget class="GtkButton" id="prefs_ok">
-	      <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>
-	      <signal name="clicked" handler="on_prefs_ok_clicked" last_modification_time="Fri, 06 May 2005 17:22:23 GMT"/>
-	    </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="details_window">
-  <property name="visible">True</property>
-  <property name="title" translatable="yes">Details</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="vbox150">
-      <property name="border_width">6</property>
-      <property name="visible">True</property>
-      <property name="homogeneous">False</property>
-      <property name="spacing">4</property>
-
-      <child>
-	<widget class="GtkLabel" id="details_label_artist_title">
-	  <property name="visible">True</property>
-	  <property name="label">label</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">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>
-	  <property name="expand">False</property>
-	  <property name="fill">False</property>
-	</packing>
-      </child>
-
-      <child>
-	<widget class="GtkViewport" id="details_viewport">
-	  <property name="border_width">2</property>
-	  <property name="visible">True</property>
-	  <property name="shadow_type">GTK_SHADOW_IN</property>
-
-	  <child>
-	    <widget class="GtkHBox" id="hbox188">
-	      <property name="visible">True</property>
-	      <property name="homogeneous">False</property>
-	      <property name="spacing">4</property>
-
-	      <child>
-		<widget class="GtkVBox" id="vbox151">
-		  <property name="visible">True</property>
-		  <property name="homogeneous">False</property>
-		  <property name="spacing">0</property>
-
-		  <child>
-		    <widget class="GtkLabel" id="label340">
-		      <property name="visible">True</property>
-		      <property name="label" translatable="yes">Cover</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">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>
-		      <property name="expand">False</property>
-		      <property name="fill">False</property>
-		    </packing>
-		  </child>
-
-		  <child>
-		    <widget class="GtkViewport" id="viewport18">
-		      <property name="visible">True</property>
-		      <property name="shadow_type">GTK_SHADOW_IN</property>
-
-		      <child>
-			<widget class="GtkImage" id="details_image_thumbnail">
-			  <property name="visible">True</property>
-			  <property name="xalign">0.5</property>
-			  <property name="yalign">0.5</property>
-			  <property name="xpad">3</property>
-			  <property name="ypad">3</property>
-			</widget>
-		      </child>
-		    </widget>
-		    <packing>
-		      <property name="padding">0</property>
-		      <property name="expand">False</property>
-		      <property name="fill">True</property>
-		    </packing>
-		  </child>
-
-		  <child>
-		    <widget class="GtkButton" id="details_button_set_artwork">
-		      <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>
-
-		      <child>
-			<widget class="GtkAlignment" id="alignment6">
-			  <property name="visible">True</property>
-			  <property name="xalign">0</property>
-			  <property name="yalign">0.5</property>
-			  <property name="xscale">0</property>
-			  <property name="yscale">0</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="GtkHBox" id="hbox190">
-			      <property name="visible">True</property>
-			      <property name="homogeneous">False</property>
-			      <property name="spacing">2</property>
-
-			      <child>
-				<widget class="GtkImage" id="image3072">
-				  <property name="visible">True</property>
-				  <property name="stock">gtk-open</property>
-				  <property name="icon_size">4</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="GtkLabel" id="label341">
-				  <property name="visible">True</property>
-				  <property name="label" translatable="yes">Set Cover Art</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="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>
-			    </widget>
-			  </child>
-			</widget>
-		      </child>
-		    </widget>
-		    <packing>
-		      <property name="padding">6</property>
-		      <property name="expand">False</property>
-		      <property name="fill">False</property>
-		    </packing>
-		  </child>
-
-		  <child>
-		    <widget class="GtkCheckButton" id="details_checkbutton_writethrough">
-		      <property name="border_width">3</property>
-		      <property name="visible">True</property>
-		      <property name="tooltip" translatable="yes">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.</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>
-
-		      <child>
-			<widget class="GtkAlignment" id="alignment7">
-			  <property name="visible">True</property>
-			  <property name="xalign">0.5</property>
-			  <property name="yalign">0.5</property>
-			  <property name="xscale">0</property>
-			  <property name="yscale">0</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="GtkHBox" id="hbox191">
-			      <property name="visible">True</property>
-			      <property name="homogeneous">False</property>
-			      <property name="spacing">2</property>
-
-			      <child>
-				<widget class="GtkImage" id="image3074">
-				  <property name="visible">True</property>
-				  <property name="stock">gtk-dialog-warning</property>
-				  <property name="icon_size">4</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="GtkLabel" id="label342">
-				  <property name="visible">True</property>
-				  <property name="label" translatable="yes">Change all tracks
-simultaneously</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="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>
-			    </widget>
-			  </child>
-			</widget>
-		      </child>
-		    </widget>
-		    <packing>
-		      <property name="padding">6</property>
-		      <property name="expand">False</property>
-		      <property name="fill">False</property>
-		      <property name="pack_type">GTK_PACK_END</property>
-		    </packing>
-		  </child>
-
-		  <child>
-		    <widget class="GtkHSeparator" id="hseparator56">
-		      <property name="visible">True</property>
-		    </widget>
-		    <packing>
-		      <property name="padding">5</property>
-		      <property name="expand">False</property>
-		      <property name="fill">True</property>
-		      <property name="pack_type">GTK_PACK_END</property>
-		    </packing>
-		  </child>
-
-		  <child>
-		    <widget class="GtkButton" id="details_button_remove_artwork">
-		      <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>
-
-		      <child>
-			<widget class="GtkAlignment" id="alignment8">
-			  <property name="visible">True</property>
-			  <property name="xalign">0</property>
-			  <property name="yalign">0.5</property>
-			  <property name="xscale">0</property>
-			  <property name="yscale">0</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="GtkHBox" id="hbox192">
-			      <property name="visible">True</property>
-			      <property name="homogeneous">False</property>
-			      <property name="spacing">2</property>
-
-			      <child>
-				<widget class="GtkImage" id="image3075">
-				  <property name="visible">True</property>
-				  <property name="stock">gtk-delete</property>
-				  <property name="icon_size">4</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="GtkLabel" id="label389">
-				  <property name="visible">True</property>
-				  <property name="label" translatable="yes">Remove Cover Art</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="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>
-			    </widget>
-			  </child>
-			</widget>
-		      </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">2</property>
-		  <property name="expand">False</property>
-		  <property name="fill">False</property>
-		</packing>
-	      </child>
-
-	      <child>
-		<widget class="GtkNotebook" id="details_notebook">
-		  <property name="border_width">2</property>
-		  <property name="visible">True</property>
-		  <property name="can_focus">True</property>
-		  <property name="show_tabs">True</property>
-		  <property name="show_border">True</property>
-		  <property name="tab_pos">GTK_POS_TOP</property>
-		  <property name="scrollable">False</property>
-		  <property name="enable_popup">False</property>
-
-		  <child>
-		    <widget class="GtkScrolledWindow" id="scrolledwindow20">
-		      <property name="visible">True</property>
-		      <property name="can_focus">True</property>
-		      <property name="hscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
-		      <property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
-		      <property name="shadow_type">GTK_SHADOW_IN</property>
-		      <property name="window_placement">GTK_CORNER_TOP_LEFT</property>
-
-		      <child>
-			<widget class="GtkViewport" id="viewport14">
-			  <property name="visible">True</property>
-			  <property name="shadow_type">GTK_SHADOW_IN</property>
-
-			  <child>
-			    <widget class="GtkVBox" id="vbox153">
-			      <property name="border_width">6</property>
-			      <property name="visible">True</property>
-			      <property name="homogeneous">False</property>
-			      <property name="spacing">6</property>
-
-			      <child>
-				<widget class="GtkTable" id="table36">
-				  <property name="visible">True</property>
-				  <property name="n_rows">12</property>
-				  <property name="n_columns">5</property>
-				  <property name="homogeneous">False</property>
-				  <property name="row_spacing">2</property>
-				  <property name="column_spacing">10</property>
-
-				  <child>
-				    <widget class="GtkLabel" id="details_label_2">
-				      <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>
-				      <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="GtkLabel" id="details_label_1">
-				      <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>
-				      <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="GtkLabel" id="details_label_3">
-				      <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>
-				      <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"></property>
-				    </packing>
-				  </child>
-
-				  <child>
-				    <widget class="GtkLabel" id="details_label_6">
-				      <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>
-				      <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"></property>
-				    </packing>
-				  </child>
-
-				  <child>
-				    <widget class="GtkLabel" id="details_label_4">
-				      <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>
-				      <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"></property>
-				    </packing>
-				  </child>
-
-				  <child>
-				    <widget class="GtkEntry" id="details_entry_2">
-				      <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">5</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="details_entry_1">
-				      <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">5</property>
-				      <property name="top_attach">1</property>
-				      <property name="bottom_attach">2</property>
-				      <property name="y_options"></property>
-				    </packing>
-				  </child>
-
-				  <child>
-				    <widget class="GtkEntry" id="details_entry_3">
-				      <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">5</property>
-				      <property name="top_attach">2</property>
-				      <property name="bottom_attach">3</property>
-				      <property name="y_options"></property>
-				    </packing>
-				  </child>
-
-				  <child>
-				    <widget class="GtkEntry" id="details_entry_6">
-				      <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">5</property>
-				      <property name="top_attach">3</property>
-				      <property name="bottom_attach">4</property>
-				      <property name="y_options"></property>
-				    </packing>
-				  </child>
-
-				  <child>
-				    <widget class="GtkEntry" id="details_entry_4">
-				      <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">5</property>
-				      <property name="top_attach">4</property>
-				      <property name="bottom_attach">5</property>
-				      <property name="y_options"></property>
-				    </packing>
-				  </child>
-
-				  <child>
-				    <widget class="GtkLabel" id="details_label_25">
-				      <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>
-				      <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"></property>
-				    </packing>
-				  </child>
-
-				  <child>
-				    <widget class="GtkEntry" id="details_entry_25">
-				      <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">5</property>
-				      <property name="bottom_attach">6</property>
-				      <property name="x_options">fill</property>
-				      <property name="y_options"></property>
-				    </packing>
-				  </child>
-
-				  <child>
-				    <widget class="GtkEntry" id="details_entry_19">
-				      <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">5</property>
-				      <property name="bottom_attach">6</property>
-				      <property name="x_options">fill</property>
-				      <property name="y_options"></property>
-				    </packing>
-				  </child>
-
-				  <child>
-				    <widget class="GtkLabel" id="label379">
-				      <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">4</property>
-				      <property name="right_attach">5</property>
-				      <property name="top_attach">5</property>
-				      <property name="bottom_attach">6</property>
-				      <property name="y_options"></property>
-				    </packing>
-				  </child>
-
-				  <child>
-				    <widget class="GtkLabel" id="details_label_19">
-				      <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>
-				      <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">5</property>
-				      <property name="bottom_attach">6</property>
-				      <property name="x_options">fill</property>
-				      <property name="y_options"></property>
-				    </packing>
-				  </child>
-
-				  <child>
-				    <widget class="GtkLabel" id="label380">
-				      <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">4</property>
-				      <property name="right_attach">5</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="GtkLabel" id="label381">
-				      <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">4</property>
-				      <property name="right_attach">5</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="GtkLabel" id="label382">
-				      <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">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>
-				      <property name="y_options"></property>
-				    </packing>
-				  </child>
-
-				  <child>
-				    <widget class="GtkLabel" id="label383">
-				      <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">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_18">
-				      <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>
-				      <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"></property>
-				    </packing>
-				  </child>
-
-				  <child>
-				    <widget class="GtkLabel" id="details_label_26">
-				      <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>
-				      <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"></property>
-				    </packing>
-				  </child>
-
-				  <child>
-				    <widget class="GtkLabel" id="details_label_14">
-				      <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>
-				      <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="x_options">fill</property>
-				      <property name="y_options"></property>
-				    </packing>
-				  </child>
-
-				  <child>
-				    <widget class="GtkEntry" id="details_entry_18">
-				      <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">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>
-				      <property name="y_options"></property>
-				    </packing>
-				  </child>
-
-				  <child>
-				    <widget class="GtkLabel" id="details_label_11">
-				      <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>
-				      <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="x_options">fill</property>
-				      <property name="y_options"></property>
-				    </packing>
-				  </child>
-
-				  <child>
-				    <widget class="GtkLabel" id="details_label_36">
-				      <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>
-				      <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="x_options">fill</property>
-				      <property name="y_options"></property>
-				    </packing>
-				  </child>
-
-				  <child>
-				    <widget class="GtkLabel" id="details_label_37">
-				      <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>
-				      <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="x_options">fill</property>
-				      <property name="y_options"></property>
-				    </packing>
-				  </child>
-
-				  <child>
-				    <widget class="GtkEntry" id="details_entry_36">
-				      <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">7</property>
-				      <property name="bottom_attach">8</property>
-				      <property name="y_options"></property>
-				    </packing>
-				  </child>
-
-				  <child>
-				    <widget class="GtkEntry" id="details_entry_37">
-				      <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">8</property>
-				      <property name="bottom_attach">9</property>
-				      <property name="y_options"></property>
-				    </packing>
-				  </child>
-
-				  <child>
-				    <widget class="GtkCheckButton" id="details_checkbutton_39">
-				      <property name="visible">True</property>
-				      <property name="can_focus">True</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">0</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="GtkCheckButton" id="details_checkbutton_38">
-				      <property name="visible">True</property>
-				      <property name="can_focus">True</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">2</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="GtkCheckButton" id="details_checkbutton_28">
-				      <property name="visible">True</property>
-				      <property name="can_focus">True</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">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">10</property>
-				      <property name="bottom_attach">11</property>
-				      <property name="x_options">fill</property>
-				      <property name="y_options"></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>
-		    <packing>
-		      <property name="tab_expand">False</property>
-		      <property name="tab_fill">True</property>
-		    </packing>
-		  </child>
-
-		  <child>
-		    <widget class="GtkLabel" id="label343">
-		      <property name="visible">True</property>
-		      <property name="label" translatable="yes">_General</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">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>
-		    </packing>
-		  </child>
-
-		  <child>
-		    <widget class="GtkScrolledWindow" id="scrolledwindow22">
-		      <property name="visible">True</property>
-		      <property name="can_focus">True</property>
-		      <property name="hscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
-		      <property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
-		      <property name="shadow_type">GTK_SHADOW_IN</property>
-		      <property name="window_placement">GTK_CORNER_TOP_LEFT</property>
-
-		      <child>
-			<widget class="GtkViewport" id="viewport16">
-			  <property name="visible">True</property>
-			  <property name="shadow_type">GTK_SHADOW_IN</property>
-
-			  <child>
-			    <widget class="GtkTable" id="table41">
-			      <property name="border_width">6</property>
-			      <property name="visible">True</property>
-			      <property name="n_rows">6</property>
-			      <property name="n_columns">5</property>
-			      <property name="homogeneous">False</property>
-			      <property name="row_spacing">2</property>
-			      <property name="column_spacing">10</property>
-
-			      <child>
-				<widget class="GtkLabel" id="details_label_5">
-				  <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>
-				  <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"></property>
-				</packing>
-			      </child>
-
-			      <child>
-				<widget class="GtkLabel" id="details_label_31">
-				  <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>
-				  <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="GtkLabel" id="details_label_34">
-				  <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>
-				  <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="GtkLabel" id="details_label_33">
-				  <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>
-				  <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"></property>
-				</packing>
-			      </child>
-
-			      <child>
-				<widget class="GtkLabel" id="details_label_30">
-				  <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>
-				  <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"></property>
-				</packing>
-			      </child>
-
-			      <child>
-				<widget class="GtkLabel" id="details_label_32">
-				  <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>
-				  <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"></property>
-				</packing>
-			      </child>
-
-			      <child>
-				<widget class="GtkEntry" id="details_entry_31">
-				  <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">5</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="details_entry_34">
-				  <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">5</property>
-				  <property name="top_attach">1</property>
-				  <property name="bottom_attach">2</property>
-				  <property name="y_options"></property>
-				</packing>
-			      </child>
-
-			      <child>
-				<widget class="GtkEntry" id="details_entry_32">
-				  <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">5</property>
-				  <property name="top_attach">2</property>
-				  <property name="bottom_attach">3</property>
-				  <property name="y_options"></property>
-				</packing>
-			      </child>
-
-			      <child>
-				<widget class="GtkScrolledWindow" id="scrolledwindow25">
-				  <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_ALWAYS</property>
-				  <property name="shadow_type">GTK_SHADOW_IN</property>
-				  <property name="window_placement">GTK_CORNER_TOP_LEFT</property>
-
-				  <child>
-				    <widget class="GtkTextView" id="details_textview_5">
-				      <property name="visible">True</property>
-				      <property name="can_focus">True</property>
-				      <property name="editable">True</property>
-				      <property name="overwrite">False</property>
-				      <property name="accepts_tab">True</property>
-				      <property name="justification">GTK_JUSTIFY_LEFT</property>
-				      <property name="wrap_mode">GTK_WRAP_WORD</property>
-				      <property name="cursor_visible">True</property>
-				      <property name="pixels_above_lines">0</property>
-				      <property name="pixels_below_lines">0</property>
-				      <property name="pixels_inside_wrap">0</property>
-				      <property name="left_margin">0</property>
-				      <property name="right_margin">0</property>
-				      <property name="indent">0</property>
-				      <property name="text"></property>
-				    </widget>
-				  </child>
-				</widget>
-				<packing>
-				  <property name="left_attach">1</property>
-				  <property name="right_attach">5</property>
-				  <property name="top_attach">4</property>
-				  <property name="bottom_attach">5</property>
-				</packing>
-			      </child>
-
-			      <child>
-				<widget class="GtkScrolledWindow" id="scrolledwindow26">
-				  <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_ALWAYS</property>
-				  <property name="shadow_type">GTK_SHADOW_IN</property>
-				  <property name="window_placement">GTK_CORNER_TOP_LEFT</property>
-
-				  <child>
-				    <widget class="GtkTextView" id="details_textview_33">
-				      <property name="visible">True</property>
-				      <property name="can_focus">True</property>
-				      <property name="editable">True</property>
-				      <property name="overwrite">False</property>
-				      <property name="accepts_tab">True</property>
-				      <property name="justification">GTK_JUSTIFY_LEFT</property>
-				      <property name="wrap_mode">GTK_WRAP_WORD</property>
-				      <property name="cursor_visible">True</property>
-				      <property name="pixels_above_lines">0</property>
-				      <property name="pixels_below_lines">0</property>
-				      <property name="pixels_inside_wrap">0</property>
-				      <property name="left_margin">0</property>
-				      <property name="right_margin">0</property>
-				      <property name="indent">0</property>
-				      <property name="text"></property>
-				    </widget>
-				  </child>
-				</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>
-				</packing>
-			      </child>
-
-			      <child>
-				<widget class="GtkScrolledWindow" id="scrolledwindow24">
-				  <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_ALWAYS</property>
-				  <property name="shadow_type">GTK_SHADOW_IN</property>
-				  <property name="window_placement">GTK_CORNER_TOP_LEFT</property>
-
-				  <child>
-				    <widget class="GtkTextView" id="details_textview_30">
-				      <property name="visible">True</property>
-				      <property name="can_focus">True</property>
-				      <property name="editable">True</property>
-				      <property name="overwrite">False</property>
-				      <property name="accepts_tab">True</property>
-				      <property name="justification">GTK_JUSTIFY_LEFT</property>
-				      <property name="wrap_mode">GTK_WRAP_WORD</property>
-				      <property name="cursor_visible">True</property>
-				      <property name="pixels_above_lines">0</property>
-				      <property name="pixels_below_lines">0</property>
-				      <property name="pixels_inside_wrap">0</property>
-				      <property name="left_margin">0</property>
-				      <property name="right_margin">0</property>
-				      <property name="indent">0</property>
-				      <property name="text"></property>
-				    </widget>
-				  </child>
-				</widget>
-				<packing>
-				  <property name="left_attach">1</property>
-				  <property name="right_attach">5</property>
-				  <property name="top_attach">3</property>
-				  <property name="bottom_attach">4</property>
-				</packing>
-			      </child>
-			    </widget>
-			  </child>
-			</widget>
-		      </child>
-		    </widget>
-		    <packing>
-		      <property name="tab_expand">False</property>
-		      <property name="tab_fill">True</property>
-		    </packing>
-		  </child>
-
-		  <child>
-		    <widget class="GtkLabel" id="label345">
-		      <property name="visible">True</property>
-		      <property name="label" translatable="yes">_Podcasts</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">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>
-		    </packing>
-		  </child>
-
-		  <child>
-		    <widget class="GtkScrolledWindow" id="scrolledwindow23">
-		      <property name="visible">True</property>
-		      <property name="can_focus">True</property>
-		      <property name="hscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
-		      <property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
-		      <property name="shadow_type">GTK_SHADOW_IN</property>
-		      <property name="window_placement">GTK_CORNER_TOP_LEFT</property>
-
-		      <child>
-			<widget class="GtkViewport" id="viewport17">
-			  <property name="visible">True</property>
-			  <property name="shadow_type">GTK_SHADOW_IN</property>
-
-			  <child>
-			    <widget class="GtkVBox" id="vbox152">
-			      <property name="visible">True</property>
-			      <property name="homogeneous">False</property>
-			      <property name="spacing">0</property>
-
-			      <child>
-				<widget class="GtkTable" id="table37">
-				  <property name="border_width">6</property>
-				  <property name="visible">True</property>
-				  <property name="n_rows">13</property>
-				  <property name="n_columns">5</property>
-				  <property name="homogeneous">False</property>
-				  <property name="row_spacing">2</property>
-				  <property name="column_spacing">10</property>
-
-				  <child>
-				    <widget class="GtkLabel" id="details_label_20">
-				      <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>
-				      <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"></property>
-				    </packing>
-				  </child>
-
-				  <child>
-				    <widget class="GtkLabel" id="details_label_22">
-				      <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>
-				      <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"></property>
-				    </packing>
-				  </child>
-
-				  <child>
-				    <widget class="GtkLabel" id="details_label_21">
-				      <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>
-				      <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"></property>
-				    </packing>
-				  </child>
-
-				  <child>
-				    <widget class="GtkLabel" id="details_label_27">
-				      <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>
-				      <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="GtkLabel" id="details_label_29">
-				      <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>
-				      <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="details_entry_27">
-				      <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">5</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="details_entry_29">
-				      <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">5</property>
-				      <property name="top_attach">1</property>
-				      <property name="bottom_attach">2</property>
-				      <property name="y_options"></property>
-				    </packing>
-				  </child>
-
-				  <child>
-				    <widget class="GtkEntry" id="details_entry_20">
-				      <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">5</property>
-				      <property name="top_attach">2</property>
-				      <property name="bottom_attach">3</property>
-				      <property name="y_options"></property>
-				    </packing>
-				  </child>
-
-				  <child>
-				    <widget class="GtkEntry" id="details_entry_22">
-				      <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">5</property>
-				      <property name="top_attach">3</property>
-				      <property name="bottom_attach">4</property>
-				      <property name="y_options"></property>
-				    </packing>
-				  </child>
-
-				  <child>
-				    <widget class="GtkEntry" id="details_entry_21">
-				      <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">5</property>
-				      <property name="top_attach">4</property>
-				      <property name="bottom_attach">5</property>
-				      <property name="y_options"></property>
-				    </packing>
-				  </child>
-
-				  <child>
-				    <widget class="GtkLabel" id="label378">
-				      <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">4</property>
-				      <property name="right_attach">5</property>
-				      <property name="top_attach">7</property>
-				      <property name="bottom_attach">8</property>
-				      <property name="y_options"></property>
-				    </packing>
-				  </child>
-
-				  <child>
-				    <widget class="GtkLabel" id="details_label_8">
-				      <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>
-				      <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"></property>
-				    </packing>
-				  </child>
-
-				  <child>
-				    <widget class="GtkLabel" id="details_label_9">
-				      <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>
-				      <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"></property>
-				    </packing>
-				  </child>
-
-				  <child>
-				    <widget class="GtkLabel" id="label386">
-				      <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">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>
-				      <property name="y_options"></property>
-				    </packing>
-				  </child>
-
-				  <child>
-				    <widget class="GtkLabel" id="label387">
-				      <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">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="label388">
-				      <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">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_8">
-				      <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">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="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="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>
-				      <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">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="GtkCheckButton" id="details_checkbutton_12">
-				      <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">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>
-				      <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">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="details_label_15">
-				      <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>
-				      <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">10</property>
-				      <property name="bottom_attach">11</property>
-				      <property name="x_options">fill</property>
-				      <property name="y_options"></property>
-				    </packing>
-				  </child>
-
-				  <child>
-				    <widget class="GtkLabel" id="details_label_23">
-				      <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>
-				      <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="x_options">fill</property>
-				      <property name="y_options"></property>
-				    </packing>
-				  </child>
-
-				  <child>
-				    <widget class="GtkLabel" id="details_label_7">
-				      <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>
-				      <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="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>
-				      <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>
-				      <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>
-				      <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">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_16">
-				      <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>
-				      <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">10</property>
-				      <property name="bottom_attach">11</property>
-				      <property name="x_options">fill</property>
-				      <property name="y_options"></property>
-				    </packing>
-				  </child>
-
-				  <child>
-				    <widget class="GtkLabel" id="details_label_24">
-				      <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>
-				      <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">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">
-				      <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>
-				      <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="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="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">11</property>
-				      <property name="bottom_attach">12</property>
-				      <property name="y_options"></property>
-				    </packing>
-				  </child>
-
-				  <child>
-				    <widget class="GtkEntry" id="details_entry_16">
-				      <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">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">
-				      <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">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_10">
-				      <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">3</property>
-				      <property name="right_attach">4</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>
-				      <property name="y_options"></property>
-				    </packing>
-				  </child>
-
-				  <child>
-				    <widget class="GtkLabel" id="details_label_40">
-				      <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>
-				      <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"></property>
-				    </packing>
-				  </child>
-
-				  <child>
-				    <widget class="GtkEntry" id="details_entry_40">
-				      <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">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>
-				</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>
-			    </widget>
-			  </child>
-			</widget>
-		      </child>
-		    </widget>
-		    <packing>
-		      <property name="tab_expand">False</property>
-		      <property name="tab_fill">True</property>
-		    </packing>
-		  </child>
-
-		  <child>
-		    <widget class="GtkLabel" id="label346">
-		      <property name="visible">True</property>
-		      <property name="label" translatable="yes">_Other</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">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>
-		    </packing>
-		  </child>
-		</widget>
-		<packing>
-		  <property name="padding">0</property>
-		  <property name="expand">True</property>
-		  <property name="fill">True</property>
-		</packing>
-	      </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="hseparator55">
-	  <property name="visible">True</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="hbox187">
-	  <property name="visible">True</property>
-	  <property name="homogeneous">False</property>
-	  <property name="spacing">0</property>
-
-	  <child>
-	    <widget class="GtkHBox" id="hbox186">
-	      <property name="visible">True</property>
-	      <property name="homogeneous">False</property>
-	      <property name="spacing">0</property>
-
-	      <child>
-		<widget class="GtkButton" id="details_button_first">
-		  <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>
-
-		  <child>
-		    <widget class="GtkImage" id="image3068">
-		      <property name="visible">True</property>
-		      <property name="stock">gtk-goto-first</property>
-		      <property name="icon_size">4</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>
-		<packing>
-		  <property name="padding">0</property>
-		  <property name="expand">False</property>
-		  <property name="fill">False</property>
-		</packing>
-	      </child>
-
-	      <child>
-		<widget class="GtkButton" id="details_button_previous">
-		  <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>
-
-		  <child>
-		    <widget class="GtkImage" id="image3069">
-		      <property name="visible">True</property>
-		      <property name="stock">gtk-go-back</property>
-		      <property name="icon_size">4</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>
-		<packing>
-		  <property name="padding">0</property>
-		  <property name="expand">False</property>
-		  <property name="fill">False</property>
-		</packing>
-	      </child>
-
-	      <child>
-		<widget class="GtkLabel" id="details_label_index">
-		  <property name="visible">True</property>
-		  <property name="label">n/n</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">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>
-		  <property name="expand">False</property>
-		  <property name="fill">False</property>
-		</packing>
-	      </child>
-
-	      <child>
-		<widget class="GtkButton" id="details_button_next">
-		  <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>
-
-		  <child>
-		    <widget class="GtkImage" id="image3070">
-		      <property name="visible">True</property>
-		      <property name="stock">gtk-go-forward</property>
-		      <property name="icon_size">4</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>
-		<packing>
-		  <property name="padding">0</property>
-		  <property name="expand">False</property>
-		  <property name="fill">False</property>
-		</packing>
-	      </child>
-
-	      <child>
-		<widget class="GtkButton" id="details_button_last">
-		  <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>
-
-		  <child>
-		    <widget class="GtkImage" id="image3071">
-		      <property name="visible">True</property>
-		      <property name="stock">gtk-goto-last</property>
-		      <property name="icon_size">4</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>
-		<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">True</property>
-	    </packing>
-	  </child>
-
-	  <child>
-	    <widget class="GtkHButtonBox" id="hbuttonbox13">
-	      <property name="visible">True</property>
-	      <property name="layout_style">GTK_BUTTONBOX_END</property>
-	      <property name="spacing">7</property>
-
-	      <child>
-		<widget class="GtkButton" id="details_button_apply">
-		  <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="details_button_cancel">
-		  <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="details_button_ok">
-		  <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>
-	      <property name="pack_type">GTK_PACK_END</property>
-	    </packing>
-	  </child>
-
-	  <child>
-	    <widget class="GtkHButtonBox" id="hbuttonbox14">
-	      <property name="visible">True</property>
-	      <property name="layout_style">GTK_BUTTONBOX_END</property>
-	      <property name="spacing">7</property>
-
-	      <child>
-		<widget class="GtkButton" id="details_button_undo_all">
-		  <property name="visible">True</property>
-		  <property name="can_default">True</property>
-		  <property name="can_focus">True</property>
-		  <property name="relief">GTK_RELIEF_NORMAL</property>
-		  <property name="focus_on_click">True</property>
-
-		  <child>
-		    <widget class="GtkAlignment" id="alignment9">
-		      <property name="visible">True</property>
-		      <property name="xalign">0.5</property>
-		      <property name="yalign">0.5</property>
-		      <property name="xscale">0</property>
-		      <property name="yscale">0</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="GtkHBox" id="hbox193">
-			  <property name="visible">True</property>
-			  <property name="homogeneous">False</property>
-			  <property name="spacing">2</property>
-
-			  <child>
-			    <widget class="GtkImage" id="image3076">
-			      <property name="visible">True</property>
-			      <property name="stock">gtk-undo</property>
-			      <property name="icon_size">4</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="GtkLabel" id="label390">
-			      <property name="visible">True</property>
-			      <property name="label" translatable="yes">_Undo All</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="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>
-			</widget>
-		      </child>
-		    </widget>
-		  </child>
-		</widget>
-	      </child>
-
-	      <child>
-		<widget class="GtkButton" id="details_button_undo_track">
-		  <property name="visible">True</property>
-		  <property name="can_default">True</property>
-		  <property name="can_focus">True</property>
-		  <property name="relief">GTK_RELIEF_NORMAL</property>
-		  <property name="focus_on_click">True</property>
-
-		  <child>
-		    <widget class="GtkAlignment" id="alignment10">
-		      <property name="visible">True</property>
-		      <property name="xalign">0.5</property>
-		      <property name="yalign">0.5</property>
-		      <property name="xscale">0</property>
-		      <property name="yscale">0</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="GtkHBox" id="hbox194">
-			  <property name="visible">True</property>
-			  <property name="homogeneous">False</property>
-			  <property name="spacing">2</property>
-
-			  <child>
-			    <widget class="GtkImage" id="image3077">
-			      <property name="visible">True</property>
-			      <property name="stock">gtk-undo</property>
-			      <property name="icon_size">4</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="GtkLabel" id="label391">
-			      <property name="visible">True</property>
-			      <property name="label" translatable="yes">_Undo Track</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="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>
-			</widget>
-		      </child>
-		    </widget>
-		  </child>
-		</widget>
-	      </child>
-	    </widget>
-	    <packing>
-	      <property name="padding">0</property>
-	      <property name="expand">True</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>
-  </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>

Deleted: gtkpod/trunk/gtkpod.gladep
===================================================================
--- gtkpod/trunk/gtkpod.gladep	2007-06-27 20:59:02 UTC (rev 193)
+++ gtkpod/trunk/gtkpod.gladep	2007-06-27 21:27:12 UTC (rev 194)
@@ -1,8 +0,0 @@
-<?xml version="1.0" standalone="no"?> <!--*- mode: xml -*-->
-<!DOCTYPE glade-project SYSTEM "http://glade.gnome.org/glade-project-2.0.dtd">
-
-<glade-project>
-  <name>Gtkpod</name>
-  <program_name>gtkpod</program_name>
-  <gnome_support>FALSE</gnome_support>
-</glade-project>

Copied: gtkpod/trunk/intltool-extract.in (from rev 193, gtkpod/branches/upstream/current/intltool-extract.in)
===================================================================
--- gtkpod/trunk/intltool-extract.in	                        (rev 0)
+++ gtkpod/trunk/intltool-extract.in	2007-06-27 21:27:12 UTC (rev 194)
@@ -0,0 +1,841 @@
+#!@INTLTOOL_PERL@ -w 
+# -*- Mode: perl; indent-tabs-mode: nil; c-basic-offset: 4  -*-
+
+#
+#  The Intltool Message Extractor
+#
+#  Copyright (C) 2000-2001, 2003 Free Software Foundation.
+#
+#  Intltool 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.
+#
+#  Intltool 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., 675 Mass Ave, Cambridge, MA 02139, 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.
+#
+#  Authors: Kenneth Christiansen <kenneth at gnu.org>
+#           Darin Adler <darin at bentspoon.com>
+#
+
+## Release information
+my $PROGRAM      = "intltool-extract";
+my $PACKAGE      = "intltool";
+my $VERSION      = "0.35.0";
+
+## Loaded modules
+use strict; 
+use File::Basename;
+use Getopt::Long;
+
+## Scalars used by the option stuff
+my $TYPE_ARG	= "0";
+my $LOCAL_ARG	= "0";
+my $HELP_ARG 	= "0";
+my $VERSION_ARG = "0";
+my $UPDATE_ARG  = "0";
+my $QUIET_ARG   = "0";
+my $SRCDIR_ARG	= ".";
+
+my $FILE;
+my $OUTFILE;
+
+my $gettext_type = "";
+my $input;
+my %messages = ();
+my %loc = ();
+my %count = ();
+my %comments = ();
+my $strcount = 0;
+
+my $XMLCOMMENT = "";
+
+## Use this instead of \w for XML files to handle more possible characters.
+my $w = "[-A-Za-z0-9._:]";
+
+## Always print first
+$| = 1;
+
+## Handle options
+GetOptions (
+	    "type=s"     => \$TYPE_ARG,
+            "local|l"    => \$LOCAL_ARG,
+            "help|h"     => \$HELP_ARG,
+            "version|v"  => \$VERSION_ARG,
+            "update"     => \$UPDATE_ARG,
+	    "quiet|q"    => \$QUIET_ARG,
+	    "srcdir=s"	 => \$SRCDIR_ARG,
+            ) or &error;
+
+&split_on_argument;
+
+
+## Check for options. 
+## This section will check for the different options.
+
+sub split_on_argument {
+
+    if ($VERSION_ARG) {
+        &version;
+
+    } elsif ($HELP_ARG) {
+	&help;
+        
+    } elsif ($LOCAL_ARG) {
+        &place_local;
+        &extract;
+
+    } elsif ($UPDATE_ARG) {
+	&place_normal;
+	&extract;
+
+    } elsif (@ARGV > 0) {
+	&place_normal;
+	&message;
+	&extract;
+
+    } else {
+	&help;
+
+    }  
+}    
+
+sub place_normal {
+    $FILE	 = $ARGV[0];
+    $OUTFILE     = "$FILE.h";
+}   
+
+sub place_local {
+    $FILE	 = $ARGV[0];
+    $OUTFILE     = fileparse($FILE, ());
+    if (!-e "tmp/") { 
+        system("mkdir tmp/"); 
+    }
+    $OUTFILE     = "./tmp/$OUTFILE.h"
+}
+
+sub determine_type {
+   if ($TYPE_ARG =~ /^gettext\/(.*)/) {
+	$gettext_type=$1
+   }
+}
+
+## Sub for printing release information
+sub version{
+    print <<_EOF_;
+${PROGRAM} (${PACKAGE}) $VERSION
+Copyright (C) 2000, 2003 Free Software Foundation, Inc.
+Written by Kenneth Christiansen, 2000.
+
+This is free software; see the source for copying conditions.  There is NO
+warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+_EOF_
+    exit;
+}
+
+## Sub for printing usage information
+sub help {
+    print <<_EOF_;
+Usage: ${PROGRAM} [OPTION]... [FILENAME]
+Generates a header file from an XML source file.
+
+It grabs all strings between <_translatable_node> and its end tag in
+XML files. Read manpage (man ${PROGRAM}) for more info.
+
+      --type=TYPE   Specify the file type of FILENAME. Currently supports:
+                    "gettext/glade", "gettext/ini", "gettext/keys"
+                    "gettext/rfc822deb", "gettext/schemas",
+                    "gettext/scheme", "gettext/xml"
+  -l, --local       Writes output into current working directory
+                    (conflicts with --update)
+      --update      Writes output into the same directory the source file 
+                    reside (conflicts with --local)
+      --srcdir      Root of the source tree
+  -v, --version     Output version information and exit
+  -h, --help        Display this help and exit
+  -q, --quiet       Quiet mode
+
+Report bugs to http://bugzilla.gnome.org/ (product name "$PACKAGE")
+or send email to <xml-i18n-tools\@gnome.org>.
+_EOF_
+    exit;
+}
+
+## Sub for printing error messages
+sub error{
+    print STDERR "Try `${PROGRAM} --help' for more information.\n";
+    exit;
+}
+
+sub message {
+    print "Generating C format header file for translation.\n" unless $QUIET_ARG;
+}
+
+sub extract {
+    &determine_type;
+
+    &convert;
+
+    open OUT, ">$OUTFILE";
+    binmode (OUT) if $^O eq 'MSWin32';
+    &msg_write;
+    close OUT;
+
+    print "Wrote $OUTFILE\n" unless $QUIET_ARG;
+}
+
+sub convert {
+
+    ## Reading the file
+    {
+	local (*IN);
+	local $/; #slurp mode
+	open (IN, "<$SRCDIR_ARG/$FILE") || die "can't open $SRCDIR_ARG/$FILE: $!";
+	$input = <IN>;
+    }
+
+    &type_ini if $gettext_type eq "ini";
+    &type_keys if $gettext_type eq "keys";
+    &type_xml if $gettext_type eq "xml";
+    &type_glade if $gettext_type eq "glade";
+    &type_scheme if $gettext_type eq "scheme";
+    &type_schemas  if $gettext_type eq "schemas";
+    &type_rfc822deb  if $gettext_type eq "rfc822deb";
+}
+
+sub entity_decode_minimal
+{
+    local ($_) = @_;
+
+    s/&apos;/'/g; # '
+    s/&quot;/"/g; # "
+    s/&amp;/&/g;
+
+    return $_;
+}
+
+sub entity_decode
+{
+    local ($_) = @_;
+
+    s/&apos;/'/g; # '
+    s/&quot;/"/g; # "
+    s/&amp;/&/g;
+    s/&lt;/</g;
+    s/&gt;/>/g;
+
+    return $_;
+}
+
+sub escape_char
+{
+    return '\"' if $_ eq '"';
+    return '\n' if $_ eq "\n";
+    return '\\' if $_ eq '\\';
+
+    return $_;
+}
+
+sub escape
+{
+    my ($string) = @_;
+    return join "", map &escape_char, split //, $string;
+}
+
+sub type_ini {
+    ### For generic translatable desktop files ###
+    while ($input =~ /^_.*=(.*)$/mg) {
+        $messages{$1} = [];
+    }
+}
+
+sub type_keys {
+    ### For generic translatable mime/keys files ###
+    while ($input =~ /^\s*_\w+=(.*)$/mg) {
+        $messages{$1} = [];
+    }
+}
+
+sub type_xml {
+    ### For generic translatable XML files ###
+    my $tree = readXml($input);
+    parseTree(0, $tree);
+}
+
+sub print_var {
+    my $var = shift;
+    my $vartype = ref $var;
+    
+    if ($vartype =~ /ARRAY/) {
+        my @arr = @{$var};
+        print "[ ";
+        foreach my $el (@arr) {
+            print_var($el);
+            print ", ";
+        }
+        print "] ";
+    } elsif ($vartype =~ /HASH/) {
+        my %hash = %{$var};
+        print "{ ";
+        foreach my $key (keys %hash) {
+            print "$key => ";
+            print_var($hash{$key});
+            print ", ";
+        }
+        print "} ";
+    } else {
+        print $var;
+    }
+}
+
+# Same syntax as getAttributeString in intltool-merge.in.in, similar logic (look for ## differences comment)
+sub getAttributeString
+{
+    my $sub = shift;
+    my $do_translate = shift || 1;
+    my $language = shift || "";
+    my $translate = shift;
+    my $result = "";
+    foreach my $e (reverse(sort(keys %{ $sub }))) {
+	my $key    = $e;
+	my $string = $sub->{$e};
+	my $quote = '"';
+	
+	$string =~ s/^[\s]+//;
+	$string =~ s/[\s]+$//;
+	
+	if ($string =~ /^'.*'$/)
+	{
+	    $quote = "'";
+	}
+	$string =~ s/^['"]//g;
+	$string =~ s/['"]$//g;
+
+        ## differences from intltool-merge.in.in
+	if ($key =~ /^_/) {
+            $comments{entity_decode($string)} = $XMLCOMMENT if $XMLCOMMENT;
+            $messages{entity_decode($string)} = [];
+            $$translate = 2;
+	}
+        ## differences end here from intltool-merge.in.in
+	$result .= " $key=$quote$string$quote";
+    }
+    return $result;
+}
+
+# Verbatim copy from intltool-merge.in.in
+sub getXMLstring
+{
+    my $ref = shift;
+    my $spacepreserve = shift || 0;
+    my @list = @{ $ref };
+    my $result = "";
+
+    my $count = scalar(@list);
+    my $attrs = $list[0];
+    my $index = 1;
+
+    $spacepreserve = 1 if ((exists $attrs->{"xml:space"}) && ($attrs->{"xml:space"} =~ /^["']?preserve["']?$/));
+    $spacepreserve = 0 if ((exists $attrs->{"xml:space"}) && ($attrs->{"xml:space"} =~ /^["']?default["']?$/));
+
+    while ($index < $count) {
+	my $type = $list[$index];
+	my $content = $list[$index+1];
+        if (! $type ) {
+	    # We've got CDATA
+	    if ($content) {
+		# lets strip the whitespace here, and *ONLY* here
+                $content =~ s/\s+/ /gs if (!$spacepreserve);
+		$result .= $content;
+	    }
+	} elsif ( "$type" ne "1" ) {
+	    # We've got another element
+	    $result .= "<$type";
+	    $result .= getAttributeString(@{$content}[0], 0); # no nested translatable elements
+	    if ($content) {
+		my $subresult = getXMLstring($content, $spacepreserve);
+		if ($subresult) {
+		    $result .= ">".$subresult . "</$type>";
+		} else {
+		    $result .= "/>";
+		}
+	    } else {
+		$result .= "/>";
+	    }
+	}
+	$index += 2;
+    }
+    return $result;
+}
+
+# Verbatim copy from intltool-merge.in.in, except for MULTIPLE_OUTPUT handling removed
+# Translate list of nodes if necessary
+sub translate_subnodes
+{
+    my $fh = shift;
+    my $content = shift;
+    my $language = shift || "";
+    my $singlelang = shift || 0;
+    my $spacepreserve = shift || 0;
+
+    my @nodes = @{ $content };
+
+    my $count = scalar(@nodes);
+    my $index = 0;
+    while ($index < $count) {
+        my $type = $nodes[$index];
+        my $rest = $nodes[$index+1];
+        traverse($fh, $type, $rest, $language, $spacepreserve);
+        $index += 2;
+    }
+}
+
+# Based on traverse() in intltool-merge.in.in
+sub traverse
+{
+    my $fh = shift; # unused, to allow us to sync code between -merge and -extract
+    my $nodename = shift;
+    my $content = shift;
+    my $language = shift || "";
+    my $spacepreserve = shift || 0;
+
+    if ($nodename && "$nodename" eq "1") {
+        $XMLCOMMENT = $content;
+    } elsif ($nodename) {
+	# element
+	my @all = @{ $content };
+	my $attrs = shift @all;
+	my $translate = 0;
+	my $outattr = getAttributeString($attrs, 1, $language, \$translate);
+
+	if ($nodename =~ /^_/) {
+	    $translate = 1;
+	    $nodename =~ s/^_//;
+	}
+	my $lookup = '';
+
+        $spacepreserve = 0 if ((exists $attrs->{"xml:space"}) && ($attrs->{"xml:space"} =~ /^["']?default["']?$/));
+        $spacepreserve = 1 if ((exists $attrs->{"xml:space"}) && ($attrs->{"xml:space"} =~ /^["']?preserve["']?$/));
+
+	if ($translate) {
+	    $lookup = getXMLstring($content, $spacepreserve);
+            if (!$spacepreserve) {
+                $lookup =~ s/^\s+//s;
+                $lookup =~ s/\s+$//s;
+            }
+
+	    if ($lookup && $translate != 2) {
+                $comments{$lookup} = $XMLCOMMENT if $XMLCOMMENT;
+                $messages{$lookup} = [];
+            } elsif ($translate == 2) {
+                translate_subnodes($fh, \@all, $language, 1, $spacepreserve);
+	    }
+	} else {
+            $XMLCOMMENT = "";
+	    my $count = scalar(@all);
+	    if ($count > 0) {
+                my $index = 0;
+                while ($index < $count) {
+                    my $type = $all[$index];
+                    my $rest = $all[$index+1];
+                    traverse($fh, $type, $rest, $language, $spacepreserve);
+                    $index += 2;
+                }
+	    }
+	}
+        $XMLCOMMENT = "";
+    }
+}
+
+
+# Verbatim copy from intltool-merge.in.in, $fh for compatibility
+sub parseTree
+{
+    my $fh        = shift;
+    my $ref       = shift;
+    my $language  = shift || "";
+
+    my $name = shift @{ $ref };
+    my $cont = shift @{ $ref };
+
+    while (!$name || "$name" eq "1") {
+        $name = shift @{ $ref };
+        $cont = shift @{ $ref };
+    }
+
+    my $spacepreserve = 0;
+    my $attrs = @{$cont}[0];
+    $spacepreserve = 1 if ((exists $attrs->{"xml:space"}) && ($attrs->{"xml:space"} =~ /^["']?preserve["']?$/));
+
+    traverse($fh, $name, $cont, $language, $spacepreserve);
+}
+
+# Verbatim copy from intltool-merge.in.in
+sub intltool_tree_comment
+{
+    my $expat = shift;
+    my $data  = $expat->original_string();
+    my $clist = $expat->{Curlist};
+    my $pos   = $#$clist;
+
+    $data =~ s/^<!--//s;
+    $data =~ s/-->$//s;
+    push @$clist, 1 => $data;
+}
+
+# Verbatim copy from intltool-merge.in.in
+sub intltool_tree_cdatastart
+{
+    my $expat    = shift;
+    my $clist = $expat->{Curlist};
+    my $pos   = $#$clist;
+
+    push @$clist, 0 => $expat->original_string();
+}
+
+# Verbatim copy from intltool-merge.in.in
+sub intltool_tree_cdataend
+{
+    my $expat    = shift;
+    my $clist = $expat->{Curlist};
+    my $pos   = $#$clist;
+
+    $clist->[$pos] .= $expat->original_string();
+}
+
+# Verbatim copy from intltool-merge.in.in
+sub intltool_tree_char
+{
+    my $expat = shift;
+    my $text  = shift;
+    my $clist = $expat->{Curlist};
+    my $pos   = $#$clist;
+
+    # Use original_string so that we retain escaped entities
+    # in CDATA sections.
+    #
+    if ($pos > 0 and $clist->[$pos - 1] eq '0') {
+        $clist->[$pos] .= $expat->original_string();
+    } else {
+        push @$clist, 0 => $expat->original_string();
+    }
+}
+
+# Verbatim copy from intltool-merge.in.in
+sub intltool_tree_start
+{
+    my $expat    = shift;
+    my $tag      = shift;
+    my @origlist = ();
+
+    # Use original_string so that we retain escaped entities
+    # in attribute values.  We must convert the string to an
+    # @origlist array to conform to the structure of the Tree
+    # Style.
+    #
+    my @original_array = split /\x/, $expat->original_string();
+    my $source         = $expat->original_string();
+
+    # Remove leading tag.
+    #
+    $source =~ s|^\s*<\s*(\S+)||s;
+
+    # Grab attribute key/value pairs and push onto @origlist array.
+    #
+    while ($source)
+    {
+       if ($source =~ /^\s*([\w:-]+)\s*[=]\s*["]/)
+       {
+           $source =~ s|^\s*([\w:-]+)\s*[=]\s*["]([^"]*)["]||s;
+           push @origlist, $1;
+           push @origlist, '"' . $2 . '"';
+       }
+       elsif ($source =~ /^\s*([\w:-]+)\s*[=]\s*[']/)
+       {
+           $source =~ s|^\s*([\w:-]+)\s*[=]\s*[']([^']*)[']||s;
+           push @origlist, $1;
+           push @origlist, "'" . $2 . "'";
+       }
+       else
+       {
+           last;
+       }
+    }
+
+    my $ol = [ { @origlist } ];
+
+    push @{ $expat->{Lists} }, $expat->{Curlist};
+    push @{ $expat->{Curlist} }, $tag => $ol;
+    $expat->{Curlist} = $ol;
+}
+
+# Copied from intltool-merge.in.in and added comment handler.
+sub readXml
+{
+    my $xmldoc = shift || return;
+    my $ret = eval 'require XML::Parser';
+    if(!$ret) {
+        die "You must have XML::Parser installed to run $0\n\n";
+    }
+    my $xp = new XML::Parser(Style => 'Tree');
+    $xp->setHandlers(Char => \&intltool_tree_char);
+    $xp->setHandlers(Start => \&intltool_tree_start);
+    $xp->setHandlers(CdataStart => \&intltool_tree_cdatastart);
+    $xp->setHandlers(CdataEnd => \&intltool_tree_cdataend);
+
+    ## differences from intltool-merge.in.in
+    $xp->setHandlers(Comment => \&intltool_tree_comment);
+    ## differences end here from intltool-merge.in.in
+
+    my $tree = $xp->parse($xmldoc);
+    #print_var($tree);
+
+# <foo><!-- comment --><head id="a">Hello <em>there</em></head><bar>Howdy<ref/></bar>do</foo>
+# would be:
+# [foo, [{}, 1, "comment", head, [{id => "a"}, 0, "Hello ",  em, [{}, 0, "there"]], bar, 
+# [{}, 0, "Howdy",  ref, [{}]], 0, "do" ] ]
+
+    return $tree;
+}
+
+sub type_schemas {
+    ### For schemas XML files ###
+         
+    # FIXME: We should handle escaped < (less than)
+    while ($input =~ /
+                      <locale\ name="C">\s*
+                          (<default>\s*(?:<!--([^>]*?)-->\s*)?(.*?)\s*<\/default>\s*)?
+                          (<short>\s*(?:<!--([^>]*?)-->\s*)?(.*?)\s*<\/short>\s*)?
+                          (<long>\s*(?:<!--([^>]*?)-->\s*)?(.*?)\s*<\/long>\s*)?
+                      <\/locale>
+                     /sgx) {
+        my @totranslate = ($3,$6,$9);
+        my @eachcomment = ($2,$5,$8);
+        foreach (@totranslate) {
+            my $currentcomment = shift @eachcomment;
+            next if !$_;
+            s/\s+/ /g;
+            $messages{entity_decode_minimal($_)} = [];
+            $comments{entity_decode_minimal($_)} = $currentcomment if (defined($currentcomment));
+        }
+    }
+}
+
+sub type_rfc822deb {
+    ### For rfc822-style Debian configuration files ###
+
+    my $lineno = 1;
+    my $type = '';
+    while ($input =~ /\G(.*?)(^|\n)(_+)([^:]+):[ \t]*(.*?)(?=\n\S|$)/sg)
+    {
+        my ($pre, $newline, $underscore, $tag, $text) = ($1, $2, $3, $4, $5);
+        while ($pre =~ m/\n/g)
+        {
+            $lineno ++;
+        }
+        $lineno += length($newline);
+        my @str_list = rfc822deb_split(length($underscore), $text);
+        for my $str (@str_list)
+        {
+            $strcount++;
+            $messages{$str} = [];
+            $loc{$str} = $lineno;
+            $count{$str} = $strcount;
+            my $usercomment = '';
+            while($pre =~ s/(^|\n)#([^\n]*)$//s)
+            {
+                $usercomment = "\n" . $2 . $usercomment;
+            }
+            $comments{$str} = $tag . $usercomment;
+        }
+        $lineno += ($text =~ s/\n//g);
+    }
+}
+
+sub rfc822deb_split {
+    # Debian defines a special way to deal with rfc822-style files:
+    # when a value contain newlines, it consists of
+    #   1.  a short form (first line)
+    #   2.  a long description, all lines begin with a space,
+    #       and paragraphs are separated by a single dot on a line
+    # This routine returns an array of all paragraphs, and reformat
+    # them.
+    # When first argument is 2, the string is a comma separated list of
+    # values.
+    my $type = shift;
+    my $text = shift;
+    $text =~ s/^[ \t]//mg;
+    return (split(/, */, $text, 0)) if $type ne 1;
+    return ($text) if $text !~ /\n/;
+
+    $text =~ s/([^\n]*)\n//;
+    my @list = ($1);
+    my $str = '';
+    for my $line (split (/\n/, $text))
+    {
+        chomp $line;
+        if ($line =~ /^\.\s*$/)
+        {
+            #  New paragraph
+            $str =~ s/\s*$//;
+            push(@list, $str);
+            $str = '';
+        }
+        elsif ($line =~ /^\s/)
+        {
+            #  Line which must not be reformatted
+            $str .= "\n" if length ($str) && $str !~ /\n$/;
+            $line =~ s/\s+$//;
+            $str .= $line."\n";
+        }
+        else
+        {
+            #  Continuation line, remove newline
+            $str .= " " if length ($str) && $str !~ /\n$/;
+            $str .= $line;
+        }
+    }
+    $str =~ s/\s*$//;
+    push(@list, $str) if length ($str);
+    return @list;
+}
+
+sub type_glade {
+    ### For translatable Glade XML files ###
+
+    my $tags = "label|title|text|format|copyright|comments|preview_text|tooltip|message";
+
+    while ($input =~ /<($tags)>([^<]+)<\/($tags)>/sg) {
+	# Glade sometimes uses tags that normally mark translatable things for
+        # little bits of non-translatable content. We work around this by not
+        # translating strings that only includes something like label4 or window1.
+	$messages{entity_decode($2)} = [] unless $2 =~ /^(window|label|dialog)[0-9]+$/;
+    }
+    
+    while ($input =~ /<items>(..[^<]*)<\/items>/sg) {
+	for my $item (split (/\n/, $1)) {
+	    $messages{entity_decode($item)} = [];
+	}
+    }
+
+    ## handle new glade files
+    while ($input =~ /<(property|atkproperty)\s+[^>]*translatable\s*=\s*"yes"(?:\s+[^>]*comments\s*=\s*"([^"]*)")?[^>]*>([^<]+)<\/\1>/sg) {
+	$messages{entity_decode($3)} = [] unless $3 =~ /^(window|label)[0-9]+$/;
+        if (defined($2) and !($3 =~ /^(window|label)[0-9]+$/)) {
+	   $comments{entity_decode($3)} = entity_decode($2) ;
+        }
+    }
+    while ($input =~ /<atkaction\s+action_name="([^>]*)"\s+description="([^>]+)"\/>/sg) {
+        $messages{entity_decode_minimal($2)} = [];
+    }
+}
+
+sub type_scheme {
+    my ($line, $i, $state, $str, $trcomment, $char);
+    for $line (split(/\n/, $input)) {
+        $i = 0;
+        $state = 0; # 0 - nothing, 1 - string, 2 - translatable string
+        while ($i < length($line)) {
+            if (substr($line,$i,1) eq "\"") {
+                if ($state == 2) {
+                    $comments{$str} = $trcomment if ($trcomment);
+                    $messages{$str} = [];
+                    $str = '';
+                    $state = 0; $trcomment = "";
+                } elsif ($state == 1) {
+                    $str = '';
+                    $state = 0; $trcomment = "";
+                } else {
+                    $state = 1;
+                    $str = '';
+                    if ($i>0 && substr($line,$i-1,1) eq '_') {
+                        $state = 2;
+                    }
+                }
+            } elsif (!$state) {
+                if (substr($line,$i,1) eq ";") {
+                    $trcomment = substr($line,$i+1);
+                    $trcomment =~ s/^;*\s*//;
+                    $i = length($line);
+                } elsif ($trcomment && substr($line,$i,1) !~ /\s|\(|\)|_/) {
+                    $trcomment = "";
+                }
+            } else {
+                if (substr($line,$i,1) eq "\\") {
+                    $char = substr($line,$i+1,1);
+                    if ($char ne "\"" && $char ne "\\") {
+                       $str = $str . "\\";
+                    }
+                    $i++;
+                }
+                $str = $str . substr($line,$i,1);
+            }
+            $i++;
+        }
+    }
+}
+
+sub msg_write {
+    my @msgids;
+    if (%count)
+    {
+        @msgids = sort { $count{$a} <=> $count{$b} } keys %count;
+    }
+    else
+    {
+        @msgids = sort keys %messages;
+    }
+    for my $message (@msgids)
+    {
+	my $offsetlines = 1;
+	$offsetlines++ if $message =~ /%/;
+	if (defined ($comments{$message}))
+	{
+		while ($comments{$message} =~ m/\n/g)
+		{
+		    $offsetlines++;
+		}
+	}
+	print OUT "# ".($loc{$message} - $offsetlines).  " \"$FILE\"\n"
+	        if defined $loc{$message};
+   	print OUT "/* ".$comments{$message}." */\n"
+                if defined $comments{$message};
+   	print OUT "/* xgettext:no-c-format */\n" if $message =~ /%/;
+        
+    	my @lines = split (/\n/, $message, -1);
+    	for (my $n = 0; $n < @lines; $n++)
+	{
+            if ($n == 0)
+            {
+ 		print OUT "char *s = N_(\""; 
+            }
+            else
+            {  
+                print OUT "             \""; 
+            }
+
+            print OUT escape($lines[$n]);
+
+            if ($n < @lines - 1)
+            {
+                print OUT "\\n\"\n"; 
+            }
+            else
+            {
+                print OUT "\");\n";  
+	    }
+        }
+    }
+}
+

Copied: gtkpod/trunk/intltool-merge.in (from rev 193, gtkpod/branches/upstream/current/intltool-merge.in)
===================================================================
--- gtkpod/trunk/intltool-merge.in	                        (rev 0)
+++ gtkpod/trunk/intltool-merge.in	2007-06-27 21:27:12 UTC (rev 194)
@@ -0,0 +1,1356 @@
+#!@INTLTOOL_PERL@ -w
+# -*- Mode: perl; indent-tabs-mode: nil; c-basic-offset: 4  -*-
+
+#
+#  The Intltool Message Merger
+#
+#  Copyright (C) 2000, 2003 Free Software Foundation.
+#  Copyright (C) 2000, 2001 Eazel, Inc
+#
+#  Intltool is free software; you can redistribute it and/or
+#  modify it under the terms of the GNU General Public License 
+#  version 2 published by the Free Software Foundation.
+#
+#  Intltool 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., 675 Mass Ave, Cambridge, MA 02139, 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.
+#
+#  Authors:  Maciej Stachowiak <mjs at noisehavoc.org>
+#            Kenneth Christiansen <kenneth at gnu.org>
+#            Darin Adler <darin at bentspoon.com>
+#
+#  Proper XML UTF-8'ification written by Cyrille Chepelov <chepelov at calixo.net>
+#
+
+## Release information
+my $PROGRAM = "intltool-merge";
+my $PACKAGE = "intltool";
+my $VERSION = "0.35.0";
+
+## Loaded modules
+use strict; 
+use Getopt::Long;
+use Text::Wrap;
+use File::Basename;
+
+my $must_end_tag      = -1;
+my $last_depth        = -1;
+my $translation_depth = -1;
+my @tag_stack = ();
+my @entered_tag = ();
+my @translation_strings = ();
+my $leading_space = "";
+
+## Scalars used by the option stuff
+my $HELP_ARG = 0;
+my $VERSION_ARG = 0;
+my $BA_STYLE_ARG = 0;
+my $XML_STYLE_ARG = 0;
+my $KEYS_STYLE_ARG = 0;
+my $DESKTOP_STYLE_ARG = 0;
+my $SCHEMAS_STYLE_ARG = 0;
+my $RFC822DEB_STYLE_ARG = 0;
+my $QUIET_ARG = 0;
+my $PASS_THROUGH_ARG = 0;
+my $UTF8_ARG = 0;
+my $MULTIPLE_OUTPUT = 0;
+my $cache_file;
+
+## Handle options
+GetOptions 
+(
+ "help" => \$HELP_ARG,
+ "version" => \$VERSION_ARG,
+ "quiet|q" => \$QUIET_ARG,
+ "oaf-style|o" => \$BA_STYLE_ARG, ## for compatibility
+ "ba-style|b" => \$BA_STYLE_ARG,
+ "xml-style|x" => \$XML_STYLE_ARG,
+ "keys-style|k" => \$KEYS_STYLE_ARG,
+ "desktop-style|d" => \$DESKTOP_STYLE_ARG,
+ "schemas-style|s" => \$SCHEMAS_STYLE_ARG,
+ "rfc822deb-style|r" => \$RFC822DEB_STYLE_ARG,
+ "pass-through|p" => \$PASS_THROUGH_ARG,
+ "utf8|u" => \$UTF8_ARG,
+ "multiple-output|m" => \$MULTIPLE_OUTPUT,
+ "cache|c=s" => \$cache_file
+ ) or &error;
+
+my $PO_DIR;
+my $FILE;
+my $OUTFILE;
+
+my %po_files_by_lang = ();
+my %translations = ();
+my $iconv = $ENV{"ICONV"} || $ENV{"INTLTOOL_ICONV"} || "@INTLTOOL_ICONV@";
+my $devnull = ($^O eq 'MSWin32' ? 'NUL:' : '/dev/null');
+
+# Use this instead of \w for XML files to handle more possible characters.
+my $w = "[-A-Za-z0-9._:]";
+
+# XML quoted string contents
+my $q = "[^\\\"]*";
+
+## Check for options. 
+
+if ($VERSION_ARG) 
+{
+	&print_version;
+} 
+elsif ($HELP_ARG) 
+{
+	&print_help;
+} 
+elsif ($BA_STYLE_ARG && @ARGV > 2) 
+{
+	&utf8_sanity_check;
+	&preparation;
+	&print_message;
+	&ba_merge_translations;
+	&finalize;
+} 
+elsif ($XML_STYLE_ARG && @ARGV > 2) 
+{
+	&utf8_sanity_check;
+	&preparation;
+	&print_message;
+	&xml_merge_output;
+	&finalize;
+} 
+elsif ($KEYS_STYLE_ARG && @ARGV > 2) 
+{
+	&utf8_sanity_check;
+	&preparation;
+	&print_message;
+	&keys_merge_translations;
+	&finalize;
+} 
+elsif ($DESKTOP_STYLE_ARG && @ARGV > 2) 
+{
+	&utf8_sanity_check;
+	&preparation;
+	&print_message;
+	&desktop_merge_translations;
+	&finalize;
+} 
+elsif ($SCHEMAS_STYLE_ARG && @ARGV > 2) 
+{
+	&utf8_sanity_check;
+	&preparation;
+	&print_message;
+	&schemas_merge_translations;
+	&finalize;
+} 
+elsif ($RFC822DEB_STYLE_ARG && @ARGV > 2) 
+{
+	&preparation;
+	&print_message;
+	&rfc822deb_merge_translations;
+	&finalize;
+} 
+else 
+{
+	&print_help;
+}
+
+exit;
+
+## Sub for printing release information
+sub print_version
+{
+    print <<_EOF_;
+${PROGRAM} (${PACKAGE}) ${VERSION}
+Written by Maciej Stachowiak, Darin Adler and Kenneth Christiansen.
+
+Copyright (C) 2000-2003 Free Software Foundation, Inc.
+Copyright (C) 2000-2001 Eazel, Inc.
+This is free software; see the source for copying conditions.  There is NO
+warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+_EOF_
+    exit;
+}
+
+## Sub for printing usage information
+sub print_help
+{
+    print <<_EOF_;
+Usage: ${PROGRAM} [OPTION]... PO_DIRECTORY FILENAME OUTPUT_FILE
+Generates an output file that includes some localized attributes from an
+untranslated source file.
+
+Mandatory options: (exactly one must be specified)
+  -b, --ba-style         includes translations in the bonobo-activation style
+  -d, --desktop-style    includes translations in the desktop style
+  -k, --keys-style       includes translations in the keys style
+  -s, --schemas-style    includes translations in the schemas style
+  -r, --rfc822deb-style  includes translations in the RFC822 style
+  -x, --xml-style        includes translations in the standard xml style
+
+Other options:
+  -u, --utf8             convert all strings to UTF-8 before merging 
+                         (default for everything except RFC822 style)
+  -p, --pass-through     deprecated, does nothing and issues a warning
+  -m, --multiple-output  output one localized file per locale, instead of 
+	                 a single file containing all localized elements
+  -c, --cache=FILE       specify cache file name
+                         (usually \$top_builddir/po/.intltool-merge-cache)
+  -q, --quiet            suppress most messages
+      --help             display this help and exit
+      --version          output version information and exit
+
+Report bugs to http://bugzilla.gnome.org/ (product name "$PACKAGE")
+or send email to <xml-i18n-tools\@gnome.org>.
+_EOF_
+    exit;
+}
+
+
+## Sub for printing error messages
+sub print_error
+{
+    print STDERR "Try `${PROGRAM} --help' for more information.\n";
+    exit;
+}
+
+
+sub print_message 
+{
+    print "Merging translations into $OUTFILE.\n" unless $QUIET_ARG;
+}
+
+
+sub preparation 
+{
+    $PO_DIR = $ARGV[0];
+    $FILE = $ARGV[1];
+    $OUTFILE = $ARGV[2];
+
+    &gather_po_files;
+    &get_translation_database;
+}
+
+# General-purpose code for looking up translations in .po files
+
+sub po_file2lang
+{
+    my ($tmp) = @_; 
+    $tmp =~ s/^.*\/(.*)\.po$/$1/; 
+    return $tmp; 
+}
+
+sub gather_po_files
+{
+    for my $po_file (glob "$PO_DIR/*.po") {
+	$po_files_by_lang{po_file2lang($po_file)} = $po_file;
+    }
+}
+
+sub get_local_charset
+{
+    my ($encoding) = @_;
+    my $alias_file = $ENV{"G_CHARSET_ALIAS"} || "@INTLTOOL_LIBDIR@/charset.alias";
+
+    # seek character encoding aliases in charset.alias (glib)
+
+    if (open CHARSET_ALIAS, $alias_file) 
+    {
+	while (<CHARSET_ALIAS>) 
+        {
+            next if /^\#/;
+            return $1 if (/^\s*([-._a-zA-Z0-9]+)\s+$encoding\b/i)
+        }
+
+        close CHARSET_ALIAS;
+    }
+
+    # if not found, return input string
+
+    return $encoding;
+}
+
+sub get_po_encoding
+{
+    my ($in_po_file) = @_;
+    my $encoding = "";
+
+    open IN_PO_FILE, $in_po_file or die;
+    while (<IN_PO_FILE>) 
+    {
+        ## example: "Content-Type: text/plain; charset=ISO-8859-1\n"
+        if (/Content-Type\:.*charset=([-a-zA-Z0-9]+)\\n/) 
+        {
+            $encoding = $1; 
+            last;
+        }
+    }
+    close IN_PO_FILE;
+
+    if (!$encoding) 
+    {
+        print STDERR "Warning: no encoding found in $in_po_file. Assuming ISO-8859-1\n" unless $QUIET_ARG;
+        $encoding = "ISO-8859-1";
+    }
+
+    system ("$iconv -f $encoding -t UTF-8 <$devnull 2>$devnull");
+    if ($?) {
+	$encoding = get_local_charset($encoding);
+    }
+
+    return $encoding
+}
+
+sub utf8_sanity_check 
+{
+    print STDERR "Warning: option --pass-through has been removed.\n" if $PASS_THROUGH_ARG;
+    $UTF8_ARG = 1;
+}
+
+sub get_translation_database
+{
+    if ($cache_file) {
+	&get_cached_translation_database;
+    } else {
+        &create_translation_database;
+    }
+}
+
+sub get_newest_po_age
+{
+    my $newest_age;
+
+    foreach my $file (values %po_files_by_lang) 
+    {
+	my $file_age = -M $file;
+	$newest_age = $file_age if !$newest_age || $file_age < $newest_age;
+    }
+
+    $newest_age = 0 if !$newest_age;
+
+    return $newest_age;
+}
+
+sub create_cache
+{
+    print "Generating and caching the translation database\n" unless $QUIET_ARG;
+
+    &create_translation_database;
+
+    open CACHE, ">$cache_file" || die;
+    print CACHE join "\x01", %translations;
+    close CACHE;
+}
+
+sub load_cache 
+{
+    print "Found cached translation database\n" unless $QUIET_ARG;
+
+    my $contents;
+    open CACHE, "<$cache_file" || die;
+    {
+        local $/;
+        $contents = <CACHE>;
+    }
+    close CACHE;
+    %translations = split "\x01", $contents;
+}
+
+sub get_cached_translation_database
+{
+    my $cache_file_age = -M $cache_file;
+    if (defined $cache_file_age) 
+    {
+        if ($cache_file_age <= &get_newest_po_age) 
+        {
+            &load_cache;
+            return;
+        }
+        print "Found too-old cached translation database\n" unless $QUIET_ARG;
+    }
+
+    &create_cache;
+}
+
+sub create_translation_database
+{
+    for my $lang (keys %po_files_by_lang) 
+    {
+    	my $po_file = $po_files_by_lang{$lang};
+
+        if ($UTF8_ARG) 
+        {
+            my $encoding = get_po_encoding ($po_file);
+
+            if (lc $encoding eq "utf-8") 
+            {
+                open PO_FILE, "<$po_file";	
+            } 
+            else 
+            {
+		print "NOTICE: $po_file is not in UTF-8 but $encoding, converting...\n" unless $QUIET_ARG;;
+
+                open PO_FILE, "$iconv -f $encoding -t UTF-8 $po_file|";	
+            }
+        } 
+        else 
+        {
+            open PO_FILE, "<$po_file";	
+        }
+
+	my $nextfuzzy = 0;
+	my $inmsgid = 0;
+	my $inmsgstr = 0;
+	my $msgid = "";
+	my $msgstr = "";
+
+        while (<PO_FILE>) 
+        {
+	    $nextfuzzy = 1 if /^#, fuzzy/;
+       
+	    if (/^msgid "((\\.|[^\\])*)"/ ) 
+            {
+		$translations{$lang, $msgid} = $msgstr if $inmsgstr && $msgid && $msgstr;
+		$msgid = "";
+		$msgstr = "";
+
+		if ($nextfuzzy) {
+		    $inmsgid = 0;
+		} else {
+		    $msgid = unescape_po_string($1);
+		    $inmsgid = 1;
+		}
+		$inmsgstr = 0;
+		$nextfuzzy = 0;
+	    }
+
+	    if (/^msgstr "((\\.|[^\\])*)"/) 
+            {
+	        $msgstr = unescape_po_string($1);
+		$inmsgstr = 1;
+		$inmsgid = 0;
+	    }
+
+	    if (/^"((\\.|[^\\])*)"/) 
+            {
+	        $msgid .= unescape_po_string($1) if $inmsgid;
+	        $msgstr .= unescape_po_string($1) if $inmsgstr;
+	    }
+	}
+	$translations{$lang, $msgid} = $msgstr if $inmsgstr && $msgid && $msgstr;
+    }
+}
+
+sub finalize
+{
+}
+
+sub unescape_one_sequence
+{
+    my ($sequence) = @_;
+
+    return "\\" if $sequence eq "\\\\";
+    return "\"" if $sequence eq "\\\"";
+    return "\n" if $sequence eq "\\n";
+    return "\r" if $sequence eq "\\r";
+    return "\t" if $sequence eq "\\t";
+    return "\b" if $sequence eq "\\b";
+    return "\f" if $sequence eq "\\f";
+    return "\a" if $sequence eq "\\a";
+    return chr(11) if $sequence eq "\\v"; # vertical tab, see ascii(7)
+
+    return chr(hex($1)) if ($sequence =~ /\\x([0-9a-fA-F]{2})/);
+    return chr(oct($1)) if ($sequence =~ /\\([0-7]{3})/);
+
+    # FIXME: Is \0 supported as well? Kenneth and Rodney don't want it, see bug #48489
+
+    return $sequence;
+}
+
+sub unescape_po_string
+{
+    my ($string) = @_;
+
+    $string =~ s/(\\x[0-9a-fA-F]{2}|\\[0-7]{3}|\\.)/unescape_one_sequence($1)/eg;
+
+    return $string;
+}
+
+## NOTE: deal with < - &lt; but not > - &gt;  because it seems its ok to have 
+## > in the entity. For further info please look at #84738.
+sub entity_decode
+{
+    local ($_) = @_;
+
+    s/&apos;/'/g; # '
+    s/&quot;/"/g; # "
+    s/&amp;/&/g;
+    s/&lt;/</g;
+
+    return $_;
+}
+ 
+# entity_encode: (string)
+#
+# Encode the given string to XML format (encode '<' etc).
+
+sub entity_encode
+{
+    my ($pre_encoded) = @_;
+
+    my @list_of_chars = unpack ('C*', $pre_encoded);
+
+    # with UTF-8 we only encode minimalistic
+    return join ('', map (&entity_encode_int_minimalist, @list_of_chars));
+}
+
+sub entity_encode_int_minimalist
+{
+    return "&quot;" if $_ == 34;
+    return "&amp;" if $_ == 38;
+    return "&apos;" if $_ == 39;
+    return "&lt;" if $_ == 60;
+    return chr $_;
+}
+
+sub entity_encoded_translation
+{
+    my ($lang, $string) = @_;
+
+    my $translation = $translations{$lang, $string};
+    return $string if !$translation;
+    return entity_encode ($translation);
+}
+
+## XML (bonobo-activation specific) merge code
+
+sub ba_merge_translations
+{
+    my $source;
+
+    {
+       local $/; # slurp mode
+       open INPUT, "<$FILE" or die "can't open $FILE: $!";
+       $source = <INPUT>;
+       close INPUT;
+    }
+
+    open OUTPUT, ">$OUTFILE" or die "can't open $OUTFILE: $!";
+    # Binmode so that selftest works ok if using a native Win32 Perl...
+    binmode (OUTPUT) if $^O eq 'MSWin32';
+
+    while ($source =~ s|^(.*?)([ \t]*<\s*$w+\s+($w+\s*=\s*"$q"\s*)+/?>)([ \t]*\n)?||s) 
+    {
+        print OUTPUT $1;
+
+        my $node = $2 . "\n";
+
+        my @strings = ();
+        $_ = $node;
+	while (s/(\s)_($w+\s*=\s*"($q)")/$1$2/s) {
+             push @strings, entity_decode($3);
+        }
+	print OUTPUT;
+
+	my %langs;
+	for my $string (@strings) 
+        {
+	    for my $lang (keys %po_files_by_lang) 
+            {
+                $langs{$lang} = 1 if $translations{$lang, $string};
+	    }
+	}
+	
+	for my $lang (sort keys %langs) 
+        {
+	    $_ = $node;
+	    s/(\sname\s*=\s*)"($q)"/$1"$2-$lang"/s;
+	    s/(\s)_($w+\s*=\s*")($q)"/$1 . $2 . entity_encoded_translation($lang, $3) . '"'/seg;
+	    print OUTPUT;
+        }
+    }
+
+    print OUTPUT $source;
+
+    close OUTPUT;
+}
+
+
+## XML (non-bonobo-activation) merge code
+
+
+# Process tag attributes
+#   Only parameter is a HASH containing attributes -> values mapping
+sub getAttributeString
+{
+    my $sub = shift;
+    my $do_translate = shift || 0;
+    my $language = shift || "";
+    my $result = "";
+    my $translate = shift;
+    foreach my $e (reverse(sort(keys %{ $sub }))) {
+	my $key    = $e;
+	my $string = $sub->{$e};
+	my $quote = '"';
+	
+	$string =~ s/^[\s]+//;
+	$string =~ s/[\s]+$//;
+	
+	if ($string =~ /^'.*'$/)
+	{
+	    $quote = "'";
+	}
+	$string =~ s/^['"]//g;
+	$string =~ s/['"]$//g;
+
+	if ($do_translate && $key =~ /^_/) {
+	    $key =~ s|^_||g;
+	    if ($language) {
+		# Handle translation
+		my $decode_string = entity_decode($string);
+		my $translation = $translations{$language, $decode_string};
+		if ($translation) {
+		    $translation = entity_encode($translation);
+		    $string = $translation;
+                }
+                $$translate = 2;
+            } else {
+                 $$translate = 2 if ($translate && (!$$translate)); # watch not to "overwrite" $translate
+            }
+	}
+	
+	$result .= " $key=$quote$string$quote";
+    }
+    return $result;
+}
+
+# Returns a translatable string from XML node, it works on contents of every node in XML::Parser tree
+sub getXMLstring
+{
+    my $ref = shift;
+    my $spacepreserve = shift || 0;
+    my @list = @{ $ref };
+    my $result = "";
+
+    my $count = scalar(@list);
+    my $attrs = $list[0];
+    my $index = 1;
+
+    $spacepreserve = 1 if ((exists $attrs->{"xml:space"}) && ($attrs->{"xml:space"} =~ /^["']?preserve["']?$/));
+    $spacepreserve = 0 if ((exists $attrs->{"xml:space"}) && ($attrs->{"xml:space"} =~ /^["']?default["']?$/));
+
+    while ($index < $count) {
+	my $type = $list[$index];
+	my $content = $list[$index+1];
+        if (! $type ) {
+	    # We've got CDATA
+	    if ($content) {
+		# lets strip the whitespace here, and *ONLY* here
+                $content =~ s/\s+/ /gs if (!$spacepreserve);
+		$result .= $content;
+	    }
+	} elsif ( "$type" ne "1" ) {
+	    # We've got another element
+	    $result .= "<$type";
+	    $result .= getAttributeString(@{$content}[0], 0); # no nested translatable elements
+	    if ($content) {
+		my $subresult = getXMLstring($content, $spacepreserve);
+		if ($subresult) {
+		    $result .= ">".$subresult . "</$type>";
+		} else {
+		    $result .= "/>";
+		}
+	    } else {
+		$result .= "/>";
+	    }
+	}
+	$index += 2;
+    }
+    return $result;
+}
+
+# Translate list of nodes if necessary
+sub translate_subnodes
+{
+    my $fh = shift;
+    my $content = shift;
+    my $language = shift || "";
+    my $singlelang = shift || 0;
+    my $spacepreserve = shift || 0;
+
+    my @nodes = @{ $content };
+
+    my $count = scalar(@nodes);
+    my $index = 0;
+    while ($index < $count) {
+        my $type = $nodes[$index];
+        my $rest = $nodes[$index+1];
+        if ($singlelang) {
+            my $oldMO = $MULTIPLE_OUTPUT;
+            $MULTIPLE_OUTPUT = 1;
+            traverse($fh, $type, $rest, $language, $spacepreserve);
+            $MULTIPLE_OUTPUT = $oldMO;
+        } else {
+            traverse($fh, $type, $rest, $language, $spacepreserve);
+        }
+        $index += 2;
+    }
+}
+
+sub isWellFormedXmlFragment
+{
+    my $ret = eval 'require XML::Parser';
+    if(!$ret) {
+        die "You must have XML::Parser installed to run $0\n\n";
+    } 
+
+    my $fragment = shift;
+    return 0 if (!$fragment);
+
+    $fragment = "<root>$fragment</root>";
+    my $xp = new XML::Parser(Style => 'Tree');
+    my $tree = 0;
+    eval { $tree = $xp->parse($fragment); };
+    return $tree;
+}
+
+sub traverse
+{
+    my $fh = shift; 
+    my $nodename = shift;
+    my $content = shift;
+    my $language = shift || "";
+    my $spacepreserve = shift || 0;
+
+    if (!$nodename) {
+	if ($content =~ /^[\s]*$/) {
+	    $leading_space .= $content;
+	}
+	print $fh $content;
+    } else {
+	# element
+	my @all = @{ $content };
+	my $attrs = shift @all;
+	my $translate = 0;
+	my $outattr = getAttributeString($attrs, 1, $language, \$translate);
+
+	if ($nodename =~ /^_/) {
+	    $translate = 1;
+	    $nodename =~ s/^_//;
+	}
+	my $lookup = '';
+
+        $spacepreserve = 0 if ((exists $attrs->{"xml:space"}) && ($attrs->{"xml:space"} =~ /^["']?default["']?$/));
+        $spacepreserve = 1 if ((exists $attrs->{"xml:space"}) && ($attrs->{"xml:space"} =~ /^["']?preserve["']?$/));
+
+	print $fh "<$nodename", $outattr;
+	if ($translate) {
+	    $lookup = getXMLstring($content, $spacepreserve);
+            if (!$spacepreserve) {
+                $lookup =~ s/^\s+//s;
+                $lookup =~ s/\s+$//s;
+            }
+
+	    if ($lookup || $translate == 2) {
+                my $translation = $translations{$language, $lookup} if isWellFormedXmlFragment($translations{$language, $lookup});
+                if ($MULTIPLE_OUTPUT && ($translation || $translate == 2)) {
+                    $translation = $lookup if (!$translation);
+                    print $fh " xml:lang=\"", $language, "\"" if $language;
+                    print $fh ">";
+                    if ($translate == 2) {
+                        translate_subnodes($fh, \@all, $language, 1, $spacepreserve);
+                    } else {
+                        print $fh $translation;
+                    }
+                    print $fh "</$nodename>";
+
+                    return; # this means there will be no same translation with xml:lang="$language"...
+                            # if we want them both, just remove this "return"
+                } else {
+                    print $fh ">";
+                    if ($translate == 2) {
+                        translate_subnodes($fh, \@all, $language, 1, $spacepreserve);
+                    } else {
+                        print $fh $lookup;
+                    }
+                    print $fh "</$nodename>";
+                }
+	    } else {
+		print $fh "/>";
+	    }
+
+	    for my $lang (sort keys %po_files_by_lang) {
+                    if ($MULTIPLE_OUTPUT && $lang ne "$language") {
+                        next;
+                    }
+		    if ($lang) {
+                        # Handle translation
+                        #
+                        my $translate = 0;
+                        my $localattrs = getAttributeString($attrs, 1, $lang, \$translate);
+                        my $translation = $translations{$lang, $lookup} if isWellFormedXmlFragment($translations{$lang, $lookup});
+                        if ($translate && !$translation) {
+                            $translation = $lookup;
+                        }
+
+                        if ($translation || $translate) {
+			    print $fh "\n";
+			    $leading_space =~ s/.*\n//g;
+			    print $fh $leading_space;
+ 			    print $fh "<", $nodename, " xml:lang=\"", $lang, "\"", $localattrs, ">";
+                            if ($translate == 2) {
+                               translate_subnodes($fh, \@all, $lang, 1, $spacepreserve);
+                            } else {
+                                print $fh $translation;
+                            }
+                            print $fh "</$nodename>";
+			}
+                    }
+	    }
+
+	} else {
+	    my $count = scalar(@all);
+	    if ($count > 0) {
+		print $fh ">";
+                my $index = 0;
+                while ($index < $count) {
+                    my $type = $all[$index];
+                    my $rest = $all[$index+1];
+                    traverse($fh, $type, $rest, $language, $spacepreserve);
+                    $index += 2;
+                }
+		print $fh "</$nodename>";
+	    } else {
+		print $fh "/>";
+	    }
+	}
+    }
+}
+
+sub intltool_tree_comment
+{
+    my $expat = shift;
+    my $data  = shift;
+    my $clist = $expat->{Curlist};
+    my $pos   = $#$clist;
+
+    push @$clist, 1 => $data;
+}
+
+sub intltool_tree_cdatastart
+{
+    my $expat    = shift;
+    my $clist = $expat->{Curlist};
+    my $pos   = $#$clist;
+
+    push @$clist, 0 => $expat->original_string();
+}
+
+sub intltool_tree_cdataend
+{
+    my $expat    = shift;
+    my $clist = $expat->{Curlist};
+    my $pos   = $#$clist;
+
+    $clist->[$pos] .= $expat->original_string();
+}
+
+sub intltool_tree_char
+{
+    my $expat = shift;
+    my $text  = shift;
+    my $clist = $expat->{Curlist};
+    my $pos   = $#$clist;
+
+    # Use original_string so that we retain escaped entities
+    # in CDATA sections.
+    #
+    if ($pos > 0 and $clist->[$pos - 1] eq '0') {
+        $clist->[$pos] .= $expat->original_string();
+    } else {
+        push @$clist, 0 => $expat->original_string();
+    }
+}
+
+sub intltool_tree_start
+{
+    my $expat    = shift;
+    my $tag      = shift;
+    my @origlist = ();
+
+    # Use original_string so that we retain escaped entities
+    # in attribute values.  We must convert the string to an
+    # @origlist array to conform to the structure of the Tree
+    # Style.
+    #
+    my @original_array = split /\x/, $expat->original_string();
+    my $source         = $expat->original_string();
+
+    # Remove leading tag.
+    #
+    $source =~ s|^\s*<\s*(\S+)||s;
+
+    # Grab attribute key/value pairs and push onto @origlist array.
+    #
+    while ($source)
+    {
+       if ($source =~ /^\s*([\w:-]+)\s*[=]\s*["]/)
+       {
+           $source =~ s|^\s*([\w:-]+)\s*[=]\s*["]([^"]*)["]||s;
+           push @origlist, $1;
+           push @origlist, '"' . $2 . '"';
+       }
+       elsif ($source =~ /^\s*([\w:-]+)\s*[=]\s*[']/)
+       {
+           $source =~ s|^\s*([\w:-]+)\s*[=]\s*[']([^']*)[']||s;
+           push @origlist, $1;
+           push @origlist, "'" . $2 . "'";
+       }
+       else
+       {
+           last;
+       }
+    }
+
+    my $ol = [ { @origlist } ];
+
+    push @{ $expat->{Lists} }, $expat->{Curlist};
+    push @{ $expat->{Curlist} }, $tag => $ol;
+    $expat->{Curlist} = $ol;
+}
+
+sub readXml
+{
+    my $filename = shift || return;
+    if(!-f $filename) {
+        die "ERROR Cannot find filename: $filename\n";
+    }
+
+    my $ret = eval 'require XML::Parser';
+    if(!$ret) {
+        die "You must have XML::Parser installed to run $0\n\n";
+    } 
+    my $xp = new XML::Parser(Style => 'Tree');
+    $xp->setHandlers(Char => \&intltool_tree_char);
+    $xp->setHandlers(Start => \&intltool_tree_start);
+    $xp->setHandlers(CdataStart => \&intltool_tree_cdatastart);
+    $xp->setHandlers(CdataEnd => \&intltool_tree_cdataend);
+    my $tree = $xp->parsefile($filename);
+
+# <foo><head id="a">Hello <em>there</em></head><bar>Howdy<ref/></bar>do</foo>
+# would be:
+# [foo, [{}, head, [{id => "a"}, 0, "Hello ",  em, [{}, 0, "there"]], bar, [{},
+# 0, "Howdy",  ref, [{}]], 0, "do" ] ]
+
+    return $tree;
+}
+
+sub print_header
+{
+    my $infile = shift;
+    my $fh = shift;
+    my $source;
+
+    if(!-f $infile) {
+        die "ERROR Cannot find filename: $infile\n";
+    }
+
+    print $fh qq{<?xml version="1.0" encoding="UTF-8"?>\n};
+    {
+        local $/;
+        open DOCINPUT, "<${FILE}" or die;
+        $source = <DOCINPUT>;
+        close DOCINPUT;
+    }
+    if ($source =~ /(<!DOCTYPE.*\[.*\]\s*>)/s)
+    {
+        print $fh "$1\n";
+    }
+    elsif ($source =~ /(<!DOCTYPE[^>]*>)/s)
+    {
+        print $fh "$1\n";
+    }
+}
+
+sub parseTree
+{
+    my $fh        = shift;
+    my $ref       = shift;
+    my $language  = shift || "";
+
+    my $name = shift @{ $ref };
+    my $cont = shift @{ $ref };
+    
+    while (!$name || "$name" eq "1") {
+        $name = shift @{ $ref };
+        $cont = shift @{ $ref };
+    }
+
+    my $spacepreserve = 0;
+    my $attrs = @{$cont}[0];
+    $spacepreserve = 1 if ((exists $attrs->{"xml:space"}) && ($attrs->{"xml:space"} =~ /^["']?preserve["']?$/));
+
+    traverse($fh, $name, $cont, $language, $spacepreserve);
+}
+
+sub xml_merge_output
+{
+    my $source;
+
+    if ($MULTIPLE_OUTPUT) {
+        for my $lang (sort keys %po_files_by_lang) {
+	    if ( ! -e $lang ) {
+	        mkdir $lang or die "Cannot create subdirectory $lang: $!\n";
+            }
+            open OUTPUT, ">$lang/$OUTFILE" or die "Cannot open $lang/$OUTFILE: $!\n";
+            binmode (OUTPUT) if $^O eq 'MSWin32';
+            my $tree = readXml($FILE);
+            print_header($FILE, \*OUTPUT);
+            parseTree(\*OUTPUT, $tree, $lang);
+            close OUTPUT;
+            print "CREATED $lang/$OUTFILE\n" unless $QUIET_ARG;
+        }
+    } 
+    open OUTPUT, ">$OUTFILE" or die "Cannot open $OUTFILE: $!\n";
+    binmode (OUTPUT) if $^O eq 'MSWin32';
+    my $tree = readXml($FILE);
+    print_header($FILE, \*OUTPUT);
+    parseTree(\*OUTPUT, $tree);
+    close OUTPUT;
+    print "CREATED $OUTFILE\n" unless $QUIET_ARG;
+}
+
+sub keys_merge_translations
+{
+    open INPUT, "<${FILE}" or die;
+    open OUTPUT, ">${OUTFILE}" or die;
+    binmode (OUTPUT) if $^O eq 'MSWin32';
+
+    while (<INPUT>) 
+    {
+        if (s/^(\s*)_(\w+=(.*))/$1$2/)  
+        {
+	    my $string = $3;
+
+            print OUTPUT;
+
+	    my $non_translated_line = $_;
+
+            for my $lang (sort keys %po_files_by_lang) 
+            {
+		my $translation = $translations{$lang, $string};
+                next if !$translation;
+
+                $_ = $non_translated_line;
+		s/(\w+)=.*/[$lang]$1=$translation/;
+                print OUTPUT;
+            }
+	} 
+        else 
+        {
+            print OUTPUT;
+        }
+    }
+
+    close OUTPUT;
+    close INPUT;
+}
+
+sub desktop_merge_translations
+{
+    open INPUT, "<${FILE}" or die;
+    open OUTPUT, ">${OUTFILE}" or die;
+    binmode (OUTPUT) if $^O eq 'MSWin32';
+
+    while (<INPUT>) 
+    {
+        if (s/^(\s*)_(\w+=(.*))/$1$2/)  
+        {
+	    my $string = $3;
+
+            print OUTPUT;
+
+	    my $non_translated_line = $_;
+
+            for my $lang (sort keys %po_files_by_lang) 
+            {
+                my $translation = $translations{$lang, $string};
+                next if !$translation;
+
+                $_ = $non_translated_line;
+                s/(\w+)=.*/${1}[$lang]=$translation/;
+                print OUTPUT;
+            }
+	} 
+        else 
+        {
+            print OUTPUT;
+        }
+    }
+
+    close OUTPUT;
+    close INPUT;
+}
+
+sub schemas_merge_translations
+{
+    my $source;
+
+    {
+       local $/; # slurp mode
+       open INPUT, "<$FILE" or die "can't open $FILE: $!";
+       $source = <INPUT>;
+       close INPUT;
+    }
+
+    open OUTPUT, ">$OUTFILE" or die;
+    binmode (OUTPUT) if $^O eq 'MSWin32';
+
+    # FIXME: support attribute translations
+
+    # Empty nodes never need translation, so unmark all of them.
+    # For example, <_foo/> is just replaced by <foo/>.
+    $source =~ s|<\s*_($w+)\s*/>|<$1/>|g;
+
+    while ($source =~ s/
+                        (.*?)
+                        (\s+)(<locale\ name="C">(\s*)
+                            (<default>\s*(?:<!--[^>]*?-->\s*)?(.*?)\s*<\/default>)?(\s*)
+                            (<short>\s*(?:<!--[^>]*?-->\s*)?(.*?)\s*<\/short>)?(\s*)
+                            (<long>\s*(?:<!--[^>]*?-->\s*)?(.*?)\s*<\/long>)?(\s*)
+                        <\/locale>)
+                       //sx) 
+    {
+        print OUTPUT $1;
+
+	my $locale_start_spaces = $2 ? $2 : '';
+	my $default_spaces = $4 ? $4 : '';
+	my $short_spaces = $7 ? $7 : '';
+	my $long_spaces = $10 ? $10 : '';
+	my $locale_end_spaces = $13 ? $13 : '';
+	my $c_default_block = $3 ? $3 : '';
+	my $default_string = $6 ? $6 : '';
+	my $short_string = $9 ? $9 : '';
+	my $long_string = $12 ? $12 : '';
+
+	print OUTPUT "$locale_start_spaces$c_default_block";
+
+        $default_string =~ s/\s+/ /g;
+        $default_string = entity_decode($default_string);
+	$short_string =~ s/\s+/ /g;
+	$short_string = entity_decode($short_string);
+	$long_string =~ s/\s+/ /g;
+	$long_string = entity_decode($long_string);
+
+	for my $lang (sort keys %po_files_by_lang) 
+        {
+	    my $default_translation = $translations{$lang, $default_string};
+	    my $short_translation = $translations{$lang, $short_string};
+	    my $long_translation  = $translations{$lang, $long_string};
+
+	    next if (!$default_translation && !$short_translation && 
+                     !$long_translation);
+
+	    print OUTPUT "\n$locale_start_spaces<locale name=\"$lang\">";
+
+        print OUTPUT "$default_spaces";    
+
+        if ($default_translation)
+        {
+            $default_translation = entity_encode($default_translation);
+            print OUTPUT "<default>$default_translation</default>";
+        }
+
+	    print OUTPUT "$short_spaces";
+
+	    if ($short_translation)
+	    {
+			$short_translation = entity_encode($short_translation);
+			print OUTPUT "<short>$short_translation</short>";
+	    }
+
+	    print OUTPUT "$long_spaces";
+
+	    if ($long_translation)
+	    {
+			$long_translation = entity_encode($long_translation);
+			print OUTPUT "<long>$long_translation</long>";
+	    }	    
+
+	    print OUTPUT "$locale_end_spaces</locale>";
+        }
+    }
+
+    print OUTPUT $source;
+
+    close OUTPUT;
+}
+
+sub rfc822deb_merge_translations
+{
+    my %encodings = ();
+    for my $lang (keys %po_files_by_lang) {
+        $encodings{$lang} = ($UTF8_ARG ? 'UTF-8' : get_po_encoding($po_files_by_lang{$lang}));
+    }
+
+    my $source;
+
+    $Text::Wrap::huge = 'overflow';
+    $Text::Wrap::break = qr/\n|\s(?=\S)/;
+
+    {
+       local $/; # slurp mode
+       open INPUT, "<$FILE" or die "can't open $FILE: $!";
+       $source = <INPUT>;
+       close INPUT;
+    }
+
+    open OUTPUT, ">${OUTFILE}" or die;
+    binmode (OUTPUT) if $^O eq 'MSWin32';
+
+    while ($source =~ /(^|\n+)(_*)([^:\s]+)(:[ \t]*)(.*?)(?=\n[\S\n]|$)/sg)
+    {
+	    my $sep = $1;
+	    my $non_translated_line = $3.$4;
+	    my $string = $5;
+	    my $underscore = length($2);
+	    next if $underscore eq 0 && $non_translated_line =~ /^#/;
+	    #  Remove [] dummy strings
+	    my $stripped = $string;
+	    $stripped =~ s/\[\s[^\[\]]*\],/,/g if $underscore eq 2;
+	    $stripped =~ s/\[\s[^\[\]]*\]$//;
+	    $non_translated_line .= $stripped;
+
+	    print OUTPUT $sep.$non_translated_line;
+    
+	    if ($underscore) 
+	    {
+	        my @str_list = rfc822deb_split($underscore, $string);
+
+	        for my $lang (sort keys %po_files_by_lang) 
+                {
+                    my $is_translated = 1;
+                    my $str_translated = '';
+                    my $first = 1;
+                
+                    for my $str (@str_list) 
+                    {
+                        my $translation = $translations{$lang, $str};
+                    
+                        if (!$translation) 
+                        {
+                            $is_translated = 0;
+                            last;
+                        }
+
+	                #  $translation may also contain [] dummy
+                        #  strings, mostly to indicate an empty string
+	                $translation =~ s/\[\s[^\[\]]*\]$//;
+                        
+                        if ($first) 
+                        {
+                            if ($underscore eq 2)
+                            {
+                                $str_translated .= $translation;
+                            }
+                            else
+                            {
+                                $str_translated .=
+                                    Text::Tabs::expand($translation) .
+                                    "\n";
+                            }
+                        } 
+                        else 
+                        {
+                            if ($underscore eq 2)
+                            {
+                                $str_translated .= ', ' . $translation;
+                            }
+                            else
+                            {
+                                $str_translated .= Text::Tabs::expand(
+                                    Text::Wrap::wrap(' ', ' ', $translation)) .
+                                    "\n .\n";
+                            }
+                        }
+                        $first = 0;
+
+                        #  To fix some problems with Text::Wrap::wrap
+                        $str_translated =~ s/(\n )+\n/\n .\n/g;
+                    }
+                    next unless $is_translated;
+
+                    $str_translated =~ s/\n \.\n$//;
+                    $str_translated =~ s/\s+$//;
+
+                    $_ = $non_translated_line;
+                    s/^(\w+):\s*.*/$sep${1}-$lang.$encodings{$lang}: $str_translated/s;
+                    print OUTPUT;
+                }
+	    }
+    }
+    print OUTPUT "\n";
+
+    close OUTPUT;
+    close INPUT;
+}
+
+sub rfc822deb_split 
+{
+    # Debian defines a special way to deal with rfc822-style files:
+    # when a value contain newlines, it consists of
+    #   1.  a short form (first line)
+    #   2.  a long description, all lines begin with a space,
+    #       and paragraphs are separated by a single dot on a line
+    # This routine returns an array of all paragraphs, and reformat
+    # them.
+    # When first argument is 2, the string is a comma separated list of
+    # values.
+    my $type = shift;
+    my $text = shift;
+    $text =~ s/^[ \t]//mg;
+    return (split(/, */, $text, 0)) if $type ne 1;
+    return ($text) if $text !~ /\n/;
+
+    $text =~ s/([^\n]*)\n//;
+    my @list = ($1);
+    my $str = '';
+
+    for my $line (split (/\n/, $text)) 
+    {
+        chomp $line;
+        if ($line =~ /^\.\s*$/)
+        {
+            #  New paragraph
+            $str =~ s/\s*$//;
+            push(@list, $str);
+            $str = '';
+        } 
+        elsif ($line =~ /^\s/) 
+        {
+            #  Line which must not be reformatted
+            $str .= "\n" if length ($str) && $str !~ /\n$/;
+            $line =~ s/\s+$//;
+            $str .= $line."\n";
+        } 
+        else 
+        {
+            #  Continuation line, remove newline
+            $str .= " " if length ($str) && $str !~ /\n$/;
+            $str .= $line;
+        }
+    }
+
+    $str =~ s/\s*$//;
+    push(@list, $str) if length ($str);
+
+    return @list;
+}
+

Copied: gtkpod/trunk/intltool-update.in (from rev 193, gtkpod/branches/upstream/current/intltool-update.in)
===================================================================
--- gtkpod/trunk/intltool-update.in	                        (rev 0)
+++ gtkpod/trunk/intltool-update.in	2007-06-27 21:27:12 UTC (rev 194)
@@ -0,0 +1,1089 @@
+#!@INTLTOOL_PERL@ -w
+# -*- Mode: perl; indent-tabs-mode: nil; c-basic-offset: 4  -*-
+
+#
+#  The Intltool Message Updater
+#
+#  Copyright (C) 2000-2003 Free Software Foundation.
+#
+#  Intltool is free software; you can redistribute it and/or
+#  modify it under the terms of the GNU General Public License 
+#  version 2 published by the Free Software Foundation.
+#
+#  Intltool 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., 675 Mass Ave, Cambridge, MA 02139, 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.
+#
+#  Authors: Kenneth Christiansen <kenneth at gnu.org>
+#           Maciej Stachowiak
+#           Darin Adler <darin at bentspoon.com>
+
+## Release information
+my $PROGRAM = "intltool-update";
+my $VERSION = "0.35.0";
+my $PACKAGE = "intltool";
+
+## Loaded modules
+use strict;
+use Getopt::Long;
+use Cwd;
+use File::Copy;
+use File::Find;
+
+## Scalars used by the option stuff
+my $HELP_ARG 	   = 0;
+my $VERSION_ARG    = 0;
+my $DIST_ARG	   = 0;
+my $POT_ARG	   = 0;
+my $HEADERS_ARG    = 0;
+my $MAINTAIN_ARG   = 0;
+my $REPORT_ARG     = 0;
+my $VERBOSE	   = 0;
+my $GETTEXT_PACKAGE = "";
+my $OUTPUT_FILE    = "";
+
+my @languages;
+my %varhash = ();
+my %po_files_by_lang = ();
+
+# Regular expressions to categorize file types.
+# FIXME: Please check if the following is correct
+
+my $xml_support =
+"xml(?:\\.in)*|".	# http://www.w3.org/XML/ (Note: .in is not required)
+"ui|".			# Bonobo specific - User Interface desc. files
+"lang|".		# ?
+"glade2?(?:\\.in)*|".	# Glade specific - User Interface desc. files (Note: .in is not required)
+"scm(?:\\.in)*|".	# ? (Note: .in is not required)
+"oaf(?:\\.in)+|".	# DEPRECATED: Replaces by Bonobo .server files 
+"etspec|".		# ?
+"server(?:\\.in)+|".	# Bonobo specific
+"sheet(?:\\.in)+|".	# ?
+"schemas(?:\\.in)+|".	# GConf specific
+"pong(?:\\.in)+|".	# DEPRECATED: PONG is not used [by GNOME] any longer.
+"kbd(?:\\.in)+";	# GOK specific. 
+
+my $ini_support =
+"icon(?:\\.in)+|".	# http://www.freedesktop.org/Standards/icon-theme-spec
+"desktop(?:\\.in)+|".	# http://www.freedesktop.org/Standards/menu-spec
+"caves(?:\\.in)+|".	# GNOME Games specific
+"directory(?:\\.in)+|".	# http://www.freedesktop.org/Standards/menu-spec
+"soundlist(?:\\.in)+|".	# GNOME specific
+"keys(?:\\.in)+|".	# GNOME Mime database specific
+"theme(?:\\.in)+|".	# http://www.freedesktop.org/Standards/icon-theme-spec
+"service(?:\\.in)+";    # DBus specific
+
+my $buildin_gettext_support = 
+"c|y|cs|cc|cpp|c\\+\\+|h|hh|gob|py";
+
+## Always flush buffer when printing
+$| = 1;
+
+## Sometimes the source tree will be rooted somewhere else.
+my $SRCDIR = ".";
+my $POTFILES_in;
+
+$SRCDIR = $ENV{"srcdir"} if $ENV{"srcdir"};
+$POTFILES_in = "<$SRCDIR/POTFILES.in";
+
+my $devnull = ($^O eq 'MSWin32' ? 'NUL:' : '/dev/null');
+
+## Handle options
+GetOptions 
+(
+ "help" 	       => \$HELP_ARG,
+ "version" 	       => \$VERSION_ARG,
+ "dist|d"	       => \$DIST_ARG,
+ "pot|p"	       => \$POT_ARG,
+ "headers|s"	       => \$HEADERS_ARG,
+ "maintain|m"	       => \$MAINTAIN_ARG,
+ "report|r"	       => \$REPORT_ARG,
+ "verbose|x"	       => \$VERBOSE,
+ "gettext-package|g=s" => \$GETTEXT_PACKAGE,
+ "output-file|o=s"     => \$OUTPUT_FILE,
+ ) or &Console_WriteError_InvalidOption;
+
+&Console_Write_IntltoolHelp if $HELP_ARG;
+&Console_Write_IntltoolVersion if $VERSION_ARG;
+
+my $arg_count = ($DIST_ARG > 0)
+    + ($POT_ARG > 0)
+    + ($HEADERS_ARG > 0)
+    + ($MAINTAIN_ARG > 0)
+    + ($REPORT_ARG > 0);
+
+&Console_Write_IntltoolHelp if $arg_count > 1;
+
+# --version and --help don't require a module name
+my $MODULE = $GETTEXT_PACKAGE || &FindPackageName || "unknown";
+
+if ($POT_ARG)
+{
+    &GenerateHeaders;
+    &GeneratePOTemplate;
+}
+elsif ($HEADERS_ARG)
+{
+    &GenerateHeaders;
+}
+elsif ($MAINTAIN_ARG)
+{
+    &FindLeftoutFiles;
+}
+elsif ($REPORT_ARG)
+{
+    &GenerateHeaders;
+    &GeneratePOTemplate;
+    &Console_Write_CoverageReport;
+}
+elsif ((defined $ARGV[0]) && $ARGV[0] =~ /^[a-z]/)
+{
+    my $lang = $ARGV[0];
+
+    ## Report error if the language file supplied
+    ## to the command line is non-existent
+    &Console_WriteError_NotExisting("$SRCDIR/$lang.po")
+        if ! -s "$SRCDIR/$lang.po";
+
+    if (!$DIST_ARG)
+    {
+	print "Working, please wait..." if $VERBOSE;
+	&GenerateHeaders;
+	&GeneratePOTemplate;
+    }
+    &POFile_Update ($lang, $OUTPUT_FILE);
+    &Console_Write_TranslationStatus ($lang, $OUTPUT_FILE);
+} 
+else 
+{
+    &Console_Write_IntltoolHelp;
+}
+
+exit;
+
+#########
+
+sub Console_Write_IntltoolVersion
+{
+    print <<_EOF_;
+${PROGRAM} (${PACKAGE}) $VERSION
+Written by Kenneth Christiansen, Maciej Stachowiak, and Darin Adler.
+
+Copyright (C) 2000-2003 Free Software Foundation, Inc.
+This is free software; see the source for copying conditions.  There is NO
+warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+_EOF_
+    exit;
+}
+
+sub Console_Write_IntltoolHelp
+{
+    print <<_EOF_;
+Usage: ${PROGRAM} [OPTION]... LANGCODE
+Updates PO template files and merge them with the translations.
+
+Mode of operation (only one is allowed):
+  -p, --pot                   generate the PO template only
+  -s, --headers               generate the header files in POTFILES.in
+  -m, --maintain              search for left out files from POTFILES.in
+  -r, --report                display a status report for the module
+  -d, --dist                  merge LANGCODE.po with existing PO template
+
+Extra options:
+  -g, --gettext-package=NAME  override PO template name, useful with --pot
+  -o, --output-file=FILE      write merged translation to FILE
+  -x, --verbose               display lots of feedback
+      --help                  display this help and exit
+      --version               output version information and exit
+
+Examples of use:
+${PROGRAM} --pot    just create a new PO template
+${PROGRAM} xy       create new PO template and merge xy.po with it
+
+Report bugs to http://bugzilla.gnome.org/ (product name "$PACKAGE")
+or send email to <xml-i18n-tools\@gnome.org>.
+_EOF_
+    exit;
+}
+
+sub echo_n
+{
+    my $str = shift;
+    my $ret = `echo "$str"`;
+
+    $ret =~ s/\n$//; # do we need the "s" flag?
+
+    return $ret;
+}
+
+sub POFile_DetermineType ($) 
+{
+   my $type = $_;
+   my $gettext_type;
+
+   my $xml_regex     = "(?:" . $xml_support . ")";
+   my $ini_regex     = "(?:" . $ini_support . ")";
+   my $buildin_regex = "(?:" . $buildin_gettext_support . ")";
+
+   if ($type =~ /\[type: gettext\/([^\]].*)]/) 
+   {
+	$gettext_type=$1;
+   }
+   elsif ($type =~ /schemas(\.in)+$/) 
+   {
+	$gettext_type="schemas";
+   }
+   elsif ($type =~ /glade2?(\.in)*$/) 
+   {
+       $gettext_type="glade";
+   }
+   elsif ($type =~ /scm(\.in)*$/) 
+   {
+       $gettext_type="scheme";
+   }
+   elsif ($type =~ /keys(\.in)+$/) 
+   {
+       $gettext_type="keys";
+   }
+
+   # bucket types
+
+   elsif ($type =~ /$xml_regex$/) 
+   {
+       $gettext_type="xml";
+   }
+   elsif ($type =~ /$ini_regex$/) 
+   { 
+       $gettext_type="ini";
+   }
+   elsif ($type =~ /$buildin_regex$/) 
+   {
+       $gettext_type="buildin";
+   }
+   else
+   { 
+       $gettext_type="unknown"; 
+   }
+
+   return "gettext\/$gettext_type";
+}
+
+sub TextFile_DetermineEncoding ($) 
+{
+    my $gettext_code="ASCII"; # All files are ASCII by default
+    my $filetype=`file $_ | cut -d ' ' -f 2`;
+
+    if ($? eq "0")
+    {
+	if ($filetype =~ /^(ISO|UTF)/)
+	{
+	    chomp ($gettext_code = $filetype);
+	}
+	elsif ($filetype =~ /^XML/)
+	{
+	    $gettext_code="UTF-8"; # We asume that .glade and other .xml files are UTF-8
+	}
+    }
+
+    return $gettext_code;
+}
+
+sub isNotValidMissing
+{
+    my ($file) = @_;
+
+    return if $file =~ /^\{arch\}\/.*$/;
+    return if $file =~ /^$varhash{"PACKAGE"}-$varhash{"VERSION"}\/.*$/;
+}
+
+sub FindLeftoutFiles
+{
+    my (@buf_i18n_plain,
+	@buf_i18n_xml,
+	@buf_i18n_xml_unmarked,
+	@buf_i18n_ini,
+	@buf_potfiles,
+	@buf_potfiles_ignore,
+	@buf_allfiles,
+	@buf_allfiles_sorted,
+	@buf_potfiles_sorted
+    );
+
+    ## Search and find all translatable files
+    find sub { 
+	push @buf_i18n_plain,        "$File::Find::name" if /\.($buildin_gettext_support)$/;
+	push @buf_i18n_xml,          "$File::Find::name" if /\.($xml_support)$/;
+	push @buf_i18n_ini,          "$File::Find::name" if /\.($ini_support)$/;
+	push @buf_i18n_xml_unmarked, "$File::Find::name" if /\.(schemas(\.in)+)$/;
+	}, "..";
+
+
+    open POTFILES, $POTFILES_in or die "$PROGRAM:  there's no POTFILES.in!\n";
+    @buf_potfiles = grep !/^(#|\s*$)/, <POTFILES>;
+    close POTFILES;
+
+    foreach (@buf_potfiles) {
+	s/^\[.*]\s*//;
+    }
+
+    print "Searching for missing translatable files...\n" if $VERBOSE;
+
+    ## Check if we should ignore some found files, when
+    ## comparing with POTFILES.in
+    foreach my $ignore ("POTFILES.skip", "POTFILES.ignore")
+    {
+	(-s $ignore) or next;
+
+	if ("$ignore" eq "POTFILES.ignore")
+	{
+	    print "The usage of POTFILES.ignore is deprecated. Please consider moving the\n".
+		  "content of this file to POTFILES.skip.\n";
+	}
+
+	print "Found $ignore: Ignoring files...\n" if $VERBOSE;
+	open FILE, "<$ignore" or die "ERROR: Failed to open $ignore!\n";
+	    
+	while (<FILE>)
+	{
+	    push @buf_potfiles_ignore, $_ unless /^(#|\s*$)/;
+	}
+	close FILE;
+
+	@buf_potfiles = (@buf_potfiles_ignore, @buf_potfiles);
+    }
+
+    foreach my $file (@buf_i18n_plain)
+    {
+	my $in_comment = 0;
+	my $in_macro = 0;
+
+	open FILE, "<$file";
+	while (<FILE>)
+	{
+	    # Handle continued multi-line comment.
+	    if ($in_comment)
+	    {
+		next unless s-.*\*/--;
+		$in_comment = 0;
+	    }
+
+	    # Handle continued macro.
+	    if ($in_macro)
+	    {
+		$in_macro = 0 unless /\\$/;
+		next;
+	    }
+
+	    # Handle start of macro (or any preprocessor directive).
+	    if (/^\s*\#/)
+	    {
+		$in_macro = 1 if /^([^\\]|\\.)*\\$/;
+		next;
+	    }
+
+	    # Handle comments and quoted text.
+	    while (m-(/\*|//|\'|\")-) # \' and \" keep emacs perl mode happy
+	    {
+		my $match = $1;
+		if ($match eq "/*")
+		{
+		    if (!s-/\*.*?\*/--)
+		    {
+			s-/\*.*--;
+			$in_comment = 1;
+		    }
+		}
+		elsif ($match eq "//")
+		{
+		    s-//.*--;
+		}
+		else # ' or "
+		{
+		    if (!s-$match([^\\]|\\.)*?$match-QUOTEDTEXT-)
+		    {
+			warn "mismatched quotes at line $. in $file\n";
+			s-$match.*--;
+		    }
+		}
+	    }	    
+
+	    if (/\.GetString ?\(QUOTEDTEXT/)
+	    {
+                if (defined isNotValidMissing (unpack("x3 A*", $file))) {
+                    ## Remove the first 3 chars and add newline
+                    push @buf_allfiles, unpack("x3 A*", $file) . "\n";
+                }
+		last;
+	    }
+
+	    if (/_\(QUOTEDTEXT/)
+	    {
+                if (defined isNotValidMissing (unpack("x3 A*", $file))) {
+                    ## Remove the first 3 chars and add newline
+                    push @buf_allfiles, unpack("x3 A*", $file) . "\n";
+                }
+		last;
+	    }
+	}
+	close FILE;
+    }
+
+    foreach my $file (@buf_i18n_xml) 
+    {
+	open FILE, "<$file";
+	
+	while (<FILE>) 
+	{
+	    # FIXME: share the pattern matching code with intltool-extract
+	    if (/\s_[-A-Za-z0-9._:]+\s*=\s*\"([^"]+)\"/ || /<_[^>]+>/ || /translatable=\"yes\"/)
+	    {
+                if (defined isNotValidMissing (unpack("x3 A*", $file))) {
+                    push @buf_allfiles, unpack("x3 A*", $file) . "\n";
+                }
+		last;
+	    }
+	}
+	close FILE;
+    }
+
+    foreach my $file (@buf_i18n_ini)
+    {
+	open FILE, "<$file";
+	while (<FILE>) 
+	{
+	    if (/_(.*)=/)
+	    {
+                if (defined isNotValidMissing (unpack("x3 A*", $file))) {
+                    push @buf_allfiles, unpack("x3 A*", $file) . "\n";
+                }
+		last;
+	    }
+	}
+	close FILE;
+    }
+
+    foreach my $file (@buf_i18n_xml_unmarked)
+    {
+        if (defined isNotValidMissing (unpack("x3 A*", $file))) {
+            push @buf_allfiles, unpack("x3 A*", $file) . "\n";
+        }
+    }
+
+
+    @buf_allfiles_sorted = sort (@buf_allfiles);
+    @buf_potfiles_sorted = sort (@buf_potfiles);
+
+    my %in2;
+    foreach (@buf_potfiles_sorted) 
+    {
+	$in2{$_} = 1;
+    }
+
+    my @result;
+
+    foreach (@buf_allfiles_sorted)
+    {
+	if (!exists($in2{$_}))
+	{
+	    push @result, $_
+	}
+    }
+
+    my @buf_potfiles_notexist;
+
+    foreach (@buf_potfiles_sorted)
+    {
+	chomp (my $dummy = $_);
+	if ("$dummy" ne "" and ! -f "../$dummy")
+	{
+	    push @buf_potfiles_notexist, $_;
+	}
+    }
+
+    ## Save file with information about the files missing
+    ## if any, and give information about this procedure.
+    if (@result + @buf_potfiles_notexist > 0)
+    {
+	if (@result) 
+	{
+	    print "\n" if $VERBOSE;
+	    unlink "missing";
+	    open OUT, ">missing";
+	    print OUT @result;
+	    close OUT;
+	    warn "\e[1mThe following files contain translations and are currently not in use. Please\e[0m\n".
+	         "\e[1mconsider adding these to the POTFILES.in file, located in the po/ directory.\e[0m\n\n";
+	    print STDERR @result, "\n";
+	    warn "If some of these files are left out on purpose then please add them to\n".
+		 "POTFILES.skip instead of POTFILES.in. A file \e[1m'missing'\e[0m containing this list\n".
+		 "of left out files has been written in the current directory.\n";
+	}
+	if (@buf_potfiles_notexist)
+	{
+	    unlink "notexist";
+	    open OUT, ">notexist";
+	    print OUT @buf_potfiles_notexist;
+	    close OUT;
+	    warn "\n" if ($VERBOSE or @result);
+	    warn "\e[1mThe following files do not exist anymore:\e[0m\n\n";
+	    warn @buf_potfiles_notexist, "\n";
+	    warn "Please remove them from POTFILES.in or POTFILES.skip. A file \e[1m'notexist'\e[0m\n".
+		 "containing this list of absent files has been written in the current directory.\n";
+	}
+    }
+
+    ## If there is nothing to complain about, notify the user
+    else {
+	print "\nAll files containing translations are present in POTFILES.in.\n" if $VERBOSE;
+    }
+}
+
+sub Console_WriteError_InvalidOption
+{
+    ## Handle invalid arguments
+    print STDERR "Try `${PROGRAM} --help' for more information.\n";
+    exit 1;
+}
+
+sub GenerateHeaders
+{
+    my $EXTRACT = "@INTLTOOL_EXTRACT@";
+    chomp $EXTRACT;
+
+    $EXTRACT = $ENV{"INTLTOOL_EXTRACT"} if $ENV{"INTLTOOL_EXTRACT"};
+
+    ## Generate the .h header files, so we can allow glade and
+    ## xml translation support
+    if (! -x "$EXTRACT")
+    {
+	print STDERR "\n *** The intltool-extract script wasn't found!"
+	     ."\n *** Without it, intltool-update can not generate files.\n";
+	exit;
+    }
+    else
+    {
+	open (FILE, $POTFILES_in) or die "$PROGRAM: POTFILES.in not found.\n";
+	
+	while (<FILE>) 
+	{
+	   chomp;
+	   next if /^\[\s*encoding/;
+
+	   ## Find xml files in POTFILES.in and generate the
+	   ## files with help from the extract script
+
+	   my $gettext_type= &POFile_DetermineType ($1);
+
+	   if (/\.($xml_support|$ini_support)$/ || /^\[/)
+	   {
+	       s/^\[[^\[].*]\s*//;
+
+	       my $filename = "../$_";
+
+	       if ($VERBOSE)
+	       {
+		   system ($EXTRACT, "--update", "--srcdir=$SRCDIR",
+			   "--type=$gettext_type", $filename);
+	       } 
+	       else 
+	       {
+	 	   system ($EXTRACT, "--update", "--type=$gettext_type", 
+			   "--srcdir=$SRCDIR", "--quiet", $filename);
+	       }
+	   }
+       }
+       close FILE;
+   }
+}
+
+#
+# Generate .pot file from POTFILES.in
+#
+sub GeneratePOTemplate
+{
+    my $XGETTEXT = $ENV{"XGETTEXT"} || "@INTLTOOL_XGETTEXT@";
+    my $XGETTEXT_ARGS = $ENV{"XGETTEXT_ARGS"} || '';
+    chomp $XGETTEXT;
+
+    if (! -x $XGETTEXT)
+    {
+	print STDERR " *** xgettext is not found on this system!\n".
+		     " *** Without it, intltool-update can not extract strings.\n";
+	exit;
+    }
+
+    print "Building $MODULE.pot...\n" if $VERBOSE;
+
+    open INFILE, $POTFILES_in;
+    unlink "POTFILES.in.temp";
+    open OUTFILE, ">POTFILES.in.temp" or die("Cannot open POTFILES.in.temp for writing");
+
+    my $gettext_support_nonascii = 0;
+
+    # checks for GNU gettext >= 0.12
+    my $dummy = `$XGETTEXT --version --from-code=UTF-8 >$devnull 2>$devnull`;
+    if ($? == 0)
+    {
+	$gettext_support_nonascii = 1;
+    }
+    else
+    {
+	# urge everybody to upgrade gettext
+	print STDERR "WARNING: This version of gettext does not support extracting non-ASCII\n".
+		     "         strings. That means you should install a version of gettext\n".
+		     "         that supports non-ASCII strings (such as GNU gettext >= 0.12),\n".
+		     "         or have to let non-ASCII strings untranslated. (If there is any)\n";
+    }
+
+    my $encoding = "ASCII";
+    my $forced_gettext_code;
+    my @temp_headers;
+    my $encoding_problem_is_reported = 0;
+
+    while (<INFILE>) 
+    {
+	next if (/^#/ or /^\s*$/);
+
+	chomp;
+
+	my $gettext_code;
+
+	if (/^\[\s*encoding:\s*(.*)\s*\]/)
+	{
+	    $forced_gettext_code=$1;
+	}
+	elsif (/\.($xml_support|$ini_support)$/ || /^\[/)
+	{
+	    s/^\[.*]\s*//;
+            print OUTFILE "../$_.h\n";
+	    push @temp_headers, "../$_.h";
+	    $gettext_code = &TextFile_DetermineEncoding ("../$_.h") if ($gettext_support_nonascii and not defined $forced_gettext_code);
+	} 
+	else 
+	{
+	    if ($SRCDIR eq ".") {
+	        print OUTFILE "../$_\n";
+	    } else {
+	        print OUTFILE "$SRCDIR/../$_\n";
+	    }
+	    $gettext_code = &TextFile_DetermineEncoding ("../$_") if ($gettext_support_nonascii and not defined $forced_gettext_code);
+	}
+
+	next if (! $gettext_support_nonascii);
+
+	if (defined $forced_gettext_code)
+	{
+	    $encoding=$forced_gettext_code;
+	}
+	elsif (defined $gettext_code and "$encoding" ne "$gettext_code")
+	{
+	    if ($encoding eq "ASCII")
+	    {
+		$encoding=$gettext_code;
+	    }
+	    elsif ($gettext_code ne "ASCII")
+	    {
+		# Only report once because the message is quite long
+		if (! $encoding_problem_is_reported)
+		{
+		    print STDERR "WARNING: You should use the same file encoding for all your project files,\n".
+				 "         but $PROGRAM thinks that most of the source files are in\n".
+				 "         $encoding encoding, while \"$_\" is (likely) in\n".
+		       		 "         $gettext_code encoding. If you are sure that all translatable strings\n".
+				 "         are in same encoding (say UTF-8), please \e[1m*prepend*\e[0m the following\n".
+				 "         line to POTFILES.in:\n\n".
+				 "                 [encoding: UTF-8]\n\n".
+				 "         and make sure that configure.in/ac checks for $PACKAGE >= 0.27 .\n".
+				 "(such warning message will only be reported once.)\n";
+		    $encoding_problem_is_reported = 1;
+		}
+	    }
+	}
+    }
+
+    close OUTFILE;
+    close INFILE;
+
+    unlink "$MODULE.pot";
+    my @xgettext_argument=("$XGETTEXT",
+			   "--add-comments",
+			   "--directory\=\.",
+			   "--output\=$MODULE\.pot",
+			   "--files-from\=\.\/POTFILES\.in\.temp");
+    my $XGETTEXT_KEYWORDS = &FindPOTKeywords;
+    push @xgettext_argument, $XGETTEXT_KEYWORDS;
+    my $MSGID_BUGS_ADDRESS = &FindMakevarsBugAddress;
+    push @xgettext_argument, "--msgid-bugs-address\=$MSGID_BUGS_ADDRESS" if $MSGID_BUGS_ADDRESS;
+    push @xgettext_argument, "--from-code\=$encoding" if ($gettext_support_nonascii);
+    push @xgettext_argument, $XGETTEXT_ARGS if $XGETTEXT_ARGS;
+    my $xgettext_command = join ' ', @xgettext_argument;
+
+    # intercept xgettext error message
+    print "Running $xgettext_command\n" if $VERBOSE;
+    my $xgettext_error_msg = `$xgettext_command 2>\&1`;
+    my $command_failed = $?;
+
+    unlink "POTFILES.in.temp";
+
+    print "Removing generated header (.h) files..." if $VERBOSE;
+    unlink foreach (@temp_headers);
+    print "done.\n" if $VERBOSE;
+
+    if (! $command_failed)
+    {
+	if (! -e "$MODULE.pot")
+	{
+	    print "None of the files in POTFILES.in contain strings marked for translation.\n" if $VERBOSE;
+	}
+	else
+	{
+	    print "Wrote $MODULE.pot\n" if $VERBOSE;
+	}
+    }
+    else
+    {
+	if ($xgettext_error_msg =~ /--from-code/)
+	{
+	    # replace non-ASCII error message with a more useful one.
+	    print STDERR "ERROR: xgettext failed to generate PO template file because there is non-ASCII\n".
+			 "       string marked for translation. Please make sure that all strings marked\n".
+			 "       for translation are in uniform encoding (say UTF-8), then \e[1m*prepend*\e[0m the\n".
+			 "       following line to POTFILES.in and rerun $PROGRAM:\n\n".
+			 "           [encoding: UTF-8]\n\n";
+	}
+	else
+	{
+	    print STDERR "$xgettext_error_msg";
+	    if (-e "$MODULE.pot")
+	    {
+		# is this possible?
+		print STDERR "ERROR: xgettext failed but still managed to generate PO template file.\n".
+			     "       Please consult error message above if there is any.\n";
+	    }
+	    else
+	    {
+		print STDERR "ERROR: xgettext failed to generate PO template file. Please consult\n".
+			     "       error message above if there is any.\n";
+	    }
+	}
+	exit (1);
+    }
+}
+
+sub POFile_Update
+{
+    -f "$MODULE.pot" or die "$PROGRAM: $MODULE.pot does not exist.\n";
+
+    my $MSGMERGE = $ENV{"MSGMERGE"} || "@INTLTOOL_MSGMERGE@";
+    my ($lang, $outfile) = @_;
+
+    print "Merging $SRCDIR/$lang.po with $MODULE.pot..." if $VERBOSE;
+
+    my $infile = "$SRCDIR/$lang.po";
+    $outfile = "$SRCDIR/$lang.po" if ($outfile eq "");
+
+    # I think msgmerge won't overwrite old file if merge is not successful
+    system ("$MSGMERGE", "-o", $outfile, $infile, "$MODULE.pot");
+}
+
+sub Console_WriteError_NotExisting
+{
+    my ($file) = @_;
+
+    ## Report error if supplied language file is non-existing
+    print STDERR "$PROGRAM: $file does not exist!\n";
+    print STDERR "Try '$PROGRAM --help' for more information.\n";
+    exit;
+}
+
+sub GatherPOFiles
+{
+    my @po_files = glob ("./*.po");
+
+    @languages = map (&POFile_GetLanguage, @po_files);
+
+    foreach my $lang (@languages) 
+    {
+	$po_files_by_lang{$lang} = shift (@po_files);
+    }
+}
+
+sub POFile_GetLanguage ($)
+{
+    s/^(.*\/)?(.+)\.po$/$2/;
+    return $_;
+}
+
+sub Console_Write_TranslationStatus
+{
+    my ($lang, $output_file) = @_;
+    my $MSGFMT = $ENV{"MSGFMT"} || "@INTLTOOL_MSGFMT@";
+
+    $output_file = "$SRCDIR/$lang.po" if ($output_file eq "");
+
+    system ("$MSGFMT", "-o", "$devnull", "--verbose", $output_file);
+}
+
+sub Console_Write_CoverageReport
+{
+    my $MSGFMT = $ENV{"MSGFMT"} || "@INTLTOOL_MSGFMT@";
+
+    &GatherPOFiles;
+
+    foreach my $lang (@languages) 
+    {
+	print "$lang: ";
+	&POFile_Update ($lang, "");
+    }
+
+    print "\n\n * Current translation support in $MODULE \n\n";
+
+    foreach my $lang (@languages)
+    {
+	print "$lang: ";
+	system ("$MSGFMT", "-o", "$devnull", "--verbose", "$SRCDIR/$lang.po");
+    }
+}
+
+sub SubstituteVariable
+{
+    my ($str) = @_;
+    
+    # always need to rewind file whenever it has been accessed
+    seek (CONF, 0, 0);
+
+    # cache each variable. varhash is global to we can add
+    # variables elsewhere.
+    while (<CONF>)
+    {
+	if (/^(\w+)=(.*)$/)
+	{
+	    ($varhash{$1} = $2) =~  s/^["'](.*)["']$/$1/;
+	}
+    }
+    
+    if ($str =~ /^(.*)\${?([A-Z_]+)}?(.*)$/)
+    {
+	my $rest = $3;
+	my $untouched = $1;
+	my $sub = "";
+        # Ignore recursive definitions of variables
+        $sub = $varhash{$2} if defined $varhash{$2} and $varhash{$2} !~ /\${?$2}?/;
+
+	return SubstituteVariable ("$untouched$sub$rest");
+    }
+    
+    # We're using Perl backticks ` and "echo -n" here in order to 
+    # expand any shell escapes (such as backticks themselves) in every variable
+    return echo_n ($str);
+}
+
+sub CONF_Handle_Open
+{
+    my $base_dirname = getcwd();
+    $base_dirname =~ s at .*/@@;
+
+    my ($conf_in, $src_dir);
+
+    if ($base_dirname =~ /^po(-.+)?$/) 
+    {
+	if (-f "Makevars") 
+	{
+	    my $makefile_source;
+
+	    local (*IN);
+	    open (IN, "<Makevars") || die "can't open Makevars: $!";
+
+	    while (<IN>) 
+	    {
+		if (/^top_builddir[ \t]*=/) 
+		{
+		    $src_dir = $_;
+		    $src_dir =~ s/^top_builddir[ \t]*=[ \t]*([^ \t\n\r]*)/$1/;
+
+		    chomp $src_dir;
+                    if (-f "$src_dir" . "/configure.ac") {
+                        $conf_in = "$src_dir" . "/configure.ac" . "\n";
+                    } else {
+                        $conf_in = "$src_dir" . "/configure.in" . "\n";
+                    }
+		    last;
+		}
+	    }
+	    close IN;
+
+	    $conf_in || die "Cannot find top_builddir in Makevars.";
+	}
+	elsif (-f "../configure.ac") 
+	{
+	    $conf_in = "../configure.ac";
+	} 
+	elsif (-f "../configure.in") 
+	{
+	    $conf_in = "../configure.in";
+	} 
+	else 
+	{
+	    my $makefile_source;
+
+	    local (*IN);
+	    open (IN, "<Makefile") || return;
+
+	    while (<IN>) 
+	    {
+		if (/^top_srcdir[ \t]*=/) 
+		{
+		    $src_dir = $_;		    
+		    $src_dir =~ s/^top_srcdir[ \t]*=[ \t]*([^ \t\n\r]*)/$1/;
+
+		    chomp $src_dir;
+		    $conf_in = "$src_dir" . "/configure.in" . "\n";
+
+		    last;
+		}
+	    }
+	    close IN;
+
+	    $conf_in || die "Cannot find top_srcdir in Makefile.";
+	}
+
+	open (CONF, "<$conf_in");
+    }
+    else
+    {
+	print STDERR "$PROGRAM: Unable to proceed.\n" .
+		     "Make sure to run this script inside the po directory.\n";
+	exit;
+    }
+}
+
+sub FindPackageName
+{
+    my $version;
+    my $domain = &FindMakevarsDomain;
+    my $name = $domain || "untitled";
+
+    &CONF_Handle_Open;
+
+    my $conf_source; {
+	local (*IN);
+	open (IN, "<&CONF") || return $name;
+	seek (IN, 0, 0);
+	local $/; # slurp mode
+	$conf_source = <IN>;
+	close IN;
+    }
+
+    # priority for getting package name:
+    # 1. GETTEXT_PACKAGE
+    # 2. first argument of AC_INIT (with >= 2 arguments)
+    # 3. first argument of AM_INIT_AUTOMAKE (with >= 2 argument)
+
+    # /^AM_INIT_AUTOMAKE\([\s\[]*([^,\)\s\]]+)/m 
+    # the \s makes this not work, why?
+    if ($conf_source =~ /^AM_INIT_AUTOMAKE\(([^,\)]+),([^,\)]+)/m)
+    {
+	($name, $version) = ($1, $2);
+	$name    =~ s/[\[\]\s]//g;
+	$version =~ s/[\[\]\s]//g;
+	$varhash{"PACKAGE_NAME"} = $name if (not $name =~ /\${?AC_PACKAGE_NAME}?/);
+	$varhash{"PACKAGE"} = $name if (not $name =~ /\${?PACKAGE}?/);
+	$varhash{"PACKAGE_VERSION"} = $version if (not $name =~ /\${?AC_PACKAGE_VERSION}?/);
+	$varhash{"VERSION"} = $version if (not $name =~ /\${?VERSION}?/);
+    }
+    
+    if ($conf_source =~ /^AC_INIT\(([^,\)]+),([^,\)]+)/m) 
+    {
+	($name, $version) = ($1, $2);
+	$name    =~ s/[\[\]\s]//g;
+	$version =~ s/[\[\]\s]//g;
+	$varhash{"PACKAGE_NAME"} = $name if (not $name =~ /\${?AC_PACKAGE_NAME}?/);
+	$varhash{"PACKAGE"} = $name if (not $name =~ /\${?PACKAGE}?/);
+	$varhash{"PACKAGE_VERSION"} = $version if (not $name =~ /\${?AC_PACKAGE_VERSION}?/);
+	$varhash{"VERSION"} = $version if (not $name =~ /\${?VERSION}?/);
+    }
+
+    # \s makes this not work, why?
+    $name = $1 if $conf_source =~ /^GETTEXT_PACKAGE=\[?([^\n\]]+)/m;
+    
+    # m4 macros AC_PACKAGE_NAME, AC_PACKAGE_VERSION etc. have same value
+    # as corresponding $PACKAGE_NAME, $PACKAGE_VERSION etc. shell variables.
+    $name =~ s/\bAC_PACKAGE_/\$PACKAGE_/g;
+
+    $name = $domain if $domain;
+
+    $name = SubstituteVariable ($name);
+    $name =~ s/^["'](.*)["']$/$1/;
+
+    return $name if $name;
+}
+
+
+sub FindPOTKeywords
+{
+
+    my $keywords = "--keyword\=\_ --keyword\=N\_ --keyword\=U\_ --keyword\=Q\_";
+    my $varname = "XGETTEXT_OPTIONS";
+    my $make_source; {
+	local (*IN);
+	open (IN, "<Makevars") || (open(IN, "<Makefile.in.in") && ($varname = "XGETTEXT_KEYWORDS")) || return $keywords;
+	seek (IN, 0, 0);
+	local $/; # slurp mode
+	$make_source = <IN>;
+	close IN;
+    }
+
+    $keywords = $1 if $make_source =~ /^$varname[ ]*=\[?([^\n\]]+)/m;
+    
+    return $keywords;
+}
+
+sub FindMakevarsDomain
+{
+
+    my $domain = "";
+    my $makevars_source; { 
+	local (*IN);
+	open (IN, "<Makevars") || return $domain;
+	seek (IN, 0, 0);
+	local $/; # slurp mode
+	$makevars_source = <IN>;
+	close IN;
+    }
+
+    $domain = $1 if $makevars_source =~ /^DOMAIN[ ]*=\[?([^\n\]\$]+)/m;
+    $domain =~ s/^\s+//;
+    $domain =~ s/\s+$//;
+    
+    return $domain;
+}
+
+sub FindMakevarsBugAddress
+{
+
+    my $address = "";
+    my $makevars_source; { 
+	local (*IN);
+	open (IN, "<Makevars") || return undef;
+	seek (IN, 0, 0);
+	local $/; # slurp mode
+	$makevars_source = <IN>;
+	close IN;
+    }
+
+    $address = $1 if $makevars_source =~ /^MSGID_BUGS_ADDRESS[ ]*=\[?([^\n\]\$]+)/m;
+    $address =~ s/^\s+//;
+    $address =~ s/\s+$//;
+    
+    return $address;
+}

Modified: gtkpod/trunk/po/Makefile.in.in
===================================================================
--- gtkpod/trunk/po/Makefile.in.in	2007-06-27 20:59:02 UTC (rev 193)
+++ gtkpod/trunk/po/Makefile.in.in	2007-06-27 21:27:12 UTC (rev 194)
@@ -11,78 +11,78 @@
 #
 # - Modified by jacob berkman <jacob at ximian.com> to install
 #   Makefile.in.in and po2tbl.sed.in for use with glib-gettextize
+#
+# - Modified by Rodney Dawes <dobey at novell.com> for use with intltool
+#
+# We have the following line for use by intltoolize:
+# INTLTOOL_MAKEFILE
 
 GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
 PACKAGE = @PACKAGE@
 VERSION = @VERSION@
 
 SHELL = /bin/sh
- at SET_MAKE@
 
 srcdir = @srcdir@
 top_srcdir = @top_srcdir@
+top_builddir = ..
 VPATH = @srcdir@
 
 prefix = @prefix@
 exec_prefix = @exec_prefix@
 datadir = @datadir@
+datarootdir = @datarootdir@
 libdir = @libdir@
-localedir = $(libdir)/locale
-gnulocaledir = $(datadir)/locale
-gettextsrcdir = $(datadir)/glib-2.0/gettext/po
+DATADIRNAME = @DATADIRNAME@
+itlocaledir = $(prefix)/$(DATADIRNAME)/locale
 subdir = po
+install_sh = @install_sh@
+# Automake >= 1.8 provides @mkdir_p at .
+# Until it can be supposed, use the safe fallback:
+mkdir_p = $(install_sh) -d
 
 INSTALL = @INSTALL@
 INSTALL_DATA = @INSTALL_DATA@
-MKINSTALLDIRS = $(top_srcdir)/@MKINSTALLDIRS@
 
-CC = @CC@
-GENCAT = @GENCAT@
 GMSGFMT = @GMSGFMT@
 MSGFMT = @MSGFMT@
 XGETTEXT = @XGETTEXT@
-MSGMERGE = msgmerge
+INTLTOOL_UPDATE = @INTLTOOL_UPDATE@
+INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@
+MSGMERGE = INTLTOOL_EXTRACT=$(INTLTOOL_EXTRACT) srcdir=$(srcdir) $(INTLTOOL_UPDATE) --gettext-package $(GETTEXT_PACKAGE) --dist
+GENPOT   = INTLTOOL_EXTRACT=$(INTLTOOL_EXTRACT) srcdir=$(srcdir) $(INTLTOOL_UPDATE) --gettext-package $(GETTEXT_PACKAGE) --pot
 
-DEFS = @DEFS@
-CFLAGS = @CFLAGS@
-CPPFLAGS = @CPPFLAGS@
+ALL_LINGUAS = @ALL_LINGUAS@
 
-INCLUDES = -I.. -I$(top_srcdir)/intl
+PO_LINGUAS=$(shell if test -r $(srcdir)/LINGUAS; then grep -v "^\#" $(srcdir)/LINGUAS; fi)
 
-COMPILE = $(CC) -c $(DEFS) $(INCLUDES) $(CPPFLAGS) $(CFLAGS) $(XCFLAGS)
+POFILES=$(shell if test -n "$(PO_LINGUAS)"; then LINGUAS="$(PO_LINGUAS)"; else LINGUAS="$(ALL_LINGUAS)"; fi; for lang in $$LINGUAS; do printf "$$lang.po "; done)
 
-SOURCES = 
-POFILES = @POFILES@
-GMOFILES = @GMOFILES@
-DISTFILES = ChangeLog Makefile.in.in POTFILES.in $(GETTEXT_PACKAGE).pot \
-$(POFILES) $(GMOFILES) $(SOURCES)
+DISTFILES = ChangeLog Makefile.in.in POTFILES.in $(POFILES)
+EXTRA_DISTFILES = POTFILES.skip Makevars LINGUAS
 
 POTFILES = \
+#This Gets Replace for some reason
 
-CATALOGS = @CATALOGS@
-CATOBJEXT = @CATOBJEXT@
-INSTOBJEXT = @INSTOBJEXT@
+CATALOGS=$(shell if test -n "$(PO_LINGUAS)"; then LINGUAS="$(PO_LINGUAS)"; else LINGUAS="$(ALL_LINGUAS)"; fi; for lang in $$LINGUAS; do printf "$$lang.gmo "; done)
 
 .SUFFIXES:
-.SUFFIXES: .c .o .po .pox .gmo .mo .msg .cat
+.SUFFIXES: .po .pox .gmo .mo .msg .cat
 
-.c.o:
-	$(COMPILE) $<
-
 .po.pox:
 	$(MAKE) $(GETTEXT_PACKAGE).pot
-	$(MSGMERGE) $< $(srcdir)/$(GETTEXT_PACKAGE).pot -o $*.pox
+	$(MSGMERGE) $< $(GETTEXT_PACKAGE).pot -o $*.pox
 
 .po.mo:
 	$(MSGFMT) -o $@ $<
 
 .po.gmo:
-	file=$(srcdir)/`echo $* | sed 's,.*/,,'`.gmo \
+	file=`echo $* | sed 's,.*/,,'`.gmo \
 	  && rm -f $$file && $(GMSGFMT) -o $$file $<
 
 .po.cat:
 	sed -f ../intl/po2msg.sed < $< > $*.msg \
-	  && rm -f $@ && $(GENCAT) $@ $*.msg
+	  && rm -f $@ && gencat $@ $*.msg
 
 
 all: all- at USE_NLS@
@@ -90,126 +90,105 @@
 all-yes: $(CATALOGS)
 all-no:
 
-$(srcdir)/$(GETTEXT_PACKAGE).pot: $(POTFILES)
-	$(XGETTEXT) --default-domain=$(GETTEXT_PACKAGE) --directory=$(top_srcdir) \
-	  --add-comments --keyword=_ --keyword=N_ \
-	  --files-from=$(srcdir)/POTFILES.in \
-	&& test ! -f $(GETTEXT_PACKAGE).po \
-	   || ( rm -f $(srcdir)/$(GETTEXT_PACKAGE).pot \
-		&& mv $(GETTEXT_PACKAGE).po $(srcdir)/$(GETTEXT_PACKAGE).pot )
+$(GETTEXT_PACKAGE).pot: $(POTFILES)
+	$(GENPOT)
 
-install: install-exec install-data
-install-exec:
+install: install-data
 install-data: install-data- at USE_NLS@
 install-data-no: all
 install-data-yes: all
-	if test -r "$(MKINSTALLDIRS)"; then \
-	  $(MKINSTALLDIRS) $(DESTDIR)$(datadir); \
+	$(mkdir_p) $(DESTDIR)$(itlocaledir)
+	if test -n "$(PO_LINGUAS)"; then \
+	  linguas="$(PO_LINGUAS)"; \
 	else \
-	  $(SHELL) $(top_srcdir)/mkinstalldirs $(DESTDIR)$(datadir); \
-	fi
-	@catalogs='$(CATALOGS)'; \
-	for cat in $$catalogs; do \
-	  cat=`basename $$cat`; \
-	  case "$$cat" in \
-	    *.gmo) destdir=$(gnulocaledir);; \
-	    *)     destdir=$(localedir);; \
-	  esac; \
-	  lang=`echo $$cat | sed 's/\$(CATOBJEXT)$$//'`; \
-	  dir=$(DESTDIR)$$destdir/$$lang/LC_MESSAGES; \
-	  if test -r "$(MKINSTALLDIRS)"; then \
-	    $(MKINSTALLDIRS) $$dir; \
+	  linguas="$(ALL_LINGUAS)"; \
+	fi; \
+	for lang in $$linguas; do \
+	  dir=$(DESTDIR)$(itlocaledir)/$$lang/LC_MESSAGES; \
+	  $(mkdir_p) $$dir; \
+	  if test -r $$lang.gmo; then \
+	    $(INSTALL_DATA) $$lang.gmo $$dir/$(GETTEXT_PACKAGE).mo; \
+	    echo "installing $$lang.gmo as $$dir/$(GETTEXT_PACKAGE).mo"; \
 	  else \
-	    $(SHELL) $(top_srcdir)/mkinstalldirs $$dir; \
+	    $(INSTALL_DATA) $(srcdir)/$$lang.gmo $$dir/$(GETTEXT_PACKAGE).mo; \
+	    echo "installing $(srcdir)/$$lang.gmo as" \
+		 "$$dir/$(GETTEXT_PACKAGE).mo"; \
 	  fi; \
-	  if test -r $$cat; then \
-	    $(INSTALL_DATA) $$cat $$dir/$(GETTEXT_PACKAGE)$(INSTOBJEXT); \
-	    echo "installing $$cat as $$dir/$(GETTEXT_PACKAGE)$(INSTOBJEXT)"; \
+	  if test -r $$lang.gmo.m; then \
+	    $(INSTALL_DATA) $$lang.gmo.m $$dir/$(GETTEXT_PACKAGE).mo.m; \
+	    echo "installing $$lang.gmo.m as $$dir/$(GETTEXT_PACKAGE).mo.m"; \
 	  else \
-	    $(INSTALL_DATA) $(srcdir)/$$cat $$dir/$(GETTEXT_PACKAGE)$(INSTOBJEXT); \
-	    echo "installing $(srcdir)/$$cat as" \
-		 "$$dir/$(GETTEXT_PACKAGE)$(INSTOBJEXT)"; \
-	  fi; \
-	  if test -r $$cat.m; then \
-	    $(INSTALL_DATA) $$cat.m $$dir/$(GETTEXT_PACKAGE)$(INSTOBJEXT).m; \
-	    echo "installing $$cat.m as $$dir/$(GETTEXT_PACKAGE)$(INSTOBJEXT).m"; \
-	  else \
-	    if test -r $(srcdir)/$$cat.m ; then \
-	      $(INSTALL_DATA) $(srcdir)/$$cat.m \
-		$$dir/$(GETTEXT_PACKAGE)$(INSTOBJEXT).m; \
-	      echo "installing $(srcdir)/$$cat as" \
-		   "$$dir/$(GETTEXT_PACKAGE)$(INSTOBJEXT).m"; \
+	    if test -r $(srcdir)/$$lang.gmo.m ; then \
+	      $(INSTALL_DATA) $(srcdir)/$$lang.gmo.m \
+		$$dir/$(GETTEXT_PACKAGE).mo.m; \
+	      echo "installing $(srcdir)/$$lang.gmo.m as" \
+		   "$$dir/$(GETTEXT_PACKAGE).mo.m"; \
 	    else \
 	      true; \
 	    fi; \
 	  fi; \
 	done
-	if test "$(PACKAGE)" = "glib"; then \
-	  if test -r "$(MKINSTALLDIRS)"; then \
-	    $(MKINSTALLDIRS) $(DESTDIR)$(gettextsrcdir); \
-	  else \
-	    $(SHELL) $(top_srcdir)/mkinstalldirs $(DESTDIR)$(gettextsrcdir); \
-	  fi; \
-	  $(INSTALL_DATA) $(srcdir)/Makefile.in.in \
-			  $(DESTDIR)$(gettextsrcdir)/Makefile.in.in; \
-	else \
-	  : ; \
-	fi
 
+# Empty stubs to satisfy archaic automake needs
+dvi info tags TAGS ID:
+
 # Define this as empty until I found a useful application.
 installcheck:
 
 uninstall:
-	catalogs='$(CATALOGS)'; \
-	for cat in $$catalogs; do \
-	  cat=`basename $$cat`; \
-	  lang=`echo $$cat | sed 's/\$(CATOBJEXT)$$//'`; \
-	  rm -f $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/$(GETTEXT_PACKAGE)$(INSTOBJEXT); \
-	  rm -f $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/$(GETTEXT_PACKAGE)$(INSTOBJEXT).m; \
-	  rm -f $(DESTDIR)$(gnulocaledir)/$$lang/LC_MESSAGES/$(GETTEXT_PACKAGE)$(INSTOBJEXT); \
-	  rm -f $(DESTDIR)$(gnulocaledir)/$$lang/LC_MESSAGES/$(GETTEXT_PACKAGE)$(INSTOBJEXT).m; \
+	if test -n "$(PO_LINGUAS)"; then \
+	  linguas="$(PO_LINGUAS)"; \
+	else \
+	  linguas="$(ALL_LINGUAS)"; \
+	fi; \
+	for lang in $$linguas; do \
+	  rm -f $(DESTDIR)$(itlocaledir)/$$lang/LC_MESSAGES/$(GETTEXT_PACKAGE).mo; \
+	  rm -f $(DESTDIR)$(itlocaledir)/$$lang/LC_MESSAGES/$(GETTEXT_PACKAGE).mo.m; \
 	done
-	if test "$(PACKAGE)" = "glib"; then \
-	  rm -f $(DESTDIR)$(gettextsrcdir)/Makefile.in.in; \
-	fi
 
-check: all
+check: all $(GETTEXT_PACKAGE).pot
 
-dvi info tags TAGS ID:
-
 mostlyclean:
-	rm -f core core.* *.pox $(GETTEXT_PACKAGE).po *.old.po cat-id-tbl.tmp
-	rm -fr *.o
+	rm -f *.pox $(GETTEXT_PACKAGE).pot *.old.po cat-id-tbl.tmp
+	rm -f .intltool-merge-cache
 
 clean: mostlyclean
 
 distclean: clean
-	rm -f Makefile Makefile.in POTFILES *.mo *.msg *.cat *.cat.m
+	rm -f Makefile Makefile.in POTFILES stamp-it
+	rm -f *.mo *.msg *.cat *.cat.m *.gmo
 
 maintainer-clean: distclean
 	@echo "This command is intended for maintainers to use;"
 	@echo "it deletes files that may require special tools to rebuild."
-	rm -f $(GMOFILES)
+	rm -f Makefile.in.in
 
-distdir = ../$(GETTEXT_PACKAGE)-$(VERSION)/$(subdir)
-dist distdir: update-po $(DISTFILES)
+distdir = ../$(PACKAGE)-$(VERSION)/$(subdir)
+dist distdir: $(DISTFILES)
 	dists="$(DISTFILES)"; \
+	extra_dists="$(EXTRA_DISTFILES)"; \
+	for file in $$extra_dists; do \
+	  test -f $(srcdir)/$$file && dists="$$dists $(srcdir)/$$file"; \
+	done; \
 	for file in $$dists; do \
-	  ln $(srcdir)/$$file $(distdir) 2> /dev/null \
-	    || cp -p $(srcdir)/$$file $(distdir); \
+	  test -f $$file || file="$(srcdir)/$$file"; \
+	  ln $$file $(distdir) 2> /dev/null \
+	    || cp -p $$file $(distdir); \
 	done
 
 update-po: Makefile
 	$(MAKE) $(GETTEXT_PACKAGE).pot
 	tmpdir=`pwd`; \
-	cd $(srcdir); \
-	catalogs='$(CATALOGS)'; \
-	for cat in $$catalogs; do \
-	  cat=`basename $$cat`; \
-	  lang=`echo $$cat | sed 's/\$(CATOBJEXT)$$//'`; \
+	if test -n "$(PO_LINGUAS)"; then \
+	  linguas="$(PO_LINGUAS)"; \
+	else \
+	  linguas="$(ALL_LINGUAS)"; \
+	fi; \
+	for lang in $$linguas; do \
 	  echo "$$lang:"; \
-	  if $(MSGMERGE) $$lang.po $(GETTEXT_PACKAGE).pot -o $$tmpdir/$$lang.new.po; then \
-	    if cmp $$lang.po $$tmpdir/$$lang.new.po >/dev/null 2>&1; then \
+	  result="`$(MSGMERGE) -o $$tmpdir/$$lang.new.po $$lang`"; \
+	  if $$result; then \
+	    if cmp $(srcdir)/$$lang.po $$tmpdir/$$lang.new.po >/dev/null 2>&1; then \
 	      rm -f $$tmpdir/$$lang.new.po; \
             else \
 	      if mv -f $$tmpdir/$$lang.new.po $$lang.po; then \
@@ -221,32 +200,20 @@
 	      fi; \
 	    fi; \
 	  else \
-	    echo "msgmerge for $$cat failed!"; \
+	    echo "msgmerge for $$lang.gmo failed!"; \
 	    rm -f $$tmpdir/$$lang.new.po; \
 	  fi; \
 	done
 
-# POTFILES is created from POTFILES.in by stripping comments, empty lines
-# and Intltool tags (enclosed in square brackets), and appending a full
-# relative path to them
-POTFILES: POTFILES.in
-	( if test 'x$(srcdir)' != 'x.'; then \
-	    posrcprefix='$(top_srcdir)/'; \
-	  else \
-	    posrcprefix="../"; \
-	  fi; \
-	  rm -f $@-t $@ \
-	    && (sed -e '/^#/d' 						\
-		    -e "s/^\[.*\] +//" 					\
-		    -e '/^[ 	]*$$/d' 				\
-		    -e "s at .*@	$$posrcprefix& \\\\@" < $(srcdir)/$@.in	\
-		| sed -e '$$s/\\$$//') > $@-t \
-	    && chmod a-w $@-t \
-	    && mv $@-t $@ )
+Makefile POTFILES: stamp-it
+	@if test ! -f $@; then \
+	  rm -f stamp-it; \
+	  $(MAKE) stamp-it; \
+	fi
 
-Makefile: Makefile.in.in ../config.status POTFILES
+stamp-it: Makefile.in.in ../config.status POTFILES.in
 	cd .. \
-	  && CONFIG_FILES=$(subdir)/$@.in CONFIG_HEADERS= \
+	  && CONFIG_FILES=$(subdir)/Makefile.in CONFIG_HEADERS= CONFIG_LINKS= \
 	       $(SHELL) ./config.status
 
 # Tell versions [3.59,3.63) of GNU make not to export all variables.

Modified: gtkpod/trunk/po/POTFILES.in
===================================================================
--- gtkpod/trunk/po/POTFILES.in	2007-06-27 20:59:02 UTC (rev 193)
+++ gtkpod/trunk/po/POTFILES.in	2007-06-27 21:27:12 UTC (rev 194)
@@ -1,31 +1,35 @@
 # List of source files containing translatable strings (output of
-# ls src/*.[cl] gtkpod.glade)
+# ls src/*.[cl] data/*.glade data/*.desktop.in | grep -vf po/POTFILES.skip
+# in a clean checkout)
 
-gtkpod.glade
+data/gtkpod.desktop.in
+data/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/details.c
 src/display.c
+src/display_coverart.c
 src/display_itdb.c
 src/display_playlists.c
-src/display_songs.c
 src/display_sorttabs.c
 src/display_spl.c
+src/display_tracks.c
+src/fetchcover.c
 src/file.c
+src/file_convert.c
 src/file_export.c
 src/file_itunesdb.c
 src/fileselection.c
+src/flacfile.c
 src/getopt1.c
 src/getopt.c
 src/info.c
+src/ipod_init.c
 src/main.c
-src/md5.c
 src/misc.c
 src/misc_confirm.c
 src/misc_conversion.c
@@ -34,11 +38,11 @@
 src/misc_track.c
 src/mp3file.c
 src/mp4file.c
-#src/podcast.c
+src/oggfile.c
 src/prefs.c
 src/prefs_window.c
 src/repository.c
-src/support.c
+src/sha1.c
 src/syncdir.c
 src/tools.c
 src/wavfile.c

Copied: gtkpod/trunk/po/POTFILES.skip (from rev 193, gtkpod/branches/upstream/current/po/POTFILES.skip)
===================================================================
--- gtkpod/trunk/po/POTFILES.skip	                        (rev 0)
+++ gtkpod/trunk/po/POTFILES.skip	2007-06-27 21:27:12 UTC (rev 194)
@@ -0,0 +1,3 @@
+src/md5.c
+src/podcast.c
+src/support.c

Deleted: gtkpod/trunk/po/de.gmo
===================================================================
(Binary files differ)

Modified: gtkpod/trunk/po/de.po
===================================================================
--- gtkpod/trunk/po/de.po	2007-06-27 20:59:02 UTC (rev 193)
+++ gtkpod/trunk/po/de.po	2007-06-27 21:27:12 UTC (rev 194)
@@ -1,990 +1,1021 @@
 # German language translation for gtkpod
 # Copyright (C) 2003-2005 Jörg Schuler
 # Jörg Schuler <jcsjcs at users.sourceforge.net>
+# Kai-Ove, 2007.
 #
-#
 msgid ""
 msgstr ""
-"Project-Id-Version: gtkpod 0.52\n"
+"Project-Id-Version: de\n"
 "Report-Msgid-Bugs-To: \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"
+"POT-Creation-Date: 2007-06-14 22:57+0900\n"
+"PO-Revision-Date: 2007-03-15 22:33+0100\n"
+"Last-Translator: Kai-Ove\n"
+"Language-Team:  <de 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.9.1\n"
 
-#: gtkpod.glade:7
-msgid "gtkpod"
+#: ../data/gtkpod.desktop.in.h:1
+#, fuzzy
+msgid "GtkPod"
 msgstr "gtkpod"
 
-#: gtkpod.glade:40
-msgid "_File"
-msgstr "_Datei"
+#: ../data/gtkpod.desktop.in.h:2
+msgid "Manage music and video on an Apple iPod"
+msgstr ""
 
-#: gtkpod.glade:49
-#, fuzzy
-msgid "_Load iPod(s)"
-msgstr "_iPod"
-
-#: gtkpod.glade:69
-msgid "_Save Changes"
+#: ../data/gtkpod.desktop.in.h:3
+msgid "iPod Manager"
 msgstr ""
 
-#: gtkpod.glade:90
-msgid "Add _Files"
-msgstr "_Files hinzufügen"
+#: ../data/gtkpod.glade.h:1
+msgid " "
+msgstr " "
 
-#: gtkpod.glade:111
-msgid "Add _Directory"
-msgstr "_Verzeichnisse hinzufügen"
+#: ../data/gtkpod.glade.h:2
+msgid "    "
+msgstr "    "
 
-#: gtkpod.glade:132
-msgid "Add _Playlist"
-msgstr "_Wiedergabeliste hinzufügen"
+#: ../data/gtkpod.glade.h:3
+msgid "     "
+msgstr "     "
 
-#: gtkpod.glade:159
-msgid "_Update Tracks from File"
-msgstr "_Aktualiere Stücke aus der Datei"
+#: ../data/gtkpod.glade.h:4
+msgid "      "
+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 "Ausgewählte _Wiedergabeliste"
+#: ../data/gtkpod.glade.h:5
+msgid "   Sort by:"
+msgstr "   Sortieren nach:"
 
-#: 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"
+#: ../data/gtkpod.glade.h:6
+msgid " <= cts <= "
+msgstr " <= num <= "
 
-#: 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"
+#: ../data/gtkpod.glade.h:7
+msgid " Logic: "
+msgstr " Logik:"
 
-#: gtkpod.glade:211
-msgid "Update _mserv Data from File"
-msgstr "_mserv-Daten aktualisieren"
+#: ../data/gtkpod.glade.h:9
+#, no-c-format
+msgid "%A"
+msgstr "%A"
 
-#: gtkpod.glade:263
-#, fuzzy
-msgid "_Synchronize Playlist"
-msgstr "Alle abgleichen"
+#: ../data/gtkpod.glade.h:10
+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:290
-msgid "_Export Tracks from Database"
-msgstr "Stücke aus der Datenbank _exportieren"
+#: ../data/gtkpod.glade.h:11
+msgid "'aacgain' executable:"
+msgstr "'aacgain'-Programm:"
 
-#: gtkpod.glade:342
-msgid "Create _Playlist File"
-msgstr "_Wiedergabelistendatei erstellen"
+#: ../data/gtkpod.glade.h:12
+msgid "'mp3gain' executable:"
+msgstr "'mp3gain'-Programm:"
 
-#: gtkpod.glade:400
-msgid "_Create iPod's Directories"
-msgstr "iPod-_Verzeichnisstruktur erstellen"
+#: ../data/gtkpod.glade.h:13
+msgid "(Checked)"
+msgstr "(Gewählt)"
 
-#: 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"
+#: ../data/gtkpod.glade.h:14
+msgid "...as icons"
+msgstr "...als Symbol"
 
-#: gtkpod.glade:422
-msgid "_Check iPod's Files"
-msgstr "iPod Dateien _überprüfen"
+#: ../data/gtkpod.glade.h:15
+msgid "...as text"
+msgstr "...als Text"
 
-#: gtkpod.glade:450 gtkpod.glade:12687
-msgid "_Edit"
-msgstr "_Bearbeiten"
+#: ../data/gtkpod.glade.h:16
+msgid "...both as icons and text"
+msgstr "...als Text und Symbol"
 
-#: gtkpod.glade:459 src/context_menus.c:480
-#, fuzzy
-msgid "Edit Track Details"
-msgstr "Details editieren"
+#: ../data/gtkpod.glade.h:17
+msgid "...entry 'All' in sort tab..."
+msgstr " ...Begriff 'Alle' im Sortierungseintrag..."
 
-#: gtkpod.glade:480
-msgid "Tracks in Selected _Playlist"
-msgstr "Stücke in ausgewählter _Wiedergabeliste"
+#: ../data/gtkpod.glade.h:18
+msgid "...master playlist"
+msgstr "...Hauptwiedergabeliste"
 
-#: gtkpod.glade:489
-msgid "Tracks in Selected Tab _Entry"
-msgstr "Stücke im ausgewählten _Tab Eintrag"
+#: ../data/gtkpod.glade.h:20
+#, no-c-format
+msgid "../%A.jpg"
+msgstr "../%A.jpg"
 
-#: gtkpod.glade:511 src/context_menus.c:407
-msgid "Edit Smart Playlist"
-msgstr "Intelligente Wiedergabeliste editieren"
+#: ../data/gtkpod.glade.h:21
+msgid "0"
+msgstr "0"
 
-#: gtkpod.glade:520
-msgid "_Delete"
-msgstr "_Löschen"
+#: ../data/gtkpod.glade.h:22
+msgid "1"
+msgstr "1"
 
-#: gtkpod.glade:541
-msgid "Selected playlist"
-msgstr "Ausgewählte _Wiedergabeliste"
+#: ../data/gtkpod.glade.h:23
+msgid "2"
+msgstr "2"
 
-#: gtkpod.glade:550
-msgid "Selected playlist including tracks from iPod"
-msgstr "Ausgewählte Wiedergabeliste einschließlich der Stücke vom iPod"
+#: ../data/gtkpod.glade.h:24
+msgid "3"
+msgstr "3"
 
-#: gtkpod.glade:559
-msgid "Selected playlist including tracks from database"
-msgstr ""
-"Ausgewählte Wiedergabeliste einschließlich der Stücke von der Datenbank"
+#: ../data/gtkpod.glade.h:25
+msgid "4"
+msgstr "4"
 
-#: gtkpod.glade:568
-msgid "Selected playlist including tracks from harddisk"
+#: ../data/gtkpod.glade.h:26
+msgid "5"
+msgstr "5"
+
+#: ../data/gtkpod.glade.h:27
+msgid ":"
+msgstr ":"
+
+#: ../data/gtkpod.glade.h:28
+msgid "<"
 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"
+#: ../data/gtkpod.glade.h:29
+#, fuzzy
+msgid "<b>Account Information</b>"
+msgstr "<b>Sicherheitsabfrage beim Löschen</b>"
 
-#: gtkpod.glade:592
-msgid "Selected filter tab entry from iPod"
-msgstr "Ausgewählten Filter-Tab vom iPod"
+#: ../data/gtkpod.glade.h:30
+msgid "<b>Adding/Updating/Syncing</b>"
+msgstr "<b>Hinzufügen/Aktualisieren/Abgleichen</b>"
 
-#: gtkpod.glade:601
-msgid "Selected filter tab entry from database"
-msgstr "Ausgewählten Filter-Tab aus der lokalen Datenbank"
+#: ../data/gtkpod.glade.h:31
+#, fuzzy
+msgid "<b>Audioscrobbler</b>"
+msgstr "<b>Werkzeugleiste</b>"
 
-#: gtkpod.glade:610
-msgid "Selected filter tab entry from harddisk"
-msgstr "Ausgwählten Filter-Tab von der Festplatte"
+#: ../data/gtkpod.glade.h:32
+msgid "<b>Auto-Generated Playlists</b>"
+msgstr "<b>Automatisch generierte Wiedergabelisten</b>"
 
-#: gtkpod.glade:625
-msgid "Selected tracks from playlist"
-msgstr "Ausgewählte Stücke von der Wiedergabeliste"
+#: ../data/gtkpod.glade.h:33
+msgid "<b>Automatically select...</b>"
+msgstr "<b>Wähle automatisch...</b>"
 
-#: gtkpod.glade:634
-msgid "Selected tracks from iPod"
-msgstr "Ausgewählte Stücke vom iPod"
+#: ../data/gtkpod.glade.h:34
+msgid "<b>Calendar/Contacts/Notes</b>"
+msgstr "<b>Kalender/Kontakte/Notizen</b>"
 
-#: gtkpod.glade:643
-msgid "Selected tracks from database"
-msgstr "Ausgewählte Stücke von der Datenbank"
+#: ../data/gtkpod.glade.h:35
+msgid "<b>Coverart</b>"
+msgstr "<b>Cover-Bild</b>"
 
-#: gtkpod.glade:652
-msgid "Selected tracks from harddisk"
-msgstr "Ausgewählte Stücke von der Festplatte"
+#: ../data/gtkpod.glade.h:36
+msgid "<b>Delete Confirmation</b>"
+msgstr "<b>Sicherheitsabfrage beim Löschen</b>"
 
-#: gtkpod.glade:671
-msgid "_Create Playlists"
-msgstr "_Wiedergabelisten erstellen"
+#: ../data/gtkpod.glade.h:37
+msgid "<b>Displayed Track Attributes</b>"
+msgstr "<b>Angezeigte Informationen</b>"
 
-#: gtkpod.glade:692
-msgid "Empty Playlist"
-msgstr "Leere Wiedergabeliste"
+#: ../data/gtkpod.glade.h:38
+msgid "<b>Examples</b>"
+msgstr "<b>Beispiele</b>"
 
-#: gtkpod.glade:701 gtkpod.glade:7379 src/misc_playlist.c:97
-#: src/repository.c:1359
-msgid "Smart Playlist"
-msgstr "Intelligente Wiedergabeliste"
+#: ../data/gtkpod.glade.h:39
+msgid "<b>Ignore Frequent Words</b>"
+msgstr "<b>Ignoriere oft verwendete Wörter</b>"
 
-#: gtkpod.glade:716
-msgid "Random Playlist from Displayed Tracks"
-msgstr "Zufällig aus den angezeigten Tracks"
+#: ../data/gtkpod.glade.h:40
+msgid "<b>Misc</b>"
+msgstr "<b>Verschiedenes</b>"
 
-#: gtkpod.glade:725
-msgid "Containing Displayed Tracks"
-msgstr "Aus den angezeigten Stücken"
+#: ../data/gtkpod.glade.h:41
+msgid "<b>Mountpoint and individual repository/playlist options</b>"
+msgstr ""
+"<b>Einhängepunkt u. individuelle Datenbank/Wiedergabeliste Optionen</b>"
 
-#: gtkpod.glade:734
-msgid "Containing Selected Tracks"
-msgstr "Aus den ausgewählten Stücken"
+#: ../data/gtkpod.glade.h:42
+#, fuzzy
+msgid "<b>On-the-fly Conversion</b>"
+msgstr "<b>Sicherheitsabfrage beim Löschen</b>"
 
-#: gtkpod.glade:743
-msgid "One for each Artist"
-msgstr "Eine für jeden Künstler"
+#: ../data/gtkpod.glade.h:43
+msgid "<b>Play</b>"
+msgstr "<b>Wiedergabe</b>"
 
-#: gtkpod.glade:752
-msgid "One for each Album"
-msgstr "Eine für jedes Album"
+#: ../data/gtkpod.glade.h:44
+msgid "<b>Playlists</b>"
+msgstr "<b>Wiedergabeliste(n)</b>"
 
-#: gtkpod.glade:761
-msgid "One for each Genre"
-msgstr "Eine für jedes Genre"
+#: ../data/gtkpod.glade.h:45
+msgid "<b>Please select mountpoint and your iPod model</b>"
+msgstr "<b>Bitte Einhängepunkt und iPod Modell wählen</b>"
 
-#: gtkpod.glade:770
-msgid "One for each Composer"
-msgstr "Eine für jeden Komponisten"
+#: ../data/gtkpod.glade.h:46
+msgid "<b>Repositories</b>"
+msgstr "<b>Datenbanken</b>"
 
-#: gtkpod.glade:779
-msgid "One for each Year"
-msgstr "Eine für jedes Jahr"
+#: ../data/gtkpod.glade.h:47
+msgid "<b>Sort Order</b>"
+msgstr "<b>Sortier-Reihenfolge</b>"
 
-#: gtkpod.glade:788
-msgid "One for each Rating"
-msgstr "Eine für jede Bewertung"
+#: ../data/gtkpod.glade.h:48
+msgid "<b>Sort Tabs</b>"
+msgstr "<b>Sortierungseinträge</b>"
 
-#: gtkpod.glade:797
-msgid "Best Rated Tracks"
-msgstr "Höchstgewertete Stücke"
+#: ../data/gtkpod.glade.h:49
+msgid "<b>Sync</b>"
+msgstr "<b>Abgleichen</b>"
 
-#: gtkpod.glade:806
-msgid "Tracks Most Often Listened To"
-msgstr "Am häufigsten gehörte Stücke"
+#: ../data/gtkpod.glade.h:50
+msgid "<b>Synchronization</b>"
+msgstr "<b>Abgleich</b>"
 
-#: gtkpod.glade:815
-msgid "Most Recently Played Tracks"
-msgstr "Zuletzt gespielte Stücke"
+#: ../data/gtkpod.glade.h:51
+msgid "<b>Tag Reading</b>"
+msgstr "<b>Lesen von Tags</b>"
 
-#: gtkpod.glade:824
-msgid "All Tracks Played Since Last Time"
-msgstr "Seit dem letzten Mal gespielte Stücke"
+#: ../data/gtkpod.glade.h:52
+msgid "<b>Toolbar</b>"
+msgstr "<b>Werkzeugleiste</b>"
 
-#: gtkpod.glade:833
-msgid "All Tracks Never Listened To"
-msgstr "Nie gehörte Stücke"
+#: ../data/gtkpod.glade.h:53
+msgid "<b>Tooltips</b>"
+msgstr "<b>Werkzeugtipps</b>"
 
-#: gtkpod.glade:842
-msgid "All Tracks not Listed in any Playlist"
-msgstr "In keiner Wiedergabeliste aufgeführte Stücke"
+#: ../data/gtkpod.glade.h:54
+msgid "<b>Track Editing</b>"
+msgstr "<b>Bearbeiten von Stücken</b>"
 
-#: gtkpod.glade:861
-msgid "_Sorting"
-msgstr "_Sortierung"
+#: ../data/gtkpod.glade.h:55
+msgid "<b>Volume Normalization</b>"
+msgstr "<b>Lautstärkenormalisierung</b>"
 
-#: gtkpod.glade:883
-msgid "Randomize Current Playlist"
-msgstr "Aktuelle Wiedergabeliste zufällig sortieren"
+#: ../data/gtkpod.glade.h:56
+msgid "<b>mserv</b>"
+msgstr "<b>mserv</b>"
 
-#: gtkpod.glade:892
-msgid "_Save Displayed Track Order"
-msgstr "_Dargestellte Reihenfolge der Stücke speichern"
+#: ../data/gtkpod.glade.h:57
+msgid ">"
+msgstr ""
 
-#: gtkpod.glade:920
-#, fuzzy
-msgid "Edit Repository/iPod Options"
-msgstr "Sortieroptionen"
+#: ../data/gtkpod.glade.h:58
+msgid "About gtkpod"
+msgstr "Ãœber gtkpod"
 
-#: gtkpod.glade:941
-#, fuzzy
-msgid "Edit _Preferences"
-msgstr "_Einstellungen"
+#: ../data/gtkpod.glade.h:59
+msgid "Add Directories Recursively"
+msgstr "Verzeichnisse rekursiv hinzufügen"
 
-#: gtkpod.glade:967
-msgid "_View"
-msgstr "_Ansicht"
+#: ../data/gtkpod.glade.h:60
+msgid "Add Files or Directories"
+msgstr "Dateien oder Verzeichnisse hinzufügen."
 
-#: gtkpod.glade:976
-msgid "_Toolbar"
-msgstr "_Toolbar"
+#: ../data/gtkpod.glade.h:61
+msgid "Add _Directory"
+msgstr "_Verzeichnisse hinzufügen"
 
-#: gtkpod.glade:986
-msgid "_Tooltips"
-msgstr "_Tooltips"
+#: ../data/gtkpod.glade.h:62
+msgid "Add _Files"
+msgstr "_Dateien hinzufügen"
 
-#: gtkpod.glade:996
-msgid "_Info Window"
-msgstr "_Info Fenster"
+#: ../data/gtkpod.glade.h:63
+msgid "Add _Playlist"
+msgstr "_Wiedergabeliste hinzufügen"
 
-#: gtkpod.glade:1007
-msgid "_More Sort Tabs"
-msgstr "_Mehr Sort Tabs"
+#: ../data/gtkpod.glade.h:64
+msgid "Add coverart from file using the following template"
+msgstr "Cover-Bild nach folgender Schablone aus Datei einlesen"
 
-#: gtkpod.glade:1028
-msgid "_Less Sort Tabs"
-msgstr "_Weniger Sort Tabs"
+#: ../data/gtkpod.glade.h:65
+msgid "Add directories recursively"
+msgstr "Verzeichnisse rekursiv hinzufügen"
 
-#: gtkpod.glade:1049
-msgid "_Arrange Sort Tabs"
-msgstr "Sort Tabs _Anordnen"
+#: ../data/gtkpod.glade.h:66
+msgid "Add new repository/iPod"
+msgstr "Füge Verzeichnis/iPod hinzu"
 
-#: gtkpod.glade:1062 gtkpod.glade:13297
-msgid "_Tools"
-msgstr "_Werkzeuge"
+#: ../data/gtkpod.glade.h:67
+msgid "Add playlist from file"
+msgstr "Wiedergabeliste aus Datei hinzufügen"
 
-#: gtkpod.glade:1071
-msgid "_Play Now"
-msgstr "_Jetzt Abspielen"
+#: ../data/gtkpod.glade.h:68 ../src/display_sorttabs.c:3232
+#: ../src/display_tracks.c:1996
+msgid "Added"
+msgstr "Hinzugefügt"
 
-#: gtkpod.glade:1123
-msgid "_Enqueue"
-msgstr "Zum Abspielen _Vormerken"
+#: ../data/gtkpod.glade.h:69
+msgid "Advanced Sorting Options"
+msgstr "Weitere Sortieroptionen"
 
-#: gtkpod.glade:1181
-msgid "_Normalize Volume"
-msgstr "_Lautstärke normalisieren"
+#. 0
+#: ../data/gtkpod.glade.h:70 ../src/display_sorttabs.c:2954
+#: ../src/display_spl.c:84 ../src/misc_conversion.c:60
+msgid "Album"
+msgstr "Album"
 
-#: gtkpod.glade:1217
-msgid "_Displayed Tracks"
-msgstr "_Angezeigte Stücke"
+#: ../data/gtkpod.glade.h:71
+#, fuzzy
+msgid "Album Art"
+msgstr "Album"
 
-#: gtkpod.glade:1226
-msgid "_All Tracks"
-msgstr "_Alle Stücke"
+#: ../data/gtkpod.glade.h:72
+msgid "All (AND)"
+msgstr "Alle (UND)"
 
-#: gtkpod.glade:1235
-msgid "_Newly Added Tracks"
-msgstr "_Neu hinzugefügte Stücke"
+#: ../data/gtkpod.glade.h:73
+msgid "All Tracks Never Listened To"
+msgstr "Nie gehörte Stücke"
 
-#: gtkpod.glade:1254
-msgid "Synchronise Contacts, Calendar and Notes"
-msgstr "Kontakte, Kalender und Notizen abgleichen"
+#: ../data/gtkpod.glade.h:74
+msgid "All Tracks Played Since Last Time"
+msgstr "Seit dem letzten Mal gespielte Stücke"
 
-#: gtkpod.glade:1255
-msgid "Synchronize All"
-msgstr "Alle abgleichen"
+#: ../data/gtkpod.glade.h:75
+msgid "All Tracks not Listed in any Playlist"
+msgstr "In keiner Wiedergabeliste aufgeführte Stücke"
 
-#: gtkpod.glade:1264
-msgid "Synchronize Contacts"
-msgstr "Kontakte abgleichen"
+#: ../data/gtkpod.glade.h:76
+msgid "Also include tracks never played in \"Best Rated\" playlist"
+msgstr ""
+"Auch Stücke in die 'am besten' bewertete' Wiedergabeliste aufnehmen, die nie "
+"gespielt wurden"
 
-#: gtkpod.glade:1273
-msgid "Synchronize Calendar"
-msgstr "Kalender abgleichen"
+#: ../data/gtkpod.glade.h:77
+msgid "Always write ID3v2.4 tags (only applies to MP3)"
+msgstr "Immer ID3v2.4 Tags schreiben (trifft nur auf MP3 zu)"
 
-#: gtkpod.glade:1282
-msgid "Synchronize Notes"
-msgstr "Notizen abgleichen"
+#: ../data/gtkpod.glade.h:78
+msgid "Any (OR)"
+msgstr "Eines (ODER)"
 
-#: gtkpod.glade:1295
-msgid "_Help"
-msgstr "_Hilfe"
+#: ../data/gtkpod.glade.h:79 ../src/display_sorttabs.c:2951
+#: ../src/display_spl.c:85 ../src/misc_conversion.c:61
+msgid "Artist"
+msgstr "Künstler"
 
-#: gtkpod.glade:1304
-msgid "_About"
-msgstr "_Ãœber"
+#: ../data/gtkpod.glade.h:80
+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 folgenden Tags mit dem "
+"Dateinamen initialisieren:"
 
-#: gtkpod.glade:1344
+#: ../data/gtkpod.glade.h:82
+msgid "Ascending"
+msgstr "Aufsteigend"
+
+#: ../data/gtkpod.glade.h:83
 msgid ""
-"Try to load contents of all connected iPods. For each iPod a separate "
-"repository must be set up."
+"Audio/Video\n"
+"Audio\n"
+"Video\n"
+"Podcast\n"
+"Video Podcast\n"
+"Audiobook\n"
+"Music Video\n"
+"TV Show\n"
+"TV Show & Music Video\n"
 msgstr ""
 
-#: gtkpod.glade:1345
-#, fuzzy
-msgid "Load iPod(s)"
-msgstr "_iPod"
+#: ../data/gtkpod.glade.h:93
+msgid "Auto Store"
+msgstr "Autom. speichern"
 
-#: gtkpod.glade:1362
-msgid "Write all changes made to the disk and the iPod(s)."
+#: ../data/gtkpod.glade.h:94
+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 "
+"'Anzeige' drücken."
 
-#: gtkpod.glade:1363 src/context_menus.c:507
-msgid "Save Changes"
+#: ../data/gtkpod.glade.h:95
+msgid "Before removing playlists or tracks from a playlist"
 msgstr ""
+"Vor dem Entfernen von Wiedergabelisten oder Stücken aus einer Wiedergabeliste"
 
-#: gtkpod.glade:1380
-msgid "Add Files or Directories"
-msgstr "Wählen Sie hinzuzufügende Dateien oder Verzeichnisse aus."
+#: ../data/gtkpod.glade.h:96
+msgid "Before removing tracks from the harddisk"
+msgstr "Vor dem vollständigen Löschen auf der Festplatte"
 
-#: gtkpod.glade:1381
-msgid "Files"
-msgstr "Dateien"
+#: ../data/gtkpod.glade.h:97
+msgid "Before removing tracks from the iPod"
+msgstr "Vor dem vollständigen Löschen vom iPod"
 
-#: gtkpod.glade:1398
-msgid "Add Directories Recursively"
-msgstr "Verzeichnisse rekursiv hinzufügen"
+#: ../data/gtkpod.glade.h:98
+msgid "Before removing tracks from the local database"
+msgstr "Vor dem Entfernen aus der lokalen Datenbank"
 
-#: gtkpod.glade:1399
-msgid "Dirs"
-msgstr "Verzeichnisse"
+#: ../data/gtkpod.glade.h:99
+msgid "Best Rated Tracks"
+msgstr "Am besten bewertete Stücke"
 
-#: gtkpod.glade:1416
-msgid "Add playlist from file"
-msgstr "Wiedergabeliste aus Datei hinzufügen"
+#: ../data/gtkpod.glade.h:100
+msgid "Browse"
+msgstr "Durchsuchen"
 
-#: gtkpod.glade:1417 src/display_spl.c:105
-msgid "Playlist"
-msgstr "Wiedergabeliste"
+#: ../data/gtkpod.glade.h:101
+#, fuzzy
+msgid "Cache directory:"
+msgstr "_Verzeichnisse hinzufügen"
 
-#: gtkpod.glade:1434
-msgid "Create New Playlist"
-msgstr "Neue Wiedergabeliste erstellen"
+#: ../data/gtkpod.glade.h:102
+msgid "Calendar"
+msgstr "Kalender"
 
-#: gtkpod.glade:1435
-msgid "New PL"
-msgstr "Neue PL"
+#: ../data/gtkpod.glade.h:103
+msgid "Calendar sync command:"
+msgstr "Befehl zum Abgleich des Kalenders:"
 
-#: gtkpod.glade:1451
-msgid "Stop Display Update"
-msgstr "Aktualisierung der Anzeige abbrechen"
+#: ../data/gtkpod.glade.h:104
+msgid "Call automatically when synchronizing iTunesDB"
+msgstr "Automatisch aufrufen, wenn die iTunesDB abgeglichen wird"
 
-#: gtkpod.glade:1452
-msgid "Stop"
-msgstr "Stopp"
+#: ../data/gtkpod.glade.h:105
+msgid "Category: "
+msgstr "Kategorie: "
 
-#: gtkpod.glade:1625
-msgid "About gtkpod"
-msgstr "Ãœber gtkpod"
+#: ../data/gtkpod.glade.h:106
+msgid ""
+"Change all tracks\n"
+"simultaneously"
+msgstr ""
+"Alle Stücke simultan \n"
+"modifizieren"
 
-#: gtkpod.glade:1752
-msgid "Credits"
-msgstr "Danksagung"
+#: ../data/gtkpod.glade.h:108
+msgid "Check for existing files when copying from iPod."
+msgstr "Bei Kopieren vom iPod Überprüfen, ob Datei bereits existiert."
 
-#: gtkpod.glade:1810
-msgid "Translators"
-msgstr "Ãœbersetzer"
+#: ../data/gtkpod.glade.h:109
+msgid "Command for 'Enqueue':"
+msgstr "Befehl für 'Zum Abspielen Vormerken':"
 
-#: gtkpod.glade:1868
-msgid "special_sorttab -- Don't translate!"
-msgstr "special_sorttab -- Don't translate!\""
+#: ../data/gtkpod.glade.h:110
+msgid "Command for 'Play now':"
+msgstr "Befehl für 'Jetzt abspielen':"
 
-#: gtkpod.glade:1903
-msgid " Logic: "
-msgstr "Logik:"
+#. 5
+#: ../data/gtkpod.glade.h:111 ../src/display_spl.c:97
+#: ../src/misc_conversion.c:65
+msgid "Composer"
+msgstr "Komponist"
 
-#: gtkpod.glade:1929
-msgid "Any (OR)"
-msgstr "Eines (ODER)"
+#: ../data/gtkpod.glade.h:112
+msgid "Confirm before removing tracks from the iPod or repository"
+msgstr ""
+"Bestätigung vor dem vollständigen Löschen vom iPod oder aus der Datenbank"
 
-#: gtkpod.glade:1948
-msgid "All (AND)"
-msgstr "Alle (UND)"
+#: ../data/gtkpod.glade.h:113
+msgid ""
+"Confirm before removing tracks from the iPod or repository\n"
+"when syncing playlists"
+msgstr ""
+"Bestätigung vor dem Löschen vom iPod oder Musikverzeichnis beim Abgleichen "
+"der Wiedergabelisten."
 
-#: gtkpod.glade:2001
-msgid "0"
-msgstr "0"
+#: ../data/gtkpod.glade.h:115
+msgid "Confirm lists of directories"
+msgstr "Liste der Verzeichnisse bestätigen"
 
-#: gtkpod.glade:2020
-msgid "1"
-msgstr "1"
+#: ../data/gtkpod.glade.h:116
+msgid "Contacts sync command:"
+msgstr "Befehl zum Abgleich der Kontakte:"
 
-#: gtkpod.glade:2039
-msgid "2"
-msgstr "2"
+#: ../data/gtkpod.glade.h:117
+msgid "Containing Displayed Tracks"
+msgstr "Aus den angezeigten Stücken"
 
-#: gtkpod.glade:2058
-msgid "3"
-msgstr "3"
+#: ../data/gtkpod.glade.h:118
+msgid "Containing Selected Tracks"
+msgstr "Aus den ausgewählten Stücken"
 
-#: gtkpod.glade:2077
-msgid "4"
-msgstr "4"
+#: ../data/gtkpod.glade.h:119
+msgid "Conversion Progress Display"
+msgstr ""
 
-#: gtkpod.glade:2096
-msgid "5"
-msgstr "5"
+#: ../data/gtkpod.glade.h:120
+msgid "Cover"
+msgstr "Cover"
 
-#: gtkpod.glade:2135
-msgid "Select '0' for no lower limit."
-msgstr "'0' wählen für 'keine untere Schranke'."
+#: ../data/gtkpod.glade.h:121
+msgid "Create New Playlist"
+msgstr "Neue Wiedergabeliste erstellen"
 
-#: gtkpod.glade:2156
-msgid " <= cts <= "
-msgstr " <= num <= "
+#: ../data/gtkpod.glade.h:122
+msgid "Create Repository"
+msgstr "Erstelle Datenbank "
 
-#: gtkpod.glade:2181
-msgid "Select '-1' for no upper limit."
-msgstr "'-1' wählen für 'keine obere Schranke'."
+#: ../data/gtkpod.glade.h:123
+msgid "Create _Playlist File"
+msgstr "_Erstelle Datei der Wiedergabeliste"
 
-#: 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."
+#: ../data/gtkpod.glade.h:124
+msgid "Credits"
+msgstr "Danksagung"
 
-#: gtkpod.glade:2270 gtkpod.glade:2347 gtkpod.glade:2517 gtkpod.glade:2696
-msgid "Calendar"
-msgstr "Kalender"
+#: ../data/gtkpod.glade.h:125
+msgid "Currently only rating is supported."
+msgstr "Gegenwärtig wird nur 'Bewertung' unterstützt."
 
-#: gtkpod.glade:2372
-msgid "Specify interval"
-msgstr "Intervall angeben"
+#: ../data/gtkpod.glade.h:126
+msgid "Delete repository"
+msgstr "Datenbank löschen"
 
-#: gtkpod.glade:2374 src/display_spl.c:98 src/misc_conversion.c:78
-msgid "Playcount"
-msgstr "Playcount"
+#: ../data/gtkpod.glade.h:127
+#, fuzzy
+msgid ""
+"Delete tracks that are no longer present from the\n"
+"iPod or repository"
+msgstr ""
+"Lösche Stücke, die nicht mehr auf dem iPod oder in der Datenbank vorhanden "
+"sind."
 
-#: gtkpod.glade:2397 src/display_spl.c:101 src/misc_conversion.c:79
-msgid "Rating"
-msgstr "Bewertung"
+#: ../data/gtkpod.glade.h:129
+msgid "Deleted tracks"
+msgstr "Gelöschte Stücke"
 
-#: gtkpod.glade:2420 src/display_songs.c:1951
-msgid "Played"
-msgstr "Gespielt"
+#: ../data/gtkpod.glade.h:130
+msgid "Descending"
+msgstr "Absteigend"
 
-#: gtkpod.glade:2443 src/display_songs.c:1954
-msgid "Modified"
-msgstr "Modifiziert"
+#: ../data/gtkpod.glade.h:131
+msgid "Details"
+msgstr "Details"
 
-#: gtkpod.glade:2542 src/display_songs.c:1957 src/display_sorttabs.c:3218
-msgid "Added"
-msgstr "Hinzugefügt"
+#: ../data/gtkpod.glade.h:133
+#, no-c-format
+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:2587
-msgid "Display tracks that match the criteria entered above."
-msgstr "Stücke anzeigen, welche die oben genannten Kriterien erfüllen."
+#: ../data/gtkpod.glade.h:135
+#, no-c-format
+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 "
+"Wiedergabeliste: %p, das Zeichen '%': %%."
 
-#: gtkpod.glade:2630 gtkpod.glade:12009
-msgid "_Display"
-msgstr "_Anzeige"
+#: ../data/gtkpod.glade.h:137
+#, no-c-format
+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ünglicher "
+"Dateiname ohne Erweiterung: %O, die aktuelle Wiedergabelist: %p, das Zeichen "
+"'%': %%."
 
-#: gtkpod.glade:2666
+#: ../data/gtkpod.glade.h:138
 msgid ""
-"Automatically start displaying tracks that match the criteria entered above. "
-"If not selected, you must press 'Display' to start displaying."
+"Directories to sync with are determined from the filenames of the tracks in "
+"the playlist."
 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."
+"Abzugleichende Verzeichnisse werden aus den Dateinamen der Wiedergabeliste "
+"ermittelt."
 
-#: gtkpod.glade:2668
-msgid "Start display automatically"
-msgstr "Anzeige automatisch starten"
+#: ../data/gtkpod.glade.h:139
+msgid "Dirs"
+msgstr "Verzeichnisse"
 
-#: gtkpod.glade:2743
-msgid "Sorttab: "
-msgstr "Sort Tab: "
+#: ../data/gtkpod.glade.h:140
+msgid "Display a list of tracks that could actually be updated."
+msgstr ""
+"Nach dem Aktualisieren eine Liste der Stücke anzeigen,\n"
+"die tatsächlich aktualisiert werden könnten."
 
-#: gtkpod.glade:2787
-msgid "     "
-msgstr "     "
+#: ../data/gtkpod.glade.h:141
+msgid "Display a list of tracks that could not be updated."
+msgstr ""
+"Liste der Stücke anzeigen, bei denen die Aktualisierung\n"
+"nicht vorgenommen werden konnte."
 
-#: gtkpod.glade:2813
-msgid "Category: "
-msgstr "Kategorie: "
+#: ../data/gtkpod.glade.h:142
+msgid "Display conversion log"
+msgstr ""
 
-#: gtkpod.glade:2894
-msgid "Please specify a time interval"
-msgstr "Intervall angeben"
+#: ../data/gtkpod.glade.h:143
+msgid "Display info about detected duplicates"
+msgstr "Information über erkannte Duplikate anzeigen"
 
-#: gtkpod.glade:2943
-msgid "Lower Margin"
-msgstr "Untere Grenze"
+#: ../data/gtkpod.glade.h:144
+msgid "Display info about non-updated tracks"
+msgstr "Informationen über nicht aktualisierte Stücke anzeigen"
 
-#: gtkpod.glade:2994 gtkpod.glade:3208
-msgid "Time:"
-msgstr "Zeit:"
+#: ../data/gtkpod.glade.h:145
+msgid "Display info about updated tracks"
+msgstr "Informationen über aktualisierte Stücke anzeigen"
 
-#: gtkpod.glade:3037 gtkpod.glade:3251
-msgid ":"
-msgstr ":"
+#: ../data/gtkpod.glade.h:146
+msgid "Display messages and warnings at startup"
+msgstr "Nachrichten und Warnungen beim Start des Programms anzeigen"
 
-#: gtkpod.glade:3114
-msgid "No lower margin"
-msgstr "Keine untere Grenze"
+#: ../data/gtkpod.glade.h:147
+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:3157
-msgid "Upper margin"
-msgstr "Obere Grenze"
+#: ../data/gtkpod.glade.h:148
+msgid "Display toolbar..."
+msgstr "Werkzeugleiste anzeigen..."
 
-#: gtkpod.glade:3328
-msgid "No upper margin"
-msgstr "Keine obere Grenze"
+#: ../data/gtkpod.glade.h:149
+msgid "Display tooltips in main window"
+msgstr "Werkzeugtipps im Hauptfenster anzeigen"
 
-#: gtkpod.glade:3426
-msgid "Sorting Options"
-msgstr "Sortieroptionen"
+#: ../data/gtkpod.glade.h:150
+msgid "Display tooltips in prefs window"
+msgstr "Werkzeugtipps im Fenster 'Einstellungen' anzeigen"
 
-#: gtkpod.glade:3458
-msgid "<b>Sort Order</b>"
-msgstr "<b>Sortier-Reihenfolge</b>"
+#: ../data/gtkpod.glade.h:151
+msgid "Display tracks that match the criteria entered above."
+msgstr "Stücke anzeigen, welche die oben genannten Kriterien erfüllen."
 
-#: gtkpod.glade:3489 gtkpod.glade:4762 gtkpod.glade:11638 gtkpod.glade:12134
-#: gtkpod.glade:12249
-msgid "    "
-msgstr "    "
-
-#: gtkpod.glade:3521
+#: ../data/gtkpod.glade.h:152
 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."
+"Displayed\n"
+"Tracks"
 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."
+"Angezeigte\n"
+"Stücke"
 
-#: gtkpod.glade:3905
-msgid "Ascending"
-msgstr "Aufsteigend"
+#: ../data/gtkpod.glade.h:154
+msgid "Don't allow file duplication"
+msgstr "Mehrfaches Einlesen von Stücken verhindern"
 
-#: gtkpod.glade:3953
-msgid "Descending"
-msgstr "Absteigend"
+#: ../data/gtkpod.glade.h:155
+msgid "Don't automatically sync on startup"
+msgstr "Beim Start nicht automatisch abgleichen"
 
-#: 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."
+#: ../data/gtkpod.glade.h:156
+msgid "Download Cover"
 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."
+#: ../data/gtkpod.glade.h:157
+#, fuzzy
+msgid "Duplicate Recognition is based on a (modified) sha1 hash over the file."
 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."
+"Die Duplikat-Erkennung basiert auf einem (modifizierten) md5-Hash über die "
+"Dateien."
 
-#: gtkpod.glade:4685
-msgid "Sorting case sensitive"
-msgstr "Beim Sortieren Groß-/Kleinschreibung beachten"
+#: ../data/gtkpod.glade.h:158
+msgid "Edit Repository/iPod Options"
+msgstr "_Ändere Verzeichnis / iPod Optionen"
 
-#: gtkpod.glade:4731
-msgid "<b>Ignore Frequent Words</b>"
-msgstr "<b>Ignoriere oft verwendete Wörter</b>"
+#: ../data/gtkpod.glade.h:159 ../src/context_menus.c:659
+msgid "Edit Smart Playlist"
+msgstr "Intelligente Wiedergabeliste editieren"
 
-#: 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:"
+#: ../data/gtkpod.glade.h:160 ../src/context_menus.c:746
+msgid "Edit Track Details"
+msgstr "_Bearbeite Stücke"
 
-#: gtkpod.glade:5106
-msgid "gtkpod Info"
-msgstr "gtkpod Info"
+#: ../data/gtkpod.glade.h:161
+msgid "Edit _Preferences"
+msgstr "_Einstellungen ändern"
 
-#: gtkpod.glade:5427 gtkpod.glade:5514 gtkpod.glade:5543 gtkpod.glade:6261
-#: gtkpod.glade:6406
-msgid "      "
-msgstr "     "
+#: ../data/gtkpod.glade.h:162
+msgid "Effective free space"
+msgstr "Effektiv freier Platz"
 
-#: gtkpod.glade:5832
-msgid "Number of tracks"
-msgstr "Anzahl der Stücke"
+#: ../data/gtkpod.glade.h:163
+msgid "Empty Playlist"
+msgstr "Wiedergabeliste leeren"
 
-#: gtkpod.glade:5862
-msgid "Play time"
-msgstr "Spielzeit"
+#: ../data/gtkpod.glade.h:164
+msgid "Exclude file mask(s)"
+msgstr "Schließe Dateimaske(n) aus"
 
-#: gtkpod.glade:5893
+#: ../data/gtkpod.glade.h:165
 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
+#: ../data/gtkpod.glade.h:166
 msgid "File size (deleted)"
 msgstr "Dateigröße (gelöscht)"
 
-#: gtkpod.glade:6013
-msgid "Non-transferred tracks"
-msgstr "Nicht übertragene Stücke"
-
-#: gtkpod.glade:6043
+#: ../data/gtkpod.glade.h:167
 msgid "File size (non-transferred)"
 msgstr "Dateigröße (nicht übertragen)"
 
-#: gtkpod.glade:6073
-msgid "Effective free space"
-msgstr "Effektiv freier Platz"
+#: ../data/gtkpod.glade.h:168
+msgid "Filename Format: "
+msgstr "Format für Dateinamen: "
 
-#: gtkpod.glade:6103
-msgid ""
-"Total\n"
-"(iPod)"
-msgstr ""
-"Insgesamt\n"
-"(iPod)"
+#: ../data/gtkpod.glade.h:169
+msgid "Files"
+msgstr "Dateien"
 
-#: gtkpod.glade:6135
+#: ../data/gtkpod.glade.h:170
+#, fuzzy
 msgid ""
-"Selected\n"
-"Playlist"
+"Find orphan files (files with no track info in DB) and dangling tracks "
+"(tracks with no corresponding files on iPod)"
 msgstr ""
-"Ausgewählte\n"
-"Wiedergabeliste"
+"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:6167
-msgid ""
-"Displayed\n"
-"Tracks"
+#: ../data/gtkpod.glade.h:171
+#, fuzzy
+msgid "First try <i>folder.jpg</i>, then <i><artist>.jpg</i>"
+msgstr "Versuche zuerst <i>folder.jpg</i>, dann <i>&lt;Künstler&gt;.jpg</i>"
+
+#: ../data/gtkpod.glade.h:172
+msgid "Flac with :"
 msgstr ""
-"Angezeigte\n"
-"Stücke"
 
-#: gtkpod.glade:6199
+#: ../data/gtkpod.glade.h:174
+#, no-c-format
 msgid ""
-"Selected\n"
-"Tracks"
+"For example, 'xmms %s' will clear xmms' current playlist, add the selected "
+"tracks and start playing."
 msgstr ""
-"Ausgewählte\n"
-"Stücke"
+"'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:6231
+#: ../data/gtkpod.glade.h:176
+#, no-c-format
 msgid ""
-"Total\n"
-"(local)"
+"For example, 'xmms -e %s' will append (enqueue) the selected tracks to xmms' "
+"current playlist."
 msgstr ""
-"Insgesamt\n"
-"(lokal)"
+"'xmms -e %s', z.B., fügt die ausgewählten Stücke zur aktuellen "
+"Wiedergabeliste von xmms hinzu."
 
-#: gtkpod.glade:6651
-msgid "label21"
-msgstr "label21"
+#: ../data/gtkpod.glade.h:177 ../src/display_sorttabs.c:2957
+#: ../src/display_spl.c:89 ../src/misc_conversion.c:63
+msgid "Genre"
+msgstr "Genre"
 
-#: gtkpod.glade:6746
-msgid "Never show this dialogue again"
-msgstr "Diesen Dialog nie wieder zeigen"
+#: ../data/gtkpod.glade.h:178
+msgid "Group artists on compilation CDs"
+msgstr "Künstler auf Sampler-CDs gruppieren"
 
-#: gtkpod.glade:6791 gtkpod.glade:7135
-msgid "window1"
-msgstr "window1"
+#: ../data/gtkpod.glade.h:179
+#, fuzzy
+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 Originaldateinamen gespeichert werden, können Tag-Änderungen in die "
+"Originaldatei übernommen werden und es ist sogar möglich, den Inhalt Ihres "
+"iPods im Falle eines Dateisystemschadens (Neuformatierung des iPods) zu "
+"rekonstruieren (dazu müssen die 'transferred=' Einträge in der gesicherten "
+"Datenbank auf '0' gesetzt und 'offline' eingelesen werden)."
 
-#: gtkpod.glade:6850
-msgid "_M3U"
-msgstr "_M3U"
+#: ../data/gtkpod.glade.h:180 ../src/context_menus.c:682
+#: ../src/context_menus.c:700 ../src/context_menus.c:824
+msgid "I'm sure"
+msgstr "Ich bin sicher"
 
-#: gtkpod.glade:6869
-msgid "_PLS"
-msgstr "_PLS"
-
-#: gtkpod.glade:6907
+#: ../data/gtkpod.glade.h:181
 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."
+"Falls verfügbar, wird die lokale Kopie des Stückes in die Wiedergabeliste "
+"eingetragen. Andernfalls wird die Datei auf dem iPod verwendet."
 
-#: gtkpod.glade:6909
-msgid "_Prefer Local"
-msgstr "Lokal _bevorzugen"
+#: ../data/gtkpod.glade.h:182
+msgid "If both options are selected, embedded APIC data takes precedence."
+msgstr "Falls beide Optionen angewählt sind, werden die APIC-Daten verwendet."
 
-#: gtkpod.glade:6927
+#: ../data/gtkpod.glade.h:183
 msgid ""
-"The local copy of the track is referenced in the playlist. If the track is "
-"not available locally, an error message is displayed."
+"If checked, sorting will be case sensitive. Please note that case sensitive "
+"sorting will not work well with most charsets."
 msgstr ""
-"Die lokale Kopie des Tracks wird in der Wiedergabeliste eingetragen. Falls "
-"der Track lokal nicht verfügbar ist, wird eine Fehlermeldung ausgegeben."
+"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:6929
-msgid "_Local"
-msgstr "_Lokal"
+#: ../data/gtkpod.glade.h:184
+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 mit dem Namen 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 die Datei nicht geändert hat und Sie "
+"die Option 'Mehrfaches Einlesen von Stücken verhindern' aktiviert haben, "
+"wird das Einlesen ebenfalls übersprungen."
 
-#: 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."
+#: ../data/gtkpod.glade.h:185
+msgid "If you check this, gtkpod will descend into subdirectories recursively."
+msgstr ""
+"Wenn Sie diese Option wählen, werden Verzeichnisse rekursiv eingelesen."
 
-#: gtkpod.glade:6950
-msgid "_iPod"
-msgstr "_iPod"
+#: ../data/gtkpod.glade.h:186
+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 ""
+"Falls diese Option gewählt wird, werden alle Änderungen für das dargestellte "
+"Stück (Cover und sonstige Angaben) automatisch in alle ausgewählten Stücke "
+"kopiert. Bitte mit Vorsicht verwenden."
 
-#: gtkpod.glade:6983
-msgid "Playlist type:"
-msgstr "Art der Wiedergabeliste:"
+#: ../data/gtkpod.glade.h:187
+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 Hauptwiedergabeliste nicht automatisch ausgewählt wird, verläuft "
+"der Import der iTunes Datenbank zu Beginn deutlich schneller, da die Anzeige "
+"nicht aktualisiert werden muss."
 
-#: gtkpod.glade:7012
-msgid "Source:"
-msgstr "Quelle:"
-
-#: gtkpod.glade:7055
-msgid "Template for info field: "
-msgstr "Schablone für dieses Feld: "
-
-#: gtkpod.glade:7080
+#: ../data/gtkpod.glade.h:188
 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 '%': %%."
+"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 ""
-"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 '%': %%."
+"Falls mehrere Stücke in der Stücke-Anzeige ausgewählt sind und ein Tag des "
+"ersten Stückes geändert wird, werden die entsprechenden Tags auch in den "
+"anderen Stücken aktualisiert."
 
-#: gtkpod.glade:7111 gtkpod.glade:7355
-msgid "gtkpod options"
-msgstr "gtkpod Optionen"
+#: ../data/gtkpod.glade.h:189
+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:7173
-msgid "Filename Format: "
-msgstr "Format für Dateinamen: "
-
-#: gtkpod.glade:7198
+#: ../data/gtkpod.glade.h:190
 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 '%': %%."
+"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 ""
-"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 '%': %%."
+"Um die angezeigte Reihenfolge der Stücke zu speichern, benutzen Sie "
+"'Dargestellte Reihenfolge speichern' im 'Bearbeiten' Menü oder wählen die "
+"Option \"Autom. speichern\" unten aus."
 
-#: gtkpod.glade:7203
-msgid " "
-msgstr " "
+#: ../data/gtkpod.glade.h:191
+msgid "Initialize iPod"
+msgstr "Initialisiere iPod"
 
-#: gtkpod.glade:7225
+#: ../data/gtkpod.glade.h:192
 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."
+"Insert before\n"
+"Insert after"
 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."
+"Davor einfügen\n"
+"Danach einfügen"
 
-#: gtkpod.glade:7227
-msgid ""
-"Use selected charset (Preferences/'Adding/Updating/ Syncing')\n"
-"for this filename."
+#: ../data/gtkpod.glade.h:194
+msgid "Keeps all compilation CDs grouped together in the artists sort tab."
 msgstr ""
-"Gewählten Zeichensatz (Einstellungen/'Hinzufügen/Aktualisieren/Abgleichen') "
-"für diesen Dateinamen verwenden."
+"Alle Sampler-CDs im Filter-Eintrag 'Künstler' als 'Sampler' gruppieren."
 
-#: 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."
+#: ../data/gtkpod.glade.h:195
+msgid "Live _updating"
+msgstr "Live Akt_ualisierung"
+
+#: ../data/gtkpod.glade.h:196
+msgid "Load iPod(s)"
+msgstr "iPod(s) einlesen"
+
+#: ../data/gtkpod.glade.h:197
+msgid "Lower Margin"
+msgstr "Untere Grenze"
+
+#: ../data/gtkpod.glade.h:198
+msgid "M4A with :"
 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."
+#: ../data/gtkpod.glade.h:199
+msgid "MP3 with :"
+msgstr ""
 
-#: gtkpod.glade:7423
-msgid "Playlist name:"
-msgstr "Name der Wiedergabeliste:"
-
-#: gtkpod.glade:7492
+#: ../data/gtkpod.glade.h:200
 msgid "Match al_l of the following"
-msgstr "_Alle der folgenden Regeln"
+msgstr "Al_le der folgenden Regeln"
 
-#: gtkpod.glade:7511
+#: ../data/gtkpod.glade.h:201
 msgid "Match an_y of the following"
 msgstr "Mindestens _eine der folgenden Regeln"
 
-#: gtkpod.glade:7531
-msgid "_Ignore rules"
-msgstr "_Regeln nicht verwenden"
+#: ../data/gtkpod.glade.h:202
+msgid "Match only _checked tracks"
+msgstr "Nur ausgewählte Stü_cke einbeziehen"
 
-#: gtkpod.glade:7601
-msgid "Rules"
-msgstr "Regeln"
+#: ../data/gtkpod.glade.h:203
+msgid "Maximum number of background threads:"
+msgstr ""
 
-#: gtkpod.glade:7638
-msgid "_Limit to"
-msgstr "_Limitieren auf"
+#: ../data/gtkpod.glade.h:204
+msgid "Maximum size of cache directory (in GB):"
+msgstr ""
 
-#: gtkpod.glade:7689
-msgid "   Sort by:"
-msgstr "   Sortieren nach:"
+#: ../data/gtkpod.glade.h:205
+msgid "Model:"
+msgstr "Modell:"
 
-#: gtkpod.glade:7741
-msgid "Match only _checked tracks"
-msgstr "_Nur ausgewählte Stücke einbeziehen"
+#: ../data/gtkpod.glade.h:206 ../src/display_tracks.c:1993
+msgid "Modified"
+msgstr "Modifiziert"
 
-#: gtkpod.glade:7773
-msgid "Live _updating"
-msgstr "_Live-Update"
+#: ../data/gtkpod.glade.h:207
+msgid "Most Recently Played Tracks"
+msgstr "Zuletzt gespielte Stücke"
 
-#: gtkpod.glade:7864
-msgid "Preferences"
-msgstr "Einstellungen"
+#: ../data/gtkpod.glade.h:208
+msgid "Music Root:"
+msgstr "Stammverzeichnis für Musik:"
 
-#: gtkpod.glade:7927
-msgid "<b>Mountpoint and individual repository/playlist options</b>"
+#: ../data/gtkpod.glade.h:209
+msgid ""
+"Music files can have images embedded in the APIC tag. Currently this is only "
+"supported for MP3 files."
 msgstr ""
+"Musikdateien können Bilder im 'APIC Tag' enthalten. Dies wird derzeit nur "
+"bei MP3-Dateien unterstützt."
 
-#: gtkpod.glade:7990
-msgid "Set mountpoint or edit repository options"
-msgstr ""
+#: ../data/gtkpod.glade.h:210
+msgid "Never show this dialogue again"
+msgstr "Diesen Dialog nie wieder zeigen"
 
-#: gtkpod.glade:8037
-msgid "<b>Import</b>"
-msgstr "<b>Importieren</b>"
+#: ../data/gtkpod.glade.h:211
+msgid "New PL"
+msgstr "Neue Wiedergabeliste"
 
-#: gtkpod.glade:8108
-#, fuzzy
-msgid "Automatically import iTunesDBs on startup"
-msgstr "Beim Starten iTunes-Datenbank automatisch importieren?"
+#: ../data/gtkpod.glade.h:212
+msgid "No lower margin"
+msgstr "Keine untere Grenze"
 
-#: gtkpod.glade:8154
-msgid "<b>Adding/Updating/Syncing</b>"
-msgstr "<b>Hinzufügen/Aktualisieren/Abgleichen</b>"
+#: ../data/gtkpod.glade.h:213
+msgid "No upper margin"
+msgstr "Keine obere Grenze"
 
-#: gtkpod.glade:8226
-msgid "Exclude file mask(s)"
-msgstr ""
+#: ../data/gtkpod.glade.h:214
+msgid "Non-transferred tracks"
+msgstr "Nicht übertragene Stücke"
 
-#: gtkpod.glade:8251
-msgid "Semicolon seperated list of file exclusion masks, e.g. '*.mp3'"
-msgstr ""
+#: ../data/gtkpod.glade.h:215
+msgid "None"
+msgstr "Keine"
 
-#: gtkpod.glade:8285
-msgid "_Encoding (ID3, files):"
-msgstr "_Kodierung (ID3, Dateinamen):"
-
-#: gtkpod.glade:8320
+#: ../data/gtkpod.glade.h:216
 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."
+"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 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."
+"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:8357
+#: ../data/gtkpod.glade.h:217
 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 "
@@ -1004,97 +1035,28 @@
 "eingelesen wurden, haben keine Informationen über den Zeichensatz "
 "gespeichert und der oben spezifizierte Zeichensatz wird verwendet."
 
-#: gtkpod.glade:8359
+#: ../data/gtkpod.glade.h:218
 msgid ""
-"Use selected encoding also when updating \n"
-"or syncing tracks"
+"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 ""
-"Gewählte Kodierung auch verwenden wenn Stücke\n"
-"aktualisiert oder Verzeichnisse abgeglichen werden"
+"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: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
+#: ../data/gtkpod.glade.h:219
 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 "
@@ -1104,445 +1066,469 @@
 "you want tracks to be removed, because removing from the master playlist "
 "means removing from the iPod."
 msgstr ""
+"Normalerweise wird ein Stück, das nicht im Synchronisationsverzeichnis "
+"existiert, aus der Wiedergabeliste gelöscht, nicht aber auf dem iPod oder "
+"dem lokalen Verzeichnis. Wird diese Option gewählt, werden die Stücke "
+"vollständig gelöscht, falls ein Stück nicht in einer anderen Wiedergabeliste "
+"erscheint. Hinweis: Bei Synchronisierung mit der 'Hauptwiedergabeliste' muss "
+"diese Option gewählt sein, wenn Stücke gelöscht werden sollen, da Löschen "
+"aus der Wiedergabeliste auch Löschen auf dem iPod bedeutet."
 
-#: gtkpod.glade:8716 gtkpod.glade:17762
-msgid ""
-"Delete tracks that are no longer present from the\n"
-"ipod or repository"
-msgstr ""
+#: ../data/gtkpod.glade.h:222
+msgid "Notes sync command:"
+msgstr "Befehl zum Abgleich der Notizen:"
 
-#: 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'"
+#: ../data/gtkpod.glade.h:223
+msgid "Number of playlists"
+msgstr "Anzahl der Wiedergabelisten"
 
-#: 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"
+#: ../data/gtkpod.glade.h:224
+msgid "Number of tracks"
+msgstr "Anzahl der Stücke"
 
-#: gtkpod.glade:8756 gtkpod.glade:17800
+#: ../data/gtkpod.glade.h:225
+msgid "Number of tracks in generated playlists:"
+msgstr "Anzahl der Stücke in generierten Wiedergabelisten:"
+
+#: ../data/gtkpod.glade.h:226
 msgid ""
-"Will show a list of tracks removed and a list of tracks newly added or "
-"updated."
+"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öchstbewertete Stücke' und 'Zuletzt gespielte Stücke'. Wählen Sie "
+"'0', wenn Sie die Anzahl nicht begrenzen wollen."
 
-#: gtkpod.glade:8758 gtkpod.glade:17802
-msgid "Show summary of sync result"
+#: ../data/gtkpod.glade.h:227
+msgid "Ogg with :"
 msgstr ""
 
-#: gtkpod.glade:8819
-msgid "<b>Sync</b>"
-msgstr "<b>Abgleichen</b>"
+#: ../data/gtkpod.glade.h:228
+msgid "On startup automatically sync with playlist directories"
+msgstr "Beim Start automatisch mit den Wiedergabelisten abgleichen"
 
-#: 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)."
+#: ../data/gtkpod.glade.h:229
+msgid "On startup automatically sync with the following directory"
+msgstr "Beim Start automatisch mit folgendem Verzeichnis abgleichen"
 
-#: 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."
+#: ../data/gtkpod.glade.h:230
+msgid "On startup automatically update (Live Playlist)"
+msgstr "Automatische Aktualisierung beim Start"
 
-#: gtkpod.glade:8921 gtkpod.glade:14688
-msgid "_General"
-msgstr "_Allgemein"
+#: ../data/gtkpod.glade.h:231
+msgid "One for each Album"
+msgstr "Eine für jedes Album"
 
-#: gtkpod.glade:8957
-msgid "<b>Tag Reading</b>"
-msgstr "<b>Lesen von Tags</b>"
+#: ../data/gtkpod.glade.h:232
+msgid "One for each Artist"
+msgstr "Eine für jeden Künstler"
 
-#: 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)"
+#: ../data/gtkpod.glade.h:233
+msgid "One for each Composer"
+msgstr "Eine für jeden Komponisten"
 
-#: 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'."
+#: ../data/gtkpod.glade.h:234
+msgid "One for each Genre"
+msgstr "Eine für jedes Genre"
 
-#: 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:"
+#: ../data/gtkpod.glade.h:235
+msgid "One for each Rating"
+msgstr "Eine für jede Bewertung"
 
-#: gtkpod.glade:9118
+#: ../data/gtkpod.glade.h:236
+msgid "One for each Year"
+msgstr "Eine für jedes Jahr"
+
+#: ../data/gtkpod.glade.h:237
 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:"
+#: ../data/gtkpod.glade.h:238
+msgid "Password:"
 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"
+#: ../data/gtkpod.glade.h:239
+msgid "Path:"
+msgstr "Pfad:"
 
-#: gtkpod.glade:9209 src/display_sorttabs.c:2948 src/display_spl.c:89
-#: src/misc_conversion.c:64
-msgid "Genre"
-msgstr "Genre"
+#: ../data/gtkpod.glade.h:240
+msgid "Play time"
+msgstr "Spielzeit"
 
-#. 0
-#: gtkpod.glade:9231 src/display_sorttabs.c:2945 src/display_spl.c:84
-#: src/misc_conversion.c:61
-msgid "Album"
-msgstr "Album"
+#: ../data/gtkpod.glade.h:241 ../src/display_spl.c:98
+#: ../src/misc_conversion.c:77
+msgid "Playcount"
+msgstr "Wiedergabezähler"
 
-#. 5
-#: gtkpod.glade:9253 src/display_spl.c:97 src/misc_conversion.c:66
-msgid "Composer"
-msgstr "Komponist"
+#: ../data/gtkpod.glade.h:242 ../src/display_tracks.c:1990
+msgid "Played"
+msgstr "Gespielt"
 
-#: gtkpod.glade:9275 src/display_sorttabs.c:2954 src/display_spl.c:83
-#: src/misc_conversion.c:63
-msgid "Title"
-msgstr "Titel"
+#: ../data/gtkpod.glade.h:243 ../src/display_spl.c:105
+msgid "Playlist"
+msgstr "Wiedergabeliste"
 
-#: gtkpod.glade:9330
-#, fuzzy
-msgid "<b>Coverart</b>"
-msgstr "<b>Importieren</b>"
+#: ../data/gtkpod.glade.h:244
+msgid "Playlist name:"
+msgstr "Name der Wiedergabeliste:"
 
-#: gtkpod.glade:9392
-msgid ""
-"Music files can have images embedded in the APIC tag. Currently this is only "
-"supported for MP3 files."
-msgstr ""
+#: ../data/gtkpod.glade.h:245
+msgid "Playlist type:"
+msgstr "Art der Wiedergabeliste:"
 
-#: gtkpod.glade:9394
-msgid "Read coverart from embedded APIC data"
-msgstr ""
+#: ../data/gtkpod.glade.h:246 ../src/display_playlists.c:2176
+msgid "Playlists"
+msgstr "Wiedergabelisten"
 
-#: gtkpod.glade:9415
-#, fuzzy
-msgid "Add coverart from file using the following template"
-msgstr "Artwork nach folgender Schablone aus Datei einlesen"
+#: ../data/gtkpod.glade.h:247
+msgid "Please refer to the notice below."
+msgstr "Bitte beachten Sie den Hinweis weiter unten."
 
-#: gtkpod.glade:9471
+#: ../data/gtkpod.glade.h:248
+msgid "Please specify a time interval"
+msgstr "Bitte Zeitintervall angeben"
+
+#: ../data/gtkpod.glade.h:249
+msgid "Preferences"
+msgstr "Einstellungen"
+
+#: ../data/gtkpod.glade.h:250
 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 "
-"'%': %%."
+"Press button to abort.\n"
+"Export can be continued at a later time."
 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 "
-"'%': %%."
+"Zum Abbrechen bitte anklicken.\n"
+"Der Export kann zu einem späteren Zeitpunkt fortgesetzt werden."
 
-#: gtkpod.glade:9492
-msgid "<b>Examples</b>"
-msgstr "<b>Beispiele</b>"
+#: ../data/gtkpod.glade.h:252
+msgid "Previous"
+msgstr ""
 
-#: gtkpod.glade:9526
-msgid "folder.jpg"
-msgstr "folder.jpg"
+#: ../data/gtkpod.glade.h:253
+#, fuzzy
+msgid "Progress Information"
+msgstr "Information"
 
-#: gtkpod.glade:9554
-msgid "folder"
-msgstr "folder"
+#: ../data/gtkpod.glade.h:254
+msgid "Random Playlist from Displayed Tracks"
+msgstr "Zufällige aus den angezeigten Stücken"
 
-#: gtkpod.glade:9582
-msgid "../%A.jpg"
-msgstr "../%A.jpg"
+#: ../data/gtkpod.glade.h:255
+msgid "Randomize Current Playlist"
+msgstr "_Aktuelle Wiedergabeliste zufällig sortieren"
 
-#: gtkpod.glade:9610
-msgid "%A"
-msgstr "%A"
+#: ../data/gtkpod.glade.h:256 ../src/display_spl.c:101
+#: ../src/misc_conversion.c:78
+msgid "Rating"
+msgstr "Bewertung"
 
-#: gtkpod.glade:9638
-msgid "Use <i>folder.jpg</i> as cover art."
-msgstr "Benutze <i>folder.jpg</i> als Cover-Art"
+#: ../data/gtkpod.glade.h:257
+msgid "Read coverart from embedded APIC data"
+msgstr "Lese Cover-Bild aus den APIC Daten"
 
-#: gtkpod.glade:9666
-msgid "Use <i>folder.jpg</i>, <i>folder.png</i>..."
-msgstr "Benutze <i>folder.jpg</i>, <i>folder.png</i>..."
+#: ../data/gtkpod.glade.h:258
+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:9694
-msgid "Use <i>&lt;Album&gt;.jpg</i> in the parent directory"
-msgstr "Benutze <i>&lt;Album&gt;.jpg</i> im übergeordneten Verzeichnis"
+#: ../data/gtkpod.glade.h:259
+msgid "Remove Cover Art"
+msgstr "Cover-Bild entfernen"
 
-#: 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>..."
+#: ../data/gtkpod.glade.h:260
+msgid "Repository Options"
+msgstr "Datenbank-Optionen"
 
-#: gtkpod.glade:9750
-msgid "folder.jpg;%a.jpg"
-msgstr "folder.jpg;%a.jpg"
+#: ../data/gtkpod.glade.h:261
+msgid "Repository name:"
+msgstr "Datenbankname:"
 
-#: 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>"
+#: ../data/gtkpod.glade.h:262
+msgid "Repository type:"
+msgstr "Datenbanktyp:"
 
-#: gtkpod.glade:9835
-msgid "If both options are selected, embedded APIC data takes precedence."
-msgstr ""
+#: ../data/gtkpod.glade.h:263
+msgid "Root directory of mserv database (trackinfo root)."
+msgstr "Stammverzeichnis für die mserv Datenbank (trackinfo root)."
 
-#: gtkpod.glade:9887
-msgid "<b>mserv</b>"
-msgstr "<b>mserv</b>"
+#: ../data/gtkpod.glade.h:264
+msgid "Rules"
+msgstr "Regeln"
 
-#: gtkpod.glade:9949 gtkpod.glade:10175
-msgid "Currently only rating is supported."
-msgstr "Gegenwärtig wird nur 'Bewertung' unterstützt."
+#: ../data/gtkpod.glade.h:265 ../src/context_menus.c:808
+msgid "Save Changes"
+msgstr "Änderungen sichern"
 
-#: gtkpod.glade:9951
-msgid "Use mserv database to fill additional information"
-msgstr "mserv Datenbank für zusätzliche Informationen verwenden"
+#: ../data/gtkpod.glade.h:266
+#, fuzzy
+msgid "Scrobble Tracks?"
+msgstr "Ausgewählte _Stücke"
 
-#: gtkpod.glade:9979
-msgid "Music Root:"
-msgstr "Stammverzeichnis für Musik:"
+#: ../data/gtkpod.glade.h:267
+msgid "Select '-1' for no upper limit."
+msgstr "'-1' wählen für 'keine obere Schranke'."
 
-#: 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."
+#: ../data/gtkpod.glade.h:268
+msgid "Select '0' for no lower limit."
+msgstr "'0' wählen für 'keine untere Schranke'."
 
-#: gtkpod.glade:10029
-msgid "mserv Root:"
-msgstr "mserv Stammverzeichnis:"
+#: ../data/gtkpod.glade.h:269
+msgid ""
+"Selected\n"
+"Playlist"
+msgstr ""
+"Ausgewählte\n"
+"Wiedergabeliste"
 
-#: 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."
+#: ../data/gtkpod.glade.h:271
+msgid ""
+"Selected\n"
+"Tracks"
 msgstr ""
-"Benutzername, der zum Nachschlagen in der mserv-Datenbank verwendet wird."
+"Ausgewählte\n"
+"Stücke"
 
-#: 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"
+#: ../data/gtkpod.glade.h:273
+msgid "Selected Tab _Entry"
+msgstr "Ausgewählter _Eintrag"
 
-#: 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."
+#: ../data/gtkpod.glade.h:274
+msgid "Selected _Playlist"
+msgstr "Ausgewählte _Wiedergabeliste"
 
-#: gtkpod.glade:10223
-msgid "_Track Info"
-msgstr "_Meta-Infos"
+#: ../data/gtkpod.glade.h:275
+msgid "Selected _Tracks"
+msgstr "Ausgewählte _Stücke"
 
-#: gtkpod.glade:10273
-msgid "<b>Displayed Track Attributes</b>"
-msgstr "<b>Angezeigte Informationen</b>"
+#: ../data/gtkpod.glade.h:276
+msgid "Selected filter tab entry from database"
+msgstr "Ausgewählter Filter-Eintrag der lokalen Datenbank"
 
-#: gtkpod.glade:11083
-msgid "<b>Sort Tabs</b>"
-msgstr "<b>Filter-Tabs</b>"
+#: ../data/gtkpod.glade.h:277
+msgid "Selected filter tab entry from harddisk"
+msgstr "Ausgewählter Filter-Eintrag der Festplatte"
 
-#: 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."
+#: ../data/gtkpod.glade.h:278
+msgid "Selected filter tab entry from iPod"
+msgstr "Ausgewählter Filter-Eintrag vom iPod"
 
-#: gtkpod.glade:11147
-msgid "Group artists on compilation CDs"
-msgstr "Künstler auf Sampler-CDs gruppieren"
+#: ../data/gtkpod.glade.h:279
+msgid "Selected filter tab entry from playlist"
+msgstr "Ausgewählter Filter-Eintrag der Wiedergabeliste"
 
-#: gtkpod.glade:11172
-msgid "_Number of sort tabs:"
-msgstr "_Anzahl der Filter-Tabs:"
+#: ../data/gtkpod.glade.h:280
+msgid "Selected playlist"
+msgstr "Ausgewählte Wiedergabeliste"
 
-#: gtkpod.glade:11252
-msgid "<b>Automatically select...</b>"
-msgstr "<b>Wähle automatisch...</b>"
+#: ../data/gtkpod.glade.h:281
+msgid "Selected playlist including tracks from database"
+msgstr ""
+"Ausgewählte Wiedergabeliste einschließlich der Stücke aus der Datenbank"
 
-#: 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."
+#: ../data/gtkpod.glade.h:282
+msgid "Selected playlist including tracks from harddisk"
 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ß."
+"Ausgewählte Wiedergabeliste einschließlich der Stücke von der Festplatte"
 
-#: gtkpod.glade:11316
-msgid "...master playlist"
-msgstr "...Hauptplayliste"
+#: ../data/gtkpod.glade.h:283
+msgid "Selected playlist including tracks from iPod"
+msgstr "Ausgewählte Wiedergabeliste einschließlich der Stücke vom iPod"
 
-#: gtkpod.glade:11336
-msgid "...entry 'All' in sort tab..."
-msgstr "Eintrag 'Alle' im Sort Tab..."
+#: ../data/gtkpod.glade.h:284
+msgid "Selected tracks from database"
+msgstr "Ausgewählte Stücke aus der Datenbank"
 
-#: gtkpod.glade:11421
-msgid "<b>Tooltips</b>"
-msgstr "<b>Tooltips</b>"
+#: ../data/gtkpod.glade.h:285
+msgid "Selected tracks from harddisk"
+msgstr "Ausgewählte Stücke von der Festplatte"
 
-#: gtkpod.glade:11484
-msgid "Display tooltips in main window"
-msgstr "Tooltips im Hauptfenster anzeigen"
+#: ../data/gtkpod.glade.h:286
+msgid "Selected tracks from iPod"
+msgstr "Ausgewählte Stücke vom iPod"
 
-#: gtkpod.glade:11504
-msgid "Display tooltips in prefs window"
-msgstr "Tooltips im Einstellungs-Fenster anzeigen"
+#: ../data/gtkpod.glade.h:287
+msgid "Selected tracks from playlist"
+msgstr "Ausgewählte Stücke aus der Wiedergabeliste"
 
-#: gtkpod.glade:11550
-msgid "<b>Toolbar</b>"
-msgstr "<b>Toolbar</b>"
+#: ../data/gtkpod.glade.h:288
+#, fuzzy
+msgid "Semicolon separated list of file exclusion masks, e.g. '*.mp3'"
+msgstr ""
+"Per Semikolon getrennte Liste der durch Maske ausgeschlossenen Stücke, z.B. "
+"'*.mp3'"
 
-#: gtkpod.glade:11613
-msgid "Display toolbar..."
-msgstr "Toolbar anzeigen..."
+#: ../data/gtkpod.glade.h:289
+#, fuzzy
+msgid "Set Cover Art from File"
+msgstr "Lege Cover-Bild fest"
 
-#: gtkpod.glade:11670
-msgid "...as icons"
-msgstr "...als Graphik"
+#: ../data/gtkpod.glade.h:290
+#, fuzzy
+msgid "Set Cover Art from Web"
+msgstr "Lege Cover-Bild fest"
 
-#: gtkpod.glade:11690
-msgid "...as text"
-msgstr "...als Text"
+#: ../data/gtkpod.glade.h:291
+msgid "Set mountpoint or edit repository options"
+msgstr "Einhängepunkt festlegen oder Datenbank-Optionen editieren"
 
-#: gtkpod.glade:11711
-msgid "...both as icons and text"
-msgstr "...als Text und Graphik"
+#: ../data/gtkpod.glade.h:292
+msgid "Set options for Calendar/Contacts/Notes"
+msgstr "Setze Optionen für Kalender/Kontakte/Notizen"
 
-#: gtkpod.glade:11772
-msgid "<b>Misc</b>"
-msgstr "<b>Verschiedenes</b>"
-
-#: gtkpod.glade:11834
+#: ../data/gtkpod.glade.h:293
 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."
+"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 ""
-"Es ist deutlich schneller, die Sortierung vorzunehmen nachdem alle Tracks "
-"hinzugefügt wurde. Wen dieses Verhalten irritiert, sollte diese Option "
-"jedoch nicht wählen."
+"Benutze 'aacgain -q -k' zur Normalisierung der Lautstärke im Werkzeug-Menü. "
+"Falls gewählt, werden Normalisierungsdaten für m4a und m4b Dateien errechnet "
+"und zu den Musikinformationen hinzugefügt."
 
-#: gtkpod.glade:11836
+#: ../data/gtkpod.glade.h:294
 msgid ""
-"Temporarily disable sorting when changing playlist\n"
-"or tab entry (faster!)"
+"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 ""
-"Sortieren vorübergehend deaktivieren wenn die\n"
-"Wiedergabeliste oder Tab Entry gewechselt wird (schneller!)"
+"Benutze 'mp3gain -q -k' zur Normalisierung der Lautstärke im Werkzeug-Menü. "
+"Falls gewählt, werden Normalisierungsdaten für mp3 Dateien errechnet und zu "
+"den Musikinformationen hinzugefügt."
 
-#: gtkpod.glade:11856
+#: ../data/gtkpod.glade.h:295
+msgid "Set this to your last.fm password"
+msgstr ""
+
+#: ../data/gtkpod.glade.h:296
+msgid "Set this to your last.fm username"
+msgstr ""
+
+#: ../data/gtkpod.glade.h:297
 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)."
+"Set to 0 to effectively disable caching (a maximum of one track will be "
+"cached at a time)."
 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
+#: ../data/gtkpod.glade.h:298
 msgid ""
-"Block display when changing playlist or tab\n"
-" entry (faster!)"
+"Set to 0 to use as many background threads as CPUs are available on your "
+"system."
 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."
+#: ../data/gtkpod.glade.h:299
+msgid "Show information about problems when accessing mserv"
 msgstr ""
-"Diese Option wird automatisch aktiviert, wenn ein Update von gtkpod "
-"durchgeführt wird."
+"Informationen über Probleme während des Zugriffs auf die mserv Datenbank "
+"anzeigen."
 
-#: gtkpod.glade:11880
-msgid "Display messages and warnings at startup"
-msgstr "Nachrichten und Warnungen beim Start des Programms anzeigen"
+#: ../data/gtkpod.glade.h:300
+msgid "Show summary of sync result"
+msgstr "Zeige Zusammenfassung nach Abgleich."
 
-#: gtkpod.glade:11942
-msgid "Advanced Sorting Options"
+#: ../data/gtkpod.glade.h:301 ../src/misc_playlist.c:96
+#: ../src/repository.c:1356
+msgid "Smart Playlist"
+msgstr "Intelligente Wiedergabeliste"
+
+#: ../data/gtkpod.glade.h:302
+msgid "Sort tracks according to: "
+msgstr "Sortiere Stücke nach: "
+
+#: ../data/gtkpod.glade.h:303
+msgid "Sorting Options"
 msgstr "Sortieroptionen"
 
-#: gtkpod.glade:12045
-msgid "<b>Track Editing</b>"
-msgstr "<b>Bearbeiten von Stücken</b>"
+#: ../data/gtkpod.glade.h:304
+msgid "Sorting case sensitive"
+msgstr "Beim Sortieren Groß-/Kleinschreibung beachten"
 
-#: gtkpod.glade:12107
+#: ../data/gtkpod.glade.h:305
+msgid "Sorttab: "
+msgstr "Sortierungseintrag: "
+
+#: ../data/gtkpod.glade.h:306
+msgid "Sorttabs"
+msgstr "Sortierungseinträge"
+
+#: ../data/gtkpod.glade.h:307
+msgid "Source:"
+msgstr "Quelle:"
+
+#: ../data/gtkpod.glade.h:309
+#, no-c-format
 msgid ""
-"The tags are written to the files on your harddrive and on the ipod (if "
-"available)."
+"Specify exact path including command line options. '%i' will be replaced "
+"with the mount point of the iPod."
 msgstr ""
-"Die Tags werden in die Originalfiles auf der Festplatte und auch auf dem "
-"iPod (wenn angeschlossen) geschrieben."
+"Geben sie den genauen Pfad einschließlich Kommandozeilenoptionen an. '%i' "
+"wird durch den Einhängepunkt des iPods ersetzt."
 
-#: gtkpod.glade:12109
-msgid "Write ID3 tags to disk when modified in gtkpod"
+#: ../data/gtkpod.glade.h:310
+msgid "Specify interval"
+msgstr "Intervall angeben"
+
+#: ../data/gtkpod.glade.h:311
+msgid "Start display automatically"
+msgstr "Anzeige automatisch starten"
+
+#: ../data/gtkpod.glade.h:312
+msgid "Synchronise Contacts, Calendar and Notes"
+msgstr "Kontakte, Kalender und Notizen abgleichen"
+
+#: ../data/gtkpod.glade.h:313
+msgid "Synchronize All"
+msgstr "Alles abgleichen"
+
+#: ../data/gtkpod.glade.h:314
+msgid "Synchronize Calendar"
+msgstr "Kalender abgleichen"
+
+#: ../data/gtkpod.glade.h:315
+msgid "Synchronize Contacts"
+msgstr "Kontakte abgleichen"
+
+#: ../data/gtkpod.glade.h:316
+msgid "Synchronize Notes"
+msgstr "Notizen abgleichen"
+
+#: ../data/gtkpod.glade.h:317
+msgid "Template for info field: "
+msgstr "Schablone für dieses Feld: "
+
+#: ../data/gtkpod.glade.h:318
+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 ""
-"ID3 Tags bei Änderungen in gtkpod ebenfalls auf\n"
-"der Festplatte und auf dem iPod ändern"
+"Die lokale Kopie des Stückes wird in der Wiedergabeliste eingetragen.\n"
+"Falls das Stück lokal nicht verfügbar ist, wird eine Fehlermeldung "
+"ausgegeben."
 
-#: gtkpod.glade:12165
+#: ../data/gtkpod.glade.h:319
 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."
+"The output of the background conversion scripts is copied below. Each page "
+"of the notebook corresponds to one background thread."
 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
+#: ../data/gtkpod.glade.h:320
+#, fuzzy
 msgid ""
-"Use selected encoding (on the 'General' page)\n"
-"when writing tags"
+"The tags are written to the files on your harddrive and on the iPod (if "
+"available)."
 msgstr ""
-"Ausgewählte Kodierung (auf der Allgemein-Seite)\n"
-"beim Schreiben von ID3-Tags verwenden"
+"Die Tags werden in die Originaldateien auf der Festplatte und auch auf dem "
+"iPod (falls angeschlossen) geschrieben."
 
-#: gtkpod.glade:12187
+#: ../data/gtkpod.glade.h:321
+msgid "The track on the iPod is referenced in the playlist file."
+msgstr "Die Datei auf dem iPod wird in die Wiedergabeliste eingetragen."
+
+#: ../data/gtkpod.glade.h:322
+msgid "This is the same option as in 'Edit/Delete Confirmation'"
+msgstr ""
+"Diese Option ist identisch mit der Sicherheitsabfrage \n"
+"beim 'Bearbeiten/Löschen'"
+
+#: ../data/gtkpod.glade.h:323
 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 "
@@ -1552,1150 +1538,1429 @@
 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 "
+"Unicode, um die Tags zu speichern. Dies bedeutet, dass 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)"
+#: ../data/gtkpod.glade.h:324
+msgid "This option will be re-activated when you upgrade gtkpod."
+msgstr ""
+"Diese Option wird automatisch aktiviert, wenn eine neue Version von gtkpod "
+"installiert wird."
 
-#: gtkpod.glade:12222
+#: ../data/gtkpod.glade.h:325
+msgid "Time:"
+msgstr "Zeit:"
+
+#: ../data/gtkpod.glade.h:326 ../src/display_sorttabs.c:2963
+#: ../src/display_spl.c:83 ../src/misc_conversion.c:62
+msgid "Title"
+msgstr "Titel"
+
+#: ../data/gtkpod.glade.h:327
 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."
+"Total\n"
+"(iPod)"
 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."
+"Insgesamt\n"
+"(iPod)"
 
-#: gtkpod.glade:12224
-msgid "Use 'Multi-Edit' for tracks selections"
-msgstr "'Multi-Edit' bei markierten Stücken verwenden"
-
-#: gtkpod.glade:12274
+#: ../data/gtkpod.glade.h:329
 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)."
+"Total\n"
+"(local)"
 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."
+"Insgesamt\n"
+"(lokal)"
 
-#: gtkpod.glade:12276
-msgid "Use 'Multi-Edit' also for title field"
-msgstr "'Multi-Edit' auch für das Titel-Feld verwenden"
+#: ../data/gtkpod.glade.h:331
+msgid "Tracks"
+msgstr "Stücke"
 
-#: gtkpod.glade:12329
-msgid "<b>Auto-Generated Playlists</b>"
-msgstr "<b>Automatisch generierte Wiedergabelisten</b>"
+#: ../data/gtkpod.glade.h:332
+msgid "Tracks Most Often Listened To"
+msgstr "Am häufigsten gehörte Stücke"
 
-#: gtkpod.glade:12397
-msgid "Number of tracks in generated playlists:"
-msgstr "Anzahl der Stücke in generierten Wiedergabelisten:"
-
-#: gtkpod.glade:12422
+#: ../data/gtkpod.glade.h:333
 msgid ""
-"Number of tracks in the generated playlists 'Most Often Listened', 'Best "
-"Rated' and 'Most Recently Played'. Choose '0' for 'no limit'."
+"Tracks can be transferred in the background as soon as they are added to an "
+"iPod repository. Otherwise they will be transferred when ejecting the "
+"contents of the iPod completely unchanged until then."
 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"
+#: ../data/gtkpod.glade.h:334
+msgid "Tracks in Selected Tab _Entry"
+msgstr "Stücke im ausgewählten _Sortierungseintrag"
+
+#: ../data/gtkpod.glade.h:335
+msgid "Tracks in Selected _Playlist"
+msgstr "Stücke in ausgewählter _Wiedergabeliste"
+
+#: ../data/gtkpod.glade.h:336
+msgid "Transfer tracks to the iPod in the background"
 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>"
+#: ../data/gtkpod.glade.h:337
+msgid "Translators"
+msgstr "Ãœbersetzer"
 
-#: gtkpod.glade:12560
-msgid "Before removing playlists or tracks from a playlist"
+#: ../data/gtkpod.glade.h:338
+msgid ""
+"Try to load contents of all connected iPods. For each iPod a separate "
+"repository must be set up."
 msgstr ""
-"Vor dem Entfernen von Wiedergabelisten oder Stücken aus einer Wiedergabeliste"
+"Versuche den Inhalt aller angeschlossenen iPods zu laden. Für jeden iPod "
+"muss ein separates Verzeichnis existieren."
 
-#: gtkpod.glade:12580
-msgid "Before removing tracks from the iPod"
-msgstr "Vor dem vollständigen Löschen vom iPod"
+#: ../data/gtkpod.glade.h:339
+msgid "Update _mserv Data from File"
+msgstr "_mserv-Daten aktualisieren"
 
-#: gtkpod.glade:12600
-msgid "Before removing tracks from the harddisk"
-msgstr "Vor dem vollständigen Löschen auf der Festplatte"
+#: ../data/gtkpod.glade.h:340
+msgid "Update/Sync all playlists now"
+msgstr "Aktualisierung/Abgleich aller Wiedergabelisten jetzt"
 
-#: gtkpod.glade:12620
-msgid "Before removing tracks from the local database"
-msgstr "Vor dem Entfernen aus der lokalen Datenbank"
+#: ../data/gtkpod.glade.h:341
+msgid "Update/Sync playlist now"
+msgstr "Aktualisierung/Abgleich der Wiedergabeliste jetzt"
 
-#: gtkpod.glade:12640
-msgid ""
-"Confirm before removing tracks from the iPod or repository\n"
-"when syncing playlists"
-msgstr ""
+#: ../data/gtkpod.glade.h:342
+msgid "Upper margin"
+msgstr "Obere Grenze"
 
-#: gtkpod.glade:12723
-msgid "<b>Play</b>"
-msgstr "<b>Wiedergabe</b>"
+#: ../data/gtkpod.glade.h:343
+msgid "Use 'Multi-Edit' also for title field"
+msgstr "'Multi-Edit' auch für das Titel-Feld verwenden"
 
-#: gtkpod.glade:12788
-msgid "Command for 'Play now':"
-msgstr "Befehl für 'Jetzt abspielen':"
+#: ../data/gtkpod.glade.h:344
+msgid "Use 'Multi-Edit' for tracks selections"
+msgstr "'Multi-Edit' bei markierten Stücken verwenden"
 
-#: gtkpod.glade:12816
-msgid "Command for 'Enqueue':"
-msgstr "Befehl für 'Zum Abspielen Vormerken':"
+#: ../data/gtkpod.glade.h:345
+#, fuzzy
+msgid "Use <i><Album>.jpg</i> in the parent directory"
+msgstr "Benutze <i>&lt;Album&gt;.jpg</i> im übergeordneten Verzeichnis"
 
-#: gtkpod.glade:12844
+#: ../data/gtkpod.glade.h:346
+#, fuzzy
+msgid "Use <i><Album>.jpg</i>, <i><Album>.png</i>..."
+msgstr "Benutze <i>&lt;Album&gt;.jpg</i>, <i>&lt;Album&gt;.png</i>..."
+
+#: ../data/gtkpod.glade.h:347
+msgid "Use <i>folder.jpg</i> as cover art."
+msgstr "Benutze <i>folder.jpg</i> als Cover-Bild"
+
+#: ../data/gtkpod.glade.h:348
+msgid "Use <i>folder.jpg</i>, <i>folder.png</i>..."
+msgstr "Benutze <i>folder.jpg</i>, <i>folder.png</i>..."
+
+#: ../data/gtkpod.glade.h:349
+msgid "Use mserv database to fill additional information"
+msgstr "Benutze die mserv Datenbank für zusätzliche Informationen"
+
+#: ../data/gtkpod.glade.h:350
 msgid ""
-"For example, 'xmms %s' will clear xmms' current playlist, add the selected "
-"tracks and start playing."
+"Use selected charset (Preferences/'Adding/Updating/ Syncing')\n"
+"for this filename."
 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."
+"Gewählten Zeichensatz (Einstellungen/'Hinzufügen/Aktualisieren/Abgleichen')\n"
+"für diesen Dateinamen verwenden."
 
-#: gtkpod.glade:12866
+#: ../data/gtkpod.glade.h:352
 msgid ""
-"For example, 'xmms -e %s' will append (enqueue) the selected tracks to xmms' "
-"current playlist."
+"Use selected encoding (on the 'General' page)\n"
+"when writing tags"
 msgstr ""
-"'xmms -e %s', z.B., fügt die ausgewählten Stücke zur aktuellen Playlist von "
-"xmms hinzu."
+"Ausgewählte Kodierung (auf der Allgemein-Seite)\n"
+"beim Schreiben von ID3-Tags verwenden"
 
-#: gtkpod.glade:12953
-msgid "<b>Volume Normalization</b>"
-msgstr "<b>Lautstärkenormalisierung</b>"
+#: ../data/gtkpod.glade.h:354
+#, fuzzy
+msgid "Use selected encoding also when updating or syncing tracks"
+msgstr ""
+"Gewählte Kodierung auch verwenden, wenn Stücke aktualisiert oder abgeglichen "
+"werden"
 
-#: gtkpod.glade:13018
-msgid "'mp3gain' executable:"
-msgstr "'mp3gain'-Programm:"
+#: ../data/gtkpod.glade.h:355
+msgid "Use this template to parse filename for tag information:"
+msgstr ""
+"Diese Schablone verwenden, um aus dem Dateinamen die Tags zu bestimmen:"
 
-#: 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."
+#: ../data/gtkpod.glade.h:356
+msgid "Username to be used for mserv database lookup."
 msgstr ""
+"Benutzername, der zum Nachschlagen in der mserv Datenbank verwendet wird."
 
-#: gtkpod.glade:13087
-#, fuzzy
-msgid "'aacgain' executable:"
-msgstr "'mp3gain'-Programm:"
+#: ../data/gtkpod.glade.h:357
+msgid "Username:"
+msgstr "Benutzername:"
 
-#: gtkpod.glade:13115
+#: ../data/gtkpod.glade.h:358
 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."
+"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, dass die Titel mehrerer Stücke auf den selben Text "
+"gesetzt werden sollen. Diese Option verhindert möglicherweise unerwünschte "
+"Resultate, insbesondere da noch keine 'Rückgängig'-Funktion existiert."
 
-#: gtkpod.glade:13183
-msgid "<b>Calendar/Contacts/Notes</b>"
+#: ../data/gtkpod.glade.h:359
+msgid "WAV with :"
 msgstr ""
 
-#: gtkpod.glade:13246
-msgid "Set options for Calendar/Contacts/Notes"
+#: ../data/gtkpod.glade.h:360
+msgid ""
+"When adding dirs/files, update information of\n"
+"existing tracks with identical filenames"
 msgstr ""
+"Beim Hinzufügen von Stücken bereits eingeleseneStücke mit demselben "
+"Dateinamen aktualisieren."
 
-#: gtkpod.glade:13381
-msgid "Details"
-msgstr "Details"
+#: ../data/gtkpod.glade.h:362
+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 ""
+"Wird ein Stück vom iPod kopiert, 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. Falls ja, wird das Kopieren übersprungen. Dies erlaubt "
+"es, einen schnellen Abgleich der Daten auf Ihrer Festplatte mit denen des "
+"iPods vorzunehmen."
 
-#: gtkpod.glade:13449
-msgid "Cover"
-msgstr "Artwork"
+#: ../data/gtkpod.glade.h:363
+msgid "When syncing playlists"
+msgstr "Beim Abgleich von Wiedergabelisten"
 
-#: gtkpod.glade:13538
-msgid "Set Cover Art"
-msgstr "Artwork setzen"
-
-#: gtkpod.glade:13575
+#: ../data/gtkpod.glade.h:364
 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."
+"Will show a list of tracks removed and a list of tracks newly added or "
+"updated."
 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."
+"Zeigt eine Liste von gelöschten, neu hinzugefügten oder aktualisierten "
+"Stücken."
 
-#: gtkpod.glade:13621
-msgid ""
-"Change all tracks\n"
-"simultaneously"
-msgstr "Alle Stücke simultan modifizieren"
+#: ../data/gtkpod.glade.h:365
+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:13713
-msgid "Remove Cover Art"
-msgstr "Artwork entfernen"
+#: ../data/gtkpod.glade.h:366
+msgid "Write all changes made to the disk and the iPod(s)."
+msgstr "Alle Änderungen auf Festplatte und iPod(s) sichern."
 
-#: gtkpod.glade:14646
+#: ../data/gtkpod.glade.h:367
 #, fuzzy
-msgid "(Checked)"
-msgstr "Ausgewählt"
+msgid ""
+"Write extended information (PC filenames, SHA1 hashes,\n"
+"encoding...). Recommended."
+msgstr ""
+"Erweiterte Informationen schreiben (PC Dateinamen, MD5-Prüfsummen, "
+"Kodierung). Empfohlen."
 
-#: gtkpod.glade:15088
-msgid "_Podcasts"
+#: ../data/gtkpod.glade.h:369
+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:16127
-msgid "_Other"
-msgstr "_Sonstiges"
+#: ../data/gtkpod.glade.h:370
+msgid "_About"
+msgstr "_Ãœber"
 
-#: gtkpod.glade:16425
-msgid "_Undo All"
-msgstr "_Alles Rückgängig"
+#: ../data/gtkpod.glade.h:371
+msgid "_All Tracks"
+msgstr "_Alle Stücke"
 
-#: gtkpod.glade:16499
-msgid "_Undo Track"
-msgstr "_Track Rückgängig"
+#: ../data/gtkpod.glade.h:372
+msgid "_Arrange Sort Tabs"
+msgstr "_Ordne Sortierungseinträge"
 
-#: gtkpod.glade:16546
-#, fuzzy
-msgid "Repository Options"
-msgstr "Sortieroptionen"
+#: ../data/gtkpod.glade.h:373
+msgid "_Check iPod's Files"
+msgstr "_Überprüfe iPod Dateien"
 
-#: gtkpod.glade:16667
-msgid "Add new repository/iPod"
+#: ../data/gtkpod.glade.h:374
+msgid "_Conversion Log"
 msgstr ""
 
-#: gtkpod.glade:16736 gtkpod.glade:18163 gtkpod.glade:18659
-#, fuzzy
-msgid "iPod mountpoint:"
-msgstr "iPod Mount _Point:"
+#: ../data/gtkpod.glade.h:375
+msgid "_Create Playlists"
+msgstr "_Erstelle Wiedergabelisten"
 
-#: gtkpod.glade:16764 gtkpod.glade:18135
-msgid "iTunesDB backup:"
-msgstr ""
+#: ../data/gtkpod.glade.h:376
+msgid "_Create iPod's Directories"
+msgstr "_iPod-Verzeichnis(se) erstellen"
 
-#: gtkpod.glade:16792 gtkpod.glade:18107 gtkpod.glade:18730 gtkpod.glade:18922
-msgid "Model:"
-msgstr ""
+#: ../data/gtkpod.glade.h:377
+msgid "_Delete"
+msgstr "_Löschen"
 
-#: gtkpod.glade:16820 gtkpod.glade:18079
-msgid "Path:"
-msgstr ""
+#: ../data/gtkpod.glade.h:378
+msgid "_Display"
+msgstr "_Anzeige"
 
-#: gtkpod.glade:16848
-msgid "<b>Synchronization</b>"
-msgstr "<b>Synchronisierung</b>"
+#: ../data/gtkpod.glade.h:379
+msgid "_Displayed Tracks"
+msgstr "_Angezeigte Stücke"
 
-#: gtkpod.glade:16906
-msgid "Contacts sync command:"
-msgstr "Befehl zum Abgleich der Kontakte:"
+#: ../data/gtkpod.glade.h:380
+msgid "_Edit"
+msgstr "_Bearbeiten"
 
-#: gtkpod.glade:16934
-msgid "Calendar sync command:"
-msgstr "Befehl zum Abgleich des Kalenders:"
+#: ../data/gtkpod.glade.h:381
+msgid "_Encoding (ID3, files):"
+msgstr "Kodi_erung (ID3, Dateien):"
 
-#: gtkpod.glade:16962
-msgid "Notes sync command:"
-msgstr "Befehl zum Abgleich der Notizen:"
+#: ../data/gtkpod.glade.h:382
+msgid "_Enqueue"
+msgstr "_Vormerken zum Abspielen"
 
-#: gtkpod.glade:16991
-msgid "Call automatically when synchronizing iTunesDB"
-msgstr "Automatisch aufrufen wenn die iTunesDB abgeglichen wird"
+#: ../data/gtkpod.glade.h:383
+msgid "_Export Tracks from Database"
+msgstr "E_xport aus der Datenbank"
 
-#: 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."
+#: ../data/gtkpod.glade.h:384
+msgid "_File"
+msgstr "_Datei"
 
-#: gtkpod.glade:17294
-msgid "Update/Sync all playlists now"
+#: ../data/gtkpod.glade.h:385
+msgid "_Find New"
 msgstr ""
 
-#: gtkpod.glade:17314
-#, fuzzy
-msgid "Delete repository"
-msgstr "Vom iPod entfernen "
+#: ../data/gtkpod.glade.h:386
+msgid "_General"
+msgstr "All_gemein"
 
-#: gtkpod.glade:17334 src/context_menus.c:430 src/context_menus.c:448
-#: src/context_menus.c:523
-msgid "I'm sure"
-msgstr ""
+#: ../data/gtkpod.glade.h:387
+msgid "_Help"
+msgstr "_Hilfe"
 
-#: gtkpod.glade:17390
-#, fuzzy
-msgid "<b>Repositories</b>"
-msgstr "<b>Tooltips</b>"
+#: ../data/gtkpod.glade.h:388
+msgid "_Ignore rules"
+msgstr "_Ignoriere die Regeln"
 
-#: gtkpod.glade:17587
-msgid ""
-"Directories to sync with are determined from the filenames of the tracks in "
-"the playlist."
-msgstr ""
+#: ../data/gtkpod.glade.h:389
+msgid "_Info Window"
+msgstr "Info _Fenster"
 
-#: gtkpod.glade:17589
-msgid "On startup automatically sync with playlist directories"
+#: ../data/gtkpod.glade.h:390
+msgid "_Last.FM"
 msgstr ""
 
-#: gtkpod.glade:17608
+#: ../data/gtkpod.glade.h:391
+msgid "_Less Sort Tabs"
+msgstr "_Weniger Sortierungseinträge"
+
+#: ../data/gtkpod.glade.h:392
+msgid "_Limit to"
+msgstr "_Begrenzen auf"
+
+#: ../data/gtkpod.glade.h:393
+msgid "_Load iPod(s)"
+msgstr "i_Pod(s) einlesen"
+
+#: ../data/gtkpod.glade.h:394
+msgid "_Local"
+msgstr "_Lokal"
+
+#: ../data/gtkpod.glade.h:395
+msgid "_M3U"
+msgstr "_M3U"
+
+#: ../data/gtkpod.glade.h:396
+msgid "_More Sort Tabs"
+msgstr "_Mehr Sortierungseinträge"
+
+#: ../data/gtkpod.glade.h:397
+msgid "_Newly Added Tracks"
+msgstr "_Neu hinzugefügte Stücke"
+
+#: ../data/gtkpod.glade.h:398
+msgid "_Normalize Volume"
+msgstr "_Lautstärke normalisieren"
+
+#: ../data/gtkpod.glade.h:399
+msgid "_Number of sort tabs:"
+msgstr "A_nzahl der Sortierungseinträge:"
+
+#: ../data/gtkpod.glade.h:400
+msgid "_Other"
+msgstr "S_onstiges"
+
+#: ../data/gtkpod.glade.h:401
+msgid "_PLS"
+msgstr "_PLS"
+
+#: ../data/gtkpod.glade.h:402
+msgid "_Play Now"
+msgstr "_Jetzt abspielen"
+
+#: ../data/gtkpod.glade.h:403
+msgid "_Podcasts"
+msgstr "_Podcasts"
+
+#: ../data/gtkpod.glade.h:404
+msgid "_Prefer Local"
+msgstr "_Bevorzuge lokal"
+
+#: ../data/gtkpod.glade.h:405
+msgid "_Save Changes"
+msgstr "_Änderungen sichern"
+
+#: ../data/gtkpod.glade.h:406
+msgid "_Save Displayed Track Order"
+msgstr "_Reihenfolge der angezeigten Stücke speichern"
+
+#: ../data/gtkpod.glade.h:407
+msgid "_Sorting"
+msgstr "_Sortierung"
+
+#: ../data/gtkpod.glade.h:408
 #, fuzzy
-msgid "On startup automatically sync with the following directory"
-msgstr "Sollen die folgenden Verzeichnisse abgeglichen werden?"
+msgid "_Synchronize Playlist with Dir(s)"
+msgstr "Wiedergabeliste mit Verzeichnis(sen) abgleichen"
 
-#: gtkpod.glade:17702
+#: ../data/gtkpod.glade.h:409
+msgid "_Toolbar"
+msgstr "Werkzeug_leiste"
+
+#: ../data/gtkpod.glade.h:410
+msgid "_Tools"
+msgstr "_Werkzeuge"
+
+#: ../data/gtkpod.glade.h:411
+msgid "_Tooltips"
+msgstr "Werkzeug_tipps"
+
+#: ../data/gtkpod.glade.h:412
+msgid "_Track Info"
+msgstr "_Meta-Infos"
+
+#: ../data/gtkpod.glade.h:413
+msgid "_Undo All"
+msgstr "_Alles rückgängig"
+
+#: ../data/gtkpod.glade.h:414
+msgid "_Undo Track"
+msgstr "_Stück rückgängig"
+
+#: ../data/gtkpod.glade.h:415
+msgid "_Update Tracks from File"
+msgstr "_Stücke aus Datei aktualisieren"
+
+#: ../data/gtkpod.glade.h:416
 #, fuzzy
-msgid "Don't automatically sync on startup"
-msgstr "Beim Starten iTunes-Datenbank automatisch importieren?"
+msgid "_Video"
+msgstr "_Ansicht"
 
-#: gtkpod.glade:17848
-msgid "On startup automatically update (Live Playlist)"
-msgstr ""
+#: ../data/gtkpod.glade.h:417
+msgid "_View"
+msgstr "_Ansicht"
 
-#: gtkpod.glade:17878
-msgid "Update/Sync playlist now"
+#: ../data/gtkpod.glade.h:418
+msgid "_iPod"
+msgstr "_iPod"
+
+#: ../data/gtkpod.glade.h:420
+#, no-c-format
+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 passt, wird verwendet. Beispiel: '%a - %A/%T %t.mp3;%t."
+"wav'."
 
-#: gtkpod.glade:17925
-#, fuzzy
-msgid "<b>Playlists</b>"
-msgstr "<b>Wiedergabe</b>"
+#: ../data/gtkpod.glade.h:421
+msgid "folder"
+msgstr "Mappe"
 
-#: gtkpod.glade:18042
-#, fuzzy
-msgid "Create Repository"
-msgstr "Vom iPod entfernen "
+#: ../data/gtkpod.glade.h:422
+msgid "folder.jpg"
+msgstr "folder.jpg"
 
-#: gtkpod.glade:18320
+#: ../data/gtkpod.glade.h:424
+#, no-c-format
+msgid "folder.jpg;%a.jpg"
+msgstr "folder.jpg;%a.jpg"
+
+#: ../data/gtkpod.glade.h:425
+msgid "gtkpod"
+msgstr "gtkpod"
+
+#: ../data/gtkpod.glade.h:426
+msgid "gtkpod Info"
+msgstr "gtkpod Info"
+
+#: ../data/gtkpod.glade.h:427
 msgid ""
-"Insert before\n"
-"Insert after"
+"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, dass die Dateinamen und ID3 tags in der Kodierung "
+"vorliegen, die hier angegeben wird. Diese kann natürlich zwischen zwei "
+"Aufrufen von 'Dateien hinzufügen' oder 'Verzeichnisse hinzufügen' geändert "
+"werden. 'Systemzeichensatz' bezeichnet die Standardkodierung der benutzten "
+"Sprache."
 
-#: gtkpod.glade:18358
-#, fuzzy
-msgid "Repository type:"
-msgstr "Sortieroptionen"
+#: ../data/gtkpod.glade.h:428
+msgid "gtkpod options"
+msgstr "gtkpod Optionen"
 
-#: gtkpod.glade:18386
+#. These are the items for the 'Repository type' combo in the 'Create Repository' dialog. Keep the three items in order!
+#: ../data/gtkpod.glade.h:430
 msgid ""
 "iPod\n"
 "Local Repository (Standard)\n"
 "Local Repository (Podcasts)\n"
 msgstr ""
+"iPod\n"
+"Lokale Datenbank (Standard)\n"
+"Lokale Datenbank (Podcasts)\n"
 
-#: gtkpod.glade:18407
+#: ../data/gtkpod.glade.h:434
+msgid "iPod mountpoint:"
+msgstr "iPod Einhängepunkt:"
+
+#: ../data/gtkpod.glade.h:435
+msgid "iTunesDB backup:"
+msgstr "Sicherung iTunes DB:"
+
+#: ../data/gtkpod.glade.h:436
 #, fuzzy
-msgid "Repository name:"
-msgstr "Sortieroptionen"
+msgid "label"
+msgstr "label21"
 
-#: gtkpod.glade:18543 gtkpod.glade:18806
-msgid "Initialize iPod"
-msgstr ""
+#: ../data/gtkpod.glade.h:437
+msgid "mserv Root:"
+msgstr "mserv Stammverzeichnis:"
 
-#: gtkpod.glade:18613
-msgid "<b>Please select mountpoint and your iPod model</b>"
-msgstr ""
+#: ../data/gtkpod.glade.h:438
+msgid "mserv database lookup will be done for music in this directory."
+msgstr "Die mserv Datenbank wird für Stücke in diesem Verzeichnis verwendet."
 
-#: src/charset.c:53
+#: ../data/gtkpod.glade.h:439 ../src/details.c:1175
+msgid "n/a"
+msgstr "---"
+
+#: ../data/gtkpod.glade.h:440
+msgid "special_sorttab -- Don't translate!"
+msgstr "special_sorttab -- Don't translate!\""
+
+#: ../src/charset.c:53
 msgid "Arabic (IBM-864)"
 msgstr "Arabisch (IBM-864)"
 
-#: src/charset.c:54
+#: ../src/charset.c:54
 msgid "Arabic (ISO-8859-6)"
 msgstr "Arabisch (ISO-8859-6)"
 
-#: src/charset.c:55
+#: ../src/charset.c:55
 msgid "Arabic (Windows-1256)"
 msgstr "Arabisch (Windows-1256)"
 
-#: src/charset.c:56
+#: ../src/charset.c:56
 msgid "Baltic (ISO-8859-13)"
 msgstr "Baltisch (ISO-8859-13)"
 
-#: src/charset.c:57
+#: ../src/charset.c:57
 msgid "Baltic (ISO-8859-4)"
 msgstr "Baltisch (ISO-8859-4)"
 
-#: src/charset.c:58
+#: ../src/charset.c:58
 msgid "Baltic (Windows-1257)"
 msgstr "Baltisch (Windows-1257)"
 
-#: src/charset.c:59
+#: ../src/charset.c:59
 msgid "Celtic (ISO-8859-14)"
 msgstr "Keltisch (ISO-8859-14)"
 
-#: src/charset.c:60
+#: ../src/charset.c:60
 msgid "Central European (IBM-852)"
 msgstr "Mitteleuropäisch (IBM-852)"
 
-#: src/charset.c:61
+#: ../src/charset.c:61
 msgid "Central European (ISO-8859-2)"
 msgstr "Mitteleuropäisch (ISO-8859-2)"
 
-#: src/charset.c:62
+#: ../src/charset.c:62
 msgid "Central European (Windows-1250)"
 msgstr "Mitteleuropäisch (Windows-1250)"
 
-#: src/charset.c:63
+#: ../src/charset.c:63
 msgid "Chinese Simplified (GB18030)"
 msgstr "Vereinfachtes Chinesisch (GB18030)"
 
-#: src/charset.c:64
+#: ../src/charset.c:64
 msgid "Chinese Simplified (GB2312)"
 msgstr "Vereinfachtes Chinesisch (GB2312)"
 
-#: src/charset.c:65
+#: ../src/charset.c:65
 msgid "Chinese Traditional (Big5)"
 msgstr "Traditionelles Chinesisch (Big5)"
 
-#: src/charset.c:66
+#: ../src/charset.c:66
 msgid "Chinese Traditional (Big5-HKSCS)"
 msgstr "Traditionelles Chinesisch (Big5-HKSCS)"
 
-#: src/charset.c:67
+#: ../src/charset.c:67
 msgid "Cyrillic (IBM-855)"
 msgstr "Kyrillisch (IBM-855)"
 
-#: src/charset.c:68
+#: ../src/charset.c:68
 msgid "Cyrillic (ISO-8859-5)"
 msgstr "Kyrillisch (ISO-8859-5)"
 
-#: src/charset.c:69
+#: ../src/charset.c:69
 msgid "Cyrillic (ISO-IR-111)"
 msgstr "Kyrillisch (ISO-IR-111)"
 
-#: src/charset.c:70
+#: ../src/charset.c:70
 msgid "Cyrillic (KOI8-R)"
 msgstr "Kyrillisch (KOI8-R)"
 
-#: src/charset.c:71
+#: ../src/charset.c:71
 msgid "Cyrillic (Windows-1251)"
 msgstr "Kyrillisch (Windows-1251)"
 
-#: src/charset.c:72
+#: ../src/charset.c:72
 msgid "Cyrillic/Russian (CP-866)"
 msgstr "Kyrillisch/Russisch (CP-866)"
 
-#: src/charset.c:73
+#: ../src/charset.c:73
 msgid "Cyrillic/Ukrainian (KOI8-U)"
 msgstr "Kyrillisch/Ukrainisch (KOI8-U)"
 
-#: src/charset.c:74
+#: ../src/charset.c:74
 msgid "English (US-ASCII)"
 msgstr "Englisch (US-ASCII)"
 
-#: src/charset.c:75
+#: ../src/charset.c:75
 msgid "Greek (ISO-8859-7)"
 msgstr "Griechisch (ISO-8859-7)"
 
-#: src/charset.c:76
+#: ../src/charset.c:76
 msgid "Greek (Windows-1253)"
 msgstr "Griechisch (Windows-1253)"
 
-#: src/charset.c:77
+#: ../src/charset.c:77
 msgid "Hebrew (IBM-862)"
 msgstr "Hebräisch (IBM-862)"
 
-#: src/charset.c:78
+#: ../src/charset.c:78
 msgid "Hebrew (Windows-1255)"
 msgstr "Hebräisch (Windows-1255)"
 
-#: src/charset.c:79
+#: ../src/charset.c:79
 msgid "Japanese (automatic detection)"
 msgstr "Japanisch (automatische Detektion)"
 
-#: src/charset.c:80
+#: ../src/charset.c:80
 msgid "Japanese (EUC-JP)"
 msgstr "Japanisch (EUC-JP)"
 
-#: src/charset.c:81
+#: ../src/charset.c:81
 msgid "Japanese (ISO-2022-JP)"
 msgstr "Japanisch (ISO-2022-JP)"
 
-#: src/charset.c:82
+#: ../src/charset.c:82
 msgid "Japanese (Shift_JIS)"
 msgstr "Japanisch (Shift_JIS)"
 
-#: src/charset.c:83
+#: ../src/charset.c:83
 msgid "Korean (EUC-KR)"
 msgstr "Koreanisch (EUC-KR)"
 
-#: src/charset.c:84
+#: ../src/charset.c:84
 msgid "Nordic (ISO-8859-10)"
 msgstr "Nordisch (ISO-8859-10)"
 
-#: src/charset.c:85
+#: ../src/charset.c:85
 msgid "South European (ISO-8859-3)"
 msgstr "Südeuropäisch (ISO-8859-3)"
 
-#: src/charset.c:86
+#: ../src/charset.c:86
 msgid "Thai (TIS-620)"
 msgstr "Thai (TIS-620)"
 
-#: src/charset.c:87
+#: ../src/charset.c:87
 msgid "Turkish (IBM-857)"
 msgstr "Türkisch (IBM-857)"
 
-#: src/charset.c:88
+#: ../src/charset.c:88
 msgid "Turkish (ISO-8859-9)"
 msgstr "Türkisch (ISO-8859-9)"
 
-#: src/charset.c:89
+#: ../src/charset.c:89
 msgid "Turkish (Windows-1254)"
 msgstr "Türkisch (Windows-1254)"
 
-#: src/charset.c:90
+#: ../src/charset.c:90
 msgid "Unicode (UTF-7)"
 msgstr "Unicode (UTF-7)"
 
-#: src/charset.c:91
+#: ../src/charset.c:91
 msgid "Unicode (UTF-8)"
 msgstr "Unicode (UTF-8)"
 
-#: src/charset.c:92
+#: ../src/charset.c:92
 msgid "Unicode (UTF-16BE)"
 msgstr "Unicode (UTF-16BE)"
 
-#: src/charset.c:93
+#: ../src/charset.c:93
 msgid "Unicode (UTF-16LE)"
 msgstr "Unicode (UTF-16LE)"
 
-#: src/charset.c:94
+#: ../src/charset.c:94
 msgid "Unicode (UTF-32BE)"
 msgstr "Unicode (UTF-32BE)"
 
-#: src/charset.c:95
+#: ../src/charset.c:95
 msgid "Unicode (UTF-32LE)"
 msgstr "Unicode (UTF-32LE)"
 
-#: src/charset.c:96
+#: ../src/charset.c:96
 msgid "Vietnamese (VISCII)"
 msgstr "Vietnamesisch (VISCII)"
 
-#: src/charset.c:97
+#: ../src/charset.c:97
 msgid "Vietnamese (Windows-1258)"
 msgstr "Vietnamesisch (Windows-1258)"
 
-#: src/charset.c:98
+#: ../src/charset.c:98
 msgid "Visual Hebrew (ISO-8859-8)"
 msgstr "Visuelles Hebräisch (ISO-8859-8)"
 
-#: src/charset.c:99
+#: ../src/charset.c:99
 msgid "Western (IBM-850)"
 msgstr "Westlich (IBM-850)"
 
-#: src/charset.c:100
+#: ../src/charset.c:100
 msgid "Western (ISO-8859-1)"
 msgstr "Westlich (ISO-8859-1)"
 
-#: src/charset.c:101
+#: ../src/charset.c:101
 msgid "Western (ISO-8859-15)"
 msgstr "Westlich (ISO-8859-15)"
 
-#: src/charset.c:102
+#: ../src/charset.c:102
 msgid "Western (Windows-1252)"
 msgstr "Westlich (Windows-1252)"
 
 #. sanity!
 #. check for "System Charset" and return NULL
-#: src/charset.c:160 src/charset.c:170 src/charset.c:223
+#: ../src/charset.c:160 ../src/charset.c:170 ../src/charset.c:223
 msgid "System Charset"
 msgstr "System-Zeichensatz"
 
 #. we are not the first instance of gtkpod -- the socket is
 #. already being used, so we pass
-#: src/clientserver.c:215
+#: ../src/clientserver.c:214
 msgid ""
 "Another instance of gtkpod was detected. Playcount server not started.\n"
 msgstr ""
 "Eine Instanz von gtkpod läuft bereits. Der Playcount-Server wird nicht "
 "gestartet.\n"
 
-#: src/confirmation.c:376
+#: ../src/confirmation.c:377
 msgid "Confirmation Dialogue"
 msgstr "Sicherheitsabfrage"
 
-#: src/context_menus.c:367 src/tools.c:852
+#: ../src/context_menus.c:359
+#, c-format
+msgid "Copied \"%s\" playlist to %s"
+msgstr ""
+
+#: ../src/context_menus.c:398
+#, fuzzy, c-format
+msgid "Copied %d track to '%s'"
+msgid_plural "Copied %d tracks to '%s'"
+msgstr[0] "%d von insgesamt %d Stück kopiert."
+msgstr[1] "%d von insgesamt %d Stücken kopiert."
+
+#: ../src/context_menus.c:426
+#, c-format
+msgid "Copied '%s' playlist to '%s' in '%s'"
+msgstr ""
+
+#: ../src/context_menus.c:459
+#, fuzzy, c-format
+msgid "Copied %d track to '%s' in '%s'"
+msgid_plural "Copied %d tracks to %s in '%s'"
+msgstr[0] "%d Stück wurde aus der Wiedergabeliste '%s' entfernt."
+msgstr[1] "%d Stücke wurden aus der Wiedergabeliste '%s' entfernt."
+
+#: ../src/context_menus.c:619 ../src/tools.c:854
 msgid "Play Now"
-msgstr "Jetzt Spielen"
+msgstr "Jetzt abpielen"
 
-#: src/context_menus.c:373 src/tools.c:865
+#: ../src/context_menus.c:625 ../src/tools.c:867
 msgid "Enqueue"
-msgstr "Zum Abspielen Vormerken"
+msgstr "Zum Abspielen vormerken"
 
-#: src/context_menus.c:379
-#, fuzzy
+#: ../src/context_menus.c:631
 msgid "Copy Tracks to Filesystem"
-msgstr "_Aktualiere Stücke aus der Datei"
+msgstr "Kopiere Stücke zum Verzeichnis"
 
-#: src/context_menus.c:386 src/file_export.c:1081
+#: ../src/context_menus.c:638 ../src/file_export.c:1085
 msgid "Create Playlist File"
-msgstr "Wiedergabelistendatei erstellen"
+msgstr "_Datei der Wiedergabeliste erstellen"
 
-#: src/context_menus.c:393
+#: ../src/context_menus.c:645
 msgid "Create new Playlist"
 msgstr "Neue Wiedergabeliste erstellen"
 
-#: src/context_menus.c:400
-#, fuzzy
+#: ../src/context_menus.c:652
 msgid "Update Tracks from File"
-msgstr "_Aktualiere Stücke aus der Datei"
+msgstr "_Aktualisiere Stücke aus der Datei"
 
-#: src/context_menus.c:414
+#: ../src/context_menus.c:666
 msgid "Sync Playlist with Dir(s)"
-msgstr ""
+msgstr "Wiedergabeliste mit Verzeichnis(sen) abgleichen"
 
-#: src/context_menus.c:424
+#: ../src/context_menus.c:676
 msgid "Remove All Tracks from iPod"
 msgstr "Alle Stücke vom iPod entfernen"
 
-#: src/context_menus.c:442
+#: ../src/context_menus.c:694
 msgid "Remove All Podcasts from iPod"
 msgstr "Alle Podcasts vom iPod entfernen"
 
-#: src/context_menus.c:457
+#: ../src/context_menus.c:709
 msgid "Delete Including Tracks"
 msgstr "Löschen inklusive der Stücke"
 
-#: src/context_menus.c:465
+#: ../src/context_menus.c:717
 msgid "Delete But Keep Tracks"
-msgstr "Löschen aber Stücke behalten"
+msgstr "Löschen, aber Stücke behalten"
 
-#: src/context_menus.c:473
-#, fuzzy
+#: ../src/context_menus.c:725
 msgid "Edit iPod Properties"
-msgstr "iPod-Verzeichnisstruktur erstellen"
+msgstr "iPod Verzeichnisstruktur bearbeiten"
 
-#: src/context_menus.c:493
+#: ../src/context_menus.c:732
 #, fuzzy
+msgid "Edit Repository Properties"
+msgstr "iPod Verzeichnisstruktur bearbeiten"
+
+#: ../src/context_menus.c:739
+msgid "Edit Playlist Properties"
+msgstr "Editiere Eigenschaften der Wiedergabeliste"
+
+#: ../src/context_menus.c:767
+msgid "View Full Size Artwork"
+msgstr ""
+
+#: ../src/context_menus.c:774
+#, fuzzy
+msgid "Select Cover From File"
+msgstr "Vom iPod entfernen "
+
+#: ../src/context_menus.c:781
+msgid "Find Cover on Web"
+msgstr ""
+
+#: ../src/context_menus.c:794
 msgid "Load iPod"
-msgstr "_iPod"
+msgstr "iPod einlesen"
 
-#: src/context_menus.c:500
+#: ../src/context_menus.c:801
 msgid "Eject iPod"
-msgstr ""
+msgstr "iPod trennen"
 
-#: src/context_menus.c:517
+#: ../src/context_menus.c:818
 msgid "Remove All Tracks from Database"
 msgstr "Alle Stücke aus der Datenbank entfernen"
 
-#: src/context_menus.c:532
+#: ../src/context_menus.c:833
 msgid "Delete Including Tracks (Harddisk)"
 msgstr "Löschen inklusive der Stücke (Festplatte)"
 
-#: src/context_menus.c:540
+#: ../src/context_menus.c:841
 msgid "Delete Including Tracks (Database)"
 msgstr "Löschen inklusive der Stücke (Datenbank)"
 
-#: src/context_menus.c:548
+#: ../src/context_menus.c:849
 msgid "Delete From iPod"
 msgstr "Vom iPod entfernen "
 
-#: src/context_menus.c:556
+#: ../src/context_menus.c:857
 msgid "Delete From Playlist"
-msgstr "Von der Wiedergabeliste entfernen"
+msgstr "Aus der Wiedergabeliste entfernen"
 
-#: src/context_menus.c:564
+#: ../src/context_menus.c:865
 msgid "Delete From Harddisk"
 msgstr "Von der Festplatte löschen"
 
-#: src/context_menus.c:572
+#: ../src/context_menus.c:873
 msgid "Delete From Database"
 msgstr "Aus der Datenbank entfernen"
 
-#: src/context_menus.c:580
+#: ../src/context_menus.c:881
 msgid "Alphabetize"
-msgstr "Sortieren"
+msgstr "Alphabetisch sortieren"
 
-#: src/context_menus.c:596
+#: ../src/context_menus.c:949 ../src/context_menus.c:998
 #, fuzzy
-msgid "Edit Playlist Properties"
-msgstr "Wiedergabeliste aus Datei hinzufügen"
+msgid "Copy selected playlist to..."
+msgstr "Ausgewählte Wiedergabeliste"
 
-#: src/date_parser.l:269
+#: ../src/context_menus.c:1051
+#, fuzzy
+msgid "Copy selected track(s) to..."
+msgstr "Gelöschte Stücke"
+
+#: ../src/date_parser.l:269
 #, c-format
 msgid "Date format error: unrecognized character: '%s'\n"
-msgstr "Datums Formatvorgabefehler: unbekanntes Zeichen: '%s'\n"
+msgstr "Formatfehler Datum: unbekanntes Zeichen: '%s'\n"
 
-#: src/details.c:1182
+#: ../src/details.c:700
+#, c-format
+msgid "%s (image data corrupted or unreadable)"
+msgstr ""
+
+#: ../src/details.c:1246
 msgid "<b>n/a</b>"
 msgstr "<b>---</b>"
 
-#: src/display.c:891
+#: ../src/display.c:647
 msgid "Edit selected entry of which sort tab?"
-msgstr "Markierten Eintrag aus welchem Filter-Tab editieren?"
+msgstr "Markierten Begriff aus welchem Sortierungseintrag editieren?"
 
 #. no entry selected
-#: src/display.c:898 src/misc_confirm.c:431 src/misc_track.c:1613
+#: ../src/display.c:654 ../src/misc_confirm.c:435 ../src/misc_track.c:2059
 msgid "No entry selected."
-msgstr "Kein Tab-Eintrag ausgewählt."
+msgstr "Kein Eintrag ausgewählt."
 
-#: src/display.c:1057 src/display.c:1384 src/display.c:1440 src/display.c:1494
-#: src/display.c:1549 src/display.c:1810
+#: ../src/display.c:813 ../src/display.c:1133 ../src/display.c:1189
+#: ../src/display.c:1243 ../src/display.c:1298 ../src/display.c:1559
 #, c-format
 msgid "No entry selected in Sort Tab %d"
-msgstr "Kein Eintrag im Sort Tab %d ausgewählt"
+msgstr "Kein Begriff im Sortierungseintrag %d ausgewählt"
 
-#: src/display.c:1096
+#: ../src/display.c:852
 msgid "Remove entry of which sort tab from database?"
-msgstr "Markierten Eintrag aus welchem Filter-Tab entfernen?"
+msgstr "Markierten Begriff aus welchem Sortierungseintrag entfernen?"
 
-#: src/display.c:1104
+#: ../src/display.c:860
 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?"
+"Stücke im ausgewählten Eintrag aus welchem Filter-Eintrag vom iPod löschen?"
 
-#: src/display.c:1126
+#: ../src/display.c:882
 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 "
+"Stücke im ausgewählten Eintrag aus welchem Filter-Eintrag von der Festplatte "
 "löschen?"
 
-#: src/display.c:1156
+#: ../src/display.c:912
 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 "
+"Stücke im ausgewählten Eintrag aus welchem Filter-Eintrag der "
 "Wiedergabeliste löschen?"
 
-#: src/display.c:1183 src/display.c:1221
+#: ../src/display.c:939 ../src/display.c:977
 #, c-format
 msgid ""
 "iPod at '%s' is not loaded.\n"
 "Please load it first."
 msgstr ""
+"iPod unter '%s' wurde nicht eingelesen.\n"
+"Bitte zuerst einlesen."
 
-#: src/display.c:1265 src/display.c:1292
+#: ../src/display.c:1014 ../src/display.c:1041
 msgid "Update selected entry of which sort tab?"
-msgstr "Markierten Eintrag aus welchem Sort Tab aktualisieren?"
+msgstr "Markierten Begriff aus welchem Sortierungseintrag aktualisieren?"
 
-#: src/display.c:1378
+#: ../src/display.c:1127
 msgid "Export selected entry of which sort tab?"
-msgstr "Markierten Eintrag aus welchem Sort Tab aktualisieren?"
+msgstr "Markierten Begriff aus welchem Sortierungseintrag exportieren?"
 
-#: src/display.c:1434
+#: ../src/display.c:1183
 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?"
+msgstr "Datei der Wiedergabeliste für welchen Sortierungseintrag erstellen?"
 
-#: src/display.c:1488
+#: ../src/display.c:1237
 msgid "Play tracks in selected entry of which sort tab?"
-msgstr "Stücke aus welchem Sort Tab abspielen?"
+msgstr "Stücke aus welchem Sortierungseintrag abspielen?"
 
-#: src/display.c:1543
+#: ../src/display.c:1292
 msgid "Enqueue tracks in selected entry of which sort tab?"
-msgstr "Stücke aus welchem Sort Tab zum abspielen vormerken?"
+msgstr "Stücke aus welchem Sortierungseintrag zum Abspielen vormerken?"
 
-#: src/display.c:1800
+#: ../src/display.c:1549
 msgid "Normalize tracks in selected entry of which sort tab?"
-msgstr "Stücke aus welchem Sort Tab normalisieren?"
+msgstr "Stücke aus welchem Sortierungseintrag normalisieren?"
 
-#: src/display_itdb.c:355
-#, fuzzy, c-format
+#: ../src/display_coverart.c:1714
+msgid "Failed to remove the album from the album hash store."
+msgstr ""
+
+#: ../src/display_itdb.c:376
+#, c-format
 msgid "Failed to set cover art: '%s'\n"
-msgstr "Konnte Artwork nicht setzen: '%s'"
+msgstr "Konnte Cover-Bild nicht einfügen: '%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
+#: ../src/display_itdb.c:851 ../src/display_itdb.c:984
 msgid "Local"
 msgstr "Lokal"
 
 #. add podcast playlist
-#: src/display_itdb.c:852 src/display_itdb.c:963 src/display_itdb.c:991
+#: ../src/display_itdb.c:859 ../src/display_itdb.c:982
+#: ../src/display_itdb.c:1010
 msgid "Podcasts"
 msgstr "Podcasts"
 
-#: src/display_itdb.c:1050
+#: ../src/display_itdb.c:868 ../src/display_itdb.c:986
+#: ../src/repository.c:1186
+msgid "iPod"
+msgstr "iPod"
+
+#: ../src/display_itdb.c:1069
 #, c-format
 msgid "Increased playcount for '%s'"
-msgstr "Playcount für '%s' wurde erhöht"
+msgstr "Wiedergabezähler 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:496 src/display_playlists.c:538
+#: ../src/display_playlists.c:500 ../src/display_playlists.c:542
 msgid "Error: drag from iPod not possible in offline mode."
-msgstr "Fehler: Ein Drag vom iPod ist im Offline-Modus nicht möglich."
+msgstr "Fehler: Verschieben vom iPod ist im Offline-Modus nicht möglich."
 
-#: src/display_playlists.c:565 src/display_songs.c:287
+#: ../src/display_playlists.c:569 ../src/display_tracks.c:286
 #, 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:851
+#: ../src/display_playlists.c:849 ../src/display_playlists.c:861
 msgid "Can't reorder sorted treeview."
-msgstr "Die Anzeige kann nicht umgeordnet werden."
+msgstr "Die Anzeige kann nicht neu geordnet werden."
 
-#: src/display_playlists.c:944
+#: ../src/display_playlists.c:938
 #, 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 ""
-"Diese Art von Drag-and-Drop (%d) wird (noch) nicht unterstützt. Wenn Sie "
-"denken eine Unterstützung wäre sinnvoll, kontaktieren Sie bitten den Autor.\n"
+"Diese Art von 'Verschieben/Einfügen' (%d) wird (noch) nicht unterstützt. "
+"Wenn Sie denken eine Unterstützung wäre sinnvoll, kontaktieren Sie bitten "
+"den Autor.\n"
 "\n"
 
-#: 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: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 ""
-"Aufgrund eines Fehlers in der GTK-Bibliothek (%d.%d.%d < 2.5.4) ist es nicht "
-"möglich, die Track-Ansicht in den unsortierten Zustand zurückzusetzen.\n"
-"\n"
-
-#: src/display_songs.c:1923
-msgid "Rtng"
-msgstr "Bwrtng"
-
-#: 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 "Ãœbertragen"
-
-#: src/display_songs.c:1939
-msgid "Cmpl"
-msgstr "Smpl"
-
-#: src/display_songs.c:1945 src/display_spl.c:94
-msgid "Time"
-msgstr "Zeit"
-
-#: src/display_songs.c:1948
-msgid "Plycnt"
-msgstr "Plycnt"
-
-#: src/display_songs.c:1960
-msgid "Released"
-msgstr "Veröffentlicht"
-
-#: 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:1966
-msgid "Vol."
-msgstr "Ltst."
-
-#: src/display_songs.c:1969
-msgid "Sndchk."
-msgstr "Sndchk."
-
-#: src/display_sorttabs.c:456
+#: ../src/display_sorttabs.c:473
 msgid "'Played' condition ignored because of error."
 msgstr ""
 "Die Bedingung 'Zuletzt abgespielt' wurde aufgrund eines Fehlers ignoriert."
 
-#: src/display_sorttabs.c:459
+#: ../src/display_sorttabs.c:476
 msgid "'Modified' condition ignored because of error."
 msgstr ""
 "Die Bedingung 'Zuletzt modifiziert' wurde aufgrund eines Fehlers ignoriert."
 
-#: src/display_sorttabs.c:462
+#: ../src/display_sorttabs.c:479
 msgid "'Added' condition ignored because of error."
 msgstr "Die Bedingung 'Hinzugefügt' wurde aufgrund eines Fehlers ignoriert."
 
-#: src/display_sorttabs.c:1582 src/misc_conversion.c:60
+#: ../src/display_sorttabs.c:1563 ../src/misc_conversion.c:59
 msgid "All"
 msgstr "Alle"
 
-#: src/display_sorttabs.c:1608
+#: ../src/display_sorttabs.c:1589
 msgid "Compilations"
 msgstr "Sampler"
 
-#: src/display_sorttabs.c:2951
+#: ../src/display_sorttabs.c:2960
 msgid "Comp."
 msgstr "Komp."
 
-#: src/display_sorttabs.c:2960
+#: ../src/display_sorttabs.c:2966 ../src/display_spl.c:88
+#: ../src/display_tracks.c:2002 ../src/misc_conversion.c:84
+msgid "Year"
+msgstr "Jahr"
+
+#: ../src/display_sorttabs.c:2969
 msgid "Special"
 msgstr "Spezial"
 
-#: src/display_sorttabs.c:3216
+#: ../src/display_sorttabs.c:3230
 msgid "Last Played"
-msgstr "Zuletzt Gespielt"
+msgstr "Zuletzt gespielt"
 
-#: src/display_sorttabs.c:3217
+#: ../src/display_sorttabs.c:3231
 msgid "Last Modified"
-msgstr "Zuletzt Modifiziert"
+msgstr "Zuletzt modifiziert"
 
-#: src/display_spl.c:64
+#: ../src/display_spl.c:64
 msgid "days"
 msgstr "Tage"
 
-#: src/display_spl.c:65
+#: ../src/display_spl.c:65
 msgid "weeks"
 msgstr "Wochen"
 
-#: src/display_spl.c:66
+#: ../src/display_spl.c:66
 msgid "months"
 msgstr "Monate"
 
-#: src/display_spl.c:73
+#: ../src/display_spl.c:73
 msgid "kbps"
-msgstr "kbps"
+msgstr "kbit/s"
 
-#: src/display_spl.c:74
+#: ../src/display_spl.c:74
 msgid "Hz"
 msgstr "Hz"
 
-#: src/display_spl.c:75 src/display_spl.c:160 src/info.c:777
+#: ../src/display_spl.c:75 ../src/display_spl.c:179 ../src/info.c:777
 msgid "MB"
 msgstr "MB"
 
-#: src/display_spl.c:76
+#: ../src/display_spl.c:76
 msgid "secs"
 msgstr "Sek."
 
-#: src/display_spl.c:86 src/misc_conversion.c:75
+#: ../src/display_spl.c:86 ../src/misc_conversion.c:74
 msgid "Bitrate"
 msgstr "Bitrate"
 
 #. 15
-#: src/display_spl.c:87 src/misc_conversion.c:76
+#: ../src/display_spl.c:87 ../src/misc_conversion.c:75
 msgid "Samplerate"
 msgstr "Samplerate"
 
-#: src/display_spl.c:90
+#: ../src/display_spl.c:90
 msgid "Kind"
 msgstr "Art"
 
-#: src/display_spl.c:91 src/misc_conversion.c:82
+#: ../src/display_spl.c:91 ../src/misc_conversion.c:81
 msgid "Date modified"
 msgstr "Modifiziert"
 
-#: src/display_spl.c:92
+#: ../src/display_spl.c:92
 msgid "Track number"
-msgstr "Tracknummer"
+msgstr "Stücknummer"
 
-#: src/display_spl.c:93
+#: ../src/display_spl.c:93
 msgid "Size"
 msgstr "Dateigröße"
 
-#: src/display_spl.c:95 src/misc_conversion.c:65
+#: ../src/display_spl.c:94 ../src/display_tracks.c:1984
+msgid "Time"
+msgstr "Zeit"
+
+#: ../src/display_spl.c:95 ../src/misc_conversion.c:64
 msgid "Comment"
 msgstr "Kommentar"
 
-#: src/display_spl.c:96 src/misc_conversion.c:80
+#: ../src/display_spl.c:96 ../src/misc_conversion.c:79
 msgid "Date added"
 msgstr "Hinzugefügt"
 
-#: src/display_spl.c:99
+#: ../src/display_spl.c:99
 msgid "Last played"
-msgstr "Zuletzt Gespielt"
+msgstr "Zuletzt gespielt"
 
-#: src/display_spl.c:100
+#: ../src/display_spl.c:100
 msgid "Disc number"
 msgstr "CD-Nummer"
 
-#: src/display_spl.c:102 src/misc_conversion.c:88
+#: ../src/display_spl.c:102 ../src/misc_conversion.c:87
 msgid "Compilation"
 msgstr "Sampler"
 
-#: src/display_spl.c:103 src/misc_conversion.c:77
+#: ../src/display_spl.c:103 ../src/misc_conversion.c:76
 msgid "BPM"
 msgstr "BPM"
 
-#: src/display_spl.c:104 src/misc_conversion.c:87
+#: ../src/display_spl.c:104 ../src/misc_conversion.c:86
 msgid "Grouping"
 msgstr "Gruppierung"
 
-#: src/display_spl.c:111
+#: ../src/display_spl.c:106
+msgid "Video Kind"
+msgstr ""
+
+#: ../src/display_spl.c:107 ../src/display_spl.c:210 ../src/display_spl.c:219
+#: ../src/misc_conversion.c:101
+msgid "TV Show"
+msgstr ""
+
+#: ../src/display_spl.c:108
+#, fuzzy
+msgid "Season number"
+msgstr "CD-Nummer"
+
+#: ../src/display_spl.c:109
+msgid "Skip count"
+msgstr ""
+
+#: ../src/display_spl.c:110
+#, fuzzy
+msgid "Last skipped"
+msgstr "Zuletzt gespielt"
+
+#: ../src/display_spl.c:111
+#, fuzzy
+msgid "Album artist"
+msgstr "Künstler"
+
+#: ../src/display_spl.c:117
 msgid "contains"
 msgstr "enthält"
 
-#: src/display_spl.c:112
+#: ../src/display_spl.c:118
 msgid "does not contain"
 msgstr "enthält nicht"
 
-#: src/display_spl.c:113 src/display_spl.c:122 src/display_spl.c:132
-#: src/display_spl.c:151
+#: ../src/display_spl.c:119 ../src/display_spl.c:128 ../src/display_spl.c:138
+#: ../src/display_spl.c:157 ../src/display_spl.c:164
 msgid "is"
 msgstr "ist"
 
-#: src/display_spl.c:114 src/display_spl.c:123 src/display_spl.c:133
-#: src/display_spl.c:152
+#: ../src/display_spl.c:120 ../src/display_spl.c:129 ../src/display_spl.c:139
+#: ../src/display_spl.c:158 ../src/display_spl.c:165
 msgid "is not"
 msgstr "ist nicht"
 
-#: src/display_spl.c:115
+#: ../src/display_spl.c:121
 msgid "starts with"
 msgstr "beginnt mit"
 
-#: src/display_spl.c:116
+#: ../src/display_spl.c:122
 msgid "ends with"
 msgstr "endet mit"
 
-#: src/display_spl.c:124
+#: ../src/display_spl.c:130
 msgid "is greater than"
 msgstr "ist größer als"
 
-#: src/display_spl.c:125
+#: ../src/display_spl.c:131
 msgid "is less than"
 msgstr "ist kleiner als"
 
-#: src/display_spl.c:126 src/display_spl.c:138
+#: ../src/display_spl.c:132 ../src/display_spl.c:144
 msgid "is in the range"
 msgstr "ist innerhalb"
 
-#: src/display_spl.c:134
+#: ../src/display_spl.c:140
 msgid "is after"
 msgstr "ist nach dem"
 
-#: src/display_spl.c:135
+#: ../src/display_spl.c:141
 msgid "is before"
 msgstr "ist vor dem"
 
-#: src/display_spl.c:136
+#: ../src/display_spl.c:142
 msgid "in the last"
 msgstr "in den letzten"
 
-#: src/display_spl.c:137
+#: ../src/display_spl.c:143
 msgid "not in the last"
 msgstr "nicht in den letzten"
 
-#: src/display_spl.c:144
+#: ../src/display_spl.c:150
 msgid "is set"
 msgstr "ist gesetzt"
 
-#: src/display_spl.c:145
+#: ../src/display_spl.c:151
 msgid "is not set"
 msgstr "ist nicht gesetzt"
 
-#: src/display_spl.c:159
+#: ../src/display_spl.c:171
+#, fuzzy
+msgid "Not supported"
+msgstr "Nicht eingetragen"
+
+#: ../src/display_spl.c:178
 msgid "minutes"
 msgstr "Minuten"
 
-#: src/display_spl.c:161
+#: ../src/display_spl.c:180
 msgid "tracks"
 msgstr "Stücke"
 
-#: src/display_spl.c:162
+#: ../src/display_spl.c:181
 msgid "hours"
 msgstr "Stunden"
 
-#: src/display_spl.c:163 src/info.c:777
+#: ../src/display_spl.c:182 ../src/info.c:777
 msgid "GB"
 msgstr "GB"
 
-#: src/display_spl.c:170
+#: ../src/display_spl.c:189
 msgid "random order"
 msgstr "zufällige Reihenfolge"
 
-#: src/display_spl.c:171
+#: ../src/display_spl.c:190
 msgid "title"
 msgstr "Titel"
 
-#: src/display_spl.c:172
+#: ../src/display_spl.c:191
 msgid "album"
 msgstr "Album"
 
-#: src/display_spl.c:173
+#: ../src/display_spl.c:192
 msgid "artist"
 msgstr "Künstler"
 
-#: src/display_spl.c:174
+#: ../src/display_spl.c:193
 msgid "genre"
-msgstr "Kategorie"
+msgstr "Genre"
 
-#: src/display_spl.c:175
+#: ../src/display_spl.c:194
 msgid "most recently added"
 msgstr "zuletzt hinzugefügt"
 
-#: src/display_spl.c:176
+#: ../src/display_spl.c:195
 msgid "least recently added"
 msgstr "zuerst hinzugefügt"
 
-#: src/display_spl.c:177
+#: ../src/display_spl.c:196
 msgid "most often played"
 msgstr "am häufigsten gespielt"
 
-#: src/display_spl.c:178
+#: ../src/display_spl.c:197
 msgid "least often played"
 msgstr "am wenigsten gespielt"
 
-#: src/display_spl.c:179
+#: ../src/display_spl.c:198
 msgid "most recently played"
 msgstr "zuletzt gespielt"
 
-#: src/display_spl.c:180
+#: ../src/display_spl.c:199
 msgid "least recently played"
 msgstr "am längsten nicht mehr gespielt"
 
-#: src/display_spl.c:181
+#: ../src/display_spl.c:200
 msgid "highest rating"
 msgstr "höchste Bewertung"
 
-#: src/display_spl.c:182
+#: ../src/display_spl.c:201
 msgid "lowest rating"
 msgstr "niedrigste Bewertung"
 
-#: src/display_spl.c:1047 src/display_spl.c:1062
+#: ../src/display_spl.c:208 ../src/display_spl.c:217
+#, fuzzy
+msgid "Movie"
+msgstr "Modifiziert"
+
+#: ../src/display_spl.c:209 ../src/display_spl.c:218
+#, fuzzy
+msgid "Music Video"
+msgstr "Stammverzeichnis für Musik:"
+
+#: ../src/display_spl.c:1162 ../src/display_spl.c:1177
 msgid "to"
 msgstr "bis"
 
-#: src/display_spl.c:1279
+#: ../src/display_spl.c:1455
 msgid "-"
 msgstr "-"
 
-#: src/display_spl.c:1294
+#: ../src/display_spl.c:1470
 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
+#: ../src/display_spl.c:1689 ../src/misc_playlist.c:66
+#: ../src/misc_playlist.c:68 ../src/misc_playlist.c:93
+#: ../src/misc_playlist.c:95 ../src/misc_playlist.c:428
+#: ../src/misc_playlist.c:430
 msgid "New Playlist"
 msgstr "Neue Wiedergabeliste"
 
-#: src/file.c:230
+#: ../src/display_tracks.c:281
 #, 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_tracks.c:1717
+#, 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 ""
+"Aufgrund eines Fehlers in der GTK-Bibliothek (%d.%d.%d < 2.5.4) ist es nicht "
+"möglich, die Stück-Ansicht in den unsortierten Zustand zurückzusetzen.\n"
+"\n"
+
+#: ../src/display_tracks.c:1962
+msgid "Rtng"
+msgstr "Bwrtng"
+
+#: ../src/display_tracks.c:1965
+msgid "#"
+msgstr "#"
+
+#: ../src/display_tracks.c:1968
+msgid "CD"
+msgstr "CD"
+
+#: ../src/display_tracks.c:1971
+msgid "ID"
+msgstr "ID"
+
+#: ../src/display_tracks.c:1974
+msgid "Trnsfrd"
+msgstr "Ãœbertragen"
+
+#: ../src/display_tracks.c:1978
+msgid "Cmpl"
+msgstr "Sampl"
+
+#: ../src/display_tracks.c:1987
+msgid "Plycnt"
+msgstr "Zähler"
+
+#: ../src/display_tracks.c:1999
+msgid "Released"
+msgstr "Veröffentlicht"
+
+#: ../src/display_tracks.c:2005
+msgid "Vol."
+msgstr "Ltst."
+
+#: ../src/display_tracks.c:2008
+msgid "Sndchk."
+msgstr "Sndchk."
+
+#: ../src/file.c:236
+#, c-format
+msgid ""
 "'%s' is a directory, not a playlist file.\n"
 "\n"
 msgstr ""
-"'%s' ist ein Verzeichnis und keine Wiedergabelistendatei.\n"
+"'%s' ist ein Verzeichnis und keine Wiedergabeliste.\n"
 "\n"
 
-#: src/file.c:258
+#: ../src/file.c:266
 #, c-format
 msgid ""
 "'%s' is a not a known playlist file.\n"
 "\n"
-msgstr "'%s' ist keine bekannte Wiedergabelistendatei.\n"
+msgstr "'%s' ist keine bekannte Wiedergabeliste.\n"
 
-#: src/file.c:275
+#: ../src/file.c:283
 #, c-format
 msgid ""
 "Cannot open '%s' for reading.\n"
@@ -2704,44 +2969,44 @@
 "Datei '%s' konnte nicht zum Lesen geöffnet werden.\n"
 "\n"
 
-#: src/file.c:359
+#: ../src/file.c:369
 #, c-format
 msgid "Skipping '%s' because it is a directory.\n"
-msgstr "Ãœberspringe '%s' da es sich um ein Verzeichnis handelt.\n"
+msgstr "Ãœberspringe '%s', da es sich um ein Verzeichnis handelt.\n"
 
-#: src/file.c:364
+#: ../src/file.c:374
 #, 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"
+"Ãœberspringe '%s', um eine Endlosschleife zu vermeiden (Wiedergabeliste kann "
+"sich nicht selbst indizieren).\n"
 
-#: src/file.c:619
+#: ../src/file.c:629
 #, c-format
 msgid "Unknown token '%s' in template '%s'\n"
-msgstr "Unbekanntes Token '%s' in der Schablone '%s'\n"
+msgstr "Unbekanntes Symbol '%s' in der Schablone '%s'\n"
 
-#: src/file.c:871
+#: ../src/file.c:890
 #, c-format
 msgid "Local filename not valid (%s)"
 msgstr "Lokaler Dateiname ist nicht gültig (%s)"
 
-#: src/file.c:930
+#: ../src/file.c:949
 #, 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:939
+#: ../src/file.c:958
 #, c-format
 msgid "mserv data file (%s) not available for track (%s)"
-msgstr "mserv Datei (%s) nicht verfügbar für Track (%s)"
+msgstr "mserv Datei (%s) nicht verfügbar für Stück (%s)"
 
-#: src/file.c:947
+#: ../src/file.c:966
 #, c-format
 msgid "Track (%s) not in mserv music root directory (%s)"
-msgstr "Track (%s) ist nicht im mserv Root-Verzeichnis (%s)"
+msgstr "Stück (%s) ist nicht im mserv Stammverzeichnis (%s)"
 
-#: src/file.c:1055
+#: ../src/file.c:1090
 #, c-format
 msgid ""
 "The following track could not be processed (file does not exist): '%s'\n"
@@ -2749,52 +3014,52 @@
 "Das folgende Stück konnte nicht bearbeitet werden (Datei existiert nicht): '%"
 "s'\n"
 
-#: src/file.c:1118
+#: ../src/file.c:1169
 #, 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:1211
+#: ../src/file.c:1262
 #, c-format
 msgid ""
 "The following track could not be processed (filetype is known but analysis "
 "failed): '%s'\n"
 msgstr ""
-"Das folgende Stück konnte nicht bearbeitet werden (Dateityp ist bekannt aber "
-"die Analyse schlug fehl): '%s'\n"
+"Das folgende Stück konnte nicht bearbeitet werden (Dateityp ist bekannt, "
+"aber die Analyse schlug fehl): '%s'\n"
 
-#: src/file.c:1241 src/file.c:1295
+#: ../src/file.c:1292 ../src/file.c:1346
 msgid "Nothing to update"
 msgstr "Nichts zum Aktualisieren"
 
-#: src/file.c:1262
+#: ../src/file.c:1313
 #, c-format
 msgid "Updating %s"
 msgstr "Aktualisiere '%s'"
 
-#: src/file.c:1276
+#: ../src/file.c:1327
 msgid "Updated selected tracks with info from file."
 msgstr ""
-"Die ausgewählten Stücke wurden mit Informationen aus der Datei aktualisiert."
+"Ausgewählte Stücke wurden mit Informationen aus der Datei aktualisiert."
 
-#: src/file.c:1310
+#: ../src/file.c:1361
 #, c-format
 msgid "Retrieving mserv data %s"
 msgstr "Hole mserv Daten %s"
 
-#: src/file.c:1315
+#: ../src/file.c:1366
 msgid "no filename available"
 msgstr "Es steht kein Dateiname zur Verfügung"
 
-#: src/file.c:1320
+#: ../src/file.c:1371
 msgid "Updated selected tracks with data from mserv."
 msgstr ""
-"Die ausgewählten Stücke wurden mit Informationen aus der mserv-Datenbank "
+"Die ausgewählten Stücke wurden mit Informationen aus der mserv Datenbank "
 "aktualisiert."
 
-#: src/file.c:1341
+#: ../src/file.c:1392
 #, c-format
 msgid "The following track could not be updated"
 msgid_plural "The following %d tracks could not be updated"
@@ -2803,11 +3068,11 @@
 
 #. gint id,
 #. gboolean modal,
-#: src/file.c:1347
+#: ../src/file.c:1398
 msgid "Failed Track Update"
 msgstr "Aktualisierung fehlgeschlagen"
 
-#: src/file.c:1405
+#: ../src/file.c:1456
 #, c-format
 msgid "The following track has been updated"
 msgid_plural "The following %d tracks have been updated"
@@ -2816,224 +3081,340 @@
 
 #. gint id,
 #. gboolean modal,
-#: src/file.c:1411
+#: ../src/file.c:1462
 msgid "Successful Track Update"
 msgstr "Aktualisierung erfolgreich"
 
-#: src/file.c:1470
+#: ../src/file.c:1521
 #, 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] ""
-"Für das folgende Stück konnten keine mserv-Informationen gefunden werden"
+"Für das folgende Stück konnten keine mserv Informationen gefunden werden"
 msgstr[1] ""
-"Für die folgenden %d Stücke konnten keine mserv-Informationen gefunden werden"
+"Für die folgenden %d Stücke konnten keine mserv Informationen gefunden werden"
 
 #. gint id,
 #. gboolean modal,
-#: src/file.c:1476
+#: ../src/file.c:1527
 msgid "mserv data retrieval problem"
 msgstr "Problem beim Nachschlagen der mserv Daten"
 
-#: src/file.c:1565
+#: ../src/file.c:1616
 msgid "no local filename available, file on the iPod will be used instead"
 msgstr ""
+"Kein lokaler Dateiname verfügbar, Datei auf dem iPod wird stattdessen "
+"verwendet"
 
-#: src/file.c:1571
+#: ../src/file.c:1622
 msgid "no local filename available and copy on iPod cannot be found"
-msgstr ""
+msgstr "Kein lokaler Dateiname verfügbar, Kopie auf dem iPod nicht auffindbar"
 
-#: src/file.c:1575 src/file.c:1593
+#: ../src/file.c:1626 ../src/file.c:1644
 #, fuzzy
 msgid "no local filename available"
 msgstr "Es steht kein Dateiname zur Verfügung"
 
-#: src/file.c:1583
+#: ../src/file.c:1634
 msgid "local file could not be found, file on the iPod will be used instead"
 msgstr ""
+"Keine lokale Datei auffindbar, Datei auf dem iPod wird stattdessen verwendet"
 
-#: src/file.c:1589
+#: ../src/file.c:1640
 msgid "local file as well as copy on the iPod cannot be found"
-msgstr ""
+msgstr "Lokale Datei und Kopie auf dem iPod nicht auffindbar"
 
 #. update not successful -- log this track for later display
-#: src/file.c:1651
-#, fuzzy
+#: ../src/file.c:1728
 msgid "update failed (format no supported?)"
-msgstr "Format wird nicht unterstützt"
+msgstr "Aktualisierung fehlgeschlagen (Format nicht unterstützt?)"
 
-#: src/file.c:1734
+#: ../src/file.c:1813
 #, c-format
 msgid "Processing '%s'..."
 msgstr "Bearbeite '%s'..."
 
-#: src/file.c:1740
+#: ../src/file.c:1819
 #, c-format
 msgid "File skipped. match exclude masks: '%s'\n"
-msgstr ""
+msgstr "Datei übersprungen. Erfüllt Ausschlusskriterium: '%s'\n"
 
-#: src/file.c:1852 src/misc_track.c:1299 src/misc_track.c:1355
+#: ../src/file.c:1939 ../src/misc_track.c:1694 ../src/misc_track.c:1799
 #, c-format
 msgid ""
 "Podcast already present: '%s'\n"
 "\n"
 msgstr "Podcast ist bereits vorhanden: '%s'\n"
 
-#: src/file.c:1913
+#: ../src/file.c:2004
 #, 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:1965 src/file.c:1979
+#: ../src/file.c:2056 ../src/file.c:2070
 #, c-format
 msgid "Couldn't change tags of file: %s\n"
 msgstr "Konnte Tags der Datei '%s' nicht ändern\n"
 
-#: src/file.c:2076
+#: ../src/file.c:2172
 #, 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:2083
+#: ../src/file.c:2179
 #, c-format
 msgid "Could not obtain lock on '%s'.\n"
 msgstr "Lock auf '%s' konnte nicht erstellt werden.\n"
 
 #. error!
-#: src/file.c:2100 src/file.c:2109 src/file.c:2120 src/file.c:2130
+#: ../src/file.c:2196 ../src/file.c:2205 ../src/file.c:2216 ../src/file.c:2226
 #, c-format
 msgid "Malformed line in '%s': %s\n"
 msgstr "Ungültige Zeile in '%s': %s\n"
 
 #. gint id,
 #. gboolean modal,
-#: src/file.c:2159
+#: ../src/file.c:2255
 msgid "Remove offline playcounts?"
-msgstr "Sollen Offline-Playcounts gelöscht werden?"
+msgstr "Sollen Offline-Wiedergabe Zähler gelöscht werden?"
 
 #. title
-#: src/file.c:2160
+#: ../src/file.c:2256
 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 ""
 "Einige offline gespielte Stücke konnten nicht in der iTunesDB gefunden "
-"werden. Wählen Sie 'OK', um diese aus der Playcount-Datei zu entfernen, "
-"'Abbrechen' um sie beizubehalten."
+"werden. Wählen Sie 'OK', um diese aus der Wiedergabezähler-Datei zu "
+"entfernen, 'Abbrechen' um sie beizubehalten."
 
-#: src/file.c:2177
+#: ../src/file.c:2273
 #, c-format
 msgid "Error writing to '%s'.\n"
 msgstr "Fehler beim Schreiben in die Datei '%s'.\n"
 
-#: src/file.c:2232 src/tools.c:269
+#: ../src/file.c:2330 ../src/tools.c:271
 #, c-format
 msgid ""
 "Normalization failed: file type not supported (%s).\n"
 "\n"
 msgstr "Normalisierung fehlgeschlagen: Dateityp nicht unterstützt (%s).\n"
 
-#: src/file.c:2248 src/tools.c:286
+#: ../src/file.c:2346 ../src/tools.c:288
 #, 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:182
+#: ../src/file_convert.c:316
+msgid "Summary status of conversion processes"
+msgstr ""
+
+#: ../src/file_convert.c:564
+msgid "active"
+msgstr ""
+
+#: ../src/file_convert.c:569
+msgid "inactive"
+msgstr ""
+
+#: ../src/file_convert.c:580
 #, c-format
+msgid "Active threads: %d. Scheduled tracks: %d."
+msgstr ""
+
+#: ../src/file_convert.c:1061
+#, fuzzy, c-format
+msgid "Original filename not available for '%s.'\n"
+msgstr "Normalisierung fehlgeschlagen: Datei ist nicht verfügbar (%s).\n"
+
+#: ../src/file_convert.c:1076
+#, c-format
+msgid "Filename '%s' is no longer valid for '%s'.\n"
+msgstr ""
+
+#: ../src/file_convert.c:1127
+msgid "Ogg Vorbis"
+msgstr ""
+
+#: ../src/file_convert.c:1133
+msgid "FLAC"
+msgstr ""
+
+#: ../src/file_convert.c:1188
+#, c-format
+msgid ""
+"Files of type '%s' are not supported by the iPod. Please go to the "
+"Preferences to set up and turn on a suitable conversion script for '%s'.\n"
+"\n"
+msgstr ""
+
+#: ../src/file_convert.c:1274
+#, fuzzy
+msgid "No information available"
+msgstr "Es steht kein Dateiname zur Verfügung"
+
+#: ../src/file_convert.c:1313
+#, c-format
+msgid "Could not create '%s'. Filetype conversion will not work.\n"
+msgstr ""
+
+#: ../src/file_convert.c:1631 ../src/file_convert.c:3040
+#, fuzzy, c-format
+msgid ""
+"Transfer of '%s' failed. %s\n"
+"\n"
+msgstr ""
+"Die Ausführung von '%s' schlug fehl.\n"
+"\n"
+
+#: ../src/file_convert.c:2035 ../src/file_convert.c:2313
+#, fuzzy, c-format
+msgid ""
+"Conversion of '%s' failed: '%s'.\n"
+"\n"
+msgstr ""
+"Die Ausführung von '%s' schlug fehl.\n"
+"\n"
+
+#: ../src/file_convert.c:2050
+#, c-format
+msgid ""
+"Conversion of '%s' failed: '%s %s' returned exit status %d.\n"
+"\n"
+msgstr ""
+
+#: ../src/file_convert.c:2079
+#, c-format
+msgid ""
+"Conversion of '%s' failed: '%s %s' did not return filename extension as "
+"expected.\n"
+"\n"
+msgstr ""
+
+#: ../src/file_convert.c:2155
+#, c-format
+msgid ""
+"Covnersion of '%s' failed: Could not access original file '%s' (%s).\n"
+"\n"
+msgstr ""
+
+#: ../src/file_convert.c:2210
+#, c-format
+msgid ""
+"Conversion of '%s' failed: Could not create directory '%s'.\n"
+"\n"
+msgstr ""
+
+#: ../src/file_convert.c:2344
+#, c-format
+msgid ""
+"Conversion of '%s' failed: '%s' returned exit status %d.\n"
+"\n"
+msgstr ""
+
+#: ../src/file_convert.c:2383
+#, c-format
+msgid ""
+"Conversion of '%s' failed: could not stat the converted file '%s'.\n"
+"\n"
+msgstr ""
+
+#: ../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:190
+#: ../src/file_export.c:190
 #, c-format
 msgid "Overwriting existing file: '%s'\n"
 msgstr "Ãœberschreibe die vorhandene Datei: '%s'\n"
 
-#: src/file_export.c:207
+#: ../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"
+msgstr "Fehler beim Kopieren von '%s' nach '%s': Zugriff verweigert (%s)\n"
 
-#: src/file_export.c:209
+#: ../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:217
+#: ../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:327
+#: ../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:395 src/file_itunesdb.c:1230 src/tools.c:359
+#: ../src/file_export.c:395 ../src/tools.c:361
 msgid "Information"
 msgstr "Information"
 
-#: src/file_export.c:406 src/tools.c:371
+#: ../src/file_export.c:406 ../src/tools.c:373
 msgid "Press button to abort."
 msgstr "Zum Abbrechen bitte anklicken."
 
-#: src/file_export.c:419
+#: ../src/file_export.c:419
 msgid "copying..."
 msgstr "kopiere..."
 
-#: src/file_export.c:472
+#: ../src/file_export.c:476
 #, c-format
 msgid "Failed to write '%s-%s'\n"
 msgstr "Konnte '%s-%s' nicht schreiben\n"
 
-#: src/file_export.c:485
+#: ../src/file_export.c:489
 #, 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:501 src/file_itunesdb.c:1495 src/tools.c:517
+#: ../src/file_export.c:505 ../src/tools.c:519
 #, c-format
 msgid "%d%% (%d:%02d:%02d left)"
 msgstr "%d%% (noch %d:%02d:%02d)"
 
-#: src/file_export.c:510
+#: ../src/file_export.c:514
 msgid "Some tracks were not copied."
 msgstr "Einige Stücke wurden nicht kopiert."
 
-#: src/file_export.c:575
+#: ../src/file_export.c:579
 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:583
+#: ../src/file_export.c:587
 msgid "Select Export Destination Directory"
 msgstr "Wählen Sie das Zielverzeichnis für den Export aus"
 
-#: src/file_export.c:732
+#: ../src/file_export.c:736
 msgid "Drag from iPod database not possible in offline mode."
-msgstr "Ein Drag vom iPod ist im Offline-Modus nicht möglich."
+msgstr "Ein Verschieben vom iPod ist im Offline-Modus nicht möglich."
 
-#: src/file_export.c:766
+#: ../src/file_export.c:770
 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:811
+#: ../src/file_export.c:815
 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 ""
 "Einige Stücke wurden nicht auf Ihre Festplatte kopiert. Nur die kopierten "
-"Stücke werden in der momentanen Drag-And-Drop-Aktion beachtet werden.\n"
+"Einträge können beim Verschieben/Einfügen bearbeitet werden.\n"
 "\n"
 
-#: src/file_export.c:1006
+#: ../src/file_export.c:1010
 #, c-format
 msgid ""
 "No valid filename for: %s\n"
@@ -3042,14 +3423,14 @@
 "Kein gültiger Dateiname für %s\n"
 "\n"
 
-#: src/file_export.c:1022
+#: ../src/file_export.c:1026
 #, 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:1027
+#: ../src/file_export.c:1031
 #, c-format
 msgid ""
 "Could not open '%s' for writing (%s).\n"
@@ -3058,50 +3439,50 @@
 "Datei '%s' konnte nicht zum Schreiben geöffnet werden. (%s)\n"
 "\n"
 
-#: src/file_itunesdb.c:115
-#, c-format
-msgid "Matching MD5 checksum for file %d/%d"
+#: ../src/file_itunesdb.c:127
+#, fuzzy, c-format
+msgid "Matching SHA1 checksum for file %d/%d"
 msgstr "Suche passende MD5 Prüfsumme für Datei %d/%d"
 
-#: src/file_itunesdb.c:223
+#: ../src/file_itunesdb.c:234
 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"
+"Die \"iTunesDB.ext\" konnte zum Lesen der erweiterten Infos nicht geöffnet "
+"werden.\n"
 
-#: src/file_itunesdb.c:230
+#: ../src/file_itunesdb.c:241
 msgid "Could not create hash value from itunesdb\n"
-msgstr "Konnte keine Checksumme für die iTunesDB bilden\n"
+msgstr "Konnte keine Prüfsumme für die iTunesDB bilden\n"
 
-#: src/file_itunesdb.c:244
+#: ../src/file_itunesdb.c:255
 #, c-format
 msgid "Error while reading extended info: %s\n"
 msgstr "Fehler beim Lesen der erweiterten Informationen: '%s'\n"
 
-#: src/file_itunesdb.c:261
-#, c-format
+#: ../src/file_itunesdb.c:272
+#, fuzzy, 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 "
+"gtkpod will try to match the information using SHA1 checksums. This may take "
 "a long time.\n"
 "\n"
 msgstr ""
 "Die Prüfsumme der iTunesDB '%s' entspricht nicht der Prüfsumme, die in den "
-"erweiterten Informationen '%s' abgelegt ist. gtkpod wird probieren, die "
+"erweiterten Informationen '%s' abgelegt ist. gtkpod wird versuchen, die "
 "Informationen mittels der MD5 Prüfsummen zuzuordnen. Dies kann eine lange "
 "Zeit in Anspruch nehmen.\n"
 "\n"
 
-#: src/file_itunesdb.c:273
+#: ../src/file_itunesdb.c:284
 #, c-format
 msgid ""
 "%s:\n"
 "Expected \"itunesdb_hash=\" but got:\"%s\"\n"
 msgstr ""
 "%s:\n"
-"'itunesdb_hash=' erwartet, aber '%s' gefunden\n"
+"Erwartete \"itunesdb_hash=\", aber \"%s\" gefunden\n"
 
-#: src/file_itunesdb.c:333
+#: ../src/file_itunesdb.c:344
 #, c-format
 msgid ""
 "%s:\n"
@@ -3110,12 +3491,13 @@
 "%s:\n"
 "Formatfehler: %s\n"
 
-#: src/file_itunesdb.c:377
+#: ../src/file_itunesdb.c:387
+#, fuzzy
 msgid ""
-"No MD5 checksums on individual tracks are available.\n"
+"No SHA1 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 "
+"(will provide SHA1 checksums) or avoid using the iPod with programs other "
 "than gtkpod.\n"
 "\n"
 msgstr ""
@@ -3126,7 +3508,7 @@
 "iPod außer mit gtkpod noch mit anderen Programmen zu verwenden.\n"
 "\n"
 
-#: src/file_itunesdb.c:439
+#: ../src/file_itunesdb.c:451
 msgid ""
 "Extended info will not be used. If you have non-transferred tracks,\n"
 "these will be lost.\n"
@@ -3134,24 +3516,24 @@
 "Die erweiterten Informationen werden nicht verwendet. Nicht auf den iPod "
 "übertragene Stücke gehen verloren.\n"
 
-#: src/file_itunesdb.c:447
+#: ../src/file_itunesdb.c:459
 msgid "Offline iPod database successfully imported"
-msgstr "Die Offline-iPod-Datenbank wurde erfolgreich eingelesen"
+msgstr "Die Offline iPod Datenbank wurde erfolgreich eingelesen"
 
-#: src/file_itunesdb.c:450
+#: ../src/file_itunesdb.c:462
 msgid "Local database successfully imported"
 msgstr "Lokale Datenbank wurde erfolgreich eingelesen"
 
-#: src/file_itunesdb.c:458
+#: ../src/file_itunesdb.c:470
 #, c-format
 msgid ""
 "Offline iPod database import failed: '%s'\n"
 "\n"
 msgstr ""
-"Das Einlesen der Offline-iPod-Datenbank schlug fehl: '%s'\n"
+"Das Einlesen der Offline iPod Datenbank schlug fehl: '%s'\n"
 "\n"
 
-#: src/file_itunesdb.c:462
+#: ../src/file_itunesdb.c:474
 #, c-format
 msgid ""
 "Local database import failed: '%s'\n"
@@ -3160,15 +3542,15 @@
 "Das Einlesen der lokalen Datenbank schlug fehl: '%s'\n"
 "\n"
 
-#: src/file_itunesdb.c:469
+#: ../src/file_itunesdb.c:481
 msgid ""
 "Offline iPod database import failed: \n"
 "\n"
 msgstr ""
-"Das Einlesen der Offline-iPod-Datenbank schlug fehl:\n"
+"Das Einlesen der Offline iPod Datenbank schlug fehl:\n"
 "\n"
 
-#: src/file_itunesdb.c:472
+#: ../src/file_itunesdb.c:484
 msgid ""
 "Local database import failed: \n"
 "\n"
@@ -3176,7 +3558,7 @@
 "Das Einlesen der lokalen Datenbank schlug fehl:\n"
 "\n"
 
-#: src/file_itunesdb.c:479
+#: ../src/file_itunesdb.c:491
 #, c-format
 msgid ""
 "'%s' does not exist. Import aborted.\n"
@@ -3185,15 +3567,15 @@
 "'%s' existiert nicht. Einlesen abgebrochen.\n"
 "\n"
 
-#: src/file_itunesdb.c:502
+#: ../src/file_itunesdb.c:514
 msgid "Extended info will not be used.\n"
 msgstr "Erweiterte Informationen werden nicht verwendet.\n"
 
-#: src/file_itunesdb.c:509
+#: ../src/file_itunesdb.c:521
 msgid "iPod Database Successfully Imported"
 msgstr "iPod Datenbank wurde erfolgreich eingelesen"
 
-#: src/file_itunesdb.c:516
+#: ../src/file_itunesdb.c:528
 #, c-format
 msgid ""
 "iPod Database Import Failed: '%s'\n"
@@ -3202,7 +3584,7 @@
 "Das Einlesen der iPod Datenbank schlug fehl: '%s'\n"
 "\n"
 
-#: src/file_itunesdb.c:522
+#: ../src/file_itunesdb.c:534
 msgid ""
 "iPod Database Import Failed.\n"
 "\n"
@@ -3210,16 +3592,16 @@
 "Das Einlesen der iPod Datenbank schlug fehl\n"
 "\n"
 
-#: src/file_itunesdb.c:531
-#, fuzzy, c-format
+#: ../src/file_itunesdb.c:543
+#, c-format
 msgid ""
 "'%s' (or similar) does not exist. Import aborted.\n"
 "\n"
 msgstr ""
-"'%s' existiert nicht. Einlesen abgebrochen.\n"
+"'%s' (o.ä.) existiert nicht. Einlesen abgebrochen.\n"
 "\n"
 
-#: src/file_itunesdb.c:817
+#: ../src/file_itunesdb.c:859
 #, c-format
 msgid ""
 "Could not find iPod directory structure at '%s'.\n"
@@ -3228,49 +3610,112 @@
 "\n"
 "Do you want to create the directory structure now?\n"
 msgstr ""
+"Konnte iPod Verzeichnis unter '%s'.\n"
+"nicht finden. Falls der iPod unter '%s', korrekt eingehängt ist, kann gtkpod "
+"die Verzeichnisstruktur für Sie erstellen.\n"
+"\n"
+"Möchten Sie die Verzeichnisstruktur jetzt erstellen?\n"
 
-#: src/file_itunesdb.c:1071
+#: ../src/file_itunesdb.c:1140
 #, c-format
 msgid "Could not open \"%s\" for writing extended info.\n"
 msgstr ""
-"Datei '%s' konnte nicht zum Schreiben der erweiterten Infos geöffnet "
+"Datei \"%s\" konnte nicht zum Schreiben der erweiterten Infos geöffnet "
 "werden.\n"
 
-#: src/file_itunesdb.c:1086
+#: ../src/file_itunesdb.c:1155
 msgid "Aborted writing of extended info.\n"
 msgstr "Schreiben der erweiterten Infos abgebrochen.\n"
 
-#: src/file_itunesdb.c:1241
+#: ../src/file_itunesdb.c:1356
+#, c-format
+msgid "%d%%"
+msgstr ""
+
+#: ../src/file_itunesdb.c:1370
+#, fuzzy, c-format
+msgid "%d%% (%d/%d  %d:%02d:%02d left)"
+msgstr "%d%% (noch %d:%02d:%02d)"
+
+#: ../src/file_itunesdb.c:1412
+msgid "Status: Deleting File"
+msgstr ""
+
+#: ../src/file_itunesdb.c:1473
+#, fuzzy, c-format
 msgid ""
-"Press button to abort.\n"
-"Export can be continued at a later time."
+"Could not remove the following file: '%s'\n"
+"\n"
 msgstr ""
-"Zum Abbrechen bitte anklicken.\n"
-"Der Export kann zu einem späteren Zeitpunkt fortgesetzt werden."
+"Datei '%s' konnte nicht zum Schreiben geöffnet werden. (%s)\n"
+"\n"
 
-#: src/file_itunesdb.c:1310
-msgid "deleting..."
-msgstr "Entferne gelöschte Tracks..."
+#: ../src/file_itunesdb.c:1581
+#, fuzzy
+msgid ""
+"The following track could not be converted successfully:\n"
+"\n"
+msgid_plural ""
+"The following tracks could not be converted successfully:\n"
+"\n"
+msgstr[0] "Das folgende Stück konnte nicht aktualisiert werden"
+msgstr[1] "Die folgenden %d Stücke konnten nicht aktualisiert werden"
 
-#: src/file_itunesdb.c:1413
-msgid "preparing to copy..."
-msgstr "Vorbereitung zum Kopieren..."
+#: ../src/file_itunesdb.c:1591
+#, fuzzy
+msgid ""
+"The following track could not be transferred successfully:\n"
+"\n"
+msgid_plural ""
+"The following tracks could not be transferred successfully:\n"
+"\n"
+msgstr[0] "Das folgende Stück konnte nicht aktualisiert werden"
+msgstr[1] "Die folgenden %d Stücke konnten nicht aktualisiert werden"
 
-#: 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."
+#. ID
+#. modal,
+#. gint id,
+#. gboolean modal,
+#: ../src/file_itunesdb.c:1600 ../src/misc_confirm.c:70
+msgid "Warning"
+msgstr "Warnung"
 
-#: src/file_itunesdb.c:1506
-msgid "Some tracks were not written to iPod. Export aborted!"
+#. title
+#: ../src/file_itunesdb.c:1601
+msgid ""
+"The iPod could not be ejected. Please fix the problems mentioned below and "
+"then eject the iPod again. Pressing 'OK' will re-schedule the failed tracks "
+"for conversion and transfer."
 msgstr ""
-"Einige Stücke wurden nicht auf den iPod übertragen. Export abgebrochen!"
 
-#: src/file_itunesdb.c:1557
+#: ../src/file_itunesdb.c:1663
+msgid "Status: Copying track"
+msgstr ""
+
+#: ../src/file_itunesdb.c:1669
+msgid "Status: Waiting for conversion to complete"
+msgstr ""
+
+#: ../src/file_itunesdb.c:1673
+msgid "Status: Finished transfer"
+msgstr ""
+
+#: ../src/file_itunesdb.c:1714
 #, c-format
 msgid ""
+"One track could not be transferred because your iPod is full. Either delete "
+"some tracks or otherwise create space on the iPod before ejecting the iPod "
+"again."
+msgid_plural ""
+"%d tracks could not be transferred because your iPod is full. Either delete "
+"some tracks or otherwise create space on the iPod before ejecting the iPod "
+"again."
+msgstr[0] ""
+msgstr[1] ""
+
+#: ../src/file_itunesdb.c:1792
+#, 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"
@@ -3286,223 +3731,266 @@
 "'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:1588
+#: ../src/file_itunesdb.c:1827
 msgid ""
 "iPod directory structure must be present before synching to the iPod can be "
 "performed.\n"
 msgstr ""
-"Die iPod Verzeichnisstruktur muß vorhanden sein bevor Daten auf den iPod "
+"Die iPod Verzeichnisstruktur muss vorhanden sein bevor Daten auf den iPod "
 "kopiert werden können.\n"
 
-#: src/file_itunesdb.c:1597
+#: ../src/file_itunesdb.c:1836
 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:1613
+#: ../src/file_itunesdb.c:1854
 #, fuzzy
 msgid "Now writing database. Please wait..."
 msgstr "Schreibe iTunesDB. Bitte warten..."
 
-#: src/file_itunesdb.c:1659
+#: ../src/file_itunesdb.c:1901
 #, c-format
 msgid "Extended information file not deleted: '%s'"
-msgstr "Die Datei mit den erweiterten Informationen wurde nicht gefunden: '%s'"
+msgstr "Die Datei mit den erweiterten Informationen wurde nicht gelöscht: '%s'"
 
-#: src/file_itunesdb.c:1745
-#, fuzzy, c-format
+#: ../src/file_itunesdb.c:1987
+#, c-format
 msgid "%s: Database saved"
-msgstr "iPod Datenbank gespeichert"
+msgstr "%s: Datenbank gespeichert"
 
-#: src/file_itunesdb.c:1749
+#: ../src/file_itunesdb.c:1991
 #, c-format
 msgid "%s: Changes saved"
-msgstr ""
+msgstr "%s: Änderungen gespeichert"
 
-#: src/fileselection.c:127
+#: ../src/fileselection.c:128
 msgid "Successfully added files"
 msgstr "Dateien wurden erfolgreich hinzugefügt"
 
-#: src/fileselection.c:129
+#: ../src/fileselection.c:130
 msgid "Some files were not added successfully"
-msgstr "Einige Dateien wurden nicht erfolgreich eingelesen"
+msgstr "Einige Dateien konnten nicht hinzugefügt werden"
 
 #. Create the file chooser, and handle the response
-#: src/fileselection.c:157
+#: ../src/fileselection.c:160
 msgid "Add Files"
-msgstr "Files hinzufügen"
+msgstr "Dateien hinzufügen"
 
 #. Create the file chooser, and handle the response
-#: src/fileselection.c:250
+#: ../src/fileselection.c:253
 msgid "Add Playlists"
-msgstr "Wiedergabeliste hinzufügen"
+msgstr "Wiedergabeliste(n) hinzufügen"
 
 #. Create the file chooser, and handle the response
-#: src/fileselection.c:297
+#: ../src/fileselection.c:300
 msgid "Set Cover"
 msgstr "Cover auswählen"
 
-#: src/fileselection.c:718
+#: ../src/fileselection.c:721
 msgid "Select directory to add recursively"
-msgstr "Wählen Sie Verzeichnisse zum Hinzufügen"
+msgstr "Wählen Sie Verzeichnis(se) zum Hinzufügen aus"
 
-#: src/fileselection.c:989
+#: ../src/fileselection.c:992
 msgid "Ok"
 msgstr "OK"
 
-#: src/fileselection.c:998
+#: ../src/fileselection.c:1001
 msgid "Cancel"
 msgstr "Abbrechen"
 
-#: src/getopt.c:681
+#: ../src/flacfile.c:33
+#, fuzzy, c-format
+msgid "'%s' does not appear to be an FLAC audio file.\n"
+msgstr "'%s' scheint keine mp4-Audio-Datei zu sein.\n"
+
+#: ../src/flacfile.c:52
+#, fuzzy, c-format
+msgid "Error retrieving tags for '%s'.\n"
+msgstr "Fehler beim Schreiben in die Datei '%s'.\n"
+
+#: ../src/flacfile.c:119
+#, fuzzy, c-format
+msgid ""
+"Import of '%s' failed: FLAC not supported without the FLAC library. You must "
+"compile the gtkpod source together with the FLAC library.\n"
+msgstr ""
+"Einlesen des Stücks '%s' fehlgeschlagen: m4a/m4p/m4b-Dateien werden ohne die "
+"mp4v2 Bibliothek nicht unterstützt. Sie müssen gtkpod zusammen mit der mp4v2 "
+"Bibliothek kompilieren.\n"
+
+#: ../src/flacfile.c:125
+#, fuzzy, c-format
+msgid ""
+"FLAC metadata update for '%s' failed: FLAC not supported without the FLAC "
+"library. You must compile the gtkpod source together with the FLAC 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 kompilieren.\n"
+
+#: ../src/getopt.c:681
 #, c-format
 msgid "%s: option `%s' is ambiguous\n"
 msgstr "%s: die Option '%s' ist mehrdeutig\n"
 
-#: src/getopt.c:706
+#: ../src/getopt.c:706
 #, c-format
 msgid "%s: option `--%s' doesn't allow an argument\n"
-msgstr "%s: die Option '--%s' läßt kein Argument zu\n"
+msgstr "%s: die Option '--%s' lässt kein Argument zu\n"
 
-#: src/getopt.c:711
+#: ../src/getopt.c:711
 #, c-format
 msgid "%s: option `%c%s' doesn't allow an argument\n"
-msgstr "%s: die Option '%c%s' läßt kein Argument zu\n"
+msgstr "%s: die Option '%c%s' lässt kein Argument zu\n"
 
-#: src/getopt.c:729 src/getopt.c:902
+#: ../src/getopt.c:729 ../src/getopt.c:902
 #, c-format
 msgid "%s: option `%s' requires an argument\n"
 msgstr "%s: die Option '%s' benötigt ein Argument\n"
 
 #. --option
-#: src/getopt.c:758
+#: ../src/getopt.c:758
 #, c-format
 msgid "%s: unrecognized option `--%s'\n"
 msgstr "%s: die Option '--%s' ist unbekannt\n"
 
 #. +option or -option
-#: src/getopt.c:762
+#: ../src/getopt.c:762
 #, c-format
 msgid "%s: unrecognized option `%c%s'\n"
 msgstr "%s: die Option '%c%s' ist unbekannt\n"
 
 #. 1003.2 specifies the format of this message.
-#: src/getopt.c:788
+#: ../src/getopt.c:788
 #, c-format
 msgid "%s: illegal option -- %c\n"
 msgstr "%s: die Option '%c' ist nicht erlaubt\n"
 
-#: src/getopt.c:791
+#: ../src/getopt.c:791
 #, c-format
 msgid "%s: invalid option -- %c\n"
 msgstr "%s: die Option '%c' ist ungültig\n"
 
 #. 1003.2 specifies the format of this message.
-#: src/getopt.c:821 src/getopt.c:951
+#: ../src/getopt.c:821 ../src/getopt.c:951
 #, c-format
 msgid "%s: option requires an argument -- %c\n"
 msgstr "%s: die Option '%c' benötigt ein Argument\n"
 
-#: src/getopt.c:868
+#: ../src/getopt.c:868
 #, c-format
 msgid "%s: option `-W %s' is ambiguous\n"
 msgstr "%s: die Option '-W %s' ist mehrdeutig\n"
 
-#: src/getopt.c:886
+#: ../src/getopt.c:886
 #, c-format
 msgid "%s: option `-W %s' doesn't allow an argument\n"
-msgstr "%s: die Option '-W %s' läßt keine Argumente zu\n"
+msgstr "%s: die Option '-W %s' lässt keine Argumente zu\n"
 
-#: src/info.c:383
+#: ../src/info.c:383
 msgid "n/c"
 msgstr "---"
 
-#: src/info.c:388 src/info.c:835
+#: ../src/info.c:388 ../src/info.c:835
 msgid "offline"
 msgstr "offline"
 
-#: src/info.c:483
+#: ../src/info.c:483
 #, c-format
 msgid " P:%d T:%d/%d"
 msgstr " P:%d S:%d/%d"
 
-#: src/info.c:777
+#: ../src/info.c:777
 msgid "B"
 msgstr "B"
 
-#: src/info.c:777
+#: ../src/info.c:777
 msgid "kB"
 msgstr "kB"
 
-#: src/info.c:777
+#: ../src/info.c:777
 msgid "TB"
 msgstr "TB"
 
-#: src/info.c:820
+#: ../src/info.c:820
 #, c-format
 msgid " %s Free"
 msgstr " %s frei"
 
-#: src/info.c:825
+#: ../src/info.c:825
 #, c-format
 msgid " %s Pending"
 msgstr " %s voll"
 
-#: src/info.c:830
+#: ../src/info.c:830
 msgid " disconnected"
-msgstr " nicht verbunden"
+msgstr " getrennt"
 
-#: src/info.c:881
-#, fuzzy
+#: ../src/info.c:881
 msgid "No database or playlist selected"
-msgstr "Keine Wiedergabeliste ausgewählt"
+msgstr "Keine Datenbank oder Wiedergabeliste gewählt"
 
-#: src/info.c:886
+#: ../src/info.c:886
 msgid "No tracks selected"
 msgstr "Keine Stücke ausgewählt"
 
-#: src/info.c:891
+#: ../src/info.c:891
 msgid "No playlist selected"
 msgstr "Keine Wiedergabeliste ausgewählt"
 
-#: src/info.c:896
-#, fuzzy
+#: ../src/info.c:896
 msgid "No iPod or iPod playlist selected"
-msgstr "Keine Wiedergabeliste ausgewählt"
+msgstr "Kein iPod oder keine Wiedergabeliste gewä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"
+#. Strings used several times
+#: ../src/ipod_init.c:48
+msgid "Select or enter your model"
+msgstr ""
 
-#: 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/ipod_init.c:79 ../src/repository.c:546 ../src/repository.c:2369
+msgid "Select mountpoint"
+msgstr "iPod Einhängepunkt"
 
-#: src/misc.c:79
+#: ../src/ipod_init.c:359
+#, fuzzy, c-format
+msgid "Error initialising iPod: %s\n"
+msgstr "Fehler beim Schreiben in die Datei '%s'.\n"
+
+#: ../src/ipod_init.c:366
+msgid "Error initialising iPod, unknown error\n"
+msgstr ""
+
+#: ../src/ipod_init.c:422
+#, fuzzy, c-format
+msgid "<b>Please select your iPod model at </b><i>%s</i>"
+msgstr "<b>Bitte Einhängepunkt und iPod Modell wählen</b>"
+
+#: ../src/misc.c:86
 #, c-format
 msgid ""
 "gtkpod Version %s: Cross-Platform Multi-Lingual Interface to Apple's iPod"
 "(tm)."
 msgstr ""
-"gtkpod Version %s: Plattformübergreifendes internationalisiertes GUI für "
-"Apples iPod(tm)."
+"gtkpod Version %s: Plattformübergreifendes internationalisiertes Programm "
+"für Apples iPod(TM)."
 
-#: src/misc.c:83
+#: ../src/misc.c:90
+#, fuzzy
 msgid ""
-"(C) 2002 - 2005\n"
+"(C) 2002 - 2007\n"
 "Jorg Schuler (jcsjcs at users dot sourceforge dot net)\n"
 "Corey Donohoe (atmos at atmos dot org)\n"
 "\n"
 "\n"
 msgstr ""
-"(C) 2002 - 2003\n"
+"(C) 2002 - 2005\n"
 "Jörg Schuler (jcsjcs at users dot sourceforge dot net)\n"
 "Corey Donohoe (atmos at atmos dot org)\n"
 "\n"
 "\n"
 
-#: src/misc.c:89
+#: ../src/misc.c:96
 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 "
@@ -3525,7 +4013,7 @@
 "veröffentlicht, weitergeben und/oder modifizieren, entweder gemäß Version 2 "
 "der Lizenz oder (nach Ihrer Option) jeder späteren Version.\n"
 "\n"
-"Die Veröffentlichung dieses Programms erfolgt in der Hoffnung, daß es Ihnen "
+"Die Veröffentlichung dieses Programms erfolgt in der Hoffnung, dass es Ihnen "
 "von Nutzen sein wird, aber OHNE IRGENDEINE GARANTIE, sogar ohne die "
 "implizite Garantie der MARKTREIFE oder der VERWENDBARKEIT FÃœR EINEN "
 "BESTIMMTEN ZWECK. Details finden Sie in der GNU General Public License.\n"
@@ -3536,46 +4024,46 @@
 "\n"
 "\n"
 
-#: src/misc.c:97
+#: ../src/misc.c:104
 msgid ""
 "Patches were supplied by the following people (list may be incomplete -- "
 "please contact me)\n"
 "\n"
 msgstr ""
-"Patches were supplied by the following people (list may be incomplete -- "
-"please contact me)\n"
+"Berichtigungen und Ergänzungen wurden von folgenden Personen zur Verfügung "
+"gestellt (falls die Liste unvollständig ist, schreiben Sie mir bitte)\n"
 "\n"
 
-#: src/misc.c:99
+#: ../src/misc.c:106
 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:101
+#: ../src/misc.c:108
 msgid "Hiroshi Kawashima: Japanese charset autodetecion feature\n"
 msgstr "Hiroshi Kawashima: Automatische Erkennung japanischer Zeichensätze\n"
 
-#: src/misc.c:103
+#: ../src/misc.c:110
 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:105
+#: ../src/misc.c:112
 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:107
+#: ../src/misc.c:114
 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:109
+#: ../src/misc.c:116
 msgid "Chris Cutler: automatic creation of various playlist types\n"
 msgstr "Chris Cutler: automatische Erstellung diverser Wiedergabelisten\n"
 
-#: src/misc.c:111
+#: ../src/misc.c:118
 msgid ""
 "Graeme Wilford: reading and writing of the 'Composer' ID3 tags, progress "
 "dialogue during sync\n"
@@ -3583,7 +4071,7 @@
 "Graeme Wilford: Lesen und Schreiben der 'Komponisten' ID3-Tags, "
 "Fortschrittsbalken während iTunesDB-Abgleich.\n"
 
-#: src/misc.c:113
+#: ../src/misc.c:120
 msgid ""
 "Edward Matteucci: debugging, special playlist creation, most of the volume "
 "normalizing code\n"
@@ -3591,55 +4079,55 @@
 "Edward Matteucci: Debugging, diverse Wiedergabelistengenerierung, Hauptteil "
 "des Codes für Lautstärkenormalisierung\n"
 
-#: src/misc.c:115
+#: ../src/misc.c:122
 msgid "Jens Lautenbach: some optical improvements\n"
 msgstr "Jens Lautenbach: optische Verbesserungen\n"
 
-#: src/misc.c:117
+#: ../src/misc.c:124
 msgid "Alex Tribble: iPod eject patch\n"
 msgstr "Alex Tribble: Patch zum Auswurf des iPods\n"
 
-#: src/misc.c:119
+#: ../src/misc.c:126
 msgid "Yaroslav Halchenko: Orphaned and dangling tracks handling\n"
 msgstr ""
 "Yaroslav Halchenko: Bearbeitung von verwaisten und verlorenen Stücken\n"
 
-#: src/misc.c:121
+#: ../src/misc.c:128
 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"
+"verschiedene andere Korrekturen\n"
 
-#: src/misc.c:123
+#: ../src/misc.c:130
 msgid ""
 "Ero Carrera: Filename validation and quick sync when copying tracks from the "
 "iPod\n"
 msgstr ""
 "Ero Carrera: Dateinamenverifizierung und Schnellabgleich beim Kopieren von "
-"Tracks vom iPod\n"
+"Stücken vom iPod\n"
 
-#: src/misc.c:125
+#: ../src/misc.c:132
 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:127
+#: ../src/misc.c:134
 msgid "Armando Atienza: Support with external playcounts\n"
 msgstr "Armando Atienza: Unterstützung bezüglich externer Playcounts\n"
 
-#: src/misc.c:129
+#: ../src/misc.c:136
 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:131
+#: ../src/misc.c:138
 msgid "Jim Hall: Decent INSTALL file\n"
 msgstr "Jim Hall: Ausführliche INSTALL Anleitung\n"
 
-#: src/misc.c:133
+#: ../src/misc.c:140
 msgid ""
 "Juergen Helmers, Markus Gaugusch: Conversion scripts to sync calendar/"
 "contacts to the iPod\n"
@@ -3648,11 +4136,11 @@
 "der Kontakte auf den iPod\n"
 
 #. J"urgen!
-#: src/misc.c:135
+#: ../src/misc.c:142
 msgid "Flavio Stanchina: bugfixes\n"
 msgstr "Flavio Stanchina: Bugfixes\n"
 
-#: src/misc.c:137
+#: ../src/misc.c:144
 msgid ""
 "Chris Micacchi: when sorting ignore 'the' and similar at the beginning of "
 "the title\n"
@@ -3660,13 +4148,13 @@
 "Chris Micacchi: beim Sortieren wird \"the\" und ähnliches am Beginn des "
 "Titels ignoriert\n"
 
-#: src/misc.c:139
+#: ../src/misc.c:146
 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:142
+#: ../src/misc.c:149
 msgid ""
 "Christoph Kunz: address compatibility issues when writing id3v2.4 type mp3 "
 "tags\n"
@@ -3674,52 +4162,52 @@
 "Christoph Kunz: Beiträge zur Kompatibilität wenn MP3-Tags als id3v2.4 "
 "geschrieben werden.\n"
 
-#: src/misc.c:145
-#, fuzzy
+#: ../src/misc.c:152
 msgid ""
 "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"
+"James Ligget:\n"
+"     Ersetzen der alten GTK Dateidialoge durch die neuen GTK Filechooser-"
+"Dialoge.\n"
 
-#: src/misc.c:150
+#: ../src/misc.c:157
 msgid "Daniel Kercher: sync scripts for abook and webcalendar\n"
 msgstr ""
 "Daniel Kercher: Synchronisationsskripte für 'abook' und 'webcalendar'\n"
 
-#: src/misc.c:153
+#: ../src/misc.c:160
 msgid "Clinton Gormley: sync scripts for thunderbird\n"
 msgstr "Clinton Gormley: Snychronisationsskripte für 'tunderbird'\n"
 
-#: src/misc.c:156
+#: ../src/misc.c:163
 msgid "Sebastien Beridot: sync script for ldif addressbook format\n"
 msgstr ""
 "Sebastien Beridot: Snychronisationsskripte für das ldif Adressbuchformat\n"
 
-#: src/misc.c:159
+#: ../src/misc.c:166
 msgid "Sebastian Scherer: sync script for kNotes\n"
 msgstr "Sebastian Scherer: Synchronisationsskripte für 'kNotes'\n"
 
-#: src/misc.c:162
+#: ../src/misc.c:169
 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:165
+#: ../src/misc.c:172
 msgid "Uwe Hermann: help with support for iPod Video\n"
-msgstr "Uwe Hermann: Hilfe mit iPod Video Unterstützung\n"
+msgstr "Uwe Hermann: Hilfe bei der iPod Video Unterstützung\n"
 
-#: src/misc.c:168
+#: ../src/misc.c:175
 msgid ""
 "Iain Benson: support for compilation tag in mp3 files and separate display "
 "of compilations in the sort tab.\n"
 msgstr ""
 "Iain Benson: Unterstützung für Sampler-Tags in mp3 Dateien und Darstellung "
-"von Sampler in den Filter-Tabs.\n"
+"der Sampler in den Filter-Tabs.\n"
 
-#: src/misc.c:170
+#: ../src/misc.c:177
 msgid ""
 "Nicolas Chariot: icons of buttons\n"
 "\n"
@@ -3729,11 +4217,11 @@
 "\n"
 "\n"
 
-#: src/misc.c:174
+#: ../src/misc.c:181
 msgid "This program borrows code from the following projects:\n"
 msgstr "Dieses Programm verwendet Code der folgenden Projekte:\n"
 
-#: src/misc.c:176
+#: ../src/misc.c:183
 msgid ""
 "    gnutools: (mktunes.pl, ported to C) reading and writing of iTunesDB "
 "(http://www.gnu.org/software/gnupod/)\n"
@@ -3741,7 +4229,7 @@
 "    gnutools: (mktunes.pl, nach C portiert) Schreiben und Lesen der iTunesDB "
 "(http://www.gnu.org/software/gnupod/)\n"
 
-#: src/misc.c:178
+#: ../src/misc.c:185
 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"
@@ -3750,37 +4238,37 @@
 "einiger Code für intelligente Wiedergabelisten basiert auf seinen C++-"
 "Klassen.\n"
 
-#: src/misc.c:180
+#: ../src/misc.c:187
 msgid "    mp3info:  mp3 playlength detection (http://ibiblio.org/mp3info/)\n"
 msgstr "    mp3info:  MP3-Spielzeit-Ermittlung (http://ibiblio.org/mp3info/)\n"
 
-#: src/misc.c:182
+#: ../src/misc.c:189
 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:185
+#: ../src/misc.c:192
 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:200
+#: ../src/misc.c:207
 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:202
+#: ../src/misc.c:209
 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:204
+#: ../src/misc.c:211
 msgid "Hebrew: Assaf Gillat (gillata at gmail dot com)\n"
 msgstr "Hebräisch: Assaf Gillat (gillata at gmail dot com)\n"
 
-#: src/misc.c:206
+#: ../src/misc.c:213
 msgid ""
 "Italian:  Edward Matteucci (edward_matteucc at users dot sourceforge dot "
 "net)\n"
@@ -3788,51 +4276,67 @@
 "Italienisch: Edward Matteucci (edward_matteucc at users dot sourceforge dot "
 "net\n"
 
-#: src/misc.c:208
+#: ../src/misc.c:215
 msgid "Japanese: Ayako Sano\n"
 msgstr "Japanisch:   Ayako Sano\n"
 
-#: src/misc.c:210
+#: ../src/misc.c:217
 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:212
+#: ../src/misc.c:219
 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:936
-#, fuzzy, c-format
+#: ../src/misc.c:975
+#, c-format
 msgid "Could not process '%s' (no filename available)"
-msgstr "Es steht kein Dateiname zur Verfügung"
+msgstr "Kann nicht fortfahren '%s' (kein Dateiname verfügbar)"
 
-#: src/misc.c:1084
+#: ../src/misc.c:1129
 #, c-format
 msgid "Unknown token '%%%c' in template '%s'"
-msgstr "Unbekanntes Token '%%%c' in der Schablone '%s'"
+msgstr "Unbekanntes Merkmal '%%%c' in der Schablone '%s'"
 
-#: src/misc.c:1166
+#: ../src/misc.c:1212
 #, c-format
 msgid "Template ('%s') does not match file type '%s'\n"
-msgstr "Schablone ('%s') paßt nicht auf den Dateinamen '%s'\n"
+msgstr "Schablone ('%s') passt nicht auf den Dateinamen '%s'\n"
 
-#: src/misc.c:1247
+#: ../src/misc.c:1298
 #, c-format
 msgid "Error creating %s: %s\n"
 msgstr "Fehler beim Erstellen von '%s': %s\n"
 
-#. gint id,
-#. gboolean modal,
-#: src/misc_confirm.c:71
-msgid "Warning"
-msgstr "Warnung"
+#: ../src/misc.c:1777
+#, fuzzy, c-format
+msgid ""
+"Writing preferences file '%s' failed (%s).\n"
+"\n"
+msgstr ""
+"Die Ausführung von '%s' schlug fehl.\n"
+"\n"
 
+#: ../src/misc.c:1779
+msgid "unspecified error"
+msgstr ""
+
+#: ../src/misc.c:1787
+#, c-format
+msgid ""
+"Writing preferences to the iPod (%s) failed: could not get path to Control "
+"Directory.\n"
+"\n"
+msgstr ""
+
 #. title
-#: src/misc_confirm.c:72
-msgid "The following has occured:"
+#: ../src/misc_confirm.c:71
+#, fuzzy
+msgid "The following has occurred:"
 msgstr "Folgendes ist passiert:"
 
-#: src/misc_confirm.c:123
+#: ../src/misc_confirm.c:122
 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 "
@@ -3842,21 +4346,21 @@
 "iPod? The number of playlists the tracks are member of is indicated in "
 "parentheses."
 msgstr[0] ""
-"Sind Sie sicher, daß Sie das folgende Stück vollständig vom iPod entfernen "
+"Sind Sie sicher, dass Sie das folgende Stück vollständig vom iPod entfernen "
 "wollen? Die Anzahl der Wiedergabelisten, in denen das Stück geführt wird, "
 "ist in Klammern angegeben."
 msgstr[1] ""
-"Sind Sie sicher, daß Sie die folgenden Stücke vollständig vom iPod entfernen "
-"wollen? Die Anzahl der Wiedergabelisten, in denen die Stücke jeweils geführt "
-"werden, ist in Klammern angegeben."
+"Sind Sie sicher, dass Sie die folgenden Stücke vollständig vom iPod "
+"entfernen wollen? Die Anzahl der Wiedergabelisten, in denen die Stücke "
+"jeweils geführt werden, ist in Klammern angegeben."
 
-#: src/misc_confirm.c:127
+#: ../src/misc_confirm.c:126
 msgid "Delete Track Completely from iPod?"
-msgid_plural "Delete Tracks Completey from iPod?"
+msgid_plural "Delete Tracks Completely 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:179
+#: ../src/misc_confirm.c:137 ../src/misc_confirm.c:178
 #, c-format
 msgid ""
 "Are you sure you want to remove the following track from the playlist \"%s\"?"
@@ -3864,19 +4368,19 @@
 "Are you sure you want to remove the following tracks from the playlist \"%s"
 "\"?"
 msgstr[0] ""
-"Sind Sie sicher, daß Sie das folgende Stück von der Wiedergabeliste \"%s\" "
+"Sind Sie sicher, dass Sie das folgende Stück aus der Wiedergabeliste \"%s\" "
 "entfernen wollen?"
 msgstr[1] ""
-"Sind Sie sicher, daß Sie die folgenden Stücke von der Wiedergabeliste \"%s\" "
-"entfernen wollen?"
+"Sind Sie sicher, dass Sie die folgenden Stücke aus der Wiedergabeliste \"%s"
+"\" entfernen wollen?"
 
-#: src/misc_confirm.c:142 src/misc_confirm.c:183
+#: ../src/misc_confirm.c:141 ../src/misc_confirm.c:182
 msgid "Remove Track From Playlist?"
 msgid_plural "Remove Tracks From Playlist?"
-msgstr[0] "Stück von der Wiedergabeliste entfernen?"
-msgstr[1] "Stücke von der Wiedergabeliste entfernen?"
+msgstr[0] "Stück aus der Wiedergabeliste entfernen?"
+msgstr[1] "Stücke aus der Wiedergabeliste entfernen?"
 
-#: src/misc_confirm.c:164
+#: ../src/misc_confirm.c:163
 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 "
@@ -3886,21 +4390,21 @@
 "harddisk? The number of playlists the tracks are member of is indicated in "
 "parentheses."
 msgstr[0] ""
-"Sind Sie sicher, daß Sie das folgende Stück vollständig von Ihrer Festplatte "
-"entfernen wollen? Die Anzahl der Wiedergabelisten, in denen das Stück "
-"geführt wird, ist in Klammern angegeben."
+"Sind Sie sicher, dass Sie das folgende Stück vollständig von Ihrer "
+"Festplatte entfernen wollen? Die Anzahl der Wiedergabelisten, in denen das "
+"Stück geführt wird, ist in Klammern angegeben."
 msgstr[1] ""
-"Sind Sie sicher, daß Sie die folgenden Stücke vollständig von Ihrer "
+"Sind Sie sicher, dass Sie die folgenden Stücke vollständig von Ihrer "
 "Festplatte entfernen wollen? Die Anzahl der Wiedergabelisten, in denen die "
 "Stücke jeweils geführt werden, ist in Klammern angegeben."
 
-#: src/misc_confirm.c:168
+#: ../src/misc_confirm.c:167
 msgid "Delete Track from Harddisk?"
 msgid_plural "Delete Tracks from Harddisk?"
 msgstr[0] "Stück von der Festplatte löschen?"
 msgstr[1] "Stücke von der Festplatte löschen?"
 
-#: src/misc_confirm.c:193
+#: ../src/misc_confirm.c:192
 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 "
@@ -3910,62 +4414,62 @@
 "local database? The number of playlists the tracks are member of is "
 "indicated in parentheses."
 msgstr[0] ""
-"Sind Sie sicher, daß Sie das folgende Stück vollständig aus der lokalen "
+"Sind Sie sicher, dass Sie das folgende Stück vollständig aus der lokalen "
 "Datenbank entfernen wollen? Die Anzahl der Wiedergabelisten, in denen das "
 "Stück geführt wird, ist in Klammern angegeben."
 msgstr[1] ""
-"Sind Sie sicher, daß Sie die folgenden Stücke vollständig aus Ihrer lokalen "
+"Sind Sie sicher, dass Sie die folgenden Stücke vollständig aus Ihrer lokalen "
 "Datenbank entfernen wollen? Die Anzahl der Wiedergabelisten, in denen die "
 "Stücke jeweils geführt werden, ist in Klammern angegeben."
 
-#: src/misc_confirm.c:197
+#: ../src/misc_confirm.c:196
 msgid "Remove Track from Local Database?"
 msgid_plural "Remove Tracks from Local Database?"
-msgstr[0] ""
-msgstr[1] ""
+msgstr[0] "Stück aus der lokalen Datenbank löschen?"
+msgstr[1] "Stücke aus der lokalen Datenbank löschen?"
 
-#: src/misc_confirm.c:259
+#: ../src/misc_confirm.c:261
 #, c-format
 msgid "Deleted one track completely from iPod"
 msgid_plural "Deleted %d tracks completely from iPod"
 msgstr[0] "Ein Stück wurde komplett vom iPod entfernt."
 msgstr[1] "%d Stücke wurden komplett vom iPod entfernt."
 
-#: src/misc_confirm.c:265 src/misc_confirm.c:289
+#: ../src/misc_confirm.c:267 ../src/misc_confirm.c:291
 #, c-format
 msgid "Deleted %d track from playlist '%s'"
 msgid_plural "Deleted %d tracks from playlist '%s'"
-msgstr[0] "%d Stück wurde von der Wiedergabeliste '%s' entfernt."
-msgstr[1] "%d Stücke wurden von der Wiedergabeliste '%s' entfernt."
+msgstr[0] "%d Stück wurde aus der Wiedergabeliste '%s' entfernt."
+msgstr[1] "%d Stücke wurden aus der Wiedergabeliste '%s' entfernt."
 
-#: src/misc_confirm.c:283
+#: ../src/misc_confirm.c:285
 #, c-format
 msgid "Deleted one track from harddisk"
 msgid_plural "Deleted %d tracks from harddisk"
 msgstr[0] "Ein Stück wurde von Ihrer Festplatte gelöscht."
 msgstr[1] "%d Stücke wurden von Ihrer Festplatte gelöscht."
 
-#: src/misc_confirm.c:295
+#: ../src/misc_confirm.c:297
 #, c-format
 msgid "Deleted track from local database"
 msgid_plural "Deleted %d tracks from local database"
-msgstr[0] "Stück wurde aus der der lokalen Datenbank entfernt"
+msgstr[0] "Ein Stück wurde aus der lokalen Datenbank entfernt"
 msgstr[1] "%d Stücke wurden aus der lokalen Datenbank entfernt"
 
-#: src/misc_confirm.c:438
+#: ../src/misc_confirm.c:442
 msgid "Cannot remove entry 'All'"
 msgstr "Der Eintrag 'Alle' kann nicht entfernt werden"
 
-#: src/misc_confirm.c:532
+#: ../src/misc_confirm.c:536
 #, c-format
 msgid "Removed all %d tracks from the iPod"
 msgstr "Alle %d Stücke wurden vom iPod entfernt"
 
-#: src/misc_confirm.c:537
+#: ../src/misc_confirm.c:541
 msgid "Removed all podcasts from the iPod"
 msgstr "Alle Podcasts wurden vom iPod entfernt"
 
-#: src/misc_confirm.c:546 src/misc_confirm.c:620
+#: ../src/misc_confirm.c:550 ../src/misc_confirm.c:624
 #, c-format
 msgid "Deleted playlist '%s' including %d member track"
 msgid_plural "Deleted playlist '%s' including %d member tracks"
@@ -3973,36 +4477,36 @@
 msgstr[1] "Wiedergabeliste '%s' einschließlich %d Stücken entfernt"
 
 #. first use playlist name
-#: src/misc_confirm.c:562 src/misc_confirm.c:636
+#: ../src/misc_confirm.c:566 ../src/misc_confirm.c:640
 #, c-format
 msgid "Deleted playlist '%s'"
 msgstr "Wiedergabeliste '%s' gelöscht."
 
-#: src/misc_confirm.c:596
+#: ../src/misc_confirm.c:600
 #, 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] ""
-"Wiedergabeliste '%s' wurde einschließlich eines Stückes auf der Festplatte "
+"Wiedergabeliste '%s' wurde einschließlich eines Stückes von der Festplatte "
 "gelöscht"
 msgstr[1] ""
-"Wiedergabeliste '%s' wurde einschließlich %d Stücken auf der Festplatte "
+"Wiedergabeliste '%s' wurde einschließlich %d Stücken von der Festplatte "
 "gelöscht"
 
-#: src/misc_confirm.c:613
+#: ../src/misc_confirm.c:617
 #, c-format
 msgid "Removed all %d tracks from the database"
 msgstr "Alle %d Stücke wurden aus der Datenbank entfernt"
 
-#: src/misc_confirm.c:691
+#: ../src/misc_confirm.c:695
 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?"
+msgstr "Sind Sie sicher, dass Sie alle Stücke vom iPod entfernen wollen?"
 
-#: src/misc_confirm.c:696
+#: ../src/misc_confirm.c:700
 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?"
+msgstr "Sind Sie sicher, dass sie alle Podcasts vom iPod entfernen wollen?"
 
-#: src/misc_confirm.c:704
+#: ../src/misc_confirm.c:708
 #, c-format
 msgid ""
 "Are you sure you want to delete playlist '%s' and the following track "
@@ -4013,21 +4517,21 @@
 "completely from your ipod? The number of playlists the tracks are member of "
 "is indicated in parentheses."
 msgstr[0] ""
-"Sind Sie sicher, daß Sie die Wiedergabeliste '%s' und das folgende Stück "
+"Sind Sie sicher, dass Sie die Wiedergabeliste '%s' und das folgende Stück "
 "vollständig vom iPod entfernen wollen? Die Anzahl der Wiedergabelisten, in "
 "denen das Stück geführt wird, ist in Klammern angegeben."
 msgstr[1] ""
-"Sind Sie sicher, daß Sie die die Wiedergabeliste '%s' und die folgenden "
+"Sind Sie sicher, dass Sie die die Wiedergabeliste '%s' und die folgenden "
 "Stücke vollständig vom iPod entfernen wollen? Die Anzahl der "
 "Wiedergabelisten, in denen die Stücke jeweils geführt werden, ist in "
 "Klammern angegeben."
 
-#: src/misc_confirm.c:715 src/misc_confirm.c:770
+#: ../src/misc_confirm.c:719 ../src/misc_confirm.c:774
 #, c-format
 msgid "Are you sure you want to delete the playlist '%s'?"
-msgstr "Sind Sie sicher, daß Sie die Wiedergabeliste \"%s\" entfernen wollen?"
+msgstr "Sind Sie sicher, dass Sie die Wiedergabeliste \"%s\" entfernen wollen?"
 
-#: src/misc_confirm.c:741
+#: ../src/misc_confirm.c:745
 #, c-format
 msgid ""
 "Are you sure you want to delete playlist '%s' and remove the following track "
@@ -4038,21 +4542,21 @@
 "tracks from your harddisk? The number of playlists the tracks are member of "
 "is indicated in parentheses."
 msgstr[0] ""
-"Sind Sie sicher, daß Sie die Wiedergabeliste '%s' und das folgende Stück von "
-"Ihrer Festplatte entfernen wollen? Die Anzahl der Wiedergabelisten, in denen "
-"das Stück geführt wird, ist in Klammern angegeben."
+"Sind Sie sicher, dass Sie die Wiedergabeliste '%s' und das folgende Stück "
+"von Ihrer Festplatte entfernen wollen? Die Anzahl der Wiedergabelisten, in "
+"denen das Stück geführt wird, ist in Klammern angegeben."
 msgstr[1] ""
-"Sind Sie sicher, daß Sie die die Wiedergabeliste '%s' und die folgenden "
+"Sind Sie sicher, dass Sie die die Wiedergabeliste '%s' und die folgenden "
 "Stücke vollständig von Ihrer Festplatte entfernen wollen? Die Anzahl der "
 "Wiedergabelisten, in denen die Stücke jeweils geführt werden, ist in "
 "Klammern angegeben."
 
-#: src/misc_confirm.c:749
+#: ../src/misc_confirm.c:753
 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?"
+"Sind Sie sicher, dass Sie alle Stücke von der Datenbank entfernen wollen?"
 
-#: src/misc_confirm.c:758
+#: ../src/misc_confirm.c:762
 #, c-format
 msgid ""
 "Are you sure you want to delete playlist '%s' and remove the following track "
@@ -4063,143 +4567,164 @@
 "tracks from the database? The number of playlists the tracks are member of "
 "is indicated in parentheses."
 msgstr[0] ""
-"Sind Sie sicher, daß Sie die Wiedergabeliste '%s' und das folgende Stück aus "
-"der Datenbank entfernen wollen? Die Anzahl der Wiedergabelisten, in denen "
-"das Stück geführt wird, ist in Klammern angegeben."
+"Sind Sie sicher, dass Sie die Wiedergabeliste '%s' und das folgende Stück "
+"aus der Datenbank entfernen wollen? Die Anzahl der Wiedergabelisten, in "
+"denen das Stück geführt wird, ist in Klammern angegeben."
 msgstr[1] ""
-"Sind Sie sicher, daß Sie die die Wiedergabeliste '%s' und die folgenden "
+"Sind Sie sicher, dass Sie die die Wiedergabeliste '%s' und die folgenden "
 "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:859
+#: ../src/misc_confirm.c:841
 msgid ""
 "Data has been changed and not been saved.\n"
 "OK to exit gtkpod?"
 msgstr ""
 "Änderungen wurden noch nicht gespeichert.\n"
-"Wollen Sie gtkpod trotzdem verlassen?"
+"Wollen Sie gtkpod trotzdem beenden?"
 
-#: src/misc_conversion.c:67
+#: ../src/misc_conversion.c:66
 msgid "File type"
 msgstr "Dateityp"
 
-#: src/misc_conversion.c:68
+#: ../src/misc_conversion.c:67
 msgid "PC File"
 msgstr "PC Datei"
 
-#: src/misc_conversion.c:69
+#: ../src/misc_conversion.c:68
 msgid "iPod File"
 msgstr "iPod Datei"
 
-#: src/misc_conversion.c:70
+#: ../src/misc_conversion.c:69
 msgid "iPod ID"
 msgstr "iPod ID"
 
 #. 10
-#: src/misc_conversion.c:71
+#: ../src/misc_conversion.c:70
 msgid "Track Nr (#)"
 msgstr "Stück Nr (#)"
 
-#: src/misc_conversion.c:72
+#: ../src/misc_conversion.c:71
 msgid "Transferred"
 msgstr "Ãœbertragen"
 
-#: src/misc_conversion.c:73
+#: ../src/misc_conversion.c:72
 msgid "File Size"
 msgstr "Dateigröße"
 
-#: src/misc_conversion.c:74
+#: ../src/misc_conversion.c:73
 msgid "Play Time"
 msgstr "Spielzeit"
 
 #. 20
-#: src/misc_conversion.c:81
+#: ../src/misc_conversion.c:80
 msgid "Date played"
-msgstr "Zuletzt Gespielt"
+msgstr "Zuletzt gespielt"
 
-#: src/misc_conversion.c:83
+#: ../src/misc_conversion.c:82
 msgid "Volume"
-msgstr "Vol."
+msgstr "Lautstärke"
 
-#: src/misc_conversion.c:84
+#: ../src/misc_conversion.c:83
 msgid "Soundcheck"
 msgstr "Soundcheck"
 
 #. 25
-#: src/misc_conversion.c:86
+#: ../src/misc_conversion.c:85
 msgid "CD Nr"
-msgstr "CD Nr"
+msgstr "CD Nr."
 
-#: src/misc_conversion.c:89
+#: ../src/misc_conversion.c:88
 msgid "Category"
 msgstr "Kategorie"
 
-#: src/misc_conversion.c:90
+#: ../src/misc_conversion.c:89
 msgid "Description"
 msgstr "Beschreibung"
 
 #. 30
-#: src/misc_conversion.c:91
+#: ../src/misc_conversion.c:90
 msgid "Podcast URL"
 msgstr "Podcast-URL"
 
-#: src/misc_conversion.c:92
+#: ../src/misc_conversion.c:91
 msgid "Podcast RSS"
 msgstr "Podcast RSS"
 
-#: src/misc_conversion.c:93
+#: ../src/misc_conversion.c:92
 msgid "Subtitle"
 msgstr "Untertitel"
 
-#: src/misc_conversion.c:94
+#: ../src/misc_conversion.c:93
 msgid "Date released"
 msgstr "Veröffentlichungsdatum"
 
-#: src/misc_conversion.c:95
+#: ../src/misc_conversion.c:94
 msgid "Checked"
 msgstr "Ausgewählt"
 
 #. 35
-#: src/misc_conversion.c:96
-#, fuzzy
+#: ../src/misc_conversion.c:95
 msgid "Start time"
-msgstr "Zuletzt"
+msgstr "Start"
 
-#: src/misc_conversion.c:97
+#: ../src/misc_conversion.c:96
 #, fuzzy
 msgid "Stop time"
 msgstr "Stopp"
 
-#: src/misc_conversion.c:98
+#: ../src/misc_conversion.c:97
 msgid "Remember Playback Position"
-msgstr ""
+msgstr "Wiedergabe-Position merken"
 
-#: src/misc_conversion.c:99
+#: ../src/misc_conversion.c:98
 msgid "Skip when Shuffling"
-msgstr ""
+msgstr "Beim Shuffling überspringen"
 
-#: src/misc_conversion.c:100
+#: ../src/misc_conversion.c:99
 msgid "Artwork Path"
+msgstr "Pfad zu Bilddateien"
+
+#. 40
+#: ../src/misc_conversion.c:100
+msgid "Media Type"
 msgstr ""
 
-#: src/misc_conversion.c:113
+#: ../src/misc_conversion.c:102
+msgid "TV Episode"
+msgstr ""
+
+#: ../src/misc_conversion.c:103
+msgid "TV Network"
+msgstr ""
+
+#: ../src/misc_conversion.c:104
+msgid "Season Nr"
+msgstr ""
+
+#. 45
+#: ../src/misc_conversion.c:105
+msgid "Episode Nr"
+msgstr ""
+
+#: ../src/misc_conversion.c:118
 msgid "Name of file on PC, if available"
 msgstr "Dateiname auf dem PC, falls verfügbar"
 
-#: src/misc_conversion.c:114
+#: ../src/misc_conversion.c:119
 msgid "Name of file on the iPod"
 msgstr "Name der Datei auf dem iPod"
 
 #. 10
-#: src/misc_conversion.c:116
+#: ../src/misc_conversion.c:121
 msgid "Track Nr. and total number of tracks on CD"
-msgstr "Track-Nr. und Gesamtzahl der Tracks auf der CD"
+msgstr "Stück-Nr. und Gesamtzahl der Stücke auf der CD"
 
-#: src/misc_conversion.c:117
+#: ../src/misc_conversion.c:122
 msgid "Whether the file has already been transferred to the iPod or not"
-msgstr "Ob die Datei bereits zum iPod übertragen wurde oder nicht."
+msgstr "Ungeachtet, ob die Datei bereits zum iPod übertragen wurde oder nicht."
 
-#: src/misc_conversion.c:123
+#: ../src/misc_conversion.c:128
 msgid ""
 "Supposedly something that tells the iPod to increase or decrease the "
 "playback speed"
@@ -4207,132 +4732,133 @@
 "Anscheinend ein Feld, das den iPod anweist, die Wiedergabe zu beschleunigen "
 "oder zu verlangsamen"
 
-#: src/misc_conversion.c:125
+#: ../src/misc_conversion.c:130
 msgid "Number of times the track has been played"
 msgstr "Wie oft dieses Stück bereits gespielt wurde"
 
-#: src/misc_conversion.c:126
+#: ../src/misc_conversion.c:131
 msgid "Star rating from 0 to 5"
-msgstr "Beurteilung von 0 bis 5 Sterne"
+msgstr "Bewertung mit 0 bis 5 Sternen"
 
-#: src/misc_conversion.c:127
+#: ../src/misc_conversion.c:132
 msgid "Date and time track has been added"
 msgstr "Zeitpunkt zu dem das Stück hinzugefügt wurde"
 
 #. 20
-#: src/misc_conversion.c:128
+#: ../src/misc_conversion.c:133
 msgid "Date and time track has last been played"
 msgstr "Zeitpunkt des letzten Abspielens des Stücks"
 
-#: src/misc_conversion.c:129
+#: ../src/misc_conversion.c:134
 msgid "Date and time track has last been modified"
 msgstr "Zeitpunkt der letzten Modifikation des Stücks"
 
-#: src/misc_conversion.c:130
+#: ../src/misc_conversion.c:135
 msgid "Manual volume adjust"
 msgstr "Manuelle Lautstärkeanpassung"
 
-#: src/misc_conversion.c:131
+#: ../src/misc_conversion.c:136
 msgid ""
 "Volume adjust in dB (replay gain) -- you need to activate 'soundcheck' on "
 "the iPod"
 msgstr ""
-"Lautstärkeanpassung in dB (replay gain) -- 'Soundcheck' muß auf dem iPod "
+"Lautstärkeanpassung in dB (replay gain) -- 'Soundcheck' muss auf dem iPod "
 "aktiviert sein"
 
 #. 25
-#: src/misc_conversion.c:134
+#: ../src/misc_conversion.c:139
 msgid "CD Nr. and total number of CDS in set"
 msgstr "CD-Nummer und Gesamtzahl der CDs im Set"
 
-#: src/misc_conversion.c:137
+#: ../src/misc_conversion.c:142
 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."
+"Die Kategorie (z.B. 'Technologie' oder 'Musik') in die das Podcast "
+"eingeordnet war."
 
-#: src/misc_conversion.c:138
+#: ../src/misc_conversion.c:143
 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:142
+#: ../src/misc_conversion.c:147
 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:649
+#: ../src/misc_conversion.c:713
 #, 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:659
+#: ../src/misc_conversion.c:723
 #, c-format
 msgid "The local file URI '%s' may not include a '#'"
-msgstr "Der lokale URI »%s« darf kein »#« enthalten"
+msgstr "Die lokale URI Datei »%s« darf kein »#« enthalten"
 
-#: src/misc_conversion.c:676
+#: ../src/misc_conversion.c:740
 #, c-format
 msgid "The URI '%s' is invalid"
 msgstr "Der URI »%s« ist ungültig"
 
-#: src/misc_conversion.c:688
+#: ../src/misc_conversion.c:752
 #, c-format
 msgid "The hostname of the URI '%s' is invalid"
 msgstr "Der Rechnername der URI »%s« ist ungültig"
 
-#: src/misc_conversion.c:704
+#: ../src/misc_conversion.c:768
 #, 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:430
+#: ../src/misc_playlist.c:67 ../src/misc_playlist.c:94
+#: ../src/misc_playlist.c:429
 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:155
+#: ../src/misc_playlist.c:154
 msgid "AR:"
 msgstr "Kü:"
 
-#: src/misc_playlist.c:158
+#: ../src/misc_playlist.c:157
 msgid "AL:"
 msgstr "Al:"
 
-#: src/misc_playlist.c:161
+#: ../src/misc_playlist.c:160
 msgid "GE:"
 msgstr "Ge:"
 
-#: src/misc_playlist.c:164
+#: ../src/misc_playlist.c:163
 msgid "CO:"
 msgstr "Ko:"
 
-#: src/misc_playlist.c:167
+#: ../src/misc_playlist.c:166
 msgid "YE:"
 msgstr "Ja:"
 
-#: src/misc_playlist.c:195
+#: ../src/misc_playlist.c:194
 msgid "Unknown"
 msgstr "Unbekannt"
 
-#: src/misc_playlist.c:273
+#: ../src/misc_playlist.c:272
 #, c-format
 msgid "Random (%d)"
 msgstr "Zufällig (%d)"
 
-#: src/misc_playlist.c:298
+#: ../src/misc_playlist.c:297
 msgid ""
 "Auto Store of track view disabled.\n"
 "\n"
 msgstr ""
-"Automatisch Speichern der Reihenfolge der Trackanzeige ausgeschaltet.\n"
+"Autom. Speichern der angezeigten Stücke ausgeschaltet.\n"
 "\n"
 
-#: src/misc_playlist.c:357
+#: ../src/misc_playlist.c:356
 msgid "Not Listed"
 msgstr "Nicht eingetragen"
 
-#: src/misc_playlist.c:407
+#: ../src/misc_playlist.c:406
 #, c-format
 msgid "Created playlist '%s' with %d track."
 msgid_plural "Created playlist '%s' with %d tracks."
@@ -4340,75 +4866,75 @@
 msgstr[1] "Wiedergabeliste '%s' mit %d Stücken erstellt."
 
 #. n==0
-#: src/misc_playlist.c:418
+#: ../src/misc_playlist.c:417
 msgid "No tracks available, playlist not created"
 msgstr ""
 "Keine passenden Stücke vorhanden -- Wiedergabeliste wurde nicht erstellt."
 
-#: src/misc_playlist.c:544
+#: ../src/misc_playlist.c:543
 #, c-format
 msgid "Most Listened (%d)"
 msgstr "Häufig (%d)"
 
-#: src/misc_playlist.c:585
+#: ../src/misc_playlist.c:584
 msgid "Never Listened"
 msgstr "Nie gehört"
 
-#: src/misc_playlist.c:625
+#: ../src/misc_playlist.c:624
 #, c-format
 msgid "Best Rated (%d)"
-msgstr "Gewertet (%d)"
+msgstr "Am besten bewertet (%d)"
 
-#: src/misc_playlist.c:667
+#: ../src/misc_playlist.c:666
 msgid "Unrated tracks"
 msgstr "Unbewertet"
 
-#: src/misc_playlist.c:672
+#: ../src/misc_playlist.c:671
 #, c-format
 msgid "Rated %d"
 msgstr "Bewertet (%d)"
 
-#: src/misc_playlist.c:715
+#: ../src/misc_playlist.c:714
 #, c-format
 msgid "Recent (%d)"
-msgstr "Zuletzt (%d)"
+msgstr "Kürzlich (%d)"
 
-#: src/misc_playlist.c:754
+#: ../src/misc_playlist.c:753
 msgid "Last Time"
 msgstr "Zuletzt"
 
-#: src/misc_playlist.c:845
+#: ../src/misc_playlist.c:844
 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:855
+#: ../src/misc_playlist.c:854
 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:883
+#: ../src/misc_playlist.c:882
 msgid "Dangling tracks with no files on PC were removed."
 msgstr ""
 "Verlorene Stücke ohne entsprechende Datei auf dem Computer wurden entfernt."
 
-#: src/misc_playlist.c:917
+#: ../src/misc_playlist.c:916
 #, c-format
 msgid "Processing '%s'"
 msgstr "Bearbeite '%s'"
 
-#: src/misc_playlist.c:941
+#: ../src/misc_playlist.c:943
 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:974
+#: ../src/misc_playlist.c:976
 msgid "Track"
 msgstr "Stück"
 
-#: src/misc_playlist.c:1017
+#: ../src/misc_playlist.c:1019
 msgid ""
 "You did not import the existing iTunesDB. This is most likely incorrect and "
 "will result in the loss of the existing database.\n"
@@ -4425,19 +4951,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:1031
+#: ../src/misc_playlist.c:1033
 msgid "Creating a tree of known files"
 msgstr "Erstelle eine Liste der vorhandenen Dateien"
 
-#: src/misc_playlist.c:1075
+#: ../src/misc_playlist.c:1077
 msgid "Checking iPOD files against known files in DB"
 msgstr "Vergleiche Dateien auf dem iPod mit der iTunesDB"
 
-#: src/misc_playlist.c:1118
+#: ../src/misc_playlist.c:1120
 msgid "Orphaned"
 msgstr "Verwaist"
 
-#: src/misc_playlist.c:1145
+#: ../src/misc_playlist.c:1147
 #, c-format
 msgid ""
 "The following orphaned file had already been added to the iPod again. It "
@@ -4445,17 +4971,17 @@
 "%s\n"
 "\n"
 msgstr ""
-"Die folgende verwaiste Datei wurde in der Zwischenzeit schon wieder zum iPod "
-"hinzugefügt. Sie wird beim nächsten Abgleich gelöscht:\n"
+"Die folgende verwaiste Datei wurde bereits wieder zum iPod hinzugefügt. Sie "
+"wird beim nächsten Abgleich gelöscht:\n"
 "%s\n"
 "\n"
 
-#: src/misc_playlist.c:1173
+#: ../src/misc_playlist.c:1175
 #, c-format
 msgid "Found %d orphaned and %d dangling files. Processing..."
 msgstr "'%d' verwaiste und '%d' verlorene Dateien gefunden. Bearbeite..."
 
-#: src/misc_playlist.c:1197
+#: ../src/misc_playlist.c:1199
 #, c-format
 msgid ""
 "The following dangling track has a file on PC.\n"
@@ -4474,7 +5000,7 @@
 "Klicken Sie auf OK, um sie beim nächsten Abgleich zu übertragen oder auf "
 "'Abbrechen' um nichts zu tun."
 
-#: src/misc_playlist.c:1202
+#: ../src/misc_playlist.c:1204
 #, c-format
 msgid ""
 "The following dangling track doesn't have file on PC. \n"
@@ -4483,41 +5009,41 @@
 "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] ""
-"Der folgende verlorene Track ist auch auf dem PC nicht mehr vorhanden.\n"
+"Das folgende verlorene Stück ist auch auf dem PC nicht mehr vorhanden.\n"
 "Klicken Sie auf OK, um das Stück zu löschen oder auf 'Abbrechen' um nichts "
 "zu tun."
 msgstr[1] ""
-"Die folgenden %d Tracks sind auch auf dem PC nicht mehr vorhanden.\n"
+"Die folgenden %d Stücke sind auch auf dem PC nicht mehr vorhanden.\n"
 "Klicken Sie auf OK, um die Stücke zu löschen, oder auf 'Abbrechen' um nichts "
 "zu tun."
 
 #. we want unique window for each
 #. gboolean modal,
-#: src/misc_playlist.c:1209
+#: ../src/misc_playlist.c:1211
 msgid "Dangling Tracks"
 msgstr "Verlorene Stücke"
 
-#: src/misc_playlist.c:1232
+#: ../src/misc_playlist.c:1234
 #, 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:90 src/misc_track.c:364
+#: ../src/misc_track.c:89
 #, 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:199
+#: ../src/misc_track.c:198
 #, 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:206
+#: ../src/misc_track.c:205
 #, c-format
 msgid ""
 "The following duplicate track has not been added to the master play list."
@@ -4525,78 +5051,88 @@
 "The following %d duplicate tracks have not been added to the master play "
 "list."
 msgstr[0] ""
-"Das folgende doppelt eingelesene Stück wurde nicht erneut zur Hauptplayliste "
-"hinzugefügt."
+"Das folgende doppelt eingelesene Stück wurde nicht erneut zur "
+"Hauptwiedergabeliste hinzugefügt."
 msgstr[1] ""
 "Die folgenden %d doppelt eingelesenen Stücke wurden nicht erneut zur "
-"Hauptplayliste hinzugefügt."
+"Hauptwiedergabeliste hinzugefügt."
 
 #. gint id,
 #. gboolean modal,
-#: src/misc_track.c:213
+#: ../src/misc_track.c:212
 msgid "Duplicate detection"
 msgstr "Duplikaterkennung"
 
-#: src/misc_track.c:904
+#: ../src/misc_track.c:1269
 msgid "Local Database"
 msgstr "Lokale Datenbank"
 
 #. artwork is set
-#: src/misc_track.c:915
+#: ../src/misc_track.c:1280
 msgid "Embedded or filename was lost"
-msgstr ""
+msgstr "Eingefügt oder Dateiname war unauffindbar"
 
-#: src/misc_track.c:919
-#, fuzzy
+#: ../src/misc_track.c:1284
 msgid "Artwork not set"
-msgstr "ist nicht gesetzt"
+msgstr "Bilddatei nicht gesetzt"
 
-#: src/misc_track.c:1527
+#: ../src/misc_track.c:1737
+#, fuzzy, c-format
+msgid "Could not find source file for '%s'. Track not copied."
+msgstr "Konnte Datei für '%s' auf dem iPod nicht finden\n"
+
+#: ../src/misc_track.c:1973
 #, c-format
 msgid "drag and drop: ignored '%s'\n"
-msgstr "Drag und Drop: '%s' ignoriert\n"
+msgstr "Verschieben: '%s' ignoriert\n"
 
-#: src/mp3file.c:1276
+#: ../src/mp3file.c:1282
 #, c-format
 msgid "Error setting ID3 field: %s\n"
 msgstr "Fehler beim Setzen des ID3 Feldes: '%s'\n"
 
-#: src/mp3file.c:1300 src/mp3file.c:1373 src/mp3file.c:1522 src/mp3file.c:2160
+#: ../src/mp3file.c:1306 ../src/mp3file.c:1399 ../src/mp3file.c:1548
+#: ../src/mp3file.c:2186
 #, c-format
 msgid "ERROR while opening file: '%s' (%s).\n"
 msgstr "FEHLER beim Öffnen der Datei: '%s' (%s).\n"
 
-#: src/mp3file.c:1593
+#: ../src/mp3file.c:1619
 #, c-format
 msgid "ERROR while writing tag to file: '%s' (%s).\n"
 msgstr "FEHLER beim Schreiben eines Tags: '%s' (%s).\n"
 
 #. Tracks with zero play length are ignored by iPod...
-#: src/mp3file.c:2326
+#: ../src/mp3file.c:2352
 #, c-format
 msgid "File \"%s\" has zero play length. Ignoring.\n"
-msgstr "Die Datei '%s' hat Null-Spielzeit und wird ignoriert.\n"
+msgstr "Die Datei '%s' hat Null Spielzeit und wird ignoriert.\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' scheint keine MP4-Audio-Datei zu sein.\n"
+#: ../src/mp4file.c:227 ../src/mp4file.c:359
+#, fuzzy, c-format
+msgid "'%s' does not appear to be a mp4 audio or video file.\n"
+msgstr "'%s' scheint keine mp4-Audio-Datei zu sein.\n"
 
-#: src/mp4file.c:231 src/mp4file.c:352
+#: ../src/mp4file.c:237 ../src/mp4file.c:369
 #, 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:472
+#: ../src/mp4file.c:478
 #, 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:489
+#, 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:485
+#: ../src/mp4file.c:502
 #, c-format
 msgid ""
 "Import of '%s' failed: m4a/m4p/m4b not supported without the mp4v2 library. "
@@ -4604,9 +5140,9 @@
 msgstr ""
 "Einlesen des Stücks '%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"
+"Bibliothek kompilieren.\n"
 
-#: src/mp4file.c:491
+#: ../src/mp4file.c:508
 #, c-format
 msgid ""
 "m4a/m4p/m4b metadata update for '%s' failed: m4a/m4p/m4b not supported "
@@ -4615,10 +5151,10 @@
 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"
+"zusammen mit der mp4v2 Bibliothek kompilieren.\n"
 
-#: src/mp4file.c:497
-#, fuzzy, c-format
+#: ../src/mp4file.c:514
+#, 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 "
@@ -4626,282 +5162,320 @@
 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"
+"zusammen mit der mp4v2 Bibliothek kompilieren.\n"
 
-#: src/prefs.c:307
+#: ../src/oggfile.c:62 ../src/wavfile.c:107
 #, c-format
+msgid "Could not open '%s' for reading.\n"
+msgstr "Datei '%s' konnte nicht zum Lesen geöffnet werden.\n"
+
+#: ../src/oggfile.c:73
+#, fuzzy, c-format
+msgid "'%s' does not appear to be an ogg audio file.\n"
+msgstr "'%s' scheint keine mp4-Audio-Datei zu sein.\n"
+
+#: ../src/oggfile.c:150
+#, fuzzy, c-format
+msgid ""
+"Import of '%s' failed: ogg not supported without the ogg library. You must "
+"compile the gtkpod source together with the ogg library.\n"
+msgstr ""
+"Einlesen des Stücks '%s' fehlgeschlagen: m4a/m4p/m4b-Dateien werden ohne die "
+"mp4v2 Bibliothek nicht unterstützt. Sie müssen gtkpod zusammen mit der mp4v2 "
+"Bibliothek kompilieren.\n"
+
+#: ../src/oggfile.c:156
+#, fuzzy, c-format
+msgid ""
+"ogg metadata update for '%s' failed: ogg not supported without the ogg "
+"library. You must compile the gtkpod source together with the ogg 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 kompilieren.\n"
+
+#: ../src/prefs.c:356
+#, c-format
 msgid "gtkpod version %s usage:\n"
-msgstr "Benutzung von gtkpod %s:\n"
+msgstr "gtkpod Version %s:\n"
 
-#: src/prefs.c:308
+#: ../src/prefs.c:357
 msgid "  -h, --help:   display this message\n"
 msgstr "  -h, --help:   diesen Text anzeigen\n"
 
-#: 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:358
+#, fuzzy
+msgid "  -p <file>:    increment playcount for file by one\n"
+msgstr "  -p <Dateiname>:Wiedergabezähler für 'Dateiname' um eins erhöhen\n"
 
-#: src/prefs.c:310
+#: ../src/prefs.c:359
+msgid "  --hash <file>:print gtkpod hash for file\n"
+msgstr ""
+
+#: ../src/prefs.c:360
 msgid "  -m path:      define the mountpoint of your iPod\n"
-msgstr "  -m <Pfad>:    Mountpoint für iPod angeben\n"
+msgstr "  -m <Pfad>:    Einhängepunkt für iPod angeben\n"
 
-#: src/prefs.c:311
+#: ../src/prefs.c:361
 msgid "  --mountpoint: same as '-m'.\n"
-msgstr "  --mountpoint: wie '-m'.\n"
+msgstr "  --Einhängepunkt: wie '-m'.\n"
 
-#: src/prefs.c:312
+#: ../src/prefs.c:362
 msgid "  -a:           import database automatically after start.\n"
 msgstr "  -a:           iTunesDB automatisch importieren\n"
 
-#: src/prefs.c:313
+#: ../src/prefs.c:363
 msgid "  --auto:       same as '-a'.\n"
 msgstr "  --auto:       wie '-a'.\n"
 
-#: src/prefs_window.c:119
+#: ../src/prefs.c:560
+#, c-format
+msgid "Couldn't create ~/.gtkpod\n"
+msgstr ""
+
+#: ../src/prefs_window.c:134
 msgid "Please select command for 'Play Now'"
-msgstr "Programm für 'Jetzt abspielen'"
+msgstr "Programm für 'Jetzt abspielen' wählen"
 
-#: src/prefs_window.c:120
+#: ../src/prefs_window.c:135
 msgid "Please select command for 'Enqueue'"
-msgstr "Programm für 'Zum Abspielen Vormerken':"
+msgstr "Programm für 'Zum Abspielen vormerken':"
 
-#: src/prefs_window.c:121
+#: ../src/prefs_window.c:136
 msgid "Please select the mp3gain executable"
 msgstr "Genauer Pfad des mp3gain-Programms"
 
-#: src/prefs_window.c:124
+#: ../src/prefs_window.c:137
+msgid "Please select the aacgain executable"
+msgstr "Genauer Pfad des aacgain-Programms"
+
+#: ../src/prefs_window.c:138
 msgid "Select the mserv music root directory"
 msgstr "Wählen Sie das mserv Stammverzeichnis für Musik"
 
-#: src/prefs_window.c:125
+#: ../src/prefs_window.c:139
 msgid "Select the mserv trackinfo root directory"
-msgstr "Wählen Sie das mserv Stammverzeichnis (trackinfo)"
+msgstr "Wählen Sie das mserv Stammverzeichnis (Stückinfo)"
 
-#: src/prefs_window.c:127
-#, fuzzy
-msgid "Please select the aacgain executable"
-msgstr "Genauer Pfad des mp3gain-Programms"
+#: ../src/prefs_window.c:140
+msgid "Select the ogg/vorbis converter command"
+msgstr ""
 
-#: src/prefs_window.c:911 src/prefs_window.c:929
+#: ../src/prefs_window.c:141
+msgid "Select the flac converter command"
+msgstr ""
+
+#: ../src/prefs_window.c:142
+msgid "Select the m4a converter command."
+msgstr ""
+
+#: ../src/prefs_window.c:143
+msgid "Select the mp3 converter command."
+msgstr ""
+
+#: ../src/prefs_window.c:144
+msgid "Select the wav converter command."
+msgstr ""
+
+#: ../src/prefs_window.c:211 ../src/repository.c:662
+#, fuzzy, c-format
+msgid ""
+"<i>Have a look at the scripts provided in '%s'. If you write a new script or "
+"improve an existing one, please send it to jcsjcs at users.sourceforge.net "
+"for inclusion into the next release.</i>"
+msgstr ""
+"<i>Schauen Sie sich die Skripte 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_window.c:986 ../src/prefs_window.c:1004
 msgid "Preferences not updated"
 msgstr "Die Einstellungen wurden nicht übernommen"
 
-#: src/prefs_window.c:938
+#: ../src/prefs_window.c:1013
 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
+#: ../src/repository.c:573 ../src/repository.c:2395
 msgid "Set backup file"
-msgstr ""
+msgstr "Bestimme Sicherungsdatei"
 
-#: src/repository.c:615
-#, fuzzy
+#: ../src/repository.c:612
 msgid "Select directory for synchronization"
-msgstr "Wählen Sie Verzeichnisse zum Hinzufügen"
+msgstr "Wählen Sie ein Verzeichnis zum Abgleich"
 
-#: src/repository.c:641
+#: ../src/repository.c:638
 msgid "Please select command to sync contacts"
-msgstr "Skript zum Exportieren der Kontakte"
+msgstr "Skript zum Abgleichen der Kontakte"
 
-#: src/repository.c:647
+#: ../src/repository.c:644
 msgid "Please select command to sync calendar"
-msgstr "Skript zum Exportieren des Terminkalenders"
+msgstr "Skript zum Abgleichen des Terminkalenders"
 
-#: src/repository.c:653
-#, fuzzy
+#: ../src/repository.c:650
 msgid "Please select command to sync notes"
-msgstr "Skript zum Exportieren der Kontakte"
+msgstr "Skript zum Abgleichen der Notizen"
 
-#: 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>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/repository.c:732
-#, fuzzy
+#: ../src/repository.c:729
 msgid "Smart playlist updated."
-msgstr "Intelligente Wiedergabeliste"
+msgstr "Intelligente Wiedergabeliste aktualisiert."
 
-#: src/repository.c:1193
-#, fuzzy
+#: ../src/repository.c:1190
 msgid "Podcasts Repository"
-msgstr "Vom iPod entfernen "
+msgstr "Podcast Datenbank"
 
-#: src/repository.c:1197
-#, fuzzy
+#: ../src/repository.c:1194
 msgid "Local Repository"
-msgstr "Vom iPod entfernen "
+msgstr "Lokale Datenbank"
 
-#: src/repository.c:1351
-#, fuzzy
+#: ../src/repository.c:1348
 msgid "Master Playlist"
-msgstr "...Hauptplayliste"
+msgstr "Hauptwiedergabeliste"
 
-#: src/repository.c:1355
-#, fuzzy
+#: ../src/repository.c:1352
 msgid "Podcasts Playlist"
-msgstr "Intelligente Wiedergabeliste"
+msgstr "Podcast Wiedergabeliste"
 
-#: src/repository.c:1363
-#, fuzzy
+#: ../src/repository.c:1360
 msgid "Regular Playlist"
-msgstr "Intelligente Wiedergabeliste"
+msgstr "Normale Wiedergabeliste"
 
-#: src/repository.c:2426
-#, fuzzy
+#: ../src/repository.c:2423
 msgid "Set local repository file"
-msgstr "Vom iPod entfernen "
+msgstr "Wähle Datei für die lokale Datenbank"
 
-#: src/repository.c:2525
-#, fuzzy
+#: ../src/repository.c:2522
 msgid "New Repository"
-msgstr "Vom iPod entfernen "
+msgstr "Neue Datenbank "
 
-#: src/support.c:90 src/support.c:114
+#: ../src/sha1.c:186
+msgid "Hashed file is 0 bytes long\n"
+msgstr "Die Datei, für die eine Prüfsumme berechnet werden soll, ist leer.\n"
+
+#: ../src/sha1.c:239
 #, fuzzy, c-format
-msgid "Couldn't find pixmap file: %s"
-msgstr "Konnte Tags der Datei '%s' nicht ändern\n"
+msgid "Could not open '%s' to calculate SHA1 checksum: %s\n"
+msgstr "Konnte '%s' zum Berechnen der MD5-Prüfsumme nicht öffnen: %s\n"
 
-#: src/syncdir.c:237
+#: ../src/syncdir.c:237
 #, c-format
 msgid "Sync summary for %s/%s\n"
-msgstr ""
+msgstr "Zusammenfassung des Abgleichs für %s/%s\n"
 
-#: src/syncdir.c:246
-#, fuzzy
+#: ../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] "Das folgende Stück wurde aktualisiert"
-msgstr[1] "Die folgenden %d Stücke wurden aktualisiert"
+msgstr[0] "Das folgende Stück wurde hinzugefügt oder aktualisiert:\n"
+msgstr[1] "Die folgenden Stücke wurden hinzugefügt oder aktualisiert:\n"
 
-#: src/syncdir.c:255
-#, fuzzy
+#: ../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] "Das folgende Stück wurde aktualisiert"
-msgstr[1] "Die folgenden %d Stücke wurden aktualisiert"
+msgstr[0] "Das folgende Stück wurde vom iPod entfernt:\n"
+msgstr[1] "Die folgenden Stücke wurden vom iPod entfernt:\n"
 
-#: src/syncdir.c:264
-#, fuzzy
+#: ../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] "Das folgende doppelt eingelesene Stück wurde entfernt."
-msgstr[1] "Die folgenden %d doppelt eingelesenen Stücke wurden entfernt."
+msgstr[0] "Das folgende Stück wurde aus der Datenbank entfernt:\n"
+msgstr[1] "Die folgenden Stücke wurden aus der Datenbank entfernt:\n"
 
-#: src/syncdir.c:271
-#, fuzzy
+#: ../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] ""
-"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."
+msgstr[0] "Das folgende Stück wurde aus der Wiedergabeliste entfernt:\n"
+msgstr[1] "Die folgenden Stücke wurden aus der Wiedergabeliste entfernt:\n"
 
-#: src/syncdir.c:277
+#: ../src/syncdir.c:277
 msgid "Nothing was changed.\n"
-msgstr ""
+msgstr "Nichts geändert.\n"
 
-#: src/syncdir.c:282
+#: ../src/syncdir.c:282
 msgid "Sync summary"
-msgstr ""
+msgstr "Zusammenfassung des Abgleichs"
 
-#: src/tools.c:119
+#: ../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"
+"Could not find '%s'.\n"
+"Please specifiy the exact path in the Tools section of the preference dialog "
+"or install the program if it is not installed on your system.\n"
 "\n"
 msgstr ""
 "Das Kommando '%s' konnte nicht gefunden werden.\n"
+". Bitte überprüfen Sie die Pfadangabe im Einstellungsdialog unter "
+"'Werkzeuge' oder installieren Sie das entsprechende Programm.\n"
 "\n"
-"Bitte überprüfen Sie die Angabe im Einstellungsdialog unter 'Werkzeuge'\n"
-"\n"
 
-#: src/tools.c:204
-#, fuzzy, c-format
+#: ../src/tools.c:204
+#, c-format
 msgid ""
 "Execution of '%s' failed.\n"
 "\n"
-msgstr "Der Aufruf von mp3gain ('%s') schlug fehl."
+msgstr ""
+"Die Ausführung von '%s' schlug fehl.\n"
+"\n"
 
-#: src/tools.c:249
-#, fuzzy, c-format
+#: ../src/tools.c:249
+#, c-format
 msgid ""
 "Did not normalize '%s'. Set mp3gain 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"
+"'%s' konnte nicht normalisiert werden. Bitte prüfen Sie die Pfadangabe "
+"(mp3gain) im Einstellungsdialog unter 'Werkzeuge'\n"
 
-#: src/tools.c:259
-#, fuzzy, c-format
+#: ../src/tools.c:259
+#, 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"
+"'%s' konnte nicht normalisiert werden. Bitte prüfen Sie die Pfadangabe "
+"(aacgain) im Einstellungsdialog unter 'Werkzeuge'\n"
 
-#: src/tools.c:384
+#: ../src/tools.c:386
 msgid "Normalizing..."
 msgstr "Lautstärke wird normalisiert..."
 
-#: src/tools.c:434
+#: ../src/tools.c:436
 #, c-format
 msgid "%s - %s"
 msgstr "%s - %s"
 
-#: src/tools.c:460
+#: ../src/tools.c:462
 msgid "Aborting..."
 msgstr "Breche ab..."
 
-#: src/tools.c:464
+#: ../src/tools.c:466
 msgid "Will abort after current mp3gain process ends."
-msgstr "Abbruch erfolgt nachdem der mp3gain-Prozeß beendet ist."
+msgstr "Abbruch erfolgt, nachdem der mp3gain-Prozess beendet ist."
 
-#: src/tools.c:490
+#: ../src/tools.c:492
 #, c-format
 msgid ""
 "'%s-%s' (%s) could not be normalized.\n"
 "\n"
 msgstr "'%s-%s (%s) konnte nicht normalisiert werden.\n"
 
-#: src/tools.c:529
+#: ../src/tools.c:531
 #, 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:632
+#: ../src/tools.c:634
 msgid ""
 "Please specify the command to be called on the 'Tools' section of the "
 "preferences dialog.\n"
 msgstr ""
-"Bitte geben Sie das aufzurufene Programm im Einstellungsdialog unter "
+"Bitte geben Sie das aufzurufende Programm im Einstellungsdialog unter "
 "'Werkzeuge' an.\n"
 
-#: src/tools.c:644
+#: ../src/tools.c:646
 #, c-format
 msgid ""
 "Could not find the command '%s'.\n"
@@ -4914,7 +5488,7 @@
 "Bitte überprüfen Sie die Angabe im Einstellungsdialog unter 'Werkzeuge'\n"
 "\n"
 
-#: src/tools.c:685
+#: ../src/tools.c:687
 #, c-format
 msgid ""
 "'%s' returned the following output:\n"
@@ -4923,368 +5497,91 @@
 "'%s' lieferte folgende Ausgabe:\n"
 "%s\n"
 
-#: src/tools.c:752
+#: ../src/tools.c:754
 #, c-format
 msgid "No command set for '%s'"
 msgstr "Keine Befehlszeile spezifiziert für '%s'"
 
-#: src/tools.c:772
+#: ../src/tools.c:774
 #, c-format
 msgid "Could not find command '%s' specified for '%s'"
-msgstr "Konnte das Kommando '%s' nicht finden (gesetzt für '%s')."
+msgstr "Konnte das spezifizierte Kommando '%s' für '%s' nicht finden."
 
-#: src/wavfile.c:107
+#: ../src/wavfile.c:181
 #, c-format
-msgid "Could not open '%s' for reading.\n"
-msgstr "Datei '%s' konnte nicht zum Lesen geöffnet werden.\n"
-
-#: src/wavfile.c:181
-#, c-format
 msgid "%s does not appear to be a supported wav file.\n"
 msgstr "'%s' scheint keine unterstützte WAV-Datei zu sein.\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 ""
-#~ "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'."
-
-#~ msgid "Handle mounting/unmounting of iPod drive"
-#~ msgstr "Mount/Unmount des iPod-Verzeichnisses"
-
-#~ msgid "<b>Artwork</b>"
-#~ msgstr "<b>Artwork</b>"
-
-#~ msgid "_Offline"
-#~ msgstr "_Offline"
-
-#~ 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."
-
 #, fuzzy
-#~ msgid "Edit Repository Properties"
-#~ msgstr "Sortieroptionen"
+#~ msgid "label21"
+#~ msgstr "label21"
 
-#~ msgid "Currently no iPod database selected"
-#~ msgstr "Keine iPod Datenbank ausgewählt"
+#~ msgid "window1"
+#~ msgstr "window1"
 
-#~ msgid "No playlist selected."
-#~ msgstr "Keine Wiedergabeliste ausgewählt."
+#~ msgid "<b>Import</b>"
+#~ msgstr "<b>Importieren</b>"
 
-#~ msgid "Could not delete backup file: \"%s\"\n"
-#~ msgstr "Konnte Sicherheitskopie nicht löschen: '%s'\n"
+#~ msgid "Automatically import iTunesDBs on startup"
+#~ msgstr "Beim Start die iTunes Datenbank automatisch importieren"
 
-#~ msgid "No tracks selected."
-#~ msgstr "Keine Stücke ausgewählt."
+#~ msgid "Couldn't find pixmap file: %s"
+#~ msgstr "Konnte Bilddatei nicht finden: %s"
 
-#~ msgid "Problem creating iPod directory: '%s'."
-#~ msgstr ""
-#~ "Es trat ein Problem beim Erzeugen des iPod-Verzeichnisses auf: '%s'."
+#~ msgid "_Synchronize Playlist"
+#~ msgstr "_Abgleich der Wiedergabeliste"
 
-#~ msgid "Successfully created iPod directories in '%s'."
-#~ msgstr "Die iPod-Verzeichnisstruktur wurde erfolgreich in '%s' angelegt."
+#~ msgid "Stop Display Update"
+#~ msgstr "Aktualisierung der Anzeige abbrechen"
 
-#~ msgid "Create iPod directories"
-#~ msgstr "iPod-Verzeichnisstruktur erstellen"
+#~ msgid "Stop"
+#~ msgstr "Stopp"
 
-#~ msgid "OK to create the following directories?"
-#~ msgstr "Sollen die folgenden Verzeichnisse erstellt werden?"
-
 #~ 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."
+#~ "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 ""
-#~ "'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."
+#~ "Es ist deutlich schneller, die Sortierung vorzunehmen nachdem alle Stücke "
+#~ "hinzugefügt wurden. Wen dieses Verhalten irritiert, sollte diese Option "
+#~ "jedoch nicht wählen."
 
 #~ 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"
+#~ "Temporarily disable sorting when changing playlist\n"
+#~ "or tab entry (faster!)"
 #~ 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"
+#~ "Sortieren vorübergehend deaktivieren, wenn die Wiedergabeliste oder der "
+#~ "Sortierungseintrag gewechselt wird (schneller!)"
 
-#~ msgid "  --offline:    same as '-o'.\n"
-#~ msgstr "  --offline:    wie '-o'.\n"
-
-#~ msgid "Error while reading prefs: %s\n"
-#~ msgstr "Fehler beim Lesen der Vor-Einstellungen: %s\n"
-
-#~ msgid "Unable to open config file '%s' for reading\n"
-#~ msgstr "Kann Datei '%s' mit den Einstellungen nicht lesen.\n"
-
-#~ msgid "Unknown option: %s\n"
-#~ msgstr "Unbekannte Option: %s\n"
-
-#~ msgid "# delete confirmation\n"
-#~ msgstr "# Sicherheitsabfrage beim Löschen\n"
-
-#~ msgid "# sort tab: select 'All', last selected page (=category)\n"
-#~ msgstr ""
-#~ "# Sort Tab: 'Alle' automatisch wählen, letze gewählte Seite (=Kategorie)\n"
-
-#~ msgid "# autoselect master playlist?\n"
-#~ msgstr "# Hauptplayliste automatisch auswählen?\n"
-
-#~ msgid "# title=0, artist, album, genre, composer\n"
-#~ msgstr "# Titel=0, Künstler, Album, Musikrichtung, Komponist\n"
-
-#~ msgid "# track_nr=5, ipod_id, pc_path, transferred\n"
-#~ msgstr "# Track_Nr=5, iPod_ID, PC_Pfad, Transferred\n"
-
-#~ msgid "# autoset: set empty tag to filename?\n"
-#~ msgstr "# autoset: Leere ID3-Tags mit dem Filenamen initialiseren?\n"
-
 #~ msgid ""
-#~ "# position of sliders (paned): playlists, above tracks,\n"
-#~ "# between sort tabs, and in statusbar.\n"
+#~ "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 ""
-#~ "# Position der Schiebeelemente (paned): Wiedergabelisten,\n"
-#~ "# über der Stückanzeige, zwischen den Sort Tabs\n"
+#~ "Die Anzeige kann bis zur vollständigen Aktualisierung nach einer Änderung "
+#~ "der Auswahl blockiert werden. Die Aktualisierung ist dann schneller, aber "
+#~ "es muss gewartet werden, bis sich gtkpod wieder meldet. Mit dieser Option "
+#~ "wird automatisch auch das Sortieren vorübergehend deaktiviert (siehe "
+#~ "Option weiter oben)."
 
 #~ msgid ""
-#~ "# window sizes: main window, confirmation scrolled,\n"
-#~ "#               confirmation non-scrolled, dirbrowser, prefs\n"
+#~ "Block display when changing playlist or tab\n"
+#~ " entry (faster!)"
 #~ msgstr ""
-#~ "# Fenstergrößen: Hauptfenster, Bestätigungsfenster (gescrollt),\n"
-#~ "#                Bestätigungsfenster (ungescrollt), Verzeichnisbaum\n"
-#~ "#                Einstellungsfenster\n"
+#~ "Anzeige nicht aktualisieren, wenn eine neue Wiedergabeliste oder ein "
+#~ "neuer Sortierungseintrag gewählt wird (schneller!)"
 
-#~ msgid "Unable to open '%s' for writing\n"
-#~ msgstr "Kann '%s' nicht zum schreiben öffnen.\n"
+#~ msgid "deleting..."
+#~ msgstr "Lösche Stücke..."
 
-#~ 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"
+#~ msgid "preparing to copy..."
+#~ msgstr "Kopieren wird vorbereitet..."
 
-#~ msgid "Unable to 'mkdir %s'\n"
-#~ msgstr "Kann 'mkdir %s' nicht ausführen.\n"
+#~ msgid "Copied %d of %d new track."
+#~ msgid_plural "Copied %d of %d new tracks."
+#~ msgstr[0] "%d von %d Stücken kopiert."
+#~ msgstr[1] "%d von %d Stücken kopiert."
 
-#~ msgid "prefs_set_toolbar_style: illegal style '%d' ignored\n"
-#~ msgstr "prefs_set_toolbar_style: ungültiger Stil '%d' ignoriert\n"
-
-#~ msgid "prefs_set_pm_sort: illegal type '%d' ignored\n"
-#~ msgstr "prefs_set_toolbar_style: ungültiger Typ '%d' ignoriert\n"
-
-#~ msgid "'%s': no arguments (%%...) allowed.\n"
-#~ msgstr "'%s': keine Argumente (%%...) erlaubt.\n"
-
-#~ msgid "'%s': only '%%[%s]' allowed.\n"
-#~ msgstr "'%s': nur '%%[%s]' erlaubt.\n"
-
-#~ msgid "_Read iTunesDB"
-#~ msgstr "iTunesDB _importieren"
-
-#~ msgid "Synchronize _iTunesDB"
-#~ msgstr "_iTunesDB abgleichen"
-
-#~ msgid "Edit"
-#~ msgstr "Bearbeiten"
-
-#~ msgid "Read Existing Database from Disk/iPod"
-#~ msgstr "iTunes Datenbank von der Festplatte / dem iPod einlesen"
-
-#~ msgid "Read"
-#~ msgstr "Einlesen"
-
-#~ msgid "Write Changes to Disk/iPod"
-#~ msgstr "Änderungen auf Festplatte / den iPod übertragen"
-
-#~ msgid "Sync"
-#~ msgstr "Abgleichen"
-
-#, fuzzy
-#~ msgid "Update Tracks"
-#~ msgstr "Unbewertet"
-
-#~ msgid "Normalize"
-#~ msgstr "Lautstärkenormalisierung"
-
-#~ msgid "Update Podcasts"
-#~ msgstr "Podcasts erneuern"
-
-#~ msgid "Podcasts Preferences"
-#~ msgstr "Podcasts Einstellungen"
-
-#~ msgid "file not found"
-#~ msgstr "Datei nicht gefunden"
-
-#~ msgid "Unmounting of '%s' (%s) unsuccessful."
-#~ msgstr "Unmount von '%s' (%s) war nicht erfolgreich."
-
-#~ msgid "Unmounting of '%s' unsuccessful."
-#~ msgstr "Unmount von '%s' war erfolgreich."
-
-#~ msgid "Update"
-#~ msgstr "Aktualisieren"
-
-#~ msgid "Sync Dirs"
-#~ msgstr "Verzeichnisse abgleichen"
-
-#~ msgid "Sync dirs of selected entry in which sort tab?"
-#~ msgstr "Verzeichnisse aus welchem Sort Tab abgleichen?"
-
-#~ msgid "Syncing directory '%s'"
-#~ msgstr "Verzeichnis '%s' wird abgeglichen"
-
-#~ msgid "Syncing completed. No files deleted."
-#~ msgstr "Abgleich beendet. Keine Dateien gelöscht."
-
-#~ msgid "Never delete any files when syncing"
-#~ msgstr "Beim Abgleich nie Dateien löschen"
-
-#~ msgid "Syncing completed."
-#~ msgstr "Abgleich beendet."
-
-#~ msgid "Syncing aborted"
-#~ msgstr "Abgleich abgebrochen."
-
-#~ msgid "No tracks in selection"
-#~ msgstr "Keine Stücke ausgewählt"
-
-#~ msgid "'%s' is not a directory. Ignored.\n"
-#~ msgstr "'%s' ist kein Verzeichnis und wird ignoriert.\n"
-
-#~ 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"
+#~ msgid "Some tracks were not written to iPod. Export aborted!"
 #~ 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"
-
-#~ msgid "No valid directories have been found. Sync aborted.\n"
-#~ msgstr ""
-#~ "Es wurden keine gültigen Verzeichnisse gefunden. Abgleich wurde "
-#~ "abgebrochen.\n"
-
-#~ 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"
-
-#~ msgid ""
-#~ "The following directories will be synchronized:\n"
-#~ "\n"
-#~ msgstr ""
-#~ "Die folgenden Verzeichnisse werden synchronisiert:\n"
-#~ "\n"
-
-#~ msgid "Synchronize directories"
-#~ msgstr "Verzeichnisse abgleichen"
-
-#~ msgid "Syncing contacts, calendar and notes..."
-#~ msgstr "Gleiche Kontakte, Kalender und Notizen ab..."
-
-#~ msgid "_Synchronize Directories"
-#~ msgstr "_Verzeichnisse abgleichen"
-
-#~ 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/'."
-
-#~ 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."
-
-#~ msgid "Delete tracks that have been removed"
-#~ msgstr "Stücke, die entfernt wurden, löschen"
-
-#~ msgid "Confirm before removing tracks"
-#~ msgstr "Vor dem Entfernen von Stücken bestätigen"
-
-#~ msgid ""
-#~ "Before removing tracks completely when\n"
-#~ "synchronizing directories"
-#~ msgstr ""
-#~ "Vor dem vollständigen Löschen vom iPod beim\n"
-#~ "Abgleich von Verzeichnissen"
-
-#~ msgid "Add"
-#~ msgstr "Hinzufügen"
-
-#~ msgid "Delete"
-#~ msgstr "Löschen"
-
-#~ msgid "Name: "
-#~ msgstr "Name: "
-
-#~ msgid "<b>File options</b>"
-#~ msgstr "<b>Datei-Optionen</b>"
-
-#~ msgid " days old"
-#~ msgstr "Tage alt"
-
-#~ msgid "<b>iPod options</b>"
-#~ msgstr "<b>iPod Optionen</b>"
-
-#~ msgid "Delete from iPod when "
-#~ msgstr "Vom iPod entfernen wenn "
-
-#~ msgid ""
-#~ "\n"
-#~ "\n"
-#~ msgstr ""
-#~ "\n"
-#~ "\n"
-
-#~ msgid "Abort selected"
-#~ msgstr "Abrechen gewählt"
-
-#~ msgid "Export Tracks"
-#~ msgstr "Stücke Exportieren"
+#~ "Einige Stücke wurden nicht auf den iPod übertragen. Export abgebrochen!"

Deleted: gtkpod/trunk/po/es.gmo
===================================================================
(Binary files differ)

Modified: gtkpod/trunk/po/es.po
===================================================================
--- gtkpod/trunk/po/es.po	2007-06-27 20:59:02 UTC (rev 193)
+++ gtkpod/trunk/po/es.po	2007-06-27 21:27:12 UTC (rev 194)
@@ -1,772 +1,810 @@
-# 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.
+# translation of gtkpod.es.po to spanish
+# Alejandro Lamas Daviña <alejandro.lamas at ific.uv.es>, 2006, 2007.
+# This file is distributed under the same license as the gtkpod package.
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: es\n"
+"Project-Id-Version: gtkpod\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"
+"POT-Creation-Date: 2007-06-14 22:57+0900\n"
+"PO-Revision-Date: 2007-06-13 21:38+0200\n"
 "Last-Translator: Alejandro Lamas Daviña <alejandro.lamas at ific.uv.es>\n"
-"Language-Team:  <es_ES>\n"
+"Language-Team: spanish <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"
+"X-Generator: KBabel 1.11.4\n"
 
-#: gtkpod.glade:7
-msgid "gtkpod"
+#: ../data/gtkpod.desktop.in.h:1
+#, fuzzy
+msgid "GtkPod"
 msgstr "gtkpod"
 
-#: gtkpod.glade:40
-msgid "_File"
-msgstr "_Fichero"
+#: ../data/gtkpod.desktop.in.h:2
+msgid "Manage music and video on an Apple iPod"
+msgstr ""
 
-#: gtkpod.glade:49
-msgid "_Load iPod(s)"
-msgstr "Cargar _iPod(s)"
+#: ../data/gtkpod.desktop.in.h:3
+msgid "iPod Manager"
+msgstr ""
 
-#: gtkpod.glade:69
-msgid "_Save Changes"
-msgstr "_Guardar cambios"
+#: ../data/gtkpod.glade.h:1
+msgid " "
+msgstr " "
 
-#: gtkpod.glade:90
-msgid "Add _Files"
-msgstr "Añadir _ficheros"
+#: ../data/gtkpod.glade.h:2
+msgid "    "
+msgstr "    "
 
-#: gtkpod.glade:111
-msgid "Add _Directory"
-msgstr "Añadir _directorio"
+#: ../data/gtkpod.glade.h:3
+msgid "     "
+msgstr "     "
 
-#: gtkpod.glade:132
-msgid "Add _Playlist"
-msgstr "Añadir lista de _reproducción"
+#: ../data/gtkpod.glade.h:4
+msgid "      "
+msgstr "      "
 
-#: gtkpod.glade:159
-msgid "_Update Tracks from File"
-msgstr "Act_ualizar pistas desde fichero"
+#: ../data/gtkpod.glade.h:5
+msgid "   Sort by:"
+msgstr "   Ordenar por:"
 
-#: 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"
+#: ../data/gtkpod.glade.h:6
+msgid " <= cts <= "
+msgstr " <= cts <= "
 
-#: 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"
+#: ../data/gtkpod.glade.h:7
+msgid " Logic: "
+msgstr "Operadores lógicos:"
 
-#: 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"
+#: ../data/gtkpod.glade.h:9
+#, no-c-format
+msgid "%A"
+msgstr "%A"
 
-#: gtkpod.glade:211
-msgid "Update _mserv Data from File"
-msgstr "Actualizar datos de _mserv desde fichero"
+#: ../data/gtkpod.glade.h:10
+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:263
-msgid "_Synchronize Playlist"
-msgstr "_Sincronizar lista de reproducción"
+#: ../data/gtkpod.glade.h:11
+msgid "'aacgain' executable:"
+msgstr "programa 'aacgain':"
 
-#: gtkpod.glade:290
-msgid "_Export Tracks from Database"
-msgstr "_Exportar pistas de la base de datos"
+#: ../data/gtkpod.glade.h:12
+msgid "'mp3gain' executable:"
+msgstr "programa 'mp3gain':"
 
-#: gtkpod.glade:342
-msgid "Create _Playlist File"
-msgstr "Crear lista de re_producción"
+#: ../data/gtkpod.glade.h:13
+msgid "(Checked)"
+msgstr "(Revisado)"
 
-#: gtkpod.glade:400
-msgid "_Create iPod's Directories"
-msgstr "_Crear estructura de directorios del iPod"
+#: ../data/gtkpod.glade.h:14
+msgid "...as icons"
+msgstr "...como iconos"
 
-#: 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)"
+#: ../data/gtkpod.glade.h:15
+msgid "...as text"
+msgstr "...como texto"
 
-#: gtkpod.glade:422
-msgid "_Check iPod's Files"
-msgstr "_Comprobar ficheros del iPod"
+#: ../data/gtkpod.glade.h:16
+msgid "...both as icons and text"
+msgstr "...ambos. Como iconos y como texto"
 
-#: gtkpod.glade:450 gtkpod.glade:12687
-msgid "_Edit"
-msgstr "_Editar"
+#: ../data/gtkpod.glade.h:17
+msgid "...entry 'All' in sort tab..."
+msgstr "...entrada 'Todo' en la pestaña..."
 
-#: gtkpod.glade:459 src/context_menus.c:480
-msgid "Edit Track Details"
-msgstr "Editar detalles de la pista"
+#: ../data/gtkpod.glade.h:18
+msgid "...master playlist"
+msgstr "...lista de reproducción principal"
 
-#: gtkpod.glade:480
-msgid "Tracks in Selected _Playlist"
-msgstr "Pistas en la lista de re_producción seleccionada"
+#: ../data/gtkpod.glade.h:20
+#, no-c-format
+msgid "../%A.jpg"
+msgstr "../%A.jpg"
 
-#: gtkpod.glade:489
-msgid "Tracks in Selected Tab _Entry"
-msgstr "Pistas en la pestaña s_eleccionada"
+#: ../data/gtkpod.glade.h:21
+msgid "0"
+msgstr "0"
 
-#: gtkpod.glade:511 src/context_menus.c:407
-msgid "Edit Smart Playlist"
-msgstr "Editar lista de reproducción inteligente."
+#: ../data/gtkpod.glade.h:22
+msgid "1"
+msgstr "1"
 
-#: gtkpod.glade:520
-msgid "_Delete"
-msgstr "_Borrar"
+#: ../data/gtkpod.glade.h:23
+msgid "2"
+msgstr "2"
 
-#: gtkpod.glade:541
-msgid "Selected playlist"
-msgstr "Lista de reproducción seleccionada"
+#: ../data/gtkpod.glade.h:24
+msgid "3"
+msgstr "3"
 
-#: gtkpod.glade:550
-msgid "Selected playlist including tracks from iPod"
-msgstr "Lista de reproducción seleccionada incluyendo pistas del iPod"
+#: ../data/gtkpod.glade.h:25
+msgid "4"
+msgstr "4"
 
-#: gtkpod.glade:559
-msgid "Selected playlist including tracks from database"
-msgstr ""
-"Lista de reproducción seleccionada incluyendo pistas de la base de datos"
+#: ../data/gtkpod.glade.h:26
+msgid "5"
+msgstr "5"
 
-#: gtkpod.glade:568
-msgid "Selected playlist including tracks from harddisk"
-msgstr "Lista de reproducción seleccionada incluyendo pistas del disco duro"
+#: ../data/gtkpod.glade.h:27
+msgid ":"
+msgstr ":"
 
-#: gtkpod.glade:583
-msgid "Selected filter tab entry from playlist"
-msgstr "Pestaña seleccionada de la lista de reproducción"
+#: ../data/gtkpod.glade.h:28
+msgid "<"
+msgstr "<"
 
-#: gtkpod.glade:592
-msgid "Selected filter tab entry from iPod"
-msgstr "Borrar selección del iPod"
+#: ../data/gtkpod.glade.h:29
+msgid "<b>Account Information</b>"
+msgstr "<b>Información de la cuenta</b>"
 
-#: gtkpod.glade:601
-msgid "Selected filter tab entry from database"
-msgstr "Borrar selección de la base de datos"
+#: ../data/gtkpod.glade.h:30
+msgid "<b>Adding/Updating/Syncing</b>"
+msgstr "<b>Añadir/Actualizar/Sincronizar</b>"
 
-#: gtkpod.glade:610
-msgid "Selected filter tab entry from harddisk"
-msgstr "Borrar selección del disco duro"
+#: ../data/gtkpod.glade.h:31
+#, fuzzy
+msgid "<b>Audioscrobbler</b>"
+msgstr "<b>Audioscrobbler</b>"
 
-#: gtkpod.glade:625
-msgid "Selected tracks from playlist"
-msgstr "Pistas seleccionadas de la lista de reproducción"
+#: ../data/gtkpod.glade.h:32
+msgid "<b>Auto-Generated Playlists</b>"
+msgstr "<b>Listas de reproducción generadas automáticamente</b>"
 
-#: gtkpod.glade:634
-msgid "Selected tracks from iPod"
-msgstr "Pistas seleccionadas del iPod"
+#: ../data/gtkpod.glade.h:33
+msgid "<b>Automatically select...</b>"
+msgstr "<b>Seleccionar automáticamente...</b>"
 
-#: gtkpod.glade:643
-msgid "Selected tracks from database"
-msgstr "Pistas seleccionadas de la base de datos"
+#: ../data/gtkpod.glade.h:34
+msgid "<b>Calendar/Contacts/Notes</b>"
+msgstr "<b>Calendario/Contactos/Notas</b>"
 
-#: gtkpod.glade:652
-msgid "Selected tracks from harddisk"
-msgstr "Pistas seleccionadas del disco duro"
+#: ../data/gtkpod.glade.h:35
+msgid "<b>Coverart</b>"
+msgstr "<b>Carátulas</b>"
 
-#: gtkpod.glade:671
-msgid "_Create Playlists"
-msgstr "_Crear lista de reproducción"
+#: ../data/gtkpod.glade.h:36
+msgid "<b>Delete Confirmation</b>"
+msgstr "<b>Confirmación de borrado</b>"
 
-#: gtkpod.glade:692
-msgid "Empty Playlist"
-msgstr "Lista de reproducción vacía"
+#: ../data/gtkpod.glade.h:37
+msgid "<b>Displayed Track Attributes</b>"
+msgstr "<b>Atributos de la pista mostrados</b>"
 
-#: gtkpod.glade:701 gtkpod.glade:7379 src/misc_playlist.c:97
-#: src/repository.c:1359
-msgid "Smart Playlist"
-msgstr "Lista de reproducción inteligente"
+#: ../data/gtkpod.glade.h:38
+msgid "<b>Examples</b>"
+msgstr "<b>Ejemplos</b>"
 
-#: gtkpod.glade:716
-msgid "Random Playlist from Displayed Tracks"
-msgstr "Lista de reproducción aleatoria de las pistas mostradas"
+#: ../data/gtkpod.glade.h:39
+msgid "<b>Ignore Frequent Words</b>"
+msgstr "<b>Ignorar palabras comunes (p.e: artículos)</b>"
 
-#: gtkpod.glade:725
-msgid "Containing Displayed Tracks"
-msgstr "Conteniendo pistas mostradas"
+#: ../data/gtkpod.glade.h:40
+msgid "<b>Misc</b>"
+msgstr "<b>Miscelaneo</b>"
 
-#: gtkpod.glade:734
-msgid "Containing Selected Tracks"
-msgstr "Conteniendo pistas seleccionadas"
+#: ../data/gtkpod.glade.h:41
+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:743
-msgid "One for each Artist"
-msgstr "Una para cada artista"
+#: ../data/gtkpod.glade.h:42
+msgid "<b>On-the-fly Conversion</b>"
+msgstr "<b>Conversión al vuelo</b>"
 
-#: gtkpod.glade:752
-msgid "One for each Album"
-msgstr "Una para cada álbum"
+#: ../data/gtkpod.glade.h:43
+msgid "<b>Play</b>"
+msgstr "<b>Reproducir</b>"
 
-#: gtkpod.glade:761
-msgid "One for each Genre"
-msgstr "Una para cada género"
+#: ../data/gtkpod.glade.h:44
+msgid "<b>Playlists</b>"
+msgstr "<b>Listas de reproducción</b>"
 
-#: gtkpod.glade:770
-msgid "One for each Composer"
-msgstr "Una para cada compositor"
+#: ../data/gtkpod.glade.h:45
+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>"
 
-#: gtkpod.glade:779
-msgid "One for each Year"
-msgstr "Una para cada año"
+#: ../data/gtkpod.glade.h:46
+msgid "<b>Repositories</b>"
+msgstr "<b>Repositorios</b>"
 
-#: gtkpod.glade:788
-msgid "One for each Rating"
-msgstr "Una para cada puntuación"
+#: ../data/gtkpod.glade.h:47
+msgid "<b>Sort Order</b>"
+msgstr "<b>Opción de ordenamiento</b>"
 
-#: gtkpod.glade:797
-msgid "Best Rated Tracks"
-msgstr "Pistas con mayor puntuación"
+#: ../data/gtkpod.glade.h:48
+msgid "<b>Sort Tabs</b>"
+msgstr "<b>Pestañas</b>"
 
-#: gtkpod.glade:806
-msgid "Tracks Most Often Listened To"
-msgstr "Pistas escuchadas más a menudo"
+#: ../data/gtkpod.glade.h:49
+msgid "<b>Sync</b>"
+msgstr "<b>Sincronizar</b>"
 
-#: gtkpod.glade:815
-msgid "Most Recently Played Tracks"
-msgstr "Pistas más recientemente escuchadas"
+#: ../data/gtkpod.glade.h:50
+msgid "<b>Synchronization</b>"
+msgstr "<b>Sincronización</b>"
 
-#: gtkpod.glade:824
-msgid "All Tracks Played Since Last Time"
-msgstr "Todas las pistas reproducidas desde la última vez"
+#: ../data/gtkpod.glade.h:51
+msgid "<b>Tag Reading</b>"
+msgstr "<b>Lectura de los atributos</b>"
 
-#: gtkpod.glade:833
-msgid "All Tracks Never Listened To"
-msgstr "Todas las pistas nunca escuchadas"
+#: ../data/gtkpod.glade.h:52
+msgid "<b>Toolbar</b>"
+msgstr "<b>Barra de herramientas</b>"
 
-#: gtkpod.glade:842
-msgid "All Tracks not Listed in any Playlist"
-msgstr "Todas las pistas no incluidas en otras listas de reproducción"
+#: ../data/gtkpod.glade.h:53
+msgid "<b>Tooltips</b>"
+msgstr "<b>Sugerencias</b>"
 
-#: gtkpod.glade:861
-msgid "_Sorting"
-msgstr "_Ordenar"
+#: ../data/gtkpod.glade.h:54
+msgid "<b>Track Editing</b>"
+msgstr "<b>Edición de pistas</b>"
 
-#: gtkpod.glade:883
-msgid "Randomize Current Playlist"
-msgstr "Lista de reproducción actual aleatoria"
+#: ../data/gtkpod.glade.h:55
+msgid "<b>Volume Normalization</b>"
+msgstr "<b>Normalización del volumen</b>"
 
-#: gtkpod.glade:892
-msgid "_Save Displayed Track Order"
-msgstr "Guardar orden de pista_s mostrado"
+#: ../data/gtkpod.glade.h:56
+msgid "<b>mserv</b>"
+msgstr "<b>mserv</b>"
 
-#: gtkpod.glade:920
-msgid "Edit Repository/iPod Options"
-msgstr "Editar opciones del iPod/repositorio"
+#: ../data/gtkpod.glade.h:57
+msgid ">"
+msgstr ">"
 
-#: gtkpod.glade:941
-msgid "Edit _Preferences"
-msgstr "Editar _preferencias"
+#: ../data/gtkpod.glade.h:58
+msgid "About gtkpod"
+msgstr "Sobre gtkpod"
 
-#: gtkpod.glade:967
-msgid "_View"
-msgstr "_Ver"
+#: ../data/gtkpod.glade.h:59
+msgid "Add Directories Recursively"
+msgstr "Añadir directorios recursivamente"
 
-#: gtkpod.glade:976
-msgid "_Toolbar"
-msgstr "Barra de _Herramientas"
+#: ../data/gtkpod.glade.h:60
+msgid "Add Files or Directories"
+msgstr "Añadir ficheros o directorios"
 
-#: gtkpod.glade:986
-msgid "_Tooltips"
-msgstr "_Sugerencias"
+#: ../data/gtkpod.glade.h:61
+msgid "Add _Directory"
+msgstr "Añadir _directorio"
 
-#: gtkpod.glade:996
-msgid "_Info Window"
-msgstr "Ventana de _información"
+#: ../data/gtkpod.glade.h:62
+msgid "Add _Files"
+msgstr "Añadir _ficheros"
 
-#: gtkpod.glade:1007
-msgid "_More Sort Tabs"
-msgstr "_Mas pestañas"
+#: ../data/gtkpod.glade.h:63
+msgid "Add _Playlist"
+msgstr "Añadir lista de _reproducción"
 
-#: gtkpod.glade:1028
-msgid "_Less Sort Tabs"
-msgstr "M_enos pestañas"
+#: ../data/gtkpod.glade.h:64
+msgid "Add coverart from file using the following template"
+msgstr "Añadir carátulas desde fichero usando la siguiente plantilla"
 
-#: gtkpod.glade:1049
-msgid "_Arrange Sort Tabs"
-msgstr "_Ordenar pestañas"
+#: ../data/gtkpod.glade.h:65
+msgid "Add directories recursively"
+msgstr "Añadir directorios recursivamente"
 
-#: gtkpod.glade:1062 gtkpod.glade:13297
-msgid "_Tools"
-msgstr "_Herramientas"
+#: ../data/gtkpod.glade.h:66
+msgid "Add new repository/iPod"
+msgstr "Añadir nuevo repositorio/iPod"
 
-#: gtkpod.glade:1071
-msgid "_Play Now"
-msgstr "Re_producir"
+#: ../data/gtkpod.glade.h:67
+msgid "Add playlist from file"
+msgstr "Añadir lista de reproducción desde fichero"
 
-#: gtkpod.glade:1123
-msgid "_Enqueue"
-msgstr "_Encolar"
+#: ../data/gtkpod.glade.h:68 ../src/display_sorttabs.c:3232
+#: ../src/display_tracks.c:1996
+msgid "Added"
+msgstr "Añadido"
 
-#: gtkpod.glade:1181
-msgid "_Normalize Volume"
-msgstr "_Normalizar el volumen"
+#: ../data/gtkpod.glade.h:69
+msgid "Advanced Sorting Options"
+msgstr "Opciones de ordenación avanzadas"
 
-#: gtkpod.glade:1217
-msgid "_Displayed Tracks"
-msgstr "Pistas mostra_das"
+#. 0
+#: ../data/gtkpod.glade.h:70 ../src/display_sorttabs.c:2954
+#: ../src/display_spl.c:84 ../src/misc_conversion.c:60
+msgid "Album"
+msgstr "Álbum"
 
-#: gtkpod.glade:1226
-msgid "_All Tracks"
-msgstr "Tod_as las pistas"
+#: ../data/gtkpod.glade.h:71
+msgid "Album Art"
+msgstr "Carátula de álbum"
 
-#: gtkpod.glade:1235
-msgid "_Newly Added Tracks"
-msgstr "Pistas añadidas recie_ntemente"
+#: ../data/gtkpod.glade.h:72
+msgid "All (AND)"
+msgstr "y (AND)"
 
-#: gtkpod.glade:1254
-msgid "Synchronise Contacts, Calendar and Notes"
-msgstr "Sincronizar contactos, calendarios y notas"
+#: ../data/gtkpod.glade.h:73
+msgid "All Tracks Never Listened To"
+msgstr "Todas las pistas nunca escuchadas"
 
-#: gtkpod.glade:1255
-msgid "Synchronize All"
-msgstr "Sincronizar todo"
+#: ../data/gtkpod.glade.h:74
+msgid "All Tracks Played Since Last Time"
+msgstr "Todas las pistas reproducidas desde la última vez"
 
-#: gtkpod.glade:1264
-msgid "Synchronize Contacts"
-msgstr "Sincronizar contactos"
+#: ../data/gtkpod.glade.h:75
+msgid "All Tracks not Listed in any Playlist"
+msgstr "Todas las pistas no incluidas en otras listas de reproducción"
 
-#: gtkpod.glade:1273
-msgid "Synchronize Calendar"
-msgstr "Sincronizar calendario"
+#: ../data/gtkpod.glade.h:76
+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:1282
-msgid "Synchronize Notes"
-msgstr "Sincronizar notas"
+#: ../data/gtkpod.glade.h:77
+msgid "Always write ID3v2.4 tags (only applies to MP3)"
+msgstr "Escribir siempre atributos ID3v2.4 (aplicable sólo a ficheros MP3)"
 
-#: gtkpod.glade:1295
-msgid "_Help"
-msgstr "_Ayuda"
+#: ../data/gtkpod.glade.h:78
+msgid "Any (OR)"
+msgstr "o (OR)"
 
-#: gtkpod.glade:1304
-msgid "_About"
-msgstr "_Sobre"
+#: ../data/gtkpod.glade.h:79 ../src/display_sorttabs.c:2951
+#: ../src/display_spl.c:85 ../src/misc_conversion.c:61
+msgid "Artist"
+msgstr "Artista"
 
-#: gtkpod.glade:1344
+#: ../data/gtkpod.glade.h:80
 msgid ""
-"Try to load contents of all connected iPods. For each iPod a separate "
-"repository must be set up."
+"As a last resort set the following tags to the\n"
+"filename if they are (still) empty:"
 msgstr ""
-"Intentar cargar los contenidos de todos los iPods. Debe configurarse un "
-"repositorio individual para cada iPod."
+"Como último recurso, establecer los siguientes\n"
+" atributos al nombre de fichero si (todavía) están vacíos."
 
-#: gtkpod.glade:1345
-msgid "Load iPod(s)"
-msgstr "Cargar iPod(s)"
+#: ../data/gtkpod.glade.h:82
+msgid "Ascending"
+msgstr "Ascendente"
 
-#: 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)."
+#: ../data/gtkpod.glade.h:83
+msgid ""
+"Audio/Video\n"
+"Audio\n"
+"Video\n"
+"Podcast\n"
+"Video Podcast\n"
+"Audiobook\n"
+"Music Video\n"
+"TV Show\n"
+"TV Show & Music Video\n"
+msgstr ""
+"Audio/Vídeo\n"
+"Audio\n"
+"Vídeo\n"
+"Podcast\n"
+"Podcast de vídeo\n"
+"Audiolibro\n"
+"Vídeo musical\n"
+"TV Show\n"
+"TV Show & Vídeo musical\n"
 
-#: gtkpod.glade:1363 src/context_menus.c:507
-msgid "Save Changes"
-msgstr "Guardar cambios"
+#: ../data/gtkpod.glade.h:93
+msgid "Auto Store"
+msgstr "Guardar automáticamente"
 
-#: gtkpod.glade:1380
-msgid "Add Files or Directories"
-msgstr "Añadir ficheros o directorios"
+#: ../data/gtkpod.glade.h:94
+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:1381
-msgid "Files"
-msgstr "Ficheros"
+#: ../data/gtkpod.glade.h:95
+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:1398
-msgid "Add Directories Recursively"
-msgstr "Añadir directorios recursivamente"
+#: ../data/gtkpod.glade.h:96
+msgid "Before removing tracks from the harddisk"
+msgstr "Antes de borrar pistas del disco duro"
 
-#: gtkpod.glade:1399
-msgid "Dirs"
-msgstr "Directorios"
+#: ../data/gtkpod.glade.h:97
+msgid "Before removing tracks from the iPod"
+msgstr "Antes de borrar pistas del iPod"
 
-#: gtkpod.glade:1416
-msgid "Add playlist from file"
-msgstr "Añadir lista de reproducción desde fichero"
+#: ../data/gtkpod.glade.h:98
+msgid "Before removing tracks from the local database"
+msgstr "Antes de borrar pistas de la base de datos"
 
-#: gtkpod.glade:1417 src/display_spl.c:105
-msgid "Playlist"
-msgstr "Lista de reproducción"
+#: ../data/gtkpod.glade.h:99
+msgid "Best Rated Tracks"
+msgstr "Pistas con mayor puntuación"
 
-#: gtkpod.glade:1434
-msgid "Create New Playlist"
-msgstr "Crear nueva lista de reproducción"
+#: ../data/gtkpod.glade.h:100
+msgid "Browse"
+msgstr "Examinar"
 
-#: gtkpod.glade:1435
-msgid "New PL"
-msgstr "Nueva lista de reproducción"
+#: ../data/gtkpod.glade.h:101
+msgid "Cache directory:"
+msgstr "Directorio de caché"
 
-#: gtkpod.glade:1451
-msgid "Stop Display Update"
-msgstr "No mostrar la actualización"
+#: ../data/gtkpod.glade.h:102
+msgid "Calendar"
+msgstr "Calendario"
 
-#: gtkpod.glade:1452
-msgid "Stop"
-msgstr "Detener"
+#: ../data/gtkpod.glade.h:103
+msgid "Calendar sync command:"
+msgstr "Programa de sincronización del calendario:"
 
-#: gtkpod.glade:1625
-msgid "About gtkpod"
-msgstr "Sobre gtkpod"
+#: ../data/gtkpod.glade.h:104
+msgid "Call automatically when synchronizing iTunesDB"
+msgstr "Llamar automáticamente al sincronizar la base de datos iTunes"
 
-#: gtkpod.glade:1752
-msgid "Credits"
-msgstr "Créditos"
+#: ../data/gtkpod.glade.h:105
+msgid "Category: "
+msgstr "Categoría: "
 
-#: gtkpod.glade:1810
-msgid "Translators"
-msgstr "Traductores"
-
-#: gtkpod.glade:1868
-msgid "special_sorttab -- Don't translate!"
+#: ../data/gtkpod.glade.h:106
+msgid ""
+"Change all tracks\n"
+"simultaneously"
 msgstr ""
+"Cambiar todas las pistas\n"
+"a la vez"
 
-#: gtkpod.glade:1903
-msgid " Logic: "
-msgstr "Operadores lógicos:"
+#: ../data/gtkpod.glade.h:108
+msgid "Check for existing files when copying from iPod."
+msgstr "Comprobar la existencia previa de ficheros al copiar del iPod."
 
-#: gtkpod.glade:1929
-msgid "Any (OR)"
-msgstr "o (OR)"
+#: ../data/gtkpod.glade.h:109
+msgid "Command for 'Enqueue':"
+msgstr "Programa para 'Encolar':"
 
-#: gtkpod.glade:1948
-msgid "All (AND)"
-msgstr "y (AND)"
+#: ../data/gtkpod.glade.h:110
+msgid "Command for 'Play now':"
+msgstr "Programa para 'Reproducir':"
 
-#: gtkpod.glade:2001
-msgid "0"
-msgstr "0"
+#. 5
+#: ../data/gtkpod.glade.h:111 ../src/display_spl.c:97
+#: ../src/misc_conversion.c:65
+msgid "Composer"
+msgstr "Compositor"
 
-#: gtkpod.glade:2020
-msgid "1"
-msgstr "1"
+#: ../data/gtkpod.glade.h:112
+msgid "Confirm before removing tracks from the iPod or repository"
+msgstr "Confirmar antes de borrar pistas del iPod o del repositorio"
 
-#: gtkpod.glade:2039
-msgid "2"
-msgstr "2"
+#: ../data/gtkpod.glade.h:113
+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:2058
-msgid "3"
-msgstr "3"
+#: ../data/gtkpod.glade.h:115
+msgid "Confirm lists of directories"
+msgstr "Confirmar la lista de directorios"
 
-#: gtkpod.glade:2077
-msgid "4"
-msgstr "4"
+#: ../data/gtkpod.glade.h:116
+msgid "Contacts sync command:"
+msgstr "Programa de sincronización de contactos:"
 
-#: gtkpod.glade:2096
-msgid "5"
-msgstr "5"
+#: ../data/gtkpod.glade.h:117
+msgid "Containing Displayed Tracks"
+msgstr "Conteniendo pistas mostradas"
 
-#: gtkpod.glade:2135
-msgid "Select '0' for no lower limit."
-msgstr "Seleccionar '0' para eliminar el límite inferior."
+#: ../data/gtkpod.glade.h:118
+msgid "Containing Selected Tracks"
+msgstr "Conteniendo pistas seleccionadas"
 
-#: gtkpod.glade:2156
-msgid " <= cts <= "
-msgstr " <= cts <= "
+#: ../data/gtkpod.glade.h:119
+msgid "Conversion Progress Display"
+msgstr "Mostrar el progreso de la conversión"
 
-#: gtkpod.glade:2181
-msgid "Select '-1' for no upper limit."
-msgstr "Seleccionar '-1' para eliminar el límite superior."
+#: ../data/gtkpod.glade.h:120
+msgid "Cover"
+msgstr "Portada"
 
-#: 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."
+#: ../data/gtkpod.glade.h:121
+msgid "Create New Playlist"
+msgstr "Crear nueva lista de reproducción"
 
-#: gtkpod.glade:2270 gtkpod.glade:2347 gtkpod.glade:2517 gtkpod.glade:2696
-msgid "Calendar"
-msgstr "Calendario"
+#: ../data/gtkpod.glade.h:122
+msgid "Create Repository"
+msgstr "Crear repositorio"
 
-#: gtkpod.glade:2372
-msgid "Specify interval"
-msgstr "Especificar intervalo"
+#: ../data/gtkpod.glade.h:123
+msgid "Create _Playlist File"
+msgstr "Crear lista de re_producción"
 
-#: gtkpod.glade:2374 src/display_spl.c:98 src/misc_conversion.c:78
-msgid "Playcount"
-msgstr "Contador"
+#: ../data/gtkpod.glade.h:124
+msgid "Credits"
+msgstr "Créditos"
 
-#: gtkpod.glade:2397 src/display_spl.c:101 src/misc_conversion.c:79
-msgid "Rating"
-msgstr "Puntuación"
+#: ../data/gtkpod.glade.h:125
+msgid "Currently only rating is supported."
+msgstr "De momento sólo se puede puntuar."
 
-#: gtkpod.glade:2420 src/display_songs.c:1951
-msgid "Played"
-msgstr "Reproducido"
+#: ../data/gtkpod.glade.h:126
+msgid "Delete repository"
+msgstr "Borrar repositorio"
 
-#: gtkpod.glade:2443 src/display_songs.c:1954
-msgid "Modified"
-msgstr "Modificado"
+#: ../data/gtkpod.glade.h:127
+msgid ""
+"Delete tracks that are no longer present from the\n"
+"iPod or repository"
+msgstr ""
+"Borrar del iPod o del repositorio las pistas\n"
+" que ya no se encuentran presentes"
 
-#: gtkpod.glade:2542 src/display_songs.c:1957 src/display_sorttabs.c:3218
-msgid "Added"
-msgstr "Añadido"
+#: ../data/gtkpod.glade.h:129
+msgid "Deleted tracks"
+msgstr "Pistas borradas"
 
-#: gtkpod.glade:2587
-msgid "Display tracks that match the criteria entered above."
-msgstr "Mostrar las pistas que concuerden con el criterio de búsqueda."
+#: ../data/gtkpod.glade.h:130
+msgid "Descending"
+msgstr "Descendente"
 
-#: gtkpod.glade:2630 gtkpod.glade:12009
-msgid "_Display"
-msgstr "_Mostrar"
+#: ../data/gtkpod.glade.h:131
+msgid "Details"
+msgstr "Detalles"
 
-#: gtkpod.glade:2666
+#: ../data/gtkpod.glade.h:133
+#, no-c-format
 msgid ""
-"Automatically start displaying tracks that match the criteria entered above. "
-"If not selected, you must press 'Display' to start displaying."
+"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 ""
-"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."
+"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:2668
-msgid "Start display automatically"
-msgstr "Mostrar automáticamente"
+#: ../data/gtkpod.glade.h:135
+#, no-c-format
+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:2743
-msgid "Sorttab: "
-msgstr "Pestaña:"
+#: ../data/gtkpod.glade.h:137
+#, no-c-format
+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:2787
-msgid "     "
-msgstr "     "
+#: ../data/gtkpod.glade.h:138
+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:2813
-msgid "Category: "
-msgstr "Categoría: "
+#: ../data/gtkpod.glade.h:139
+msgid "Dirs"
+msgstr "Directorios"
 
-#: gtkpod.glade:2894
-msgid "Please specify a time interval"
-msgstr "Especificar un intervalo de tiempo"
+#: ../data/gtkpod.glade.h:140
+msgid "Display a list of tracks that could actually be updated."
+msgstr "Mostrar las pistas que pueden ser actualizadas."
 
-#: gtkpod.glade:2943
-msgid "Lower Margin"
-msgstr "Margen inferior"
+#: ../data/gtkpod.glade.h:141
+msgid "Display a list of tracks that could not be updated."
+msgstr "Mostrar las pistas que no pueden ser actualizadas."
 
-#: gtkpod.glade:2994 gtkpod.glade:3208
-msgid "Time:"
-msgstr "Tiempo:"
+#: ../data/gtkpod.glade.h:142
+msgid "Display conversion log"
+msgstr "Mostar el registro de conversión"
 
-#: gtkpod.glade:3037 gtkpod.glade:3251
-msgid ":"
-msgstr ":"
+#: ../data/gtkpod.glade.h:143
+msgid "Display info about detected duplicates"
+msgstr "Mostar información sobre los ficheros duplicados detectados"
 
-#: gtkpod.glade:3114
-msgid "No lower margin"
-msgstr "Sin margen inferior"
+#: ../data/gtkpod.glade.h:144
+msgid "Display info about non-updated tracks"
+msgstr "Mostrar información sobre las pistas no actualizadas"
 
-#: gtkpod.glade:3157
-msgid "Upper margin"
-msgstr "Margen superior"
+#: ../data/gtkpod.glade.h:145
+msgid "Display info about updated tracks"
+msgstr "Mostrar información sobre las pistas actualizadas"
 
-#: gtkpod.glade:3328
-msgid "No upper margin"
-msgstr "Sin margen superior"
+#: ../data/gtkpod.glade.h:146
+msgid "Display messages and warnings at startup"
+msgstr "Mostrar mensajes y avisos al inicio"
 
-#: 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
+#: ../data/gtkpod.glade.h:147
 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."
+"Display the list of duplicates that have been detected after adding files."
 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."
+"Mostrar la lista de ficheros duplicados que han sido detectados al añadir "
+"ficheros."
 
-#: gtkpod.glade:3905
-msgid "Ascending"
-msgstr "Ascendiente"
+#: ../data/gtkpod.glade.h:148
+msgid "Display toolbar..."
+msgstr "Mostrar barra de herramientas..."
 
-#: gtkpod.glade:3953
-msgid "Descending"
-msgstr "Descendiente"
+#: ../data/gtkpod.glade.h:149
+msgid "Display tooltips in main window"
+msgstr "Mostrar sugerencias en la ventana principal"
 
-#: gtkpod.glade:4001
-msgid "None"
-msgstr "Ninguno"
+#: ../data/gtkpod.glade.h:150
+msgid "Display tooltips in prefs window"
+msgstr "Mostrar sugerencias en la ventana de preferencias"
 
-#: gtkpod.glade:4048 src/display_playlists.c:2106
-msgid "Playlists"
-msgstr "Listas de reproducción"
+#: ../data/gtkpod.glade.h:151
+msgid "Display tracks that match the criteria entered above."
+msgstr "Mostrar las pistas que concuerden con el criterio de búsqueda."
 
-#: gtkpod.glade:4097
-msgid "Sorttabs"
-msgstr "Pestañas de orden"
+#: ../data/gtkpod.glade.h:152
+msgid ""
+"Displayed\n"
+"Tracks"
+msgstr ""
+"Pistas\n"
+"mostradas"
 
-#: gtkpod.glade:4146
-msgid "Tracks"
-msgstr "Pistas"
+#: ../data/gtkpod.glade.h:154
+msgid "Don't allow file duplication"
+msgstr "No permitir ficheros duplicados"
 
-#: gtkpod.glade:4306
-msgid "Auto Store"
-msgstr "Guardar automáticamente"
+#: ../data/gtkpod.glade.h:155
+msgid "Don't automatically sync on startup"
+msgstr "No sincronizar automáticamente al inicio"
 
-#: gtkpod.glade:4349
-msgid "Please refer to the notice below."
-msgstr "Leer nota inferior"
+#: ../data/gtkpod.glade.h:156
+msgid "Download Cover"
+msgstr "Descargar carátula"
 
-#: 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."
+#: ../data/gtkpod.glade.h:157
+msgid "Duplicate Recognition is based on a (modified) sha1 hash over the file."
 msgstr ""
-"También se pueden usar las cabeceras de la tabla,pero esto le permite "
-"ordenar respecto a columnas no mostradas."
+"El reconocimiento de duplicados está basado en una función de resumen sha1 "
+"(modificada) sobre el fichero."
 
-#: 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."
+#: ../data/gtkpod.glade.h:158
+msgid "Edit Repository/iPod Options"
+msgstr "Editar opciones del iPod/repositorio"
 
-#: gtkpod.glade:4685
-msgid "Sorting case sensitive"
-msgstr "Ordenamiento distinguiendo mayúsculas y minúsculas"
+#: ../data/gtkpod.glade.h:159 ../src/context_menus.c:659
+msgid "Edit Smart Playlist"
+msgstr "Editar lista de reproducción inteligente."
 
-#: gtkpod.glade:4731
-msgid "<b>Ignore Frequent Words</b>"
-msgstr "<b>Ignorar palabras comunes (p.e: artículos)</b>"
+#: ../data/gtkpod.glade.h:160 ../src/context_menus.c:746
+msgid "Edit Track Details"
+msgstr "Editar detalles de la pista"
 
-#: 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:"
+#: ../data/gtkpod.glade.h:161
+msgid "Edit _Preferences"
+msgstr "Editar _preferencias"
 
-#: gtkpod.glade:5106
-msgid "gtkpod Info"
-msgstr "Información sobre gtkpod"
+#: ../data/gtkpod.glade.h:162
+msgid "Effective free space"
+msgstr "Espacio disponible"
 
-#: gtkpod.glade:5427 gtkpod.glade:5514 gtkpod.glade:5543 gtkpod.glade:6261
-#: gtkpod.glade:6406
-msgid "      "
-msgstr "      "
+#: ../data/gtkpod.glade.h:163
+msgid "Empty Playlist"
+msgstr "Lista de reproducción vacía"
 
-#: gtkpod.glade:5832
-msgid "Number of tracks"
-msgstr "Número de pistas"
+#: ../data/gtkpod.glade.h:164
+msgid "Exclude file mask(s)"
+msgstr "Mascara(s) de exclusión de ficheros"
 
-#: gtkpod.glade:5862
-msgid "Play time"
-msgstr "Tiempo de reproducción"
-
-#: gtkpod.glade:5893
+#: ../data/gtkpod.glade.h:165
 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
+#: ../data/gtkpod.glade.h:166
 msgid "File size (deleted)"
 msgstr "Tamaño de fichero (borrado)"
 
-#: gtkpod.glade:6013
-msgid "Non-transferred tracks"
-msgstr "Pistas no transferidas"
-
-#: gtkpod.glade:6043
+#: ../data/gtkpod.glade.h:167
 msgid "File size (non-transferred)"
 msgstr "Tamaño de fichero (no transferido)"
 
-#: gtkpod.glade:6073
-msgid "Effective free space"
-msgstr "Espacio disponible"
+#: ../data/gtkpod.glade.h:168
+msgid "Filename Format: "
+msgstr "Formato de nombre de fichero:"
 
-#: gtkpod.glade:6103
-msgid ""
-"Total\n"
-"(iPod)"
-msgstr ""
-"Total\n"
-"(iPod)"
+#: ../data/gtkpod.glade.h:169
+msgid "Files"
+msgstr "Ficheros"
 
-#: gtkpod.glade:6135
+#: ../data/gtkpod.glade.h:170
 msgid ""
-"Selected\n"
-"Playlist"
+"Find orphan files (files with no track info in DB) and dangling tracks "
+"(tracks with no corresponding files on iPod)"
 msgstr ""
-"Lista de reproducción\n"
-"seleccionada"
+"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:6167
-msgid ""
-"Displayed\n"
-"Tracks"
-msgstr ""
-"Pistas\n"
-"mostradas"
+#: ../data/gtkpod.glade.h:171
+#, fuzzy
+msgid "First try <i>folder.jpg</i>, then <i><artist>.jpg</i>"
+msgstr "Intentar primero <i>folder.jpg</i>, después <i>&lt;artist&gt;.jpg</i>"
 
-#: gtkpod.glade:6199
+#: ../data/gtkpod.glade.h:172
+msgid "Flac with :"
+msgstr "Flac con:"
+
+#: ../data/gtkpod.glade.h:174
+#, no-c-format
 msgid ""
-"Selected\n"
-"Tracks"
+"For example, 'xmms %s' will clear xmms' current playlist, add the selected "
+"tracks and start playing."
 msgstr ""
-"Pistas\n"
-"seleccionadas"
+"Por ejemplo, 'xmms %s' limpiará la actual lista de reproducción, añadirá las "
+"pistas seleccionadas y comenzará su reproducción."
 
-#: gtkpod.glade:6231
+#: ../data/gtkpod.glade.h:176
+#, no-c-format
 msgid ""
-"Total\n"
-"(local)"
+"For example, 'xmms -e %s' will append (enqueue) the selected tracks to xmms' "
+"current playlist."
 msgstr ""
-"Total\n"
-"(local)"
+"Por ejemplo, 'xmms -e %s' añadirá las pistas seleccionadas al final de la "
+"actual lista de reproducción de xmms."
 
-#: gtkpod.glade:6651
-msgid "label21"
-msgstr "etiqueta21"
+#: ../data/gtkpod.glade.h:177 ../src/display_sorttabs.c:2957
+#: ../src/display_spl.c:89 ../src/misc_conversion.c:63
+msgid "Genre"
+msgstr "Género"
 
-#: gtkpod.glade:6746
-msgid "Never show this dialogue again"
-msgstr "No volver a mostrar este diálogo"
+#: ../data/gtkpod.glade.h:178
+msgid "Group artists on compilation CDs"
+msgstr "Agrupar los artistas en los CDs generados"
 
-#: gtkpod.glade:6791 gtkpod.glade:7135
-msgid "window1"
-msgstr "ventana1"
+#: ../data/gtkpod.glade.h:179
+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 recomendado para conseguir una importación más rápida cuando se "
+"está usando la detección de duplicados. También, el tener los nombres de "
+"fichero del PC permite escribir las etiquetas ID3 modificadas al disco, e "
+"incluso recontruir los contenidos del iPod en caso de corrupción del sistema "
+"de ficheros (cambiar las entradas \"transferred=\" en la copia de seguridad "
+"de la base de datos)."
 
-#: gtkpod.glade:6850
-msgid "_M3U"
-msgstr "_M3U"
+#: ../data/gtkpod.glade.h:180 ../src/context_menus.c:682
+#: ../src/context_menus.c:700 ../src/context_menus.c:824
+msgid "I'm sure"
+msgstr "Estoy seguro"
 
-#: gtkpod.glade:6869
-msgid "_PLS"
-msgstr "_PLS"
-
-#: gtkpod.glade:6907
+#: ../data/gtkpod.glade.h:181
 msgid ""
 "If available, the local copy of the track is referenced in the playlist. "
 "Otherwise the file on the iPod is used."
@@ -774,217 +812,205 @@
 "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"
+#: ../data/gtkpod.glade.h:182
+msgid "If both options are selected, embedded APIC data takes precedence."
+msgstr ""
+"Si están seleccionadas ambas opciones, la información empotrada APIC tiene "
+"preferencia."
 
-#: gtkpod.glade:6927
+#: ../data/gtkpod.glade.h:183
 msgid ""
-"The local copy of the track is referenced in the playlist. If the track is "
-"not available locally, an error message is displayed."
+"If checked, sorting will be case sensitive. Please note that case sensitive "
+"sorting will not work well with most charsets."
 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."
+"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:6929
-msgid "_Local"
-msgstr "_Local"
+#: ../data/gtkpod.glade.h:184
+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 arriba."
 
-#: 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."
+#: ../data/gtkpod.glade.h:185
+msgid "If you check this, gtkpod will descend into subdirectories recursively."
+msgstr ""
+"Con esta opción, gtkpod descenderá recursivamente en los subdirectorios."
 
-#: 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
+#: ../data/gtkpod.glade.h:186
 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 '%': %%."
+"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 ""
-"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 '%': %%."
+"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: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
+#: ../data/gtkpod.glade.h:187
 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 '%': %%."
+"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 ""
-"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 "
-"'%': %%."
+"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:7203
-msgid " "
-msgstr " "
-
-#: gtkpod.glade:7225
+#: ../data/gtkpod.glade.h:188
 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."
+"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 ""
-"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."
+"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:7227
+#: ../data/gtkpod.glade.h:189
+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:"
+
+#: ../data/gtkpod.glade.h:190
 msgid ""
-"Use selected charset (Preferences/'Adding/Updating/ Syncing')\n"
-"for this filename."
+"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 ""
-"Usar juego de caracteres especificado (Preferencias/'Añadir/Actualizar/"
-"Sincronizar')\n"
-"para este nombre de fichero."
+"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:7246
+#: ../data/gtkpod.glade.h:191
+msgid "Initialize iPod"
+msgstr "Inicializar iPod"
+
+#: ../data/gtkpod.glade.h:192
 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."
+"Insert before\n"
+"Insert after"
 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."
+"Insertar antes\n"
+"Insertar después"
 
-#: gtkpod.glade:7248
-msgid "Check for existing files when copying from iPod."
-msgstr "Comprobar la existencia previa de ficheros al copiar del iPod."
+#: ../data/gtkpod.glade.h:194
+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:7423
-msgid "Playlist name:"
-msgstr "Nombre de la lista de reproducción:"
+#: ../data/gtkpod.glade.h:195
+msgid "Live _updating"
+msgstr "Act_ualización directa"
 
-#: gtkpod.glade:7492
+#: ../data/gtkpod.glade.h:196
+msgid "Load iPod(s)"
+msgstr "Cargar iPod(s)"
+
+#: ../data/gtkpod.glade.h:197
+msgid "Lower Margin"
+msgstr "Margen inferior"
+
+#: ../data/gtkpod.glade.h:198
+msgid "M4A with :"
+msgstr "M4A con:"
+
+#: ../data/gtkpod.glade.h:199
+msgid "MP3 with :"
+msgstr "MP3 con:"
+
+#: ../data/gtkpod.glade.h:200
 msgid "Match al_l of the following"
 msgstr "Encontrar todo _lo siguiente"
 
-#: gtkpod.glade:7511
+#: ../data/gtkpod.glade.h:201
 msgid "Match an_y of the following"
 msgstr "Encontrar algo de lo siguiente (_y)"
 
-#: gtkpod.glade:7531
-msgid "_Ignore rules"
-msgstr "_Ignorar reglas"
+#: ../data/gtkpod.glade.h:202
+msgid "Match only _checked tracks"
+msgstr "Encontrar sólo pistas verifi_cadas"
 
-#: gtkpod.glade:7601
-msgid "Rules"
-msgstr "Reglas"
+#: ../data/gtkpod.glade.h:203
+msgid "Maximum number of background threads:"
+msgstr "Número máximo de hilos en segundo plano."
 
-#: gtkpod.glade:7638
-msgid "_Limit to"
-msgstr "_Limitar a"
+#: ../data/gtkpod.glade.h:204
+msgid "Maximum size of cache directory (in GB):"
+msgstr "Tamaño máximo del directorio de cache (en GiB):"
 
-#: gtkpod.glade:7689
-msgid "   Sort by:"
-msgstr "   Ordenar por:"
+#: ../data/gtkpod.glade.h:205
+msgid "Model:"
+msgstr "Modelo:"
 
-#: gtkpod.glade:7741
-msgid "Match only _checked tracks"
-msgstr "Encontrar sólo pistas verifi_cadas"
+#: ../data/gtkpod.glade.h:206 ../src/display_tracks.c:1993
+msgid "Modified"
+msgstr "Modificado"
 
-#: gtkpod.glade:7773
-msgid "Live _updating"
-msgstr "Act_ualización directa"
+#: ../data/gtkpod.glade.h:207
+msgid "Most Recently Played Tracks"
+msgstr "Pistas más recientemente escuchadas"
 
-#: gtkpod.glade:7864
-msgid "Preferences"
-msgstr "Preferencias"
+#: ../data/gtkpod.glade.h:208
+msgid "Music Root:"
+msgstr "Directorio raíz de la música:"
 
-#: gtkpod.glade:7927
-msgid "<b>Mountpoint and individual repository/playlist options</b>"
+#: ../data/gtkpod.glade.h:209
+msgid ""
+"Music files can have images embedded in the APIC tag. Currently this is only "
+"supported for MP3 files."
 msgstr ""
-"<b>Opciones de punto de montaje y repositorio/lista de reproducción "
-"individual</b>"
+"Los ficheros de música pueden tener imágenes empotradas en la etiqueta APIC. "
+"Actualmente sólo soportado para ficheros MP3."
 
-#: gtkpod.glade:7990
-msgid "Set mountpoint or edit repository options"
-msgstr "Configurar el punto de montaje o editar las opciones de repositorio"
+#: ../data/gtkpod.glade.h:210
+msgid "Never show this dialogue again"
+msgstr "No volver a mostrar este diálogo"
 
-#: gtkpod.glade:8037
-msgid "<b>Import</b>"
-msgstr "<b>Importar</b>"
+#: ../data/gtkpod.glade.h:211
+msgid "New PL"
+msgstr "Nueva lista de reproducción"
 
-#: gtkpod.glade:8108
-#, fuzzy
-msgid "Automatically import iTunesDBs on startup"
-msgstr ""
-"Importar automáticamente la base de datos iTunes del iPod en el arranque"
+#: ../data/gtkpod.glade.h:212
+msgid "No lower margin"
+msgstr "Sin margen inferior"
 
-#: gtkpod.glade:8154
-msgid "<b>Adding/Updating/Syncing</b>"
-msgstr "<b>Añadir/Actualizar/Sincronizar</b>"
+#: ../data/gtkpod.glade.h:213
+msgid "No upper margin"
+msgstr "Sin margen superior"
 
-#: gtkpod.glade:8226
-msgid "Exclude file mask(s)"
-msgstr ""
+#: ../data/gtkpod.glade.h:214
+msgid "Non-transferred tracks"
+msgstr "Pistas no transferidas"
 
-#: gtkpod.glade:8251
-msgid "Semicolon seperated list of file exclusion masks, e.g. '*.mp3'"
-msgstr ""
+#: ../data/gtkpod.glade.h:215
+msgid "None"
+msgstr "Ninguno"
 
-#: gtkpod.glade:8285
-msgid "_Encoding (ID3, files):"
-msgstr "Codificación(ID3, fich_eros):"
-
-#: gtkpod.glade:8320
+#: ../data/gtkpod.glade.h:216
 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."
+"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 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."
+"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:8357
+#: ../data/gtkpod.glade.h:217
 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 "
@@ -1002,92 +1028,28 @@
 "datos iTunes' mas abajo). Las pistas importadas con versiones previas a la "
 "0.51 no tienen almacenado el juego de caracteres."
 
-#: gtkpod.glade:8359
+#: ../data/gtkpod.glade.h:218
 msgid ""
-"Use selected encoding also when updating \n"
-"or syncing tracks"
+"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 ""
-"Usar codificación seleccionada al actualizar\n"
-"o sincronizar las pistas"
+"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: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
+#: ../data/gtkpod.glade.h:219
 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 "
@@ -1107,436 +1069,466 @@
 "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"
+#: ../data/gtkpod.glade.h:222
+msgid "Notes sync command:"
+msgstr "Programa de sincronización de notas:"
 
-#: 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'"
+#: ../data/gtkpod.glade.h:223
+msgid "Number of playlists"
+msgstr "Número de listas de reproducción"
 
-#: 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"
+#: ../data/gtkpod.glade.h:224
+msgid "Number of tracks"
+msgstr "Número de pistas"
 
-#: gtkpod.glade:8756 gtkpod.glade:17800
-msgid ""
-"Will show a list of tracks removed and a list of tracks newly added or "
-"updated."
+#: ../data/gtkpod.glade.h:225
+msgid "Number of tracks in generated playlists:"
 msgstr ""
-"Se mostrará una lista de las pistas eliminadas y una lista de las pistas "
-"añadidas o actualizadas."
+"Número de pistas en las listas de reproducción generadas automáticamente:"
 
-#: 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
+#: ../data/gtkpod.glade.h:226
 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)."
+"Number of tracks in the generated playlists 'Most Often Listened', 'Best "
+"Rated' and 'Most Recently Played'. Choose '0' for 'no limit'."
 msgstr ""
-"Recomendado para conseguir una importación más rápida cuando se está usando "
-"la detección de duplicados."
+"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:8877
-msgid ""
-"Write extended information (PC filenames,\n"
-" MD5 hashes, encoding). Recommended."
+#: ../data/gtkpod.glade.h:227
+msgid "Ogg with :"
+msgstr "Ogg con:"
+
+#: ../data/gtkpod.glade.h:228
+msgid "On startup automatically sync with playlist directories"
 msgstr ""
-"Escribir la información extendida (nombre de fichero en PC,\n"
-"función resumen MD5, codificación). Recomendado."
+"Sincronizar automáticamente con los directorios de las listas de "
+"reproducción en el inicio."
 
-#: gtkpod.glade:8921 gtkpod.glade:14688
-msgid "_General"
-msgstr "_General"
+#: ../data/gtkpod.glade.h:229
+msgid "On startup automatically sync with the following directory"
+msgstr "Sincronizar automáticamente al inicio con el siguiente directorio"
 
-#: gtkpod.glade:8957
-msgid "<b>Tag Reading</b>"
-msgstr "<b>Lectura de los atributos</b>"
+#: ../data/gtkpod.glade.h:230
+msgid "On startup automatically update (Live Playlist)"
+msgstr "Actualizar automáticamente en el inicio (listas de reproducción vivas)"
 
-#: 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)"
+#: ../data/gtkpod.glade.h:231
+msgid "One for each Album"
+msgstr "Una para cada álbum"
 
-#: 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'."
+#: ../data/gtkpod.glade.h:232
+msgid "One for each Artist"
+msgstr "Una para cada artista"
 
-#: 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."
+#: ../data/gtkpod.glade.h:233
+msgid "One for each Composer"
+msgstr "Una para cada compositor"
 
-#: gtkpod.glade:9118
+#: ../data/gtkpod.glade.h:234
+msgid "One for each Genre"
+msgstr "Una para cada género"
+
+#: ../data/gtkpod.glade.h:235
+msgid "One for each Rating"
+msgstr "Una para cada puntuación"
+
+#: ../data/gtkpod.glade.h:236
+msgid "One for each Year"
+msgstr "Una para cada año"
+
+#: ../data/gtkpod.glade.h:237
 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."
+#: ../data/gtkpod.glade.h:238
+msgid "Password:"
+msgstr "Contraseña:"
 
-#: gtkpod.glade:9187 src/display_sorttabs.c:2942 src/display_spl.c:85
-#: src/misc_conversion.c:62
-msgid "Artist"
-msgstr "Artista"
+#: ../data/gtkpod.glade.h:239
+msgid "Path:"
+msgstr "Ruta:"
 
-#: gtkpod.glade:9209 src/display_sorttabs.c:2948 src/display_spl.c:89
-#: src/misc_conversion.c:64
-msgid "Genre"
-msgstr "Género"
+#: ../data/gtkpod.glade.h:240
+msgid "Play time"
+msgstr "Tiempo de reproducción"
 
-#. 0
-#: gtkpod.glade:9231 src/display_sorttabs.c:2945 src/display_spl.c:84
-#: src/misc_conversion.c:61
-msgid "Album"
-msgstr "Álbum"
+#: ../data/gtkpod.glade.h:241 ../src/display_spl.c:98
+#: ../src/misc_conversion.c:77
+msgid "Playcount"
+msgstr "Contador"
 
-#. 5
-#: gtkpod.glade:9253 src/display_spl.c:97 src/misc_conversion.c:66
-msgid "Composer"
-msgstr "Compositor"
+#: ../data/gtkpod.glade.h:242 ../src/display_tracks.c:1990
+msgid "Played"
+msgstr "Reproducido"
 
-#: gtkpod.glade:9275 src/display_sorttabs.c:2954 src/display_spl.c:83
-#: src/misc_conversion.c:63
-msgid "Title"
-msgstr "Título"
+#: ../data/gtkpod.glade.h:243 ../src/display_spl.c:105
+msgid "Playlist"
+msgstr "Lista de reproducción"
 
-#: gtkpod.glade:9330
-#, fuzzy
-msgid "<b>Coverart</b>"
-msgstr "<b>Importar</b>"
+#: ../data/gtkpod.glade.h:244
+msgid "Playlist name:"
+msgstr "Nombre de la lista de reproducción:"
 
-#: gtkpod.glade:9392
-msgid ""
-"Music files can have images embedded in the APIC tag. Currently this is only "
-"supported for MP3 files."
-msgstr ""
+#: ../data/gtkpod.glade.h:245
+msgid "Playlist type:"
+msgstr "Tipo de lista de reproducción:"
 
-#: gtkpod.glade:9394
-msgid "Read coverart from embedded APIC data"
-msgstr ""
+#: ../data/gtkpod.glade.h:246 ../src/display_playlists.c:2176
+msgid "Playlists"
+msgstr "Listas de reproducción"
 
-#: gtkpod.glade:9415
-#, fuzzy
-msgid "Add coverart from file using the following template"
-msgstr "Añadir carátulas desde fichero usando la siguiente plantilla"
+#: ../data/gtkpod.glade.h:247
+msgid "Please refer to the notice below."
+msgstr "Leer nota inferior"
 
-#: gtkpod.glade:9471
+#: ../data/gtkpod.glade.h:248
+msgid "Please specify a time interval"
+msgstr "Especificar un intervalo de tiempo"
+
+#: ../data/gtkpod.glade.h:249
+msgid "Preferences"
+msgstr "Preferencias"
+
+#: ../data/gtkpod.glade.h:250
 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 "
-"'%': %%."
+"Press button to abort.\n"
+"Export can be continued at a later time."
 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 '%': %%."
+"Pulsar boton para cancelar.\n"
+"La exportación podrá continuar más tarde."
 
-#: gtkpod.glade:9492
-msgid "<b>Examples</b>"
-msgstr "<b>Ejemplos</b>"
+#: ../data/gtkpod.glade.h:252
+msgid "Previous"
+msgstr "Previo"
 
-#: gtkpod.glade:9526
-msgid "folder.jpg"
-msgstr "folder.jpg"
+#: ../data/gtkpod.glade.h:253
+msgid "Progress Information"
+msgstr "Información del progreso"
 
-#: gtkpod.glade:9554
-msgid "folder"
-msgstr "folder"
+#: ../data/gtkpod.glade.h:254
+msgid "Random Playlist from Displayed Tracks"
+msgstr "Lista de reproducción aleatoria de las pistas mostradas"
 
-#: gtkpod.glade:9582
-msgid "../%A.jpg"
-msgstr "../%A.jpg"
+#: ../data/gtkpod.glade.h:255
+msgid "Randomize Current Playlist"
+msgstr "Lista de reproducción actual aleatoria"
 
-#: gtkpod.glade:9610
-msgid "%A"
-msgstr "%A"
+#: ../data/gtkpod.glade.h:256 ../src/display_spl.c:101
+#: ../src/misc_conversion.c:78
+msgid "Rating"
+msgstr "Puntuación"
 
-#: gtkpod.glade:9638
-msgid "Use <i>folder.jpg</i> as cover art."
-msgstr "Usar <i>folder.jpg</i> como carátula."
+#: ../data/gtkpod.glade.h:257
+msgid "Read coverart from embedded APIC data"
+msgstr "Leer carátula de la información empotrada APIC"
 
-#: gtkpod.glade:9666
-msgid "Use <i>folder.jpg</i>, <i>folder.png</i>..."
-msgstr "Usar <i>folder.jpg</i>, <i>folder.png</i>..."
+#: ../data/gtkpod.glade.h:258
+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: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"
+#: ../data/gtkpod.glade.h:259
+msgid "Remove Cover Art"
+msgstr "Borrar portada"
 
-#: 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>..."
+#: ../data/gtkpod.glade.h:260
+msgid "Repository Options"
+msgstr "Opciones de repositorio"
 
-#: gtkpod.glade:9750
-msgid "folder.jpg;%a.jpg"
-msgstr "folder.jpg;%a.jpg"
+#: ../data/gtkpod.glade.h:261
+msgid "Repository name:"
+msgstr "Nombre del repositorio:"
 
-#: 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>"
+#: ../data/gtkpod.glade.h:262
+msgid "Repository type:"
+msgstr "Tipo de repositorio:"
 
-#: gtkpod.glade:9835
-msgid "If both options are selected, embedded APIC data takes precedence."
+#: ../data/gtkpod.glade.h:263
+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:9887
-msgid "<b>mserv</b>"
-msgstr "<b>mserv</b>"
+#: ../data/gtkpod.glade.h:264
+msgid "Rules"
+msgstr "Reglas"
 
-#: gtkpod.glade:9949 gtkpod.glade:10175
-msgid "Currently only rating is supported."
-msgstr "De momento sólo se puede puntuar."
+#: ../data/gtkpod.glade.h:265 ../src/context_menus.c:808
+msgid "Save Changes"
+msgstr "Guardar cambios"
 
-#: gtkpod.glade:9951
-msgid "Use mserv database to fill additional information"
-msgstr "Usar la base de datos mserv para rellenar la información adicional"
+#: ../data/gtkpod.glade.h:266
+#, fuzzy
+msgid "Scrobble Tracks?"
+msgstr "Scrobble Tracks?"
 
-#: gtkpod.glade:9979
-msgid "Music Root:"
-msgstr "Directorio raíz de la música:"
+#: ../data/gtkpod.glade.h:267
+msgid "Select '-1' for no upper limit."
+msgstr "Seleccionar '-1' para eliminar el límite superior."
 
-#: 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."
+#: ../data/gtkpod.glade.h:268
+msgid "Select '0' for no lower limit."
+msgstr "Seleccionar '0' para eliminar el límite inferior."
 
-#: gtkpod.glade:10029
-msgid "mserv Root:"
-msgstr "Directorio raíz de mserv:"
-
-#: gtkpod.glade:10057
-msgid "Root directory of mserv database (trackinfo root)."
+#: ../data/gtkpod.glade.h:269
+msgid ""
+"Selected\n"
+"Playlist"
 msgstr ""
-"Directorio raíz de la base de datos mserv (raíz de la información sobre las "
-"pistas)."
+"Lista de reproducción\n"
+"seleccionada"
 
-#: gtkpod.glade:10079
-msgid "Username:"
-msgstr "Nombre de usuario:"
-
-#: gtkpod.glade:10107
-msgid "Username to be used for mserv database lookup."
+#: ../data/gtkpod.glade.h:271
+msgid ""
+"Selected\n"
+"Tracks"
 msgstr ""
-"Nombre de usuario que se usará en la búsqueda de la base de datos mserv."
+"Pistas\n"
+"seleccionadas"
 
-#: 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"
+#: ../data/gtkpod.glade.h:273
+msgid "Selected Tab _Entry"
+msgstr "_Entrada de pestaña seleccionada"
 
-#: gtkpod.glade:10177
-msgid "Show information about problems when accessing mserv"
-msgstr "Mostrar errores en el acceso a mserv"
+#: ../data/gtkpod.glade.h:274
+msgid "Selected _Playlist"
+msgstr "_Lista de reproducción seleccionada"
 
-#: gtkpod.glade:10223
-msgid "_Track Info"
-msgstr "_Información de la pista"
+#: ../data/gtkpod.glade.h:275
+msgid "Selected _Tracks"
+msgstr "_Pistas seleccionadas"
 
-#: gtkpod.glade:10273
-msgid "<b>Displayed Track Attributes</b>"
-msgstr "<b>Atributos de la pista mostrados</b>"
+#: ../data/gtkpod.glade.h:276
+msgid "Selected filter tab entry from database"
+msgstr "Borrar selección de la base de datos"
 
-#: gtkpod.glade:11083
-msgid "<b>Sort Tabs</b>"
-msgstr "<b>Pestañas</b>"
+#: ../data/gtkpod.glade.h:277
+msgid "Selected filter tab entry from harddisk"
+msgstr "Borrar selección del disco duro"
 
-#: 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."
+#: ../data/gtkpod.glade.h:278
+msgid "Selected filter tab entry from iPod"
+msgstr "Borrar selección del iPod"
 
-#: gtkpod.glade:11147
-msgid "Group artists on compilation CDs"
-msgstr "Agrupar los artistas en los CDs generados"
+#: ../data/gtkpod.glade.h:279
+msgid "Selected filter tab entry from playlist"
+msgstr "Pestaña seleccionada de la lista de reproducción"
 
-#: gtkpod.glade:11172
-msgid "_Number of sort tabs:"
-msgstr "_Número de pestañas:"
+#: ../data/gtkpod.glade.h:280
+msgid "Selected playlist"
+msgstr "Lista de reproducción seleccionada"
 
-#: 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."
+#: ../data/gtkpod.glade.h:281
+msgid "Selected playlist including tracks from database"
 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."
+"Lista de reproducción seleccionada incluyendo pistas de la base de datos"
 
-#: gtkpod.glade:11316
-msgid "...master playlist"
-msgstr "...lista de reproducción principal"
+#: ../data/gtkpod.glade.h:282
+msgid "Selected playlist including tracks from harddisk"
+msgstr "Lista de reproducción seleccionada incluyendo pistas del disco duro"
 
-#: gtkpod.glade:11336
-msgid "...entry 'All' in sort tab..."
-msgstr "...entrada 'Todo' en la pestaña..."
+#: ../data/gtkpod.glade.h:283
+msgid "Selected playlist including tracks from iPod"
+msgstr "Lista de reproducción seleccionada incluyendo pistas del iPod"
 
-#: gtkpod.glade:11421
-msgid "<b>Tooltips</b>"
-msgstr "<b>Sugerencias</b>"
+#: ../data/gtkpod.glade.h:284
+msgid "Selected tracks from database"
+msgstr "Pistas seleccionadas de la base de datos"
 
-#: gtkpod.glade:11484
-msgid "Display tooltips in main window"
-msgstr "Mostrar sugerencias en la ventana principal"
+#: ../data/gtkpod.glade.h:285
+msgid "Selected tracks from harddisk"
+msgstr "Pistas seleccionadas del disco duro"
 
-#: gtkpod.glade:11504
-msgid "Display tooltips in prefs window"
-msgstr "Mostrar sugerencias en la ventana de preferencias"
+#: ../data/gtkpod.glade.h:286
+msgid "Selected tracks from iPod"
+msgstr "Pistas seleccionadas del iPod"
 
-#: gtkpod.glade:11550
-msgid "<b>Toolbar</b>"
-msgstr "<b>Barra de herramientas</b>"
+#: ../data/gtkpod.glade.h:287
+msgid "Selected tracks from playlist"
+msgstr "Pistas seleccionadas de la lista de reproducción"
 
-#: gtkpod.glade:11613
-msgid "Display toolbar..."
-msgstr "Mostrar barra de herramientas..."
+#: ../data/gtkpod.glade.h:288
+msgid "Semicolon separated list of file exclusion masks, e.g. '*.mp3'"
+msgstr ""
+"Lista de máscaras de exclusión de ficheros separadas por punto y coma. p.e: "
+"'*.mp3'"
 
-#: gtkpod.glade:11670
-msgid "...as icons"
-msgstr "...como iconos"
+#: ../data/gtkpod.glade.h:289
+msgid "Set Cover Art from File"
+msgstr "Usar fichero para configurar la carátula"
 
-#: gtkpod.glade:11690
-msgid "...as text"
-msgstr "...como texto"
+#: ../data/gtkpod.glade.h:290
+msgid "Set Cover Art from Web"
+msgstr "Usar la web para configurar la carátula"
 
-#: gtkpod.glade:11711
-msgid "...both as icons and text"
-msgstr "...ambos. Como iconos y como texto"
+#: ../data/gtkpod.glade.h:291
+msgid "Set mountpoint or edit repository options"
+msgstr "Configurar el punto de montaje o editar las opciones de repositorio"
 
-#: gtkpod.glade:11772
-msgid "<b>Misc</b>"
-msgstr "<b>Miscelaneo</b>"
+#: ../data/gtkpod.glade.h:292
+msgid "Set options for Calendar/Contacts/Notes"
+msgstr "Configurar opciones para Calendario/Contactos/Notas"
 
-#: gtkpod.glade:11834
+#: ../data/gtkpod.glade.h:293
 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."
+"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 ""
-"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."
+"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:11836
+#: ../data/gtkpod.glade.h:294
 msgid ""
-"Temporarily disable sorting when changing playlist\n"
-"or tab entry (faster!)"
+"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 ""
-"Deshabilitar temporalmente la ordenación en los cambios \n"
-"de lista de reproducción o de pestañas (¡más rápido!)"
+"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:11856
+#: ../data/gtkpod.glade.h:295
+msgid "Set this to your last.fm password"
+msgstr "Poner aquí la contraseña de last.fm"
+
+#: ../data/gtkpod.glade.h:296
+msgid "Set this to your last.fm username"
+msgstr "Poner aquí el nombre de usuario de last.fm"
+
+#: ../data/gtkpod.glade.h:297
 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)."
+"Set to 0 to effectively disable caching (a maximum of one track will be "
+"cached at a time)."
 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)."
+"Poner a 0 para desactivar el caché (un máximo de una pista será cacheada "
+"cada vez)."
 
-#: gtkpod.glade:11858
+#: ../data/gtkpod.glade.h:298
 msgid ""
-"Block display when changing playlist or tab\n"
-" entry (faster!)"
+"Set to 0 to use as many background threads as CPUs are available on your "
+"system."
 msgstr ""
-"Bloquear la visualización al cambiar de lista de\n"
-" reproducción o de pestaña (¡más rápido!)"
+"Poner a 0 para usar tantos hilos en segundo plano como CPUs disponibles en "
+"el sistema."
 
-#: gtkpod.glade:11878
-msgid "This option will be re-activated when you upgrade gtkpod."
-msgstr "Esta opción se reactivará al acualizar gtkpod."
+#: ../data/gtkpod.glade.h:299
+msgid "Show information about problems when accessing mserv"
+msgstr "Mostrar errores en el acceso a mserv"
 
-#: gtkpod.glade:11880
-msgid "Display messages and warnings at startup"
-msgstr "Mostrar mensajes y avisos al inicio"
+#: ../data/gtkpod.glade.h:300
+msgid "Show summary of sync result"
+msgstr "Mostrar resumen del resultado de la sincronización"
 
-#: gtkpod.glade:11942
-msgid "Advanced Sorting Options"
-msgstr "Opciones de ordenación avanzadas"
+#: ../data/gtkpod.glade.h:301 ../src/misc_playlist.c:96
+#: ../src/repository.c:1356
+msgid "Smart Playlist"
+msgstr "Lista de reproducción inteligente"
 
-#: gtkpod.glade:12045
-msgid "<b>Track Editing</b>"
-msgstr "<b>Edición de pistas</b>"
+#: ../data/gtkpod.glade.h:302
+msgid "Sort tracks according to: "
+msgstr "Ordenar pistas respecto a:"
 
-#: gtkpod.glade:12107
+#: ../data/gtkpod.glade.h:303
+msgid "Sorting Options"
+msgstr "Opciones de ordenamiento"
+
+#: ../data/gtkpod.glade.h:304
+msgid "Sorting case sensitive"
+msgstr "Ordenamiento distinguiendo mayúsculas y minúsculas"
+
+#: ../data/gtkpod.glade.h:305
+msgid "Sorttab: "
+msgstr "Pestaña:"
+
+#: ../data/gtkpod.glade.h:306
+msgid "Sorttabs"
+msgstr "Orden de pestañas"
+
+#: ../data/gtkpod.glade.h:307
+msgid "Source:"
+msgstr "Fuente:"
+
+#: ../data/gtkpod.glade.h:309
+#, no-c-format
 msgid ""
-"The tags are written to the files on your harddrive and on the ipod (if "
-"available)."
+"Specify exact path including command line options. '%i' will be replaced "
+"with the mount point of the iPod."
 msgstr ""
-"Los atributos son escritos en los ficheros del disco duro y en el iPod (si "
-"está disponible)."
+"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:12109
-msgid "Write ID3 tags to disk when modified in gtkpod"
-msgstr "Escribir los atributos ID3 al disco cuando se modifiquen en gtkpod"
+#: ../data/gtkpod.glade.h:310
+msgid "Specify interval"
+msgstr "Especificar intervalo"
 
-#: gtkpod.glade:12165
+#: ../data/gtkpod.glade.h:311
+msgid "Start display automatically"
+msgstr "Mostrar automáticamente"
+
+#: ../data/gtkpod.glade.h:312
+msgid "Synchronise Contacts, Calendar and Notes"
+msgstr "Sincronizar contactos, calendarios y notas"
+
+#: ../data/gtkpod.glade.h:313
+msgid "Synchronize All"
+msgstr "Sincronizar todo"
+
+#: ../data/gtkpod.glade.h:314
+msgid "Synchronize Calendar"
+msgstr "Sincronizar calendario"
+
+#: ../data/gtkpod.glade.h:315
+msgid "Synchronize Contacts"
+msgstr "Sincronizar contactos"
+
+#: ../data/gtkpod.glade.h:316
+msgid "Synchronize Notes"
+msgstr "Sincronizar notas"
+
+#: ../data/gtkpod.glade.h:317
+msgid "Template for info field: "
+msgstr "Plantilla para el campo de información:"
+
+#: ../data/gtkpod.glade.h:318
 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."
+"The local copy of the track is referenced in the playlist. If the track is "
+"not available locally, an error message is displayed."
 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'."
+"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:12167
+#: ../data/gtkpod.glade.h:319
 msgid ""
-"Use selected encoding (on the 'General' page)\n"
-"when writing tags"
+"The output of the background conversion scripts is copied below. Each page "
+"of the notebook corresponds to one background thread."
 msgstr ""
-"Usar la condificación seleccionada (en la pestaña 'General')\n"
-"al escribir los atributos"
+"La salida de los guiones de conversión en segundo plano es mostrada abajo. "
+"Cada página del libro de notas corresponde a un hilo en segundo plano."
 
-#: gtkpod.glade:12187
+#: ../data/gtkpod.glade.h:320
 msgid ""
+"The tags are written to the files on your harddrive and on the iPod (if "
+"available)."
+msgstr ""
+"Los atributos son escritos a los ficheros del disco duro y del iPod (si está "
+"disponible)."
+
+#: ../data/gtkpod.glade.h:321
+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."
+
+#: ../data/gtkpod.glade.h:322
+msgid "This is the same option as in 'Edit/Delete Confirmation'"
+msgstr "Esta es la misma opcion que en 'Confirmar Editar/Borrar'"
+
+#: ../data/gtkpod.glade.h:323
+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 "
@@ -1550,336 +1542,479 @@
 "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)"
+#: ../data/gtkpod.glade.h:324
+msgid "This option will be re-activated when you upgrade gtkpod."
+msgstr "Esta opción se reactivará al acualizar gtkpod."
 
-#: gtkpod.glade:12222
+#: ../data/gtkpod.glade.h:325
+msgid "Time:"
+msgstr "Tiempo:"
+
+#: ../data/gtkpod.glade.h:326 ../src/display_sorttabs.c:2963
+#: ../src/display_spl.c:83 ../src/misc_conversion.c:62
+msgid "Title"
+msgstr "Título"
+
+#: ../data/gtkpod.glade.h:327
 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."
+"Total\n"
+"(iPod)"
 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."
+"Total\n"
+"(iPod)"
 
-#: 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
+#: ../data/gtkpod.glade.h:329
 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)."
+"Total\n"
+"(local)"
 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')"
+"Total\n"
+"(local)"
 
-#: gtkpod.glade:12276
-msgid "Use 'Multi-Edit' also for title field"
-msgstr "Usar 'Multi-Edición' también para el campo título"
+#: ../data/gtkpod.glade.h:331
+msgid "Tracks"
+msgstr "Pistas"
 
-#: gtkpod.glade:12329
-msgid "<b>Auto-Generated Playlists</b>"
-msgstr "<b>Listas de reproducción generadas automáticamente</b>"
+#: ../data/gtkpod.glade.h:332
+msgid "Tracks Most Often Listened To"
+msgstr "Pistas escuchadas más a menudo"
 
-#: gtkpod.glade:12397
-msgid "Number of tracks in generated playlists:"
+#: ../data/gtkpod.glade.h:333
+msgid ""
+"Tracks can be transferred in the background as soon as they are added to an "
+"iPod repository. Otherwise they will be transferred when ejecting the "
+"contents of the iPod completely unchanged until then."
 msgstr ""
-"Número de pistas en las listas de reproducción generadas automáticamente:"
+"Las pistas pueden ser transferidas en segundo plano nada más ser añadidas al "
+"repositorio del iPod. En caso contrario serán transferidas al expulsar el "
+"iPod, sin hacer modificaciones hasta entonces."
 
-#: gtkpod.glade:12422
+#: ../data/gtkpod.glade.h:334
+msgid "Tracks in Selected Tab _Entry"
+msgstr "Pistas en la pestaña s_eleccionada"
+
+#: ../data/gtkpod.glade.h:335
+msgid "Tracks in Selected _Playlist"
+msgstr "Pistas en la lista de re_producción seleccionada"
+
+#: ../data/gtkpod.glade.h:336
+msgid "Transfer tracks to the iPod in the background"
+msgstr "Transferir pistas al iPod en segundo plano"
+
+#: ../data/gtkpod.glade.h:337
+msgid "Translators"
+msgstr "Traductores"
+
+#: ../data/gtkpod.glade.h:338
 msgid ""
-"Number of tracks in the generated playlists 'Most Often Listened', 'Best "
-"Rated' and 'Most Recently Played'. Choose '0' for 'no limit'."
+"Try to load contents of all connected iPods. For each iPod a separate "
+"repository must be set up."
 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."
+"Intentar cargar los contenidos de todos los iPods. Debe configurarse un "
+"repositorio individual para cada iPod."
 
-#: 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\""
+#: ../data/gtkpod.glade.h:339
+msgid "Update _mserv Data from File"
+msgstr "Actualizar datos de _mserv desde fichero"
 
-#: gtkpod.glade:12497
-msgid "<b>Delete Confirmation</b>"
-msgstr "<b>Confirmación de borrado</b>"
+#: ../data/gtkpod.glade.h:340
+msgid "Update/Sync all playlists now"
+msgstr "Actualizar/sincronizar ahora todas las listas de reproducción."
 
-#: 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"
+#: ../data/gtkpod.glade.h:341
+msgid "Update/Sync playlist now"
+msgstr "Actualizar/sincronizar ahora las listas de reproducción"
 
-#: gtkpod.glade:12580
-msgid "Before removing tracks from the iPod"
-msgstr "Antes de borrar pistas del iPod"
+#: ../data/gtkpod.glade.h:342
+msgid "Upper margin"
+msgstr "Margen superior"
 
-#: gtkpod.glade:12600
-msgid "Before removing tracks from the harddisk"
-msgstr "Antes de borrar pistas del disco duro"
+#: ../data/gtkpod.glade.h:343
+msgid "Use 'Multi-Edit' also for title field"
+msgstr "Usar 'Multi-Edición' también para el campo título"
 
-#: gtkpod.glade:12620
-msgid "Before removing tracks from the local database"
-msgstr "Antes de borrar pistas de la base de datos"
+#: ../data/gtkpod.glade.h:344
+msgid "Use 'Multi-Edit' for tracks selections"
+msgstr "Usar 'Multi-Edición' en la selección de las pistas"
 
-#: 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"
+#: ../data/gtkpod.glade.h:345
+#, fuzzy
+msgid "Use <i><Album>.jpg</i> in the parent directory"
+msgstr "Usar <i>&lt;Álbum&gt;.jpg</i> en el directorio padre"
 
-#: gtkpod.glade:12723
-msgid "<b>Play</b>"
-msgstr "<b>Reproducir</b>"
+#: ../data/gtkpod.glade.h:346
+#, fuzzy
+msgid "Use <i><Album>.jpg</i>, <i><Album>.png</i>..."
+msgstr "Usar <i>&lt;Álbum&gt;.jpg</i>, <i>&lt;Álbum&gt;.png</i>..."
 
-#: gtkpod.glade:12788
-msgid "Command for 'Play now':"
-msgstr "Programa para 'Reproducir':"
+#: ../data/gtkpod.glade.h:347
+msgid "Use <i>folder.jpg</i> as cover art."
+msgstr "Usar <i>folder.jpg</i> como carátula."
 
-#: gtkpod.glade:12816
-msgid "Command for 'Enqueue':"
-msgstr "Programa para 'Encolar':"
+#: ../data/gtkpod.glade.h:348
+msgid "Use <i>folder.jpg</i>, <i>folder.png</i>..."
+msgstr "Usar <i>folder.jpg</i>, <i>folder.png</i>..."
 
-#: gtkpod.glade:12844
+#: ../data/gtkpod.glade.h:349
+msgid "Use mserv database to fill additional information"
+msgstr "Usar la base de datos mserv para rellenar la información adicional"
+
+#: ../data/gtkpod.glade.h:350
 msgid ""
-"For example, 'xmms %s' will clear xmms' current playlist, add the selected "
-"tracks and start playing."
+"Use selected charset (Preferences/'Adding/Updating/ Syncing')\n"
+"for this filename."
 msgstr ""
-"Por ejemplo, 'xmms %s' limpiará la actual lista de reproducción, añadirá las "
-"pistas seleccionadas y comenzará su reproducción."
+"Usar juego de caracteres especificado (Preferencias/'Añadir/Actualizar/"
+"Sincronizar')\n"
+"para este nombre de fichero."
 
-#: gtkpod.glade:12866
+#: ../data/gtkpod.glade.h:352
 msgid ""
-"For example, 'xmms -e %s' will append (enqueue) the selected tracks to xmms' "
-"current playlist."
+"Use selected encoding (on the 'General' page)\n"
+"when writing tags"
 msgstr ""
-"Por ejemplo, 'xmms -e %s' añadirá las pistas seleccionadas al final de la "
-"actual lista de reproducción de xmms."
+"Usar la condificación seleccionada (en la pestaña 'General')\n"
+"al escribir los atributos"
 
-#: gtkpod.glade:12953
-msgid "<b>Volume Normalization</b>"
-msgstr "<b>Normalización del volumen</b>"
+#: ../data/gtkpod.glade.h:354
+msgid "Use selected encoding also when updating or syncing tracks"
+msgstr ""
+"Usar la codificación seleccionada también al actualizar o sincronizar las "
+"pistas"
 
-#: gtkpod.glade:13018
-msgid "'mp3gain' executable:"
-msgstr "programa 'mp3gain':"
+#: ../data/gtkpod.glade.h:355
+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:13046
+#: ../data/gtkpod.glade.h:356
+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."
+
+#: ../data/gtkpod.glade.h:357
+msgid "Username:"
+msgstr "Nombre de usuario:"
+
+#: ../data/gtkpod.glade.h:358
 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."
+"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 ""
-"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."
+"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:13087
-msgid "'aacgain' executable:"
-msgstr "programa 'aacgain':"
+#: ../data/gtkpod.glade.h:359
+msgid "WAV with :"
+msgstr "WAV con:"
 
-#: gtkpod.glade:13115
+#: ../data/gtkpod.glade.h:360
 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."
+"When adding dirs/files, update information of\n"
+"existing tracks with identical filenames"
 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."
+"Actualizar la información de las pistas existentes al añadir directorios/"
+"ficheros con el mismo nombre"
 
-#: gtkpod.glade:13183
-msgid "<b>Calendar/Contacts/Notes</b>"
-msgstr "<b>Calendario/Contactos/Notas</b>"
+#: ../data/gtkpod.glade.h:362
+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:13246
-msgid "Set options for Calendar/Contacts/Notes"
-msgstr "Configurar opciones para Calendario/Contactos/Notas"
+#: ../data/gtkpod.glade.h:363
+msgid "When syncing playlists"
+msgstr "Al sincronizar listas de reproducción"
 
-#: gtkpod.glade:13381
-msgid "Details"
-msgstr "Detalles"
+#: ../data/gtkpod.glade.h:364
+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:13449
-msgid "Cover"
-msgstr "Portada"
+#: ../data/gtkpod.glade.h:365
+msgid "Write ID3 tags to disk when modified in gtkpod"
+msgstr "Escribir los atributos ID3 al disco cuando se modifiquen en gtkpod"
 
-#: gtkpod.glade:13538
-msgid "Set Cover Art"
-msgstr "Configurar portada"
+#: ../data/gtkpod.glade.h:366
+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:13575
+#: ../data/gtkpod.glade.h:367
 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."
+"Write extended information (PC filenames, SHA1 hashes,\n"
+"encoding...). Recommended."
 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."
+"Escribir la información extendida (nombre de fichero en PC,\n"
+"función resumen SHA1, codificación). Recomendado."
 
-#: gtkpod.glade:13621
+#: ../data/gtkpod.glade.h:369
 msgid ""
-"Change all tracks\n"
-"simultaneously"
+"You can also use the table headers, but this allows you to sort according to "
+"a column that is not displayed."
 msgstr ""
-"Cambiar todas las pistas\n"
-"a la vez"
+"También se pueden usar las cabeceras de la tabla,pero esto le permite "
+"ordenar respecto a columnas no mostradas."
 
-#: gtkpod.glade:13713
-msgid "Remove Cover Art"
-msgstr "Borrar portada"
+#: ../data/gtkpod.glade.h:370
+msgid "_About"
+msgstr "_Sobre"
 
-#: gtkpod.glade:14646
-msgid "(Checked)"
-msgstr "(Revisado)"
+#: ../data/gtkpod.glade.h:371
+msgid "_All Tracks"
+msgstr "Tod_as las pistas"
 
-#: gtkpod.glade:15088
-msgid "_Podcasts"
-msgstr "_Podcasts"
+#: ../data/gtkpod.glade.h:372
+msgid "_Arrange Sort Tabs"
+msgstr "_Ordenar pestañas"
 
-#: gtkpod.glade:16127
+#: ../data/gtkpod.glade.h:373
+msgid "_Check iPod's Files"
+msgstr "_Comprobar ficheros del iPod"
+
+#: ../data/gtkpod.glade.h:374
+msgid "_Conversion Log"
+msgstr "Registro de _conversión"
+
+#: ../data/gtkpod.glade.h:375
+msgid "_Create Playlists"
+msgstr "_Crear lista de reproducción"
+
+#: ../data/gtkpod.glade.h:376
+msgid "_Create iPod's Directories"
+msgstr "_Crear estructura de directorios del iPod"
+
+#: ../data/gtkpod.glade.h:377
+msgid "_Delete"
+msgstr "_Borrar"
+
+#: ../data/gtkpod.glade.h:378
+msgid "_Display"
+msgstr "_Mostrar"
+
+#: ../data/gtkpod.glade.h:379
+msgid "_Displayed Tracks"
+msgstr "Pistas mostra_das"
+
+#: ../data/gtkpod.glade.h:380
+msgid "_Edit"
+msgstr "_Editar"
+
+#: ../data/gtkpod.glade.h:381
+msgid "_Encoding (ID3, files):"
+msgstr "Codificación(ID3, fich_eros):"
+
+#: ../data/gtkpod.glade.h:382
+msgid "_Enqueue"
+msgstr "_Encolar"
+
+#: ../data/gtkpod.glade.h:383
+msgid "_Export Tracks from Database"
+msgstr "_Exportar pistas de la base de datos"
+
+#: ../data/gtkpod.glade.h:384
+msgid "_File"
+msgstr "_Fichero"
+
+#: ../data/gtkpod.glade.h:385
+msgid "_Find New"
+msgstr "_Encontrar nuevo"
+
+#: ../data/gtkpod.glade.h:386
+msgid "_General"
+msgstr "_General"
+
+#: ../data/gtkpod.glade.h:387
+msgid "_Help"
+msgstr "_Ayuda"
+
+#: ../data/gtkpod.glade.h:388
+msgid "_Ignore rules"
+msgstr "_Ignorar reglas"
+
+#: ../data/gtkpod.glade.h:389
+msgid "_Info Window"
+msgstr "Ventana de _información"
+
+#: ../data/gtkpod.glade.h:390
+msgid "_Last.FM"
+msgstr "_Last.FM"
+
+#: ../data/gtkpod.glade.h:391
+msgid "_Less Sort Tabs"
+msgstr "M_enos pestañas"
+
+#: ../data/gtkpod.glade.h:392
+msgid "_Limit to"
+msgstr "_Limitar a"
+
+#: ../data/gtkpod.glade.h:393
+msgid "_Load iPod(s)"
+msgstr "Cargar _iPod(s)"
+
+#: ../data/gtkpod.glade.h:394
+msgid "_Local"
+msgstr "_Local"
+
+#: ../data/gtkpod.glade.h:395
+msgid "_M3U"
+msgstr "_M3U"
+
+#: ../data/gtkpod.glade.h:396
+msgid "_More Sort Tabs"
+msgstr "_Mas pestañas"
+
+#: ../data/gtkpod.glade.h:397
+msgid "_Newly Added Tracks"
+msgstr "Pistas añadidas recie_ntemente"
+
+#: ../data/gtkpod.glade.h:398
+msgid "_Normalize Volume"
+msgstr "_Normalizar el volumen"
+
+#: ../data/gtkpod.glade.h:399
+msgid "_Number of sort tabs:"
+msgstr "_Número de pestañas:"
+
+#: ../data/gtkpod.glade.h:400
 msgid "_Other"
 msgstr "_Otro"
 
-#: gtkpod.glade:16425
-msgid "_Undo All"
-msgstr "_Deshacer Todo"
+#: ../data/gtkpod.glade.h:401
+msgid "_PLS"
+msgstr "_PLS"
 
-#: gtkpod.glade:16499
-msgid "_Undo Track"
-msgstr "_Deshacer pista"
+#: ../data/gtkpod.glade.h:402
+msgid "_Play Now"
+msgstr "Re_producir"
 
-#: gtkpod.glade:16546
-msgid "Repository Options"
-msgstr "Opciones de repositorio"
+#: ../data/gtkpod.glade.h:403
+msgid "_Podcasts"
+msgstr "_Podcasts"
 
-#: gtkpod.glade:16667
-msgid "Add new repository/iPod"
-msgstr "Añadir nuevo repositorio/iPod"
+#: ../data/gtkpod.glade.h:404
+msgid "_Prefer Local"
+msgstr "_Preferir local"
 
-#: gtkpod.glade:16736 gtkpod.glade:18163 gtkpod.glade:18659
-msgid "iPod mountpoint:"
-msgstr "Punto de montaje del iPod:"
+#: ../data/gtkpod.glade.h:405
+msgid "_Save Changes"
+msgstr "_Guardar cambios"
 
-#: gtkpod.glade:16764 gtkpod.glade:18135
-msgid "iTunesDB backup:"
-msgstr "Copia de seguridad de iTunesDB:"
+#: ../data/gtkpod.glade.h:406
+msgid "_Save Displayed Track Order"
+msgstr "Guardar orden de pista_s mostrado"
 
-#: gtkpod.glade:16792 gtkpod.glade:18107 gtkpod.glade:18730 gtkpod.glade:18922
-msgid "Model:"
-msgstr "Modelo:"
+#: ../data/gtkpod.glade.h:407
+msgid "_Sorting"
+msgstr "_Ordenar"
 
-#: gtkpod.glade:16820 gtkpod.glade:18079
-msgid "Path:"
-msgstr "Ruta:"
+#: ../data/gtkpod.glade.h:408
+msgid "_Synchronize Playlist with Dir(s)"
+msgstr "_Sincronizar la lista de reproducción con el/los directorio(s)"
 
-#: gtkpod.glade:16848
-msgid "<b>Synchronization</b>"
-msgstr "<b>Sincronización</b>"
+#: ../data/gtkpod.glade.h:409
+msgid "_Toolbar"
+msgstr "Barra de _Herramientas"
 
-#: gtkpod.glade:16906
-msgid "Contacts sync command:"
-msgstr "Programa de sincronización de contactos:"
+#: ../data/gtkpod.glade.h:410
+msgid "_Tools"
+msgstr "_Herramientas"
 
-#: gtkpod.glade:16934
-msgid "Calendar sync command:"
-msgstr "Programa de sincronización del calendario:"
+#: ../data/gtkpod.glade.h:411
+msgid "_Tooltips"
+msgstr "_Sugerencias"
 
-#: gtkpod.glade:16962
-msgid "Notes sync command:"
-msgstr "Programa de sincronización de notas:"
+#: ../data/gtkpod.glade.h:412
+msgid "_Track Info"
+msgstr "_Información de la pista"
 
-#: gtkpod.glade:16991
-msgid "Call automatically when synchronizing iTunesDB"
-msgstr "Llamar automáticamente al sincronizar la base de datos iTunes"
+#: ../data/gtkpod.glade.h:413
+msgid "_Undo All"
+msgstr "_Deshacer Todo"
 
-#: 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."
+#: ../data/gtkpod.glade.h:414
+msgid "_Undo Track"
+msgstr "_Deshacer pista"
 
-#: gtkpod.glade:17294
-msgid "Update/Sync all playlists now"
-msgstr "Actualizar/sincronizar ahora todas las listas de reproducción."
+#: ../data/gtkpod.glade.h:415
+msgid "_Update Tracks from File"
+msgstr "Act_ualizar pistas desde fichero"
 
-#: gtkpod.glade:17314
-msgid "Delete repository"
-msgstr "Borrar repositorio"
+#: ../data/gtkpod.glade.h:416
+msgid "_Video"
+msgstr "_Vídeo"
 
-#: 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"
+#: ../data/gtkpod.glade.h:417
+msgid "_View"
+msgstr "_Ver"
 
-#: gtkpod.glade:17390
-msgid "<b>Repositories</b>"
-msgstr "<b>Repositorios</b>"
+#: ../data/gtkpod.glade.h:418
+msgid "_iPod"
+msgstr "_iPod"
 
-#: gtkpod.glade:17587
+#: ../data/gtkpod.glade.h:420
+#, no-c-format
 msgid ""
-"Directories to sync with are determined from the filenames of the tracks in "
-"the playlist."
+"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 ""
-"Los directorios con los que sincronizar son determinados mediante los "
-"nombres de fichero de las pistas en la lista de reproducción."
+"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: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."
+#: ../data/gtkpod.glade.h:421
+msgid "folder"
+msgstr "folder"
 
-#: gtkpod.glade:17608
-msgid "On startup automatically sync with the following directory"
-msgstr "Sincronizar automáticamente al inicio con el siguiente directorio"
+#: ../data/gtkpod.glade.h:422
+msgid "folder.jpg"
+msgstr "folder.jpg"
 
-#: gtkpod.glade:17702
-msgid "Don't automatically sync on startup"
-msgstr "No sincronizar automáticamente al inicio"
+#: ../data/gtkpod.glade.h:424
+#, no-c-format
+msgid "folder.jpg;%a.jpg"
+msgstr "folder.jpg;%a.jpg"
 
-#: gtkpod.glade:17848
-msgid "On startup automatically update (Live Playlist)"
-msgstr "Actualizar automáticamente en el inicio (listas de reproducción vivas)"
+#: ../data/gtkpod.glade.h:425
+msgid "gtkpod"
+msgstr "gtkpod"
 
-#: gtkpod.glade:17878
-msgid "Update/Sync playlist now"
-msgstr "Actualizar/sincronizar ahora las listas de reproducción"
+#: ../data/gtkpod.glade.h:426
+msgid "gtkpod Info"
+msgstr "Información sobre gtkpod"
 
-#: 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
+#: ../data/gtkpod.glade.h:427
 msgid ""
-"Insert before\n"
-"Insert after"
+"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 ""
-"Insertar antes\n"
-"Insertar después"
+"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:18358
-msgid "Repository type:"
-msgstr "Tipo de repositorio:"
+#: ../data/gtkpod.glade.h:428
+msgid "gtkpod options"
+msgstr "Opciones de gtkpod"
 
-#: gtkpod.glade:18386
+#. These are the items for the 'Repository type' combo in the 'Create Repository' dialog. Keep the three items in order!
+#: ../data/gtkpod.glade.h:430
 msgid ""
 "iPod\n"
 "Local Repository (Standard)\n"
@@ -1889,370 +2024,439 @@
 "Repositorio local (Standard)\n"
 "Repositorio local (Podcasts)\n"
 
-#: gtkpod.glade:18407
-msgid "Repository name:"
-msgstr "Nombre del repositorio:"
+#: ../data/gtkpod.glade.h:434
+msgid "iPod mountpoint:"
+msgstr "Punto de montaje del iPod:"
 
-#: gtkpod.glade:18543 gtkpod.glade:18806
-msgid "Initialize iPod"
-msgstr "Inicializar iPod"
+#: ../data/gtkpod.glade.h:435
+msgid "iTunesDB backup:"
+msgstr "Copia de seguridad de iTunesDB:"
 
-#: 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>"
+#: ../data/gtkpod.glade.h:436
+msgid "label"
+msgstr "etiqueta"
 
-#: src/charset.c:53
+#: ../data/gtkpod.glade.h:437
+msgid "mserv Root:"
+msgstr "Directorio raíz de mserv:"
+
+#: ../data/gtkpod.glade.h:438
+msgid "mserv database lookup will be done for music in this directory."
+msgstr "La base de datos mserv buscará música en este directorio."
+
+#: ../data/gtkpod.glade.h:439 ../src/details.c:1175
+msgid "n/a"
+msgstr "no disponible"
+
+#: ../data/gtkpod.glade.h:440
+msgid "special_sorttab -- Don't translate!"
+msgstr ""
+
+#: ../src/charset.c:53
 msgid "Arabic (IBM-864)"
 msgstr "Árabe (IBM-864)"
 
-#: src/charset.c:54
+#: ../src/charset.c:54
 msgid "Arabic (ISO-8859-6)"
 msgstr "Árabe (ISO-8859-6)"
 
-#: src/charset.c:55
+#: ../src/charset.c:55
 msgid "Arabic (Windows-1256)"
 msgstr "Árabe (Windows-1256)"
 
-#: src/charset.c:56
+#: ../src/charset.c:56
 msgid "Baltic (ISO-8859-13)"
 msgstr "Báltico (ISO-8859-13)"
 
-#: src/charset.c:57
+#: ../src/charset.c:57
 msgid "Baltic (ISO-8859-4)"
 msgstr "Báltico (ISO-8859-4)"
 
-#: src/charset.c:58
+#: ../src/charset.c:58
 msgid "Baltic (Windows-1257)"
 msgstr "Báltico (Windows-1257)"
 
-#: src/charset.c:59
+#: ../src/charset.c:59
 msgid "Celtic (ISO-8859-14)"
 msgstr "Celta (ISO-8859-14)"
 
-#: src/charset.c:60
+#: ../src/charset.c:60
 msgid "Central European (IBM-852)"
 msgstr "Europa Central (IBM-852)"
 
-#: src/charset.c:61
+#: ../src/charset.c:61
 msgid "Central European (ISO-8859-2)"
 msgstr "Europa Central (ISO-8859-2)"
 
-#: src/charset.c:62
+#: ../src/charset.c:62
 msgid "Central European (Windows-1250)"
 msgstr "Europa Central (Windows-1250)"
 
-#: src/charset.c:63
+#: ../src/charset.c:63
 msgid "Chinese Simplified (GB18030)"
 msgstr "Chino Simplificado (GB18030)"
 
-#: src/charset.c:64
+#: ../src/charset.c:64
 msgid "Chinese Simplified (GB2312)"
 msgstr "Chino Simplificado (GB2312)"
 
-#: src/charset.c:65
+#: ../src/charset.c:65
 msgid "Chinese Traditional (Big5)"
 msgstr "Chino Tradicional (Big5)"
 
-#: src/charset.c:66
+#: ../src/charset.c:66
 msgid "Chinese Traditional (Big5-HKSCS)"
 msgstr "Chino Tradicional (Big5-HKSCS)"
 
-#: src/charset.c:67
+#: ../src/charset.c:67
 msgid "Cyrillic (IBM-855)"
 msgstr "Cirílico (IBM-855)"
 
-#: src/charset.c:68
+#: ../src/charset.c:68
 msgid "Cyrillic (ISO-8859-5)"
 msgstr "Cirílico (ISO-8859-5)"
 
-#: src/charset.c:69
+#: ../src/charset.c:69
 msgid "Cyrillic (ISO-IR-111)"
 msgstr "Cirílico (ISO-IR-111)"
 
-#: src/charset.c:70
+#: ../src/charset.c:70
 msgid "Cyrillic (KOI8-R)"
 msgstr "Cirílico (KOI8-R)"
 
-#: src/charset.c:71
+#: ../src/charset.c:71
 msgid "Cyrillic (Windows-1251)"
 msgstr "Cirílico (Windows-1251)"
 
-#: src/charset.c:72
+#: ../src/charset.c:72
 msgid "Cyrillic/Russian (CP-866)"
 msgstr "Cirílico/Ruso (CP-866)"
 
-#: src/charset.c:73
+#: ../src/charset.c:73
 msgid "Cyrillic/Ukrainian (KOI8-U)"
 msgstr "Cirílico/Ucraniano (KOI8-U)"
 
-#: src/charset.c:74
+#: ../src/charset.c:74
 msgid "English (US-ASCII)"
 msgstr "Inglés (US-ASCII)"
 
-#: src/charset.c:75
+#: ../src/charset.c:75
 msgid "Greek (ISO-8859-7)"
 msgstr "Griego (ISO-8859-7)"
 
-#: src/charset.c:76
+#: ../src/charset.c:76
 msgid "Greek (Windows-1253)"
 msgstr "Griego (Windows-1253)"
 
-#: src/charset.c:77
+#: ../src/charset.c:77
 msgid "Hebrew (IBM-862)"
 msgstr "Hebreo (IBM-862)"
 
-#: src/charset.c:78
+#: ../src/charset.c:78
 msgid "Hebrew (Windows-1255)"
 msgstr "Hebreo (Windows-1255)"
 
-#: src/charset.c:79
+#: ../src/charset.c:79
 msgid "Japanese (automatic detection)"
 msgstr "Japonés (automático)"
 
-#: src/charset.c:80
+#: ../src/charset.c:80
 msgid "Japanese (EUC-JP)"
 msgstr "Japonés (EUC-JP)"
 
-#: src/charset.c:81
+#: ../src/charset.c:81
 msgid "Japanese (ISO-2022-JP)"
 msgstr "Japonés (ISO-2022-JP)"
 
-#: src/charset.c:82
+#: ../src/charset.c:82
 msgid "Japanese (Shift_JIS)"
 msgstr "Japonés (Shift_JIS)"
 
-#: src/charset.c:83
+#: ../src/charset.c:83
 msgid "Korean (EUC-KR)"
 msgstr "Coreano (EUC-KR)"
 
-#: src/charset.c:84
+#: ../src/charset.c:84
 msgid "Nordic (ISO-8859-10)"
 msgstr "Nórdico (ISO-8859-10)"
 
-#: src/charset.c:85
+#: ../src/charset.c:85
 msgid "South European (ISO-8859-3)"
 msgstr "Europa del sur (ISO-8859-3)"
 
-#: src/charset.c:86
+#: ../src/charset.c:86
 msgid "Thai (TIS-620)"
 msgstr "Tailandés (TIS-620)"
 
-#: src/charset.c:87
+#: ../src/charset.c:87
 msgid "Turkish (IBM-857)"
 msgstr "Turco (IBM-857)"
 
-#: src/charset.c:88
+#: ../src/charset.c:88
 msgid "Turkish (ISO-8859-9)"
 msgstr "Turco (ISO-8859-9)"
 
-#: src/charset.c:89
+#: ../src/charset.c:89
 msgid "Turkish (Windows-1254)"
 msgstr "Turco (Windows-1254)"
 
-#: src/charset.c:90
+#: ../src/charset.c:90
 msgid "Unicode (UTF-7)"
 msgstr "Unicode (UTF-7)"
 
-#: src/charset.c:91
+#: ../src/charset.c:91
 msgid "Unicode (UTF-8)"
 msgstr "Unicode (UTF-8)"
 
-#: src/charset.c:92
+#: ../src/charset.c:92
 msgid "Unicode (UTF-16BE)"
 msgstr "Unicode (UTF-16BE)"
 
-#: src/charset.c:93
+#: ../src/charset.c:93
 msgid "Unicode (UTF-16LE)"
 msgstr "Unicode (UTF-16LE)"
 
-#: src/charset.c:94
+#: ../src/charset.c:94
 msgid "Unicode (UTF-32BE)"
 msgstr "Unicode (UTF-32BE)"
 
-#: src/charset.c:95
+#: ../src/charset.c:95
 msgid "Unicode (UTF-32LE)"
 msgstr "Unicode (UTF-32LE)"
 
-#: src/charset.c:96
+#: ../src/charset.c:96
 msgid "Vietnamese (VISCII)"
 msgstr "Vietnamita (VISCII)"
 
-#: src/charset.c:97
+#: ../src/charset.c:97
 msgid "Vietnamese (Windows-1258)"
 msgstr "Vietnamita (Windows-1258)"
 
-#: src/charset.c:98
+#: ../src/charset.c:98
 msgid "Visual Hebrew (ISO-8859-8)"
 msgstr "Hebreo Visual (ISO-8859-8)"
 
-#: src/charset.c:99
+#: ../src/charset.c:99
 msgid "Western (IBM-850)"
 msgstr "Europa occidental (IBM-850)"
 
-#: src/charset.c:100
+#: ../src/charset.c:100
 msgid "Western (ISO-8859-1)"
 msgstr "Europa occidental (ISO-8859-1)"
 
-#: src/charset.c:101
+#: ../src/charset.c:101
 msgid "Western (ISO-8859-15)"
 msgstr "Europa occidental (ISO-8859-15)"
 
-#: src/charset.c:102
+#: ../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
+#: ../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
+#: ../src/clientserver.c:214
 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
+#: ../src/confirmation.c:377
 msgid "Confirmation Dialogue"
 msgstr "Diálogo de confirmación"
 
-#: src/context_menus.c:367 src/tools.c:852
+#: ../src/context_menus.c:359
+#, c-format
+msgid "Copied \"%s\" playlist to %s"
+msgstr "Copiada la lista de reproducción \"%s\" a %s"
+
+#: ../src/context_menus.c:398
+#, c-format
+msgid "Copied %d track to '%s'"
+msgid_plural "Copied %d tracks to '%s'"
+msgstr[0] "Copiada %d  pista a '%s'"
+msgstr[1] "Copiadas %d pistas a '%s'"
+
+#: ../src/context_menus.c:426
+#, c-format
+msgid "Copied '%s' playlist to '%s' in '%s'"
+msgstr "Copiada la lista de reproducción '%s' a '%s' en '%s'"
+
+#: ../src/context_menus.c:459
+#, c-format
+msgid "Copied %d track to '%s' in '%s'"
+msgid_plural "Copied %d tracks to %s in '%s'"
+msgstr[0] "Copiada %d pista a '%s' en '%s'"
+msgstr[1] "Copiadas %d pistas a '%s' en '%s'"
+
+#: ../src/context_menus.c:619 ../src/tools.c:854
 msgid "Play Now"
 msgstr "Reproducir"
 
-#: src/context_menus.c:373 src/tools.c:865
+#: ../src/context_menus.c:625 ../src/tools.c:867
 msgid "Enqueue"
 msgstr "Encolar"
 
-#: src/context_menus.c:379
+#: ../src/context_menus.c:631
 msgid "Copy Tracks to Filesystem"
 msgstr "Copiar pistas al sistema de ficheros"
 
-#: src/context_menus.c:386 src/file_export.c:1081
+#: ../src/context_menus.c:638 ../src/file_export.c:1085
 msgid "Create Playlist File"
 msgstr "Crear lista de reproducción"
 
-#: src/context_menus.c:393
+#: ../src/context_menus.c:645
 msgid "Create new Playlist"
 msgstr "Crear nueva lista de reproducción"
 
-#: src/context_menus.c:400
+#: ../src/context_menus.c:652
 msgid "Update Tracks from File"
 msgstr "Actualizar pistas desde fichero"
 
-#: src/context_menus.c:414
+#: ../src/context_menus.c:666
 msgid "Sync Playlist with Dir(s)"
 msgstr "Sincronizar la lista de reproducción con el/los directorio(s)"
 
-#: src/context_menus.c:424
+#: ../src/context_menus.c:676
 msgid "Remove All Tracks from iPod"
 msgstr "Borrar todas las pistas del iPod"
 
-#: src/context_menus.c:442
+#: ../src/context_menus.c:694
 msgid "Remove All Podcasts from iPod"
 msgstr "Borrar todos los podcasts del iPod"
 
-#: src/context_menus.c:457
+#: ../src/context_menus.c:709
 msgid "Delete Including Tracks"
 msgstr "Borrar incluyendo pistas"
 
-#: src/context_menus.c:465
+#: ../src/context_menus.c:717
 msgid "Delete But Keep Tracks"
 msgstr "Borrar manteniendo las pistas"
 
-#: src/context_menus.c:473
+#: ../src/context_menus.c:725
 msgid "Edit iPod Properties"
 msgstr "Editar las propiedades del iPod"
 
-#: src/context_menus.c:493
+#: ../src/context_menus.c:732
+msgid "Edit Repository Properties"
+msgstr "Editar las propiedades del repositorio"
+
+#: ../src/context_menus.c:739
+msgid "Edit Playlist Properties"
+msgstr "Editar propiedades de la lista de reproducción"
+
+#: ../src/context_menus.c:767
+msgid "View Full Size Artwork"
+msgstr "Ver carátula a tamaño completo"
+
+#: ../src/context_menus.c:774
+msgid "Select Cover From File"
+msgstr "Seleccionar carátula desde fichero"
+
+#: ../src/context_menus.c:781
+msgid "Find Cover on Web"
+msgstr "Encontrar carátula en la web"
+
+#: ../src/context_menus.c:794
 msgid "Load iPod"
 msgstr "Cargar iPod"
 
-#: src/context_menus.c:500
+#: ../src/context_menus.c:801
 msgid "Eject iPod"
 msgstr "Expulsar iPod"
 
-#: src/context_menus.c:517
+#: ../src/context_menus.c:818
 msgid "Remove All Tracks from Database"
 msgstr "Borrar todas las pistas de la base de datos"
 
-#: src/context_menus.c:532
+#: ../src/context_menus.c:833
 msgid "Delete Including Tracks (Harddisk)"
 msgstr "Borrar incluyendo pistas (disco duro)"
 
-#: src/context_menus.c:540
+#: ../src/context_menus.c:841
 msgid "Delete Including Tracks (Database)"
 msgstr "Borrar incluyendo pistas (base de datos)"
 
-#: src/context_menus.c:548
+#: ../src/context_menus.c:849
 msgid "Delete From iPod"
 msgstr "Borrar del iPod"
 
-#: src/context_menus.c:556
+#: ../src/context_menus.c:857
 msgid "Delete From Playlist"
 msgstr "Borrar de la lista de reproducción"
 
-#: src/context_menus.c:564
+#: ../src/context_menus.c:865
 msgid "Delete From Harddisk"
 msgstr "Borrar del disco duro"
 
-#: src/context_menus.c:572
+#: ../src/context_menus.c:873
 msgid "Delete From Database"
 msgstr "Borrar de la base de datos"
 
-#: src/context_menus.c:580
+#: ../src/context_menus.c:881
 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/context_menus.c:949 ../src/context_menus.c:998
+msgid "Copy selected playlist to..."
+msgstr "Copiar la lista de reproducción seleccionada a..."
 
-#: src/date_parser.l:269
+#: ../src/context_menus.c:1051
+msgid "Copy selected track(s) to..."
+msgstr "Copiar las pistas seleccionadas a..."
+
+#: ../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
+#: ../src/details.c:700
+#, c-format
+msgid "%s (image data corrupted or unreadable)"
+msgstr "%s (imagen corrupta o no legible)"
+
+#: ../src/details.c:1246
 msgid "<b>n/a</b>"
 msgstr "<b>no disponible</b>"
 
-#: src/display.c:891
+#: ../src/display.c:647
 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
+#: ../src/display.c:654 ../src/misc_confirm.c:435 ../src/misc_track.c:2059
 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
+#: ../src/display.c:813 ../src/display.c:1133 ../src/display.c:1189
+#: ../src/display.c:1243 ../src/display.c:1298 ../src/display.c:1559
 #, 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
+#: ../src/display.c:852
 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
+#: ../src/display.c:860
 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
+#: ../src/display.c:882
 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
+#: ../src/display.c:912
 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
+#: ../src/display.c:939 ../src/display.c:977
 #, c-format
 msgid ""
 "iPod at '%s' is not loaded.\n"
@@ -2261,72 +2465,78 @@
 "El iPod de '%s' no está cargado.\n"
 "Por favor, cargar primero."
 
-#: src/display.c:1265 src/display.c:1292
+#: ../src/display.c:1014 ../src/display.c:1041
 msgid "Update selected entry of which sort tab?"
 msgstr "¿De qué pestaña desea actualizar la entrada seleccionada?"
 
-#: src/display.c:1378
+#: ../src/display.c:1127
 msgid "Export selected entry of which sort tab?"
 msgstr "¿De qué pestaña desea exportar su selección?"
 
-#: src/display.c:1434
+#: ../src/display.c:1183
 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
+#: ../src/display.c:1237
 msgid "Play tracks in selected entry of which sort tab?"
 msgstr "¿De qué pestaña desea reproducir las pistas seleccionadas?"
 
-#: src/display.c:1543
+#: ../src/display.c:1292
 msgid "Enqueue tracks in selected entry of which sort tab?"
 msgstr "¿De qué pestaña desea encolar las pistas seleccionadas?"
 
-#: src/display.c:1800
+#: ../src/display.c:1549
 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
+#: ../src/display_coverart.c:1714
+msgid "Failed to remove the album from the album hash store."
+msgstr "Fallo al borrar el álbum de la lista de resúmenes de álbumes."
+
+#: ../src/display_itdb.c:376
+#, c-format
 msgid "Failed to set cover art: '%s'\n"
-msgstr "Error al configurar la carátula: '%s'"
+msgstr "Error al configurar la carátula: '%s'\n"
 
-#: 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
+#: ../src/display_itdb.c:851 ../src/display_itdb.c:984
 msgid "Local"
 msgstr "Local"
 
 #. add podcast playlist
-#: src/display_itdb.c:852 src/display_itdb.c:963 src/display_itdb.c:991
+#: ../src/display_itdb.c:859 ../src/display_itdb.c:982
+#: ../src/display_itdb.c:1010
 msgid "Podcasts"
 msgstr "Podcasts"
 
-#: src/display_itdb.c:1050
+#: ../src/display_itdb.c:868 ../src/display_itdb.c:986
+#: ../src/repository.c:1186
+msgid "iPod"
+msgstr "iPod"
+
+#: ../src/display_itdb.c:1069
 #, 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
+#: ../src/display_playlists.c:500 ../src/display_playlists.c:542
 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
+#: ../src/display_playlists.c:569 ../src/display_tracks.c:286
 #, 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
+#: ../src/display_playlists.c:849 ../src/display_playlists.c:861
 msgid "Can't reorder sorted treeview."
 msgstr "No se puede reordenar una vista en árbol ya ordenada"
 
-#: src/display_playlists.c:944
+#: ../src/display_playlists.c:938
 #, c-format
 msgid ""
 "This DND type (%d) is not (yet) supported. If you feel implementing this "
@@ -2336,350 +2546,390 @@
 "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
+#: ../src/display_sorttabs.c:473
 msgid "'Played' condition ignored because of error."
 msgstr "Ignorada la condición de «reproducido» debido a un error"
 
-#: src/display_sorttabs.c:459
+#: ../src/display_sorttabs.c:476
 msgid "'Modified' condition ignored because of error."
 msgstr "Ignorada la condición de «modificado» debido a un error"
 
-#: src/display_sorttabs.c:462
+#: ../src/display_sorttabs.c:479
 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
+#: ../src/display_sorttabs.c:1563 ../src/misc_conversion.c:59
 msgid "All"
 msgstr "Todo"
 
-#: src/display_sorttabs.c:1608
+#: ../src/display_sorttabs.c:1589
 msgid "Compilations"
 msgstr "Compilaciones"
 
-#: src/display_sorttabs.c:2951
+#: ../src/display_sorttabs.c:2960
 msgid "Comp."
 msgstr "Comp."
 
-#: src/display_sorttabs.c:2960
+#: ../src/display_sorttabs.c:2966 ../src/display_spl.c:88
+#: ../src/display_tracks.c:2002 ../src/misc_conversion.c:84
+msgid "Year"
+msgstr "Año"
+
+#: ../src/display_sorttabs.c:2969
 msgid "Special"
 msgstr "Especial"
 
-#: src/display_sorttabs.c:3216
+#: ../src/display_sorttabs.c:3230
 msgid "Last Played"
 msgstr "Última reproducción"
 
-#: src/display_sorttabs.c:3217
+#: ../src/display_sorttabs.c:3231
 msgid "Last Modified"
 msgstr "Última modificación"
 
-#: src/display_spl.c:64
+#: ../src/display_spl.c:64
 msgid "days"
 msgstr "días"
 
-#: src/display_spl.c:65
+#: ../src/display_spl.c:65
 msgid "weeks"
 msgstr "semanas"
 
-#: src/display_spl.c:66
+#: ../src/display_spl.c:66
 msgid "months"
 msgstr "meses"
 
-#: src/display_spl.c:73
+#: ../src/display_spl.c:73
 msgid "kbps"
 msgstr "kbps"
 
-#: src/display_spl.c:74
+#: ../src/display_spl.c:74
 msgid "Hz"
 msgstr "Hz"
 
-#: src/display_spl.c:75 src/display_spl.c:160 src/info.c:777
+#: ../src/display_spl.c:75 ../src/display_spl.c:179 ../src/info.c:777
 msgid "MB"
 msgstr "MB"
 
-#: src/display_spl.c:76
+#: ../src/display_spl.c:76
 msgid "secs"
 msgstr "segundos"
 
-#: src/display_spl.c:86 src/misc_conversion.c:75
+#: ../src/display_spl.c:86 ../src/misc_conversion.c:74
 msgid "Bitrate"
-msgstr "ratio de bits"
+msgstr "Ratio de bits"
 
 #. 15
-#: src/display_spl.c:87 src/misc_conversion.c:76
+#: ../src/display_spl.c:87 ../src/misc_conversion.c:75
 msgid "Samplerate"
-msgstr "ratio de muestras"
+msgstr "Ratio de muestras"
 
-#: src/display_spl.c:90
+#: ../src/display_spl.c:90
 msgid "Kind"
 msgstr "Tipo"
 
-#: src/display_spl.c:91 src/misc_conversion.c:82
+#: ../src/display_spl.c:91 ../src/misc_conversion.c:81
 msgid "Date modified"
 msgstr "Fecha de modificación"
 
-#: src/display_spl.c:92
+#: ../src/display_spl.c:92
 msgid "Track number"
 msgstr "Número de pista"
 
-#: src/display_spl.c:93
+#: ../src/display_spl.c:93
 msgid "Size"
 msgstr "Tamaño"
 
-#: src/display_spl.c:95 src/misc_conversion.c:65
+#: ../src/display_spl.c:94 ../src/display_tracks.c:1984
+msgid "Time"
+msgstr "Duración"
+
+#: ../src/display_spl.c:95 ../src/misc_conversion.c:64
 msgid "Comment"
 msgstr "Comentario"
 
-#: src/display_spl.c:96 src/misc_conversion.c:80
+#: ../src/display_spl.c:96 ../src/misc_conversion.c:79
 msgid "Date added"
-msgstr "Añadida fecha"
+msgstr "Fecha de adición"
 
-#: src/display_spl.c:99
+#: ../src/display_spl.c:99
 msgid "Last played"
 msgstr "Última reproducción"
 
-#: src/display_spl.c:100
+#: ../src/display_spl.c:100
 msgid "Disc number"
 msgstr "Número de disco"
 
-#: src/display_spl.c:102 src/misc_conversion.c:88
+#: ../src/display_spl.c:102 ../src/misc_conversion.c:87
 msgid "Compilation"
 msgstr "Compilación"
 
-#: src/display_spl.c:103 src/misc_conversion.c:77
+#: ../src/display_spl.c:103 ../src/misc_conversion.c:76
 msgid "BPM"
 msgstr "BPM"
 
-#: src/display_spl.c:104 src/misc_conversion.c:87
+#: ../src/display_spl.c:104 ../src/misc_conversion.c:86
 msgid "Grouping"
 msgstr "Agrupando"
 
-#: src/display_spl.c:111
+#: ../src/display_spl.c:106
+#, fuzzy
+msgid "Video Kind"
+msgstr "Video Kind"
+
+#: ../src/display_spl.c:107 ../src/display_spl.c:210 ../src/display_spl.c:219
+#: ../src/misc_conversion.c:101
+#, fuzzy
+msgid "TV Show"
+msgstr "TV Show"
+
+#: ../src/display_spl.c:108
+msgid "Season number"
+msgstr "Número de temporada"
+
+#: ../src/display_spl.c:109
+msgid "Skip count"
+msgstr "Ignorar contador"
+
+#: ../src/display_spl.c:110
+msgid "Last skipped"
+msgstr "Última vez ignorada"
+
+#: ../src/display_spl.c:111
+msgid "Album artist"
+msgstr "Artista del álbum"
+
+#: ../src/display_spl.c:117
 msgid "contains"
 msgstr "contiene"
 
-#: src/display_spl.c:112
+#: ../src/display_spl.c:118
 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
+#: ../src/display_spl.c:119 ../src/display_spl.c:128 ../src/display_spl.c:138
+#: ../src/display_spl.c:157 ../src/display_spl.c:164
 msgid "is"
 msgstr "es"
 
-#: src/display_spl.c:114 src/display_spl.c:123 src/display_spl.c:133
-#: src/display_spl.c:152
+#: ../src/display_spl.c:120 ../src/display_spl.c:129 ../src/display_spl.c:139
+#: ../src/display_spl.c:158 ../src/display_spl.c:165
 msgid "is not"
 msgstr "no es"
 
-#: src/display_spl.c:115
+#: ../src/display_spl.c:121
 msgid "starts with"
 msgstr "empieza con"
 
-#: src/display_spl.c:116
+#: ../src/display_spl.c:122
 msgid "ends with"
 msgstr "termina con"
 
-#: src/display_spl.c:124
+#: ../src/display_spl.c:130
 msgid "is greater than"
 msgstr "es mayor que"
 
-#: src/display_spl.c:125
+#: ../src/display_spl.c:131
 msgid "is less than"
 msgstr "es menor que"
 
-#: src/display_spl.c:126 src/display_spl.c:138
+#: ../src/display_spl.c:132 ../src/display_spl.c:144
 msgid "is in the range"
 msgstr "está en el rango"
 
-#: src/display_spl.c:134
+#: ../src/display_spl.c:140
 msgid "is after"
 msgstr "está después"
 
-#: src/display_spl.c:135
+#: ../src/display_spl.c:141
 msgid "is before"
 msgstr "está antes"
 
-#: src/display_spl.c:136
+#: ../src/display_spl.c:142
 msgid "in the last"
 msgstr "al final"
 
-#: src/display_spl.c:137
+#: ../src/display_spl.c:143
 msgid "not in the last"
 msgstr "no al final"
 
-#: src/display_spl.c:144
+#: ../src/display_spl.c:150
 msgid "is set"
 msgstr "configurado"
 
-#: src/display_spl.c:145
+#: ../src/display_spl.c:151
 msgid "is not set"
 msgstr "no configurado"
 
-#: src/display_spl.c:159
+#: ../src/display_spl.c:171
+msgid "Not supported"
+msgstr "No soportado"
+
+#: ../src/display_spl.c:178
 msgid "minutes"
 msgstr "minutos"
 
-#: src/display_spl.c:161
+#: ../src/display_spl.c:180
 msgid "tracks"
 msgstr "pistas"
 
-#: src/display_spl.c:162
+#: ../src/display_spl.c:181
 msgid "hours"
 msgstr "horas"
 
-#: src/display_spl.c:163 src/info.c:777
+#: ../src/display_spl.c:182 ../src/info.c:777
 msgid "GB"
 msgstr "GiB"
 
-#: src/display_spl.c:170
+#: ../src/display_spl.c:189
 msgid "random order"
 msgstr "orden aleatorio"
 
-#: src/display_spl.c:171
+#: ../src/display_spl.c:190
 msgid "title"
 msgstr "título"
 
-#: src/display_spl.c:172
+#: ../src/display_spl.c:191
 msgid "album"
 msgstr "álbum"
 
-#: src/display_spl.c:173
+#: ../src/display_spl.c:192
 msgid "artist"
 msgstr "artista"
 
-#: src/display_spl.c:174
+#: ../src/display_spl.c:193
 msgid "genre"
 msgstr "género"
 
-#: src/display_spl.c:175
+#: ../src/display_spl.c:194
 msgid "most recently added"
 msgstr "más recientemente añadido"
 
-#: src/display_spl.c:176
+#: ../src/display_spl.c:195
 msgid "least recently added"
 msgstr "menos recientemente añadido"
 
-#: src/display_spl.c:177
+#: ../src/display_spl.c:196
 msgid "most often played"
 msgstr "más frecuentemente reproducido"
 
-#: src/display_spl.c:178
+#: ../src/display_spl.c:197
 msgid "least often played"
 msgstr "menos frecuentemente reproducido"
 
-#: src/display_spl.c:179
+#: ../src/display_spl.c:198
 msgid "most recently played"
 msgstr "más recientemente reproducido"
 
-#: src/display_spl.c:180
+#: ../src/display_spl.c:199
 msgid "least recently played"
 msgstr "menos recientemente reproducido"
 
-#: src/display_spl.c:181
+#: ../src/display_spl.c:200
 msgid "highest rating"
 msgstr "mayor puntuación"
 
-#: src/display_spl.c:182
+#: ../src/display_spl.c:201
 msgid "lowest rating"
 msgstr "menor puntuación"
 
-#: src/display_spl.c:1047 src/display_spl.c:1062
+#: ../src/display_spl.c:208 ../src/display_spl.c:217
+msgid "Movie"
+msgstr "Película"
+
+#: ../src/display_spl.c:209 ../src/display_spl.c:218
+msgid "Music Video"
+msgstr "Vídeo musical"
+
+#: ../src/display_spl.c:1162 ../src/display_spl.c:1177
 msgid "to"
 msgstr "a"
 
-#: src/display_spl.c:1279
+#: ../src/display_spl.c:1455
 msgid "-"
 msgstr "-"
 
-#: src/display_spl.c:1294
+#: ../src/display_spl.c:1470
 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
+#: ../src/display_spl.c:1689 ../src/misc_playlist.c:66
+#: ../src/misc_playlist.c:68 ../src/misc_playlist.c:93
+#: ../src/misc_playlist.c:95 ../src/misc_playlist.c:428
+#: ../src/misc_playlist.c:430
 msgid "New Playlist"
 msgstr "Nueva lista de reproducción"
 
-#: src/file.c:230
+#: ../src/display_tracks.c:281
 #, c-format
+msgid "Moved one track"
+msgid_plural "Moved %d tracks"
+msgstr[0] "Movida una pista"
+msgstr[1] "Movidas %d pistas"
+
+#: ../src/display_tracks.c:1717
+#, 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_tracks.c:1962
+msgid "Rtng"
+msgstr "Puntuación"
+
+#: ../src/display_tracks.c:1965
+msgid "#"
+msgstr "#"
+
+#: ../src/display_tracks.c:1968
+msgid "CD"
+msgstr "CD"
+
+#: ../src/display_tracks.c:1971
+msgid "ID"
+msgstr "ID"
+
+#: ../src/display_tracks.c:1974
+msgid "Trnsfrd"
+msgstr "Transferido"
+
+#: ../src/display_tracks.c:1978
+msgid "Cmpl"
+msgstr "Cmpl"
+
+#: ../src/display_tracks.c:1987
+msgid "Plycnt"
+msgstr "Contador"
+
+#: ../src/display_tracks.c:1999
+msgid "Released"
+msgstr "Liberado"
+
+#: ../src/display_tracks.c:2005
+msgid "Vol."
+msgstr "Vol."
+
+#: ../src/display_tracks.c:2008
+msgid "Sndchk."
+msgstr "Control de sonido"
+
+#: ../src/file.c:236
+#, 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
+#: ../src/file.c:266
 #, c-format
 msgid ""
 "'%s' is a not a known playlist file.\n"
@@ -2688,7 +2938,7 @@
 "'%s' no es una lista de reproducción conocida.\n"
 "\n"
 
-#: src/file.c:275
+#: ../src/file.c:283
 #, c-format
 msgid ""
 "Cannot open '%s' for reading.\n"
@@ -2697,57 +2947,57 @@
 "No se puede leer '%s'.\n"
 "\n"
 
-#: src/file.c:359
+#: ../src/file.c:369
 #, c-format
 msgid "Skipping '%s' because it is a directory.\n"
 msgstr "Ignorando '%s' porque es un directorio.\n"
 
-#: src/file.c:364
+#: ../src/file.c:374
 #, 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
+#: ../src/file.c:629
 #, c-format
 msgid "Unknown token '%s' in template '%s'\n"
 msgstr "Testigo '%s' desconocido en la plantilla '%s'\n"
 
-#: src/file.c:871
+#: ../src/file.c:890
 #, c-format
 msgid "Local filename not valid (%s)"
 msgstr "Nombre de fichero local no válido (%s)"
 
-#: src/file.c:930
+#: ../src/file.c:949
 #, 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
+#: ../src/file.c:958
 #, 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
+#: ../src/file.c:966
 #, 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
+#: ../src/file.c:1090
 #, 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
+#: ../src/file.c:1169
 #, 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
+#: ../src/file.c:1262
 #, c-format
 msgid ""
 "The following track could not be processed (filetype is known but analysis "
@@ -2756,33 +3006,33 @@
 "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
+#: ../src/file.c:1292 ../src/file.c:1346
 msgid "Nothing to update"
 msgstr "Nada que actualizar"
 
-#: src/file.c:1262
+#: ../src/file.c:1313
 #, c-format
 msgid "Updating %s"
 msgstr "Actualizando %s"
 
-#: src/file.c:1276
+#: ../src/file.c:1327
 msgid "Updated selected tracks with info from file."
 msgstr "Actualizadas las pistas seleccionadas con la información del fichero."
 
-#: src/file.c:1310
+#: ../src/file.c:1361
 #, c-format
 msgid "Retrieving mserv data %s"
 msgstr "Recibiendo datos mserv %s"
 
-#: src/file.c:1315
+#: ../src/file.c:1366
 msgid "no filename available"
 msgstr "Ningún nombre de fichero disponible"
 
-#: src/file.c:1320
+#: ../src/file.c:1371
 msgid "Updated selected tracks with data from mserv."
 msgstr "Actualizadas las pistas seleccionadas con la información de mserv"
 
-#: src/file.c:1341
+#: ../src/file.c:1392
 #, c-format
 msgid "The following track could not be updated"
 msgid_plural "The following %d tracks could not be updated"
@@ -2791,11 +3041,11 @@
 
 #. gint id,
 #. gboolean modal,
-#: src/file.c:1347
+#: ../src/file.c:1398
 msgid "Failed Track Update"
 msgstr "Error al actualizar la pista"
 
-#: src/file.c:1405
+#: ../src/file.c:1456
 #, c-format
 msgid "The following track has been updated"
 msgid_plural "The following %d tracks have been updated"
@@ -2804,11 +3054,11 @@
 
 #. gint id,
 #. gboolean modal,
-#: src/file.c:1411
+#: ../src/file.c:1462
 msgid "Successful Track Update"
 msgstr "Actualización exitosa de la pista"
 
-#: src/file.c:1470
+#: ../src/file.c:1521
 #, c-format
 msgid "No mserv information could be retrieved for the following track"
 msgid_plural ""
@@ -2819,49 +3069,49 @@
 
 #. gint id,
 #. gboolean modal,
-#: src/file.c:1476
+#: ../src/file.c:1527
 msgid "mserv data retrieval problem"
 msgstr "Problema al recoger datos mserv"
 
-#: src/file.c:1565
+#: ../src/file.c:1616
 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
+#: ../src/file.c:1622
 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
+#: ../src/file.c:1626 ../src/file.c:1644
 msgid "no local filename available"
 msgstr "No se encuentra disponible el nombre de fichero local"
 
-#: src/file.c:1583
+#: ../src/file.c:1634
 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
+#: ../src/file.c:1640
 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
+#: ../src/file.c:1728
 msgid "update failed (format no supported?)"
 msgstr "Error al actualizar (¿formato no soportado?)"
 
-#: src/file.c:1734
+#: ../src/file.c:1813
 #, c-format
 msgid "Processing '%s'..."
 msgstr "Procesando '%s'..."
 
-#: src/file.c:1740
+#: ../src/file.c:1819
 #, c-format
 msgid "File skipped. match exclude masks: '%s'\n"
-msgstr ""
+msgstr "Fichero ignorado. Concuerda con máscaras de exclusión: '%s'\n"
 
-#: src/file.c:1852 src/misc_track.c:1299 src/misc_track.c:1355
+#: ../src/file.c:1939 ../src/misc_track.c:1694 ../src/misc_track.c:1799
 #, c-format
 msgid ""
 "Podcast already present: '%s'\n"
@@ -2870,7 +3120,7 @@
 "Podcast ya almacenado: '%s'\n"
 "\n"
 
-#: src/file.c:1913
+#: ../src/file.c:2004
 #, c-format
 msgid ""
 "Writing to video files not yet supported (%s).\n"
@@ -2879,36 +3129,35 @@
 "Escribir a ficheros de video no está todavía soportado (%s). \n"
 "\n"
 
-#: src/file.c:1965 src/file.c:1979
+#: ../src/file.c:2056 ../src/file.c:2070
 #, 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
+#: ../src/file.c:2172
 #, 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
+#: ../src/file.c:2179
 #, 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
+#: ../src/file.c:2196 ../src/file.c:2205 ../src/file.c:2216 ../src/file.c:2226
 #, 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
+#: ../src/file.c:2255
 msgid "Remove offline playcounts?"
 msgstr "¿Borrar cuenta reproducciones no en linea?"
 
 #. title
-#: src/file.c:2160
+#: ../src/file.c:2256
 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."
@@ -2917,12 +3166,12 @@
 "la base de datos de iTunes. Pulsa «Aceptar» para borrarlas del contador de "
 "modo desconectado, o «Cancelar» para mantenerlas."
 
-#: src/file.c:2177
+#: ../src/file.c:2273
 #, c-format
 msgid "Error writing to '%s'.\n"
 msgstr "Error al escribir a '%s'.\n"
 
-#: src/file.c:2232 src/tools.c:269
+#: ../src/file.c:2330 ../src/tools.c:271
 #, c-format
 msgid ""
 "Normalization failed: file type not supported (%s).\n"
@@ -2931,7 +3180,7 @@
 "Error al normalizar: tipo de fichero no soportado (%s)\n"
 "\n"
 
-#: src/file.c:2248 src/tools.c:286
+#: ../src/file.c:2346 ../src/tools.c:288
 #, c-format
 msgid ""
 "Normalization failed: file not available (%s).\n"
@@ -2940,89 +3189,220 @@
 "Error al normalizar: fichero no disponible (%s).\n"
 "\n"
 
-#: src/file_export.c:182
+#: ../src/file_convert.c:316
+msgid "Summary status of conversion processes"
+msgstr "Resumen del estado de los procesos de conversión"
+
+#: ../src/file_convert.c:564
+msgid "active"
+msgstr "activo"
+
+#: ../src/file_convert.c:569
+msgid "inactive"
+msgstr "inactivo"
+
+#: ../src/file_convert.c:580
 #, c-format
+msgid "Active threads: %d. Scheduled tracks: %d."
+msgstr "Hilos activos: %d. Pistas planificadas: %d."
+
+#: ../src/file_convert.c:1061
+#, c-format
+msgid "Original filename not available for '%s.'\n"
+msgstr "Nombre de fichero original no disponible para '%s'.\n"
+
+#: ../src/file_convert.c:1076
+#, c-format
+msgid "Filename '%s' is no longer valid for '%s'.\n"
+msgstr "El nombre de fichero '%s' ha dejado de ser válido para '%s'.\n"
+
+#: ../src/file_convert.c:1127
+msgid "Ogg Vorbis"
+msgstr "Ogg Vorbis"
+
+#: ../src/file_convert.c:1133
+msgid "FLAC"
+msgstr "FLAC"
+
+#: ../src/file_convert.c:1188
+#, c-format
+msgid ""
+"Files of type '%s' are not supported by the iPod. Please go to the "
+"Preferences to set up and turn on a suitable conversion script for '%s'.\n"
+"\n"
+msgstr ""
+"Los ficheros del tipo '%s' no están soportados por el iPod. Por favor, vaya "
+"a preferencias para especificar un guión de conversión adecuado para '%s'.\n"
+
+#: ../src/file_convert.c:1274
+msgid "No information available"
+msgstr "Información no disponible"
+
+#: ../src/file_convert.c:1313
+#, c-format
+msgid "Could not create '%s'. Filetype conversion will not work.\n"
+msgstr ""
+"No se ha podido crear '%s'. La conversión de tipo de fichero no funcionará.\n"
+
+#: ../src/file_convert.c:1631 ../src/file_convert.c:3040
+#, c-format
+msgid ""
+"Transfer of '%s' failed. %s\n"
+"\n"
+msgstr ""
+"Ha fallado la transferencia de '%s'. %s\n"
+"\n"
+
+#: ../src/file_convert.c:2035 ../src/file_convert.c:2313
+#, c-format
+msgid ""
+"Conversion of '%s' failed: '%s'.\n"
+"\n"
+msgstr ""
+"Ha fallado la conversión de '%s': '%s'\n"
+"\n"
+
+#: ../src/file_convert.c:2050
+#, c-format
+msgid ""
+"Conversion of '%s' failed: '%s %s' returned exit status %d.\n"
+"\n"
+msgstr ""
+"Ha fallado la conversión de '%s': '%s %s' ha devuelto el estado de salida %"
+"d.\n"
+"\n"
+
+#: ../src/file_convert.c:2079
+#, c-format
+msgid ""
+"Conversion of '%s' failed: '%s %s' did not return filename extension as "
+"expected.\n"
+"\n"
+msgstr ""
+"Ha fallado la conversión de '%s': '%s %s' no ha devuelto la extensión de "
+"fichero como era esperado.\n"
+"\n"
+
+#: ../src/file_convert.c:2155
+#, c-format
+msgid ""
+"Covnersion of '%s' failed: Could not access original file '%s' (%s).\n"
+"\n"
+msgstr ""
+"Ha fallado la conversión de '%s': No se ha podido acceder al fichero "
+"original '%s' (%s).\n"
+"\n"
+
+#: ../src/file_convert.c:2210
+#, c-format
+msgid ""
+"Conversion of '%s' failed: Could not create directory '%s'.\n"
+"\n"
+msgstr ""
+"Ha fallado la extensión de '%s': No se ha podido crear el directorio '%s'.\n"
+"\n"
+
+#: ../src/file_convert.c:2344
+#, c-format
+msgid ""
+"Conversion of '%s' failed: '%s' returned exit status %d.\n"
+"\n"
+msgstr ""
+"Ha fallado la conversión de '%s': %s ha devuelto el estado de salida %d.\n"
+"\n"
+
+#: ../src/file_convert.c:2383
+#, c-format
+msgid ""
+"Conversion of '%s' failed: could not stat the converted file '%s'.\n"
+"\n"
+msgstr ""
+"Ha fallado la conversión de '%s': no se ha podido obtener el estado del "
+"fichero convertido '%s'.\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
+#: ../src/file_export.c:190
 #, c-format
 msgid "Overwriting existing file: '%s'\n"
 msgstr "Sobreescribiendo fichero:'%s'\n"
 
-#: src/file_export.c:207
+#: ../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
+#: ../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
+#: ../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
+#: ../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
+#: ../src/file_export.c:395 ../src/tools.c:361
 msgid "Information"
 msgstr "Información"
 
-#: src/file_export.c:406 src/tools.c:371
+#: ../src/file_export.c:406 ../src/tools.c:373
 msgid "Press button to abort."
 msgstr "Pulsar botón para cancelar."
 
-#: src/file_export.c:419
+#: ../src/file_export.c:419
 msgid "copying..."
 msgstr "copiando..."
 
-#: src/file_export.c:472
+#: ../src/file_export.c:476
 #, c-format
 msgid "Failed to write '%s-%s'\n"
 msgstr "Error al escribir '%s-%s'\n"
 
-#: src/file_export.c:485
+#: ../src/file_export.c:489
 #, 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
+#: ../src/file_export.c:505 ../src/tools.c:519
 #, c-format
 msgid "%d%% (%d:%02d:%02d left)"
 msgstr "%d%% (%d:%02d:%02d restantes)"
 
-#: src/file_export.c:510
+#: ../src/file_export.c:514
 msgid "Some tracks were not copied."
 msgstr "Algunas pistas no han sido copiadas."
 
-#: src/file_export.c:575
+#: ../src/file_export.c:579
 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
+#: ../src/file_export.c:587
 msgid "Select Export Destination Directory"
 msgstr "Seleccionar directorio de destino de la exportación"
 
-#: src/file_export.c:732
+#: ../src/file_export.c:736
 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
+#: ../src/file_export.c:770
 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
+#: ../src/file_export.c:815
 msgid ""
 "Some tracks were not copied to your harddisk. Only the copied tracks will be "
 "included in the current drag and drop operation.\n"
@@ -3032,7 +3412,7 @@
 "serán incluidas en la actual operación de arrastrar y soltar.\n"
 "\n"
 
-#: src/file_export.c:1006
+#: ../src/file_export.c:1010
 #, c-format
 msgid ""
 "No valid filename for: %s\n"
@@ -3041,14 +3421,14 @@
 "Ningún nombre de fichero valido para:%s\n"
 "\n"
 
-#: src/file_export.c:1022
+#: ../src/file_export.c:1026
 #, 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
+#: ../src/file_export.c:1031
 #, c-format
 msgid ""
 "Could not open '%s' for writing (%s).\n"
@@ -3057,40 +3437,40 @@
 "No se puede abrir '%s' para escritura (%s).\n"
 "\n"
 
-#: src/file_itunesdb.c:115
+#: ../src/file_itunesdb.c:127
 #, c-format
-msgid "Matching MD5 checksum for file %d/%d"
+msgid "Matching SHA1 checksum for file %d/%d"
 msgstr ""
-"Buscando concordancias de la suma de comprobación MD5 para el fichero %d/%d"
+"Buscando concordancias de la suma de comprobación SHA1 para el fichero %d/%d"
 
-#: src/file_itunesdb.c:223
+#: ../src/file_itunesdb.c:234
 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
+#: ../src/file_itunesdb.c:241
 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
+#: ../src/file_itunesdb.c:255
 #, 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
+#: ../src/file_itunesdb.c:272
 #, 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 "
+"gtkpod will try to match the information using SHA1 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. "
+"gtkpod intentará comprobar la información usando sumas de comprobación SHA1. "
 "Esto puede durar bastante tiempo.\n"
 "\n"
 
-#: src/file_itunesdb.c:273
+#: ../src/file_itunesdb.c:284
 #, c-format
 msgid ""
 "%s:\n"
@@ -3099,7 +3479,7 @@
 "%s:\n"
 "Esperado \"itunesdb_hash=\" , pero encontrado:\"%s\"\n"
 
-#: src/file_itunesdb.c:333
+#: ../src/file_itunesdb.c:344
 #, c-format
 msgid ""
 "%s:\n"
@@ -3108,12 +3488,12 @@
 "%s:\n"
 "Error de formato: %s\n"
 
-#: src/file_itunesdb.c:377
+#: ../src/file_itunesdb.c:387
 msgid ""
-"No MD5 checksums on individual tracks are available.\n"
+"No SHA1 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 "
+"(will provide SHA1 checksums) or avoid using the iPod with programs other "
 "than gtkpod.\n"
 "\n"
 msgstr ""
@@ -3121,11 +3501,11 @@
 "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 "
+"(generará sumas de comprobación SHA1) o evitar usar el iPod con otros "
 "programas que no sean gtkpod.\n"
 "\n"
 
-#: src/file_itunesdb.c:439
+#: ../src/file_itunesdb.c:451
 msgid ""
 "Extended info will not be used. If you have non-transferred tracks,\n"
 "these will be lost.\n"
@@ -3133,15 +3513,15 @@
 "La información extendida no será usada. Las pistas no transferidas serán "
 "perdidas.\n"
 
-#: src/file_itunesdb.c:447
+#: ../src/file_itunesdb.c:459
 msgid "Offline iPod database successfully imported"
 msgstr "Base de datos del iPod en modo desconectado importada con éxito."
 
-#: src/file_itunesdb.c:450
+#: ../src/file_itunesdb.c:462
 msgid "Local database successfully imported"
 msgstr "Base de datos local importada con éxito."
 
-#: src/file_itunesdb.c:458
+#: ../src/file_itunesdb.c:470
 #, c-format
 msgid ""
 "Offline iPod database import failed: '%s'\n"
@@ -3151,7 +3531,7 @@
 "s'\n"
 "\n"
 
-#: src/file_itunesdb.c:462
+#: ../src/file_itunesdb.c:474
 #, c-format
 msgid ""
 "Local database import failed: '%s'\n"
@@ -3160,7 +3540,7 @@
 "Error en la importación de la base de datos local: '%s'\n"
 "\n"
 
-#: src/file_itunesdb.c:469
+#: ../src/file_itunesdb.c:481
 msgid ""
 "Offline iPod database import failed: \n"
 "\n"
@@ -3168,7 +3548,7 @@
 "Error en la importación de la base de datos del iPod en modo desconectado:\n"
 "\n"
 
-#: src/file_itunesdb.c:472
+#: ../src/file_itunesdb.c:484
 msgid ""
 "Local database import failed: \n"
 "\n"
@@ -3176,7 +3556,7 @@
 "Error en la importación de la base de datos local:\n"
 "\n"
 
-#: src/file_itunesdb.c:479
+#: ../src/file_itunesdb.c:491
 #, c-format
 msgid ""
 "'%s' does not exist. Import aborted.\n"
@@ -3185,15 +3565,15 @@
 "'%s' no existe. Importación cancelada.\n"
 "\n"
 
-#: src/file_itunesdb.c:502
+#: ../src/file_itunesdb.c:514
 msgid "Extended info will not be used.\n"
 msgstr "La información extendida no será usada.\n"
 
-#: src/file_itunesdb.c:509
+#: ../src/file_itunesdb.c:521
 msgid "iPod Database Successfully Imported"
 msgstr "Base de datos del iPod importada con éxito"
 
-#: src/file_itunesdb.c:516
+#: ../src/file_itunesdb.c:528
 #, c-format
 msgid ""
 "iPod Database Import Failed: '%s'\n"
@@ -3202,7 +3582,7 @@
 "Error en la importación de la base de datos del iPod:'%s'\n"
 "\n"
 
-#: src/file_itunesdb.c:522
+#: ../src/file_itunesdb.c:534
 msgid ""
 "iPod Database Import Failed.\n"
 "\n"
@@ -3210,7 +3590,7 @@
 "Error en la importación de la base de datos del iPod.\n"
 "\n"
 
-#: src/file_itunesdb.c:531
+#: ../src/file_itunesdb.c:543
 #, c-format
 msgid ""
 "'%s' (or similar) does not exist. Import aborted.\n"
@@ -3219,7 +3599,7 @@
 "'%s' (o similar) no existe. Importación cancelada.\n"
 "\n"
 
-#: src/file_itunesdb.c:817
+#: ../src/file_itunesdb.c:859
 #, c-format
 msgid ""
 "Could not find iPod directory structure at '%s'.\n"
@@ -3234,46 +3614,117 @@
 "\n"
 "¿Quieres crear la estructura de directorios ahora?\n"
 
-#: src/file_itunesdb.c:1071
+#: ../src/file_itunesdb.c:1140
 #, 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
+#: ../src/file_itunesdb.c:1155
 msgid "Aborted writing of extended info.\n"
 msgstr "Cancelada la escritura de la información extendida.\n"
 
-#: src/file_itunesdb.c:1241
+#: ../src/file_itunesdb.c:1356
+#, c-format
+msgid "%d%%"
+msgstr "%d%%"
+
+#: ../src/file_itunesdb.c:1370
+#, c-format
+msgid "%d%% (%d/%d  %d:%02d:%02d left)"
+msgstr "%d%% (%d/%d  %d:%02d:%02d restantes)"
+
+#: ../src/file_itunesdb.c:1412
+msgid "Status: Deleting File"
+msgstr "Estado: borrando fichero"
+
+#: ../src/file_itunesdb.c:1473
+#, c-format
 msgid ""
-"Press button to abort.\n"
-"Export can be continued at a later time."
+"Could not remove the following file: '%s'\n"
+"\n"
 msgstr ""
-"Pulsar boton para cancelar.\n"
-"La exportación podrá continuar más tarde."
+"No se ha podido borrar el siguiente fichero: '%s'\n"
+"\n"
 
-#: src/file_itunesdb.c:1310
-msgid "deleting..."
-msgstr "borrando..."
+#: ../src/file_itunesdb.c:1581
+msgid ""
+"The following track could not be converted successfully:\n"
+"\n"
+msgid_plural ""
+"The following tracks could not be converted successfully:\n"
+"\n"
+msgstr[0] ""
+"La siguiente pista no ha podido ser convertida:\n"
+"\n"
+msgstr[1] ""
+"Las siguientes pistas no han podido ser convertidas:\n"
+"\n"
 
-#: src/file_itunesdb.c:1413
-msgid "preparing to copy..."
-msgstr "preparandose para copiar..."
+#: ../src/file_itunesdb.c:1591
+msgid ""
+"The following track could not be transferred successfully:\n"
+"\n"
+msgid_plural ""
+"The following tracks could not be transferred successfully:\n"
+"\n"
+msgstr[0] ""
+"La siguiente pista no ha podido ser transferida:\n"
+"\n"
+msgstr[1] ""
+"Las siguientes pistas no han podido ser actualizadas:\n"
+"\n"
 
-#: 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."
+#. ID
+#. modal,
+#. gint id,
+#. gboolean modal,
+#: ../src/file_itunesdb.c:1600 ../src/misc_confirm.c:70
+msgid "Warning"
+msgstr "Atención"
 
-#: src/file_itunesdb.c:1506
-msgid "Some tracks were not written to iPod. Export aborted!"
+#. title
+#: ../src/file_itunesdb.c:1601
+msgid ""
+"The iPod could not be ejected. Please fix the problems mentioned below and "
+"then eject the iPod again. Pressing 'OK' will re-schedule the failed tracks "
+"for conversion and transfer."
 msgstr ""
-"Algunas pistas no han sido escritas en el iPod. ¡Cancelada la exportación!"
+"El iPod no ha podido ser expulsado. Por favor corrija los problemas que se "
+"muestran a continuación y expulse el iPod de nuevo. Pulsando OK las pistas "
+"que han fallado serán re-añadidas para su conversión y transferencia."
 
-#: src/file_itunesdb.c:1557
+#: ../src/file_itunesdb.c:1663
+msgid "Status: Copying track"
+msgstr "Estado: copiando pista"
+
+#: ../src/file_itunesdb.c:1669
+msgid "Status: Waiting for conversion to complete"
+msgstr "Estado: esperando a que finalice al conversión"
+
+#: ../src/file_itunesdb.c:1673
+msgid "Status: Finished transfer"
+msgstr "Estado: transferencia finalizada"
+
+#: ../src/file_itunesdb.c:1714
 #, c-format
 msgid ""
+"One track could not be transferred because your iPod is full. Either delete "
+"some tracks or otherwise create space on the iPod before ejecting the iPod "
+"again."
+msgid_plural ""
+"%d tracks could not be transferred because your iPod is full. Either delete "
+"some tracks or otherwise create space on the iPod before ejecting the iPod "
+"again."
+msgstr[0] ""
+"Una pista no ha podido ser transferida porque el iPod está lleno. Borre "
+"algunas pistas o haga espacio en el iPod antes de expulsarlo de nuevo."
+msgstr[1] ""
+"%d pistas no han podido ser transferidas porque el iPod está lleno. Borre "
+"algunas pistas o haga espacio en el iPod antes de expulsarlo de nuevo."
+
+#: ../src/file_itunesdb.c:1792
+#, 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"
@@ -3288,7 +3739,7 @@
 "cancela, se podrá importar la base de datos iTunes antes de usar de nuevo "
 "esta función.\n"
 
-#: src/file_itunesdb.c:1588
+#: ../src/file_itunesdb.c:1827
 msgid ""
 "iPod directory structure must be present before synching to the iPod can be "
 "performed.\n"
@@ -3296,212 +3747,255 @@
 "La estructura de directorios del iPod debe estar creada antes de que se "
 "pueda sincronizar con el iPod.\n"
 
-#: src/file_itunesdb.c:1597
+#: ../src/file_itunesdb.c:1836
 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
+#: ../src/file_itunesdb.c:1854
 msgid "Now writing database. Please wait..."
 msgstr "Escribiendo la base de datos. Espere, por favor."
 
-#: src/file_itunesdb.c:1659
+#: ../src/file_itunesdb.c:1901
 #, 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
+#: ../src/file_itunesdb.c:1987
 #, c-format
 msgid "%s: Database saved"
 msgstr "Guardada la base de datos: %s"
 
-#: src/file_itunesdb.c:1749
+#: ../src/file_itunesdb.c:1991
 #, c-format
 msgid "%s: Changes saved"
 msgstr "%s: Cambios guardados"
 
-#: src/fileselection.c:127
+#: ../src/fileselection.c:128
 msgid "Successfully added files"
 msgstr "Ficheros añadidos con éxito."
 
-#: src/fileselection.c:129
+#: ../src/fileselection.c:130
 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
+#: ../src/fileselection.c:160
 msgid "Add Files"
 msgstr "Añadir ficheros"
 
 #. Create the file chooser, and handle the response
-#: src/fileselection.c:250
+#: ../src/fileselection.c:253
 msgid "Add Playlists"
 msgstr "Añadir listas de reproducción"
 
 #. Create the file chooser, and handle the response
-#: src/fileselection.c:297
+#: ../src/fileselection.c:300
 msgid "Set Cover"
 msgstr "Configurar portada"
 
-#: src/fileselection.c:718
+#: ../src/fileselection.c:721
 msgid "Select directory to add recursively"
 msgstr "Seleccionar directorio para añadir recursivamente"
 
-#: src/fileselection.c:989
+#: ../src/fileselection.c:992
 msgid "Ok"
 msgstr "Aceptar"
 
-#: src/fileselection.c:998
+#: ../src/fileselection.c:1001
 msgid "Cancel"
 msgstr "Cancelar"
 
-#: src/getopt.c:681
+#: ../src/flacfile.c:33
 #, c-format
+msgid "'%s' does not appear to be an FLAC audio file.\n"
+msgstr "'%s' no parece ser un fichero de audio FLAC.\n"
+
+#: ../src/flacfile.c:52
+#, c-format
+msgid "Error retrieving tags for '%s'.\n"
+msgstr "Error al recuperar las etiquetas de '%s'.\n"
+
+#: ../src/flacfile.c:119
+#, c-format
+msgid ""
+"Import of '%s' failed: FLAC not supported without the FLAC library. You must "
+"compile the gtkpod source together with the FLAC library.\n"
+msgstr ""
+"Error en la importación de '%s': FLAC no están soportados sin la biblioteca "
+"FLAC. gtkpod debe estar compilado junto con la biblioteca FLAC.\n"
+
+#: ../src/flacfile.c:125
+#, c-format
+msgid ""
+"FLAC metadata update for '%s' failed: FLAC not supported without the FLAC "
+"library. You must compile the gtkpod source together with the FLAC library.\n"
+msgstr ""
+"Error al actualizar los metadatos FLAC para '%s': FLAC no está soportado sin "
+"la biblioteca FLAC. gtkpod debe estar compilado junto con la biblioteca "
+"FLAC.\n"
+
+#: ../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
+#: ../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
+#: ../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
+#: ../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
+#: ../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
+#: ../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
+#: ../src/getopt.c:788
 #, c-format
 msgid "%s: illegal option -- %c\n"
 msgstr "%s: opción no permitida -- %c\n"
 
-#: src/getopt.c:791
+#: ../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
+#: ../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
+#: ../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
+#: ../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
+#: ../src/info.c:383
 msgid "n/c"
 msgstr "n/c"
 
-#: src/info.c:388 src/info.c:835
+#: ../src/info.c:388 ../src/info.c:835
 msgid "offline"
 msgstr "modo desconectado"
 
-#: src/info.c:483
+#: ../src/info.c:483
 #, c-format
 msgid " P:%d T:%d/%d"
 msgstr " P:%d T:%d/%d"
 
-#: src/info.c:777
+#: ../src/info.c:777
 msgid "B"
 msgstr "B"
 
-#: src/info.c:777
+#: ../src/info.c:777
 msgid "kB"
 msgstr "KiB"
 
-#: src/info.c:777
+#: ../src/info.c:777
 msgid "TB"
 msgstr "TiB"
 
-#: src/info.c:820
+#: ../src/info.c:820
 #, c-format
 msgid " %s Free"
 msgstr " %s Libre"
 
-#: src/info.c:825
+#: ../src/info.c:825
 #, c-format
 msgid " %s Pending"
 msgstr " %s Pendiente"
 
-#: src/info.c:830
+#: ../src/info.c:830
 msgid " disconnected"
 msgstr " desconectado"
 
-#: src/info.c:881
+#: ../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
+#: ../src/info.c:886
 msgid "No tracks selected"
 msgstr "No se ha seleccionado ninguna pista"
 
-#: src/info.c:891
+#: ../src/info.c:891
 msgid "No playlist selected"
 msgstr "No se ha seleccionado ninguna lista de reproducción"
 
-#: src/info.c:896
+#: ../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"
+#. Strings used several times
+#: ../src/ipod_init.c:48
+msgid "Select or enter your model"
+msgstr "Seleccione o introduzca su modelo"
 
-#: src/md5.c:240
+#: ../src/ipod_init.c:79 ../src/repository.c:546 ../src/repository.c:2369
+msgid "Select mountpoint"
+msgstr "Seleccionar el punto de montaje del iPod"
+
+#: ../src/ipod_init.c:359
 #, 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"
+msgid "Error initialising iPod: %s\n"
+msgstr "Error al iniciar el iPod: %s\n"
 
-#: src/misc.c:79
+#: ../src/ipod_init.c:366
+msgid "Error initialising iPod, unknown error\n"
+msgstr "Error al iniciar el iPod, error desconocido\n"
+
+#: ../src/ipod_init.c:422
 #, c-format
+msgid "<b>Please select your iPod model at </b><i>%s</i>"
+msgstr "<b>Por favor, seleccionar el modelo de iPod en </b><i>%s</i>"
+
+#: ../src/misc.c:86
+#, 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
+#: ../src/misc.c:90
 msgid ""
-"(C) 2002 - 2005\n"
+"(C) 2002 - 2007\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"
+"(C) 2002 - 2007\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
+#: ../src/misc.c:96
 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 "
@@ -3535,7 +4029,7 @@
 "\n"
 "\n"
 
-#: src/misc.c:97
+#: ../src/misc.c:104
 msgid ""
 "Patches were supplied by the following people (list may be incomplete -- "
 "please contact me)\n"
@@ -3545,24 +4039,24 @@
 "favor, contactar conmigo)\n"
 "\n"
 
-#: src/misc.c:99
+#: ../src/misc.c:106
 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
+#: ../src/misc.c:108
 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
+#: ../src/misc.c:110
 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
+#: ../src/misc.c:112
 msgid ""
 "Walter Bell: correct handling of DND URIs with escaped characters and/or cr/"
 "newlines at the end\n"
@@ -3570,18 +4064,18 @@
 "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
+#: ../src/misc.c:114
 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
+#: ../src/misc.c:116
 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
+#: ../src/misc.c:118
 msgid ""
 "Graeme Wilford: reading and writing of the 'Composer' ID3 tags, progress "
 "dialogue during sync\n"
@@ -3589,7 +4083,7 @@
 "Graeme Wilford: lectura y escritura del compositor de etiquetas  ID3, "
 "diálogo de progreso durante la sincronización\n"
 
-#: src/misc.c:113
+#: ../src/misc.c:120
 msgid ""
 "Edward Matteucci: debugging, special playlist creation, most of the volume "
 "normalizing code\n"
@@ -3597,26 +4091,26 @@
 "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
+#: ../src/misc.c:122
 msgid "Jens Lautenbach: some optical improvements\n"
 msgstr "Jens Lautenbach: algunas mejoras visuales\n"
 
-#: src/misc.c:117
+#: ../src/misc.c:124
 msgid "Alex Tribble: iPod eject patch\n"
 msgstr "Alex Tribble: parche de expulsion del iPod mediante \"eject\"\n"
 
-#: src/misc.c:119
+#: ../src/misc.c:126
 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
+#: ../src/misc.c:128
 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
+#: ../src/misc.c:130
 msgid ""
 "Ero Carrera: Filename validation and quick sync when copying tracks from the "
 "iPod\n"
@@ -3624,25 +4118,25 @@
 "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
+#: ../src/misc.c:132
 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
+#: ../src/misc.c:134
 msgid "Armando Atienza: Support with external playcounts\n"
 msgstr "Armando Atienza: Soporte para contadores externos\n"
 
-#: src/misc.c:129
+#: ../src/misc.c:136
 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
+#: ../src/misc.c:138
 msgid "Jim Hall: Decent INSTALL file\n"
 msgstr "Jim Hall: Fichero INSTALL decente\n"
 
-#: src/misc.c:133
+#: ../src/misc.c:140
 msgid ""
 "Juergen Helmers, Markus Gaugusch: Conversion scripts to sync calendar/"
 "contacts to the iPod\n"
@@ -3651,23 +4145,23 @@
 "calendario/contactos al iPod\n"
 
 #. J"urgen!
-#: src/misc.c:135
+#: ../src/misc.c:142
 msgid "Flavio Stanchina: bugfixes\n"
 msgstr "Flavio Stanchina: corrección de errores\n"
 
-#: src/misc.c:137
+#: ../src/misc.c:144
 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
+#: ../src/misc.c:146
 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
+#: ../src/misc.c:149
 msgid ""
 "Christoph Kunz: address compatibility issues when writing id3v2.4 type mp3 "
 "tags\n"
@@ -3675,7 +4169,7 @@
 "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
+#: ../src/misc.c:152
 msgid ""
 "James Liggett:\n"
 "     replacement of old GTK file selection dialogs with new GTK filechooser "
@@ -3687,32 +4181,32 @@
 "los nuevos GTK\n"
 "     rehecho el sistema de preferencias del usuario.\n"
 
-#: src/misc.c:150
+#: ../src/misc.c:157
 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
+#: ../src/misc.c:160
 msgid "Clinton Gormley: sync scripts for thunderbird\n"
 msgstr "Clinton Gormley: guión de sincronización para thunderbird\n"
 
-#: src/misc.c:156
+#: ../src/misc.c:163
 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
+#: ../src/misc.c:166
 msgid "Sebastian Scherer: sync script for kNotes\n"
 msgstr "Sebastian Scherer: guión de sincronización para kNotes\n"
 
-#: src/misc.c:162
+#: ../src/misc.c:169
 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
+#: ../src/misc.c:172
 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
+#: ../src/misc.c:175
 msgid ""
 "Iain Benson: support for compilation tag in mp3 files and separate display "
 "of compilations in the sort tab.\n"
@@ -3720,7 +4214,7 @@
 "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
+#: ../src/misc.c:177
 msgid ""
 "Nicolas Chariot: icons of buttons\n"
 "\n"
@@ -3730,11 +4224,11 @@
 "\n"
 "\n"
 
-#: src/misc.c:174
+#: ../src/misc.c:181
 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
+#: ../src/misc.c:183
 msgid ""
 "    gnutools: (mktunes.pl, ported to C) reading and writing of iTunesDB "
 "(http://www.gnu.org/software/gnupod/)\n"
@@ -3742,7 +4236,7 @@
 "    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
+#: ../src/misc.c:185
 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"
@@ -3751,39 +4245,39 @@
 "parte del código de las listas de reproducción inteligentes está basado en "
 "sus clases C++.\n"
 
-#: src/misc.c:180
+#: ../src/misc.c:187
 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
+#: ../src/misc.c:189
 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
+#: ../src/misc.c:192
 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
+#: ../src/misc.c:207
 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
+#: ../src/misc.c:209
 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
+#: ../src/misc.c:211
 msgid "Hebrew: Assaf Gillat (gillata at gmail dot com)\n"
 msgstr "Hebreo: Assaf Gillat (gillata en gmail punto com)\n"
 
-#: src/misc.c:206
+#: ../src/misc.c:213
 msgid ""
 "Italian:  Edward Matteucci (edward_matteucc at users dot sourceforge dot "
 "net)\n"
@@ -3791,51 +4285,69 @@
 "Italiano:  Edward Matteucci (edward_matteucc en users punto sourceforge "
 "punto net)\n"
 
-#: src/misc.c:208
+#: ../src/misc.c:215
 msgid "Japanese: Ayako Sano\n"
 msgstr "Japonés: Ayako Sano\n"
 
-#: src/misc.c:210
+#: ../src/misc.c:217
 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
+#: ../src/misc.c:219
 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
+#: ../src/misc.c:975
 #, 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
+#: ../src/misc.c:1129
 #, c-format
 msgid "Unknown token '%%%c' in template '%s'"
 msgstr "Testigo desconocido '%%%c' en la plantilla '%s'"
 
-#: src/misc.c:1166
+#: ../src/misc.c:1212
 #, 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
+#: ../src/misc.c:1298
 #, 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"
+#: ../src/misc.c:1777
+#, c-format
+msgid ""
+"Writing preferences file '%s' failed (%s).\n"
+"\n"
+msgstr ""
+"Fallo al escribir el fichero de preferencias '%s' (%s).\n"
+"\n"
 
+#: ../src/misc.c:1779
+msgid "unspecified error"
+msgstr "error no especificado"
+
+#: ../src/misc.c:1787
+#, c-format
+msgid ""
+"Writing preferences to the iPod (%s) failed: could not get path to Control "
+"Directory.\n"
+"\n"
+msgstr ""
+"La escritura de las preferencias en el iPod (%s) ha fallado: no se ha podido "
+"acceder al directorio de control.\n"
+"\n"
+
 #. title
-#: src/misc_confirm.c:72
-msgid "The following has occured:"
-msgstr "Se ha producido un error:"
+#: ../src/misc_confirm.c:71
+msgid "The following has occurred:"
+msgstr "Ha ocurrido lo siguiente:"
 
-#: src/misc_confirm.c:123
+#: ../src/misc_confirm.c:122
 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 "
@@ -3852,13 +4364,13 @@
 "de reproducción a las que pertenecen estas pistas está indicado entre "
 "paréntesis."
 
-#: src/misc_confirm.c:127
+#: ../src/misc_confirm.c:126
 msgid "Delete Track Completely from iPod?"
-msgid_plural "Delete Tracks Completey from iPod?"
+msgid_plural "Delete Tracks Completely 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
+#: ../src/misc_confirm.c:137 ../src/misc_confirm.c:178
 #, c-format
 msgid ""
 "Are you sure you want to remove the following track from the playlist \"%s\"?"
@@ -3872,13 +4384,13 @@
 "¿Desea realmente borrar las siguientes pistas de la lista de reproducción \"%"
 "s\"?"
 
-#: src/misc_confirm.c:142 src/misc_confirm.c:183
+#: ../src/misc_confirm.c:141 ../src/misc_confirm.c:182
 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
+#: ../src/misc_confirm.c:163
 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 "
@@ -3896,13 +4408,13 @@
 "listas de reproducción a las que pertenecen estas pistas está indicado entre "
 "paréntesis."
 
-#: src/misc_confirm.c:168
+#: ../src/misc_confirm.c:167
 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
+#: ../src/misc_confirm.c:192
 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 "
@@ -3920,54 +4432,54 @@
 "número de listas de reproducción a las que pertenecen estas pistas está "
 "indicado entre paréntesis."
 
-#: src/misc_confirm.c:197
+#: ../src/misc_confirm.c:196
 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
+#: ../src/misc_confirm.c:261
 #, 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
+#: ../src/misc_confirm.c:267 ../src/misc_confirm.c:291
 #, 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
+#: ../src/misc_confirm.c:285
 #, 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
+#: ../src/misc_confirm.c:297
 #, 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
+#: ../src/misc_confirm.c:442
 msgid "Cannot remove entry 'All'"
 msgstr "No se puede borrar la entrada 'Todo'"
 
-#: src/misc_confirm.c:532
+#: ../src/misc_confirm.c:536
 #, 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
+#: ../src/misc_confirm.c:541
 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
+#: ../src/misc_confirm.c:550 ../src/misc_confirm.c:624
 #, c-format
 msgid "Deleted playlist '%s' including %d member track"
 msgid_plural "Deleted playlist '%s' including %d member tracks"
@@ -3975,12 +4487,12 @@
 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
+#: ../src/misc_confirm.c:566 ../src/misc_confirm.c:640
 #, c-format
 msgid "Deleted playlist '%s'"
 msgstr "Borrada la lista de reproducción '%s'"
 
-#: src/misc_confirm.c:596
+#: ../src/misc_confirm.c:600
 #, c-format
 msgid "Deleted playlist '%s' including %d member track on harddisk"
 msgid_plural "Deleted playlist '%s' including %d member tracks on harddisk"
@@ -3989,20 +4501,20 @@
 msgstr[1] ""
 "Borrada la lista de reproducción '%s' conteniendo %d pistas en el disco duro"
 
-#: src/misc_confirm.c:613
+#: ../src/misc_confirm.c:617
 #, 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
+#: ../src/misc_confirm.c:695
 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
+#: ../src/misc_confirm.c:700
 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
+#: ../src/misc_confirm.c:708
 #, c-format
 msgid ""
 "Are you sure you want to delete playlist '%s' and the following track "
@@ -4021,12 +4533,12 @@
 "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
+#: ../src/misc_confirm.c:719 ../src/misc_confirm.c:774
 #, 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
+#: ../src/misc_confirm.c:745
 #, c-format
 msgid ""
 "Are you sure you want to delete playlist '%s' and remove the following track "
@@ -4045,11 +4557,11 @@
 "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
+#: ../src/misc_confirm.c:753
 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
+#: ../src/misc_confirm.c:762
 #, c-format
 msgid ""
 "Are you sure you want to delete playlist '%s' and remove the following track "
@@ -4068,7 +4580,7 @@
 "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
+#: ../src/misc_confirm.c:841
 msgid ""
 "Data has been changed and not been saved.\n"
 "OK to exit gtkpod?"
@@ -4076,126 +4588,148 @@
 "Algunos datos han sido modificados y no se han guardado ¿está seguro de que "
 "desea cerrar gtkpod?"
 
-#: src/misc_conversion.c:67
+#: ../src/misc_conversion.c:66
 msgid "File type"
 msgstr "Tipo de fichero"
 
-#: src/misc_conversion.c:68
+#: ../src/misc_conversion.c:67
 msgid "PC File"
 msgstr "Fichero PC"
 
-#: src/misc_conversion.c:69
+#: ../src/misc_conversion.c:68
 msgid "iPod File"
 msgstr "Fichero iPod"
 
-#: src/misc_conversion.c:70
+#: ../src/misc_conversion.c:69
 msgid "iPod ID"
 msgstr "ID iPod"
 
 #. 10
-#: src/misc_conversion.c:71
+#: ../src/misc_conversion.c:70
 msgid "Track Nr (#)"
 msgstr "Número de pista (#)"
 
-#: src/misc_conversion.c:72
+#: ../src/misc_conversion.c:71
 msgid "Transferred"
 msgstr "Transferido"
 
-#: src/misc_conversion.c:73
+#: ../src/misc_conversion.c:72
 msgid "File Size"
 msgstr "Tamaño del fichero"
 
-#: src/misc_conversion.c:74
+#: ../src/misc_conversion.c:73
 msgid "Play Time"
 msgstr "Tiempo de reproducción"
 
 #. 20
-#: src/misc_conversion.c:81
+#: ../src/misc_conversion.c:80
 msgid "Date played"
 msgstr "Fecha de reproducción"
 
-#: src/misc_conversion.c:83
+#: ../src/misc_conversion.c:82
 msgid "Volume"
 msgstr "Volumen"
 
-#: src/misc_conversion.c:84
+#: ../src/misc_conversion.c:83
 msgid "Soundcheck"
 msgstr "Control de sonido"
 
 #. 25
-#: src/misc_conversion.c:86
+#: ../src/misc_conversion.c:85
 msgid "CD Nr"
 msgstr "Número de CD"
 
-#: src/misc_conversion.c:89
+#: ../src/misc_conversion.c:88
 msgid "Category"
 msgstr "Categoría"
 
-#: src/misc_conversion.c:90
+#: ../src/misc_conversion.c:89
 msgid "Description"
 msgstr "Descripción"
 
 #. 30
-#: src/misc_conversion.c:91
+#: ../src/misc_conversion.c:90
 msgid "Podcast URL"
 msgstr "URL del podcast"
 
-#: src/misc_conversion.c:92
+#: ../src/misc_conversion.c:91
 msgid "Podcast RSS"
 msgstr "RSS del podcast"
 
-#: src/misc_conversion.c:93
+#: ../src/misc_conversion.c:92
 msgid "Subtitle"
 msgstr "Subtítulo"
 
-#: src/misc_conversion.c:94
+#: ../src/misc_conversion.c:93
 msgid "Date released"
 msgstr "Fecha de publicación"
 
-#: src/misc_conversion.c:95
+#: ../src/misc_conversion.c:94
 msgid "Checked"
 msgstr "Revisado"
 
 #. 35
-#: src/misc_conversion.c:96
+#: ../src/misc_conversion.c:95
 msgid "Start time"
 msgstr "Hora de inicio"
 
-#: src/misc_conversion.c:97
+#: ../src/misc_conversion.c:96
 msgid "Stop time"
 msgstr "Hora de finalización"
 
-#: src/misc_conversion.c:98
+#: ../src/misc_conversion.c:97
 msgid "Remember Playback Position"
 msgstr "Recordar posición de la lista de reproducción"
 
-#: src/misc_conversion.c:99
-#, fuzzy
+#: ../src/misc_conversion.c:98
 msgid "Skip when Shuffling"
 msgstr "Ignorar en modo aleatorio"
 
-#: src/misc_conversion.c:100
+#: ../src/misc_conversion.c:99
 msgid "Artwork Path"
-msgstr ""
+msgstr "Ruta de la carátula"
 
-#: src/misc_conversion.c:113
+#. 40
+#: ../src/misc_conversion.c:100
+msgid "Media Type"
+msgstr "Tipo de medio"
+
+#: ../src/misc_conversion.c:102
+msgid "TV Episode"
+msgstr "Episodio de TV"
+
+#: ../src/misc_conversion.c:103
+#, fuzzy
+msgid "TV Network"
+msgstr "TV Network"
+
+#: ../src/misc_conversion.c:104
+msgid "Season Nr"
+msgstr "Temporada Nº"
+
+#. 45
+#: ../src/misc_conversion.c:105
+msgid "Episode Nr"
+msgstr "Episodio Nº"
+
+#: ../src/misc_conversion.c:118
 msgid "Name of file on PC, if available"
 msgstr "Nombre del fichero en el PC, si está disponible"
 
-#: src/misc_conversion.c:114
+#: ../src/misc_conversion.c:119
 msgid "Name of file on the iPod"
 msgstr "Nombre del fichero en el iPod"
 
 #. 10
-#: src/misc_conversion.c:116
+#: ../src/misc_conversion.c:121
 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
+#: ../src/misc_conversion.c:122
 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
+#: ../src/misc_conversion.c:128
 msgid ""
 "Supposedly something that tells the iPod to increase or decrease the "
 "playback speed"
@@ -4203,32 +4737,32 @@
 "Supuestamente, algo que le dice al iPod que incremente o reduzca la "
 "velocidad de reproducción"
 
-#: src/misc_conversion.c:125
+#: ../src/misc_conversion.c:130
 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
+#: ../src/misc_conversion.c:131
 msgid "Star rating from 0 to 5"
 msgstr "Puntuación de estrellas del 0 al 5"
 
-#: src/misc_conversion.c:127
+#: ../src/misc_conversion.c:132
 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
+#: ../src/misc_conversion.c:133
 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
+#: ../src/misc_conversion.c:134
 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
+#: ../src/misc_conversion.c:135
 msgid "Manual volume adjust"
 msgstr "Ajuste manual del volumen"
 
-#: src/misc_conversion.c:131
+#: ../src/misc_conversion.c:136
 msgid ""
 "Volume adjust in dB (replay gain) -- you need to activate 'soundcheck' on "
 "the iPod"
@@ -4237,87 +4771,88 @@
 "el control de volumen en el iPod"
 
 #. 25
-#: src/misc_conversion.c:134
+#: ../src/misc_conversion.c:139
 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
+#: ../src/misc_conversion.c:142
 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
+#: ../src/misc_conversion.c:143
 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
+#: ../src/misc_conversion.c:147
 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
+#: ../src/misc_conversion.c:713
 #, 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
+#: ../src/misc_conversion.c:723
 #, 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
+#: ../src/misc_conversion.c:740
 #, c-format
 msgid "The URI '%s' is invalid"
 msgstr "El URI '%s' no es válido"
 
-#: src/misc_conversion.c:688
+#: ../src/misc_conversion.c:752
 #, 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
+#: ../src/misc_conversion.c:768
 #, 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
+#: ../src/misc_playlist.c:67 ../src/misc_playlist.c:94
+#: ../src/misc_playlist.c:429
 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
+#: ../src/misc_playlist.c:154
 msgid "AR:"
 msgstr "AR:"
 
-#: src/misc_playlist.c:158
+#: ../src/misc_playlist.c:157
 msgid "AL:"
 msgstr "AL:"
 
-#: src/misc_playlist.c:161
+#: ../src/misc_playlist.c:160
 msgid "GE:"
 msgstr "GE:"
 
-#: src/misc_playlist.c:164
+#: ../src/misc_playlist.c:163
 #, fuzzy
 msgid "CO:"
 msgstr "CO:"
 
-#: src/misc_playlist.c:167
+#: ../src/misc_playlist.c:166
 #, fuzzy
 msgid "YE:"
 msgstr "YE:"
 
-#: src/misc_playlist.c:195
+#: ../src/misc_playlist.c:194
 msgid "Unknown"
 msgstr "Desconocido"
 
-#: src/misc_playlist.c:273
+#: ../src/misc_playlist.c:272
 #, c-format
 msgid "Random (%d)"
 msgstr "Aleatorio (%d)"
 
-#: src/misc_playlist.c:298
+#: ../src/misc_playlist.c:297
 msgid ""
 "Auto Store of track view disabled.\n"
 "\n"
@@ -4325,11 +4860,11 @@
 "Memorización automática de la vista desactivada.\n"
 "\n"
 
-#: src/misc_playlist.c:357
+#: ../src/misc_playlist.c:356
 msgid "Not Listed"
 msgstr "No escuchado"
 
-#: src/misc_playlist.c:407
+#: ../src/misc_playlist.c:406
 #, c-format
 msgid "Created playlist '%s' with %d track."
 msgid_plural "Created playlist '%s' with %d tracks."
@@ -4337,76 +4872,76 @@
 msgstr[1] "Creada lista de reproducción '%s' con %d pistas."
 
 #. n==0
-#: src/misc_playlist.c:418
+#: ../src/misc_playlist.c:417
 msgid "No tracks available, playlist not created"
 msgstr "Ninguna pista disponible, lista de reproducción no creada"
 
-#: src/misc_playlist.c:544
+#: ../src/misc_playlist.c:543
 #, c-format
 msgid "Most Listened (%d)"
 msgstr "La más escuchada (%d)"
 
-#: src/misc_playlist.c:585
+#: ../src/misc_playlist.c:584
 msgid "Never Listened"
 msgstr "Nunca escuchada"
 
-#: src/misc_playlist.c:625
+#: ../src/misc_playlist.c:624
 #, c-format
 msgid "Best Rated (%d)"
 msgstr "Mejor puntuada (%d)"
 
-#: src/misc_playlist.c:667
+#: ../src/misc_playlist.c:666
 msgid "Unrated tracks"
 msgstr "Pistas sin puntuar"
 
-#: src/misc_playlist.c:672
+#: ../src/misc_playlist.c:671
 #, c-format
 msgid "Rated %d"
 msgstr "Puntuación %d"
 
-#: src/misc_playlist.c:715
+#: ../src/misc_playlist.c:714
 #, c-format
 msgid "Recent (%d)"
 msgstr "Reciente (%d)"
 
-#: src/misc_playlist.c:754
+#: ../src/misc_playlist.c:753
 msgid "Last Time"
 msgstr "Última vez"
 
-#: src/misc_playlist.c:845
+#: ../src/misc_playlist.c:844
 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
+#: ../src/misc_playlist.c:854
 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
+#: ../src/misc_playlist.c:882
 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
+#: ../src/misc_playlist.c:916
 #, c-format
 msgid "Processing '%s'"
 msgstr "Procesando '%s'"
 
-#: src/misc_playlist.c:941
+#: ../src/misc_playlist.c:943
 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
+#: ../src/misc_playlist.c:976
 msgid "Track"
 msgstr "Pista"
 
-#: src/misc_playlist.c:1017
+#: ../src/misc_playlist.c:1019
 msgid ""
 "You did not import the existing iTunesDB. This is most likely incorrect and "
 "will result in the loss of the existing database.\n"
@@ -4422,21 +4957,21 @@
 "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
+#: ../src/misc_playlist.c:1033
 msgid "Creating a tree of known files"
 msgstr "Creando un árbol de ficheros conocidos"
 
-#: src/misc_playlist.c:1075
+#: ../src/misc_playlist.c:1077
 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
+#: ../src/misc_playlist.c:1120
 msgid "Orphaned"
 msgstr "Huérfano"
 
-#: src/misc_playlist.c:1145
+#: ../src/misc_playlist.c:1147
 #, c-format
 msgid ""
 "The following orphaned file had already been added to the iPod again. It "
@@ -4449,12 +4984,12 @@
 "%s\n"
 "\n"
 
-#: src/misc_playlist.c:1173
+#: ../src/misc_playlist.c:1175
 #, 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
+#: ../src/misc_playlist.c:1199
 #, c-format
 msgid ""
 "The following dangling track has a file on PC.\n"
@@ -4473,7 +5008,7 @@
 "Pulse «Aceptar» para transferir los ficheros en la siguiente sincronización, "
 "«Cancelar» para dejarlos como están."
 
-#: src/misc_playlist.c:1202
+#: ../src/misc_playlist.c:1204
 #, c-format
 msgid ""
 "The following dangling track doesn't have file on PC. \n"
@@ -4491,31 +5026,31 @@
 
 #. we want unique window for each
 #. gboolean modal,
-#: src/misc_playlist.c:1209
+#: ../src/misc_playlist.c:1211
 msgid "Dangling Tracks"
 msgstr "Pistas pendientes"
 
-#: src/misc_playlist.c:1232
+#: ../src/misc_playlist.c:1234
 #, 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
+#: ../src/misc_track.c:89
 #, 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
+#: ../src/misc_track.c:198
 #, 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
+#: ../src/misc_track.c:205
 #, c-format
 msgid ""
 "The following duplicate track has not been added to the master play list."
@@ -4531,70 +5066,80 @@
 
 #. gint id,
 #. gboolean modal,
-#: src/misc_track.c:213
+#: ../src/misc_track.c:212
 msgid "Duplicate detection"
 msgstr "Detección de duplicados"
 
-#: src/misc_track.c:904
+#: ../src/misc_track.c:1269
 msgid "Local Database"
 msgstr "Base de datos local"
 
 #. artwork is set
-#: src/misc_track.c:915
+#: ../src/misc_track.c:1280
 msgid "Embedded or filename was lost"
-msgstr ""
+msgstr "Se ha perdido el nombre de fichero o el empotrado."
 
-#: src/misc_track.c:919
-#, fuzzy
+#: ../src/misc_track.c:1284
 msgid "Artwork not set"
-msgstr "no configurado"
+msgstr "Carátula no configurada."
 
-#: src/misc_track.c:1527
+#: ../src/misc_track.c:1737
 #, c-format
+msgid "Could not find source file for '%s'. Track not copied."
+msgstr "No se ha podido encontrar el fichero fuente de '%s'. Pista no copiada."
+
+#: ../src/misc_track.c:1973
+#, c-format
 msgid "drag and drop: ignored '%s'\n"
 msgstr "Operación de arrastrar y soltar ignorada '%s'\n"
 
-#: src/mp3file.c:1276
+#: ../src/mp3file.c:1282
 #, 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
+#: ../src/mp3file.c:1306 ../src/mp3file.c:1399 ../src/mp3file.c:1548
+#: ../src/mp3file.c:2186
 #, c-format
 msgid "ERROR while opening file: '%s' (%s).\n"
 msgstr "Error al abrir el fichero: '%s' (%s).\n"
 
-#: src/mp3file.c:1593
+#: ../src/mp3file.c:1619
 #, 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
+#: ../src/mp3file.c:2352
 #, 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
+#: ../src/mp4file.c:227 ../src/mp4file.c:359
 #, 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"
+msgid "'%s' does not appear to be a mp4 audio or video file.\n"
+msgstr "'%s' no parece ser un fichero de audio o vídeo mp4.\n"
 
-#: src/mp4file.c:231 src/mp4file.c:352
+#: ../src/mp4file.c:237 ../src/mp4file.c:369
 #, 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
+#: ../src/mp4file.c:478
 #, 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:489
+#, 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
+#: ../src/mp4file.c:502
 #, c-format
 msgid ""
 "Import of '%s' failed: m4a/m4p/m4b not supported without the mp4v2 library. "
@@ -4604,7 +5149,7 @@
 "biblioteca mp4v2. gtkpod debe estar compilado junto con la biblioteca "
 "mp4v2.\n"
 
-#: src/mp4file.c:491
+#: ../src/mp4file.c:508
 #, c-format
 msgid ""
 "m4a/m4p/m4b metadata update for '%s' failed: m4a/m4p/m4b not supported "
@@ -4615,7 +5160,7 @@
 "están soportados sin la biblioteca mp4v2. gtkpod debe estar compilado junto "
 "con la biblioteca mp4v2.\n"
 
-#: src/mp4file.c:497
+#: ../src/mp4file.c:514
 #, c-format
 msgid ""
 "m4a/m4p/m4b soundcheck update for '%s' failed: m4a/m4p/m4b not supported "
@@ -4626,196 +5171,253 @@
 "no están soportados sin la biblioteca mp4v2. gtkpod debe estar compilado "
 "junto con la biblioteca mp4v2.\n"
 
-#: src/prefs.c:307
+#: ../src/oggfile.c:62 ../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/oggfile.c:73
+#, c-format
+msgid "'%s' does not appear to be an ogg audio file.\n"
+msgstr "'%s' no parece ser un fichero de audio ogg.\n"
+
+#: ../src/oggfile.c:150
+#, c-format
+msgid ""
+"Import of '%s' failed: ogg not supported without the ogg library. You must "
+"compile the gtkpod source together with the ogg library.\n"
+msgstr ""
+"Error en la importación de '%s': ogg no está soportado sin la biblioteca "
+"ogg. gtkpod debe estar compilado junto con la biblioteca ogg.\n"
+
+#: ../src/oggfile.c:156
+#, c-format
+msgid ""
+"ogg metadata update for '%s' failed: ogg not supported without the ogg "
+"library. You must compile the gtkpod source together with the ogg library.\n"
+msgstr ""
+"Error al actualizar los metadatos ogg para '%s': ogg no está soportado sin "
+"la biblioteca ogg. gtkpod debe estar compilado junto con la biblioteca ogg.\n"
+
+#: ../src/prefs.c:356
+#, c-format
 msgid "gtkpod version %s usage:\n"
 msgstr "Uso de gtkpod versión %s:\n"
 
-#: src/prefs.c:308
+#: ../src/prefs.c:357
 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:358
+msgid "  -p <file>:    increment playcount for file by one\n"
+msgstr "  -p <fichero>:    incrementa el contador del fichero en uno\n"
 
-#: src/prefs.c:310
+#: ../src/prefs.c:359
+msgid "  --hash <file>:print gtkpod hash for file\n"
+msgstr "  --hash <file>:muestra la suma de resumen de gtkpod para el fichero\n"
+
+#: ../src/prefs.c:360
 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
+#: ../src/prefs.c:361
 msgid "  --mountpoint: same as '-m'.\n"
 msgstr "  --mountpoint: igual que '-m'.\n"
 
-#: src/prefs.c:312
+#: ../src/prefs.c:362
 msgid "  -a:           import database automatically after start.\n"
 msgstr ""
 "  -a:           importa automáticamente la base de datos al arrancar.\n"
 
-#: src/prefs.c:313
+#: ../src/prefs.c:363
 msgid "  --auto:       same as '-a'.\n"
 msgstr "  --auto:       igual que '-a'.\n"
 
-#: src/prefs_window.c:119
+#: ../src/prefs.c:560
+#, c-format
+msgid "Couldn't create ~/.gtkpod\n"
+msgstr "No se ha podido crear ~/.gtkpod\n"
+
+#: ../src/prefs_window.c:134
 msgid "Please select command for 'Play Now'"
 msgstr "Seleccionar programa para 'Reproducir'"
 
-#: src/prefs_window.c:120
+#: ../src/prefs_window.c:135
 msgid "Please select command for 'Enqueue'"
 msgstr "Seleccionar programa para 'Encolar'"
 
-#: src/prefs_window.c:121
+#: ../src/prefs_window.c:136
 msgid "Please select the mp3gain executable"
 msgstr "Seleccionar el ejecutable mp3gain"
 
-#: src/prefs_window.c:124
+#: ../src/prefs_window.c:137
+msgid "Please select the aacgain executable"
+msgstr "Seleccionar el ejecutable aacgain"
+
+#: ../src/prefs_window.c:138
 msgid "Select the mserv music root directory"
 msgstr "Seleccionar el directorio raíz de música de mserv"
 
-#: src/prefs_window.c:125
+#: ../src/prefs_window.c:139
 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:140
+msgid "Select the ogg/vorbis converter command"
+msgstr "Seleccionar el comando de conversión a ogg/vorbis."
 
-#: src/prefs_window.c:911 src/prefs_window.c:929
+#: ../src/prefs_window.c:141
+msgid "Select the flac converter command"
+msgstr "Seleccionar el comando de conversión a flac."
+
+#: ../src/prefs_window.c:142
+msgid "Select the m4a converter command."
+msgstr "Seleccionar el comando de conversión a m4a."
+
+#: ../src/prefs_window.c:143
+msgid "Select the mp3 converter command."
+msgstr "Seleccionar el comando de conversión a mp3."
+
+#: ../src/prefs_window.c:144
+msgid "Select the wav converter command."
+msgstr "Seleccionar el comando de conversión a wav."
+
+#: ../src/prefs_window.c:211 ../src/repository.c:662
+#, c-format
+msgid ""
+"<i>Have a look at the scripts provided in '%s'. If you write a new script or "
+"improve an existing one, 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 o mejorar uno existente, por favor, envielo a jcsjcs en users."
+"sourceforge.net para añadirlo en la siguiente publicación.</i>"
+
+#: ../src/prefs_window.c:986 ../src/prefs_window.c:1004
 msgid "Preferences not updated"
 msgstr "Preferencias no actualizadas"
 
-#: src/prefs_window.c:938
+#: ../src/prefs_window.c:1013
 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
+#: ../src/repository.c:573 ../src/repository.c:2395
 msgid "Set backup file"
 msgstr "Configurar fichero de copia de seguridad"
 
-#: src/repository.c:615
+#: ../src/repository.c:612
 msgid "Select directory for synchronization"
 msgstr "Seleccionar directorio a sincronizar"
 
-#: src/repository.c:641
+#: ../src/repository.c:638
 msgid "Please select command to sync contacts"
 msgstr "Seleccionar programa para sincronizar contactos"
 
-#: src/repository.c:647
+#: ../src/repository.c:644
 msgid "Please select command to sync calendar"
 msgstr "Seleccionar programa para sincronizar calendario"
 
-#: src/repository.c:653
+#: ../src/repository.c:650
 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
+#: ../src/repository.c:729
 msgid "Smart playlist updated."
 msgstr "Lista de reproducción inteligente actualizada."
 
-#: src/repository.c:1193
+#: ../src/repository.c:1190
 msgid "Podcasts Repository"
 msgstr "Repositorio de podcasts"
 
-#: src/repository.c:1197
+#: ../src/repository.c:1194
 msgid "Local Repository"
 msgstr "Repositorio local"
 
-#: src/repository.c:1351
+#: ../src/repository.c:1348
 msgid "Master Playlist"
 msgstr "Lista de reproducción principal"
 
-#: src/repository.c:1355
+#: ../src/repository.c:1352
 msgid "Podcasts Playlist"
 msgstr "Lista de reproducción de podcasts"
 
-#: src/repository.c:1363
+#: ../src/repository.c:1360
 msgid "Regular Playlist"
 msgstr "Lista de reproducción regular"
 
-#: src/repository.c:2426
+#: ../src/repository.c:2423
 msgid "Set local repository file"
 msgstr "Configurar el fichero de repositorio local"
 
-#: src/repository.c:2525
+#: ../src/repository.c:2522
 msgid "New Repository"
 msgstr "Nuevo repositorio"
 
-#: src/support.c:90 src/support.c:114
+#: ../src/sha1.c:186
+msgid "Hashed file is 0 bytes long\n"
+msgstr "El fichero de resumen tiene una longitud de 0 bytes\n"
+
+#: ../src/sha1.c:239
 #, c-format
-msgid "Couldn't find pixmap file: %s"
-msgstr "No se puede encontrar el fichero de mapa de píxeles: %s"
+msgid "Could not open '%s' to calculate SHA1 checksum: %s\n"
+msgstr "No se puede abrir '%s' para calcuar la suma de comprobación SHA1: %s\n"
 
-#: src/syncdir.c:237
+#: ../src/syncdir.c:237
 #, c-format
 msgid "Sync summary for %s/%s\n"
 msgstr "Sincronizar resumen para %s/%s\n"
 
-#: src/syncdir.c:246
+#: ../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
+#: ../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
+#: ../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
+#: ../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
+#: ../src/syncdir.c:277
 msgid "Nothing was changed.\n"
 msgstr "No ha habido cambios.\n"
 
-#: src/syncdir.c:282
+#: ../src/syncdir.c:282
 msgid "Sync summary"
 msgstr "Sincronizar resumen"
 
-#: src/tools.c:119
+#: ../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"
+"Could not find '%s'.\n"
+"Please specifiy the exact path in the Tools section of the preference dialog "
+"or install the program 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 "
+"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
+#: ../src/tools.c:204
 #, c-format
 msgid ""
 "Execution of '%s' failed.\n"
@@ -4824,7 +5426,7 @@
 "Error al ejecutar '%s'.\n"
 "\n"
 
-#: src/tools.c:249
+#: ../src/tools.c:249
 #, c-format
 msgid ""
 "Did not normalize '%s'. Set mp3gain path in the Tools section of the "
@@ -4833,7 +5435,7 @@
 "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
+#: ../src/tools.c:259
 #, c-format
 msgid ""
 "Did not normalize '%s'. Set aacgain path in the Tools section of the "
@@ -4842,24 +5444,24 @@
 "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
+#: ../src/tools.c:386
 msgid "Normalizing..."
 msgstr "Normalizando..."
 
-#: src/tools.c:434
+#: ../src/tools.c:436
 #, c-format
 msgid "%s - %s"
 msgstr "%s - %s"
 
-#: src/tools.c:460
+#: ../src/tools.c:462
 msgid "Aborting..."
 msgstr "Cancelando..."
 
-#: src/tools.c:464
+#: ../src/tools.c:466
 msgid "Will abort after current mp3gain process ends."
 msgstr "Se cancelará al termino del actual proceso de mp3gain."
 
-#: src/tools.c:490
+#: ../src/tools.c:492
 #, c-format
 msgid ""
 "'%s-%s' (%s) could not be normalized.\n"
@@ -4868,14 +5470,14 @@
 "'%s-%s' (%s) no se ha podido normalizar.\n"
 "\n"
 
-#: src/tools.c:529
+#: ../src/tools.c:531
 #, 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
+#: ../src/tools.c:634
 msgid ""
 "Please specify the command to be called on the 'Tools' section of the "
 "preferences dialog.\n"
@@ -4883,7 +5485,7 @@
 "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
+#: ../src/tools.c:646
 #, c-format
 msgid ""
 "Could not find the command '%s'.\n"
@@ -4897,7 +5499,7 @@
 "edición de preferencias.\n"
 "\n"
 
-#: src/tools.c:685
+#: ../src/tools.c:687
 #, c-format
 msgid ""
 "'%s' returned the following output:\n"
@@ -4906,37 +5508,23 @@
 "'%s' ha devuelto:\n"
 "%s\n"
 
-#: src/tools.c:752
+#: ../src/tools.c:754
 #, c-format
 msgid "No command set for '%s'"
 msgstr "No hay programa configurado para '%s'"
 
-#: src/tools.c:772
+#: ../src/tools.c:774
 #, 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
+#: ../src/wavfile.c:181
 #, 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 "label21"
+#~ msgstr "etiqueta21"
 
-#~ msgid "Handle mounting/unmounting of iPod drive"
-#~ msgstr "Manejo del montaje/desmontaje del iPod"
-
-#~ msgid "<b>Artwork</b>"
-#~ msgstr "<b>Trabajo artístico</b>"
+#~ msgid "window1"
+#~ msgstr "ventana1"

Deleted: gtkpod/trunk/po/fr.gmo
===================================================================
(Binary files differ)

Modified: gtkpod/trunk/po/fr.po
===================================================================
--- gtkpod/trunk/po/fr.po	2007-06-27 20:59:02 UTC (rev 193)
+++ gtkpod/trunk/po/fr.po	2007-06-27 21:27:12 UTC (rev 194)
@@ -1,6 +1,6 @@
 # French language translation for gtkpod 
-# Copyright (C) 2005 Éric Lassauge
-# Éric Lassauge <lassauge at users.sf.net>, 2005.
+# Copyright (C) 2005-2006 Eric Lassauge
+# Eric Lassauge <lassauge at users.sf.net>, 2006.
 # Copyright (C) 2003 David Le Brun
 # David Le Brun <david at dyn-ns.net>, 2003.
 #
@@ -9,776 +9,795 @@
 msgstr ""
 "Project-Id-Version: gtkpod 0.94\n"
 "Report-Msgid-Bugs-To: \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"
+"POT-Creation-Date: 2007-06-14 22:57+0900\n"
+"PO-Revision-Date: 2007-01-08 21:37+0900\n"
+"Last-Translator: Eric Lassauge <lassauge at users.sf.net>\n"
 "Language-Team: FR\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"
 
-#: gtkpod.glade:7
-msgid "gtkpod"
+#: ../data/gtkpod.desktop.in.h:1
+#, fuzzy
+msgid "GtkPod"
 msgstr "gtkpod"
 
-#: gtkpod.glade:40
-msgid "_File"
-msgstr "_Fichier"
+#: ../data/gtkpod.desktop.in.h:2
+msgid "Manage music and video on an Apple iPod"
+msgstr ""
 
-#: gtkpod.glade:49
-#, fuzzy
-msgid "_Load iPod(s)"
-msgstr "_iPod"
-
-#: gtkpod.glade:69
-msgid "_Save Changes"
+#: ../data/gtkpod.desktop.in.h:3
+msgid "iPod Manager"
 msgstr ""
 
-#: gtkpod.glade:90
-msgid "Add _Files"
-msgstr "Ajouter des _fichiers"
+#: ../data/gtkpod.glade.h:1
+msgid " "
+msgstr " "
 
-#: gtkpod.glade:111
-msgid "Add _Directory"
-msgstr "Ajouter un _répertoire"
+#: ../data/gtkpod.glade.h:2
+msgid "    "
+msgstr "     "
 
-#: gtkpod.glade:132
-msgid "Add _Playlist"
-msgstr "Ajouter une _liste de lecture"
+#: ../data/gtkpod.glade.h:3
+msgid "     "
+msgstr "     "
 
-#: gtkpod.glade:159
-msgid "_Update Tracks from File"
-msgstr "_Mettre à jour les morceaux à partir des fichiers"
+#: ../data/gtkpod.glade.h:4
+msgid "      "
+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 "_Liste de lecture sélectionnée"
+#: ../data/gtkpod.glade.h:5
+msgid "   Sort by:"
+msgstr "   Trier par :"
 
-#: 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"
+#: ../data/gtkpod.glade.h:6
+msgid " <= cts <= "
+msgstr " <= et <= "
 
-#: 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"
+#: ../data/gtkpod.glade.h:7
+msgid " Logic: "
+msgstr " Opérateur logique : "
 
-#: gtkpod.glade:211
-msgid "Update _mserv Data from File"
-msgstr "_Mettre à jour les données mserv à partir des fichiers"
+#: ../data/gtkpod.glade.h:9
+#, no-c-format
+msgid "%A"
+msgstr "%A"
 
-#: gtkpod.glade:263
-#, fuzzy
-msgid "_Synchronize Playlist"
-msgstr "Tout synchroniser"
+#: ../data/gtkpod.glade.h:10
+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. Appuyer sur «Entrée» "
+"pour valider."
 
-#: gtkpod.glade:290
-msgid "_Export Tracks from Database"
-msgstr "_Exporter les morceaux de la base de données"
+#: ../data/gtkpod.glade.h:11
+msgid "'aacgain' executable:"
+msgstr "Chemin de l'exécutable «aacgain» :"
 
-#: gtkpod.glade:342
-msgid "Create _Playlist File"
-msgstr "Créer un _fichier de liste"
+#: ../data/gtkpod.glade.h:12
+msgid "'mp3gain' executable:"
+msgstr "Chemin de l'exécutable «mp3gain» :"
 
-#: gtkpod.glade:400
-msgid "_Create iPod's Directories"
-msgstr "_Créer les répertoires système de l'iPod"
+#: ../data/gtkpod.glade.h:13
+msgid "(Checked)"
+msgstr "(Coché)"
 
-#: 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)"
+#: ../data/gtkpod.glade.h:14
+msgid "...as icons"
+msgstr "...avec seulement les icônes"
 
-#: gtkpod.glade:422
-msgid "_Check iPod's Files"
-msgstr "_Contrôler les fichiers de l'iPod"
+#: ../data/gtkpod.glade.h:15
+msgid "...as text"
+msgstr "...avec seulement les libellés"
 
-#: gtkpod.glade:450 gtkpod.glade:12687
-msgid "_Edit"
-msgstr "_Édition"
+#: ../data/gtkpod.glade.h:16
+msgid "...both as icons and text"
+msgstr "...avec les icônes et libellés"
 
-#: gtkpod.glade:459 src/context_menus.c:480
-msgid "Edit Track Details"
-msgstr ""
+#: ../data/gtkpod.glade.h:17
+msgid "...entry 'All' in sort tab..."
+msgstr "...onglet «Tous» dans la zone de tri..."
 
-#: gtkpod.glade:480
-#, fuzzy
-msgid "Tracks in Selected _Playlist"
-msgstr "_Liste de lecture sélectionnée"
+#: ../data/gtkpod.glade.h:18
+msgid "...master playlist"
+msgstr "...liste de lecture principale"
 
-#: gtkpod.glade:489
-#, fuzzy
-msgid "Tracks in Selected Tab _Entry"
-msgstr "Zon_e de tri sélectionnée"
+#: ../data/gtkpod.glade.h:20
+#, no-c-format
+msgid "../%A.jpg"
+msgstr "../%A.jpg"
 
-#: gtkpod.glade:511 src/context_menus.c:407
-msgid "Edit Smart Playlist"
-msgstr "Éditer la liste intelligente"
+#: ../data/gtkpod.glade.h:21
+msgid "0"
+msgstr "0"
 
-#: gtkpod.glade:520
-msgid "_Delete"
-msgstr ""
+#: ../data/gtkpod.glade.h:22
+msgid "1"
+msgstr "1"
 
-#: gtkpod.glade:541
-#, fuzzy
-msgid "Selected playlist"
-msgstr "_Liste de lecture sélectionnée"
+#: ../data/gtkpod.glade.h:23
+msgid "2"
+msgstr "2"
 
-#: gtkpod.glade:550
-#, fuzzy
-msgid "Selected playlist including tracks from iPod"
-msgstr "Liste de lecture «%s» supprimée avec %d morceau"
+#: ../data/gtkpod.glade.h:24
+msgid "3"
+msgstr "3"
 
-#: gtkpod.glade:559
-#, fuzzy
-msgid "Selected playlist including tracks from database"
-msgstr "Supprimer les morceaux inclus (base de données)"
+#: ../data/gtkpod.glade.h:25
+msgid "4"
+msgstr "4"
 
-#: 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."
+#: ../data/gtkpod.glade.h:26
+msgid "5"
+msgstr "5"
 
-#: gtkpod.glade:583
-#, fuzzy
-msgid "Selected filter tab entry from playlist"
-msgstr "%d morceau supprimé de la liste de lecture «%s»"
+#: ../data/gtkpod.glade.h:27
+msgid ":"
+msgstr " :"
 
-#: gtkpod.glade:592
-#, fuzzy
-msgid "Selected filter tab entry from iPod"
-msgstr "Suppression d'un morceau de l'iPod"
+#: ../data/gtkpod.glade.h:28
+msgid "<"
+msgstr ""
 
-#: gtkpod.glade:601
+#: ../data/gtkpod.glade.h:29
 #, fuzzy
-msgid "Selected filter tab entry from database"
-msgstr "1 morceau supprimé de la base de données locale"
+msgid "<b>Account Information</b>"
+msgstr "<b>Confirmation de suppression</b>"
 
-#: gtkpod.glade:610
-#, fuzzy
-msgid "Selected filter tab entry from harddisk"
-msgstr "%d morceau supprimé du disque dur"
+#: ../data/gtkpod.glade.h:30
+msgid "<b>Adding/Updating/Syncing</b>"
+msgstr "<b>Ajout/Mise à jour/Synchronisation</b>"
 
-#: gtkpod.glade:625
+#: ../data/gtkpod.glade.h:31
 #, fuzzy
-msgid "Selected tracks from playlist"
-msgstr "%d morceau supprimé de la liste de lecture «%s»"
+msgid "<b>Audioscrobbler</b>"
+msgstr "<b>Barre d'outils</b>"
 
-#: gtkpod.glade:634
-#, fuzzy
-msgid "Selected tracks from iPod"
-msgstr "Suppression d'un morceau de l'iPod"
+#: ../data/gtkpod.glade.h:32
+msgid "<b>Auto-Generated Playlists</b>"
+msgstr "<b>Listes de lecture générées automatiquement</b>"
 
-#: gtkpod.glade:643
-#, fuzzy
-msgid "Selected tracks from database"
-msgstr "1 morceau supprimé de la base de données locale"
+#: ../data/gtkpod.glade.h:33
+msgid "<b>Automatically select...</b>"
+msgstr "<b>Sélection automatique...</b>"
 
-#: gtkpod.glade:652
-#, fuzzy
-msgid "Selected tracks from harddisk"
-msgstr "%d morceau supprimé du disque dur"
+#: ../data/gtkpod.glade.h:34
+msgid "<b>Calendar/Contacts/Notes</b>"
+msgstr "<b>Calendrier/Contacts/Notes</b>"
 
-#: gtkpod.glade:671
-msgid "_Create Playlists"
-msgstr "_Créer une liste de lecture"
+#: ../data/gtkpod.glade.h:35
+msgid "<b>Coverart</b>"
+msgstr "<b>Pochette</b>"
 
-#: gtkpod.glade:692
-msgid "Empty Playlist"
-msgstr "Vide"
+#: ../data/gtkpod.glade.h:36
+msgid "<b>Delete Confirmation</b>"
+msgstr "<b>Confirmation de suppression</b>"
 
-#: gtkpod.glade:701 gtkpod.glade:7379 src/misc_playlist.c:97
-#: src/repository.c:1359
-msgid "Smart Playlist"
-msgstr "Intelligente"
+#: ../data/gtkpod.glade.h:37
+msgid "<b>Displayed Track Attributes</b>"
+msgstr "<b>Attributs des morceaux affichés</b>"
 
-#: gtkpod.glade:716
-msgid "Random Playlist from Displayed Tracks"
-msgstr "Contenant les morceaux affichés aléatoirement"
+#: ../data/gtkpod.glade.h:38
+msgid "<b>Examples</b>"
+msgstr "<b>Exemples</b>"
 
-#: gtkpod.glade:725
-msgid "Containing Displayed Tracks"
-msgstr "Contenant les morceaux affichés"
+#: ../data/gtkpod.glade.h:39
+msgid "<b>Ignore Frequent Words</b>"
+msgstr "<b>Ignorer les mots courants</b>"
 
-#: gtkpod.glade:734
-msgid "Containing Selected Tracks"
-msgstr "Contenant les morceaux sélectionnés"
+#: ../data/gtkpod.glade.h:40
+msgid "<b>Misc</b>"
+msgstr "<b>Divers</b>"
 
-#: gtkpod.glade:743
-msgid "One for each Artist"
-msgstr "Par artiste"
+#: ../data/gtkpod.glade.h:41
+msgid "<b>Mountpoint and individual repository/playlist options</b>"
+msgstr "<b>Point de montage et options pour dépots/listes</b>"
 
-#: gtkpod.glade:752
-msgid "One for each Album"
-msgstr "Par album"
+#: ../data/gtkpod.glade.h:42
+#, fuzzy
+msgid "<b>On-the-fly Conversion</b>"
+msgstr "<b>Confirmation de suppression</b>"
 
-#: gtkpod.glade:761
-msgid "One for each Genre"
-msgstr "Par genre"
+#: ../data/gtkpod.glade.h:43
+msgid "<b>Play</b>"
+msgstr "<b>Jouer</b>"
 
-#: gtkpod.glade:770
-msgid "One for each Composer"
-msgstr "Par compositeur"
+#: ../data/gtkpod.glade.h:44
+msgid "<b>Playlists</b>"
+msgstr "<b>Listes</b>"
 
-#: gtkpod.glade:779
-msgid "One for each Year"
-msgstr "Par année"
+#: ../data/gtkpod.glade.h:45
+msgid "<b>Please select mountpoint and your iPod model</b>"
+msgstr "<b>Sélectionnez le point de montage et le modèle de votre iPod</b>"
 
-#: gtkpod.glade:788
-msgid "One for each Rating"
-msgstr "Par note"
+#: ../data/gtkpod.glade.h:46
+msgid "<b>Repositories</b>"
+msgstr "<b>Dépots</b>"
 
-#: gtkpod.glade:797
-msgid "Best Rated Tracks"
-msgstr "Contenant les morceaux les mieux notés"
+#: ../data/gtkpod.glade.h:47
+msgid "<b>Sort Order</b>"
+msgstr "<b>Ordre de tri</b>"
 
-#: gtkpod.glade:806
-msgid "Tracks Most Often Listened To"
-msgstr "Contenant les morceaux les plus écoutés"
+#: ../data/gtkpod.glade.h:48
+msgid "<b>Sort Tabs</b>"
+msgstr "<b>Zones de tri</b>"
 
-#: gtkpod.glade:815
-msgid "Most Recently Played Tracks"
-msgstr "Contenant les morceaux dernièrement joués"
+#: ../data/gtkpod.glade.h:49
+msgid "<b>Sync</b>"
+msgstr "<b>Synchroniser</b>"
 
-#: gtkpod.glade:824
-msgid "All Tracks Played Since Last Time"
-msgstr "Contenant les morceaux joués depuis la dernière fois"
+#: ../data/gtkpod.glade.h:50
+msgid "<b>Synchronization</b>"
+msgstr "<b>Synchronisation</b>"
 
-#: gtkpod.glade:833
-msgid "All Tracks Never Listened To"
-msgstr "Contenant les morceaux qui n'ont jamais été écoutés"
+#: ../data/gtkpod.glade.h:51
+msgid "<b>Tag Reading</b>"
+msgstr "<b>Lecture des attributs</b>"
 
-#: gtkpod.glade:842
-msgid "All Tracks not Listed in any Playlist"
-msgstr "Contenant tous les morceaux qui n'appartiennent à aucune liste"
+#: ../data/gtkpod.glade.h:52
+msgid "<b>Toolbar</b>"
+msgstr "<b>Barre d'outils</b>"
 
-#: gtkpod.glade:861
-msgid "_Sorting"
-msgstr "_Tri"
+#: ../data/gtkpod.glade.h:53
+msgid "<b>Tooltips</b>"
+msgstr "<b>Infobulles</b>"
 
-#: gtkpod.glade:883
-msgid "Randomize Current Playlist"
-msgstr "Mélanger l'ordre de la liste de lecture actuelle"
+#: ../data/gtkpod.glade.h:54
+msgid "<b>Track Editing</b>"
+msgstr "<b>Édition de morceau</b>"
 
-#: gtkpod.glade:892
-msgid "_Save Displayed Track Order"
-msgstr "_Sauver l'ordre de tri des morceaux affichés"
+#: ../data/gtkpod.glade.h:55
+msgid "<b>Volume Normalization</b>"
+msgstr "<b>Normalisation du volume</b>"
 
-#: gtkpod.glade:920
-#, fuzzy
-msgid "Edit Repository/iPod Options"
-msgstr "Options de tri"
+#: ../data/gtkpod.glade.h:56
+msgid "<b>mserv</b>"
+msgstr "<b>mserv</b>"
 
-#: gtkpod.glade:941
-#, fuzzy
-msgid "Edit _Preferences"
-msgstr "_Préférences"
+#: ../data/gtkpod.glade.h:57
+msgid ">"
+msgstr ""
 
-#: gtkpod.glade:967
-msgid "_View"
-msgstr "_Affichage"
+#: ../data/gtkpod.glade.h:58
+msgid "About gtkpod"
+msgstr "A propos de gtkpod"
 
-#: gtkpod.glade:976
-msgid "_Toolbar"
-msgstr "_Barre d'outils"
+#: ../data/gtkpod.glade.h:59
+msgid "Add Directories Recursively"
+msgstr "Ajouter récursivement des répertoires."
 
-#: gtkpod.glade:986
-msgid "_Tooltips"
-msgstr "_Infobulles"
+#: ../data/gtkpod.glade.h:60
+msgid "Add Files or Directories"
+msgstr "Ajouter des fichiers ou répertoires."
 
-#: gtkpod.glade:996
-msgid "_Info Window"
-msgstr "_Fenêtre d'infos"
+#: ../data/gtkpod.glade.h:61
+msgid "Add _Directory"
+msgstr "Ajouter un _répertoire"
 
-#: gtkpod.glade:1007
-msgid "_More Sort Tabs"
-msgstr "_Ajouter une zone de tri"
+#: ../data/gtkpod.glade.h:62
+msgid "Add _Files"
+msgstr "Ajouter des _fichiers"
 
-#: gtkpod.glade:1028
-msgid "_Less Sort Tabs"
-msgstr "_Supprimer une zone de tri"
+#: ../data/gtkpod.glade.h:63
+msgid "Add _Playlist"
+msgstr "Ajouter une _liste de lecture"
 
-#: gtkpod.glade:1049
-msgid "_Arrange Sort Tabs"
-msgstr "_Organiser les zones de tri"
+#: ../data/gtkpod.glade.h:64
+msgid "Add coverart from file using the following template"
+msgstr ""
+"Ajouter la pochette depuis un fichier en utilisant l'expression suivante"
 
-#: gtkpod.glade:1062 gtkpod.glade:13297
-msgid "_Tools"
-msgstr "_Outils"
+#: ../data/gtkpod.glade.h:65
+msgid "Add directories recursively"
+msgstr "Ajouter les répertoires récursivement"
 
-#: gtkpod.glade:1071
-msgid "_Play Now"
-msgstr "_Jouer maintenant"
+#: ../data/gtkpod.glade.h:66
+msgid "Add new repository/iPod"
+msgstr "Ajouter un nouvel iPod/dépot"
 
-#: gtkpod.glade:1123
-msgid "_Enqueue"
-msgstr "_Ajouter à la file d'attente"
+#: ../data/gtkpod.glade.h:67
+msgid "Add playlist from file"
+msgstr "Ajouter une liste de lecture depuis un fichier."
 
-#: gtkpod.glade:1181
-msgid "_Normalize Volume"
-msgstr "_Normaliser le volume"
+#: ../data/gtkpod.glade.h:68 ../src/display_sorttabs.c:3232
+#: ../src/display_tracks.c:1996
+msgid "Added"
+msgstr "Ajouté"
 
-#: gtkpod.glade:1217
-msgid "_Displayed Tracks"
-msgstr "_Morceaux affichés"
+#: ../data/gtkpod.glade.h:69
+msgid "Advanced Sorting Options"
+msgstr "Options de tri avancées"
 
-#: gtkpod.glade:1226
-msgid "_All Tracks"
-msgstr "_Tous les morceaux"
+#. 0
+#: ../data/gtkpod.glade.h:70 ../src/display_sorttabs.c:2954
+#: ../src/display_spl.c:84 ../src/misc_conversion.c:60
+msgid "Album"
+msgstr "Album"
 
-#: gtkpod.glade:1235
-msgid "_Newly Added Tracks"
-msgstr "_Nouveaux morceaux ajoutés"
+#: ../data/gtkpod.glade.h:71
+#, fuzzy
+msgid "Album Art"
+msgstr "Album"
 
-#: gtkpod.glade:1254
-msgid "Synchronise Contacts, Calendar and Notes"
-msgstr "Synchroniser le calendrier, contacts et notes"
+#: ../data/gtkpod.glade.h:72
+msgid "All (AND)"
+msgstr "Et"
 
-#: gtkpod.glade:1255
-msgid "Synchronize All"
-msgstr "Tout synchroniser"
+#: ../data/gtkpod.glade.h:73
+msgid "All Tracks Never Listened To"
+msgstr "Contenant les morceaux qui n'ont jamais été écoutés"
 
-#: gtkpod.glade:1264
-msgid "Synchronize Contacts"
-msgstr "Synchroniser les contacts"
+#: ../data/gtkpod.glade.h:74
+msgid "All Tracks Played Since Last Time"
+msgstr "Contenant les morceaux joués depuis la dernière fois"
 
-#: gtkpod.glade:1273
-msgid "Synchronize Calendar"
-msgstr "Synchroniser le calendrier"
+#: ../data/gtkpod.glade.h:75
+msgid "All Tracks not Listed in any Playlist"
+msgstr "Contenant tous les morceaux qui n'appartiennent à aucune liste"
 
-#: gtkpod.glade:1282
-msgid "Synchronize Notes"
-msgstr "Synchroniser les notes"
+#: ../data/gtkpod.glade.h:76
+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:1295
-msgid "_Help"
-msgstr "A_ide"
+#: ../data/gtkpod.glade.h:77
+msgid "Always write ID3v2.4 tags (only applies to MP3)"
+msgstr "Toujours écrire les attributs ID3v2.4 (s'applique seulement aux MP3)"
 
-#: gtkpod.glade:1304
-msgid "_About"
-msgstr "A _propos"
+#: ../data/gtkpod.glade.h:78
+msgid "Any (OR)"
+msgstr "Ou"
 
-#: gtkpod.glade:1344
+#: ../data/gtkpod.glade.h:79 ../src/display_sorttabs.c:2951
+#: ../src/display_spl.c:85 ../src/misc_conversion.c:61
+msgid "Artist"
+msgstr "Artiste"
+
+#: ../data/gtkpod.glade.h:80
 msgid ""
-"Try to load contents of all connected iPods. For each iPod a separate "
-"repository must be set up."
+"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:1345
-#, fuzzy
-msgid "Load iPod(s)"
-msgstr "_iPod"
+#: ../data/gtkpod.glade.h:82
+msgid "Ascending"
+msgstr "Croissant"
 
-#: gtkpod.glade:1362
-msgid "Write all changes made to the disk and the iPod(s)."
+#: ../data/gtkpod.glade.h:83
+msgid ""
+"Audio/Video\n"
+"Audio\n"
+"Video\n"
+"Podcast\n"
+"Video Podcast\n"
+"Audiobook\n"
+"Music Video\n"
+"TV Show\n"
+"TV Show & Music Video\n"
 msgstr ""
 
-#: gtkpod.glade:1363 src/context_menus.c:507
-msgid "Save Changes"
+#: ../data/gtkpod.glade.h:93
+msgid "Auto Store"
+msgstr "Sauver automatiquement"
+
+#: ../data/gtkpod.glade.h:94
+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:1380
-msgid "Add Files or Directories"
-msgstr "Ajouter des fichiers ou répertoires"
+#: ../data/gtkpod.glade.h:95
+msgid "Before removing playlists or tracks from a playlist"
+msgstr "Avant de supprimer les listes ou morceaux d'une liste de lecture"
 
-#: gtkpod.glade:1381
-msgid "Files"
-msgstr "Fichiers"
+#: ../data/gtkpod.glade.h:96
+msgid "Before removing tracks from the harddisk"
+msgstr "Avant de supprimer complètement les morceaux du disque dur"
 
-#: gtkpod.glade:1398
-msgid "Add Directories Recursively"
-msgstr "Ajouter récursivement des répertoires"
+#: ../data/gtkpod.glade.h:97
+msgid "Before removing tracks from the iPod"
+msgstr "Avant de supprimer complètement les morceaux de l'iPod"
 
-#: gtkpod.glade:1399
-msgid "Dirs"
-msgstr "Répertoires"
+#: ../data/gtkpod.glade.h:98
+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:1416
-msgid "Add playlist from file"
-msgstr "Ajouter une liste de lecture"
+#: ../data/gtkpod.glade.h:99
+msgid "Best Rated Tracks"
+msgstr "Contenant les morceaux les mieux notés"
 
-#: gtkpod.glade:1417 src/display_spl.c:105
-msgid "Playlist"
-msgstr "Liste de lecture"
+#: ../data/gtkpod.glade.h:100
+msgid "Browse"
+msgstr "Parcourir"
 
-#: gtkpod.glade:1434
-msgid "Create New Playlist"
-msgstr "Créer une liste de lecture"
+#: ../data/gtkpod.glade.h:101
+#, fuzzy
+msgid "Cache directory:"
+msgstr "Ajouter un _répertoire"
 
-#: gtkpod.glade:1435
-msgid "New PL"
-msgstr "Nouvelle liste"
+#: ../data/gtkpod.glade.h:102
+msgid "Calendar"
+msgstr "Calendrier"
 
-#: gtkpod.glade:1451
-msgid "Stop Display Update"
-msgstr "Annuler la mise à jour de l'affichage"
+#: ../data/gtkpod.glade.h:103
+msgid "Calendar sync command:"
+msgstr "Commande pour la synchronisation du calendrier :"
 
-#: gtkpod.glade:1452
-msgid "Stop"
-msgstr "Interrompre"
+#: ../data/gtkpod.glade.h:104
+msgid "Call automatically when synchronizing iTunesDB"
+msgstr "Exécuter en même temps que la synchronisation de la base iTunesDB"
 
-#: gtkpod.glade:1625
-msgid "About gtkpod"
-msgstr "A propos de gtkpod"
+#: ../data/gtkpod.glade.h:105
+msgid "Category: "
+msgstr "Catégorie : "
 
-#: gtkpod.glade:1752
-msgid "Credits"
-msgstr "Crédits"
+#: ../data/gtkpod.glade.h:106
+msgid ""
+"Change all tracks\n"
+"simultaneously"
+msgstr ""
+"Changer tous les morceaux\n"
+"simultanément"
 
-#: gtkpod.glade:1810
-msgid "Translators"
-msgstr "Traducteurs"
-
-#: gtkpod.glade:1868
-msgid "special_sorttab -- Don't translate!"
+#: ../data/gtkpod.glade.h:108
+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:1903
-msgid " Logic: "
-msgstr " Opérateur logique : "
+#: ../data/gtkpod.glade.h:109
+msgid "Command for 'Enqueue':"
+msgstr "Ligne de commande pour «Ajouter à la file d'attente» :"
 
-#: gtkpod.glade:1929
-msgid "Any (OR)"
-msgstr "Ou"
+#: ../data/gtkpod.glade.h:110
+msgid "Command for 'Play now':"
+msgstr "Ligne de commande pour «Jouer maintenant» :"
 
-#: gtkpod.glade:1948
-msgid "All (AND)"
-msgstr "Et"
+#. 5
+#: ../data/gtkpod.glade.h:111 ../src/display_spl.c:97
+#: ../src/misc_conversion.c:65
+msgid "Composer"
+msgstr "Compositeur"
 
-#: gtkpod.glade:2001
-msgid "0"
-msgstr "0"
+#: ../data/gtkpod.glade.h:112
+msgid "Confirm before removing tracks from the iPod or repository"
+msgstr "Confirmer avant de supprimer les morceaux de l'iPod ou du dépot"
 
-#: gtkpod.glade:2020
-msgid "1"
-msgstr "1"
+#: ../data/gtkpod.glade.h:113
+msgid ""
+"Confirm before removing tracks from the iPod or repository\n"
+"when syncing playlists"
+msgstr ""
+"Confirmer avant de supprimer les morceaux de l'iPod ou du dépot\n"
+"lors de la synchronisation des listes"
 
-#: gtkpod.glade:2039
-msgid "2"
-msgstr "2"
+#: ../data/gtkpod.glade.h:115
+msgid "Confirm lists of directories"
+msgstr "Confirmer la liste des répertoires"
 
-#: gtkpod.glade:2058
-msgid "3"
-msgstr "3"
+#: ../data/gtkpod.glade.h:116
+msgid "Contacts sync command:"
+msgstr "Commande pour la synchronisation des contacts :"
 
-#: gtkpod.glade:2077
-msgid "4"
-msgstr "4"
+#: ../data/gtkpod.glade.h:117
+msgid "Containing Displayed Tracks"
+msgstr "Contenant les morceaux affichés"
 
-#: gtkpod.glade:2096
-msgid "5"
-msgstr "5"
+#: ../data/gtkpod.glade.h:118
+msgid "Containing Selected Tracks"
+msgstr "Contenant les morceaux sélectionnés"
 
-#: gtkpod.glade:2135
-msgid "Select '0' for no lower limit."
-msgstr "Choisissez «0» pour aucune limite inférieure."
+#: ../data/gtkpod.glade.h:119
+msgid "Conversion Progress Display"
+msgstr ""
 
-#: gtkpod.glade:2156
-msgid " <= cts <= "
-msgstr " <= et <= "
+#: ../data/gtkpod.glade.h:120
+msgid "Cover"
+msgstr "Pochette"
 
-#: gtkpod.glade:2181
-msgid "Select '-1' for no upper limit."
-msgstr "Choisissez «-1» pour aucune limite supérieure."
+#: ../data/gtkpod.glade.h:121
+msgid "Create New Playlist"
+msgstr "Créer une nouvelle liste de lecture."
 
-#: 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."
+#: ../data/gtkpod.glade.h:122
+msgid "Create Repository"
+msgstr "Créer un dépot"
 
-#: gtkpod.glade:2270 gtkpod.glade:2347 gtkpod.glade:2517 gtkpod.glade:2696
-msgid "Calendar"
-msgstr "Calendrier"
+#: ../data/gtkpod.glade.h:123
+msgid "Create _Playlist File"
+msgstr "Créer un _fichier de liste"
 
-#: gtkpod.glade:2372
-msgid "Specify interval"
-msgstr "Spécifier un intervalle"
+#: ../data/gtkpod.glade.h:124
+msgid "Credits"
+msgstr "Crédits"
 
-#: gtkpod.glade:2374 src/display_spl.c:98 src/misc_conversion.c:78
-msgid "Playcount"
-msgstr "Cpt. lecture"
+#: ../data/gtkpod.glade.h:125
+msgid "Currently only rating is supported."
+msgstr "Actuellement, seule la notation est supportée."
 
-#: gtkpod.glade:2397 src/display_spl.c:101 src/misc_conversion.c:79
-msgid "Rating"
-msgstr "Note"
+#: ../data/gtkpod.glade.h:126
+msgid "Delete repository"
+msgstr "Supprimer le dépot"
 
-#: gtkpod.glade:2420 src/display_songs.c:1951
-msgid "Played"
-msgstr "Joué le"
+#: ../data/gtkpod.glade.h:127
+#, fuzzy
+msgid ""
+"Delete tracks that are no longer present from the\n"
+"iPod or repository"
+msgstr ""
+"Effacer les morceaux qui ne sont plus présents\n"
+"dans l'iPod ou le dépot"
 
-#: gtkpod.glade:2443 src/display_songs.c:1954
-msgid "Modified"
-msgstr "Modifié le"
+#: ../data/gtkpod.glade.h:129
+msgid "Deleted tracks"
+msgstr "Morceaux supprimés"
 
-#: gtkpod.glade:2542 src/display_songs.c:1957 src/display_sorttabs.c:3218
-msgid "Added"
-msgstr "Ajouté"
+#: ../data/gtkpod.glade.h:130
+msgid "Descending"
+msgstr "Décroissant"
 
-#: gtkpod.glade:2587
-msgid "Display tracks that match the criteria entered above."
-msgstr "Afficher les morceaux qui correspondent aux critères saisis."
+#: ../data/gtkpod.glade.h:131
+msgid "Details"
+msgstr "Détails"
 
-#: gtkpod.glade:2630 gtkpod.glade:12009
-msgid "_Display"
-msgstr "_Affichage"
+#: ../data/gtkpod.glade.h:133
+#, no-c-format
+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» 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, N° de piste: %T, N° de CD: %C, année: %Y, le nom de fichier original "
+"(nécessite le fichier d'infos étendues): %o, le caractère '%': %%."
 
-#: gtkpod.glade:2666
+#: ../data/gtkpod.glade.h:135
+#, no-c-format
 msgid ""
-"Automatically start displaying tracks that match the criteria entered above. "
-"If not selected, you must press 'Display' to start displaying."
+"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 ""
-"Affiche automatiquement les morceaux qui correspondent aux critères saisis."
-"En désactivant cette option, vous devrez appuyer sur 'Afficher'."
+"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, N° de piste: %T, N° de CD: %C, année: %Y, le nom de fichier "
+"original (nécessite le fichier d'infos étendues): %o, le caractère '%': %%."
 
-#: gtkpod.glade:2668
-msgid "Start display automatically"
-msgstr "Afficher automatiquement"
+#: ../data/gtkpod.glade.h:137
+#, no-c-format
+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 du fichier pour la pochette. Vous pouvez séparer les "
+"expressions utilisées dans l'ordre par des points-virgules. Artiste: %a, "
+"album: %A, compositeur; %c, titre: %t, genre: %G, N° de piste: %T, N° de CD: "
+"%C, année: %Y, le nom de fichier original (nécessite le fichier d'infos "
+"étendues): %o, le nom de fichier original sans extension: %O, la liste "
+"courante: %p,  le caractère '%': %%."
 
-#: gtkpod.glade:2743
-msgid "Sorttab: "
-msgstr "Zone de tri :"
+#: ../data/gtkpod.glade.h:138
+msgid ""
+"Directories to sync with are determined from the filenames of the tracks in "
+"the playlist."
+msgstr ""
+"Répertoires à synchroniser déterminés par les noms de fichier des morceaux "
+"de la liste de lecture."
 
-#: gtkpod.glade:2787
-msgid "     "
-msgstr "     "
+#: ../data/gtkpod.glade.h:139
+msgid "Dirs"
+msgstr "Répertoires"
 
-#: gtkpod.glade:2813
-msgid "Category: "
-msgstr "Catégorie : "
+#: ../data/gtkpod.glade.h:140
+msgid "Display a list of tracks that could actually be updated."
+msgstr "Afficher la liste des morceaux qui peuvent être mis à jour."
 
-#: gtkpod.glade:2894
-msgid "Please specify a time interval"
-msgstr "Spécifiez un intervalle de temps"
+#: ../data/gtkpod.glade.h:141
+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:2943
-msgid "Lower Margin"
-msgstr "Borne inférieure"
+#: ../data/gtkpod.glade.h:142
+msgid "Display conversion log"
+msgstr ""
 
-#: gtkpod.glade:2994 gtkpod.glade:3208
-msgid "Time:"
-msgstr "Heure :"
+#: ../data/gtkpod.glade.h:143
+msgid "Display info about detected duplicates"
+msgstr "Afficher les infos au sujet des doublons"
 
-#: gtkpod.glade:3037 gtkpod.glade:3251
-msgid ":"
-msgstr ":"
+#: ../data/gtkpod.glade.h:144
+msgid "Display info about non-updated tracks"
+msgstr "Afficher les infos des morceaux qui n'ont pas été mis à jour"
 
-#: gtkpod.glade:3114
-msgid "No lower margin"
-msgstr "Pas de borne inférieure"
+#: ../data/gtkpod.glade.h:145
+msgid "Display info about updated tracks"
+msgstr "Afficher les infos des morceaux mis à jour"
 
-#: gtkpod.glade:3157
-msgid "Upper margin"
-msgstr "Borne supérieure"
+#: ../data/gtkpod.glade.h:146
+msgid "Display messages and warnings at startup"
+msgstr "Afficher les messages et avertissements au démarrage"
 
-#: gtkpod.glade:3328
-msgid "No upper margin"
-msgstr "Pas de borne supérieure"
+#: ../data/gtkpod.glade.h:147
+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:3426
-msgid "Sorting Options"
-msgstr "Options de tri"
+#: ../data/gtkpod.glade.h:148
+msgid "Display toolbar..."
+msgstr "Afficher la barre d'outils..."
 
-#: gtkpod.glade:3458
-msgid "<b>Sort Order</b>"
-msgstr "<b>Ordre de tri</b>"
+#: ../data/gtkpod.glade.h:149
+msgid "Display tooltips in main window"
+msgstr "Afficher les infobulles dans la fenêtre principale"
 
-#: gtkpod.glade:3489 gtkpod.glade:4762 gtkpod.glade:11638 gtkpod.glade:12134
-#: gtkpod.glade:12249
-msgid "    "
-msgstr "     "
+#: ../data/gtkpod.glade.h:150
+msgid "Display tooltips in prefs window"
+msgstr "Afficher les infobulles dans la fenêtre des préférences"
 
-#: gtkpod.glade:3521
+#: ../data/gtkpod.glade.h:151
+msgid "Display tracks that match the criteria entered above."
+msgstr "Afficher les morceaux qui correspondent aux critères saisis."
+
+#: ../data/gtkpod.glade.h:152
 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."
+"Displayed\n"
+"Tracks"
 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."
+"Morceaux\n"
+"Affichés"
 
-#: gtkpod.glade:3905
-msgid "Ascending"
-msgstr "Croissant"
+#: ../data/gtkpod.glade.h:154
+msgid "Don't allow file duplication"
+msgstr "Ne pas autoriser de doublons de fichiers"
 
-#: gtkpod.glade:3953
-msgid "Descending"
-msgstr "Décroissant"
+#: ../data/gtkpod.glade.h:155
+msgid "Don't automatically sync on startup"
+msgstr "Ne pas synchroniser automatiquement au démarrage"
 
-#: 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."
+#: ../data/gtkpod.glade.h:156
+msgid "Download Cover"
 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."
+#: ../data/gtkpod.glade.h:157
+#, fuzzy
+msgid "Duplicate Recognition is based on a (modified) sha1 hash over the file."
 msgstr ""
-"En cochant cette option, le tri tiendra compte de la casse (minuscule/"
-"majuscule). Le tri dépend du jeu de caractères."
+"La détection de doublons est basée sur la somme de contrôle md5 des fichiers."
 
-#: gtkpod.glade:4685
-msgid "Sorting case sensitive"
-msgstr "Trier en tenant compte de la casse"
+#: ../data/gtkpod.glade.h:158
+msgid "Edit Repository/iPod Options"
+msgstr "Editer les _options du dépot/iPod"
 
-#: gtkpod.glade:4731
-msgid "<b>Ignore Frequent Words</b>"
-msgstr "<b>Ignorer les mots courants</b>"
+#: ../data/gtkpod.glade.h:159 ../src/context_menus.c:659
+msgid "Edit Smart Playlist"
+msgstr "Éditer la liste intelligente"
 
-#: 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 :"
+#: ../data/gtkpod.glade.h:160 ../src/context_menus.c:746
+msgid "Edit Track Details"
+msgstr "Editer les _détails du morceau"
 
-#: gtkpod.glade:5106
-msgid "gtkpod Info"
-msgstr "Info gtkpod"
+#: ../data/gtkpod.glade.h:161
+msgid "Edit _Preferences"
+msgstr "_Préférences"
 
-#: gtkpod.glade:5427 gtkpod.glade:5514 gtkpod.glade:5543 gtkpod.glade:6261
-#: gtkpod.glade:6406
-msgid "      "
-msgstr "      "
+#: ../data/gtkpod.glade.h:162
+msgid "Effective free space"
+msgstr "Espace libre effectif"
 
-#: gtkpod.glade:5832
-msgid "Number of tracks"
-msgstr "Nombre de morceaux"
+#: ../data/gtkpod.glade.h:163
+msgid "Empty Playlist"
+msgstr "Vide"
 
-#: gtkpod.glade:5862
-msgid "Play time"
-msgstr "Temps de lecture"
+#: ../data/gtkpod.glade.h:164
+msgid "Exclude file mask(s)"
+msgstr "Masque(s) d'exclusion de fichiers :"
 
-#: gtkpod.glade:5893
+#: ../data/gtkpod.glade.h:165
 msgid "File size"
-msgstr "Taille du fichier"
+msgstr "Taille des fichiers"
 
-#: 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
+#: ../data/gtkpod.glade.h:166
 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
+#: ../data/gtkpod.glade.h:167
 msgid "File size (non-transferred)"
 msgstr "Taille des fichiers (non transférés)"
 
-#: gtkpod.glade:6073
-msgid "Effective free space"
-msgstr "Espace libre effectif"
+#: ../data/gtkpod.glade.h:168
+msgid "Filename Format: "
+msgstr "Format du nom des fichiers : "
 
-#: gtkpod.glade:6103
-msgid ""
-"Total\n"
-"(iPod)"
-msgstr ""
-"Total\n"
-"(iPod)"
+#: ../data/gtkpod.glade.h:169
+msgid "Files"
+msgstr "Fichiers"
 
-#: gtkpod.glade:6135
+#: ../data/gtkpod.glade.h:170
+#, fuzzy
 msgid ""
-"Selected\n"
-"Playlist"
+"Find orphan files (files with no track info in DB) and dangling tracks "
+"(tracks with no corresponding files on iPod)"
 msgstr ""
-"Liste de lecture\n"
-"Sélectionnée"
+"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:6167
-msgid ""
-"Displayed\n"
-"Tracks"
+#: ../data/gtkpod.glade.h:171
+#, fuzzy
+msgid "First try <i>folder.jpg</i>, then <i><artist>.jpg</i>"
+msgstr "Essaye <i>répertoire.jpg</i>, puis <i>&lt;artiste&gt;.jpg</i>"
+
+#: ../data/gtkpod.glade.h:172
+msgid "Flac with :"
 msgstr ""
-"Morceaux\n"
-"Affichés"
 
-#: gtkpod.glade:6199
+#: ../data/gtkpod.glade.h:174
+#, no-c-format
 msgid ""
-"Selected\n"
-"Tracks"
+"For example, 'xmms %s' will clear xmms' current playlist, add the selected "
+"tracks and start playing."
 msgstr ""
-"Morceaux\n"
-"Sélec_tionnés"
+"Par exemple «xmms %s» videra la liste de lecture actuelle de xmms, ajoutera "
+"les morceaux sélectionnés et commencera la lecture."
 
-#: gtkpod.glade:6231
+#: ../data/gtkpod.glade.h:176
+#, no-c-format
 msgid ""
-"Total\n"
-"(local)"
+"For example, 'xmms -e %s' will append (enqueue) the selected tracks to xmms' "
+"current playlist."
 msgstr ""
-"Total\n"
-"(local)"
+"Par exemple «xmms -e %s» ajoutera à la liste de lecture de xmms les morceaux "
+"sélectionnés."
 
-#: gtkpod.glade:6651
-msgid "label21"
-msgstr "label21"
+#: ../data/gtkpod.glade.h:177 ../src/display_sorttabs.c:2957
+#: ../src/display_spl.c:89 ../src/misc_conversion.c:63
+msgid "Genre"
+msgstr "Genre"
 
-#: gtkpod.glade:6746
-msgid "Never show this dialogue again"
-msgstr "Ne plus afficher ce message"
+#: ../data/gtkpod.glade.h:178
+msgid "Group artists on compilation CDs"
+msgstr "Grouper les artistes pour les CDs de compilation"
 
-#: gtkpod.glade:6791 gtkpod.glade:7135
-msgid "window1"
-msgstr "window1"
+#: ../data/gtkpod.glade.h:179
+#, fuzzy
+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:6850
-msgid "_M3U"
-msgstr "_M3U"
+#: ../data/gtkpod.glade.h:180 ../src/context_menus.c:682
+#: ../src/context_menus.c:700 ../src/context_menus.c:824
+msgid "I'm sure"
+msgstr "Je suis sûr"
 
-#: gtkpod.glade:6869
-msgid "_PLS"
-msgstr "_PLS"
-
-#: gtkpod.glade:6907
+#: ../data/gtkpod.glade.h:181
 msgid ""
 "If available, the local copy of the track is referenced in the playlist. "
 "Otherwise the file on the iPod is used."
@@ -786,217 +805,202 @@
 "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"
+#: ../data/gtkpod.glade.h:182
+msgid "If both options are selected, embedded APIC data takes precedence."
+msgstr ""
+"Si les deux options sont validées, les données APIC sont utilisées en "
+"priorité."
 
-#: gtkpod.glade:6927
+#: ../data/gtkpod.glade.h:183
 msgid ""
-"The local copy of the track is referenced in the playlist. If the track is "
-"not available locally, an error message is displayed."
+"If checked, sorting will be case sensitive. Please note that case sensitive "
+"sorting will not work well with most charsets."
 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é."
+"En cochant cette option, le tri tiendra compte de la casse (minuscule/"
+"majuscule). Le tri dépend du jeu de caractères."
 
-#: gtkpod.glade:6929
-msgid "_Local"
-msgstr "_Locale"
+#: ../data/gtkpod.glade.h:184
+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:6948
-msgid "The track on the iPod is referenced in the playlist file."
+#: ../data/gtkpod.glade.h:185
+msgid "If you check this, gtkpod will descend into subdirectories recursively."
 msgstr ""
-"Le morceau de l'iPod est référencé dans le fichier de liste de lecture."
+"Si vous cochez cette case, gtkpod analysera les sous-répertoires "
+"récursivement."
 
-#: 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
+#: ../data/gtkpod.glade.h:186
 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 '%': %%."
+"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 ""
-"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 '%': %%."
+"Si vous cochez ceci, les informations (pochette et méta-informations) "
+"modifiées pour ce morceau seront copiées également pour tous les morceaux "
+"sélectionnés. A utiliser avec précaution."
 
-#: 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
+#: ../data/gtkpod.glade.h:187
 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 '%': %%."
+"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 ""
-"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 "
-"'%': %%."
+"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:7203
-msgid " "
-msgstr " "
-
-#: gtkpod.glade:7225
+#: ../data/gtkpod.glade.h:188
 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."
+"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 ""
-"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."
+"Si vous sélectionnez plusieures chansons et éditez un attribut du premier "
+"morceau les attributs des autres morceaux seront également mis à jour."
 
-#: gtkpod.glade:7227
+#: ../data/gtkpod.glade.h:189
+msgid "Ignore these words when at the beginning of the following fields:"
+msgstr "Ignorer ces mots au début des champs suivants :"
+
+#: ../data/gtkpod.glade.h:190
 msgid ""
-"Use selected charset (Preferences/'Adding/Updating/ Syncing')\n"
-"for this filename."
+"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 ""
-"Utilise le jeu de caractère sélectionné pour ce fichier\n"
-"(voir la section ci-dessus : 'Ajout/Mise à jour/Synchronisation')"
+"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:7246
+#: ../data/gtkpod.glade.h:191
+msgid "Initialize iPod"
+msgstr "Initialiser l'iPod"
+
+#: ../data/gtkpod.glade.h:192
 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."
+"Insert before\n"
+"Insert after"
 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."
+"Insérer avant\n"
+"Insérer après"
 
-#: 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."
+#: ../data/gtkpod.glade.h:194
+msgid "Keeps all compilation CDs grouped together in the artists sort tab."
+msgstr "Garder les CDs de compilation groupés dans la zone de tri Artistes"
 
-#: gtkpod.glade:7423
-msgid "Playlist name:"
-msgstr "Nom de la liste :"
+#: ../data/gtkpod.glade.h:195
+msgid "Live _updating"
+msgstr "Mise à jour automatique"
 
-#: gtkpod.glade:7492
-msgid "Match al_l of the following"
-msgstr "Répondant à toutes les règ_les"
+#: ../data/gtkpod.glade.h:196
+msgid "Load iPod(s)"
+msgstr "Charger _iPod(s)"
 
-#: gtkpod.glade:7511
-msgid "Match an_y of the following"
-msgstr "Répondant à quelques _règles"
+#: ../data/gtkpod.glade.h:197
+msgid "Lower Margin"
+msgstr "Borne inférieure"
 
-#: gtkpod.glade:7531
-msgid "_Ignore rules"
-msgstr "Ne respectant _pas les règles"
+#: ../data/gtkpod.glade.h:198
+msgid "M4A with :"
+msgstr ""
 
-#: gtkpod.glade:7601
-msgid "Rules"
-msgstr "Règles"
+#: ../data/gtkpod.glade.h:199
+msgid "MP3 with :"
+msgstr ""
 
-#: gtkpod.glade:7638
-msgid "_Limit to"
-msgstr "_Limiter à"
+#: ../data/gtkpod.glade.h:200
+msgid "Match al_l of the following"
+msgstr "Répondant à _toutes"
 
-#: gtkpod.glade:7689
-msgid "   Sort by:"
-msgstr "   Trier par :"
+#: ../data/gtkpod.glade.h:201
+msgid "Match an_y of the following"
+msgstr "Répondant à _quelques"
 
-#: gtkpod.glade:7741
+#: ../data/gtkpod.glade.h:202
 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>"
+#: ../data/gtkpod.glade.h:203
+msgid "Maximum number of background threads:"
 msgstr ""
 
-#: gtkpod.glade:7990
-msgid "Set mountpoint or edit repository options"
+#: ../data/gtkpod.glade.h:204
+msgid "Maximum size of cache directory (in GB):"
 msgstr ""
 
-#: gtkpod.glade:8037
-msgid "<b>Import</b>"
-msgstr "<b>Importer</b>"
+#: ../data/gtkpod.glade.h:205
+msgid "Model:"
+msgstr "Modèle :"
 
-#: gtkpod.glade:8108
-#, fuzzy
-msgid "Automatically import iTunesDBs on startup"
-msgstr "Importer les données de l'iPod au démarrage de gtkpod"
+#: ../data/gtkpod.glade.h:206 ../src/display_tracks.c:1993
+msgid "Modified"
+msgstr "Modifié le"
 
-#: gtkpod.glade:8154
-msgid "<b>Adding/Updating/Syncing</b>"
-msgstr "<b>Ajout/Mise à jour/Synchronisation</b>"
+#: ../data/gtkpod.glade.h:207
+msgid "Most Recently Played Tracks"
+msgstr "Contenant les morceaux dernièrement joués"
 
-#: gtkpod.glade:8226
-msgid "Exclude file mask(s)"
-msgstr ""
+#: ../data/gtkpod.glade.h:208
+msgid "Music Root:"
+msgstr "Racine musique :"
 
-#: gtkpod.glade:8251
-msgid "Semicolon seperated list of file exclusion masks, e.g. '*.mp3'"
+#: ../data/gtkpod.glade.h:209
+msgid ""
+"Music files can have images embedded in the APIC tag. Currently this is only "
+"supported for MP3 files."
 msgstr ""
+"Les fichiers de musique peuvent avoir des images dans le tag APIC. Pour "
+"l'instant ceci est uniquement vrai pour les fichiers MP3."
 
-#: gtkpod.glade:8285
-#, fuzzy
-msgid "_Encoding (ID3, files):"
-msgstr "Jeu de _caractères (ID3, fichiers) :"
+#: ../data/gtkpod.glade.h:210
+msgid "Never show this dialogue again"
+msgstr "Ne plus afficher ce message"
 
-#: gtkpod.glade:8320
+#: ../data/gtkpod.glade.h:211
+msgid "New PL"
+msgstr "Nouvelle liste"
+
+#: ../data/gtkpod.glade.h:212
+msgid "No lower margin"
+msgstr "Pas de borne inférieure"
+
+#: ../data/gtkpod.glade.h:213
+msgid "No upper margin"
+msgstr "Pas de borne supérieure"
+
+#: ../data/gtkpod.glade.h:214
+msgid "Non-transferred tracks"
+msgstr "Morceaux non transférés"
+
+#: ../data/gtkpod.glade.h:215
+msgid "None"
+msgstr "Aucun"
+
+#: ../data/gtkpod.glade.h:216
 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."
+"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 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."
+"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'utilisaient 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:8357
+#: ../data/gtkpod.glade.h:217
 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 "
@@ -1015,533 +1019,500 @@
 "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
+#: ../data/gtkpod.glade.h:218
 msgid ""
-"Use selected encoding also when updating \n"
-"or syncing tracks"
+"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 ""
-"Le jeu de caractères sélectionné sera utilisé pour\n"
-"la mise à jour ou la synchronisation des morceaux"
+"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:8379
-msgid "If you check this, gtkpod will descend into subdirectories recursively."
+#: ../data/gtkpod.glade.h:219
+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 ""
-"Si vous cochez cette case, gtkpod parcourera les sous-répertoires "
-"récursivement."
+"Par défaut si un morceau n'est plus présent dans le répertoire à "
+"synchroniser, il sera éliminé de la liste, mais pas de l'iPod ni du dépot "
+"local.\n"
+"Si cette option est sélectionnée, les morceaux seront effacés de l'iPod ou "
+"du dépot local, à moins qu'ils soient également inclus dans d'autres "
+"listes.\n"
+"NOTE : si vous synchronisez la liste principale, vous devez valider cette "
+"option si vous voulez que des morceaux soient effacés, car enlever de la "
+"liste principale signifie effacer de l'iPod."
 
-#: gtkpod.glade:8381
-msgid "Add directories recursively"
-msgstr "Ajouter les répertoires récursivement"
+#: ../data/gtkpod.glade.h:222
+msgid "Notes sync command:"
+msgstr "Commande pour la synchronisation des notes :"
 
-#: 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"
+#: ../data/gtkpod.glade.h:223
+msgid "Number of playlists"
+msgstr "Nombre de listes de lecture"
 
-#: gtkpod.glade:8402
-msgid "Don't allow file duplication"
-msgstr "Ne pas autoriser de doublons de fichiers"
+#: ../data/gtkpod.glade.h:224
+msgid "Number of tracks"
+msgstr "Nombre de morceaux"
 
-#: 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."
+#: ../data/gtkpod.glade.h:225
+msgid "Number of tracks in generated playlists:"
+msgstr "Nombre de morceaux dans les listes de lecture générées :"
 
-#: gtkpod.glade:8454
-msgid "Display info about detected duplicates"
-msgstr "Afficher les infos au sujet des doublons"
-
-#: gtkpod.glade:8480
+#: ../data/gtkpod.glade.h:226
 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."
+"Number of tracks in the generated playlists 'Most Often Listened', 'Best "
+"Rated' and 'Most Recently Played'. Choose '0' for 'no limit'."
 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)"
+"Nombre de morceaux dans les listes de lecture générées automatiquement."
+"Mettre '0' pour ne pas spécifier de limite."
 
-#: gtkpod.glade:8482
-msgid ""
-"When adding dirs/files, update information of\n"
-"existing tracks with identical filenames"
+#: ../data/gtkpod.glade.h:227
+msgid "Ogg with :"
 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."
+#: ../data/gtkpod.glade.h:228
+msgid "On startup automatically sync with playlist directories"
+msgstr ""
+"Au démarrage synchroniser automatiquement avec les répertoires de liste de "
+"lecture"
 
-#: gtkpod.glade:8535
-msgid "Display info about updated tracks"
-msgstr "Afficher les infos des morceaux mis à jour"
+#: ../data/gtkpod.glade.h:229
+msgid "On startup automatically sync with the following directory"
+msgstr "Au démarrage synchroniser automatiquement avec le répertoire suivant"
 
-#: 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."
+#: ../data/gtkpod.glade.h:230
+msgid "On startup automatically update (Live Playlist)"
+msgstr "Au démarrage synchroniser automatiquement (liste dynamique)"
 
-#: gtkpod.glade:8594
-msgid "Display info about non-updated tracks"
-msgstr "Afficher les infos des morceaux qui n'ont pas été mis à jour"
+#: ../data/gtkpod.glade.h:231
+msgid "One for each Album"
+msgstr "Par album"
 
-#: gtkpod.glade:8620
-#, fuzzy
-msgid "When syncing playlists"
-msgstr "Lors de la synchronisation des répertoires"
+#: ../data/gtkpod.glade.h:232
+msgid "One for each Artist"
+msgstr "Par artiste"
 
-#: gtkpod.glade:8694
-msgid "Confirm lists of directories"
-msgstr "Confirmer la liste des répertoires"
+#: ../data/gtkpod.glade.h:233
+msgid "One for each Composer"
+msgstr "Par compositeur"
 
-#: 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 ""
+#: ../data/gtkpod.glade.h:234
+msgid "One for each Genre"
+msgstr "Par genre"
 
-#: gtkpod.glade:8716 gtkpod.glade:17762
-msgid ""
-"Delete tracks that are no longer present from the\n"
-"ipod or repository"
-msgstr ""
+#: ../data/gtkpod.glade.h:235
+msgid "One for each Rating"
+msgstr "Par note"
 
-#: 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»"
+#: ../data/gtkpod.glade.h:236
+msgid "One for each Year"
+msgstr "Par année"
 
-#: 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"
+#: ../data/gtkpod.glade.h:237
+msgid "Overwrite tags that are already set"
+msgstr "Écraser les attributs déjà présents"
 
-#: gtkpod.glade:8756 gtkpod.glade:17800
-msgid ""
-"Will show a list of tracks removed and a list of tracks newly added or "
-"updated."
+#: ../data/gtkpod.glade.h:238
+msgid "Password:"
 msgstr ""
 
-#: gtkpod.glade:8758 gtkpod.glade:17802
-msgid "Show summary of sync result"
-msgstr ""
+#: ../data/gtkpod.glade.h:239
+msgid "Path:"
+msgstr "Chemin :"
 
-#: gtkpod.glade:8819
-msgid "<b>Sync</b>"
-msgstr "<b>Synchroniser</b>"
+#: ../data/gtkpod.glade.h:240
+msgid "Play time"
+msgstr "Durée"
 
-#: 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."
+#: ../data/gtkpod.glade.h:241 ../src/display_spl.c:98
+#: ../src/misc_conversion.c:77
+msgid "Playcount"
+msgstr "Cpt. lecture"
 
-#: 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é."
+#: ../data/gtkpod.glade.h:242 ../src/display_tracks.c:1990
+msgid "Played"
+msgstr "Joué le"
 
-#: gtkpod.glade:8921 gtkpod.glade:14688
-#, fuzzy
-msgid "_General"
-msgstr "Général"
+#: ../data/gtkpod.glade.h:243 ../src/display_spl.c:105
+msgid "Playlist"
+msgstr "Liste de lecture"
 
-#: gtkpod.glade:8957
-msgid "<b>Tag Reading</b>"
-msgstr "<b>Lecture des attributs</b>"
+#: ../data/gtkpod.glade.h:244
+msgid "Playlist name:"
+msgstr "Nom de la liste :"
 
-#: 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)"
+#: ../data/gtkpod.glade.h:245
+msgid "Playlist type:"
+msgstr "Type de liste :"
 
-#: 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'."
+#: ../data/gtkpod.glade.h:246 ../src/display_playlists.c:2176
+msgid "Playlists"
+msgstr "Listes de lecture"
 
-#: 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 :"
+#: ../data/gtkpod.glade.h:247
+msgid "Please refer to the notice below."
+msgstr "Référez vous à la règle ci-dessous."
 
-#: gtkpod.glade:9118
-msgid "Overwrite tags that are already set"
-msgstr "Écraser les attributs déjà présents"
+#: ../data/gtkpod.glade.h:248
+msgid "Please specify a time interval"
+msgstr "Spécifiez un intervalle de temps"
 
-#: gtkpod.glade:9151
+#: ../data/gtkpod.glade.h:249
+msgid "Preferences"
+msgstr "Préférences"
+
+#: ../data/gtkpod.glade.h:250
 msgid ""
-"As a last resort set the following tags to the\n"
-"filename if they are (still) empty:"
+"Press button to abort.\n"
+"Export can be continued at a later time."
 msgstr ""
-"Mettre un attribut par défaut au cas où les attributs restent\n"
-"vides après l'extraction à partir du nom de fichier :"
+"Appuyer sur le bouton pour Interrompre.\n"
+"L'export peut être repris plus tard."
 
-#: gtkpod.glade:9187 src/display_sorttabs.c:2942 src/display_spl.c:85
-#: src/misc_conversion.c:62
-msgid "Artist"
-msgstr "Artiste"
+#: ../data/gtkpod.glade.h:252
+msgid "Previous"
+msgstr ""
 
-#: gtkpod.glade:9209 src/display_sorttabs.c:2948 src/display_spl.c:89
-#: src/misc_conversion.c:64
-msgid "Genre"
-msgstr "Genre"
+#: ../data/gtkpod.glade.h:253
+#, fuzzy
+msgid "Progress Information"
+msgstr "Information"
 
-#. 0
-#: gtkpod.glade:9231 src/display_sorttabs.c:2945 src/display_spl.c:84
-#: src/misc_conversion.c:61
-msgid "Album"
-msgstr "Album"
+#: ../data/gtkpod.glade.h:254
+msgid "Random Playlist from Displayed Tracks"
+msgstr "Contenant les morceaux affichés aléatoirement"
 
-#. 5
-#: gtkpod.glade:9253 src/display_spl.c:97 src/misc_conversion.c:66
-msgid "Composer"
-msgstr "Compositeur"
+#: ../data/gtkpod.glade.h:255
+msgid "Randomize Current Playlist"
+msgstr "Mélanger l'ordre de la liste de lecture actuelle"
 
-#: gtkpod.glade:9275 src/display_sorttabs.c:2954 src/display_spl.c:83
-#: src/misc_conversion.c:63
-msgid "Title"
-msgstr "Titre"
+#: ../data/gtkpod.glade.h:256 ../src/display_spl.c:101
+#: ../src/misc_conversion.c:78
+msgid "Rating"
+msgstr "Note"
 
-#: gtkpod.glade:9330
-#, fuzzy
-msgid "<b>Coverart</b>"
-msgstr "<b>Importer</b>"
+#: ../data/gtkpod.glade.h:257
+msgid "Read coverart from embedded APIC data"
+msgstr "Lire la pochette depuis les données APIC"
 
-#: gtkpod.glade:9392
-msgid ""
-"Music files can have images embedded in the APIC tag. Currently this is only "
-"supported for MP3 files."
+#: ../data/gtkpod.glade.h:258
+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:9394
-msgid "Read coverart from embedded APIC data"
-msgstr ""
+#: ../data/gtkpod.glade.h:259
+msgid "Remove Cover Art"
+msgstr "Supprimer la pochette"
 
-#: gtkpod.glade:9415
-msgid "Add coverart from file using the following template"
-msgstr ""
+#: ../data/gtkpod.glade.h:260
+msgid "Repository Options"
+msgstr "Options du dépot"
 
-#: 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 "
-"'%': %%."
+#: ../data/gtkpod.glade.h:261
+msgid "Repository name:"
+msgstr "Nom du dépot :"
 
-#: gtkpod.glade:9492
-#, fuzzy
-msgid "<b>Examples</b>"
-msgstr "<b>mserv</b>"
+#: ../data/gtkpod.glade.h:262
+msgid "Repository type:"
+msgstr "Type de dépot :"
 
-#: gtkpod.glade:9526
-msgid "folder.jpg"
-msgstr ""
+#: ../data/gtkpod.glade.h:263
+msgid "Root directory of mserv database (trackinfo root)."
+msgstr "Rép. de la base mserv (infos)."
 
-#: gtkpod.glade:9554
-msgid "folder"
-msgstr ""
+#: ../data/gtkpod.glade.h:264
+msgid "Rules"
+msgstr "Règles"
 
-#: gtkpod.glade:9582
-msgid "../%A.jpg"
-msgstr ""
+#: ../data/gtkpod.glade.h:265 ../src/context_menus.c:808
+msgid "Save Changes"
+msgstr "Enregistrer"
 
-#: gtkpod.glade:9610
-msgid "%A"
-msgstr ""
+#: ../data/gtkpod.glade.h:266
+#, fuzzy
+msgid "Scrobble Tracks?"
+msgstr "Morceaux sélec_tionnés"
 
-#: gtkpod.glade:9638
-msgid "Use <i>folder.jpg</i> as cover art."
-msgstr ""
+#: ../data/gtkpod.glade.h:267
+msgid "Select '-1' for no upper limit."
+msgstr "Choisissez «-1» pour aucune limite supérieure."
 
-#: gtkpod.glade:9666
-msgid "Use <i>folder.jpg</i>, <i>folder.png</i>..."
-msgstr ""
+#: ../data/gtkpod.glade.h:268
+msgid "Select '0' for no lower limit."
+msgstr "Choisissez «0» pour aucune limite inférieure."
 
-#: gtkpod.glade:9694
-msgid "Use <i>&lt;Album&gt;.jpg</i> in the parent directory"
+#: ../data/gtkpod.glade.h:269
+msgid ""
+"Selected\n"
+"Playlist"
 msgstr ""
+"Liste de lecture\n"
+"Sélectionnée"
 
-#: gtkpod.glade:9722
-msgid "Use <i>&lt;Album&gt;.jpg</i>, <i>&lt;Album&gt;.png</i>..."
+#: ../data/gtkpod.glade.h:271
+msgid ""
+"Selected\n"
+"Tracks"
 msgstr ""
+"Morceaux\n"
+"Sélectionnés"
 
-#: gtkpod.glade:9750
-msgid "folder.jpg;%a.jpg"
-msgstr ""
+#: ../data/gtkpod.glade.h:273
+msgid "Selected Tab _Entry"
+msgstr "Zon_e de tri sélectionnée"
 
-#: gtkpod.glade:9778
-msgid "First try <i>folder.jpg</i>, then <i>&lt;artist&gt;.jpg</i>"
-msgstr ""
+#: ../data/gtkpod.glade.h:274
+msgid "Selected _Playlist"
+msgstr "_Liste de lecture sélectionnée"
 
-#: gtkpod.glade:9835
-msgid "If both options are selected, embedded APIC data takes precedence."
-msgstr ""
+#: ../data/gtkpod.glade.h:275
+msgid "Selected _Tracks"
+msgstr "Morceaux sélec_tionnés"
 
-#: gtkpod.glade:9887
-msgid "<b>mserv</b>"
-msgstr "<b>mserv</b>"
+#: ../data/gtkpod.glade.h:276
+msgid "Selected filter tab entry from database"
+msgstr "Zone de tri sélectionnée de la base de données"
 
-#: gtkpod.glade:9949 gtkpod.glade:10175
-msgid "Currently only rating is supported."
-msgstr "Actuellement, seule la notation est supportée."
+#: ../data/gtkpod.glade.h:277
+msgid "Selected filter tab entry from harddisk"
+msgstr "Zone de tri sélectionnée du disque dur"
 
-#: gtkpod.glade:9951
-msgid "Use mserv database to fill additional information"
-msgstr "Utiliser la base mserv pour remplir les autres informations"
+#: ../data/gtkpod.glade.h:278
+msgid "Selected filter tab entry from iPod"
+msgstr "Zone de tri sélectionnée de l'iPod"
 
-#: gtkpod.glade:9979
-msgid "Music Root:"
-msgstr "Racine musique :"
+#: ../data/gtkpod.glade.h:279
+msgid "Selected filter tab entry from playlist"
+msgstr "Zone de tri sélectionnée de la liste de lecture"
 
-#: 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."
+#: ../data/gtkpod.glade.h:280
+msgid "Selected playlist"
+msgstr "_Liste de lecture sélectionnée"
 
-#: gtkpod.glade:10029
-msgid "mserv Root:"
-msgstr "Racine mserv :"
+#: ../data/gtkpod.glade.h:281
+msgid "Selected playlist including tracks from database"
+msgstr ""
+"Liste de lecture sélectionnée incluant des morceaux de la base de données"
 
-#: gtkpod.glade:10057
-msgid "Root directory of mserv database (trackinfo root)."
-msgstr "Rép. de la base mserv (infos)."
+#: ../data/gtkpod.glade.h:282
+msgid "Selected playlist including tracks from harddisk"
+msgstr "Liste de lecture sélectionnée incluant des morceaux du disque dur"
 
-#: gtkpod.glade:10079
-msgid "Username:"
-msgstr "Utilisateur :"
+#: ../data/gtkpod.glade.h:283
+msgid "Selected playlist including tracks from iPod"
+msgstr "Liste de lecture sélectionnée incluant des morceaux de l'iPod"
 
-#: gtkpod.glade:10107
-msgid "Username to be used for mserv database lookup."
-msgstr "Utilisateur pour se connecter à la base mserv."
+#: ../data/gtkpod.glade.h:284
+msgid "Selected tracks from database"
+msgstr "Morceaux sélectionnés de la base de données"
 
-#: 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"
+#: ../data/gtkpod.glade.h:285
+msgid "Selected tracks from harddisk"
+msgstr "Morceaux sélectionnés du disque dur"
 
-#: gtkpod.glade:10177
-msgid "Show information about problems when accessing mserv"
-msgstr "Afficher les informations sur les problèmes liés à mserv"
+#: ../data/gtkpod.glade.h:286
+msgid "Selected tracks from iPod"
+msgstr "Morceaux sélectionnés de l'iPod"
 
-#: gtkpod.glade:10223
+#: ../data/gtkpod.glade.h:287
+msgid "Selected tracks from playlist"
+msgstr "Morceaux sélectionnés de la liste de lecture"
+
+#: ../data/gtkpod.glade.h:288
 #, fuzzy
-msgid "_Track Info"
-msgstr "Morceau"
+msgid "Semicolon separated list of file exclusion masks, e.g. '*.mp3'"
+msgstr ""
+"Liste de fichiers à exclure séparés par des points-virgules, par exemple «*."
+"mp3»"
 
-#: gtkpod.glade:10273
-msgid "<b>Displayed Track Attributes</b>"
-msgstr "<b>Attributs des morceaux affichés</b>"
+#: ../data/gtkpod.glade.h:289
+#, fuzzy
+msgid "Set Cover Art from File"
+msgstr "Modifier la pochette"
 
-#: gtkpod.glade:11083
-msgid "<b>Sort Tabs</b>"
-msgstr "<b>Zones de tri</b>"
+#: ../data/gtkpod.glade.h:290
+#, fuzzy
+msgid "Set Cover Art from Web"
+msgstr "Modifier la pochette"
 
-#: gtkpod.glade:11145
-msgid "Keeps all compilation CDs grouped together in the artists sort tab."
+#: ../data/gtkpod.glade.h:291
+msgid "Set mountpoint or edit repository options"
+msgstr "Définir le point de montage ou éditer les options du dépot"
+
+#: ../data/gtkpod.glade.h:292
+msgid "Set options for Calendar/Contacts/Notes"
+msgstr "Options pour Calendrier/Contacts/Notes"
+
+#: ../data/gtkpod.glade.h:293
+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 ""
+"Choisissez «aacgain -q -k» pour la fonctionnalité «Normaliser le volume» du "
+"menu Outils. Si ceci est validé, les données manquantes de normalisation des "
+"fichiers .m4a et .m4b seront calculées et ajoutées aux fichiers avec cette "
+"commande."
 
-#: gtkpod.glade:11147
-msgid "Group artists on compilation CDs"
+#: ../data/gtkpod.glade.h:294
+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 ""
+"Choisissez «mp3gain -q -k» pour la fonctionnalité «Normaliser le volume» du "
+"menu Outils. Si ceci est validé, les données manquantes de normalisation des "
+"fichiers MP3 seront calculées et ajoutées aux fichiers avec cette commande."
 
-#: gtkpod.glade:11172
-msgid "_Number of sort tabs:"
-msgstr "_Nombre de zones de tri :"
+#: ../data/gtkpod.glade.h:295
+msgid "Set this to your last.fm password"
+msgstr ""
 
-#: gtkpod.glade:11252
-msgid "<b>Automatically select...</b>"
-msgstr "<b>Sélection automatique...</b>"
+#: ../data/gtkpod.glade.h:296
+msgid "Set this to your last.fm username"
+msgstr ""
 
-#: gtkpod.glade:11314
+#: ../data/gtkpod.glade.h:297
 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."
+"Set to 0 to effectively disable caching (a maximum of one track will be "
+"cached at a time)."
 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"
+#: ../data/gtkpod.glade.h:298
+msgid ""
+"Set to 0 to use as many background threads as CPUs are available on your "
+"system."
+msgstr ""
 
-#: gtkpod.glade:11336
-msgid "...entry 'All' in sort tab..."
-msgstr "...onglet «Tous» dans l'onglet de tri..."
+#: ../data/gtkpod.glade.h:299
+msgid "Show information about problems when accessing mserv"
+msgstr "Afficher les informations sur les problèmes liés à mserv"
 
-#: gtkpod.glade:11421
-msgid "<b>Tooltips</b>"
-msgstr "<b>Infobulles</b>"
+#: ../data/gtkpod.glade.h:300
+msgid "Show summary of sync result"
+msgstr "Montrer le résumé du résultat de la synchronisation"
 
-#: gtkpod.glade:11484
-msgid "Display tooltips in main window"
-msgstr "Afficher les infobulles dans la fenêtre principale"
+#: ../data/gtkpod.glade.h:301 ../src/misc_playlist.c:96
+#: ../src/repository.c:1356
+msgid "Smart Playlist"
+msgstr "Intelligente"
 
-#: gtkpod.glade:11504
-msgid "Display tooltips in prefs window"
-msgstr "Afficher les infobulles dans la fenêtre des préférences"
+#: ../data/gtkpod.glade.h:302
+msgid "Sort tracks according to: "
+msgstr "Trier les morceaux suivant :"
 
-#: gtkpod.glade:11550
-msgid "<b>Toolbar</b>"
-msgstr "<b>Barre d'outils</b>"
+#: ../data/gtkpod.glade.h:303
+msgid "Sorting Options"
+msgstr "Options de tri"
 
-#: gtkpod.glade:11613
-msgid "Display toolbar..."
-msgstr "Afficher la barre d'outils..."
+#: ../data/gtkpod.glade.h:304
+msgid "Sorting case sensitive"
+msgstr "Trier en tenant compte de la casse"
 
-#: gtkpod.glade:11670
-msgid "...as icons"
-msgstr "...avec seulement les icônes"
+#: ../data/gtkpod.glade.h:305
+msgid "Sorttab: "
+msgstr "Zone de tri :"
 
-#: gtkpod.glade:11690
-msgid "...as text"
-msgstr "...avec seulement les libellés"
+#: ../data/gtkpod.glade.h:306
+msgid "Sorttabs"
+msgstr "Zones de tri :"
 
-#: gtkpod.glade:11711
-msgid "...both as icons and text"
-msgstr "...avec les icônes et libellés"
+#: ../data/gtkpod.glade.h:307
+msgid "Source:"
+msgstr "Source :"
 
-#: gtkpod.glade:11772
-msgid "<b>Misc</b>"
-msgstr "<b>Divers</b>"
-
-#: gtkpod.glade:11834
+#: ../data/gtkpod.glade.h:309
+#, no-c-format
 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."
+"Specify exact path including command line options. '%i' will be replaced "
+"with the mount point of the iPod."
 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."
+"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: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 !)"
+#: ../data/gtkpod.glade.h:310
+msgid "Specify interval"
+msgstr "Spécifier un intervalle"
 
-#: 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)."
+#: ../data/gtkpod.glade.h:311
+msgid "Start display automatically"
+msgstr "Afficher automatiquement"
 
-#: 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 !)"
+#: ../data/gtkpod.glade.h:312
+msgid "Synchronise Contacts, Calendar and Notes"
+msgstr "Synchroniser le calendrier, contacts et notes"
 
-#: 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"
+#: ../data/gtkpod.glade.h:313
+msgid "Synchronize All"
+msgstr "Tout synchroniser"
 
-#: gtkpod.glade:11880
-msgid "Display messages and warnings at startup"
-msgstr "Afficher les messages et avertissements au démarrage"
+#: ../data/gtkpod.glade.h:314
+msgid "Synchronize Calendar"
+msgstr "Synchroniser le calendrier"
 
-#: gtkpod.glade:11942
-msgid "Advanced Sorting Options"
-msgstr "Options de tri avancées"
+#: ../data/gtkpod.glade.h:315
+msgid "Synchronize Contacts"
+msgstr "Synchroniser les contacts"
 
-#: gtkpod.glade:12045
-msgid "<b>Track Editing</b>"
-msgstr "<b>Édition de morceau</b>"
+#: ../data/gtkpod.glade.h:316
+msgid "Synchronize Notes"
+msgstr "Synchroniser les notes"
 
-#: gtkpod.glade:12107
+#: ../data/gtkpod.glade.h:317
+msgid "Template for info field: "
+msgstr "Modèle pour le champ d'info :"
+
+#: ../data/gtkpod.glade.h:318
 msgid ""
-"The tags are written to the files on your harddrive and on the ipod (if "
-"available)."
+"The local copy of the track is referenced in the playlist. If the track is "
+"not available locally, an error message is displayed."
 msgstr ""
-"Les tags ID3 seront écrits dans les fichiers sur votre disque et l'iPod (si "
-"disponible)"
+"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: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
+#: ../data/gtkpod.glade.h:319
 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."
+"The output of the background conversion scripts is copied below. Each page "
+"of the notebook corresponds to one background thread."
 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
+#: ../data/gtkpod.glade.h:320
 #, fuzzy
 msgid ""
-"Use selected encoding (on the 'General' page)\n"
-"when writing tags"
+"The tags are written to the files on your harddrive and on the iPod (if "
+"available)."
 msgstr ""
-"Utiliser le jeu de caractère sélectionné (sur l'onglet 'Général') pour "
-"l'écriture des attributs"
+"Les attributs ID3 seront écrits dans les fichiers sur votre disque et l'iPod "
+"(si disponible)."
 
-#: gtkpod.glade:12187
+#: ../data/gtkpod.glade.h:321
+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."
+
+#: ../data/gtkpod.glade.h:322
+msgid "This is the same option as in 'Edit/Delete Confirmation'"
+msgstr "C'est la même option que dans «Édition/Confirmation de suppression»"
+
+#: ../data/gtkpod.glade.h:323
 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 "
@@ -1551,789 +1522,1009 @@
 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."
+"utilise UTF8 afin de ne pas augmenter la taille des attributs 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)"
+#: ../data/gtkpod.glade.h:324
+msgid "This option will be re-activated when you upgrade gtkpod."
+msgstr "Cette option se réactivera quans vous mettrez à jour gtkpod"
 
-#: gtkpod.glade:12222
+#: ../data/gtkpod.glade.h:325
+msgid "Time:"
+msgstr "Heure :"
+
+#: ../data/gtkpod.glade.h:326 ../src/display_sorttabs.c:2963
+#: ../src/display_spl.c:83 ../src/misc_conversion.c:62
+msgid "Title"
+msgstr "Titre"
+
+#: ../data/gtkpod.glade.h:327
 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."
+"Total\n"
+"(iPod)"
 msgstr ""
-"Si vous sélectionnez plusieurs chansons et éditez le tag du premier morceau "
-"les attributs des autres morceaux seront aussi mis à jour."
+"Total\n"
+"(iPod)"
 
-#: gtkpod.glade:12224
-msgid "Use 'Multi-Edit' for tracks selections"
-msgstr "Utiliser «Édition multiple» pour les morceaux sélectionnés"
-
-#: gtkpod.glade:12274
+#: ../data/gtkpod.glade.h:329
 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)."
+"Total\n"
+"(local)"
 msgstr ""
-"Généralement, vous ne devriez pas avoir à utiliser cette option, car elle "
-"peut avoir des effets inattendus (pas d'annulation possible)."
+"Total\n"
+"(local)"
 
-#: gtkpod.glade:12276
-msgid "Use 'Multi-Edit' also for title field"
-msgstr "Utiliser «Édition multiple» aussi pour les titres"
+#: ../data/gtkpod.glade.h:331
+msgid "Tracks"
+msgstr "Morceaux"
 
-#: gtkpod.glade:12329
-msgid "<b>Auto-Generated Playlists</b>"
-msgstr "<b>Listes de lecture générées automatiquement</b>"
+#: ../data/gtkpod.glade.h:332
+msgid "Tracks Most Often Listened To"
+msgstr "Contenant les morceaux les plus écoutés"
 
-#: 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
+#: ../data/gtkpod.glade.h:333
 msgid ""
-"Number of tracks in the generated playlists 'Most Often Listened', 'Best "
-"Rated' and 'Most Recently Played'. Choose '0' for 'no limit'."
+"Tracks can be transferred in the background as soon as they are added to an "
+"iPod repository. Otherwise they will be transferred when ejecting the "
+"contents of the iPod completely unchanged until then."
 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"
+#: ../data/gtkpod.glade.h:334
+msgid "Tracks in Selected Tab _Entry"
+msgstr "Morceaux dans la Zon_e de tri sélectionnée"
 
-#: gtkpod.glade:12497
-msgid "<b>Delete Confirmation</b>"
-msgstr "<b>Confirmation de suppression</b>"
+#: ../data/gtkpod.glade.h:335
+msgid "Tracks in Selected _Playlist"
+msgstr "Morceaux de la _Liste de lecture sélectionnée"
 
-#: 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"
+#: ../data/gtkpod.glade.h:336
+msgid "Transfer tracks to the iPod in the background"
 msgstr ""
-"Avant de supprimer complètement les morceaux de la base de données locale"
 
-#: gtkpod.glade:12640
+#: ../data/gtkpod.glade.h:337
+msgid "Translators"
+msgstr "Traducteurs"
+
+#: ../data/gtkpod.glade.h:338
 msgid ""
-"Confirm before removing tracks from the iPod or repository\n"
-"when syncing playlists"
+"Try to load contents of all connected iPods. For each iPod a separate "
+"repository must be set up."
 msgstr ""
+"Essaye de charger le contenu des iPods connectés. Pour chaque iPod un dépot "
+"différent doit être créé."
 
-#: gtkpod.glade:12723
-msgid "<b>Play</b>"
-msgstr "<b>Jouer</b>"
+#: ../data/gtkpod.glade.h:339
+msgid "Update _mserv Data from File"
+msgstr "Mettre à jour les données _mserv à partir des fichiers"
 
-#: gtkpod.glade:12788
-msgid "Command for 'Play now':"
-msgstr "Ligne de commande pour «Jouer maintenant» :"
+#: ../data/gtkpod.glade.h:340
+msgid "Update/Sync all playlists now"
+msgstr "Mettre à jour/Synchroniser toutes les listes"
 
-#: gtkpod.glade:12816
-msgid "Command for 'Enqueue':"
-msgstr "Ligne de commande pour «Mettre dans la file d'attente» :"
+#: ../data/gtkpod.glade.h:341
+msgid "Update/Sync playlist now"
+msgstr "Mettre à jour/Synchroniser"
 
-#: gtkpod.glade:12844
+#: ../data/gtkpod.glade.h:342
+msgid "Upper margin"
+msgstr "Borne supérieure"
+
+#: ../data/gtkpod.glade.h:343
+msgid "Use 'Multi-Edit' also for title field"
+msgstr "Utiliser «Édition multiple» aussi pour les titres"
+
+#: ../data/gtkpod.glade.h:344
+msgid "Use 'Multi-Edit' for tracks selections"
+msgstr "Utiliser «Édition multiple» pour les morceaux sélectionnés"
+
+#: ../data/gtkpod.glade.h:345
 #, 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 "Use <i><Album>.jpg</i> in the parent directory"
+msgstr "Utilise <i>&lt;Album&gt;.jpg</i> dans le répertoire parent"
 
-#: gtkpod.glade:12866
+#: ../data/gtkpod.glade.h:346
 #, 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 "Use <i><Album>.jpg</i>, <i><Album>.png</i>..."
+msgstr "Utilise <i>&lt;Album&gt;.jpg</i>; <i>&lt;Album&gt;.png</i> ..."
 
-#: gtkpod.glade:12953
-msgid "<b>Volume Normalization</b>"
-msgstr "<b>Normalisation du volume</b>"
+#: ../data/gtkpod.glade.h:347
+msgid "Use <i>folder.jpg</i> as cover art."
+msgstr "Utilise <i>répertoire.jpg</i> pour la pochette."
 
-#: gtkpod.glade:13018
-msgid "'mp3gain' executable:"
-msgstr "Chemin de l'exécutable «mp3gain» :"
+#: ../data/gtkpod.glade.h:348
+msgid "Use <i>folder.jpg</i>, <i>folder.png</i>..."
+msgstr "Utilise <i>répertoire.jpg</i>, <i>répertoire.png</i> ..."
 
-#: gtkpod.glade:13046
+#: ../data/gtkpod.glade.h:349
+msgid "Use mserv database to fill additional information"
+msgstr "Utiliser la base mserv pour remplir les autres informations"
+
+#: ../data/gtkpod.glade.h:350
 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."
+"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:13087
-#, fuzzy
-msgid "'aacgain' executable:"
-msgstr "Chemin de l'exécutable «mp3gain» :"
-
-#: gtkpod.glade:13115
+#: ../data/gtkpod.glade.h:352
 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."
+"Use selected encoding (on the 'General' page)\n"
+"when writing tags"
 msgstr ""
+"Utiliser le jeu de caractère sélectionné (dans l'onglet «Général») pour "
+"l'écriture des attributs"
 
-#: gtkpod.glade:13183
-msgid "<b>Calendar/Contacts/Notes</b>"
+#: ../data/gtkpod.glade.h:354
+#, fuzzy
+msgid "Use selected encoding also when updating 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:13246
-msgid "Set options for Calendar/Contacts/Notes"
+#: ../data/gtkpod.glade.h:355
+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:13381
-msgid "Details"
-msgstr ""
+#: ../data/gtkpod.glade.h:356
+msgid "Username to be used for mserv database lookup."
+msgstr "Utilisateur pour se connecter à la base mserv."
 
-#: gtkpod.glade:13449
-#, fuzzy
-msgid "Cover"
-msgstr "Compositeur"
+#: ../data/gtkpod.glade.h:357
+msgid "Username:"
+msgstr "Utilisateur :"
 
-#: gtkpod.glade:13538
-msgid "Set Cover Art"
+#: ../data/gtkpod.glade.h:358
+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:13575
+#: ../data/gtkpod.glade.h:359
+msgid "WAV with :"
+msgstr ""
+
+#: ../data/gtkpod.glade.h:360
 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."
+"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:13621
+#: ../data/gtkpod.glade.h:362
 msgid ""
-"Change all tracks\n"
-"simultaneously"
+"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:13713
-msgid "Remove Cover Art"
+#: ../data/gtkpod.glade.h:363
+msgid "When syncing playlists"
+msgstr "Lors de la synchronisation des listes"
+
+#: ../data/gtkpod.glade.h:364
+msgid ""
+"Will show a list of tracks removed and a list of tracks newly added or "
+"updated."
 msgstr ""
+"Montrer la liste des morceaux supprimés et une liste des morceaux récemment "
+"ajoutés ou modifiés."
 
-#: gtkpod.glade:14646
-msgid "(Checked)"
+#: ../data/gtkpod.glade.h:365
+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:15088
-msgid "_Podcasts"
+#: ../data/gtkpod.glade.h:366
+msgid "Write all changes made to the disk and the iPod(s)."
 msgstr ""
+"Ecrire toutes les modifications faites dans le disque et le(s) iPod(s)."
 
-#: gtkpod.glade:16127
-msgid "_Other"
+#: ../data/gtkpod.glade.h:367
+#, fuzzy
+msgid ""
+"Write extended information (PC filenames, SHA1 hashes,\n"
+"encoding...). Recommended."
 msgstr ""
+"Écrire les infos supplémentaires (noms de fichiers PC,\n"
+"somme de contrôle MD5, jeu de caractères). Recommandé."
 
-#: gtkpod.glade:16425
-msgid "_Undo All"
+#: ../data/gtkpod.glade.h:369
+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:16499
-#, fuzzy
-msgid "_Undo Track"
-msgstr "Morceaux non notés"
+#: ../data/gtkpod.glade.h:370
+msgid "_About"
+msgstr "A _propos"
 
-#: gtkpod.glade:16546
-#, fuzzy
-msgid "Repository Options"
-msgstr "Options de tri"
+#: ../data/gtkpod.glade.h:371
+msgid "_All Tracks"
+msgstr "_Tous les morceaux"
 
-#: gtkpod.glade:16667
-msgid "Add new repository/iPod"
-msgstr ""
+#: ../data/gtkpod.glade.h:372
+msgid "_Arrange Sort Tabs"
+msgstr "_Organiser les zones de tri"
 
-#: gtkpod.glade:16736 gtkpod.glade:18163 gtkpod.glade:18659
-#, fuzzy
-msgid "iPod mountpoint:"
-msgstr "Point de montage de l'iPod :"
+#: ../data/gtkpod.glade.h:373
+msgid "_Check iPod's Files"
+msgstr "_Contrôler les fichiers de l'iPod"
 
-#: gtkpod.glade:16764 gtkpod.glade:18135
-msgid "iTunesDB backup:"
+#: ../data/gtkpod.glade.h:374
+msgid "_Conversion Log"
 msgstr ""
 
-#: gtkpod.glade:16792 gtkpod.glade:18107 gtkpod.glade:18730 gtkpod.glade:18922
-msgid "Model:"
-msgstr ""
+#: ../data/gtkpod.glade.h:375
+msgid "_Create Playlists"
+msgstr "_Créer une liste de lecture"
 
-#: gtkpod.glade:16820 gtkpod.glade:18079
-msgid "Path:"
-msgstr ""
+#: ../data/gtkpod.glade.h:376
+msgid "_Create iPod's Directories"
+msgstr "_Créer les répertoires système de l'iPod"
 
-#: gtkpod.glade:16848
-msgid "<b>Synchronization</b>"
-msgstr "<b>Synchronization</b>"
+#: ../data/gtkpod.glade.h:377
+msgid "_Delete"
+msgstr "_Effacer"
 
-#: gtkpod.glade:16906
-msgid "Contacts sync command:"
-msgstr "Commande pour la synchronisation des contacts :"
+#: ../data/gtkpod.glade.h:378
+msgid "_Display"
+msgstr "_Affichage"
 
-#: gtkpod.glade:16934
-msgid "Calendar sync command:"
-msgstr "Commande pour la synchronisation du calendrier :"
+#: ../data/gtkpod.glade.h:379
+msgid "_Displayed Tracks"
+msgstr "Morceaux _affichés"
 
-#: gtkpod.glade:16962
-msgid "Notes sync command:"
-msgstr "Commande pour la synchronisation des notes :"
+#: ../data/gtkpod.glade.h:380
+msgid "_Edit"
+msgstr "_Édition"
 
-#: gtkpod.glade:16991
-msgid "Call automatically when synchronizing iTunesDB"
-msgstr "Exécuter en même temps que la synchronisation de la base iTunesDB"
+#: ../data/gtkpod.glade.h:381
+msgid "_Encoding (ID3, files):"
+msgstr "Jeu de caractères (ID3, fichiers) :"
 
-#: 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."
+#: ../data/gtkpod.glade.h:382
+msgid "_Enqueue"
+msgstr "_Ajouter à la file d'attente"
 
-#: gtkpod.glade:17294
-msgid "Update/Sync all playlists now"
-msgstr ""
+#: ../data/gtkpod.glade.h:383
+msgid "_Export Tracks from Database"
+msgstr "E_xporter les morceaux de la base de données"
 
-#: gtkpod.glade:17314
-#, fuzzy
-msgid "Delete repository"
-msgstr "Supprimer de l'iPod"
+#: ../data/gtkpod.glade.h:384
+msgid "_File"
+msgstr "_Fichier"
 
-#: gtkpod.glade:17334 src/context_menus.c:430 src/context_menus.c:448
-#: src/context_menus.c:523
-msgid "I'm sure"
+#: ../data/gtkpod.glade.h:385
+msgid "_Find New"
 msgstr ""
 
-#: gtkpod.glade:17390
-#, fuzzy
-msgid "<b>Repositories</b>"
-msgstr "<b>Infobulles</b>"
+#: ../data/gtkpod.glade.h:386
+msgid "_General"
+msgstr "_Général"
 
-#: gtkpod.glade:17587
-msgid ""
-"Directories to sync with are determined from the filenames of the tracks in "
-"the playlist."
+#: ../data/gtkpod.glade.h:387
+msgid "_Help"
+msgstr "A_ide"
+
+#: ../data/gtkpod.glade.h:388
+msgid "_Ignore rules"
+msgstr "Ne respectant _pas"
+
+#: ../data/gtkpod.glade.h:389
+msgid "_Info Window"
+msgstr "_Fenêtre d'infos"
+
+#: ../data/gtkpod.glade.h:390
+msgid "_Last.FM"
 msgstr ""
 
-#: gtkpod.glade:17589
-msgid "On startup automatically sync with playlist directories"
+#: ../data/gtkpod.glade.h:391
+msgid "_Less Sort Tabs"
+msgstr "_Supprimer une zone de tri"
+
+#: ../data/gtkpod.glade.h:392
+msgid "_Limit to"
+msgstr "_Limiter à"
+
+#: ../data/gtkpod.glade.h:393
+msgid "_Load iPod(s)"
+msgstr "_Chargement iPod(s)"
+
+#: ../data/gtkpod.glade.h:394
+msgid "_Local"
+msgstr "_Locale"
+
+#: ../data/gtkpod.glade.h:395
+msgid "_M3U"
+msgstr "_M3U"
+
+#: ../data/gtkpod.glade.h:396
+msgid "_More Sort Tabs"
+msgstr "_Ajouter une zone de tri"
+
+#: ../data/gtkpod.glade.h:397
+msgid "_Newly Added Tracks"
+msgstr "_Nouveaux morceaux ajoutés"
+
+#: ../data/gtkpod.glade.h:398
+msgid "_Normalize Volume"
+msgstr "_Normaliser le volume"
+
+#: ../data/gtkpod.glade.h:399
+msgid "_Number of sort tabs:"
+msgstr "_Nombre de zones de tri :"
+
+#: ../data/gtkpod.glade.h:400
+msgid "_Other"
+msgstr "_Autre"
+
+#: ../data/gtkpod.glade.h:401
+msgid "_PLS"
+msgstr "_PLS"
+
+#: ../data/gtkpod.glade.h:402
+msgid "_Play Now"
+msgstr "_Jouer maintenant"
+
+#: ../data/gtkpod.glade.h:403
+msgid "_Podcasts"
 msgstr ""
 
-#: gtkpod.glade:17608
+#: ../data/gtkpod.glade.h:404
+msgid "_Prefer Local"
+msgstr "Locale de _préférence"
+
+#: ../data/gtkpod.glade.h:405
+msgid "_Save Changes"
+msgstr "_Enregistrer les modifications"
+
+#: ../data/gtkpod.glade.h:406
+msgid "_Save Displayed Track Order"
+msgstr "_Sauver l'ordre de tri des morceaux affichés"
+
+#: ../data/gtkpod.glade.h:407
+msgid "_Sorting"
+msgstr "_Tri"
+
+#: ../data/gtkpod.glade.h:408
 #, fuzzy
-msgid "On startup automatically sync with the following directory"
-msgstr "Prêt à synchroniser les répertoires suivants ?"
+msgid "_Synchronize Playlist with Dir(s)"
+msgstr "Sync les listes avec le(s) répertoire(s)"
 
-#: gtkpod.glade:17702
+#: ../data/gtkpod.glade.h:409
+msgid "_Toolbar"
+msgstr "_Barre d'outils"
+
+#: ../data/gtkpod.glade.h:410
+msgid "_Tools"
+msgstr "_Outils"
+
+#: ../data/gtkpod.glade.h:411
+msgid "_Tooltips"
+msgstr "_Infobulles"
+
+#: ../data/gtkpod.glade.h:412
+msgid "_Track Info"
+msgstr "Infos du _Morceau"
+
+#: ../data/gtkpod.glade.h:413
+msgid "_Undo All"
+msgstr "Annuler _Tout"
+
+#: ../data/gtkpod.glade.h:414
+msgid "_Undo Track"
+msgstr "Annuler pour le _Morceau"
+
+#: ../data/gtkpod.glade.h:415
+msgid "_Update Tracks from File"
+msgstr "_Mettre à jour les morceaux à partir des fichiers"
+
+#: ../data/gtkpod.glade.h:416
 #, fuzzy
-msgid "Don't automatically sync on startup"
-msgstr "Importer les données de l'iPod au démarrage de gtkpod"
+msgid "_Video"
+msgstr "_Affichage"
 
-#: gtkpod.glade:17848
-msgid "On startup automatically update (Live Playlist)"
-msgstr ""
+#: ../data/gtkpod.glade.h:417
+msgid "_View"
+msgstr "_Affichage"
 
-#: gtkpod.glade:17878
-msgid "Update/Sync playlist now"
+#: ../data/gtkpod.glade.h:418
+msgid "_iPod"
+msgstr "_iPod"
+
+#: ../data/gtkpod.glade.h:420
+#, no-c-format
+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, N° de piste: %"
+"T, N° de CD: %C, année: %Y, 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:17925
-#, fuzzy
-msgid "<b>Playlists</b>"
-msgstr "<b>Jouer</b>"
+#: ../data/gtkpod.glade.h:421
+msgid "folder"
+msgstr "répertoire"
 
-#: gtkpod.glade:18042
-#, fuzzy
-msgid "Create Repository"
-msgstr "Supprimer de l'iPod"
+#: ../data/gtkpod.glade.h:422
+msgid "folder.jpg"
+msgstr "répertoire.jpg"
 
-#: gtkpod.glade:18320
+#: ../data/gtkpod.glade.h:424
+#, no-c-format
+msgid "folder.jpg;%a.jpg"
+msgstr "répertoire.jpg;%a.jpg"
+
+#: ../data/gtkpod.glade.h:425
+msgid "gtkpod"
+msgstr "gtkpod"
+
+#: ../data/gtkpod.glade.h:426
+msgid "gtkpod Info"
+msgstr "Infos gtkpod"
+
+#: ../data/gtkpod.glade.h:427
 msgid ""
-"Insert before\n"
-"Insert after"
+"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:18358
-#, fuzzy
-msgid "Repository type:"
-msgstr "Options de tri"
+#: ../data/gtkpod.glade.h:428
+msgid "gtkpod options"
+msgstr "Options gtkpod"
 
-#: gtkpod.glade:18386
+#. These are the items for the 'Repository type' combo in the 'Create Repository' dialog. Keep the three items in order!
+#: ../data/gtkpod.glade.h:430
 msgid ""
 "iPod\n"
 "Local Repository (Standard)\n"
 "Local Repository (Podcasts)\n"
 msgstr ""
+"iPod\n"
+"Dépot local (standard)\n"
+"Dépot local (Podcasts)\n"
 
-#: gtkpod.glade:18407
+#: ../data/gtkpod.glade.h:434
+msgid "iPod mountpoint:"
+msgstr "Point de montage de l'iPod :"
+
+#: ../data/gtkpod.glade.h:435
+msgid "iTunesDB backup:"
+msgstr "Sauvegarde iTunesDB :"
+
+#: ../data/gtkpod.glade.h:436
 #, fuzzy
-msgid "Repository name:"
-msgstr "Options de tri"
+msgid "label"
+msgstr "label21"
 
-#: gtkpod.glade:18543 gtkpod.glade:18806
-msgid "Initialize iPod"
-msgstr ""
+#: ../data/gtkpod.glade.h:437
+msgid "mserv Root:"
+msgstr "Racine mserv :"
 
-#: gtkpod.glade:18613
-msgid "<b>Please select mountpoint and your iPod model</b>"
+#: ../data/gtkpod.glade.h:438
+msgid "mserv database lookup will be done for music in this directory."
+msgstr "La base mserv utilise ce répertoire pour chercher une musique."
+
+#: ../data/gtkpod.glade.h:439 ../src/details.c:1175
+msgid "n/a"
+msgstr "nd"
+
+#: ../data/gtkpod.glade.h:440
+msgid "special_sorttab -- Don't translate!"
 msgstr ""
 
-#: src/charset.c:53
+#: ../src/charset.c:53
 msgid "Arabic (IBM-864)"
 msgstr "Arabe (IBM-864)"
 
-#: src/charset.c:54
+#: ../src/charset.c:54
 msgid "Arabic (ISO-8859-6)"
 msgstr "Arabe (ISO-8859-6)"
 
-#: src/charset.c:55
+#: ../src/charset.c:55
 msgid "Arabic (Windows-1256)"
 msgstr "Arabe (Windows-1256)"
 
-#: src/charset.c:56
+#: ../src/charset.c:56
 msgid "Baltic (ISO-8859-13)"
 msgstr "Balte (ISO-8859-13)"
 
-#: src/charset.c:57
+#: ../src/charset.c:57
 msgid "Baltic (ISO-8859-4)"
 msgstr "Balte (ISO-8859-4)"
 
-#: src/charset.c:58
+#: ../src/charset.c:58
 msgid "Baltic (Windows-1257)"
 msgstr "Balte (Windows-1257)"
 
-#: src/charset.c:59
+#: ../src/charset.c:59
 msgid "Celtic (ISO-8859-14)"
 msgstr "Celte (ISO-8859-14)"
 
-#: src/charset.c:60
+#: ../src/charset.c:60
 msgid "Central European (IBM-852)"
 msgstr "Europe centrale (IBM-852)"
 
-#: src/charset.c:61
+#: ../src/charset.c:61
 msgid "Central European (ISO-8859-2)"
 msgstr "Europe centrale (ISO-8859-2)"
 
-#: src/charset.c:62
+#: ../src/charset.c:62
 msgid "Central European (Windows-1250)"
 msgstr "Europe centrale (Windows-1250)"
 
-#: src/charset.c:63
+#: ../src/charset.c:63
 msgid "Chinese Simplified (GB18030)"
 msgstr "Chinois simplifié (GB18030)"
 
-#: src/charset.c:64
+#: ../src/charset.c:64
 msgid "Chinese Simplified (GB2312)"
 msgstr "Chinois simplifié (GB2312)"
 
-#: src/charset.c:65
+#: ../src/charset.c:65
 msgid "Chinese Traditional (Big5)"
 msgstr "Chinois traditionnel (Big5)"
 
-#: src/charset.c:66
+#: ../src/charset.c:66
 msgid "Chinese Traditional (Big5-HKSCS)"
 msgstr "Chinois traditionnel (Big5-HKSCS)"
 
-#: src/charset.c:67
+#: ../src/charset.c:67
 msgid "Cyrillic (IBM-855)"
 msgstr "Cyrillique (IBM-855)"
 
-#: src/charset.c:68
+#: ../src/charset.c:68
 msgid "Cyrillic (ISO-8859-5)"
 msgstr "Cyrillique (ISO-8859-5)"
 
-#: src/charset.c:69
+#: ../src/charset.c:69
 msgid "Cyrillic (ISO-IR-111)"
 msgstr "Cyrillique (ISO-IR-111)"
 
-#: src/charset.c:70
+#: ../src/charset.c:70
 msgid "Cyrillic (KOI8-R)"
 msgstr "Cyrillique (KOI8-R)"
 
-#: src/charset.c:71
+#: ../src/charset.c:71
 msgid "Cyrillic (Windows-1251)"
 msgstr "Cyrillique (Windows-1251)"
 
-#: src/charset.c:72
+#: ../src/charset.c:72
 msgid "Cyrillic/Russian (CP-866)"
 msgstr "Cyrillique/Russe (CP-866)"
 
-#: src/charset.c:73
+#: ../src/charset.c:73
 msgid "Cyrillic/Ukrainian (KOI8-U)"
 msgstr "Cyrillique/Ukrainien (KOI8-U)"
 
-#: src/charset.c:74
+#: ../src/charset.c:74
 msgid "English (US-ASCII)"
 msgstr "Anglais (US-ASCII)"
 
-#: src/charset.c:75
+#: ../src/charset.c:75
 msgid "Greek (ISO-8859-7)"
 msgstr "Grec (ISO-8859-7)"
 
-#: src/charset.c:76
+#: ../src/charset.c:76
 msgid "Greek (Windows-1253)"
 msgstr "Grec (Windows-1253)"
 
-#: src/charset.c:77
+#: ../src/charset.c:77
 msgid "Hebrew (IBM-862)"
 msgstr "Hébreu (IBM-862)"
 
-#: src/charset.c:78
+#: ../src/charset.c:78
 msgid "Hebrew (Windows-1255)"
 msgstr "Hébreu (Windows-1255)"
 
-#: src/charset.c:79
+#: ../src/charset.c:79
 msgid "Japanese (automatic detection)"
 msgstr "Japonais (détection automatique)"
 
-#: src/charset.c:80
+#: ../src/charset.c:80
 msgid "Japanese (EUC-JP)"
 msgstr "Japonais (EUC-JP)"
 
-#: src/charset.c:81
+#: ../src/charset.c:81
 msgid "Japanese (ISO-2022-JP)"
 msgstr "Japonais (ISO-2022-JP)"
 
-#: src/charset.c:82
+#: ../src/charset.c:82
 msgid "Japanese (Shift_JIS)"
 msgstr "Japonais (Shift_JIS)"
 
-#: src/charset.c:83
+#: ../src/charset.c:83
 msgid "Korean (EUC-KR)"
 msgstr "Coréen (EUC-KR)"
 
-#: src/charset.c:84
+#: ../src/charset.c:84
 msgid "Nordic (ISO-8859-10)"
 msgstr "Nordique (ISO-8859-10)"
 
-#: src/charset.c:85
+#: ../src/charset.c:85
 msgid "South European (ISO-8859-3)"
 msgstr "Europe du sud (ISO-8859-3)"
 
-#: src/charset.c:86
+#: ../src/charset.c:86
 msgid "Thai (TIS-620)"
 msgstr "Thaï (TIS-620)"
 
-#: src/charset.c:87
+#: ../src/charset.c:87
 msgid "Turkish (IBM-857)"
 msgstr "Turc (IBM-857)"
 
-#: src/charset.c:88
+#: ../src/charset.c:88
 msgid "Turkish (ISO-8859-9)"
 msgstr "Turc (ISO-8859-9)"
 
-#: src/charset.c:89
+#: ../src/charset.c:89
 msgid "Turkish (Windows-1254)"
 msgstr "Turc (Windows-1254)"
 
-#: src/charset.c:90
+#: ../src/charset.c:90
 msgid "Unicode (UTF-7)"
 msgstr "Unicode (UTF-7)"
 
-#: src/charset.c:91
+#: ../src/charset.c:91
 msgid "Unicode (UTF-8)"
 msgstr "Unicode (UTF-8)"
 
-#: src/charset.c:92
+#: ../src/charset.c:92
 msgid "Unicode (UTF-16BE)"
 msgstr "Unicode (UTF-16BE)"
 
-#: src/charset.c:93
+#: ../src/charset.c:93
 msgid "Unicode (UTF-16LE)"
 msgstr "Unicode (UTF-16LE)"
 
-#: src/charset.c:94
+#: ../src/charset.c:94
 msgid "Unicode (UTF-32BE)"
 msgstr "Unicode (UTF-32BE)"
 
-#: src/charset.c:95
+#: ../src/charset.c:95
 msgid "Unicode (UTF-32LE)"
 msgstr "Unicode (UTF-32LE)"
 
-#: src/charset.c:96
+#: ../src/charset.c:96
 msgid "Vietnamese (VISCII)"
 msgstr "Vietnamien (VISCII)"
 
-#: src/charset.c:97
+#: ../src/charset.c:97
 msgid "Vietnamese (Windows-1258)"
 msgstr "Vietnamien (Windows-1258)"
 
-#: src/charset.c:98
+#: ../src/charset.c:98
 msgid "Visual Hebrew (ISO-8859-8)"
 msgstr "Hébreu visuel (ISO-8859-8)"
 
-#: src/charset.c:99
+#: ../src/charset.c:99
 msgid "Western (IBM-850)"
 msgstr "Europe occidentale (IBM-850)"
 
-#: src/charset.c:100
+#: ../src/charset.c:100
 msgid "Western (ISO-8859-1)"
 msgstr "Europe occidentale (ISO-8859-1)"
 
-#: src/charset.c:101
+#: ../src/charset.c:101
 msgid "Western (ISO-8859-15)"
 msgstr "Europe occidentale (ISO-8859-15)"
 
-#: src/charset.c:102
+#: ../src/charset.c:102
 msgid "Western (Windows-1252)"
 msgstr "Europe occidentale (Windows-1252)"
 
 #. sanity!
 #. check for "System Charset" and return NULL
-#: src/charset.c:160 src/charset.c:170 src/charset.c:223
+#: ../src/charset.c:160 ../src/charset.c:170 ../src/charset.c:223
 msgid "System Charset"
 msgstr "Jeu de caractères du système"
 
 #. we are not the first instance of gtkpod -- the socket is
 #. already being used, so we pass
-#: src/clientserver.c:215
+#: ../src/clientserver.c:214
 msgid ""
 "Another instance of gtkpod was detected. Playcount server not started.\n"
 msgstr ""
 "Une autre instance de gtkpod tourne déjà. Serveur de compteur non démarré.\n"
 
-#: src/confirmation.c:376
+#: ../src/confirmation.c:377
 msgid "Confirmation Dialogue"
 msgstr "Message de confirmation"
 
-#: src/context_menus.c:367 src/tools.c:852
+#: ../src/context_menus.c:359
+#, c-format
+msgid "Copied \"%s\" playlist to %s"
+msgstr ""
+
+#: ../src/context_menus.c:398
+#, fuzzy, c-format
+msgid "Copied %d track to '%s'"
+msgid_plural "Copied %d tracks to '%s'"
+msgstr[0] "%d morceau copiés sur %d."
+msgstr[1] "%d morceaux copiés sur %d."
+
+#: ../src/context_menus.c:426
+#, c-format
+msgid "Copied '%s' playlist to '%s' in '%s'"
+msgstr ""
+
+#: ../src/context_menus.c:459
+#, fuzzy, c-format
+msgid "Copied %d track to '%s' in '%s'"
+msgid_plural "Copied %d tracks to %s in '%s'"
+msgstr[0] "%d morceau supprimé de la liste de lecture «%s»"
+msgstr[1] "%d morceaux supprimés de la liste de lecture «%s»"
+
+#: ../src/context_menus.c:619 ../src/tools.c:854
 msgid "Play Now"
 msgstr "Jouer maintenant"
 
-#: src/context_menus.c:373 src/tools.c:865
+#: ../src/context_menus.c:625 ../src/tools.c:867
 msgid "Enqueue"
 msgstr "Mettre dans la file d'attente"
 
-#: src/context_menus.c:379
-#, fuzzy
+#: ../src/context_menus.c:631
 msgid "Copy Tracks to Filesystem"
-msgstr "_Mettre à jour les morceaux à partir des fichiers"
+msgstr "Copier les morceaux vers le disque dur"
 
-#: src/context_menus.c:386 src/file_export.c:1081
+#: ../src/context_menus.c:638 ../src/file_export.c:1085
 msgid "Create Playlist File"
 msgstr "Créer un fichier de liste"
 
-#: src/context_menus.c:393
+#: ../src/context_menus.c:645
 msgid "Create new Playlist"
 msgstr "Créer une nouvelle liste"
 
-#: src/context_menus.c:400
-#, fuzzy
+#: ../src/context_menus.c:652
 msgid "Update Tracks from File"
-msgstr "_Mettre à jour les morceaux à partir des fichiers"
+msgstr "Mette à jour les morceaux depuis le fichier"
 
-#: src/context_menus.c:414
+#: ../src/context_menus.c:666
 msgid "Sync Playlist with Dir(s)"
-msgstr ""
+msgstr "Sync les listes avec le(s) répertoire(s)"
 
-#: src/context_menus.c:424
+#: ../src/context_menus.c:676
 msgid "Remove All Tracks from iPod"
-msgstr "Supprimer tout les morceaux du iPod"
+msgstr "Supprimer tout les morceaux de l'iPod"
 
-#: src/context_menus.c:442
-#, fuzzy
+#: ../src/context_menus.c:694
 msgid "Remove All Podcasts from iPod"
-msgstr "Supprimer tout les morceaux du iPod"
+msgstr "Supprimer tout les podcats de l'iPod"
 
-#: src/context_menus.c:457
+#: ../src/context_menus.c:709
 msgid "Delete Including Tracks"
-msgstr "Supprimer avec les morceaux"
+msgstr "Supprimer avec les morceaux inclus"
 
-#: src/context_menus.c:465
+#: ../src/context_menus.c:717
 msgid "Delete But Keep Tracks"
 msgstr "Supprimer mais garder les morceaux"
 
-#: src/context_menus.c:473
-#, fuzzy
+#: ../src/context_menus.c:725
 msgid "Edit iPod Properties"
-msgstr "Créer les répertoires de l'iPod"
+msgstr "Editer les propriétes de l'iPod"
 
-#: src/context_menus.c:493
+#: ../src/context_menus.c:732
 #, fuzzy
+msgid "Edit Repository Properties"
+msgstr "Editer les propriétes de l'iPod"
+
+#: ../src/context_menus.c:739
+msgid "Edit Playlist Properties"
+msgstr "Editer les propriétes de la liste de lecture"
+
+#: ../src/context_menus.c:767
+msgid "View Full Size Artwork"
+msgstr ""
+
+#: ../src/context_menus.c:774
+#, fuzzy
+msgid "Select Cover From File"
+msgstr "Supprimer de l'iPod"
+
+#: ../src/context_menus.c:781
+msgid "Find Cover on Web"
+msgstr ""
+
+#: ../src/context_menus.c:794
 msgid "Load iPod"
-msgstr "_iPod"
+msgstr "Charger l'iPod"
 
-#: src/context_menus.c:500
+#: ../src/context_menus.c:801
 msgid "Eject iPod"
-msgstr ""
+msgstr "Ejecter l'iPod"
 
-#: src/context_menus.c:517
+#: ../src/context_menus.c:818
 msgid "Remove All Tracks from Database"
 msgstr "Supprimer tout les morceaux de la base de données"
 
-#: src/context_menus.c:532
+#: ../src/context_menus.c:833
 msgid "Delete Including Tracks (Harddisk)"
-msgstr "Supprimer les morceaux inclus (disque dur)"
+msgstr "Supprimer avec les morceaux inclus (disque dur)"
 
-#: src/context_menus.c:540
+#: ../src/context_menus.c:841
 msgid "Delete Including Tracks (Database)"
-msgstr "Supprimer les morceaux inclus (base de données)"
+msgstr "Supprimer avec les morceaux inclus (base de données)"
 
-#: src/context_menus.c:548
+#: ../src/context_menus.c:849
 msgid "Delete From iPod"
 msgstr "Supprimer de l'iPod"
 
-#: src/context_menus.c:556
+#: ../src/context_menus.c:857
 msgid "Delete From Playlist"
 msgstr "Supprimer de la liste de lecture"
 
-#: src/context_menus.c:564
+#: ../src/context_menus.c:865
 msgid "Delete From Harddisk"
 msgstr "Supprimer du disque dur"
 
-#: src/context_menus.c:572
+#: ../src/context_menus.c:873
 msgid "Delete From Database"
 msgstr "Supprimer de la base de données"
 
-#: src/context_menus.c:580
+#: ../src/context_menus.c:881
 msgid "Alphabetize"
 msgstr "Trier"
 
-#: src/context_menus.c:596
+#: ../src/context_menus.c:949 ../src/context_menus.c:998
 #, fuzzy
-msgid "Edit Playlist Properties"
-msgstr "Ajouter une liste de lecture"
+msgid "Copy selected playlist to..."
+msgstr "_Liste de lecture sélectionnée"
 
-#: src/date_parser.l:269
+#: ../src/context_menus.c:1051
+#, fuzzy
+msgid "Copy selected track(s) to..."
+msgstr "Morceaux supprimés"
+
+#: ../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:1182
-#, fuzzy
+#: ../src/details.c:700
+#, c-format
+msgid "%s (image data corrupted or unreadable)"
+msgstr ""
+
+#: ../src/details.c:1246
 msgid "<b>n/a</b>"
-msgstr "<b>Jouer</b>"
+msgstr "<b>nd</b>"
 
-#: src/display.c:891
-#, fuzzy
+#: ../src/display.c:647
 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:898 src/misc_confirm.c:431 src/misc_track.c:1613
+#: ../src/display.c:654 ../src/misc_confirm.c:435 ../src/misc_track.c:2059
 msgid "No entry selected."
 msgstr "Aucun élément sélectionné."
 
-#: src/display.c:1057 src/display.c:1384 src/display.c:1440 src/display.c:1494
-#: src/display.c:1549 src/display.c:1810
+#: ../src/display.c:813 ../src/display.c:1133 ../src/display.c:1189
+#: ../src/display.c:1243 ../src/display.c:1298 ../src/display.c:1559
 #, 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:1096
-#, fuzzy
+#: ../src/display.c:852
 msgid "Remove entry of which sort tab from database?"
-msgstr "Exporter l'entrée sélectionnée de quelle zone de tri ?"
+msgstr "Supprimer l'entrée de quelle zone de tri de la base de données ?"
 
-#: src/display.c:1104
-#, fuzzy
+#: ../src/display.c:860
 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 ?"
+msgstr "Supprimer les morceaux de quelle zone de tri de l'iPod ?"
 
-#: src/display.c:1126
-#, fuzzy
+#: ../src/display.c:882
 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 ?"
+msgstr "Supprimer les morceaux de quelle zone de tri du disque dur ?"
 
-#: src/display.c:1156
+#: ../src/display.c:912
 #, 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 ?"
+msgstr "Supprimer les morceaux de quelle zone de tri de liste de lecture ?"
 
-#: src/display.c:1183 src/display.c:1221
+#: ../src/display.c:939 ../src/display.c:977
 #, c-format
 msgid ""
 "iPod at '%s' is not loaded.\n"
 "Please load it first."
 msgstr ""
+"L'iPod en «%s» n'est pas chargé.\n"
+"Charger d'abord."
 
-#: src/display.c:1265 src/display.c:1292
+#: ../src/display.c:1014 ../src/display.c:1041
 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:1378
+#: ../src/display.c:1127
 msgid "Export selected entry of which sort tab?"
 msgstr "Exporter l'entrée sélectionnée de quelle zone de tri ?"
 
-#: src/display.c:1434
+#: ../src/display.c:1183
 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:1488
+#: ../src/display.c:1237
 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:1543
+#: ../src/display.c:1292
 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:1800
+#: ../src/display.c:1549
 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:355
-#, fuzzy, c-format
+#: ../src/display_coverart.c:1714
+msgid "Failed to remove the album from the album hash store."
+msgstr ""
+
+#: ../src/display_itdb.c:376
+#, c-format
 msgid "Failed to set cover art: '%s'\n"
-msgstr "Impossible d'écrire «%s-%s»\n"
+msgstr "Impossible d'écrire la pochette :«%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
+#: ../src/display_itdb.c:851 ../src/display_itdb.c:984
 msgid "Local"
 msgstr "Local"
 
 #. add podcast playlist
-#: src/display_itdb.c:852 src/display_itdb.c:963 src/display_itdb.c:991
+#: ../src/display_itdb.c:859 ../src/display_itdb.c:982
+#: ../src/display_itdb.c:1010
 msgid "Podcasts"
 msgstr ""
 
-#: src/display_itdb.c:1050
+#: ../src/display_itdb.c:868 ../src/display_itdb.c:986
+#: ../src/repository.c:1186
+msgid "iPod"
+msgstr "iPod"
+
+#: ../src/display_itdb.c:1069
 #, 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:496 src/display_playlists.c:538
+#: ../src/display_playlists.c:500 ../src/display_playlists.c:542
 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:565 src/display_songs.c:287
+#: ../src/display_playlists.c:569 ../src/display_tracks.c:286
 #, 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:851
+#: ../src/display_playlists.c:849 ../src/display_playlists.c:861
 msgid "Can't reorder sorted treeview."
 msgstr "Impossíble de réorganiser la vue arborescente triée."
 
-#: src/display_playlists.c:944
+#: ../src/display_playlists.c:938
 #, c-format
 msgid ""
 "This DND type (%d) is not (yet) supported. If you feel implementing this "
@@ -2343,457 +2534,498 @@
 "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_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: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 ""
-"La biblitohèque GTK que vous utilisez (%d.%d.%d < 2.5.4) contient un bogue. "
-"Une fois que vous triez par morceau, vous ne pouvez pas revenir au tri "
-"précédent.\n"
-"\n"
-
-#: src/display_songs.c:1923
-#, fuzzy
-msgid "Rtng"
-msgstr "Note"
-
-#: 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 "Transféré"
-
-#: src/display_songs.c:1939
-msgid "Cmpl"
-msgstr "Cmpl"
-
-#: src/display_songs.c:1945 src/display_spl.c:94
-msgid "Time"
-msgstr "Durée"
-
-#: src/display_songs.c:1948
-msgid "Plycnt"
-msgstr "Cpt. lect"
-
-#: src/display_songs.c:1960
-#, fuzzy
-msgid "Released"
-msgstr "Lire"
-
-#: 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:1966
-msgid "Vol."
-msgstr "Vol."
-
-#: src/display_songs.c:1969
-msgid "Sndchk."
-msgstr "Ctrl. Son"
-
-#: src/display_sorttabs.c:456
+#: ../src/display_sorttabs.c:473
 msgid "'Played' condition ignored because of error."
 msgstr "Condition «Joué le» ignorée à cause d'une erreur."
 
-#: src/display_sorttabs.c:459
+#: ../src/display_sorttabs.c:476
 msgid "'Modified' condition ignored because of error."
 msgstr "Condition «Modifié le» ignorée à cause d'une erreur."
 
-#: src/display_sorttabs.c:462
+#: ../src/display_sorttabs.c:479
 msgid "'Added' condition ignored because of error."
 msgstr "Condition «Ajouté le» ignorée à cause d'une erreur."
 
-#: src/display_sorttabs.c:1582 src/misc_conversion.c:60
+#: ../src/display_sorttabs.c:1563 ../src/misc_conversion.c:59
 msgid "All"
 msgstr "Tous"
 
-#: src/display_sorttabs.c:1608
-#, fuzzy
+#: ../src/display_sorttabs.c:1589
 msgid "Compilations"
-msgstr "Compilation"
+msgstr "Compilations"
 
-#: src/display_sorttabs.c:2951
+#: ../src/display_sorttabs.c:2960
 msgid "Comp."
 msgstr "Comp."
 
-#: src/display_sorttabs.c:2960
+#: ../src/display_sorttabs.c:2966 ../src/display_spl.c:88
+#: ../src/display_tracks.c:2002 ../src/misc_conversion.c:84
+msgid "Year"
+msgstr "Année"
+
+#: ../src/display_sorttabs.c:2969
 msgid "Special"
 msgstr "Spécial"
 
-#: src/display_sorttabs.c:3216
+#: ../src/display_sorttabs.c:3230
 msgid "Last Played"
 msgstr "Dernière fois joué"
 
-#: src/display_sorttabs.c:3217
+#: ../src/display_sorttabs.c:3231
 msgid "Last Modified"
 msgstr "Dernière fois modifié"
 
-#: src/display_spl.c:64
+#: ../src/display_spl.c:64
 msgid "days"
 msgstr "jours"
 
-#: src/display_spl.c:65
+#: ../src/display_spl.c:65
 msgid "weeks"
 msgstr "semaines"
 
-#: src/display_spl.c:66
+#: ../src/display_spl.c:66
 msgid "months"
 msgstr "mois"
 
-#: src/display_spl.c:73
+#: ../src/display_spl.c:73
 msgid "kbps"
 msgstr "kbps"
 
-#: src/display_spl.c:74
+#: ../src/display_spl.c:74
 msgid "Hz"
 msgstr "Hz"
 
-#: src/display_spl.c:75 src/display_spl.c:160 src/info.c:777
+#: ../src/display_spl.c:75 ../src/display_spl.c:179 ../src/info.c:777
 msgid "MB"
 msgstr "Mo"
 
-#: src/display_spl.c:76
+#: ../src/display_spl.c:76
 msgid "secs"
 msgstr "secs"
 
-#: src/display_spl.c:86 src/misc_conversion.c:75
+#: ../src/display_spl.c:86 ../src/misc_conversion.c:74
 msgid "Bitrate"
 msgstr "Débit"
 
 #. 15
-#: src/display_spl.c:87 src/misc_conversion.c:76
+#: ../src/display_spl.c:87 ../src/misc_conversion.c:75
 msgid "Samplerate"
 msgstr "Tx d'échant."
 
-#: src/display_spl.c:90
+#: ../src/display_spl.c:90
 msgid "Kind"
-msgstr "Sorte"
+msgstr "Type"
 
-#: src/display_spl.c:91 src/misc_conversion.c:82
+#: ../src/display_spl.c:91 ../src/misc_conversion.c:81
 msgid "Date modified"
 msgstr "Modifié le"
 
-#: src/display_spl.c:92
+#: ../src/display_spl.c:92
 msgid "Track number"
-msgstr "Numéro de piste"
+msgstr "N° de piste"
 
-#: src/display_spl.c:93
+#: ../src/display_spl.c:93
 msgid "Size"
 msgstr "Taille"
 
-#: src/display_spl.c:95 src/misc_conversion.c:65
+#: ../src/display_spl.c:94 ../src/display_tracks.c:1984
+msgid "Time"
+msgstr "Durée"
+
+#: ../src/display_spl.c:95 ../src/misc_conversion.c:64
 msgid "Comment"
 msgstr "Commentaire"
 
-#: src/display_spl.c:96 src/misc_conversion.c:80
+#: ../src/display_spl.c:96 ../src/misc_conversion.c:79
 msgid "Date added"
 msgstr "Ajouté le"
 
-#: src/display_spl.c:99
+#: ../src/display_spl.c:99
 msgid "Last played"
 msgstr "Dernière fois joué"
 
-#: src/display_spl.c:100
+#: ../src/display_spl.c:100
 msgid "Disc number"
-msgstr "Numéro de disque"
+msgstr "N° de disque"
 
-#: src/display_spl.c:102 src/misc_conversion.c:88
+#: ../src/display_spl.c:102 ../src/misc_conversion.c:87
 msgid "Compilation"
 msgstr "Compilation"
 
-#: src/display_spl.c:103 src/misc_conversion.c:77
+#: ../src/display_spl.c:103 ../src/misc_conversion.c:76
 msgid "BPM"
 msgstr "BPM"
 
-#: src/display_spl.c:104 src/misc_conversion.c:87
+#: ../src/display_spl.c:104 ../src/misc_conversion.c:86
 msgid "Grouping"
-msgstr "Grouping"
+msgstr "Regroupement"
 
-#: src/display_spl.c:111
+#: ../src/display_spl.c:106
+msgid "Video Kind"
+msgstr ""
+
+#: ../src/display_spl.c:107 ../src/display_spl.c:210 ../src/display_spl.c:219
+#: ../src/misc_conversion.c:101
+msgid "TV Show"
+msgstr ""
+
+#: ../src/display_spl.c:108
+#, fuzzy
+msgid "Season number"
+msgstr "N° de disque"
+
+#: ../src/display_spl.c:109
+msgid "Skip count"
+msgstr ""
+
+#: ../src/display_spl.c:110
+#, fuzzy
+msgid "Last skipped"
+msgstr "Dernière fois joué"
+
+#: ../src/display_spl.c:111
+#, fuzzy
+msgid "Album artist"
+msgstr "artiste"
+
+#: ../src/display_spl.c:117
 msgid "contains"
 msgstr "contient"
 
-#: src/display_spl.c:112
+#: ../src/display_spl.c:118
 msgid "does not contain"
 msgstr "ne contient pas"
 
-#: src/display_spl.c:113 src/display_spl.c:122 src/display_spl.c:132
-#: src/display_spl.c:151
+#: ../src/display_spl.c:119 ../src/display_spl.c:128 ../src/display_spl.c:138
+#: ../src/display_spl.c:157 ../src/display_spl.c:164
 msgid "is"
 msgstr "est"
 
-#: src/display_spl.c:114 src/display_spl.c:123 src/display_spl.c:133
-#: src/display_spl.c:152
+#: ../src/display_spl.c:120 ../src/display_spl.c:129 ../src/display_spl.c:139
+#: ../src/display_spl.c:158 ../src/display_spl.c:165
 msgid "is not"
 msgstr "n'est pas"
 
-#: src/display_spl.c:115
+#: ../src/display_spl.c:121
 msgid "starts with"
 msgstr "commence par"
 
-#: src/display_spl.c:116
+#: ../src/display_spl.c:122
 msgid "ends with"
 msgstr "finit par"
 
-#: src/display_spl.c:124
+#: ../src/display_spl.c:130
 msgid "is greater than"
 msgstr "est plus grand que"
 
-#: src/display_spl.c:125
+#: ../src/display_spl.c:131
 msgid "is less than"
 msgstr "est plus petit que"
 
-#: src/display_spl.c:126 src/display_spl.c:138
+#: ../src/display_spl.c:132 ../src/display_spl.c:144
 msgid "is in the range"
 msgstr "est dans l'intervalle"
 
-#: src/display_spl.c:134
+#: ../src/display_spl.c:140
 msgid "is after"
 msgstr "est après"
 
-#: src/display_spl.c:135
+#: ../src/display_spl.c:141
 msgid "is before"
 msgstr "est avant"
 
-#: src/display_spl.c:136
+#: ../src/display_spl.c:142
 msgid "in the last"
 msgstr "est le dernier"
 
-#: src/display_spl.c:137
+#: ../src/display_spl.c:143
 msgid "not in the last"
 msgstr "n'est pas le dernier"
 
-#: src/display_spl.c:144
+#: ../src/display_spl.c:150
 msgid "is set"
 msgstr "est rempli"
 
-#: src/display_spl.c:145
+#: ../src/display_spl.c:151
 msgid "is not set"
 msgstr "n'est pas rempli"
 
-#: src/display_spl.c:159
+#: ../src/display_spl.c:171
+#, fuzzy
+msgid "Not supported"
+msgstr "Jamais écoutés"
+
+#: ../src/display_spl.c:178
 msgid "minutes"
 msgstr "minutes"
 
-#: src/display_spl.c:161
+#: ../src/display_spl.c:180
 msgid "tracks"
 msgstr "morceaux"
 
-#: src/display_spl.c:162
+#: ../src/display_spl.c:181
 msgid "hours"
 msgstr "heures"
 
-#: src/display_spl.c:163 src/info.c:777
+#: ../src/display_spl.c:182 ../src/info.c:777
 msgid "GB"
 msgstr "Go"
 
-#: src/display_spl.c:170
+#: ../src/display_spl.c:189
 msgid "random order"
 msgstr "ordre aléatoire"
 
-#: src/display_spl.c:171
+#: ../src/display_spl.c:190
 msgid "title"
 msgstr "titre"
 
-#: src/display_spl.c:172
+#: ../src/display_spl.c:191
 msgid "album"
 msgstr "album"
 
-#: src/display_spl.c:173
+#: ../src/display_spl.c:192
 msgid "artist"
 msgstr "artiste"
 
-#: src/display_spl.c:174
+#: ../src/display_spl.c:193
 msgid "genre"
 msgstr "genre"
 
-#: src/display_spl.c:175
+#: ../src/display_spl.c:194
 msgid "most recently added"
-msgstr "dernièrement ajoutés"
+msgstr "ajoutés en dernier"
 
-#: src/display_spl.c:176
+#: ../src/display_spl.c:195
 msgid "least recently added"
 msgstr "ajoutés en premier"
 
-#: src/display_spl.c:177
+#: ../src/display_spl.c:196
 msgid "most often played"
-msgstr "les plus souvent joués"
+msgstr "joués le plus souvent"
 
-#: src/display_spl.c:178
+#: ../src/display_spl.c:197
 msgid "least often played"
-msgstr "les moins souvent joués"
+msgstr "joués le moins souvent"
 
-#: src/display_spl.c:179
+#: ../src/display_spl.c:198
 msgid "most recently played"
-msgstr "dernièrement joués"
+msgstr "joués le plus récemment"
 
-#: src/display_spl.c:180
+#: ../src/display_spl.c:199
 msgid "least recently played"
 msgstr "joués il y a longtemps"
 
-#: src/display_spl.c:181
+#: ../src/display_spl.c:200
 msgid "highest rating"
 msgstr "les mieux notés"
 
-#: src/display_spl.c:182
+#: ../src/display_spl.c:201
 msgid "lowest rating"
 msgstr "les moins bien notés"
 
-#: src/display_spl.c:1047 src/display_spl.c:1062
+#: ../src/display_spl.c:208 ../src/display_spl.c:217
+#, fuzzy
+msgid "Movie"
+msgstr "Modifié le"
+
+#: ../src/display_spl.c:209 ../src/display_spl.c:218
+#, fuzzy
+msgid "Music Video"
+msgstr "Racine musique :"
+
+#: ../src/display_spl.c:1162 ../src/display_spl.c:1177
 msgid "to"
 msgstr "à"
 
-#: src/display_spl.c:1279
+#: ../src/display_spl.c:1455
 msgid "-"
 msgstr "-"
 
-#: src/display_spl.c:1294
+#: ../src/display_spl.c:1470
 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
+#: ../src/display_spl.c:1689 ../src/misc_playlist.c:66
+#: ../src/misc_playlist.c:68 ../src/misc_playlist.c:93
+#: ../src/misc_playlist.c:95 ../src/misc_playlist.c:428
+#: ../src/misc_playlist.c:430
 msgid "New Playlist"
 msgstr "Nouvelle liste de lecture"
 
-#: src/file.c:230
+#: ../src/display_tracks.c:281
 #, 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_tracks.c:1717
+#, 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 ""
+"La biblitohèque GTK que vous utilisez (%d.%d.%d < 2.5.4) contient un bogue. "
+"Une fois que vous triez par morceau, vous ne pouvez pas revenir au tri "
+"précédent.\n"
+"\n"
+
+#: ../src/display_tracks.c:1962
+msgid "Rtng"
+msgstr "Note"
+
+#: ../src/display_tracks.c:1965
+msgid "#"
+msgstr "N°"
+
+#: ../src/display_tracks.c:1968
+msgid "CD"
+msgstr "CD"
+
+#: ../src/display_tracks.c:1971
+msgid "ID"
+msgstr "Id"
+
+#: ../src/display_tracks.c:1974
+msgid "Trnsfrd"
+msgstr "Transféré"
+
+#: ../src/display_tracks.c:1978
+msgid "Cmpl"
+msgstr "Cmpl"
+
+#: ../src/display_tracks.c:1987
+msgid "Plycnt"
+msgstr "Cpt. lect"
+
+#: ../src/display_tracks.c:1999
+msgid "Released"
+msgstr "Sortie"
+
+#: ../src/display_tracks.c:2005
+msgid "Vol."
+msgstr "Vol."
+
+#: ../src/display_tracks.c:2008
+msgid "Sndchk."
+msgstr "Ctrl. Son"
+
+#: ../src/file.c:236
+#, c-format
+msgid ""
 "'%s' is a directory, not a playlist file.\n"
 "\n"
 msgstr ""
-"'%s' est un répertoire, pas un fichier de liste.\n"
+"«%s» est un répertoire, pas un fichier de liste.\n"
 "\n"
 
-#: src/file.c:258
+#: ../src/file.c:266
 #, c-format
 msgid ""
 "'%s' is a not a known playlist file.\n"
 "\n"
 msgstr ""
-"'%s' n'est pas un fichier connu de liste\n"
+"«%s» n'est pas un fichier connu de liste\n"
 "\n"
 
-#: src/file.c:275
+#: ../src/file.c:283
 #, c-format
 msgid ""
 "Cannot open '%s' for reading.\n"
 "\n"
 msgstr ""
-"Ne peut ouvrir en lecture le fichier '%s'.\n"
+"Ne peut ouvrir en lecture le fichier «%s».\n"
 "\n"
 
-#: src/file.c:359
+#: ../src/file.c:369
 #, 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:364
+#: ../src/file.c:374
 #, 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"
+"Saut de «%s» pour éviter d'ajouter une liste de lecture récursivement\n"
 
-#: src/file.c:619
+#: ../src/file.c:629
 #, c-format
 msgid "Unknown token '%s' in template '%s'\n"
-msgstr "Paramètre «%s» dans le modèle «%s» inexistant\n"
+msgstr "Paramètre «%s» inconnu dans le modèle «%s»\n"
 
-#: src/file.c:871
+#: ../src/file.c:890
 #, c-format
 msgid "Local filename not valid (%s)"
 msgstr "Nom de fichier local invalide (%s)"
 
-#: src/file.c:930
+#: ../src/file.c:949
 #, c-format
 msgid "No information found for user '%s' in '%s'"
 msgstr "Aucune info pour l'utilisateur «%s» dans «%s»"
 
-#: src/file.c:939
+#: ../src/file.c:958
 #, 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:947
+#: ../src/file.c:966
 #, 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:1055
+#: ../src/file.c:1090
 #, 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"
+"Le morceau suivant ne peut pas être mis à jour (fichier inexistant) : «%s»\n"
 
-#: src/file.c:1118
+#: ../src/file.c:1169
 #, 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"
+"Le morceau suivant ne peut pas être mis à jour (type de fichier inconnu) : «%"
+"s»\n"
 
-#: src/file.c:1211
+#: ../src/file.c:1262
 #, c-format
 msgid ""
 "The following track could not be processed (filetype is known but analysis "
 "failed): '%s'\n"
 msgstr ""
 "Le morceau suivant ne peut pas être mis à jour (type de fichier connu mais "
-"échec de l'analyse) : '%s'\n"
+"échec de l'analyse) : «%s»\n"
 
-#: src/file.c:1241 src/file.c:1295
+#: ../src/file.c:1292 ../src/file.c:1346
 msgid "Nothing to update"
 msgstr "Rien à mettre à jour"
 
-#: src/file.c:1262
+#: ../src/file.c:1313
 #, c-format
 msgid "Updating %s"
 msgstr "%s en cours de mise à jour"
 
-#: src/file.c:1276
+#: ../src/file.c:1327
 msgid "Updated selected tracks with info from file."
 msgstr "Les morceaux sélectionnés ont été mis à jour à partir des fichiers."
 
-#: src/file.c:1310
+#: ../src/file.c:1361
 #, c-format
 msgid "Retrieving mserv data %s"
 msgstr "Récupération des données mserv %s"
 
-#: src/file.c:1315
+#: ../src/file.c:1366
 msgid "no filename available"
 msgstr "pas de nom de fichier disponible"
 
-#: src/file.c:1320
+#: ../src/file.c:1371
 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:1341
+#: ../src/file.c:1392
 #, c-format
 msgid "The following track could not be updated"
 msgid_plural "The following %d tracks could not be updated"
@@ -2802,11 +3034,11 @@
 
 #. gint id,
 #. gboolean modal,
-#: src/file.c:1347
+#: ../src/file.c:1398
 msgid "Failed Track Update"
 msgstr "Échec de la mise à jour du morceau"
 
-#: src/file.c:1405
+#: ../src/file.c:1456
 #, c-format
 msgid "The following track has been updated"
 msgid_plural "The following %d tracks have been updated"
@@ -2815,11 +3047,11 @@
 
 #. gint id,
 #. gboolean modal,
-#: src/file.c:1411
+#: ../src/file.c:1462
 msgid "Successful Track Update"
 msgstr "Morceau mis à jour"
 
-#: src/file.c:1470
+#: ../src/file.c:1521
 #, c-format
 msgid "No mserv information could be retrieved for the following track"
 msgid_plural ""
@@ -2830,198 +3062,316 @@
 
 #. gint id,
 #. gboolean modal,
-#: src/file.c:1476
+#: ../src/file.c:1527
 msgid "mserv data retrieval problem"
 msgstr "problème de récupération des données mserv"
 
-#: src/file.c:1565
+#: ../src/file.c:1616
 msgid "no local filename available, file on the iPod will be used instead"
 msgstr ""
+"pas de nom de fichier local disponible, les fichiers de l'iPod seront "
+"utilisés"
 
-#: src/file.c:1571
+#: ../src/file.c:1622
 msgid "no local filename available and copy on iPod cannot be found"
-msgstr ""
+msgstr "pas de nom de fichier local disponible ainsi que de copie sur le iPod"
 
-#: src/file.c:1575 src/file.c:1593
-#, fuzzy
+#: ../src/file.c:1626 ../src/file.c:1644
 msgid "no local filename available"
 msgstr "pas de nom de fichier disponible"
 
-#: src/file.c:1583
+#: ../src/file.c:1634
 msgid "local file could not be found, file on the iPod will be used instead"
-msgstr ""
+msgstr "fichier local introuvable, le fichier de l'iPod sera utilisé"
 
-#: src/file.c:1589
+#: ../src/file.c:1640
 msgid "local file as well as copy on the iPod cannot be found"
-msgstr ""
+msgstr "fichier local et copie sur le iPod introuvables"
 
 #. update not successful -- log this track for later display
-#: src/file.c:1651
-#, fuzzy
+#: ../src/file.c:1728
 msgid "update failed (format no supported?)"
-msgstr "format non supporté"
+msgstr "echec de la mise à jour (format non supporté ?)"
 
-#: src/file.c:1734
+#: ../src/file.c:1813
 #, c-format
 msgid "Processing '%s'..."
-msgstr "Traitement de «%s»..."
+msgstr "Traitement de «%s» ..."
 
-#: src/file.c:1740
+#: ../src/file.c:1819
 #, c-format
 msgid "File skipped. match exclude masks: '%s'\n"
-msgstr ""
+msgstr "Fichier sauté. Correspond au masque d'exclusion : «%s»\n"
 
-#: src/file.c:1852 src/misc_track.c:1299 src/misc_track.c:1355
+#: ../src/file.c:1939 ../src/misc_track.c:1694 ../src/misc_track.c:1799
 #, c-format
 msgid ""
 "Podcast already present: '%s'\n"
 "\n"
 msgstr ""
+"Podcast déjà présent : «%s»\n"
+"\n"
 
-#: src/file.c:1913
-#, fuzzy, c-format
+#: ../src/file.c:2004
+#, c-format
 msgid ""
 "Writing to video files not yet supported (%s).\n"
 "\n"
-msgstr "Échec de la normalisation : type de fichier non supporté.\n"
+msgstr ""
+"L'écriture de fichiers vidéo n'est pas encore supportée (%s).\n"
+"\n"
 
-#: src/file.c:1965 src/file.c:1979
+#: ../src/file.c:2056 ../src/file.c:2070
 #, c-format
 msgid "Couldn't change tags of file: %s\n"
-msgstr "Ne peut changer les attributs du fichier : %s\n"
+msgstr "Impossible de changer les attributs du fichier : %s\n"
 
-#: src/file.c:2076
+#: ../src/file.c:2172
 #, c-format
 msgid "Could not open '%s' for reading and writing.\n"
-msgstr "Ne peut ouvrir en lecture/écriture le fichier «%s».\n"
+msgstr "Impossible d'ouvrir en lecture/écriture le fichier «%s».\n"
 
-#: src/file.c:2083
+#: ../src/file.c:2179
 #, c-format
 msgid "Could not obtain lock on '%s'.\n"
-msgstr "Impossible de verrouiller «%s»\n"
+msgstr "Impossible de verrouiller «%s».\n"
 
 #. error!
-#: src/file.c:2100 src/file.c:2109 src/file.c:2120 src/file.c:2130
+#: ../src/file.c:2196 ../src/file.c:2205 ../src/file.c:2216 ../src/file.c:2226
 #, c-format
 msgid "Malformed line in '%s': %s\n"
 msgstr "Ligne incomplète dans «%s» : %s\n"
 
 #. gint id,
 #. gboolean modal,
-#: src/file.c:2159
+#: ../src/file.c:2255
 msgid "Remove offline playcounts?"
-msgstr "Supprimer les compteurs de lecture hors-ligne ?"
+msgstr "Supprimer les compteurs de lecture hors-ligne ?"
 
 #. title
-#: src/file.c:2160
+#: ../src/file.c:2256
 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 ""
 "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 ?"
+"OK pour les supprimer du fichier de compteur de lecture hors-ligne ?"
 
-#: src/file.c:2177
+#: ../src/file.c:2273
 #, c-format
 msgid "Error writing to '%s'.\n"
 msgstr "Erreur d'écriture du fichier «%s».\n"
 
-#: src/file.c:2232 src/tools.c:269
-#, fuzzy, c-format
+#: ../src/file.c:2330 ../src/tools.c:271
+#, c-format
 msgid ""
 "Normalization failed: file type not supported (%s).\n"
 "\n"
-msgstr "Échec de la normalisation : type de fichier non supporté.\n"
+msgstr "Échec de la normalisation : type de fichier non supporté (%s).\n"
 
-#: src/file.c:2248 src/tools.c:286
-#, fuzzy, c-format
+#: ../src/file.c:2346 ../src/tools.c:288
+#, c-format
 msgid ""
 "Normalization failed: file not available (%s).\n"
 "\n"
-msgstr "Échec de la normalisation : fichier non disponible.\n"
+msgstr "Échec de la normalisation : fichier non disponible (%s).\n"
 
-#: src/file_export.c:182
+#: ../src/file_convert.c:316
+msgid "Summary status of conversion processes"
+msgstr ""
+
+#: ../src/file_convert.c:564
+msgid "active"
+msgstr ""
+
+#: ../src/file_convert.c:569
+msgid "inactive"
+msgstr ""
+
+#: ../src/file_convert.c:580
 #, c-format
+msgid "Active threads: %d. Scheduled tracks: %d."
+msgstr ""
+
+#: ../src/file_convert.c:1061
+#, fuzzy, c-format
+msgid "Original filename not available for '%s.'\n"
+msgstr "Échec de la normalisation : fichier non disponible (%s).\n"
+
+#: ../src/file_convert.c:1076
+#, c-format
+msgid "Filename '%s' is no longer valid for '%s'.\n"
+msgstr ""
+
+#: ../src/file_convert.c:1127
+msgid "Ogg Vorbis"
+msgstr ""
+
+#: ../src/file_convert.c:1133
+msgid "FLAC"
+msgstr ""
+
+#: ../src/file_convert.c:1188
+#, c-format
+msgid ""
+"Files of type '%s' are not supported by the iPod. Please go to the "
+"Preferences to set up and turn on a suitable conversion script for '%s'.\n"
+"\n"
+msgstr ""
+
+#: ../src/file_convert.c:1274
+#, fuzzy
+msgid "No information available"
+msgstr "pas de nom de fichier disponible"
+
+#: ../src/file_convert.c:1313
+#, c-format
+msgid "Could not create '%s'. Filetype conversion will not work.\n"
+msgstr ""
+
+#: ../src/file_convert.c:1631 ../src/file_convert.c:3040
+#, fuzzy, c-format
+msgid ""
+"Transfer of '%s' failed. %s\n"
+"\n"
+msgstr ""
+"Échec de l'exécution de «%s».\n"
+"\n"
+
+#: ../src/file_convert.c:2035 ../src/file_convert.c:2313
+#, fuzzy, c-format
+msgid ""
+"Conversion of '%s' failed: '%s'.\n"
+"\n"
+msgstr ""
+"Échec de l'exécution de «%s».\n"
+"\n"
+
+#: ../src/file_convert.c:2050
+#, c-format
+msgid ""
+"Conversion of '%s' failed: '%s %s' returned exit status %d.\n"
+"\n"
+msgstr ""
+
+#: ../src/file_convert.c:2079
+#, c-format
+msgid ""
+"Conversion of '%s' failed: '%s %s' did not return filename extension as "
+"expected.\n"
+"\n"
+msgstr ""
+
+#: ../src/file_convert.c:2155
+#, c-format
+msgid ""
+"Covnersion of '%s' failed: Could not access original file '%s' (%s).\n"
+"\n"
+msgstr ""
+
+#: ../src/file_convert.c:2210
+#, c-format
+msgid ""
+"Conversion of '%s' failed: Could not create directory '%s'.\n"
+"\n"
+msgstr ""
+
+#: ../src/file_convert.c:2344
+#, c-format
+msgid ""
+"Conversion of '%s' failed: '%s' returned exit status %d.\n"
+"\n"
+msgstr ""
+
+#: ../src/file_convert.c:2383
+#, c-format
+msgid ""
+"Conversion of '%s' failed: could not stat the converted file '%s'.\n"
+"\n"
+msgstr ""
+
+#: ../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:190
+#: ../src/file_export.c:190
 #, c-format
 msgid "Overwriting existing file: '%s'\n"
 msgstr "Ecrasement du fichier existant : «%s»\n"
 
-#: src/file_export.c:207
+#: ../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:209
+#: ../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"
+msgstr "Impossible de copier «%s» vers «%s» (%s)\n"
 
-#: src/file_export.c:217
+#: ../src/file_export.c:217
 #, c-format
 msgid "Unable to open '%s' for reading\n"
-msgstr "Impossible d'ouvrir le fichier «%s»\n"
+msgstr "Impossible d'ouvrir le fichier «%s» en lecture\n"
 
-#: src/file_export.c:327
+#: ../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:395 src/file_itunesdb.c:1230 src/tools.c:359
+#: ../src/file_export.c:395 ../src/tools.c:361
 msgid "Information"
 msgstr "Information"
 
-#: src/file_export.c:406 src/tools.c:371
+#: ../src/file_export.c:406 ../src/tools.c:373
 msgid "Press button to abort."
 msgstr "Appuyer sur le bouton pour interrompre"
 
-#: src/file_export.c:419
+#: ../src/file_export.c:419
 msgid "copying..."
-msgstr "copie..."
+msgstr "copie ..."
 
-#: src/file_export.c:472
+#: ../src/file_export.c:476
 #, c-format
 msgid "Failed to write '%s-%s'\n"
 msgstr "Impossible d'écrire «%s-%s»\n"
 
-#: src/file_export.c:485
+#: ../src/file_export.c:489
 #, 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:501 src/file_itunesdb.c:1495 src/tools.c:517
+#: ../src/file_export.c:505 ../src/tools.c:519
 #, c-format
 msgid "%d%% (%d:%02d:%02d left)"
-msgstr "%d%% (%d:%02d :%02d restant)"
+msgstr "%d%% (%d:%02d:%02d restant)"
 
-#: src/file_export.c:510
+#: ../src/file_export.c:514
 msgid "Some tracks were not copied."
 msgstr "Certains morceaux n'ont pas été copiés."
 
-#: src/file_export.c:575
+#: ../src/file_export.c:579
 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:583
+#: ../src/file_export.c:587
 msgid "Select Export Destination Directory"
 msgstr "Sélectionner le répertoire de destination d'export"
 
-#: src/file_export.c:732
+#: ../src/file_export.c:736
 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:766
+#: ../src/file_export.c:770
 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:811
+#: ../src/file_export.c:815
 msgid ""
 "Some tracks were not copied to your harddisk. Only the copied tracks will be "
 "included in the current drag and drop operation.\n"
@@ -3031,7 +3381,7 @@
 "copiés seront inclus dans l'opération de glisser-déposer en cours.\n"
 "\n"
 
-#: src/file_export.c:1006
+#: ../src/file_export.c:1010
 #, c-format
 msgid ""
 "No valid filename for: %s\n"
@@ -3040,88 +3390,89 @@
 "Pas de nom de fichier valide pour : %s\n"
 "\n"
 
-#: src/file_export.c:1022
+#: ../src/file_export.c:1026
 #, 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:1027
+#: ../src/file_export.c:1031
 #, c-format
 msgid ""
 "Could not open '%s' for writing (%s).\n"
 "\n"
-msgstr "Ne peut ouvrir en lecture le fichier «%s» (%s).\n"
+msgstr "Ne peut ouvrir le fichier «%s» en lecture (%s).\n"
 
-#: src/file_itunesdb.c:115
-#, c-format
-msgid "Matching MD5 checksum for file %d/%d"
-msgstr ""
+#: ../src/file_itunesdb.c:127
+#, fuzzy, c-format
+msgid "Matching SHA1 checksum for file %d/%d"
+msgstr "Correspondance des sommes de contrôles MD5 pour le fichier %d/%d"
 
-#: src/file_itunesdb.c:223
+#: ../src/file_itunesdb.c:234
 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"
+"Ne peut ouvrir le fichier «iTunesDB.ext» pour lire les infos étendues.\n"
 
-#: src/file_itunesdb.c:230
+#: ../src/file_itunesdb.c:241
 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:244
+#: ../src/file_itunesdb.c:255
 #, 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:261
-#, c-format
+#: ../src/file_itunesdb.c:272
+#, fuzzy, 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 "
+"gtkpod will try to match the information using SHA1 checksums. This may take "
 "a long time.\n"
 "\n"
 msgstr ""
-"La base iTunesDB '%s' ne correspond pas au hachage MD5 des infos étendues du "
-"fichier '%s'\n"
+"La base iTunesDB «%s» ne correspond pas au hachage MD5 des infos étendues du "
+"fichier «%s».\n"
 "gtkpod essaiera de faire concorder l'information en utilisant les sommes de "
 "contrôle MD5. Cela peut prendre du temps.\n"
 "\n"
 
-#: src/file_itunesdb.c:273
+#: ../src/file_itunesdb.c:284
 #, c-format
 msgid ""
 "%s:\n"
 "Expected \"itunesdb_hash=\" but got:\"%s\"\n"
 msgstr ""
-"%s:\n"
-"\"itunesdb_hash=\" attendue mais reçue :\"%s\"\n"
+"%s :\n"
+"«itunesdb_hash=» attendue mais réception de : «%s»\n"
 
-#: src/file_itunesdb.c:333
+#: ../src/file_itunesdb.c:344
 #, c-format
 msgid ""
 "%s:\n"
 "Format error: %s\n"
 msgstr ""
-"%s:\n"
+"%s :\n"
 "Erreur de format : %s\n"
 
-#: src/file_itunesdb.c:377
+#: ../src/file_itunesdb.c:387
+#, fuzzy
 msgid ""
-"No MD5 checksums on individual tracks are available.\n"
+"No SHA1 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 "
+"(will provide SHA1 checksums) or avoid using the iPod with programs other "
 "than gtkpod.\n"
 "\n"
 msgstr ""
 "Pas de sommes de contrôle MD5 disponibles pour les morceaux.\n"
 "\n"
-"Pour éviter cette situation dans le futur, activer la détection des doublons "
+"Pour éviter cette situation dans le futur, activez la détection des doublons "
 "(afin de générer les sommes de contrôle MD5) ou bien éviter d'utiliser votre "
 "iPod avec d'autres programmes que gtkpod.\n"
 "\n"
 
-#: src/file_itunesdb.c:439
+#: ../src/file_itunesdb.c:451
 msgid ""
 "Extended info will not be used. If you have non-transferred tracks,\n"
 "these will be lost.\n"
@@ -3129,35 +3480,35 @@
 "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:447
+#: ../src/file_itunesdb.c:459
 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:450
+#: ../src/file_itunesdb.c:462
 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:458
+#: ../src/file_itunesdb.c:470
 #, c-format
 msgid ""
 "Offline iPod database import failed: '%s'\n"
 "\n"
 msgstr ""
-"Échec de l'import de la base de l'iPod en mode déconnecté : '%s'\n"
+"Échec de l'import de la base de l'iPod en mode déconnecté : «%s»\n"
 "\n"
 
-#: src/file_itunesdb.c:462
+#: ../src/file_itunesdb.c:474
 #, c-format
 msgid ""
 "Local database import failed: '%s'\n"
 "\n"
 msgstr ""
-"Échec de l'import de la base de données locale : '%s'\n"
+"Échec de l'import de la base de données locale : «%s»\n"
 "\n"
 
-#: src/file_itunesdb.c:469
+#: ../src/file_itunesdb.c:481
 msgid ""
 "Offline iPod database import failed: \n"
 "\n"
@@ -3165,7 +3516,7 @@
 "Échec de l'import de la base de données de l'iPod en mode déconnecté : \n"
 "\n"
 
-#: src/file_itunesdb.c:472
+#: ../src/file_itunesdb.c:484
 msgid ""
 "Local database import failed: \n"
 "\n"
@@ -3173,33 +3524,33 @@
 "Échec de l'import de la base données locale : \n"
 "\n"
 
-#: src/file_itunesdb.c:479
+#: ../src/file_itunesdb.c:491
 #, c-format
 msgid ""
 "'%s' does not exist. Import aborted.\n"
 "\n"
 msgstr ""
-"'%s' n'existe pas. Import annulé.\n"
+"«%s» n'existe pas. Import annulé.\n"
 "\n"
 
-#: src/file_itunesdb.c:502
+#: ../src/file_itunesdb.c:514
 msgid "Extended info will not be used.\n"
 msgstr "Les infos étendues ne seront pas utilisées.\n"
 
-#: src/file_itunesdb.c:509
+#: ../src/file_itunesdb.c:521
 msgid "iPod Database Successfully Imported"
 msgstr "La base de l'iPod a été importée avec succès"
 
-#: src/file_itunesdb.c:516
+#: ../src/file_itunesdb.c:528
 #, c-format
 msgid ""
 "iPod Database Import Failed: '%s'\n"
 "\n"
 msgstr ""
-"Échec de l'import de la base de l'iPod : '%s'\n"
+"Échec de l'import de la base de l'iPod : «%s»\n"
 "\n"
 
-#: src/file_itunesdb.c:522
+#: ../src/file_itunesdb.c:534
 msgid ""
 "iPod Database Import Failed.\n"
 "\n"
@@ -3207,16 +3558,16 @@
 "Échec de l'import de la base de l'iPod.\n"
 "\n"
 
-#: src/file_itunesdb.c:531
-#, fuzzy, c-format
+#: ../src/file_itunesdb.c:543
+#, c-format
 msgid ""
 "'%s' (or similar) does not exist. Import aborted.\n"
 "\n"
 msgstr ""
-"'%s' n'existe pas. Import annulé.\n"
+"«%s» (ou similaire) n'existe pas. Import annulé.\n"
 "\n"
 
-#: src/file_itunesdb.c:817
+#: ../src/file_itunesdb.c:859
 #, c-format
 msgid ""
 "Could not find iPod directory structure at '%s'.\n"
@@ -3225,44 +3576,104 @@
 "\n"
 "Do you want to create the directory structure now?\n"
 msgstr ""
+"Impossible de trouver les répertoires système de l'iPod dans «%s».\n"
+"Si vous êtes certain que le iPod est correctement monté en «%s», gtkpod peut "
+"créer ces répertoires pour vous.\n"
 
-#: src/file_itunesdb.c:1071
+#: ../src/file_itunesdb.c:1140
 #, 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:1086
+#: ../src/file_itunesdb.c:1155
 msgid "Aborted writing of extended info.\n"
 msgstr "Écriture des infos étendues interrompue.\n"
 
-#: src/file_itunesdb.c:1241
+#: ../src/file_itunesdb.c:1356
+#, c-format
+msgid "%d%%"
+msgstr ""
+
+#: ../src/file_itunesdb.c:1370
+#, fuzzy, c-format
+msgid "%d%% (%d/%d  %d:%02d:%02d left)"
+msgstr "%d%% (%d:%02d:%02d restant)"
+
+#: ../src/file_itunesdb.c:1412
+msgid "Status: Deleting File"
+msgstr ""
+
+#: ../src/file_itunesdb.c:1473
+#, fuzzy, c-format
 msgid ""
-"Press button to abort.\n"
-"Export can be continued at a later time."
+"Could not remove the following file: '%s'\n"
+"\n"
+msgstr "Ne peut ouvrir le fichier «%s» en lecture (%s).\n"
+
+#: ../src/file_itunesdb.c:1581
+#, fuzzy
+msgid ""
+"The following track could not be converted successfully:\n"
+"\n"
+msgid_plural ""
+"The following tracks could not be converted successfully:\n"
+"\n"
+msgstr[0] "Le morceau suivant ne peut pas être mis à jour."
+msgstr[1] "Les %d morceaux suivants ne peuvent pas être mis à jour."
+
+#: ../src/file_itunesdb.c:1591
+#, fuzzy
+msgid ""
+"The following track could not be transferred successfully:\n"
+"\n"
+msgid_plural ""
+"The following tracks could not be transferred successfully:\n"
+"\n"
+msgstr[0] "Le morceau suivant ne peut pas être mis à jour."
+msgstr[1] "Les %d morceaux suivants ne peuvent pas être mis à jour."
+
+#. ID
+#. modal,
+#. gint id,
+#. gboolean modal,
+#: ../src/file_itunesdb.c:1600 ../src/misc_confirm.c:70
+msgid "Warning"
+msgstr "Attention"
+
+#. title
+#: ../src/file_itunesdb.c:1601
+msgid ""
+"The iPod could not be ejected. Please fix the problems mentioned below and "
+"then eject the iPod again. Pressing 'OK' will re-schedule the failed tracks "
+"for conversion and transfer."
 msgstr ""
-"Appuyer sur le bouton pour Interrompre.\n"
-"L'export peut être repris plus tard."
 
-#: src/file_itunesdb.c:1310
-msgid "deleting..."
-msgstr "suppression..."
+#: ../src/file_itunesdb.c:1663
+msgid "Status: Copying track"
+msgstr ""
 
-#: src/file_itunesdb.c:1413
-msgid "preparing to copy..."
-msgstr "préparation de la copie..."
+#: ../src/file_itunesdb.c:1669
+msgid "Status: Waiting for conversion to complete"
+msgstr ""
 
-#: src/file_itunesdb.c:1480
+#: ../src/file_itunesdb.c:1673
+msgid "Status: Finished transfer"
+msgstr ""
+
+#: ../src/file_itunesdb.c:1714
 #, 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."
+msgid ""
+"One track could not be transferred because your iPod is full. Either delete "
+"some tracks or otherwise create space on the iPod before ejecting the iPod "
+"again."
+msgid_plural ""
+"%d tracks could not be transferred because your iPod is full. Either delete "
+"some tracks or otherwise create space on the iPod before ejecting the iPod "
+"again."
+msgstr[0] ""
+msgstr[1] ""
 
-#: 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:1557
+#: ../src/file_itunesdb.c:1792
 #, c-format
 msgid ""
 "You did not import the existing iTunesDB ('%s'). This is most likely "
@@ -3272,230 +3683,269 @@
 "cancel, you can import the existing database before calling this function "
 "again.\n"
 msgstr ""
-"Vous n'avez pas importé la base iTunesDB ('%s') existante. C'est souvent une "
+"Vous n'avez pas importé la base iTunesDB («%s») existante. C'est souvent une "
 "erreur et cela impliquera la perte de la base existante.\n"
 "\n"
-"Appuyer sur 'OK' pour continuer ou 'Annuler' pour interrompre. Si vous "
+"Appuyer sur «OK» pour continuer ou «Annuler» pour interrompre. Si vous "
 "annulez, vous pouvez importer la base existante avant d'appeler de nouveau "
 "cette fonction.\n"
 
-#: src/file_itunesdb.c:1588
+#: ../src/file_itunesdb.c:1827
 msgid ""
 "iPod directory structure must be present before synching to the iPod can be "
 "performed.\n"
 msgstr ""
 "Les répertoires systèmes de l'iPod doivent exister avant de pouvoir "
-"synchroniser l'ipod.\n"
+"synchroniser l'iPod.\n"
 
-#: src/file_itunesdb.c:1597
+#: ../src/file_itunesdb.c:1836
 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é!"
+msgstr "Des morceaux ne peuvent pas être supprimés de l'iPod. Export annulé !"
 
-#: src/file_itunesdb.c:1613
-#, fuzzy
+#: ../src/file_itunesdb.c:1854
 msgid "Now writing database. Please wait..."
-msgstr "Écriture de la base iTunesDB. Veuillez patienter..."
+msgstr "Écriture de la base iTunesDB. Veuillez patienter ..."
 
-#: src/file_itunesdb.c:1659
+#: ../src/file_itunesdb.c:1901
 #, c-format
 msgid "Extended information file not deleted: '%s'"
 msgstr "Fichier d'infos étendues non supprimé : «%s»"
 
-#: src/file_itunesdb.c:1745
-#, fuzzy, c-format
+#: ../src/file_itunesdb.c:1987
+#, c-format
 msgid "%s: Database saved"
-msgstr "Base de l'iPod sauvegardée"
+msgstr "%s : Base de l'iPod sauvegardée"
 
-#: src/file_itunesdb.c:1749
+#: ../src/file_itunesdb.c:1991
 #, c-format
 msgid "%s: Changes saved"
-msgstr ""
+msgstr "%s : Modifications sauvegardées"
 
-#: src/fileselection.c:127
+#: ../src/fileselection.c:128
 msgid "Successfully added files"
 msgstr "Les fichiers ont bien été ajoutés"
 
-#: src/fileselection.c:129
+#: ../src/fileselection.c:130
 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:157
+#: ../src/fileselection.c:160
 msgid "Add Files"
 msgstr "Ajouter des fichiers"
 
 #. Create the file chooser, and handle the response
-#: src/fileselection.c:250
+#: ../src/fileselection.c:253
 msgid "Add Playlists"
-msgstr "Ajouter une liste de lecture"
+msgstr "Ajouter des listes de lecture"
 
 #. Create the file chooser, and handle the response
-#: src/fileselection.c:297
+#: ../src/fileselection.c:300
 msgid "Set Cover"
-msgstr ""
+msgstr "Modifier la pochette"
 
-#: src/fileselection.c:718
+#: ../src/fileselection.c:721
 msgid "Select directory to add recursively"
 msgstr "Sélectionner un répertoire à ajouter récursivement"
 
-#: src/fileselection.c:989
+#: ../src/fileselection.c:992
 msgid "Ok"
 msgstr "Ok"
 
-#: src/fileselection.c:998
+#: ../src/fileselection.c:1001
 msgid "Cancel"
 msgstr "Annuler"
 
-#: src/getopt.c:681
+#: ../src/flacfile.c:33
+#, fuzzy, c-format
+msgid "'%s' does not appear to be an FLAC audio file.\n"
+msgstr "«%s» n'est pas un fichier audio mp4.\n"
+
+#: ../src/flacfile.c:52
+#, fuzzy, c-format
+msgid "Error retrieving tags for '%s'.\n"
+msgstr "Erreur d'écriture du fichier «%s».\n"
+
+#: ../src/flacfile.c:119
+#, fuzzy, c-format
+msgid ""
+"Import of '%s' failed: FLAC not supported without the FLAC library. You must "
+"compile the gtkpod source together with the FLAC library.\n"
+msgstr ""
+"Echec de l'import de «%s» : pas de support des formats m4a/m4p. Vous devez "
+"compiler gtkpod avec la bibliothèque mp4v2.\n"
+
+#: ../src/flacfile.c:125
+#, fuzzy, c-format
+msgid ""
+"FLAC metadata update for '%s' failed: FLAC not supported without the FLAC "
+"library. You must compile the gtkpod source together with the FLAC library.\n"
+msgstr ""
+"Echec de la mise à jour des données m4a/m4p pour «%s» : pas de support des "
+"formats m4a/m4p. Vous devez compiler gtkpod avec la bibliothèque mp4v2.\n"
+
+#: ../src/getopt.c:681
 #, c-format
 msgid "%s: option `%s' is ambiguous\n"
 msgstr "%s : option «%s» ambigüe\n"
 
-#: src/getopt.c:706
+#: ../src/getopt.c:706
 #, c-format
 msgid "%s: option `--%s' doesn't allow an argument\n"
 msgstr "%s : l'option «--%s» n'autorise pas d'argument\n"
 
-#: src/getopt.c:711
+#: ../src/getopt.c:711
 #, c-format
 msgid "%s: option `%c%s' doesn't allow an argument\n"
 msgstr "%s : l'option «%c%s» n'autorise pas d'argument\n"
 
-#: src/getopt.c:729 src/getopt.c:902
+#: ../src/getopt.c:729 ../src/getopt.c:902
 #, c-format
 msgid "%s: option `%s' requires an argument\n"
 msgstr "%s : l'option «%s» nécessite un argument\n"
 
 #. --option
-#: src/getopt.c:758
+#: ../src/getopt.c:758
 #, c-format
 msgid "%s: unrecognized option `--%s'\n"
 msgstr "%s : option «--%s» non reconnue\n"
 
 #. +option or -option
-#: src/getopt.c:762
+#: ../src/getopt.c:762
 #, c-format
 msgid "%s: unrecognized option `%c%s'\n"
 msgstr "%s : option «%c%s» non reconnue\n"
 
 #. 1003.2 specifies the format of this message.
-#: src/getopt.c:788
+#: ../src/getopt.c:788
 #, c-format
 msgid "%s: illegal option -- %c\n"
 msgstr "%s : option -- %c interdite\n"
 
-#: src/getopt.c:791
+#: ../src/getopt.c:791
 #, c-format
 msgid "%s: invalid option -- %c\n"
 msgstr "%s : option -- %c non valide\n"
 
 #. 1003.2 specifies the format of this message.
-#: src/getopt.c:821 src/getopt.c:951
+#: ../src/getopt.c:821 ../src/getopt.c:951
 #, c-format
 msgid "%s: option requires an argument -- %c\n"
 msgstr "%s : l'option -- %c nécessite un argument\n"
 
-#: src/getopt.c:868
+#: ../src/getopt.c:868
 #, c-format
 msgid "%s: option `-W %s' is ambiguous\n"
-msgstr "%s : l'option «-W %s» est ambigue\n"
+msgstr "%s : l'option «-W %s» est ambigüe\n"
 
-#: src/getopt.c:886
+#: ../src/getopt.c:886
 #, c-format
 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:383
+#: ../src/info.c:383
 msgid "n/c"
-msgstr "n/c"
+msgstr "n/d"
 
-#: src/info.c:388 src/info.c:835
+#: ../src/info.c:388 ../src/info.c:835
 msgid "offline"
 msgstr "déconnecté"
 
-#: src/info.c:483
+#: ../src/info.c:483
 #, c-format
 msgid " P:%d T:%d/%d"
-msgstr "L:%d M:%d/%d"
+msgstr "L :%d M :%d/%d"
 
-#: src/info.c:777
+#: ../src/info.c:777
 msgid "B"
 msgstr "o"
 
-#: src/info.c:777
+#: ../src/info.c:777
 msgid "kB"
 msgstr "ko"
 
-#: src/info.c:777
+#: ../src/info.c:777
 msgid "TB"
 msgstr "To"
 
-#: src/info.c:820
+#: ../src/info.c:820
 #, c-format
 msgid " %s Free"
 msgstr " %s de libre"
 
-#: src/info.c:825
+#: ../src/info.c:825
 #, c-format
 msgid " %s Pending"
 msgstr " %s en cours"
 
-#: src/info.c:830
+#: ../src/info.c:830
 msgid " disconnected"
 msgstr "déconnecté"
 
-#: src/info.c:881
-#, fuzzy
+#: ../src/info.c:881
 msgid "No database or playlist selected"
-msgstr "Aucune liste de lecture sélectionnée"
+msgstr "Aucune base de donnée ou liste de lecture sélectionnée"
 
-#: src/info.c:886
+#: ../src/info.c:886
 msgid "No tracks selected"
 msgstr "Aucun morceau sélectionné"
 
-#: src/info.c:891
+#: ../src/info.c:891
 msgid "No playlist selected"
 msgstr "Aucune liste de lecture sélectionnée"
 
-#: src/info.c:896
-#, fuzzy
+#: ../src/info.c:896
 msgid "No iPod or iPod playlist selected"
-msgstr "Aucune liste de lecture sélectionnée"
+msgstr "Aucun iPod ou liste de lecture sélectionné(e)"
 
-#: src/md5.c:187
-msgid "Hashed file is 0 bytes long\n"
-msgstr "Le fichier est vide\n"
+#. Strings used several times
+#: ../src/ipod_init.c:48
+msgid "Select or enter your model"
+msgstr ""
 
-#: 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/ipod_init.c:79 ../src/repository.c:546 ../src/repository.c:2369
+msgid "Select mountpoint"
+msgstr "Point de montage de l'iPod :"
 
-#: src/misc.c:79
+#: ../src/ipod_init.c:359
+#, fuzzy, c-format
+msgid "Error initialising iPod: %s\n"
+msgstr "Erreur d'écriture du fichier «%s».\n"
+
+#: ../src/ipod_init.c:366
+msgid "Error initialising iPod, unknown error\n"
+msgstr ""
+
+#: ../src/ipod_init.c:422
+#, fuzzy, c-format
+msgid "<b>Please select your iPod model at </b><i>%s</i>"
+msgstr "<b>Sélectionnez le point de montage et le modèle de votre iPod</b>"
+
+#: ../src/misc.c:86
 #, c-format
 msgid ""
 "gtkpod Version %s: Cross-Platform Multi-Lingual Interface to Apple's iPod"
 "(tm)."
 msgstr ""
-"gtkpod Version %s : Interface multilingue et multi-plateforme pour l'iPod"
-"(tm) d'Apple."
+"gtkpod Version %s : Interface multilingue et multi-plateforme pour l'iPod® "
+"d'Apple."
 
-#: src/misc.c:83
+#: ../src/misc.c:90
 #, fuzzy
 msgid ""
-"(C) 2002 - 2005\n"
+"(C) 2002 - 2007\n"
 "Jorg Schuler (jcsjcs at users dot sourceforge dot net)\n"
 "Corey Donohoe (atmos at atmos dot org)\n"
 "\n"
 "\n"
 msgstr ""
-"(C) 2002 - 2003\n"
+"© 2002 - 2005\n"
 "Jorg Schuler (jcsjcs at users dot sourceforge dot net)\n"
 "Corey Donohoe (atmos at atmos dot org)\n"
 "\n"
 "\n"
 
-#: src/misc.c:89
+#: ../src/misc.c:96
 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 "
@@ -3529,34 +3979,34 @@
 "\n"
 "\n"
 
-#: src/misc.c:97
+#: ../src/misc.c:104
 msgid ""
 "Patches were supplied by the following people (list may be incomplete -- "
 "please contact me)\n"
 "\n"
 msgstr ""
-"Les personnes suivantes ont fournies des corrections ou évolutions (liste "
+"Les personnes suivantes ont fournis des corrections ou évolutions (liste "
 "peut-être incomplète - veuillez me contacter)\n"
 "\n"
 
-#: src/misc.c:99
+#: ../src/misc.c:106
 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:101
+#: ../src/misc.c:108
 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:103
+#: ../src/misc.c:110
 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:105
+#: ../src/misc.c:112
 msgid ""
 "Walter Bell: correct handling of DND URIs with escaped characters and/or cr/"
 "newlines at the end\n"
@@ -3564,17 +4014,17 @@
 "Walter Bell : correction de la manipulation des URIs avec des caractères "
 "d'échappement\n"
 
-#: src/misc.c:107
+#: ../src/misc.c:114
 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:109
+#: ../src/misc.c:116
 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:111
+#: ../src/misc.c:118
 msgid ""
 "Graeme Wilford: reading and writing of the 'Composer' ID3 tags, progress "
 "dialogue during sync\n"
@@ -3582,7 +4032,7 @@
 "Graeme Wilford : lecture et écriture des tags 'Compositeur', barre de "
 "progression durant les synchro\n"
 
-#: src/misc.c:113
+#: ../src/misc.c:120
 msgid ""
 "Edward Matteucci: debugging, special playlist creation, most of the volume "
 "normalizing code\n"
@@ -3590,26 +4040,26 @@
 "Edward Matteucci : debogage, création de liste de lectures, majeure partie "
 "de la normalisation du volume\n"
 
-#: src/misc.c:115
+#: ../src/misc.c:122
 msgid "Jens Lautenbach: some optical improvements\n"
 msgstr "Jens Lautenbach : améliorations esthétiques de l'interface\n"
 
-#: src/misc.c:117
+#: ../src/misc.c:124
 msgid "Alex Tribble: iPod eject patch\n"
 msgstr "Alex Tribble : éjection de l'iPod\n"
 
-#: src/misc.c:119
+#: ../src/misc.c:126
 msgid "Yaroslav Halchenko: Orphaned and dangling tracks handling\n"
 msgstr ""
 "Yaroslav Halchenko : gestion des fichiers orphelins et morceaux fictifs\n"
 
-#: src/misc.c:121
+#: ../src/misc.c:128
 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:123
+#: ../src/misc.c:130
 msgid ""
 "Ero Carrera: Filename validation and quick sync when copying tracks from the "
 "iPod\n"
@@ -3617,25 +4067,25 @@
 "Ero Carrera : Validation du nom de fichier et synchro rapide lors de la "
 "copie de l'iPod\n"
 
-#: src/misc.c:125
+#: ../src/misc.c:132
 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:127
+#: ../src/misc.c:134
 msgid "Armando Atienza: Support with external playcounts\n"
 msgstr "Armando Atienza : Suppport pour les compteurs de lecture externes\n"
 
-#: src/misc.c:129
+#: ../src/misc.c:136
 msgid "D.L. Sharp: Support for m4b files (bookmarkable AAC files)\n"
 msgstr "D.L. Sharp : Support des fichiers m4b\n"
 
-#: src/misc.c:131
+#: ../src/misc.c:138
 msgid "Jim Hall: Decent INSTALL file\n"
 msgstr "Jim Hall : Fichier INSTALL décent\n"
 
-#: src/misc.c:133
+#: ../src/misc.c:140
 msgid ""
 "Juergen Helmers, Markus Gaugusch: Conversion scripts to sync calendar/"
 "contacts to the iPod\n"
@@ -3644,89 +4094,93 @@
 "contacts\n"
 
 #. J"urgen!
-#: src/misc.c:135
+#: ../src/misc.c:142
 msgid "Flavio Stanchina: bugfixes\n"
 msgstr "Flavio Stanchina : correction de bogues\n"
 
-#: src/misc.c:137
+#: ../src/misc.c:144
 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:139
+#: ../src/misc.c:146
 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:142
+#: ../src/misc.c:149
 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:145
-#, fuzzy
+#: ../src/misc.c:152
 msgid ""
 "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"
+"James Ligget :\n"
+"     remplacement de l'ancien dialogue GTK de sélection de fichiers par le "
+"nouveau\n"
+"     refonte de la gestion des préférences.\n"
 
-#: src/misc.c:150
+#: ../src/misc.c:157
 msgid "Daniel Kercher: sync scripts for abook and webcalendar\n"
 msgstr "Daniel Kercher : scripts de synchronisation abook et webcalendar\n"
 
-#: src/misc.c:153
+#: ../src/misc.c:160
 msgid "Clinton Gormley: sync scripts for thunderbird\n"
 msgstr "Clinton Gormley : scripts de synchronisation pour thunderbird\n"
 
-#: src/misc.c:156
-#, fuzzy
+#: ../src/misc.c:163
 msgid "Sebastien Beridot: sync script for ldif addressbook format\n"
-msgstr "Clinton Gormley : scripts de synchronisation pour thunderbird\n"
+msgstr "Sebastien Beridot : script de synchronisation pour le format ldif\n"
 
-#: src/misc.c:159
-#, fuzzy
+#: ../src/misc.c:166
 msgid "Sebastian Scherer: sync script for kNotes\n"
-msgstr "Clinton Gormley : scripts de synchronisation pour thunderbird\n"
+msgstr "Sebastian Scherer : script de synchronisation pour kNotes\n"
 
-#: src/misc.c:162
+#: ../src/misc.c:169
 msgid "Nick Piper: sync script for Palm, type-ahead search\n"
-msgstr ""
+msgstr "Nick Piper: script de synchronisation pour Palm\n"
 
-#: src/misc.c:165
+#: ../src/misc.c:172
 msgid "Uwe Hermann: help with support for iPod Video\n"
-msgstr ""
+msgstr "Uwe Hermann: aide pour le support de l'iPod Vidéo\n"
 
-#: src/misc.c:168
+#: ../src/misc.c:175
 msgid ""
 "Iain Benson: support for compilation tag in mp3 files and separate display "
 "of compilations in the sort tab.\n"
 msgstr ""
+"Iain Benson: support pour les attributs de compilation dans les fichiers MP3 "
+"et l'affichage séparé des compilations dans la zone de tri.\n"
 
-#: src/misc.c:170
+#: ../src/misc.c:177
 msgid ""
 "Nicolas Chariot: icons of buttons\n"
 "\n"
 "\n"
 msgstr ""
+"Nicolas Chariot: icônes des boutons\n"
+"\n"
+"\n"
 
-#: src/misc.c:174
+#: ../src/misc.c:181
 msgid "This program borrows code from the following projects:\n"
-msgstr "Ce programme emprunte du code des projets suivants :\n"
+msgstr "Ce programme emprunte du code aux projets suivants :\n"
 
-#: src/misc.c:176
+#: ../src/misc.c:183
 msgid ""
 "    gnutools: (mktunes.pl, ported to C) reading and writing of iTunesDB "
 "(http://www.gnu.org/software/gnupod/)\n"
 msgstr ""
-"    gnupod : (mktunes.pl porté en C) pour la lecture et écriture de iTunesDB "
-"(http://www.gnu.org/software/gnupod/)\n"
+"    gnutools : (mktunes.pl porté en C) pour la lecture et écriture de "
+"iTunesDB (http://www.gnu.org/software/gnupod/)\n"
 
-#: src/misc.c:178
+#: ../src/misc.c:185
 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"
@@ -3735,36 +4189,36 @@
 "certaines parties de code des listes intelligentes sont basées sur ses "
 "classes C++.\n"
 
-#: src/misc.c:180
+#: ../src/misc.c:187
 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:182
+#: ../src/misc.c:189
 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:185
+#: ../src/misc.c:192
 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"
+"L'interface utilisateur a été créée à l'aide de glade-2 (http://glade.gnome."
+"org).\n"
 
-#: src/misc.c:200
+#: ../src/misc.c:207
 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"
+msgstr "Français : Eric Lassauge (lassauge at users dot sourceforge dot net)\n"
 
-#: src/misc.c:202
+#: ../src/misc.c:209
 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:204
+#: ../src/misc.c:211
 msgid "Hebrew: Assaf Gillat (gillata at gmail dot com)\n"
 msgstr "Hébreu : Assaf Gillat (gillata at gmail dot com)\n"
 
-#: src/misc.c:206
+#: ../src/misc.c:213
 msgid ""
 "Italian:  Edward Matteucci (edward_matteucc at users dot sourceforge dot "
 "net)\n"
@@ -3772,51 +4226,67 @@
 "Italien : Edward Matteucci (edward_matteucc at users dot sourceforge dot "
 "net)\n"
 
-#: src/misc.c:208
+#: ../src/misc.c:215
 msgid "Japanese: Ayako Sano\n"
 msgstr "Japonais : Ayako Sano\n"
 
-#: src/misc.c:210
+#: ../src/misc.c:217
 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:212
+#: ../src/misc.c:219
 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:936
-#, fuzzy, c-format
+#: ../src/misc.c:975
+#, c-format
 msgid "Could not process '%s' (no filename available)"
-msgstr "pas de nom de fichier disponible"
+msgstr "Impossible de traiter «%s» (pas de nom de fichier disponible)"
 
-#: src/misc.c:1084
+#: ../src/misc.c:1129
 #, c-format
 msgid "Unknown token '%%%c' in template '%s'"
-msgstr "Le paramêtre «%%%c» dans le modèle «%s» n'existe pas"
+msgstr "Paramêtre «%%%c» inconnu dans le modèle «%s»"
 
-#: src/misc.c:1166
+#: ../src/misc.c:1212
 #, 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"
+msgstr "Le modèle («%s») ne correspond pas au type de fichier «%s»\n"
 
-#: src/misc.c:1247
+#: ../src/misc.c:1298
 #, c-format
 msgid "Error creating %s: %s\n"
-msgstr "Erreur à la création de \"%s\" (%s)\n"
+msgstr "Erreur à la création de «%s» : %s\n"
 
-#. gint id,
-#. gboolean modal,
-#: src/misc_confirm.c:71
-msgid "Warning"
-msgstr "Attention"
+#: ../src/misc.c:1777
+#, fuzzy, c-format
+msgid ""
+"Writing preferences file '%s' failed (%s).\n"
+"\n"
+msgstr ""
+"Échec de l'exécution de «%s».\n"
+"\n"
 
+#: ../src/misc.c:1779
+msgid "unspecified error"
+msgstr ""
+
+#: ../src/misc.c:1787
+#, c-format
+msgid ""
+"Writing preferences to the iPod (%s) failed: could not get path to Control "
+"Directory.\n"
+"\n"
+msgstr ""
+
 #. title
-#: src/misc_confirm.c:72
-msgid "The following has occured:"
+#: ../src/misc_confirm.c:71
+#, fuzzy
+msgid "The following has occurred:"
 msgstr "Le problème suivant est survenu :"
 
-#: src/misc_confirm.c:123
+#: ../src/misc_confirm.c:122
 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 "
@@ -3832,13 +4302,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:127
+#: ../src/misc_confirm.c:126
 msgid "Delete Track Completely from iPod?"
-msgid_plural "Delete Tracks Completey from iPod?"
+msgid_plural "Delete Tracks Completely 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:179
+#: ../src/misc_confirm.c:137 ../src/misc_confirm.c:178
 #, c-format
 msgid ""
 "Are you sure you want to remove the following track from the playlist \"%s\"?"
@@ -3850,13 +4320,13 @@
 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:183
+#: ../src/misc_confirm.c:141 ../src/misc_confirm.c:182
 msgid "Remove Track From Playlist?"
 msgid_plural "Remove Tracks From Playlist?"
 msgstr[0] "Supprimer le morceau de la liste de lecture ?"
 msgstr[1] "Supprimer les morceaux de la liste de lecture ?"
 
-#: src/misc_confirm.c:164
+#: ../src/misc_confirm.c:163
 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 "
@@ -3874,13 +4344,13 @@
 "durPod ? Le nombre de listes dont ces morceaux font partie est indiqué entre "
 "parenthèses."
 
-#: src/misc_confirm.c:168
+#: ../src/misc_confirm.c:167
 msgid "Delete Track from Harddisk?"
 msgid_plural "Delete Tracks from Harddisk?"
 msgstr[0] "Supprimer le morceau du disque dur ?"
 msgstr[1] "Supprimer les morceaux du disque dur ?"
 
-#: src/misc_confirm.c:193
+#: ../src/misc_confirm.c:192
 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 "
@@ -3898,55 +4368,54 @@
 "données locale ? Le nombre de listes dont ces morceaux font partie est "
 "indiqué entre parenthèses."
 
-#: src/misc_confirm.c:197
+#: ../src/misc_confirm.c:196
 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 ?"
 msgstr[1] "Supprimer des morceaux de la base de données locale ?"
 
-#: src/misc_confirm.c:259
+#: ../src/misc_confirm.c:261
 #, c-format
 msgid "Deleted one track completely from iPod"
 msgid_plural "Deleted %d tracks completely from iPod"
 msgstr[0] "Suppression d'un morceau de l'iPod"
 msgstr[1] "Suppression de %d morceaux de l'iPod"
 
-#: src/misc_confirm.c:265 src/misc_confirm.c:289
+#: ../src/misc_confirm.c:267 ../src/misc_confirm.c:291
 #, c-format
 msgid "Deleted %d track from playlist '%s'"
 msgid_plural "Deleted %d tracks from playlist '%s'"
 msgstr[0] "%d morceau supprimé de la liste de lecture «%s»"
 msgstr[1] "%d morceaux supprimés de la liste de lecture «%s»"
 
-#: src/misc_confirm.c:283
+#: ../src/misc_confirm.c:285
 #, c-format
 msgid "Deleted one track from harddisk"
 msgid_plural "Deleted %d tracks from harddisk"
 msgstr[0] "%d morceau supprimé du disque dur"
 msgstr[1] "%d morceaux supprimés du disque dur"
 
-#: src/misc_confirm.c:295
+#: ../src/misc_confirm.c:297
 #, c-format
 msgid "Deleted track from local database"
 msgid_plural "Deleted %d tracks from local database"
 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"
 
-#: src/misc_confirm.c:438
+#: ../src/misc_confirm.c:442
 msgid "Cannot remove entry 'All'"
-msgstr "Ne peut enlever l'entrée «Tous»"
+msgstr "Ne peut supprimer l'entrée «Tous»"
 
-#: src/misc_confirm.c:532
+#: ../src/misc_confirm.c:536
 #, c-format
 msgid "Removed all %d tracks from the iPod"
 msgstr "Suppression des %d morceaux de l'iPod"
 
-#: src/misc_confirm.c:537
-#, fuzzy
+#: ../src/misc_confirm.c:541
 msgid "Removed all podcasts from the iPod"
-msgstr "Suppression des %d morceaux de l'iPod"
+msgstr "Suppression de tous les podcasts de l'iPod"
 
-#: src/misc_confirm.c:546 src/misc_confirm.c:620
+#: ../src/misc_confirm.c:550 ../src/misc_confirm.c:624
 #, c-format
 msgid "Deleted playlist '%s' including %d member track"
 msgid_plural "Deleted playlist '%s' including %d member tracks"
@@ -3954,33 +4423,32 @@
 msgstr[1] "Liste de lecture «%s» supprimée avec %d morceaux"
 
 #. first use playlist name
-#: src/misc_confirm.c:562 src/misc_confirm.c:636
+#: ../src/misc_confirm.c:566 ../src/misc_confirm.c:640
 #, c-format
 msgid "Deleted playlist '%s'"
 msgstr "Liste de lecture effacée «%s»"
 
-#: src/misc_confirm.c:596
+#: ../src/misc_confirm.c:600
 #, 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:613
+#: ../src/misc_confirm.c:617
 #, 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:691
+#: ../src/misc_confirm.c:695
 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:696
-#, fuzzy
+#: ../src/misc_confirm.c:700
 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 ?"
+msgstr "Êtes-vous sûr de vouloir supprimer tous les podcasts de votre iPod ?"
 
-#: src/misc_confirm.c:704
+#: ../src/misc_confirm.c:708
 #, c-format
 msgid ""
 "Are you sure you want to delete playlist '%s' and the following track "
@@ -3991,20 +4459,20 @@
 "completely from your ipod? The number of playlists the tracks are member of "
 "is indicated in parentheses."
 msgstr[0] ""
-"Êtes-vous sûr de vouloir supprimer la liste '%s' et le morceau suivant de "
+"Êtes-vous sûr de vouloir supprimer la liste «%s» et le morceau suivant de "
 "votre iPod ? Le nombre de liste dont ce morceau fait partie est indiqué "
 "entre parenthèses."
 msgstr[1] ""
-"Êtes-vous sûr de vouloir supprimer la liste '%s' et les morceaux suivants de "
+"Êtes-vous sûr de vouloir supprimer la liste «%s» et les morceaux suivants de "
 "votre iPod ? Le nombre de liste dont ces morceaux font partie est indiqué "
 "entre parenthèses."
 
-#: src/misc_confirm.c:715 src/misc_confirm.c:770
+#: ../src/misc_confirm.c:719 ../src/misc_confirm.c:774
 #, 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:741
+#: ../src/misc_confirm.c:745
 #, c-format
 msgid ""
 "Are you sure you want to delete playlist '%s' and remove the following track "
@@ -4015,20 +4483,20 @@
 "tracks from your harddisk? The number of playlists the tracks are member of "
 "is indicated in parentheses."
 msgstr[0] ""
-"Êtes-vous sûr de vouloir supprimer la liste '%s' et le morceau suivant de "
+"Êtes-vous sûr de vouloir supprimer la liste «%s» et le morceau suivant de "
 "votre disque dur ? Le nombre de liste dont ce morceau fait partie est "
 "indiqué entre parenthèses."
 msgstr[1] ""
-"Êtes-vous sûr de vouloir supprimer la liste '%s' et les morceaux suivants de "
+"Êtes-vous sûr de vouloir supprimer la liste «%s» et les morceaux suivants de "
 "votre disque dur ? Le nombre de liste dont ces morceaux font partie est "
 "indiqué entre parenthèses."
 
-#: src/misc_confirm.c:749
+#: ../src/misc_confirm.c:753
 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:758
+#: ../src/misc_confirm.c:762
 #, c-format
 msgid ""
 "Are you sure you want to delete playlist '%s' and remove the following track "
@@ -4039,15 +4507,15 @@
 "tracks from the database? The number of playlists the tracks are member of "
 "is indicated in parentheses."
 msgstr[0] ""
-"Êtes-vous sûr de vouloir supprimer la liste '%s' et le morceau suivant de "
+"Êtes-vous sûr de vouloir supprimer la liste «%s» et le morceau suivant de "
 "votre base de données ? Le nombre de liste dont ce morceau fait partie est "
 "indiqué entre parenthèses."
 msgstr[1] ""
-"Êtes-vous sûr de vouloir supprimer la liste '%s' et les morceaux suivants de "
+"Êtes-vous sûr de vouloir supprimer la liste «%s» et les morceaux suivants de "
 "votre base de données ? Le nombre de liste dont ces morceaux font partie est "
 "indiqué entre parenthèses."
 
-#: src/misc_confirm.c:859
+#: ../src/misc_confirm.c:841
 msgid ""
 "Data has been changed and not been saved.\n"
 "OK to exit gtkpod?"
@@ -4055,131 +4523,147 @@
 "Des données modifiées n'ont pas été sauvées.\n"
 "Voulez-vous vraiment quitter gtkpod ?"
 
-#: src/misc_conversion.c:67
-#, fuzzy
+#: ../src/misc_conversion.c:66
 msgid "File type"
-msgstr "Taille du fichier"
+msgstr "Type de fichier"
 
-#: src/misc_conversion.c:68
+#: ../src/misc_conversion.c:67
 msgid "PC File"
 msgstr "Fichier PC"
 
-#: src/misc_conversion.c:69
+#: ../src/misc_conversion.c:68
 msgid "iPod File"
 msgstr "Fichier iPod"
 
-#: src/misc_conversion.c:70
+#: ../src/misc_conversion.c:69
 msgid "iPod ID"
 msgstr "Id iPod"
 
 #. 10
-#: src/misc_conversion.c:71
+#: ../src/misc_conversion.c:70
 msgid "Track Nr (#)"
-msgstr "N° de piste (#)"
+msgstr "N° de piste"
 
-#: src/misc_conversion.c:72
+#: ../src/misc_conversion.c:71
 msgid "Transferred"
 msgstr "Transféré"
 
-#: src/misc_conversion.c:73
+#: ../src/misc_conversion.c:72
 msgid "File Size"
 msgstr "Taille du fichier"
 
-#: src/misc_conversion.c:74
+#: ../src/misc_conversion.c:73
 msgid "Play Time"
-msgstr "Durée de lecture"
+msgstr "Durée"
 
 #. 20
-#: src/misc_conversion.c:81
+#: ../src/misc_conversion.c:80
 msgid "Date played"
 msgstr "Dernière fois joué"
 
-#: src/misc_conversion.c:83
+#: ../src/misc_conversion.c:82
 msgid "Volume"
 msgstr "Volume"
 
-#: src/misc_conversion.c:84
+#: ../src/misc_conversion.c:83
 msgid "Soundcheck"
 msgstr "Contrôle du son"
 
 #. 25
-#: src/misc_conversion.c:86
+#: ../src/misc_conversion.c:85
 msgid "CD Nr"
 msgstr "N° de CD"
 
-#: src/misc_conversion.c:89
-#, fuzzy
+#: ../src/misc_conversion.c:88
 msgid "Category"
-msgstr "Catégorie : "
+msgstr "Catégorie"
 
-#: src/misc_conversion.c:90
+#: ../src/misc_conversion.c:89
 msgid "Description"
-msgstr ""
+msgstr "Description"
 
 #. 30
-#: src/misc_conversion.c:91
+#: ../src/misc_conversion.c:90
 msgid "Podcast URL"
-msgstr ""
+msgstr "URL du podcast"
 
-#: src/misc_conversion.c:92
+#: ../src/misc_conversion.c:91
 msgid "Podcast RSS"
-msgstr ""
+msgstr "RSS du podcast"
 
-#: src/misc_conversion.c:93
-#, fuzzy
+#: ../src/misc_conversion.c:92
 msgid "Subtitle"
-msgstr "titre"
+msgstr "Sous-titre"
 
-#: src/misc_conversion.c:94
-#, fuzzy
+#: ../src/misc_conversion.c:93
 msgid "Date released"
-msgstr "Dernière fois joué"
+msgstr "Date de sortie"
 
-#: src/misc_conversion.c:95
+#: ../src/misc_conversion.c:94
 msgid "Checked"
-msgstr ""
+msgstr "Coché"
 
 #. 35
-#: src/misc_conversion.c:96
-#, fuzzy
+#: ../src/misc_conversion.c:95
 msgid "Start time"
-msgstr "Dernière fois"
+msgstr "Heure de début"
 
-#: src/misc_conversion.c:97
-#, fuzzy
+#: ../src/misc_conversion.c:96
 msgid "Stop time"
-msgstr "Interrompre"
+msgstr "Heure de fin"
 
-#: src/misc_conversion.c:98
+#: ../src/misc_conversion.c:97
 msgid "Remember Playback Position"
-msgstr ""
+msgstr "Se souvenir de la position de lecture"
 
-#: src/misc_conversion.c:99
+#: ../src/misc_conversion.c:98
 msgid "Skip when Shuffling"
-msgstr ""
+msgstr "Sauter en mode aléatoire"
 
-#: src/misc_conversion.c:100
+#: ../src/misc_conversion.c:99
 msgid "Artwork Path"
+msgstr "Chemin de la pochette"
+
+#. 40
+#: ../src/misc_conversion.c:100
+msgid "Media Type"
 msgstr ""
 
-#: src/misc_conversion.c:113
+#: ../src/misc_conversion.c:102
+msgid "TV Episode"
+msgstr ""
+
+#: ../src/misc_conversion.c:103
+msgid "TV Network"
+msgstr ""
+
+#: ../src/misc_conversion.c:104
+msgid "Season Nr"
+msgstr ""
+
+#. 45
+#: ../src/misc_conversion.c:105
+msgid "Episode Nr"
+msgstr ""
+
+#: ../src/misc_conversion.c:118
 msgid "Name of file on PC, if available"
 msgstr "Nom du fichier sur le PC, si disponible"
 
-#: src/misc_conversion.c:114
+#: ../src/misc_conversion.c:119
 msgid "Name of file on the iPod"
 msgstr "Nom du fichier sur l'iPod"
 
 #. 10
-#: src/misc_conversion.c:116
+#: ../src/misc_conversion.c:121
 msgid "Track Nr. and total number of tracks on CD"
-msgstr "N° de piste et nombre total de pistes du CD"
+msgstr "N° de morceau et nombre total de morceaux du CD"
 
-#: src/misc_conversion.c:117
+#: ../src/misc_conversion.c:122
 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:123
+#: ../src/misc_conversion.c:128
 msgid ""
 "Supposedly something that tells the iPod to increase or decrease the "
 "playback speed"
@@ -4187,116 +4671,118 @@
 "Un réglage qui est supposé indiquer à l'iPod d'augmenter ou diminuer la "
 "vitesse de lecture"
 
-#: src/misc_conversion.c:125
+#: ../src/misc_conversion.c:130
 msgid "Number of times the track has been played"
 msgstr "Nombre de fois où le fichier a été joué"
 
-#: src/misc_conversion.c:126
+#: ../src/misc_conversion.c:131
 msgid "Star rating from 0 to 5"
 msgstr "Notation en étoiles de 0 à 5"
 
-#: src/misc_conversion.c:127
+#: ../src/misc_conversion.c:132
 msgid "Date and time track has been added"
 msgstr "Date et heure de l'ajout du morceau"
 
 #. 20
-#: src/misc_conversion.c:128
+#: ../src/misc_conversion.c:133
 msgid "Date and time track has last been played"
 msgstr "La dernière fois que le fichier a été joué"
 
-#: src/misc_conversion.c:129
+#: ../src/misc_conversion.c:134
 msgid "Date and time track has last been modified"
 msgstr "La dernière fois que le fichier a été modifié"
 
-#: src/misc_conversion.c:130
+#: ../src/misc_conversion.c:135
 msgid "Manual volume adjust"
 msgstr "Ajustement manuel du volume"
 
-#: src/misc_conversion.c:131
+#: ../src/misc_conversion.c:136
 msgid ""
 "Volume adjust in dB (replay gain) -- you need to activate 'soundcheck' on "
 "the iPod"
 msgstr ""
-"Ajustement du volume en dB (replay gain) -- vous devez activer 'Contrôle du "
-"son' sur l'iPod"
+"Ajustement du volume en dB (replay gain) -- vous devez activer «Contrôle du "
+"son» sur l'iPod"
 
 #. 25
-#: src/misc_conversion.c:134
+#: ../src/misc_conversion.c:139
 msgid "CD Nr. and total number of CDS in set"
 msgstr "N° de CD et nombre total de CD"
 
-#: src/misc_conversion.c:137
+#: ../src/misc_conversion.c:142
 msgid ""
 "The category (e.g. 'Technology' or 'Music') where the podcast was located."
 msgstr ""
+"La catégorie (par ex. «Technologie» ou «Musique») où se situe le podcast."
 
-#: src/misc_conversion.c:138
+#: ../src/misc_conversion.c:143
 msgid "Accessible by selecting the center button on the iPod."
-msgstr ""
+msgstr "Accessible en choisissant le bouton central de l'iPod."
 
-#: src/misc_conversion.c:142
+#: ../src/misc_conversion.c:147
 msgid "Release date (for podcasts displayed next to the title on the iPod)"
-msgstr ""
+msgstr "Date de sortie (pour les podcasts affiché à côté du titre sur l'iPod)"
 
-#: src/misc_conversion.c:649
+#: ../src/misc_conversion.c:713
 #, 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"
+msgstr "L'URI «%s» n'est pas une URI absolue utilisant le schéma de fichier"
 
-#: src/misc_conversion.c:659
+#: ../src/misc_conversion.c:723
 #, c-format
 msgid "The local file URI '%s' may not include a '#'"
-msgstr "L'URI de fichier local «%s» peut ne pas inclure un '#'"
+msgstr "L'URI de fichier local «%s» ne peut pas inclure un '#'"
 
-#: src/misc_conversion.c:676
+#: ../src/misc_conversion.c:740
 #, c-format
 msgid "The URI '%s' is invalid"
 msgstr "L'URI «%s» est invalide"
 
-#: src/misc_conversion.c:688
+#: ../src/misc_conversion.c:752
 #, 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:704
+#: ../src/misc_conversion.c:768
 #, 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:430
+#: ../src/misc_playlist.c:67 ../src/misc_playlist.c:94
+#: ../src/misc_playlist.c:429
 msgid "Please enter a name for the new playlist"
 msgstr "Entrer le nom de la nouvelle liste de lecture"
 
-#: src/misc_playlist.c:155
+#: ../src/misc_playlist.c:154
 msgid "AR:"
 msgstr "AR :"
 
-#: src/misc_playlist.c:158
+#: ../src/misc_playlist.c:157
 msgid "AL:"
 msgstr "AL :"
 
-#: src/misc_playlist.c:161
+#: ../src/misc_playlist.c:160
 msgid "GE:"
 msgstr "GE :"
 
-#: src/misc_playlist.c:164
+#: ../src/misc_playlist.c:163
 msgid "CO:"
 msgstr "CO :"
 
-#: src/misc_playlist.c:167
+#: ../src/misc_playlist.c:166
 msgid "YE:"
 msgstr "AN :"
 
-#: src/misc_playlist.c:195
+#: ../src/misc_playlist.c:194
 msgid "Unknown"
 msgstr "Inconnu"
 
-#: src/misc_playlist.c:273
+#: ../src/misc_playlist.c:272
 #, c-format
 msgid "Random (%d)"
 msgstr "Aléatoirement (%d)"
 
-#: src/misc_playlist.c:298
+#: ../src/misc_playlist.c:297
 msgid ""
 "Auto Store of track view disabled.\n"
 "\n"
@@ -4304,11 +4790,11 @@
 "Mémorisation automatique de la vue désactivée.\n"
 "\n"
 
-#: src/misc_playlist.c:357
+#: ../src/misc_playlist.c:356
 msgid "Not Listed"
 msgstr "Jamais écoutés"
 
-#: src/misc_playlist.c:407
+#: ../src/misc_playlist.c:406
 #, c-format
 msgid "Created playlist '%s' with %d track."
 msgid_plural "Created playlist '%s' with %d tracks."
@@ -4316,75 +4802,75 @@
 msgstr[1] "Liste de lecture «%s» créée avec %d morceaux."
 
 #. n==0
-#: src/misc_playlist.c:418
+#: ../src/misc_playlist.c:417
 msgid "No tracks available, playlist not created"
 msgstr "Aucun morceau disponible, liste de lecture non créée"
 
-#: src/misc_playlist.c:544
+#: ../src/misc_playlist.c:543
 #, c-format
 msgid "Most Listened (%d)"
 msgstr "Les plus écoutés (%d)"
 
-#: src/misc_playlist.c:585
+#: ../src/misc_playlist.c:584
 msgid "Never Listened"
 msgstr "Jamais écoutés"
 
-#: src/misc_playlist.c:625
+#: ../src/misc_playlist.c:624
 #, c-format
 msgid "Best Rated (%d)"
 msgstr "Mieux notés (%d)"
 
-#: src/misc_playlist.c:667
+#: ../src/misc_playlist.c:666
 msgid "Unrated tracks"
 msgstr "Morceaux non notés"
 
-#: src/misc_playlist.c:672
+#: ../src/misc_playlist.c:671
 #, c-format
 msgid "Rated %d"
 msgstr "Notés %d"
 
-#: src/misc_playlist.c:715
+#: ../src/misc_playlist.c:714
 #, c-format
 msgid "Recent (%d)"
 msgstr "Récents (%d)"
 
-#: src/misc_playlist.c:754
+#: ../src/misc_playlist.c:753
 msgid "Last Time"
 msgstr "Dernière fois"
 
-#: src/misc_playlist.c:845
+#: ../src/misc_playlist.c:844
 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:855
+#: ../src/misc_playlist.c:854
 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:883
+#: ../src/misc_playlist.c:882
 msgid "Dangling tracks with no files on PC were removed."
 msgstr ""
 "Les morceaux fictifs sans fichier correspondant sur le PC ont été supprimés."
 
-#: src/misc_playlist.c:917
+#: ../src/misc_playlist.c:916
 #, c-format
 msgid "Processing '%s'"
 msgstr "Traitement de «%s»"
 
-#: src/misc_playlist.c:941
+#: ../src/misc_playlist.c:943
 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:974
+#: ../src/misc_playlist.c:976
 msgid "Track"
 msgstr "Morceau"
 
-#: src/misc_playlist.c:1017
+#: ../src/misc_playlist.c:1019
 msgid ""
 "You did not import the existing iTunesDB. This is most likely incorrect and "
 "will result in the loss of the existing database.\n"
@@ -4396,24 +4882,24 @@
 "Vous n'avez pas importé la base iTunesDB existante. C'est souvent une erreur "
 "et cela résultera à la perte de la base déjà existante.\n"
 "\n"
-"Appuyer sur 'OK' pour continuer ou 'Annuler' pour interrompre. Si vous "
+"Appuyer sur «OK» pour continuer ou «Annuler» pour interrompre. Si vous "
 "annulez, vous pouvez importer la base existante avant d'appeler de nouveau "
 "cette fonction.\n"
 
-#: src/misc_playlist.c:1031
+#: ../src/misc_playlist.c:1033
 msgid "Creating a tree of known files"
 msgstr "Création l'arborescence des fichiers reconnus"
 
-#: src/misc_playlist.c:1075
+#: ../src/misc_playlist.c:1077
 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"
+"Contrôle des fichiers sur l'iPod par rapport à ceux de la base iTunesDB"
 
-#: src/misc_playlist.c:1118
+#: ../src/misc_playlist.c:1120
 msgid "Orphaned"
 msgstr "Orphelin"
 
-#: src/misc_playlist.c:1145
+#: ../src/misc_playlist.c:1147
 #, c-format
 msgid ""
 "The following orphaned file had already been added to the iPod again. It "
@@ -4426,12 +4912,12 @@
 "%s\n"
 "\n"
 
-#: src/misc_playlist.c:1173
+#: ../src/misc_playlist.c:1175
 #, c-format
 msgid "Found %d orphaned and %d dangling files. Processing..."
-msgstr "%d orphelins et %d morceaux fictifs. Traitement en cours..."
+msgstr "%d orphelins et %d morceaux fictifs. Traitement en cours ..."
 
-#: src/misc_playlist.c:1197
+#: ../src/misc_playlist.c:1199
 #, c-format
 msgid ""
 "The following dangling track has a file on PC.\n"
@@ -4448,10 +4934,10 @@
 msgstr[1] ""
 "Les %d morceaux fictifs suivant ont leurs fichiers correspondants sur le "
 "PC.\n"
-"Choisissez OK pour le transférer à la prochaine synchro, Annuler pour "
+"Choisissez OK pour les transférer à la prochaine synchro, Annuler pour "
 "laisser tel quel."
 
-#: src/misc_playlist.c:1202
+#: ../src/misc_playlist.c:1204
 #, c-format
 msgid ""
 "The following dangling track doesn't have file on PC. \n"
@@ -4469,17 +4955,17 @@
 
 #. we want unique window for each
 #. gboolean modal,
-#: src/misc_playlist.c:1209
+#: ../src/misc_playlist.c:1211
 msgid "Dangling Tracks"
 msgstr "Morceaux fictifs"
 
-#: src/misc_playlist.c:1232
+#: ../src/misc_playlist.c:1234
 #, 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:90 src/misc_track.c:364
+#: ../src/misc_track.c:89
 #, c-format
 msgid "Hashed %d of %d track."
 msgid_plural "Hashed %d of %d tracks."
@@ -4487,14 +4973,14 @@
 msgstr[1] "%d morceaux traités sur %d."
 
 # y, c-format
-#: src/misc_track.c:199
+#: ../src/misc_track.c:198
 #, 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:206
+#: ../src/misc_track.c:205
 #, c-format
 msgid ""
 "The following duplicate track has not been added to the master play list."
@@ -4509,372 +4995,421 @@
 
 #. gint id,
 #. gboolean modal,
-#: src/misc_track.c:213
+#: ../src/misc_track.c:212
 msgid "Duplicate detection"
 msgstr "Détection de doublon"
 
-#: src/misc_track.c:904
+#: ../src/misc_track.c:1269
 msgid "Local Database"
 msgstr "Base de données locale"
 
 #. artwork is set
-#: src/misc_track.c:915
+#: ../src/misc_track.c:1280
 msgid "Embedded or filename was lost"
-msgstr ""
+msgstr "nom de fichier perdu"
 
-#: src/misc_track.c:919
-#, fuzzy
+#: ../src/misc_track.c:1284
 msgid "Artwork not set"
-msgstr "n'est pas rempli"
+msgstr "Pochette non renseigné"
 
-#: src/misc_track.c:1527
+#: ../src/misc_track.c:1737
+#, fuzzy, c-format
+msgid "Could not find source file for '%s'. Track not copied."
+msgstr "Impossible de trouver le fichier pour «%s» sur l'iPod\n"
+
+#: ../src/misc_track.c:1973
 #, c-format
 msgid "drag and drop: ignored '%s'\n"
 msgstr "Glisser/déposer : «%s» ignoré\n"
 
-#: src/mp3file.c:1276
+#: ../src/mp3file.c:1282
 #, c-format
 msgid "Error setting ID3 field: %s\n"
 msgstr "Erreur en remplissant le champ ID3 : %s\n"
 
-#: src/mp3file.c:1300 src/mp3file.c:1373 src/mp3file.c:1522 src/mp3file.c:2160
+#: ../src/mp3file.c:1306 ../src/mp3file.c:1399 ../src/mp3file.c:1548
+#: ../src/mp3file.c:2186
 #, c-format
 msgid "ERROR while opening file: '%s' (%s).\n"
 msgstr "Erreur à l'ouverture du fichier : «%s» (%s).\n"
 
-#: src/mp3file.c:1593
+#: ../src/mp3file.c:1619
 #, c-format
 msgid "ERROR while writing tag to file: '%s' (%s).\n"
-msgstr "ERREUR pour écrire l'attribut dans le fichier : «%s» (%s).\n"
+msgstr "ERREUR à l'écriture de l'attribut dans le fichier : «%s» (%s).\n"
 
 #. Tracks with zero play length are ignored by iPod...
-#: src/mp3file.c:2326
+#: ../src/mp3file.c:2352
 #, c-format
 msgid "File \"%s\" has zero play length. Ignoring.\n"
-msgstr "Fichier \"%s\" à une durée de zéro. Ignoré.\n"
+msgstr "Le fichier «%s» à une durée de zéro. Ignoré.\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» n»est pas un fichier audio mp4.\n"
+#: ../src/mp4file.c:227 ../src/mp4file.c:359
+#, fuzzy, c-format
+msgid "'%s' does not appear to be a mp4 audio or video file.\n"
+msgstr "«%s» n'est pas un fichier audio mp4.\n"
 
-#: src/mp4file.c:231 src/mp4file.c:352
+#: ../src/mp4file.c:237 ../src/mp4file.c:369
 #, 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:472
+#: ../src/mp4file.c:478
 #, 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:489
+#, 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"
+msgstr "Ne peut pas écrire le fichier «%s» ou n'est pas un fichier mp4.\n"
 
-#: src/mp4file.c:485
+#: ../src/mp4file.c:502
 #, 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 ""
-"Import de '%s' annulé : pas de support des formats m4a/m4p.Vous devez "
+"Echec de l'import de «%s» : pas de support des formats m4a/m4p. Vous devez "
 "compiler gtkpod avec la bibliothèque mp4v2.\n"
 
-#: src/mp4file.c:491
+#: ../src/mp4file.c:508
 #, 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 ""
-"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"
+"Echec de la mise à jour des données m4a/m4p pour «%s» : pas de support des "
+"formats m4a/m4p. Vous devez compiler gtkpod avec la bibliothèque mp4v2.\n"
 
-#: src/mp4file.c:497
-#, fuzzy, c-format
+#: ../src/mp4file.c:514
+#, 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"
+"Echec du contrôle du son m4a/m4p pour «%s» : pas de support des formats m4a/"
+"m4p. Vous devez compiler gtkpod avec la bibliothèque mp4v2.\n"
 
-#: src/prefs.c:307
+#: ../src/oggfile.c:62 ../src/wavfile.c:107
 #, c-format
+msgid "Could not open '%s' for reading.\n"
+msgstr "Ne peut ouvrir en lecture le fichier «%s».\n"
+
+#: ../src/oggfile.c:73
+#, fuzzy, c-format
+msgid "'%s' does not appear to be an ogg audio file.\n"
+msgstr "«%s» n'est pas un fichier audio mp4.\n"
+
+#: ../src/oggfile.c:150
+#, fuzzy, c-format
+msgid ""
+"Import of '%s' failed: ogg not supported without the ogg library. You must "
+"compile the gtkpod source together with the ogg library.\n"
+msgstr ""
+"Echec de l'import de «%s» : pas de support des formats m4a/m4p. Vous devez "
+"compiler gtkpod avec la bibliothèque mp4v2.\n"
+
+#: ../src/oggfile.c:156
+#, fuzzy, c-format
+msgid ""
+"ogg metadata update for '%s' failed: ogg not supported without the ogg "
+"library. You must compile the gtkpod source together with the ogg library.\n"
+msgstr ""
+"Echec de la mise à jour des données m4a/m4p pour «%s» : pas de support des "
+"formats m4a/m4p. Vous devez compiler gtkpod avec la bibliothèque mp4v2.\n"
+
+#: ../src/prefs.c:356
+#, c-format
 msgid "gtkpod version %s usage:\n"
-msgstr "gtkpod version %s usage :\n"
+msgstr "gtkpod version %s utilisation :\n"
 
-#: src/prefs.c:308
+#: ../src/prefs.c:357
 msgid "  -h, --help:   display this message\n"
 msgstr "  -h, --help :   affiche ce message\n"
 
-#: src/prefs.c:309
-msgid "  -p <filename>:increment playcount for file by one\n"
+#: ../src/prefs.c:358
+#, fuzzy
+msgid "  -p <file>:    increment playcount for file by one\n"
 msgstr "  -p <fichier> : incrémente le compteur de lecture du fichier\n"
 
-#: src/prefs.c:310
+#: ../src/prefs.c:359
+msgid "  --hash <file>:print gtkpod hash for file\n"
+msgstr ""
+
+#: ../src/prefs.c:360
 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:311
+#: ../src/prefs.c:361
 msgid "  --mountpoint: same as '-m'.\n"
 msgstr "  --mountpoint : identique à «-m».\n"
 
-#: src/prefs.c:312
+#: ../src/prefs.c:362
 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:313
+#: ../src/prefs.c:363
 msgid "  --auto:       same as '-a'.\n"
 msgstr "  --auto :       identique à «-a».\n"
 
-#: src/prefs_window.c:119
+#: ../src/prefs.c:560
+#, c-format
+msgid "Couldn't create ~/.gtkpod\n"
+msgstr ""
+
+#: ../src/prefs_window.c:134
 msgid "Please select command for 'Play Now'"
 msgstr "Ligne de commande pour «Jouer maintenant»"
 
-#: src/prefs_window.c:120
+#: ../src/prefs_window.c:135
 msgid "Please select command for 'Enqueue'"
 msgstr "Ligne de commande pour «Mettre dans la file d'attente»"
 
-#: src/prefs_window.c:121
+#: ../src/prefs_window.c:136
 msgid "Please select the mp3gain executable"
 msgstr "Chemin de l'exécutable «mp3gain»"
 
-#: src/prefs_window.c:124
+#: ../src/prefs_window.c:137
+msgid "Please select the aacgain executable"
+msgstr "Chemin de l'exécutable «aacgain»"
+
+#: ../src/prefs_window.c:138
 msgid "Select the mserv music root directory"
 msgstr "Sélectionner le répertoire racine de musique mserv"
 
-#: src/prefs_window.c:125
+#: ../src/prefs_window.c:139
 msgid "Select the mserv trackinfo root directory"
 msgstr "Sélectionner le répertoire racine d'infos mserv"
 
-#: src/prefs_window.c:127
-#, fuzzy
-msgid "Please select the aacgain executable"
-msgstr "Chemin de l'exécutable «mp3gain»"
+#: ../src/prefs_window.c:140
+msgid "Select the ogg/vorbis converter command"
+msgstr ""
 
-#: src/prefs_window.c:911 src/prefs_window.c:929
+#: ../src/prefs_window.c:141
+msgid "Select the flac converter command"
+msgstr ""
+
+#: ../src/prefs_window.c:142
+msgid "Select the m4a converter command."
+msgstr ""
+
+#: ../src/prefs_window.c:143
+msgid "Select the mp3 converter command."
+msgstr ""
+
+#: ../src/prefs_window.c:144
+msgid "Select the wav converter command."
+msgstr ""
+
+#: ../src/prefs_window.c:211 ../src/repository.c:662
+#, fuzzy, c-format
+msgid ""
+"<i>Have a look at the scripts provided in '%s'. If you write a new script or "
+"improve an existing one, please send it to jcsjcs at users.sourceforge.net "
+"for inclusion into the next release.</i>"
+msgstr ""
+"<i>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.</i>"
+
+#: ../src/prefs_window.c:986 ../src/prefs_window.c:1004
 msgid "Preferences not updated"
 msgstr "Préférences non mises à jour"
 
-#: src/prefs_window.c:938
+#: ../src/prefs_window.c:1013
 msgid "Preferences applied"
 msgstr "Préférences mises à jour"
 
-#: src/repository.c:549 src/repository.c:2372
-#, fuzzy
-msgid "Select mountpoint"
-msgstr "Point de montage de l'iPod :"
-
-#: src/repository.c:576 src/repository.c:2398
+#: ../src/repository.c:573 ../src/repository.c:2395
 msgid "Set backup file"
-msgstr ""
+msgstr "Fichier de sauvegarde"
 
-#: src/repository.c:615
-#, fuzzy
+#: ../src/repository.c:612
 msgid "Select directory for synchronization"
-msgstr "Sélectionner un répertoire à ajouter récursivement"
+msgstr "Sélectionner un répertoire pour la synchronisation"
 
-#: src/repository.c:641
+#: ../src/repository.c:638
 msgid "Please select command to sync contacts"
 msgstr "Ligne de commande pour synchroniser les contacts"
 
-#: src/repository.c:647
+#: ../src/repository.c:644
 msgid "Please select command to sync calendar"
 msgstr "Ligne de commande pour synchroniser le calendrier"
 
-#: src/repository.c:653
-#, fuzzy
+#: ../src/repository.c:650
 msgid "Please select command to sync notes"
-msgstr "Ligne de commande pour synchroniser les contacts"
+msgstr "Ligne de commande pour synchroniser les notes"
 
-#: src/repository.c:665
-#, 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>"
-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."
-
-#: src/repository.c:732
-#, fuzzy
+#: ../src/repository.c:729
 msgid "Smart playlist updated."
-msgstr "Intelligente"
+msgstr "Liste Intelligente mise à jour"
 
-#: src/repository.c:1193
-#, fuzzy
+#: ../src/repository.c:1190
 msgid "Podcasts Repository"
-msgstr "Supprimer de l'iPod"
+msgstr "Dépot podcasts"
 
-#: src/repository.c:1197
-#, fuzzy
+#: ../src/repository.c:1194
 msgid "Local Repository"
-msgstr "Supprimer de l'iPod"
+msgstr "Dépot local"
 
-#: src/repository.c:1351
-#, fuzzy
+#: ../src/repository.c:1348
 msgid "Master Playlist"
-msgstr "...liste de lecture principale"
+msgstr "Liste de lecture principale"
 
-#: src/repository.c:1355
-#, fuzzy
+#: ../src/repository.c:1352
 msgid "Podcasts Playlist"
-msgstr "Intelligente"
+msgstr "Liste de lecture Podcasts"
 
-#: src/repository.c:1363
-#, fuzzy
+#: ../src/repository.c:1360
 msgid "Regular Playlist"
-msgstr "Intelligente"
+msgstr "Liste de lecture standard"
 
-#: src/repository.c:2426
-#, fuzzy
+#: ../src/repository.c:2423
 msgid "Set local repository file"
-msgstr "Supprimer de l'iPod"
+msgstr "Fichier de dépot local"
 
-#: src/repository.c:2525
-#, fuzzy
+#: ../src/repository.c:2522
 msgid "New Repository"
-msgstr "Supprimer de l'iPod"
+msgstr "Nouveau dépot"
 
-#: src/support.c:90 src/support.c:114
+#: ../src/sha1.c:186
+msgid "Hashed file is 0 bytes long\n"
+msgstr "Le fichier est vide\n"
+
+#: ../src/sha1.c:239
 #, fuzzy, c-format
-msgid "Couldn't find pixmap file: %s"
-msgstr "Ne peut changer les attributs du fichier : %s\n"
+msgid "Could not open '%s' to calculate SHA1 checksum: %s\n"
+msgstr "Impossible d'ouvrir «%s» pour calculer la somme de contrôle MD5 : %s\n"
 
-#: src/syncdir.c:237
+#: ../src/syncdir.c:237
 #, c-format
 msgid "Sync summary for %s/%s\n"
-msgstr ""
+msgstr "Résumé de synchronisation pour %s/%s\n"
 
-#: src/syncdir.c:246
-#, fuzzy
+#: ../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] "Le morceau suivant a été mis à jour"
-msgstr[1] "Les %d morceaux suivants ont été mis à jour"
+msgstr[0] "Le morceau suivant a été mis à jour ou ajouté :\n"
+msgstr[1] "Les morceaux suivants ont été mis à jour ou ajoutés :\n"
 
-#: src/syncdir.c:255
-#, fuzzy
+#: ../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] "Avant de supprimer complètement les morceaux de l'iPod"
-msgstr[1] "Avant de supprimer complètement les morceaux de l'iPod"
+msgstr[0] "Le morceau suivant a été supprimé de l'iPod :\n"
+msgstr[1] "Les morceaux suivants ont été supprimés de l'iPod :\n"
 
 # y, c-format
-#: src/syncdir.c:264
-#, fuzzy
+#: ../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] "Le morceau suivant est en double et a été supprimé."
-msgstr[1] "Les %d morceaux suivants sont en double et ont été supprimés."
+msgstr[0] "Le morceau suivant a été supprimé du dépot :\n"
+msgstr[1] "Les morceaux suivants ont été supprimés du dépot :\n"
 
-#: src/syncdir.c:271
-#, fuzzy
+#: ../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] ""
-"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."
+msgstr[0] "Le morceau suivant a été supprimé de la liste :\n"
+msgstr[1] "Les morceaux suivants ont été supprimés de la liste :\n"
 
-#: src/syncdir.c:277
+#: ../src/syncdir.c:277
 msgid "Nothing was changed.\n"
-msgstr ""
+msgstr "Rien de changé.\n"
 
-#: src/syncdir.c:282
+#: ../src/syncdir.c:282
 msgid "Sync summary"
-msgstr ""
+msgstr "Résumé de synchronisation"
 
-#: src/tools.c:119
+#: ../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"
+"Could not find '%s'.\n"
+"Please specifiy the exact path in the Tools section of the preference dialog "
+"or install the program if it is not installed on your system.\n"
 "\n"
 msgstr ""
-"Impossible de trouver le fichier '%s'.\n"
+"Impossible de trouver le fichier «%s».\n"
+"Veuillez donnerréciser le chemin exact dans l'onglet «Outils» de la fenêtre "
+"des préférences ou installez le programme sur votre système si nécessaire.\n"
 "\n"
-"Veuillez contrôler la section 'Outils' dans les préférences.\n"
-"\n"
 
-#: src/tools.c:204
-#, fuzzy, c-format
+#: ../src/tools.c:204
+#, c-format
 msgid ""
 "Execution of '%s' failed.\n"
 "\n"
-msgstr "Échec de l'exécution de mp3gain («%s»)."
+msgstr ""
+"Échec de l'exécution de «%s».\n"
+"\n"
 
-#: src/tools.c:249
-#, fuzzy, c-format
+#: ../src/tools.c:249
+#, 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"
+"Impossible de normaliser le fichier «%s».\n"
+"Veuillez donner le chemin exact de mp3gain dans l'onglet «Outils» de la "
+"fenêtre des préférences.\n"
 
-#: src/tools.c:259
-#, fuzzy, c-format
+#: ../src/tools.c:259
+#, 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"
+"Impossible de normaliser le fichier «%s».\n"
+"Veuillez donner le chemin exact de aacgain dans l'onglet «Outils» de la "
+"fenêtre des préférences.\n"
 
-#: src/tools.c:384
+#: ../src/tools.c:386
 msgid "Normalizing..."
-msgstr "Normalisation..."
+msgstr "Normalisation ..."
 
-#: src/tools.c:434
+#: ../src/tools.c:436
 #, c-format
 msgid "%s - %s"
 msgstr "%s - %s"
 
-#: src/tools.c:460
+#: ../src/tools.c:462
 msgid "Aborting..."
-msgstr "Annulation..."
+msgstr "Annulation ..."
 
-#: src/tools.c:464
+#: ../src/tools.c:466
 msgid "Will abort after current mp3gain process ends."
-msgstr "S'interrompra après la fin du traitement courant de mp3gain."
+msgstr "S'arrêtera après la fin du traitement courant de mp3gain."
 
-#: src/tools.c:490
-#, fuzzy, c-format
+#: ../src/tools.c:492
+#, c-format
 msgid ""
 "'%s-%s' (%s) could not be normalized.\n"
 "\n"
 msgstr ""
-"'%s-%s» (%s) ne peut pas être normalisé.\n"
+"«%s-%s» (%s) ne peut pas être normalisé.\n"
 "\n"
 
-#: src/tools.c:529
+#: ../src/tools.c:531
 #, 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:632
+#: ../src/tools.c:634
 msgid ""
 "Please specify the command to be called on the 'Tools' section of the "
 "preferences dialog.\n"
 msgstr ""
-"Veuillez renseigner la commande à appeler dans la section 'Outils' de la "
-"fenêtre de préférences.\n"
+"Veuillez renseigner la commande à appeler dans l'onglet «Outils» de la "
+"fenêtre des préférences.\n"
 
-#: src/tools.c:644
+#: ../src/tools.c:646
 #, c-format
 msgid ""
 "Could not find the command '%s'.\n"
@@ -4882,747 +5417,104 @@
 "Please verify the setting in the 'Tools' section of the preferences dialog.\n"
 "\n"
 msgstr ""
-"Impossible de trouver le fichier '%s'.\n"
+"Impossible de trouver la commande «%s».\n"
 "\n"
-"Veuillez contrôler la section 'Outils' dans les préférences.\n"
+"Veuillez contrôler l'onglet «Outils» dans la fenêtre des préférences.\n"
 "\n"
 
-#: src/tools.c:685
+#: ../src/tools.c:687
 #, c-format
 msgid ""
 "'%s' returned the following output:\n"
 "%s\n"
 msgstr ""
-"'%s' a retourné le résultat suivant :\n"
+"«%s» a retourné le résultat suivant :\n"
 "%s\n"
 
-#: src/tools.c:752
+#: ../src/tools.c:754
 #, c-format
 msgid "No command set for '%s'"
 msgstr "Aucune commande renseignée pour «%s»"
 
-#: src/tools.c:772
+#: ../src/tools.c:774
 #, c-format
 msgid "Could not find command '%s' specified for '%s'"
 msgstr "Impossible d'exécuter la commande «%s» spécifiée pour «%s»"
 
-#: src/wavfile.c:107
+#: ../src/wavfile.c:181
 #, c-format
-msgid "Could not open '%s' for reading.\n"
-msgstr "Ne peut ouvrir en lecture le fichier «%s».\n"
-
-#: src/wavfile.c:181
-#, c-format
 msgid "%s does not appear to be a supported wav file.\n"
 msgstr "%s ne semble pas être un format wav supporté.\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 ""
-#~ "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."
+#, fuzzy
+#~ msgid "label21"
+#~ msgstr "label21"
 
-#~ msgid "Handle mounting/unmounting of iPod drive"
-#~ msgstr "Gérer automatiquement le montage/démontage de l'iPod"
+#~ msgid "window1"
+#~ msgstr "window1"
 
-#, fuzzy
-#~ msgid "<b>Artwork</b>"
+#~ msgid "<b>Import</b>"
 #~ msgstr "<b>Importer</b>"
 
-#~ msgid "_Offline"
-#~ msgstr "M_ode Déconnecté"
-
-#~ 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."
+#~ msgid "Automatically import iTunesDBs on startup"
 #~ 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."
+#~ "Importer automatiquement les données de l'iPod au démarrage de gtkpod"
 
-#, fuzzy
-#~ msgid "Edit Repository Properties"
-#~ msgstr "Options de tri"
+#~ msgid "Couldn't find pixmap file: %s"
+#~ msgstr "Fichier pixmap introuvable : %s"
 
-#~ msgid "Currently no iPod database selected"
-#~ msgstr "Pas de base de données iPod sélectionnée"
+#~ msgid "_Synchronize Playlist"
+#~ msgstr "_Synchroniser la liste de lecture"
 
-#~ msgid "No playlist selected."
-#~ msgstr "Pas de liste de lecture sélectionnée."
+#~ msgid "Stop Display Update"
+#~ msgstr "Annuler la mise à jour de l'affichage"
 
-#~ msgid "Could not delete backup file: \"%s\"\n"
-#~ msgstr "Ne peut effacer le fichier de sauvegarde : \"%s\"\n"
+#~ msgid "Stop"
+#~ msgstr "Interrompre"
 
-#~ msgid "No tracks selected."
-#~ msgstr "Aucun morceau sélectionné."
-
-#~ msgid "Problem creating iPod directory: '%s'."
-#~ msgstr "Problème à la création du répertoire de l'iPod : «%s»."
-
-#~ msgid "Successfully created iPod directories in '%s'."
-#~ msgstr "Création réussie des répertoires de l'iPod dans «%s»."
-
-#~ msgid "Create iPod directories"
-#~ msgstr "Créer les répertoires de l'iPod"
-
-#~ msgid "OK to create the following directories?"
-#~ msgstr "Créer les répertoires suivants ?"
-
 #~ 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."
+#~ "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 ""
-#~ "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."
+#~ "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."
 
 #~ 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"
+#~ "Temporarily disable sorting when changing playlist\n"
+#~ "or tab entry (faster!)"
 #~ 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"
+#~ "Bloquer le tri lors du changement de liste\n"
+#~ "ou d'onglet (plus rapide !)"
 
-#~ msgid "  --offline:    same as '-o'.\n"
-#~ msgstr "  --offline     identique à «-o».\n"
-
-#~ msgid "Error while reading prefs: %s\n"
-#~ msgstr "Erreur lors de la lecture des options : %s\n"
-
-#~ msgid "Unable to open config file '%s' for reading\n"
-#~ msgstr "Impossible d'ouvrir en lecture le fichier des options «%s»\n"
-
-#~ msgid "Unknown option: %s\n"
-#~ msgstr "Option inconnue : %s\n"
-
-#~ msgid "# delete confirmation\n"
-#~ msgstr "# confirmation de suppression\n"
-
-#~ msgid "# sort tab: select 'All', last selected page (=category)\n"
-#~ msgstr "# zones : choix «Tous», dernière page sélectionnée (=catégorie)\n"
-
-#~ msgid "# autoselect master playlist?\n"
-#~ msgstr "# sélection automatique de liste de lecture principale ?\n"
-
-#~ msgid "# title=0, artist, album, genre, composer\n"
-#~ msgstr "# titre=0, artiste, album, genre, compositeur\n"
-
-#~ msgid "# track_nr=5, ipod_id, pc_path, transferred\n"
-#~ msgstr "# no_piste=5, ipod_id, pc_path, transféré\n"
-
-#~ msgid "# autoset: set empty tag to filename?\n"
-#~ msgstr ""
-#~ "# Définition automatique : mettre à vide les attributs dans le fichier ?\n"
-
 #~ msgid ""
-#~ "# position of sliders (paned): playlists, above tracks,\n"
-#~ "# between sort tabs, and in statusbar.\n"
+#~ "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 ""
-#~ "# position des sliders (dans le panneau) : listes de lecture, parmi les "
-#~ "morceaux,\n"
-#~ "# entre les zones et dans la barre d'état.\n"
+#~ "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 désactivé temporairement "
+#~ "(voir ci-dessus)."
 
 #~ msgid ""
-#~ "# window sizes: main window, confirmation scrolled,\n"
-#~ "#               confirmation non-scrolled, dirbrowser, prefs\n"
+#~ "Block display when changing playlist or tab\n"
+#~ " entry (faster!)"
 #~ msgstr ""
-#~ "# tailles de fenêtres : fenêtre principale, confirmation avec "
-#~ "défilement,\n"
-#~ "#                       confirmation sans défilement, explorateur de "
-#~ "fichiers\n"
+#~ "Bloquer l'affichage lors du changement de liste de lecture ou d'entrée\n"
+#~ "(plus rapide !)"
 
-#~ msgid "Unable to open '%s' for writing\n"
-#~ msgstr "Impossible d'ouvrir en écriture «%s»\n"
+#~ msgid "deleting..."
+#~ msgstr "suppression ..."
 
-#~ 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"
+#~ msgid "preparing to copy..."
+#~ msgstr "préparation de la copie ..."
 
-#~ msgid "Unable to 'mkdir %s'\n"
-#~ msgstr "Impossible de lancer «mkdir %s»\n"
+#~ 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."
 
-#~ msgid "prefs_set_toolbar_style: illegal style '%d' ignored\n"
-#~ msgstr "prefs_set_toolbar_style : style «%d» non reconnu\n"
-
-#~ msgid "prefs_set_pm_sort: illegal type '%d' ignored\n"
-#~ msgstr "prefs_set_pm_sort : style «%d» non reconnu\n"
-
-#~ msgid "'%s': no arguments (%%...) allowed.\n"
-#~ msgstr "«%s» : aucun argument autorisé (%%s...).\n"
-
-#~ msgid "'%s': only '%%[%s]' allowed.\n"
-#~ msgstr "«%s» : seulement «%%s[%s]» autorisé.\n"
-
-#~ msgid "_Read iTunesDB"
-#~ msgstr "_Lire les infos de la base iTunesDB"
-
-#~ msgid "Synchronize _iTunesDB"
-#~ msgstr "Synchroniser la base _iTunesDB"
-
-#~ msgid "Edit"
-#~ msgstr "Édition"
-
-#~ msgid "Read Existing Database from Disk/iPod"
-#~ msgstr "Lire les données du disque/iPod"
-
-#~ msgid "Read"
-#~ msgstr "Lire"
-
-#~ msgid "Write Changes to Disk/iPod"
-#~ msgstr "Écrire les données sur le disque/iPod"
-
-#~ msgid "Sync"
-#~ msgstr "Synchroniser"
-
-#, fuzzy
-#~ msgid "Update Tracks"
-#~ msgstr "Morceaux non notés"
-
-#~ msgid "Normalize"
-#~ msgstr "Normaliser"
-
-#, fuzzy
-#~ msgid "Podcasts Preferences"
-#~ msgstr "_Préférences"
-
-#~ msgid "file not found"
-#~ msgstr "fichier introuvable"
-
-#~ msgid "Unmounting of '%s' (%s) unsuccessful."
-#~ msgstr "Echec du démontage de «%s» (%s)."
-
-#~ msgid "Unmounting of '%s' unsuccessful."
-#~ msgstr "Echec du démontage de «%s»."
-
-#~ msgid "Update"
-#~ msgstr "Mettre à jour"
-
-#~ msgid "Sync Dirs"
-#~ msgstr "Synchroniser les répertoires"
-
-#~ 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 ?"
-
-#~ msgid "Syncing directory '%s'"
-#~ msgstr "Synchronisation du répertoires «%s»"
-
-#~ msgid "Syncing completed. No files deleted."
-#~ msgstr "Synchronisation terminée. Aucun fichier effacé."
-
-#~ msgid "Never delete any files when syncing"
-#~ msgstr "Ne jamais effacer les fichiers lors des synchronisations"
-
-#~ msgid "Syncing completed."
-#~ msgstr "Synchronisation terminée."
-
-#~ msgid "Syncing aborted"
-#~ msgstr "Synchronisation annulée"
-
-#~ msgid "No tracks in selection"
-#~ msgstr "Aucun morceau sélectionné"
-
-#~ msgid "'%s' is not a directory. Ignored.\n"
-#~ msgstr "«%s» n'est pas un répertoire. Ignoré.\n"
-
-#~ 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"
-
-#~ msgid "No valid directories have been found. Sync aborted.\n"
-#~ msgstr "Aucun répertoire valide n'a été trouvé. Synchro annulée.\n"
-
-#~ 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"
-
-#~ msgid ""
-#~ "The following directories will be synchronized:\n"
-#~ "\n"
-#~ msgstr ""
-#~ "Les répertoires suivant seront synchronisés :\n"
-#~ "\n"
-
-#~ msgid "Synchronize directories"
-#~ msgstr "Synchroniser les répertoires"
-
-#~ msgid "Syncing contacts, calendar and notes..."
-#~ msgstr "Synchronisation du calendrier, contacts et notes..."
-
-#~ msgid "_Synchronize Directories"
-#~ msgstr "_Synchroniser les répertoires"
-
-#~ msgid ""
-#~ "Where you mounted your iPod's filesystem. Usually '/mnt/ipod/' or similar."
-#~ msgstr "Point de montage de l'iPod. Habituellement «/mnt/ipod»"
-
-#~ 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 "Delete tracks that have been removed"
-#~ msgstr "Supprimer les morceaux qui ont été enlevés"
-
-#~ msgid "Confirm before removing tracks"
-#~ msgstr "Confirmer avant la suppression des morceaux"
-
-#~ msgid ""
-#~ "Before removing tracks completely when\n"
-#~ "synchronizing directories"
-#~ msgstr ""
-#~ "Avant de supprimer complètement les morceaux lors\n"
-#~ "des synchronisations des répertoires"
-
-#, fuzzy
-#~ msgid "Add"
-#~ msgstr "Ajouté"
-
-#, fuzzy
-#~ msgid "Delete"
-#~ msgstr "Morceaux supprimés"
-
-#, fuzzy
-#~ msgid "Name: "
-#~ msgstr "Utilisateur :"
-
-#, fuzzy
-#~ msgid "<b>File options</b>"
-#~ msgstr "<b>Confirmation de suppression</b>"
-
-#, fuzzy
-#~ msgid " days old"
-#~ msgstr "jours"
-
-#, fuzzy
-#~ msgid "Delete once copied to iPod"
-#~ msgstr "Suppression d'un morceau de l'iPod"
-
-#, fuzzy
-#~ msgid "Create podcast logfile at:"
-#~ msgstr "Créer un fichier de liste"
-
-#, fuzzy
-#~ msgid "<b>iPod options</b>"
-#~ msgstr "<b>Infobulles</b>"
-
-#, fuzzy
-#~ msgid "Automatically sync to iPod"
-#~ msgstr "Sélection automatique..."
-
-#, fuzzy
-#~ msgid "Delete from iPod when "
-#~ msgstr "Supprimer de l'iPod"
-
-#, fuzzy
-#~ msgid "Delete from iPod if podcast has been played"
-#~ msgstr "La dernière fois que le fichier a été joué"
-
-#, fuzzy
-#~ msgid "Abort selected"
-#~ msgstr "Aucun morceau sélectionné"
-
-#~ msgid "Export Tracks"
-#~ msgstr "Exporter les morceaux"
-
-#~ msgid ""
-#~ "Icons of buttons were made by Nicolas Chariot.\n"
-#~ "\n"
-#~ "\n"
-#~ msgstr ""
-#~ "Les icônes des boutons ont été réalisées par Nicolas Chariot.\n"
-#~ "\n"
-#~ "\n"
-
-#~ msgid "Settings are not saved.\n"
-#~ msgstr "Réglages non sauvés.\n"
-
-#~ msgid "_Delete But Keep Tracks"
-#~ msgstr "S_upprimer mais garder les morceaux"
-
-#~ msgid "_Delete Completely From iPod"
-#~ msgstr "S_upprimer ainsi que les morceaux"
-
-#~ msgid " iPod Mount _Point:"
-#~ msgstr "_Point de montage de l'iPod :"
-
-#~ msgid "Import"
-#~ msgstr "Import"
-
-#~ msgid " _Charset (ID3, files): "
-#~ msgstr "Jeu de _caractères (ID3, fichiers) :"
-
-#~ msgid ""
-#~ "Use selected charset also when updating\n"
-#~ " or syncing tracks"
-#~ msgstr ""
-#~ "Le jeu de caractères sélectionné sera utilisé pour la mise à jour ou la \n"
-#~ "synchronisation des morceaux"
-
-#~ 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 les informations "
-#~ "des\n"
-#~ " morceaux existants avec les doublons"
-
-#~ msgid "Confirm list of directories"
-#~ msgstr "Confirmer la liste des répertoires"
-
-#~ msgid "Adding/Updating/Syncing"
-#~ msgstr "Ajout/Mise à jour/Synchronisation"
-
-#~ 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"
-
-#~ msgid "Overwrite tags that are already set."
-#~ msgstr "Écraser les attributs déjà présents."
-
-#~ msgid ""
-#~ "As a last resort set the following tags to the filename if they are "
-#~ "(still) empty:"
-#~ msgstr ""
-#~ "Mettre un attribut par défaut au cas où les attributs restent vides après "
-#~ "l'extraction à partir du nom de fichier :"
-
-#~ msgid "Tag Reading"
-#~ msgstr "Lecture des tags"
-
-#~ msgid "Use mserv database to fill in additional information"
-#~ msgstr "Utiliser la base mserv pour remplir les autres informations"
-
-#~ msgid "Music Root: "
-#~ msgstr "Rép. de musique :"
-
-#~ msgid "..."
-#~ msgstr "..."
-
-#~ msgid "mserv Root: "
-#~ msgstr "Racine mserv :"
-
-#~ msgid "mserv"
-#~ msgstr "mserv"
-
-#~ msgid "Sync (Writing of iTunesDB)"
-#~ msgstr "Synchronisation (Écriture de iTunesDB)"
-
-#~ msgid "_Input/Output"
-#~ msgstr "Entrée/_Sortie"
-
-#~ msgid "Relative volume adjustment between -100 and +100"
-#~ msgstr "Ajustement relatif du volume entre -100 et +100"
-
-#~ msgid "Displayed Track Attributes "
-#~ msgstr "Attributs des morceaux affichés"
-
-#~ msgid " _Number of sort tabs: "
-#~ msgstr "_Nombre de zones de tri :"
-
-#~ msgid "Sort Tabs"
-#~ msgstr "Zones de tri"
-
-#~ msgid "Toolbar"
-#~ msgstr "Barre d'outils"
-
-#~ msgid "Tooltips"
-#~ msgstr "Infobulles"
-
-#~ msgid "Sorting"
-#~ msgstr "Tri"
-
-#~ msgid "Misc"
-#~ msgstr "Divers"
-
-#~ msgid ""
-#~ "Use selected charset (on the 'Import' page)\n"
-#~ " when writing tags"
-#~ msgstr ""
-#~ "Utiliser le jeu de caractère sélectionné (sur l'onglet 'Import') pour "
-#~ "l'écriture des tags"
-
-#~ msgid "Use 'Multi-Edit' for track selections"
-#~ msgstr "Utiliser «Édition multiple» pour les morceaux sélectionnés"
-
-#~ msgid "Track Editing"
-#~ msgstr "Édition de morceau"
-
-#~ msgid " Number of tracks in generated playlists: "
-#~ msgstr " Nombre de morceaux dans les listes de lecture générées : "
-
-#~ msgid "Auto-Generated Playlists"
-#~ msgstr "Listes de lecture générées automatiquement"
-
-#~ 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 ""
-#~ "Cette option n'a de sens que si vous avez activé l'option 'Effacer les "
-#~ "morceaux qui ont été enlevés' dans la section 'Ajout/Mise à jour/"
-#~ "Synchronisation' de l'onglet 'Entrée/Sortie'."
-
-#~ msgid ""
-#~ "Before removing tracks completely when\n"
-#~ " synchronizing directories"
-#~ msgstr ""
-#~ "Avant de supprimer complètement les morceaux lors des synchronisations "
-#~ "des\n"
-#~ "répertoires"
-
-#~ msgid "Delete Confirmation "
-#~ msgstr "Confirmation de suppression"
-
-#~ msgid "Command Line for 'Play Now':"
-#~ msgstr "Ligne de commande pour «Jouer maintenant» :"
-
-#~ msgid "Command Line for 'Enqueue':"
-#~ msgstr "Ligne de commande pour «Mettre dans la file d'attente» :"
-
-#~ msgid "Track Playing"
-#~ msgstr "Lecture des morceaux"
-
-#~ msgid "Exact path for the 'mp3gain' executable:"
-#~ msgstr "Chemin de l'exécutable «mp3gain» :"
-
-#~ msgid "Volume Normalization"
-#~ msgstr "Normalisation du volume"
-
-#~ msgid "Command to synchronize contacts:"
-#~ msgstr "Ligne de commande pour synchroniser les contacts :"
-
-#~ msgid "Command to be called to synchronize calendar:"
-#~ msgstr "Ligne de commande pour synchroniser le calendrier :"
-
-#~ msgid "Command to be called to synchronize notes:"
-#~ msgstr "Ligne de commande pour synchroniser les notes :"
-
-#~ msgid "Contacts / Calendar / Notes"
-#~ msgstr "Contacts / Calendrier / Notes"
-
-#~ 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 ""
-#~ "Note : l'ordre des morceaux est toujours enregistré sur l'iPod lors du "
-#~ "glisser/déposer utiliser pour les réarranger.\n"
-#~ "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."
-
-#~ msgid "Reading"
-#~ msgstr "Lecture"
-
-#~ msgid "Display"
-#~ msgstr "_Affichage"
-
-#~ msgid "Illegal seek to offset %ld (length %ld) in file '%s'."
-#~ msgstr "Erreur de flux à l'offset %ld (longueur %ld) dans le fichier «%s»."
-
-#~ msgid "Not a Play Counts file: '%s' (missing mhdp header)."
-#~ msgstr "«%s» n»est pas un fichier de compteurs (entête mhdp manquant)"
-
-#~ msgid ""
-#~ "Play Counts file ('%s'): header length smaller than expected (%d<96)."
-#~ msgstr ""
-#~ "Fichier de compteurs ('%s') : longueur de l'entête plus petite que prévue "
-#~ "(%d<96)."
-
-#~ msgid "Play Counts file ('%s'): entry length smaller than expected (%d<12)."
-#~ msgstr ""
-#~ "Fichier de compteur ('%s') : longueur des données plus petite que prévue "
-#~ "(%d<12)."
-
-#~ msgid "iTunesDB corrupt: no MHOD at offset %ld in file '%s'."
-#~ msgstr "Corruption d'iTunesDB : pas de MHOD à l'offset %ld du fichier «%s»."
-
-#~ msgid ""
-#~ "Length of smart playlist rule field (%d) not as expected. Trying to "
-#~ "continue anyhow.\n"
-#~ msgstr ""
-#~ "Longueur du champ de la règle (%d) de la liste intelligente inattendue. "
-#~ "Tentative pour continuer quand même.\n"
-
-#~ msgid "Did not find SLst hunk as expected. Trying to continue.\n"
-#~ msgstr ""
-#~ "Ne peut trouver le SLst attendu. Tentative pour continuer quand même.\n"
-
-#~ msgid ""
-#~ "Encountered unknown MHOD type (%d) while parsing the iTunesDB. Ignoring.\n"
-#~ "\n"
-#~ msgstr ""
-#~ "Type MHOD inconnu (%d) lors du parcours de iTunesDB. Ignorance de "
-#~ "l'erreur.\n"
-
-#~ msgid "iTunesDB corrupt: hunk length 0 for hunk at %ld in file '%s'."
-#~ msgstr "Corruption d'iTunesDB : longueur 0 à %ld du fichier «%s»."
-
-#~ msgid "Master-PL"
-#~ msgstr "Liste principale"
-
-#~ msgid "iTunesDB corrupt: found mhyp at %ld in file '%s'."
-#~ msgstr "Corruption d'iTunesDB : trouvé mhyp à %ld du fichier «%s»."
-
-#~ msgid "Itdb_Track ID '%d' not found.\n"
-#~ msgstr "Itdb_Track ID «%d» non trouvé.\n"
-
-#~ msgid "OTG Playlist"
-#~ msgstr "Liste de lecture OTG"
-
-#~ msgid "Not a OTG playlist file: '%s' (missing mhpo header)."
-#~ msgstr ""
-#~ "Le fichier '%s' n'est pas un fichier de liste OTG (entête mhpo manquant)."
-
-#~ msgid ""
-#~ "OTG playlist file ('%s'): header length smaller than expected (%d<20)."
-#~ msgstr "Fichier de liste OTG («%s») : entête plus petit que prévu (%d<20)."
-
-#~ msgid ""
-#~ "OTG playlist file file ('%s'): entry length smaller than expected (%d<4)."
-#~ msgstr ""
-#~ "Fichier de liste OTG ('%s') : longueur de données plus petite que prévue "
-#~ "(%d<4)."
-
-#~ msgid "OTG playlist file '%s': reference to non-existent track (%d)."
-#~ msgstr "Fichier de liste OTG «%s» : référence à un morceau inexistant (%d)."
-
-#~ msgid "OTG Playlist %d"
-#~ msgstr "Liste de lecture OTG %d"
-
-#~ msgid "Not a iTunesDB: '%s' (missing mhdb header)."
-#~ msgstr "«%s» n»est pas un fichier iTunesDB (entête mhdb manquante)"
-
-#~ msgid ""
-#~ "iTunesDB ('%s'): header length of mhsd hunk smaller than expected (%"
-#~ "ld<32). Aborting."
-#~ msgstr ""
-#~ "iTunesDB ('%s') : longueur de l'entête mhsd plus petite que prévue (%"
-#~ "ld<32). Interruption."
-
-#~ msgid ""
-#~ "iTunesDB '%s' corrupt: already found two playlist mhsds -- giving up."
-#~ msgstr ""
-#~ "Corruption de iTunesDB ('%s') : déjà trouvés deux listes mhsds -- abandon."
-
-#~ msgid ""
-#~ "iTunesDB possibly corrupt: number of tracks (mhit hunks) inconsistent. "
-#~ "Trying to continue.\n"
-#~ msgstr ""
-#~ "Corruption possible de iTunesDB : nombre de fichiers (mhit) incohérent. "
-#~ "Tentative pour continuer quand même.\n"
-
-#~ msgid ""
-#~ "iTunesDB possibly corrupt: number of playlists (mhyp hunks) inconsistent. "
-#~ "Trying to continue.\n"
-#~ msgstr ""
-#~ "Corruption possible d'iTunesDB : nombre de listes (mhyp) incohérent. "
-#~ "Tentative pour continuer quand même.\n"
-
-#~ msgid "File not found: '%s'."
-#~ msgstr "Fichier introuvable : «%s»."
-
-#~ msgid "Cannot write mhod of type %d\n"
-#~ msgstr "Impossible d'écrire mhod du type %d\n"
-
-#~ msgid "Database in memory corrupt (track pointer == NULL). Aborting export."
-#~ msgstr ""
-#~ "Base de données en mémoire corrompue (track pointer == NULL). Abandon de "
-#~ "l'export."
-
-#~ msgid ""
-#~ "Database in memory corrupt (playlist pointer == NULL). Aborting export."
-#~ msgstr ""
-#~ "Base de données en mémoire corrompue (playlist pointer == NULL). Abandon "
-#~ "de l'export."
-
-#~ msgid "Opening of '%s' for writing failed."
-#~ msgstr "Échec de l'ouverture en écriture de «%s»."
-
-#~ msgid "Writing to '%s' failed."
-#~ msgstr "Erreur d'écriture du fichier «%s»."
-
-#~ msgid "Writing to '%s' failed (%s)."
-#~ msgstr "Échec de l'écriture dans «%s» (%s)."
-
-#~ msgid "Path not found: '%s'."
-#~ msgstr "Chemin non trouvé : «%s»."
-
-#~ msgid "Error renaming '%s' to '%s' (%s)."
-#~ msgstr "Impossible de renommer «%s» en «%s» (%s)."
-
-#~ msgid "Error removing '%s' (%s)."
-#~ msgstr "Erreur de suppression du fichier «%s» (%s)."
-
-#~ msgid "Error opening '%s' for reading (%s)."
-#~ msgstr "Ne peut ouvrir en lecture le fichier «%s» (%s)."
-
-#~ msgid "Error opening '%s' for writing (%s)."
-#~ msgstr "Ne peut ouvrir en écriture le fichier «%s» (%s)."
-
-#~ msgid "Error while reading from '%s' (%s)."
-#~ msgstr "Erreur lors de la lecture à partir de : %s (%s)."
-
-#~ msgid "Error while writing to '%s' (%s)."
-#~ msgstr "Erreur d'écriture dans «%s» (%s)."
-
-#~ msgid "Error when closing '%s' (%s)."
-#~ msgstr "Erreur à la fermeture «%s» (%s)."
-
-#~ msgid "Unknown action (%d) in smart playlist will be ignored.\n"
-#~ msgstr "L'action inconnue (%d) dans la liste intelligente sera ignorée.\n"
+#~ msgid "Some tracks were not written to iPod. Export aborted!"
+#~ msgstr "Des morceaux n'ont pas été copiés sur l'iPod. Export annulé !"

Deleted: gtkpod/trunk/po/gtkpod.pot
===================================================================
--- gtkpod/trunk/po/gtkpod.pot	2007-06-27 20:59:02 UTC (rev 193)
+++ gtkpod/trunk/po/gtkpod.pot	2007-06-27 21:27:12 UTC (rev 194)
@@ -1,4412 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
-# This file is distributed under the same license as the PACKAGE package.
-# FIRST AUTHOR <EMAIL at ADDRESS>, YEAR.
-#
-#, fuzzy
-msgid ""
-msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
-"Report-Msgid-Bugs-To: \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"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=CHARSET\n"
-"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 ""
-
-#: src/charset.c:54
-msgid "Arabic (ISO-8859-6)"
-msgstr ""
-
-#: src/charset.c:55
-msgid "Arabic (Windows-1256)"
-msgstr ""
-
-#: src/charset.c:56
-msgid "Baltic (ISO-8859-13)"
-msgstr ""
-
-#: src/charset.c:57
-msgid "Baltic (ISO-8859-4)"
-msgstr ""
-
-#: src/charset.c:58
-msgid "Baltic (Windows-1257)"
-msgstr ""
-
-#: src/charset.c:59
-msgid "Celtic (ISO-8859-14)"
-msgstr ""
-
-#: src/charset.c:60
-msgid "Central European (IBM-852)"
-msgstr ""
-
-#: src/charset.c:61
-msgid "Central European (ISO-8859-2)"
-msgstr ""
-
-#: src/charset.c:62
-msgid "Central European (Windows-1250)"
-msgstr ""
-
-#: src/charset.c:63
-msgid "Chinese Simplified (GB18030)"
-msgstr ""
-
-#: src/charset.c:64
-msgid "Chinese Simplified (GB2312)"
-msgstr ""
-
-#: src/charset.c:65
-msgid "Chinese Traditional (Big5)"
-msgstr ""
-
-#: src/charset.c:66
-msgid "Chinese Traditional (Big5-HKSCS)"
-msgstr ""
-
-#: src/charset.c:67
-msgid "Cyrillic (IBM-855)"
-msgstr ""
-
-#: src/charset.c:68
-msgid "Cyrillic (ISO-8859-5)"
-msgstr ""
-
-#: src/charset.c:69
-msgid "Cyrillic (ISO-IR-111)"
-msgstr ""
-
-#: src/charset.c:70
-msgid "Cyrillic (KOI8-R)"
-msgstr ""
-
-#: src/charset.c:71
-msgid "Cyrillic (Windows-1251)"
-msgstr ""
-
-#: src/charset.c:72
-msgid "Cyrillic/Russian (CP-866)"
-msgstr ""
-
-#: src/charset.c:73
-msgid "Cyrillic/Ukrainian (KOI8-U)"
-msgstr ""
-
-#: src/charset.c:74
-msgid "English (US-ASCII)"
-msgstr ""
-
-#: src/charset.c:75
-msgid "Greek (ISO-8859-7)"
-msgstr ""
-
-#: src/charset.c:76
-msgid "Greek (Windows-1253)"
-msgstr ""
-
-#: src/charset.c:77
-msgid "Hebrew (IBM-862)"
-msgstr ""
-
-#: src/charset.c:78
-msgid "Hebrew (Windows-1255)"
-msgstr ""
-
-#: src/charset.c:79
-msgid "Japanese (automatic detection)"
-msgstr ""
-
-#: src/charset.c:80
-msgid "Japanese (EUC-JP)"
-msgstr ""
-
-#: src/charset.c:81
-msgid "Japanese (ISO-2022-JP)"
-msgstr ""
-
-#: src/charset.c:82
-msgid "Japanese (Shift_JIS)"
-msgstr ""
-
-#: src/charset.c:83
-msgid "Korean (EUC-KR)"
-msgstr ""
-
-#: src/charset.c:84
-msgid "Nordic (ISO-8859-10)"
-msgstr ""
-
-#: src/charset.c:85
-msgid "South European (ISO-8859-3)"
-msgstr ""
-
-#: src/charset.c:86
-msgid "Thai (TIS-620)"
-msgstr ""
-
-#: src/charset.c:87
-msgid "Turkish (IBM-857)"
-msgstr ""
-
-#: src/charset.c:88
-msgid "Turkish (ISO-8859-9)"
-msgstr ""
-
-#: src/charset.c:89
-msgid "Turkish (Windows-1254)"
-msgstr ""
-
-#: src/charset.c:90
-msgid "Unicode (UTF-7)"
-msgstr ""
-
-#: src/charset.c:91
-msgid "Unicode (UTF-8)"
-msgstr ""
-
-#: src/charset.c:92
-msgid "Unicode (UTF-16BE)"
-msgstr ""
-
-#: src/charset.c:93
-msgid "Unicode (UTF-16LE)"
-msgstr ""
-
-#: src/charset.c:94
-msgid "Unicode (UTF-32BE)"
-msgstr ""
-
-#: src/charset.c:95
-msgid "Unicode (UTF-32LE)"
-msgstr ""
-
-#: src/charset.c:96
-msgid "Vietnamese (VISCII)"
-msgstr ""
-
-#: src/charset.c:97
-msgid "Vietnamese (Windows-1258)"
-msgstr ""
-
-#: src/charset.c:98
-msgid "Visual Hebrew (ISO-8859-8)"
-msgstr ""
-
-#: src/charset.c:99
-msgid "Western (IBM-850)"
-msgstr ""
-
-#: src/charset.c:100
-msgid "Western (ISO-8859-1)"
-msgstr ""
-
-#: src/charset.c:101
-msgid "Western (ISO-8859-15)"
-msgstr ""
-
-#: src/charset.c:102
-msgid "Western (Windows-1252)"
-msgstr ""
-
-#. sanity!
-#. check for "System Charset" and return NULL
-#: src/charset.c:160 src/charset.c:170 src/charset.c:223
-msgid "System Charset"
-msgstr ""
-
-#. 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 ""
-
-#: src/confirmation.c:376
-msgid "Confirmation Dialogue"
-msgstr ""
-
-#: src/context_menus.c:367 src/tools.c:852
-msgid "Play Now"
-msgstr ""
-
-#: src/context_menus.c:373 src/tools.c:865
-msgid "Enqueue"
-msgstr ""
-
-#: src/context_menus.c:379
-msgid "Copy Tracks to Filesystem"
-msgstr ""
-
-#: src/context_menus.c:386 src/file_export.c:1081
-msgid "Create Playlist File"
-msgstr ""
-
-#: src/context_menus.c:393
-msgid "Create new Playlist"
-msgstr ""
-
-#: src/context_menus.c:400
-msgid "Update Tracks from File"
-msgstr ""
-
-#: src/context_menus.c:414
-msgid "Sync Playlist with Dir(s)"
-msgstr ""
-
-#: src/context_menus.c:424
-msgid "Remove All Tracks from iPod"
-msgstr ""
-
-#: src/context_menus.c:442
-msgid "Remove All Podcasts from iPod"
-msgstr ""
-
-#: src/context_menus.c:457
-msgid "Delete Including Tracks"
-msgstr ""
-
-#: src/context_menus.c:465
-msgid "Delete But Keep Tracks"
-msgstr ""
-
-#: src/context_menus.c:473
-msgid "Edit iPod Properties"
-msgstr ""
-
-#: src/context_menus.c:493
-msgid "Load iPod"
-msgstr ""
-
-#: src/context_menus.c:500
-msgid "Eject iPod"
-msgstr ""
-
-#: src/context_menus.c:517
-msgid "Remove All Tracks from Database"
-msgstr ""
-
-#: src/context_menus.c:532
-msgid "Delete Including Tracks (Harddisk)"
-msgstr ""
-
-#: src/context_menus.c:540
-msgid "Delete Including Tracks (Database)"
-msgstr ""
-
-#: src/context_menus.c:548
-msgid "Delete From iPod"
-msgstr ""
-
-#: src/context_menus.c:556
-msgid "Delete From Playlist"
-msgstr ""
-
-#: src/context_menus.c:564
-msgid "Delete From Harddisk"
-msgstr ""
-
-#: src/context_menus.c:572
-msgid "Delete From Database"
-msgstr ""
-
-#: src/context_menus.c:580
-msgid "Alphabetize"
-msgstr ""
-
-#: src/context_menus.c:596
-msgid "Edit Playlist Properties"
-msgstr ""
-
-#: src/date_parser.l:269
-#, c-format
-msgid "Date format error: unrecognized character: '%s'\n"
-msgstr ""
-
-#: src/details.c:1182
-msgid "<b>n/a</b>"
-msgstr ""
-
-#: src/display.c:891
-msgid "Edit selected entry of which sort tab?"
-msgstr ""
-
-#. no entry selected
-#: src/display.c:898 src/misc_confirm.c:431 src/misc_track.c:1613
-msgid "No entry selected."
-msgstr ""
-
-#: 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:1096
-msgid "Remove entry of which sort tab from database?"
-msgstr ""
-
-#: src/display.c:1104
-msgid "Remove tracks in selected entry of which filter tab from the iPod?"
-msgstr ""
-
-#: src/display.c:1126
-msgid "Remove tracks in selected entry of which filter tab from the harddisk?"
-msgstr ""
-
-#: src/display.c:1156
-msgid "Remove tracks in selected entry of which filter tab from playlist?"
-msgstr ""
-
-#: 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:1265 src/display.c:1292
-msgid "Update selected entry of which sort tab?"
-msgstr ""
-
-#: src/display.c:1378
-msgid "Export selected entry of which sort tab?"
-msgstr ""
-
-#: src/display.c:1434
-msgid "Create playlist file from selected entry of which sort tab?"
-msgstr ""
-
-#: src/display.c:1488
-msgid "Play tracks in selected entry of which sort tab?"
-msgstr ""
-
-#: src/display.c:1543
-msgid "Enqueue tracks in selected entry of which sort tab?"
-msgstr ""
-
-#: src/display.c:1800
-msgid "Normalize tracks in selected entry of which sort tab?"
-msgstr ""
-
-#: src/display_itdb.c:355
-#, c-format
-msgid "Failed to set cover art: '%s'\n"
-msgstr ""
-
-#: src/display_itdb.c:835 src/display_itdb.c:967 src/repository.c:1189
-msgid "iPod"
-msgstr ""
-
-#: src/display_itdb.c:844 src/display_itdb.c:965
-msgid "Local"
-msgstr ""
-
-#. 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:496 src/display_playlists.c:538
-msgid "Error: drag from iPod not possible in offline mode."
-msgstr ""
-
-#: 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:851
-msgid "Can't reorder sorted treeview."
-msgstr ""
-
-#: 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 ""
-
-#: src/display_songs.c:282
-#, c-format
-msgid "Moved one track"
-msgid_plural "Moved %d tracks"
-msgstr[0] ""
-msgstr[1] ""
-
-#: 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 ""
-
-#: src/display_songs.c:1923
-msgid "Rtng"
-msgstr ""
-
-#: src/display_songs.c:1926
-msgid "#"
-msgstr ""
-
-#: src/display_songs.c:1929
-msgid "CD"
-msgstr ""
-
-#: src/display_songs.c:1932
-msgid "ID"
-msgstr ""
-
-#: src/display_songs.c:1935
-msgid "Trnsfrd"
-msgstr ""
-
-#: src/display_songs.c:1939
-msgid "Cmpl"
-msgstr ""
-
-#: src/display_songs.c:1945 src/display_spl.c:94
-msgid "Time"
-msgstr ""
-
-#: src/display_songs.c:1948
-msgid "Plycnt"
-msgstr ""
-
-#: src/display_songs.c:1960
-msgid "Released"
-msgstr ""
-
-#: 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:1966
-msgid "Vol."
-msgstr ""
-
-#: src/display_songs.c:1969
-msgid "Sndchk."
-msgstr ""
-
-#: src/display_sorttabs.c:456
-msgid "'Played' condition ignored because of error."
-msgstr ""
-
-#: src/display_sorttabs.c:459
-msgid "'Modified' condition ignored because of error."
-msgstr ""
-
-#: src/display_sorttabs.c:462
-msgid "'Added' condition ignored because of error."
-msgstr ""
-
-#: src/display_sorttabs.c:1582 src/misc_conversion.c:60
-msgid "All"
-msgstr ""
-
-#: src/display_sorttabs.c:1608
-msgid "Compilations"
-msgstr ""
-
-#: src/display_sorttabs.c:2951
-msgid "Comp."
-msgstr ""
-
-#: src/display_sorttabs.c:2960
-msgid "Special"
-msgstr ""
-
-#: src/display_sorttabs.c:3216
-msgid "Last Played"
-msgstr ""
-
-#: src/display_sorttabs.c:3217
-msgid "Last Modified"
-msgstr ""
-
-#: src/display_spl.c:64
-msgid "days"
-msgstr ""
-
-#: src/display_spl.c:65
-msgid "weeks"
-msgstr ""
-
-#: src/display_spl.c:66
-msgid "months"
-msgstr ""
-
-#: src/display_spl.c:73
-msgid "kbps"
-msgstr ""
-
-#: src/display_spl.c:74
-msgid "Hz"
-msgstr ""
-
-#: src/display_spl.c:75 src/display_spl.c:160 src/info.c:777
-msgid "MB"
-msgstr ""
-
-#: src/display_spl.c:76
-msgid "secs"
-msgstr ""
-
-#: src/display_spl.c:86 src/misc_conversion.c:75
-msgid "Bitrate"
-msgstr ""
-
-#. 15
-#: src/display_spl.c:87 src/misc_conversion.c:76
-msgid "Samplerate"
-msgstr ""
-
-#: src/display_spl.c:90
-msgid "Kind"
-msgstr ""
-
-#: src/display_spl.c:91 src/misc_conversion.c:82
-msgid "Date modified"
-msgstr ""
-
-#: src/display_spl.c:92
-msgid "Track number"
-msgstr ""
-
-#: src/display_spl.c:93
-msgid "Size"
-msgstr ""
-
-#: src/display_spl.c:95 src/misc_conversion.c:65
-msgid "Comment"
-msgstr ""
-
-#: src/display_spl.c:96 src/misc_conversion.c:80
-msgid "Date added"
-msgstr ""
-
-#: src/display_spl.c:99
-msgid "Last played"
-msgstr ""
-
-#: src/display_spl.c:100
-msgid "Disc number"
-msgstr ""
-
-#: src/display_spl.c:102 src/misc_conversion.c:88
-msgid "Compilation"
-msgstr ""
-
-#: src/display_spl.c:103 src/misc_conversion.c:77
-msgid "BPM"
-msgstr ""
-
-#: src/display_spl.c:104 src/misc_conversion.c:87
-msgid "Grouping"
-msgstr ""
-
-#: src/display_spl.c:111
-msgid "contains"
-msgstr ""
-
-#: src/display_spl.c:112
-msgid "does not contain"
-msgstr ""
-
-#: src/display_spl.c:113 src/display_spl.c:122 src/display_spl.c:132
-#: src/display_spl.c:151
-msgid "is"
-msgstr ""
-
-#: src/display_spl.c:114 src/display_spl.c:123 src/display_spl.c:133
-#: src/display_spl.c:152
-msgid "is not"
-msgstr ""
-
-#: src/display_spl.c:115
-msgid "starts with"
-msgstr ""
-
-#: src/display_spl.c:116
-msgid "ends with"
-msgstr ""
-
-#: src/display_spl.c:124
-msgid "is greater than"
-msgstr ""
-
-#: src/display_spl.c:125
-msgid "is less than"
-msgstr ""
-
-#: src/display_spl.c:126 src/display_spl.c:138
-msgid "is in the range"
-msgstr ""
-
-#: src/display_spl.c:134
-msgid "is after"
-msgstr ""
-
-#: src/display_spl.c:135
-msgid "is before"
-msgstr ""
-
-#: src/display_spl.c:136
-msgid "in the last"
-msgstr ""
-
-#: src/display_spl.c:137
-msgid "not in the last"
-msgstr ""
-
-#: src/display_spl.c:144
-msgid "is set"
-msgstr ""
-
-#: src/display_spl.c:145
-msgid "is not set"
-msgstr ""
-
-#: src/display_spl.c:159
-msgid "minutes"
-msgstr ""
-
-#: src/display_spl.c:161
-msgid "tracks"
-msgstr ""
-
-#: src/display_spl.c:162
-msgid "hours"
-msgstr ""
-
-#: src/display_spl.c:163 src/info.c:777
-msgid "GB"
-msgstr ""
-
-#: src/display_spl.c:170
-msgid "random order"
-msgstr ""
-
-#: src/display_spl.c:171
-msgid "title"
-msgstr ""
-
-#: src/display_spl.c:172
-msgid "album"
-msgstr ""
-
-#: src/display_spl.c:173
-msgid "artist"
-msgstr ""
-
-#: src/display_spl.c:174
-msgid "genre"
-msgstr ""
-
-#: src/display_spl.c:175
-msgid "most recently added"
-msgstr ""
-
-#: src/display_spl.c:176
-msgid "least recently added"
-msgstr ""
-
-#: src/display_spl.c:177
-msgid "most often played"
-msgstr ""
-
-#: src/display_spl.c:178
-msgid "least often played"
-msgstr ""
-
-#: src/display_spl.c:179
-msgid "most recently played"
-msgstr ""
-
-#: src/display_spl.c:180
-msgid "least recently played"
-msgstr ""
-
-#: src/display_spl.c:181
-msgid "highest rating"
-msgstr ""
-
-#: src/display_spl.c:182
-msgid "lowest rating"
-msgstr ""
-
-#: src/display_spl.c:1047 src/display_spl.c:1062
-msgid "to"
-msgstr ""
-
-#: 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 ""
-
-#: src/file.c:230
-#, c-format
-msgid ""
-"'%s' is a directory, not a playlist file.\n"
-"\n"
-msgstr ""
-
-#: src/file.c:258
-#, c-format
-msgid ""
-"'%s' is a not a known playlist file.\n"
-"\n"
-msgstr ""
-
-#: src/file.c:275
-#, c-format
-msgid ""
-"Cannot open '%s' for reading.\n"
-"\n"
-msgstr ""
-
-#: src/file.c:359
-#, c-format
-msgid "Skipping '%s' because it is a directory.\n"
-msgstr ""
-
-#: src/file.c:364
-#, c-format
-msgid "Skipping '%s' to avoid adding playlist file recursively\n"
-msgstr ""
-
-#: src/file.c:619
-#, c-format
-msgid "Unknown token '%s' in template '%s'\n"
-msgstr ""
-
-#: src/file.c:871
-#, c-format
-msgid "Local filename not valid (%s)"
-msgstr ""
-
-#: src/file.c:930
-#, c-format
-msgid "No information found for user '%s' in '%s'"
-msgstr ""
-
-#: src/file.c:939
-#, c-format
-msgid "mserv data file (%s) not available for track (%s)"
-msgstr ""
-
-#: src/file.c:947
-#, c-format
-msgid "Track (%s) not in mserv music root directory (%s)"
-msgstr ""
-
-#: src/file.c:1055
-#, c-format
-msgid ""
-"The following track could not be processed (file does not exist): '%s'\n"
-msgstr ""
-
-#: src/file.c:1118
-#, c-format
-msgid "The following track could not be processed (filetype unknown): '%s'\n"
-msgstr ""
-
-#: 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:1241 src/file.c:1295
-msgid "Nothing to update"
-msgstr ""
-
-#: src/file.c:1262
-#, c-format
-msgid "Updating %s"
-msgstr ""
-
-#: src/file.c:1276
-msgid "Updated selected tracks with info from file."
-msgstr ""
-
-#: src/file.c:1310
-#, c-format
-msgid "Retrieving mserv data %s"
-msgstr ""
-
-#: src/file.c:1315
-msgid "no filename available"
-msgstr ""
-
-#: src/file.c:1320
-msgid "Updated selected tracks with data from mserv."
-msgstr ""
-
-#: 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] ""
-msgstr[1] ""
-
-#. gint id,
-#. gboolean modal,
-#: src/file.c:1347
-msgid "Failed Track Update"
-msgstr ""
-
-#: src/file.c:1405
-#, c-format
-msgid "The following track has been updated"
-msgid_plural "The following %d tracks have been updated"
-msgstr[0] ""
-msgstr[1] ""
-
-#. gint id,
-#. gboolean modal,
-#: src/file.c:1411
-msgid "Successful Track Update"
-msgstr ""
-
-#: 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[1] ""
-
-#. gint id,
-#. gboolean modal,
-#: src/file.c:1476
-msgid "mserv data retrieval problem"
-msgstr ""
-
-#: src/file.c:1565
-msgid "no local filename available, file on the iPod will be used instead"
-msgstr ""
-
-#: 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
-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: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:1913
-#, c-format
-msgid ""
-"Writing to video files not yet supported (%s).\n"
-"\n"
-msgstr ""
-
-#: src/file.c:1965 src/file.c:1979
-#, c-format
-msgid "Couldn't change tags of file: %s\n"
-msgstr ""
-
-#: src/file.c:2076
-#, c-format
-msgid "Could not open '%s' for reading and writing.\n"
-msgstr ""
-
-#: src/file.c:2083
-#, c-format
-msgid "Could not obtain lock on '%s'.\n"
-msgstr ""
-
-#. 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 ""
-
-#. gint id,
-#. gboolean modal,
-#: src/file.c:2159
-msgid "Remove offline playcounts?"
-msgstr ""
-
-#. 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 ""
-
-#: src/file.c:2177
-#, c-format
-msgid "Error writing to '%s'.\n"
-msgstr ""
-
-#: src/file.c:2232 src/tools.c:269
-#, c-format
-msgid ""
-"Normalization failed: file type not supported (%s).\n"
-"\n"
-msgstr ""
-
-#: src/file.c:2248 src/tools.c:286
-#, c-format
-msgid ""
-"Normalization failed: file not available (%s).\n"
-"\n"
-msgstr ""
-
-#: src/file_export.c:182
-#, c-format
-msgid "Skipping existing file with same length: '%s'\n"
-msgstr ""
-
-#: src/file_export.c:190
-#, c-format
-msgid "Overwriting existing file: '%s'\n"
-msgstr ""
-
-#: src/file_export.c:207
-#, c-format
-msgid "Error copying '%s' to '%s': Permission Error (%s)\n"
-msgstr ""
-
-#: src/file_export.c:209
-#, c-format
-msgid "Error copying '%s' to '%s' (%s)\n"
-msgstr ""
-
-#: src/file_export.c:217
-#, c-format
-msgid "Unable to open '%s' for reading\n"
-msgstr ""
-
-#: 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:395 src/file_itunesdb.c:1230 src/tools.c:359
-msgid "Information"
-msgstr ""
-
-#: src/file_export.c:406 src/tools.c:371
-msgid "Press button to abort."
-msgstr ""
-
-#: src/file_export.c:419
-msgid "copying..."
-msgstr ""
-
-#: src/file_export.c:472
-#, c-format
-msgid "Failed to write '%s-%s'\n"
-msgstr ""
-
-#: 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:501 src/file_itunesdb.c:1495 src/tools.c:517
-#, c-format
-msgid "%d%% (%d:%02d:%02d left)"
-msgstr ""
-
-#: src/file_export.c:510
-msgid "Some tracks were not copied."
-msgstr ""
-
-#: src/file_export.c:575
-msgid "Export from iPod database not possible in offline mode."
-msgstr ""
-
-#: src/file_export.c:583
-msgid "Select Export Destination Directory"
-msgstr ""
-
-#: src/file_export.c:732
-msgid "Drag from iPod database not possible in offline mode."
-msgstr ""
-
-#: src/file_export.c:766
-msgid "The following tracks have to be copied to your harddisk"
-msgstr ""
-
-#: 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:1006
-#, c-format
-msgid ""
-"No valid filename for: %s\n"
-"\n"
-msgstr ""
-
-#: 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:1027
-#, c-format
-msgid ""
-"Could not open '%s' for writing (%s).\n"
-"\n"
-msgstr ""
-
-#: src/file_itunesdb.c:115
-#, c-format
-msgid "Matching MD5 checksum for file %d/%d"
-msgstr ""
-
-#: src/file_itunesdb.c:223
-msgid "Could not open \"iTunesDB.ext\" for reading extended info.\n"
-msgstr ""
-
-#: src/file_itunesdb.c:230
-msgid "Could not create hash value from itunesdb\n"
-msgstr ""
-
-#: src/file_itunesdb.c:244
-#, c-format
-msgid "Error while reading extended info: %s\n"
-msgstr ""
-
-#: 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 ""
-
-#: src/file_itunesdb.c:273
-#, c-format
-msgid ""
-"%s:\n"
-"Expected \"itunesdb_hash=\" but got:\"%s\"\n"
-msgstr ""
-
-#: src/file_itunesdb.c:333
-#, c-format
-msgid ""
-"%s:\n"
-"Format error: %s\n"
-msgstr ""
-
-#: 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 ""
-
-#: 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:447
-msgid "Offline iPod database successfully imported"
-msgstr ""
-
-#: src/file_itunesdb.c:450
-msgid "Local database successfully imported"
-msgstr ""
-
-#: src/file_itunesdb.c:458
-#, c-format
-msgid ""
-"Offline iPod database import failed: '%s'\n"
-"\n"
-msgstr ""
-
-#: src/file_itunesdb.c:462
-#, c-format
-msgid ""
-"Local database import failed: '%s'\n"
-"\n"
-msgstr ""
-
-#: src/file_itunesdb.c:469
-msgid ""
-"Offline iPod database import failed: \n"
-"\n"
-msgstr ""
-
-#: src/file_itunesdb.c:472
-msgid ""
-"Local database import failed: \n"
-"\n"
-msgstr ""
-
-#: src/file_itunesdb.c:479
-#, c-format
-msgid ""
-"'%s' does not exist. Import aborted.\n"
-"\n"
-msgstr ""
-
-#: src/file_itunesdb.c:502
-msgid "Extended info will not be used.\n"
-msgstr ""
-
-#: src/file_itunesdb.c:509
-msgid "iPod Database Successfully Imported"
-msgstr ""
-
-#: src/file_itunesdb.c:516
-#, c-format
-msgid ""
-"iPod Database Import Failed: '%s'\n"
-"\n"
-msgstr ""
-
-#: src/file_itunesdb.c:522
-msgid ""
-"iPod Database Import Failed.\n"
-"\n"
-msgstr ""
-
-#: 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:1086
-msgid "Aborted writing of extended info.\n"
-msgstr ""
-
-#: src/file_itunesdb.c:1241
-msgid ""
-"Press button to abort.\n"
-"Export can be continued at a later time."
-msgstr ""
-
-#: src/file_itunesdb.c:1310
-msgid "deleting..."
-msgstr ""
-
-#: src/file_itunesdb.c:1413
-msgid "preparing to copy..."
-msgstr ""
-
-#: 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:1506
-msgid "Some tracks were not written to iPod. Export aborted!"
-msgstr ""
-
-#: 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 ""
-
-#: 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:1597
-msgid "Some tracks could not be deleted from the iPod. Export aborted!"
-msgstr ""
-
-#: src/file_itunesdb.c:1613
-msgid "Now writing database. Please wait..."
-msgstr ""
-
-#: src/file_itunesdb.c:1659
-#, c-format
-msgid "Extended information file not deleted: '%s'"
-msgstr ""
-
-#: src/file_itunesdb.c:1745
-#, c-format
-msgid "%s: Database saved"
-msgstr ""
-
-#: src/file_itunesdb.c:1749
-#, c-format
-msgid "%s: Changes saved"
-msgstr ""
-
-#: src/fileselection.c:127
-msgid "Successfully added files"
-msgstr ""
-
-#: src/fileselection.c:129
-msgid "Some files were not added successfully"
-msgstr ""
-
-#. Create the file chooser, and handle the response
-#: src/fileselection.c:157
-msgid "Add Files"
-msgstr ""
-
-#. Create the file chooser, and handle the response
-#: src/fileselection.c:250
-msgid "Add Playlists"
-msgstr ""
-
-#. Create the file chooser, and handle the response
-#: src/fileselection.c:297
-msgid "Set Cover"
-msgstr ""
-
-#: src/fileselection.c:718
-msgid "Select directory to add recursively"
-msgstr ""
-
-#: src/fileselection.c:989
-msgid "Ok"
-msgstr ""
-
-#: src/fileselection.c:998
-msgid "Cancel"
-msgstr ""
-
-#: src/getopt.c:681
-#, c-format
-msgid "%s: option `%s' is ambiguous\n"
-msgstr ""
-
-#: src/getopt.c:706
-#, c-format
-msgid "%s: option `--%s' doesn't allow an argument\n"
-msgstr ""
-
-#: src/getopt.c:711
-#, c-format
-msgid "%s: option `%c%s' doesn't allow an argument\n"
-msgstr ""
-
-#: src/getopt.c:729 src/getopt.c:902
-#, c-format
-msgid "%s: option `%s' requires an argument\n"
-msgstr ""
-
-#. --option
-#: src/getopt.c:758
-#, c-format
-msgid "%s: unrecognized option `--%s'\n"
-msgstr ""
-
-#. +option or -option
-#: src/getopt.c:762
-#, c-format
-msgid "%s: unrecognized option `%c%s'\n"
-msgstr ""
-
-#. 1003.2 specifies the format of this message.
-#: src/getopt.c:788
-#, c-format
-msgid "%s: illegal option -- %c\n"
-msgstr ""
-
-#: src/getopt.c:791
-#, c-format
-msgid "%s: invalid option -- %c\n"
-msgstr ""
-
-#. 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 ""
-
-#: src/getopt.c:868
-#, c-format
-msgid "%s: option `-W %s' is ambiguous\n"
-msgstr ""
-
-#: src/getopt.c:886
-#, c-format
-msgid "%s: option `-W %s' doesn't allow an argument\n"
-msgstr ""
-
-#: src/info.c:383
-msgid "n/c"
-msgstr ""
-
-#: src/info.c:388 src/info.c:835
-msgid "offline"
-msgstr ""
-
-#: src/info.c:483
-#, c-format
-msgid " P:%d T:%d/%d"
-msgstr ""
-
-#: src/info.c:777
-msgid "B"
-msgstr ""
-
-#: src/info.c:777
-msgid "kB"
-msgstr ""
-
-#: src/info.c:777
-msgid "TB"
-msgstr ""
-
-#: src/info.c:820
-#, c-format
-msgid " %s Free"
-msgstr ""
-
-#: src/info.c:825
-#, c-format
-msgid " %s Pending"
-msgstr ""
-
-#: src/info.c:830
-msgid " disconnected"
-msgstr ""
-
-#: 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:240
-#, c-format
-msgid "Could not open '%s' to calculate MD5 checksum: %s\n"
-msgstr ""
-
-#: src/misc.c:79
-#, c-format
-msgid ""
-"gtkpod Version %s: Cross-Platform Multi-Lingual Interface to Apple's iPod"
-"(tm)."
-msgstr ""
-
-#: 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 ""
-
-#: 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 ""
-
-#: 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:99
-msgid "Ramesh Dharan: Multi-Edit (edit tags of several tracks in one run)\n"
-msgstr ""
-
-#: src/misc.c:101
-msgid "Hiroshi Kawashima: Japanese charset autodetecion feature\n"
-msgstr ""
-
-#: src/misc.c:103
-msgid "Adrian Ulrich: porting of playlist code from mktunes.pl to itunesdb.c\n"
-msgstr ""
-
-#: 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:107
-msgid "Sam Clegg: user defined filenames when exporting tracks from the iPod\n"
-msgstr ""
-
-#: src/misc.c:109
-msgid "Chris Cutler: automatic creation of various playlist types\n"
-msgstr ""
-
-#: src/misc.c:111
-msgid ""
-"Graeme Wilford: reading and writing of the 'Composer' ID3 tags, progress "
-"dialogue during sync\n"
-msgstr ""
-
-#: src/misc.c:113
-msgid ""
-"Edward Matteucci: debugging, special playlist creation, most of the volume "
-"normalizing code\n"
-msgstr ""
-
-#: src/misc.c:115
-msgid "Jens Lautenbach: some optical improvements\n"
-msgstr ""
-
-#: src/misc.c:117
-msgid "Alex Tribble: iPod eject patch\n"
-msgstr ""
-
-#: src/misc.c:119
-msgid "Yaroslav Halchenko: Orphaned and dangling tracks handling\n"
-msgstr ""
-
-#: src/misc.c:121
-msgid ""
-"Andrew Huntwork: Filename case sensitivity fix and various other bugfixes\n"
-msgstr ""
-
-#: src/misc.c:123
-msgid ""
-"Ero Carrera: Filename validation and quick sync when copying tracks from the "
-"iPod\n"
-msgstr ""
-
-#: src/misc.c:125
-msgid "Jens Taprogge: Support for LAME's replay gain tag to normalize volume\n"
-msgstr ""
-
-#: src/misc.c:127
-msgid "Armando Atienza: Support with external playcounts\n"
-msgstr ""
-
-#: src/misc.c:129
-msgid "D.L. Sharp: Support for m4b files (bookmarkable AAC files)\n"
-msgstr ""
-
-#: src/misc.c:131
-msgid "Jim Hall: Decent INSTALL file\n"
-msgstr ""
-
-#: 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:135
-msgid "Flavio Stanchina: bugfixes\n"
-msgstr ""
-
-#: src/misc.c:137
-msgid ""
-"Chris Micacchi: when sorting ignore 'the' and similar at the beginning of "
-"the title\n"
-msgstr ""
-
-#: src/misc.c:139
-msgid "Steve Jay: use statvfs() instead of df (better portability, faster)\n"
-msgstr ""
-
-#: src/misc.c:142
-msgid ""
-"Christoph Kunz: address compatibility issues when writing id3v2.4 type mp3 "
-"tags\n"
-msgstr ""
-
-#: 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 ""
-
-#: src/misc.c:150
-msgid "Daniel Kercher: sync scripts for abook and webcalendar\n"
-msgstr ""
-
-#: src/misc.c:153
-msgid "Clinton Gormley: sync scripts for thunderbird\n"
-msgstr ""
-
-#: src/misc.c:156
-msgid "Sebastien Beridot: sync script for ldif addressbook format\n"
-msgstr ""
-
-#: src/misc.c:159
-msgid "Sebastian Scherer: sync script for kNotes\n"
-msgstr ""
-
-#: src/misc.c:162
-msgid "Nick Piper: sync script for Palm, type-ahead search\n"
-msgstr ""
-
-#: src/misc.c:165
-msgid "Uwe Hermann: help with support for iPod Video\n"
-msgstr ""
-
-#: 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:170
-msgid ""
-"Nicolas Chariot: icons of buttons\n"
-"\n"
-"\n"
-msgstr ""
-
-#: src/misc.c:174
-msgid "This program borrows code from the following projects:\n"
-msgstr ""
-
-#: 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: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:180
-msgid "    mp3info:  mp3 playlength detection (http://ibiblio.org/mp3info/)\n"
-msgstr ""
-
-#: src/misc.c:182
-msgid ""
-"    xmms:     dirbrowser, mp3 playlength detection (http://www.xmms.org)\n"
-msgstr ""
-
-#: src/misc.c:185
-msgid ""
-"The GUI was created with the help of glade-2 (http://glade.gnome.org/).\n"
-msgstr ""
-
-#: src/misc.c:200
-msgid "French:   David Le Brun (david at dyn-ns dot net)\n"
-msgstr ""
-
-#: src/misc.c:202
-msgid "German:   Jorg Schuler (jcsjcs at users dot sourceforge dot net)\n"
-msgstr ""
-
-#: src/misc.c:204
-msgid "Hebrew: Assaf Gillat (gillata at gmail dot com)\n"
-msgstr ""
-
-#: src/misc.c:206
-msgid ""
-"Italian:  Edward Matteucci (edward_matteucc at users dot sourceforge dot "
-"net)\n"
-msgstr ""
-
-#: src/misc.c:208
-msgid "Japanese: Ayako Sano\n"
-msgstr ""
-
-#: src/misc.c:210
-msgid "Japanese: Kentaro Fukuchi (fukuchi at users dot sourceforge dot net)\n"
-msgstr ""
-
-#: src/misc.c:212
-msgid "Swedish: Stefan Asserhall (stefan asserhall at comhem dot se)\n"
-msgstr ""
-
-#: src/misc.c:936
-#, c-format
-msgid "Could not process '%s' (no filename available)"
-msgstr ""
-
-#: src/misc.c:1084
-#, c-format
-msgid "Unknown token '%%%c' in template '%s'"
-msgstr ""
-
-#: src/misc.c:1166
-#, c-format
-msgid "Template ('%s') does not match file type '%s'\n"
-msgstr ""
-
-#: src/misc.c:1247
-#, c-format
-msgid "Error creating %s: %s\n"
-msgstr ""
-
-#. gint id,
-#. gboolean modal,
-#: src/misc_confirm.c:71
-msgid "Warning"
-msgstr ""
-
-#. title
-#: src/misc_confirm.c:72
-msgid "The following has occured:"
-msgstr ""
-
-#: 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] ""
-msgstr[1] ""
-
-#: 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: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[1] ""
-
-#: 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
-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] ""
-msgstr[1] ""
-
-#: src/misc_confirm.c:168
-msgid "Delete Track from Harddisk?"
-msgid_plural "Delete Tracks from Harddisk?"
-msgstr[0] ""
-msgstr[1] ""
-
-#: 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] ""
-msgstr[1] ""
-
-#: src/misc_confirm.c:197
-msgid "Remove Track from Local Database?"
-msgid_plural "Remove Tracks from Local Database?"
-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] ""
-msgstr[1] ""
-
-#: 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[1] ""
-
-#: src/misc_confirm.c:283
-#, c-format
-msgid "Deleted one track from harddisk"
-msgid_plural "Deleted %d tracks from harddisk"
-msgstr[0] ""
-msgstr[1] ""
-
-#: src/misc_confirm.c:295
-#, c-format
-msgid "Deleted track from local database"
-msgid_plural "Deleted %d tracks from local database"
-msgstr[0] ""
-msgstr[1] ""
-
-#: src/misc_confirm.c:438
-msgid "Cannot remove entry 'All'"
-msgstr ""
-
-#: src/misc_confirm.c:532
-#, c-format
-msgid "Removed all %d tracks from the iPod"
-msgstr ""
-
-#: src/misc_confirm.c:537
-msgid "Removed all podcasts from the iPod"
-msgstr ""
-
-#: 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] ""
-
-#. 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: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:613
-#, c-format
-msgid "Removed all %d tracks from the database"
-msgstr ""
-
-#: src/misc_confirm.c:691
-msgid "Are you sure you want to remove all tracks from your iPod?"
-msgstr ""
-
-#: src/misc_confirm.c:696
-msgid "Are you sure you want to remove all podcasts from your iPod?"
-msgstr ""
-
-#: 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] ""
-msgstr[1] ""
-
-#: 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: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] ""
-msgstr[1] ""
-
-#: src/misc_confirm.c:749
-msgid "Are you sure you want to remove all tracks from the database?"
-msgstr ""
-
-#: 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] ""
-msgstr[1] ""
-
-#: src/misc_confirm.c:859
-msgid ""
-"Data has been changed and not been saved.\n"
-"OK to exit gtkpod?"
-msgstr ""
-
-#: src/misc_conversion.c:67
-msgid "File type"
-msgstr ""
-
-#: src/misc_conversion.c:68
-msgid "PC File"
-msgstr ""
-
-#: src/misc_conversion.c:69
-msgid "iPod File"
-msgstr ""
-
-#: src/misc_conversion.c:70
-msgid "iPod ID"
-msgstr ""
-
-#. 10
-#: src/misc_conversion.c:71
-msgid "Track Nr (#)"
-msgstr ""
-
-#: src/misc_conversion.c:72
-msgid "Transferred"
-msgstr ""
-
-#: src/misc_conversion.c:73
-msgid "File Size"
-msgstr ""
-
-#: src/misc_conversion.c:74
-msgid "Play Time"
-msgstr ""
-
-#. 20
-#: src/misc_conversion.c:81
-msgid "Date played"
-msgstr ""
-
-#: src/misc_conversion.c:83
-msgid "Volume"
-msgstr ""
-
-#: src/misc_conversion.c:84
-msgid "Soundcheck"
-msgstr ""
-
-#. 25
-#: src/misc_conversion.c:86
-msgid "CD Nr"
-msgstr ""
-
-#: src/misc_conversion.c:89
-msgid "Category"
-msgstr ""
-
-#: src/misc_conversion.c:90
-msgid "Description"
-msgstr ""
-
-#. 30
-#: src/misc_conversion.c:91
-msgid "Podcast URL"
-msgstr ""
-
-#: src/misc_conversion.c:92
-msgid "Podcast RSS"
-msgstr ""
-
-#: src/misc_conversion.c:93
-msgid "Subtitle"
-msgstr ""
-
-#: src/misc_conversion.c:94
-msgid "Date released"
-msgstr ""
-
-#: src/misc_conversion.c:95
-msgid "Checked"
-msgstr ""
-
-#. 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:114
-msgid "Name of file on the iPod"
-msgstr ""
-
-#. 10
-#: src/misc_conversion.c:116
-msgid "Track Nr. and total number of tracks on CD"
-msgstr ""
-
-#: src/misc_conversion.c:117
-msgid "Whether the file has already been transferred to the iPod or not"
-msgstr ""
-
-#: src/misc_conversion.c:123
-msgid ""
-"Supposedly something that tells the iPod to increase or decrease the "
-"playback speed"
-msgstr ""
-
-#: src/misc_conversion.c:125
-msgid "Number of times the track has been played"
-msgstr ""
-
-#: src/misc_conversion.c:126
-msgid "Star rating from 0 to 5"
-msgstr ""
-
-#: src/misc_conversion.c:127
-msgid "Date and time track has been added"
-msgstr ""
-
-#. 20
-#: src/misc_conversion.c:128
-msgid "Date and time track has last been played"
-msgstr ""
-
-#: src/misc_conversion.c:129
-msgid "Date and time track has last been modified"
-msgstr ""
-
-#: src/misc_conversion.c:130
-msgid "Manual volume adjust"
-msgstr ""
-
-#: 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:134
-msgid "CD Nr. and total number of CDS in set"
-msgstr ""
-
-#: src/misc_conversion.c:137
-msgid ""
-"The category (e.g. 'Technology' or 'Music') where the podcast was located."
-msgstr ""
-
-#: src/misc_conversion.c:138
-msgid "Accessible by selecting the center button on the iPod."
-msgstr ""
-
-#: src/misc_conversion.c:142
-msgid "Release date (for podcasts displayed next to the title on the iPod)"
-msgstr ""
-
-#: 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:659
-#, c-format
-msgid "The local file URI '%s' may not include a '#'"
-msgstr ""
-
-#: src/misc_conversion.c:676
-#, c-format
-msgid "The URI '%s' is invalid"
-msgstr ""
-
-#: src/misc_conversion.c:688
-#, c-format
-msgid "The hostname of the URI '%s' is invalid"
-msgstr ""
-
-#: 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:430
-msgid "Please enter a name for the new playlist"
-msgstr ""
-
-#: src/misc_playlist.c:155
-msgid "AR:"
-msgstr ""
-
-#: src/misc_playlist.c:158
-msgid "AL:"
-msgstr ""
-
-#: src/misc_playlist.c:161
-msgid "GE:"
-msgstr ""
-
-#: src/misc_playlist.c:164
-msgid "CO:"
-msgstr ""
-
-#: src/misc_playlist.c:167
-msgid "YE:"
-msgstr ""
-
-#: src/misc_playlist.c:195
-msgid "Unknown"
-msgstr ""
-
-#: src/misc_playlist.c:273
-#, c-format
-msgid "Random (%d)"
-msgstr ""
-
-#: src/misc_playlist.c:298
-msgid ""
-"Auto Store of track view disabled.\n"
-"\n"
-msgstr ""
-
-#: src/misc_playlist.c:357
-msgid "Not Listed"
-msgstr ""
-
-#: src/misc_playlist.c:407
-#, c-format
-msgid "Created playlist '%s' with %d track."
-msgid_plural "Created playlist '%s' with %d tracks."
-msgstr[0] ""
-msgstr[1] ""
-
-#. n==0
-#: src/misc_playlist.c:418
-msgid "No tracks available, playlist not created"
-msgstr ""
-
-#: src/misc_playlist.c:544
-#, c-format
-msgid "Most Listened (%d)"
-msgstr ""
-
-#: src/misc_playlist.c:585
-msgid "Never Listened"
-msgstr ""
-
-#: src/misc_playlist.c:625
-#, c-format
-msgid "Best Rated (%d)"
-msgstr ""
-
-#: src/misc_playlist.c:667
-msgid "Unrated tracks"
-msgstr ""
-
-#: src/misc_playlist.c:672
-#, c-format
-msgid "Rated %d"
-msgstr ""
-
-#: src/misc_playlist.c:715
-#, c-format
-msgid "Recent (%d)"
-msgstr ""
-
-#: src/misc_playlist.c:754
-msgid "Last Time"
-msgstr ""
-
-#: src/misc_playlist.c:845
-msgid "Removal of dangling tracks with no files on PC was canceled."
-msgstr ""
-
-#: src/misc_playlist.c:855
-msgid "Handling of dangling tracks with files on PC was canceled."
-msgstr ""
-
-#: src/misc_playlist.c:883
-msgid "Dangling tracks with no files on PC were removed."
-msgstr ""
-
-#: src/misc_playlist.c:917
-#, c-format
-msgid "Processing '%s'"
-msgstr ""
-
-#: src/misc_playlist.c:941
-msgid "Dangling tracks with files on PC were handled."
-msgstr ""
-
-#: src/misc_playlist.c:974
-msgid "Track"
-msgstr ""
-
-#: 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 ""
-
-#: src/misc_playlist.c:1031
-msgid "Creating a tree of known files"
-msgstr ""
-
-#: src/misc_playlist.c:1075
-msgid "Checking iPOD files against known files in DB"
-msgstr ""
-
-#: src/misc_playlist.c:1118
-msgid "Orphaned"
-msgstr ""
-
-#: 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 ""
-
-#: src/misc_playlist.c:1173
-#, c-format
-msgid "Found %d orphaned and %d dangling files. Processing..."
-msgstr ""
-
-#: 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] ""
-msgstr[1] ""
-
-#: 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] ""
-msgstr[1] ""
-
-#. we want unique window for each
-#. gboolean modal,
-#: src/misc_playlist.c:1209
-msgid "Dangling Tracks"
-msgstr ""
-
-#: 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: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: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: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] ""
-msgstr[1] ""
-
-#. gint id,
-#. gboolean modal,
-#: src/misc_track.c:213
-msgid "Duplicate detection"
-msgstr ""
-
-#: src/misc_track.c:904
-msgid "Local Database"
-msgstr ""
-
-#. 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:1276
-#, c-format
-msgid "Error setting ID3 field: %s\n"
-msgstr ""
-
-#: 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:1593
-#, c-format
-msgid "ERROR while writing tag to file: '%s' (%s).\n"
-msgstr ""
-
-#. 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 ""
-
-#: 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: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:472
-#, c-format
-msgid "Could not open '%s' for writing, or file is not an mp4 file.\n"
-msgstr ""
-
-#: 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: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 ""
-
-#: 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:308
-msgid "  -h, --help:   display this message\n"
-msgstr ""
-
-#: src/prefs.c:309
-msgid "  -p <filename>:increment playcount for file by one\n"
-msgstr ""
-
-#: src/prefs.c:310
-msgid "  -m path:      define the mountpoint of your iPod\n"
-msgstr ""
-
-#: src/prefs.c:311
-msgid "  --mountpoint: same as '-m'.\n"
-msgstr ""
-
-#: src/prefs.c:312
-msgid "  -a:           import database automatically after start.\n"
-msgstr ""
-
-#: src/prefs.c:313
-msgid "  --auto:       same as '-a'.\n"
-msgstr ""
-
-#: src/prefs_window.c:119
-msgid "Please select command for 'Play Now'"
-msgstr ""
-
-#: src/prefs_window.c:120
-msgid "Please select command for 'Enqueue'"
-msgstr ""
-
-#: src/prefs_window.c:121
-msgid "Please select the mp3gain executable"
-msgstr ""
-
-#: src/prefs_window.c:124
-msgid "Select the mserv music root directory"
-msgstr ""
-
-#: src/prefs_window.c:125
-msgid "Select the mserv trackinfo root directory"
-msgstr ""
-
-#: src/prefs_window.c:127
-msgid "Please select the aacgain executable"
-msgstr ""
-
-#: 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
-msgid "Select mountpoint"
-msgstr ""
-
-#: src/repository.c:576 src/repository.c:2398
-msgid "Set backup file"
-msgstr ""
-
-#: src/repository.c:615
-msgid "Select directory for synchronization"
-msgstr ""
-
-#: src/repository.c:641
-msgid "Please select command to sync contacts"
-msgstr ""
-
-#: src/repository.c:647
-msgid "Please select command to sync calendar"
-msgstr ""
-
-#: src/repository.c:653
-msgid "Please select command to sync notes"
-msgstr ""
-
-#: 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 ""
-
-#: src/repository.c:732
-msgid "Smart playlist updated."
-msgstr ""
-
-#: src/repository.c:1193
-msgid "Podcasts Repository"
-msgstr ""
-
-#: src/repository.c:1197
-msgid "Local Repository"
-msgstr ""
-
-#: src/repository.c:1351
-msgid "Master Playlist"
-msgstr ""
-
-#: src/repository.c:1355
-msgid "Podcasts Playlist"
-msgstr ""
-
-#: src/repository.c:1363
-msgid "Regular Playlist"
-msgstr ""
-
-#: src/repository.c:2426
-msgid "Set local repository file"
-msgstr ""
-
-#: src/repository.c:2525
-msgid "New Repository"
-msgstr ""
-
-#: src/support.c:90 src/support.c:114
-#, c-format
-msgid "Couldn't find pixmap file: %s"
-msgstr ""
-
-#: src/syncdir.c:237
-#, c-format
-msgid "Sync summary for %s/%s\n"
-msgstr ""
-
-#: 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/syncdir.c:282
-msgid "Sync summary"
-msgstr ""
-
-#: 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/tools.c:204
-#, c-format
-msgid ""
-"Execution of '%s' failed.\n"
-"\n"
-msgstr ""
-
-#: src/tools.c:249
-#, c-format
-msgid ""
-"Did not normalize '%s'. Set mp3gain path in the Tools section of the "
-"preferences.\n"
-msgstr ""
-
-#: 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:384
-msgid "Normalizing..."
-msgstr ""
-
-#: src/tools.c:434
-#, c-format
-msgid "%s - %s"
-msgstr ""
-
-#: src/tools.c:460
-msgid "Aborting..."
-msgstr ""
-
-#: src/tools.c:464
-msgid "Will abort after current mp3gain process ends."
-msgstr ""
-
-#: src/tools.c:490
-#, c-format
-msgid ""
-"'%s-%s' (%s) could not be normalized.\n"
-"\n"
-msgstr ""
-
-#: 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:632
-msgid ""
-"Please specify the command to be called on the 'Tools' section of the "
-"preferences dialog.\n"
-msgstr ""
-
-#: 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 ""
-
-#: src/tools.c:685
-#, c-format
-msgid ""
-"'%s' returned the following output:\n"
-"%s\n"
-msgstr ""
-
-#: src/tools.c:752
-#, c-format
-msgid "No command set for '%s'"
-msgstr ""
-
-#: src/tools.c:772
-#, c-format
-msgid "Could not find command '%s' specified for '%s'"
-msgstr ""
-
-#: src/wavfile.c:107
-#, c-format
-msgid "Could not open '%s' for reading.\n"
-msgstr ""
-
-#: src/wavfile.c:181
-#, c-format
-msgid "%s does not appear to be a supported wav file.\n"
-msgstr ""

Deleted: gtkpod/trunk/po/he.gmo
===================================================================
(Binary files differ)

Modified: gtkpod/trunk/po/he.po
===================================================================
--- gtkpod/trunk/po/he.po	2007-06-27 20:59:02 UTC (rev 193)
+++ gtkpod/trunk/po/he.po	2007-06-27 21:27:12 UTC (rev 194)
@@ -1,15 +1,14 @@
 # translation of gtkpod.po to HEBREW
 # This file is distributed under the same license as the gtkpod package
-# Assaf Gillat <gillata at gmail.com>, 2005.
-# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER.
+# Assaf Gillat <gillata at gmail.com>, 2005/7.
 #
 msgid ""
 msgstr ""
 "Project-Id-Version: gtkpod\n"
 "Report-Msgid-Bugs-To: \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"
+"POT-Creation-Date: 2007-06-14 22:57+0900\n"
+"PO-Revision-Date: 2007-01-13 20:48+0200\n"
+"Last-Translator: \n"
 "Language-Team: HEBREW <kde-il at yahoogroups.com>\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
@@ -17,765 +16,774 @@
 "Plural-Forms: nplurals=2; plural=n != 1;\n"
 "X-Generator: KBabel 1.9.1\n"
 
-#: gtkpod.glade:7
-msgid "gtkpod"
+#: ../data/gtkpod.desktop.in.h:1
+#, fuzzy
+msgid "GtkPod"
 msgstr "gtkpod"
 
-#: gtkpod.glade:40
-msgid "_File"
-msgstr "_קובץ"
+#: ../data/gtkpod.desktop.in.h:2
+msgid "Manage music and video on an Apple iPod"
+msgstr ""
 
-#: gtkpod.glade:49
-#, fuzzy
-msgid "_Load iPod(s)"
-msgstr "_iPod"
-
-#: gtkpod.glade:69
-msgid "_Save Changes"
+#: ../data/gtkpod.desktop.in.h:3
+msgid "iPod Manager"
 msgstr ""
 
-#: gtkpod.glade:90
-msgid "Add _Files"
-msgstr "הוספת _קבצים"
+#: ../data/gtkpod.glade.h:1
+msgid " "
+msgstr " "
 
-#: gtkpod.glade:111
-msgid "Add _Directory"
-msgstr "הוספת _תיקיות"
+#: ../data/gtkpod.glade.h:2
+msgid "    "
+msgstr "    "
 
-#: gtkpod.glade:132
-msgid "Add _Playlist"
-msgstr "הוספת _רשימות השמעה"
+#: ../data/gtkpod.glade.h:3
+msgid "     "
+msgstr "     "
 
-#: gtkpod.glade:159
-msgid "_Update Tracks from File"
-msgstr "_סנכרון רצועות מקובץ"
+#: ../data/gtkpod.glade.h:4
+msgid "      "
+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 "_רשימות השמעה נבחרות"
+#: ../data/gtkpod.glade.h:5
+msgid "   Sort by:"
+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 "רשומות _כרטיסיה נבחרות"
+#: ../data/gtkpod.glade.h:6
+msgid " <= cts <= "
+msgstr " <= cts <= "
 
-#: 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 "ר_צועות נבחרות"
+#: ../data/gtkpod.glade.h:7
+msgid " Logic: "
+msgstr " לוגיקה:"
 
-#: gtkpod.glade:211
-msgid "Update _mserv Data from File"
-msgstr "עדכון _נתוני mserv מקובץ"
+#: ../data/gtkpod.glade.h:9
+#, no-c-format
+msgid "%A"
+msgstr "%A"
 
-#: gtkpod.glade:263
-#, fuzzy
-msgid "_Synchronize Playlist"
-msgstr "סנכרן הכל"
+#: ../data/gtkpod.glade.h:10
+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:290
-msgid "_Export Tracks from Database"
-msgstr "_ייצא רצועות ממסד הנתונים"
+#: ../data/gtkpod.glade.h:11
+msgid "'aacgain' executable:"
+msgstr "קובץ ריצה של 'aacgain':"
 
-#: gtkpod.glade:342
-msgid "Create _Playlist File"
-msgstr "יצירת קובץ _רשימת השמעה"
+#: ../data/gtkpod.glade.h:12
+msgid "'mp3gain' executable:"
+msgstr "קובץ ריצה של 'mp3gain':"
 
-#: gtkpod.glade:400
-msgid "_Create iPod's Directories"
-msgstr "_יצירת תיקיות iPod"
+#: ../data/gtkpod.glade.h:13
+msgid "(Checked)"
+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 ""
-"מצא קבצים יתומים (קבצים ללא מידע רצועה במסד הנתונים) ורצועות מתנדנדות "
-"(רצועות ללא קבצים מתאימים על ה-iPod)"
+#: ../data/gtkpod.glade.h:14
+msgid "...as icons"
+msgstr "...בתור סמלים"
 
-#: gtkpod.glade:422
-msgid "_Check iPod's Files"
-msgstr "_בדיקת קבצי iPod"
+#: ../data/gtkpod.glade.h:15
+msgid "...as text"
+msgstr "...בתור טקסט"
 
-#: gtkpod.glade:450 gtkpod.glade:12687
-msgid "_Edit"
-msgstr "_עריכה"
+#: ../data/gtkpod.glade.h:16
+msgid "...both as icons and text"
+msgstr "...ביחד גם סמלים וגם טקסט"
 
-#: gtkpod.glade:459 src/context_menus.c:480
-msgid "Edit Track Details"
-msgstr ""
+#: ../data/gtkpod.glade.h:17
+msgid "...entry 'All' in sort tab..."
+msgstr "...רשומה 'הכל' בכרטיסיית המיון..."
 
-#: gtkpod.glade:480
-#, fuzzy
-msgid "Tracks in Selected _Playlist"
-msgstr "_רשימות השמעה נבחרות"
+#: ../data/gtkpod.glade.h:18
+msgid "...master playlist"
+msgstr "...רשימת השמעה ראשית"
 
-#: gtkpod.glade:489
-#, fuzzy
-msgid "Tracks in Selected Tab _Entry"
-msgstr "רשומות _כרטיסיה נבחרות"
+#: ../data/gtkpod.glade.h:20
+#, no-c-format
+msgid "../%A.jpg"
+msgstr "../%A.jpg"
 
-#: gtkpod.glade:511 src/context_menus.c:407
-msgid "Edit Smart Playlist"
-msgstr "ערוך רשימת השמעה חכמה"
+#: ../data/gtkpod.glade.h:21
+msgid "0"
+msgstr "0"
 
-#: gtkpod.glade:520
-msgid "_Delete"
-msgstr ""
+#: ../data/gtkpod.glade.h:22
+msgid "1"
+msgstr "1"
 
-#: gtkpod.glade:541
-#, fuzzy
-msgid "Selected playlist"
-msgstr "_רשימות השמעה נבחרות"
+#: ../data/gtkpod.glade.h:23
+msgid "2"
+msgstr "2"
 
-#: gtkpod.glade:550
-#, fuzzy
-msgid "Selected playlist including tracks from iPod"
-msgstr "נמחקה רשימת השמעה '%s' כולל רצועה %d"
+#: ../data/gtkpod.glade.h:24
+msgid "3"
+msgstr "3"
 
-#: gtkpod.glade:559
-#, fuzzy
-msgid "Selected playlist including tracks from database"
-msgstr "מחק כולל רצועות (מסד נתונים)"
+#: ../data/gtkpod.glade.h:25
+msgid "4"
+msgstr "4"
 
-#: gtkpod.glade:568
-#, fuzzy
-msgid "Selected playlist including tracks from harddisk"
-msgstr "נמחקה רשימת השמעה '%s' כולל רצועה %d מהדיסק הקשיח"
+#: ../data/gtkpod.glade.h:26
+msgid "5"
+msgstr "5"
 
-#: gtkpod.glade:583
-#, fuzzy
-msgid "Selected filter tab entry from playlist"
-msgstr "נמחקה %d רצועה מרשימת ההשמעה '%s'"
+#: ../data/gtkpod.glade.h:27
+msgid ":"
+msgstr ":"
 
-#: gtkpod.glade:592
-#, fuzzy
-msgid "Selected filter tab entry from iPod"
-msgstr "הרצועה נמחקה לגמרי מה-iPod"
+#: ../data/gtkpod.glade.h:28
+msgid "<"
+msgstr ""
 
-#: gtkpod.glade:601
+#: ../data/gtkpod.glade.h:29
 #, fuzzy
-msgid "Selected filter tab entry from database"
-msgstr "נמחקה רצועה ממסד הנתונים המקומי"
+msgid "<b>Account Information</b>"
+msgstr "<b>ווידוא מחיקה</b>"
 
-#: gtkpod.glade:610
-#, fuzzy
-msgid "Selected filter tab entry from harddisk"
-msgstr "נמחקה רצועה אחת מהדיסק הקשיח"
+#: ../data/gtkpod.glade.h:30
+msgid "<b>Adding/Updating/Syncing</b>"
+msgstr "<b>הוספה/עדכון/סנכרון</b>"
 
-#: gtkpod.glade:625
+#: ../data/gtkpod.glade.h:31
 #, fuzzy
-msgid "Selected tracks from playlist"
-msgstr "נמחקה %d רצועה מרשימת ההשמעה '%s'"
+msgid "<b>Audioscrobbler</b>"
+msgstr "<b>סרגל כלים</b>"
 
-#: gtkpod.glade:634
-#, fuzzy
-msgid "Selected tracks from iPod"
-msgstr "הרצועה נמחקה לגמרי מה-iPod"
+#: ../data/gtkpod.glade.h:32
+msgid "<b>Auto-Generated Playlists</b>"
+msgstr "<b>יצירה אוטומטית של רשימות השמעה</b>"
 
-#: gtkpod.glade:643
-#, fuzzy
-msgid "Selected tracks from database"
-msgstr "נמחקה רצועה ממסד הנתונים המקומי"
+#: ../data/gtkpod.glade.h:33
+msgid "<b>Automatically select...</b>"
+msgstr "<b>בחירה אוטומטית...</b>"
 
-#: gtkpod.glade:652
-#, fuzzy
-msgid "Selected tracks from harddisk"
-msgstr "נמחקה רצועה אחת מהדיסק הקשיח"
+#: ../data/gtkpod.glade.h:34
+msgid "<b>Calendar/Contacts/Notes</b>"
+msgstr "<b>יומן/אנשי קשר/תזכורות</b>"
 
-#: gtkpod.glade:671
-msgid "_Create Playlists"
-msgstr "_יצירת רשימות השמעה"
+#: ../data/gtkpod.glade.h:35
+msgid "<b>Coverart</b>"
+msgstr "<b>עטיפות</b>"
 
-#: gtkpod.glade:692
-msgid "Empty Playlist"
-msgstr "רשימת השמעה ריקה"
+#: ../data/gtkpod.glade.h:36
+msgid "<b>Delete Confirmation</b>"
+msgstr "<b>ווידוא מחיקה</b>"
 
-#: gtkpod.glade:701 gtkpod.glade:7379 src/misc_playlist.c:97
-#: src/repository.c:1359
-msgid "Smart Playlist"
-msgstr "רשימת השמעה חכמה"
+#: ../data/gtkpod.glade.h:37
+msgid "<b>Displayed Track Attributes</b>"
+msgstr "<b>מאפייני רצועה נראים</b>"
 
-#: gtkpod.glade:716
-msgid "Random Playlist from Displayed Tracks"
-msgstr "רשימת השמעה אקראית מהרצועות הנראות"
+#: ../data/gtkpod.glade.h:38
+msgid "<b>Examples</b>"
+msgstr "<b>דוגמאות</b>"
 
-#: gtkpod.glade:725
-msgid "Containing Displayed Tracks"
-msgstr "המכילה רצועות נראות"
+#: ../data/gtkpod.glade.h:39
+msgid "<b>Ignore Frequent Words</b>"
+msgstr "<b>התעלם ממילים תכופות</b>"
 
-#: gtkpod.glade:734
-msgid "Containing Selected Tracks"
-msgstr "המכילה רצועות נבחרות"
+#: ../data/gtkpod.glade.h:40
+msgid "<b>Misc</b>"
+msgstr "<b>אחר</b>"
 
-#: gtkpod.glade:743
-msgid "One for each Artist"
-msgstr "אחת לכל אמן"
+#: ../data/gtkpod.glade.h:41
+msgid "<b>Mountpoint and individual repository/playlist options</b>"
+msgstr "<b>אפשרויות עגינה ומאגר/רשימת ניגון פרטנית</b>"
 
-#: gtkpod.glade:752
-msgid "One for each Album"
-msgstr "אחת לכל כותר"
+#: ../data/gtkpod.glade.h:42
+#, fuzzy
+msgid "<b>On-the-fly Conversion</b>"
+msgstr "<b>ווידוא מחיקה</b>"
 
-#: gtkpod.glade:761
-msgid "One for each Genre"
-msgstr "אחת לכל סגנון"
+#: ../data/gtkpod.glade.h:43
+msgid "<b>Play</b>"
+msgstr "<b>נגן</b>"
 
-#: gtkpod.glade:770
-msgid "One for each Composer"
-msgstr "אחת לכל יוצר"
+#: ../data/gtkpod.glade.h:44
+msgid "<b>Playlists</b>"
+msgstr "<b>רשימות השמעה</b>"
 
-#: gtkpod.glade:779
-msgid "One for each Year"
-msgstr "אחת לכל שנה"
+#: ../data/gtkpod.glade.h:45
+msgid "<b>Please select mountpoint and your iPod model</b>"
+msgstr "<b>אנא בחר נקודת עגינה ואת הדגם של ה־iPod</b>"
 
-#: gtkpod.glade:788
-msgid "One for each Rating"
-msgstr "אחת לכל מדרוג"
+#: ../data/gtkpod.glade.h:46
+msgid "<b>Repositories</b>"
+msgstr "<b>מאגרים</b>"
 
-#: gtkpod.glade:797
-msgid "Best Rated Tracks"
-msgstr "הרצועות המדורגות בראש"
+#: ../data/gtkpod.glade.h:47
+msgid "<b>Sort Order</b>"
+msgstr "<b>סדר מיון</b>"
 
-#: gtkpod.glade:806
-msgid "Tracks Most Often Listened To"
-msgstr "הרצועות שהכי מאזינים להן"
+#: ../data/gtkpod.glade.h:48
+msgid "<b>Sort Tabs</b>"
+msgstr "<b>כרטיסיות מיון</b>"
 
-#: gtkpod.glade:815
-msgid "Most Recently Played Tracks"
-msgstr "הרצועות שהושמעו הכי לאחרונה"
+#: ../data/gtkpod.glade.h:49
+msgid "<b>Sync</b>"
+msgstr "<b>סנכרון</b>"
 
-#: gtkpod.glade:824
-msgid "All Tracks Played Since Last Time"
-msgstr "כל הרצועות שהושמעו מאז הפעם האחרונה"
+#: ../data/gtkpod.glade.h:50
+msgid "<b>Synchronization</b>"
+msgstr "<b>סנכרון</b>"
 
-#: gtkpod.glade:833
-msgid "All Tracks Never Listened To"
-msgstr "כל הרצועות שמעולם לא השמיעו אותן"
+#: ../data/gtkpod.glade.h:51
+msgid "<b>Tag Reading</b>"
+msgstr "<b>קריאת תגיות</b>"
 
-#: gtkpod.glade:842
-msgid "All Tracks not Listed in any Playlist"
-msgstr "כל הרצועות שלא מופיעות באף רשימת השמעה"
+#: ../data/gtkpod.glade.h:52
+msgid "<b>Toolbar</b>"
+msgstr "<b>סרגל כלים</b>"
 
-#: gtkpod.glade:861
-msgid "_Sorting"
-msgstr "_מיון"
+#: ../data/gtkpod.glade.h:53
+msgid "<b>Tooltips</b>"
+msgstr "<b>תוויות מידע</b>"
 
-#: gtkpod.glade:883
-msgid "Randomize Current Playlist"
-msgstr "יצירת רשימת השמעה אקראית"
+#: ../data/gtkpod.glade.h:54
+msgid "<b>Track Editing</b>"
+msgstr "<b>עריכת רצועות</b>"
 
-#: gtkpod.glade:892
-msgid "_Save Displayed Track Order"
-msgstr "_שמירת סדר רצועות נראות"
+#: ../data/gtkpod.glade.h:55
+msgid "<b>Volume Normalization</b>"
+msgstr "<b>נרמול עוצמת קול</b>"
 
-#: gtkpod.glade:920
-#, fuzzy
-msgid "Edit Repository/iPod Options"
-msgstr "אפשרויות מיון"
+#: ../data/gtkpod.glade.h:56
+msgid "<b>mserv</b>"
+msgstr "<b>mserv</b>"
 
-#: gtkpod.glade:941
-#, fuzzy
-msgid "Edit _Preferences"
-msgstr "_עריכת העדפות"
+#: ../data/gtkpod.glade.h:57
+msgid ">"
+msgstr ""
 
-#: gtkpod.glade:967
-msgid "_View"
-msgstr "_תצוגה"
+#: ../data/gtkpod.glade.h:58
+msgid "About gtkpod"
+msgstr "אודות gtkpod"
 
-#: gtkpod.glade:976
-msgid "_Toolbar"
-msgstr "_סרגל כלים"
+#: ../data/gtkpod.glade.h:59
+msgid "Add Directories Recursively"
+msgstr "הוספת תיקיות רקורסיבית"
 
-#: gtkpod.glade:986
-msgid "_Tooltips"
-msgstr "_תוויות מידע"
+#: ../data/gtkpod.glade.h:60
+msgid "Add Files or Directories"
+msgstr "הוספת קבצים או תיקיות"
 
-#: gtkpod.glade:996
-msgid "_Info Window"
-msgstr "_חלון מידע"
+#: ../data/gtkpod.glade.h:61
+msgid "Add _Directory"
+msgstr "הוספת _תיקיות"
 
-#: gtkpod.glade:1007
-msgid "_More Sort Tabs"
-msgstr "_יותר כרטיסיות מיון"
+#: ../data/gtkpod.glade.h:62
+msgid "Add _Files"
+msgstr "הוספת _קבצים"
 
-#: gtkpod.glade:1028
-msgid "_Less Sort Tabs"
-msgstr "_פחות כרטיסיות מיון"
+#: ../data/gtkpod.glade.h:63
+msgid "Add _Playlist"
+msgstr "הוספת _רשימות השמעה"
 
-#: gtkpod.glade:1049
-msgid "_Arrange Sort Tabs"
-msgstr "_סדר כרטיסיות מיון"
+#: ../data/gtkpod.glade.h:64
+msgid "Add coverart from file using the following template"
+msgstr "הוסף עטיפה מתוך קובץ תוך שימוש בתבנית הבאה"
 
-#: gtkpod.glade:1062 gtkpod.glade:13297
-msgid "_Tools"
-msgstr "_כלים"
+#: ../data/gtkpod.glade.h:65
+msgid "Add directories recursively"
+msgstr "הוספת תיקיות בצורה רקורסיבית"
 
-#: gtkpod.glade:1071
-msgid "_Play Now"
-msgstr "_נגן עכשיו"
+#: ../data/gtkpod.glade.h:66
+msgid "Add new repository/iPod"
+msgstr "הוסף מאגר/iPod חדש"
 
-#: gtkpod.glade:1123
-msgid "_Enqueue"
-msgstr "_הכנס לתור"
+#: ../data/gtkpod.glade.h:67
+msgid "Add playlist from file"
+msgstr "הוספת רשימת השמעה מקובץ"
 
-#: gtkpod.glade:1181
-msgid "_Normalize Volume"
-msgstr "_נרמל עוצמת קול"
+#: ../data/gtkpod.glade.h:68 ../src/display_sorttabs.c:3232
+#: ../src/display_tracks.c:1996
+msgid "Added"
+msgstr "הוספו"
 
-#: gtkpod.glade:1217
-msgid "_Displayed Tracks"
-msgstr "_הראה רצועות"
+#: ../data/gtkpod.glade.h:69
+msgid "Advanced Sorting Options"
+msgstr "אפשרויות מיון מתקדמות"
 
-#: gtkpod.glade:1226
-msgid "_All Tracks"
-msgstr "_כל הרצועות"
+#. 0
+#: ../data/gtkpod.glade.h:70 ../src/display_sorttabs.c:2954
+#: ../src/display_spl.c:84 ../src/misc_conversion.c:60
+msgid "Album"
+msgstr "כותר"
 
-#: gtkpod.glade:1235
-msgid "_Newly Added Tracks"
-msgstr "_רצועות חדשות שהוספו"
+#: ../data/gtkpod.glade.h:71
+#, fuzzy
+msgid "Album Art"
+msgstr "כותר"
 
-#: gtkpod.glade:1254
-msgid "Synchronise Contacts, Calendar and Notes"
-msgstr "סנכרן אנשי קשר, יומן ופתקים"
+#: ../data/gtkpod.glade.h:72
+msgid "All (AND)"
+msgstr "וגם (הכל)"
 
-#: gtkpod.glade:1255
-msgid "Synchronize All"
-msgstr "סנכרן הכל"
+#: ../data/gtkpod.glade.h:73
+msgid "All Tracks Never Listened To"
+msgstr "כל הרצועות שמעולם לא השמיעו אותן"
 
-#: gtkpod.glade:1264
-msgid "Synchronize Contacts"
-msgstr "סנכרן אנשי קשר"
+#: ../data/gtkpod.glade.h:74
+msgid "All Tracks Played Since Last Time"
+msgstr "כל הרצועות שהושמעו מאז הפעם האחרונה"
 
-#: gtkpod.glade:1273
-msgid "Synchronize Calendar"
-msgstr "סנכרן יומן"
+#: ../data/gtkpod.glade.h:75
+msgid "All Tracks not Listed in any Playlist"
+msgstr "כל הרצועות שלא מופיעות באף רשימת השמעה"
 
-#: gtkpod.glade:1282
-msgid "Synchronize Notes"
-msgstr "סנכרן פתקים"
+#: ../data/gtkpod.glade.h:76
+msgid "Also include tracks never played in \"Best Rated\" playlist"
+msgstr "כלול גם רצועות שלעולם לא נוגנו ברשימת השמעה \"הדירוג הכי גבוה\""
 
-#: gtkpod.glade:1295
-msgid "_Help"
-msgstr "_עזרה"
+#: ../data/gtkpod.glade.h:77
+msgid "Always write ID3v2.4 tags (only applies to MP3)"
+msgstr "כתוב תמיד תגיות ID3v2.4 (תקף רק ל-MP3)"
 
-#: gtkpod.glade:1304
-msgid "_About"
-msgstr "_אודות"
+#: ../data/gtkpod.glade.h:78
+msgid "Any (OR)"
+msgstr "או (כל אחד)"
 
-#: gtkpod.glade:1344
+#: ../data/gtkpod.glade.h:79 ../src/display_sorttabs.c:2951
+#: ../src/display_spl.c:85 ../src/misc_conversion.c:61
+msgid "Artist"
+msgstr "אמן"
+
+#: ../data/gtkpod.glade.h:80
 msgid ""
-"Try to load contents of all connected iPods. For each iPod a separate "
-"repository must be set up."
+"As a last resort set the following tags to the\n"
+"filename if they are (still) empty:"
 msgstr ""
+"בתור אפשרות אחרונה קבע את התגיות לשם הקובץ\n"
+"אם הן (עדיין) ריקות:"
 
-#: gtkpod.glade:1345
-#, fuzzy
-msgid "Load iPod(s)"
-msgstr "_iPod"
+#: ../data/gtkpod.glade.h:82
+msgid "Ascending"
+msgstr "עולה"
 
-#: gtkpod.glade:1362
-msgid "Write all changes made to the disk and the iPod(s)."
+#: ../data/gtkpod.glade.h:83
+msgid ""
+"Audio/Video\n"
+"Audio\n"
+"Video\n"
+"Podcast\n"
+"Video Podcast\n"
+"Audiobook\n"
+"Music Video\n"
+"TV Show\n"
+"TV Show & Music Video\n"
 msgstr ""
 
-#: gtkpod.glade:1363 src/context_menus.c:507
-msgid "Save Changes"
+#: ../data/gtkpod.glade.h:93
+msgid "Auto Store"
+msgstr "שמירה אוטומטית"
+
+#: ../data/gtkpod.glade.h:94
+msgid ""
+"Automatically start displaying tracks that match the criteria entered above. "
+"If not selected, you must press 'Display' to start displaying."
 msgstr ""
+"הצג אוטומטית רצועות שמתאימות לקריטריונים המוכנסים למעלה. אם אפשרות זו לא "
+"נבחרה, חובה עליך ללחוץ 'תצוגה' על מנת להראות את הרצועות."
 
-#: gtkpod.glade:1380
-msgid "Add Files or Directories"
-msgstr "הוספת קבצים או תיקיות"
+#: ../data/gtkpod.glade.h:95
+msgid "Before removing playlists or tracks from a playlist"
+msgstr "לפני הסרת רשימות השמעה או רצועות מרשימת השמעה"
 
-#: gtkpod.glade:1381
-msgid "Files"
-msgstr "קבצים"
+#: ../data/gtkpod.glade.h:96
+msgid "Before removing tracks from the harddisk"
+msgstr "לפני הסרת רצועות מהדיסק הקשיח"
 
-#: gtkpod.glade:1398
-msgid "Add Directories Recursively"
-msgstr "הוספת תיקיות רקורסיבית"
+#: ../data/gtkpod.glade.h:97
+msgid "Before removing tracks from the iPod"
+msgstr "לפני הסרת רצועות מה-iPod"
 
-#: gtkpod.glade:1399
-msgid "Dirs"
-msgstr "תיקיות"
+#: ../data/gtkpod.glade.h:98
+msgid "Before removing tracks from the local database"
+msgstr "לפני הסרת רצועות ממסד הנתונים המקומי"
 
-#: gtkpod.glade:1416
-msgid "Add playlist from file"
-msgstr "הוספת רשימת השמעה מקובץ"
+#: ../data/gtkpod.glade.h:99
+msgid "Best Rated Tracks"
+msgstr "הרצועות המדורגות בראש"
 
-#: gtkpod.glade:1417 src/display_spl.c:105
-msgid "Playlist"
-msgstr "רשימת השמעה"
+#: ../data/gtkpod.glade.h:100
+msgid "Browse"
+msgstr "סייר"
 
-#: gtkpod.glade:1434
-msgid "Create New Playlist"
-msgstr "יצירת רשימת השמעה חדשה"
+#: ../data/gtkpod.glade.h:101
+#, fuzzy
+msgid "Cache directory:"
+msgstr "הוספת _תיקיות"
 
-#: gtkpod.glade:1435
-msgid "New PL"
-msgstr "ר\"ה חדשה"
+#: ../data/gtkpod.glade.h:102
+msgid "Calendar"
+msgstr "יומן"
 
-#: gtkpod.glade:1451
-msgid "Stop Display Update"
-msgstr "עצור עדכון תצוגה"
+#: ../data/gtkpod.glade.h:103
+msgid "Calendar sync command:"
+msgstr "פקודת סנכרון ליומן:"
 
-#: gtkpod.glade:1452
-msgid "Stop"
-msgstr "עצור"
+#: ../data/gtkpod.glade.h:104
+msgid "Call automatically when synchronizing iTunesDB"
+msgstr "קרא אוטומטית בזמן סנכרון iTunesDB"
 
-#: gtkpod.glade:1625
-msgid "About gtkpod"
-msgstr "אודות gtkpod"
+#: ../data/gtkpod.glade.h:105
+msgid "Category: "
+msgstr "קטגוריה:"
 
-#: gtkpod.glade:1752
-msgid "Credits"
-msgstr "קרדיט"
+#: ../data/gtkpod.glade.h:106
+msgid ""
+"Change all tracks\n"
+"simultaneously"
+msgstr ""
+"שנה את כל הרצועות\n"
+"בבת אחת"
 
-#: gtkpod.glade:1810
-msgid "Translators"
-msgstr "מתרגמים"
+#: ../data/gtkpod.glade.h:108
+msgid "Check for existing files when copying from iPod."
+msgstr "בדוק קבצים קיימים בזמן העתקה מה-iPod."
 
-#: gtkpod.glade:1868
-msgid "special_sorttab -- Don't translate!"
-msgstr "special_sorttab -- Don't translate!"
+#: ../data/gtkpod.glade.h:109
+msgid "Command for 'Enqueue':"
+msgstr "פקודה עבור 'הכנס לתור':"
 
-#: gtkpod.glade:1903
-msgid " Logic: "
-msgstr " לוגיקה:"
+#: ../data/gtkpod.glade.h:110
+msgid "Command for 'Play now':"
+msgstr "פקודה עבור 'נגן עכשיו':"
 
-#: gtkpod.glade:1929
-msgid "Any (OR)"
-msgstr "או (כל אחד)"
+#. 5
+#: ../data/gtkpod.glade.h:111 ../src/display_spl.c:97
+#: ../src/misc_conversion.c:65
+msgid "Composer"
+msgstr "יוצר"
 
-#: gtkpod.glade:1948
-msgid "All (AND)"
-msgstr "וגם (הכל)"
+#: ../data/gtkpod.glade.h:112
+msgid "Confirm before removing tracks from the iPod or repository"
+msgstr "אשר לפני הסרת רצועות מה-iPod או המאגר"
 
-#: gtkpod.glade:2001
-msgid "0"
-msgstr "0"
+#: ../data/gtkpod.glade.h:113
+msgid ""
+"Confirm before removing tracks from the iPod or repository\n"
+"when syncing playlists"
+msgstr ""
+"אשר לפני הסרת רצועות מה־iPod או המאגר\n"
+"בזמן סנכרון רשימות ההשמעה"
 
-#: gtkpod.glade:2020
-msgid "1"
-msgstr "1"
+#: ../data/gtkpod.glade.h:115
+msgid "Confirm lists of directories"
+msgstr "וודא רשימה של תיקיות"
 
-#: gtkpod.glade:2039
-msgid "2"
-msgstr "2"
+#: ../data/gtkpod.glade.h:116
+msgid "Contacts sync command:"
+msgstr "פקודת סנכרון לאנשי קשר:"
 
-#: gtkpod.glade:2058
-msgid "3"
-msgstr "3"
+#: ../data/gtkpod.glade.h:117
+msgid "Containing Displayed Tracks"
+msgstr "המכילה רצועות נראות"
 
-#: gtkpod.glade:2077
-msgid "4"
-msgstr "4"
+#: ../data/gtkpod.glade.h:118
+msgid "Containing Selected Tracks"
+msgstr "המכילה רצועות נבחרות"
 
-#: gtkpod.glade:2096
-msgid "5"
-msgstr "5"
+#: ../data/gtkpod.glade.h:119
+msgid "Conversion Progress Display"
+msgstr ""
 
-#: gtkpod.glade:2135
-msgid "Select '0' for no lower limit."
-msgstr "בחר '0' עבור ביטול גבול תחתון."
+#: ../data/gtkpod.glade.h:120
+msgid "Cover"
+msgstr "עטיפה"
 
-#: gtkpod.glade:2156
-msgid " <= cts <= "
-msgstr " <= cts <= "
+#: ../data/gtkpod.glade.h:121
+msgid "Create New Playlist"
+msgstr "יצירת רשימת השמעה חדשה"
 
-#: gtkpod.glade:2181
-msgid "Select '-1' for no upper limit."
-msgstr "בחר '-1' עבור ביטול גבול עליון."
+#: ../data/gtkpod.glade.h:122
+msgid "Create Repository"
+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 ""
-"תבנית 'DD/MM/YYYY HH:MM < d < DD/MM/YYYY HH:MM' או דומה. לחץ 'enter' בסיום."
+#: ../data/gtkpod.glade.h:123
+msgid "Create _Playlist File"
+msgstr "יצירת קובץ _רשימת השמעה"
 
-#: gtkpod.glade:2270 gtkpod.glade:2347 gtkpod.glade:2517 gtkpod.glade:2696
-msgid "Calendar"
-msgstr "יומן"
+#: ../data/gtkpod.glade.h:124
+msgid "Credits"
+msgstr "קרדיט"
 
-#: gtkpod.glade:2372
-msgid "Specify interval"
-msgstr "ציין מרווח"
+#: ../data/gtkpod.glade.h:125
+msgid "Currently only rating is supported."
+msgstr "נכון לעכשיו רק המדרוג נתמך."
 
-#: gtkpod.glade:2374 src/display_spl.c:98 src/misc_conversion.c:78
-msgid "Playcount"
-msgstr "מספור השמעות"
+#: ../data/gtkpod.glade.h:126
+msgid "Delete repository"
+msgstr "מחק מהמאגר"
 
-#: gtkpod.glade:2397 src/display_spl.c:101 src/misc_conversion.c:79
-msgid "Rating"
-msgstr "מדרוג"
+#: ../data/gtkpod.glade.h:127
+#, fuzzy
+msgid ""
+"Delete tracks that are no longer present from the\n"
+"iPod or repository"
+msgstr "מחק רצועות שכבר לא קיימות מה־iPod או המאגר"
 
-#: gtkpod.glade:2420 src/display_songs.c:1951
-msgid "Played"
-msgstr "הושמע"
+#: ../data/gtkpod.glade.h:129
+msgid "Deleted tracks"
+msgstr "רצועות נמחקות"
 
-#: gtkpod.glade:2443 src/display_songs.c:1954
-msgid "Modified"
-msgstr "שונה"
+#: ../data/gtkpod.glade.h:130
+msgid "Descending"
+msgstr "יורד"
 
-#: gtkpod.glade:2542 src/display_songs.c:1957 src/display_sorttabs.c:3218
-msgid "Added"
-msgstr "הוספו"
+#: ../data/gtkpod.glade.h:131
+msgid "Details"
+msgstr "פרטים"
 
-#: gtkpod.glade:2587
-msgid "Display tracks that match the criteria entered above."
-msgstr "הצג רצועות המתאימות לקריטריונים המוכנסים למעלה."
+#: ../data/gtkpod.glade.h:133
+#, no-c-format
+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:2630 gtkpod.glade:12009
-msgid "_Display"
-msgstr "_תצוגה"
+#: ../data/gtkpod.glade.h:135
+#, no-c-format
+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:2666
+#: ../data/gtkpod.glade.h:137
+#, no-c-format
 msgid ""
-"Automatically start displaying tracks that match the criteria entered above. "
-"If not selected, you must press 'Display' to start displaying."
+"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 ""
-"הצג אוטומטית רצועות שמתאימות לקריטריונים המוכנסים למעלה. אם אפשרות זו לא "
-"נבחרה, חובה עליך ללחוץ 'תצוגה' על מנת להראות את הרצועות."
+"קובע את שם הקובץ עם העטיפה. אתה יכול לציין מספר תבניות מופרדות על ידי "
+"פסיקים, שיבוצעו לפי הסדר.אמן: a%, כותר: A%, יוצר: c%, שם הרצועה: t%, סגנון: G"
+"%, מספר רצועה: T%, מספר תקליטור: C%, שנה: Y%, שם מקורי (דרוש מידע מורחב): o"
+"%, שם מקורי ללא סיומת: %O, רשימת ההשמעה הנוכחית: p%, הסימן '%': %%."
 
-#: gtkpod.glade:2668
-msgid "Start display automatically"
-msgstr "התחל תצוגה אוטומטית"
+#: ../data/gtkpod.glade.h:138
+msgid ""
+"Directories to sync with are determined from the filenames of the tracks in "
+"the playlist."
+msgstr "התיקיות לסנכרון נקבעות לפי שמות הקבצים של הרצועות ברשימת ההשמעה."
 
-#: gtkpod.glade:2743
-msgid "Sorttab: "
-msgstr "כרטיסייה מיון:"
+#: ../data/gtkpod.glade.h:139
+msgid "Dirs"
+msgstr "תיקיות"
 
-#: gtkpod.glade:2787
-msgid "     "
-msgstr "     "
+#: ../data/gtkpod.glade.h:140
+msgid "Display a list of tracks that could actually be updated."
+msgstr "הצג רשימה של רצועות שאפשר לעדכן אותן."
 
-#: gtkpod.glade:2813
-msgid "Category: "
-msgstr "קטגוריה:"
+#: ../data/gtkpod.glade.h:141
+msgid "Display a list of tracks that could not be updated."
+msgstr "הצג רשימה של רצועות שאי אפשר לעדכן אותן."
 
-#: gtkpod.glade:2894
-msgid "Please specify a time interval"
-msgstr "אנא ציין מרווח זמן"
+#: ../data/gtkpod.glade.h:142
+msgid "Display conversion log"
+msgstr ""
 
-#: gtkpod.glade:2943
-msgid "Lower Margin"
-msgstr "שוליים תחתונים"
+#: ../data/gtkpod.glade.h:143
+msgid "Display info about detected duplicates"
+msgstr "הצג מידע אודות כפילויות מזוהות"
 
-#: gtkpod.glade:2994 gtkpod.glade:3208
-msgid "Time:"
-msgstr "זמן:"
+#: ../data/gtkpod.glade.h:144
+msgid "Display info about non-updated tracks"
+msgstr "הצג מידע על רצועות שלא עודכנו בזמן סנכרון תיקיות"
 
-#: gtkpod.glade:3037 gtkpod.glade:3251
-msgid ":"
-msgstr ":"
+#: ../data/gtkpod.glade.h:145
+msgid "Display info about updated tracks"
+msgstr "הצג מידע אודות רצועות מעודכנות"
 
-#: gtkpod.glade:3114
-msgid "No lower margin"
-msgstr "ללא שוליים תחתונים"
+#: ../data/gtkpod.glade.h:146
+msgid "Display messages and warnings at startup"
+msgstr "הראה הודעות ואזהרות בתחילת התוכנית"
 
-#: gtkpod.glade:3157
-msgid "Upper margin"
-msgstr "שוליים עליונים"
+#: ../data/gtkpod.glade.h:147
+msgid ""
+"Display the list of duplicates that have been detected after adding files."
+msgstr "הצג את רשימת הכפילויות שזוהו אחרי הוספת הקבצים."
 
-#: gtkpod.glade:3328
-msgid "No upper margin"
-msgstr "ללא שוליים עליונים"
+#: ../data/gtkpod.glade.h:148
+msgid "Display toolbar..."
+msgstr "הראה סרגל כלים..."
 
-#: gtkpod.glade:3426
-msgid "Sorting Options"
-msgstr "אפשרויות מיון"
+#: ../data/gtkpod.glade.h:149
+msgid "Display tooltips in main window"
+msgstr "הצג תוויות מידע בחלון הראשי"
 
-#: gtkpod.glade:3458
-msgid "<b>Sort Order</b>"
-msgstr "<b>סדר מיון</b>"
+#: ../data/gtkpod.glade.h:150
+msgid "Display tooltips in prefs window"
+msgstr "הצג תוויות מידע בחלון האפשרויות"
 
-#: gtkpod.glade:3489 gtkpod.glade:4762 gtkpod.glade:11638 gtkpod.glade:12134
-#: gtkpod.glade:12249
-msgid "    "
-msgstr "    "
+#: ../data/gtkpod.glade.h:151
+msgid "Display tracks that match the criteria entered above."
+msgstr "הצג רצועות המתאימות לקריטריונים המוכנסים למעלה."
 
-#: gtkpod.glade:3521
+#: ../data/gtkpod.glade.h:152
 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."
+"Displayed\n"
+"Tracks"
 msgstr ""
-"על מנת לשמור את סדר הרצועות הנראות אל ה-iPod בחר 'שמור סדר רצועות נראות' "
-"מתפריט ה-'עריכה' או בחר 'שמירה אוטומטית' למטה."
+"רצועות\n"
+"מוצגות"
 
-#: gtkpod.glade:3905
-msgid "Ascending"
-msgstr "עולה"
+#: ../data/gtkpod.glade.h:154
+msgid "Don't allow file duplication"
+msgstr "אל תרשה כפילויות של קבצים"
 
-#: gtkpod.glade:3953
-msgid "Descending"
-msgstr "יורד"
+#: ../data/gtkpod.glade.h:155
+msgid "Don't automatically sync on startup"
+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."
+#: ../data/gtkpod.glade.h:156
+msgid "Download Cover"
 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 ""
-"אם יסומן, המיון יבחין בין אותיות קטנות לגדולות. שים לב שהבחנה זאת לא תעבוד "
-"היטב ברוב ערכות התווים."
+#: ../data/gtkpod.glade.h:157
+#, fuzzy
+msgid "Duplicate Recognition is based on a (modified) sha1 hash over the file."
+msgstr "זיהוי כפילויות מתבסס על חישוב קוד ערבוב md5 על הקובץ."
 
-#: gtkpod.glade:4685
-msgid "Sorting case sensitive"
-msgstr "מיון עם תלות בגודל (case)"
+#: ../data/gtkpod.glade.h:158
+msgid "Edit Repository/iPod Options"
+msgstr "ערוך מאגר/אפשרויות iPod"
 
-#: gtkpod.glade:4731
-msgid "<b>Ignore Frequent Words</b>"
-msgstr "<b>התעלם ממילים תכופות</b>"
+#: ../data/gtkpod.glade.h:159 ../src/context_menus.c:659
+msgid "Edit Smart Playlist"
+msgstr "ערוך רשימת השמעה חכמה"
 
-#: gtkpod.glade:4831
-msgid "Ignore these words when at the beginning of the following fields:"
-msgstr "התעלם ממילים אלו כאשר הן מופיעות בתחילת השדות הבאים:"
+#: ../data/gtkpod.glade.h:160 ../src/context_menus.c:746
+msgid "Edit Track Details"
+msgstr "ערוך פרטי רצועה"
 
-#: gtkpod.glade:5106
-msgid "gtkpod Info"
-msgstr "מידע gtkpod"
+#: ../data/gtkpod.glade.h:161
+msgid "Edit _Preferences"
+msgstr "עריכת _העדפות"
 
-#: gtkpod.glade:5427 gtkpod.glade:5514 gtkpod.glade:5543 gtkpod.glade:6261
-#: gtkpod.glade:6406
-msgid "      "
-msgstr "      "
+#: ../data/gtkpod.glade.h:162
+msgid "Effective free space"
+msgstr "מקום פנוי אפקטיבי"
 
-#: gtkpod.glade:5832
-msgid "Number of tracks"
-msgstr "מספר רצועות"
+#: ../data/gtkpod.glade.h:163
+msgid "Empty Playlist"
+msgstr "רשימת השמעה ריקה"
 
-#: gtkpod.glade:5862
-msgid "Play time"
-msgstr "זמן השמעה"
+#: ../data/gtkpod.glade.h:164
+msgid "Exclude file mask(s)"
+msgstr "אל תכלול מסכה(ות) קבצים"
 
-#: gtkpod.glade:5893
+#: ../data/gtkpod.glade.h:165
 msgid "File size"
 msgstr "גודל קובץ"
 
-#: gtkpod.glade:5923
-msgid "Number of playlists"
-msgstr "מספר רשימות ההשמעה"
-
-#: gtkpod.glade:5953
-msgid "Deleted tracks"
-msgstr "רצועות נמחקות"
-
-#: gtkpod.glade:5983
+#: ../data/gtkpod.glade.h:166
 msgid "File size (deleted)"
 msgstr "גודל קובץ (נמחק)"
 
-#: gtkpod.glade:6013
-msgid "Non-transferred tracks"
-msgstr "רצועות לא מועברות"
-
-#: gtkpod.glade:6043
+#: ../data/gtkpod.glade.h:167
 msgid "File size (non-transferred)"
 msgstr "גודל קובץ (לא-מועבר)"
 
-#: gtkpod.glade:6073
-msgid "Effective free space"
-msgstr "מקום פנוי אפקטיבי"
+#: ../data/gtkpod.glade.h:168
+msgid "Filename Format: "
+msgstr "תבנית הקובץ:"
 
-#: gtkpod.glade:6103
+#: ../data/gtkpod.glade.h:169
+msgid "Files"
+msgstr "קבצים"
+
+#: ../data/gtkpod.glade.h:170
+#, fuzzy
 msgid ""
-"Total\n"
-"(iPod)"
+"Find orphan files (files with no track info in DB) and dangling tracks "
+"(tracks with no corresponding files on iPod)"
 msgstr ""
-"סך הכל\n"
-"(iPod)"
+"מצא קבצים יתומים (קבצים ללא מידע רצועה במסד הנתונים) ורצועות מתנדנדות "
+"(רצועות ללא קבצים מתאימים על ה-iPod)"
 
-#: gtkpod.glade:6135
-msgid ""
-"Selected\n"
-"Playlist"
+#: ../data/gtkpod.glade.h:171
+#, fuzzy
+msgid "First try <i>folder.jpg</i>, then <i><artist>.jpg</i>"
 msgstr ""
-"רשימות השמעה\n"
-"נבחרות"
+"תחילה נסה את try <i>folder.jpg</i>, ואחר כך את <i>&lt;artist&gt;.jpg</i>"
 
-#: gtkpod.glade:6167
-msgid ""
-"Displayed\n"
-"Tracks"
+#: ../data/gtkpod.glade.h:172
+msgid "Flac with :"
 msgstr ""
-"רצועות\n"
-"מוצגות"
 
-#: gtkpod.glade:6199
+#: ../data/gtkpod.glade.h:174
+#, no-c-format
 msgid ""
-"Selected\n"
-"Tracks"
+"For example, 'xmms %s' will clear xmms' current playlist, add the selected "
+"tracks and start playing."
 msgstr ""
-"רצועות\n"
-"נבחרות"
+"לדוגמא, 'xmms %s' ינקה את רשימת ההשמעה הנוכחית של xmms, יוסיף את הרצועות "
+"הנבחרות ויתחיל לנגן."
 
-#: gtkpod.glade:6231
+#: ../data/gtkpod.glade.h:176
+#, no-c-format
 msgid ""
-"Total\n"
-"(local)"
+"For example, 'xmms -e %s' will append (enqueue) the selected tracks to xmms' "
+"current playlist."
 msgstr ""
-"סך הכל\n"
-"(מקומי)"
+"לדוגמא, 'xmms -e %s' יוסיף את הרצועות הנבחרות לרשימת ההשמעה הנוכחית ב-xmms."
 
-#: gtkpod.glade:6651
-msgid "label21"
-msgstr "label21"
+#: ../data/gtkpod.glade.h:177 ../src/display_sorttabs.c:2957
+#: ../src/display_spl.c:89 ../src/misc_conversion.c:63
+msgid "Genre"
+msgstr "סגנון"
 
-#: gtkpod.glade:6746
-msgid "Never show this dialogue again"
-msgstr "אל תראה חלון דו-שיח זה בעתיד"
+#: ../data/gtkpod.glade.h:178
+msgid "Group artists on compilation CDs"
+msgstr "קבץ אמנים בתקליטורי שיצרת"
 
-#: gtkpod.glade:6791 gtkpod.glade:7135
-msgid "window1"
-msgstr "חלון1"
+#: ../data/gtkpod.glade.h:179
+#, fuzzy
+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:6850
-msgid "_M3U"
-msgstr "_M3U"
+#: ../data/gtkpod.glade.h:180 ../src/context_menus.c:682
+#: ../src/context_menus.c:700 ../src/context_menus.c:824
+msgid "I'm sure"
+msgstr "אני בטוח"
 
-#: gtkpod.glade:6869
-msgid "_PLS"
-msgstr "_PLS"
-
-#: gtkpod.glade:6907
+#: ../data/gtkpod.glade.h:181
 msgid ""
 "If available, the local copy of the track is referenced in the playlist. "
 "Otherwise the file on the iPod is used."
@@ -783,211 +791,193 @@
 "אם זמין, העותק המקומי של הרצועה יקושר מרשימת ההשמעה. אחרת נשתמש בקובץ על ה-"
 "iPod."
 
-#: gtkpod.glade:6909
-msgid "_Prefer Local"
-msgstr "_העדף מקומי"
+#: ../data/gtkpod.glade.h:182
+msgid "If both options are selected, embedded APIC data takes precedence."
+msgstr "אם שתי האפשרויות נבחרו, מידע מוכל בתוך ה־APIC יהיה בעל עדיפות ראשונה."
 
-#: gtkpod.glade:6927
+#: ../data/gtkpod.glade.h:183
 msgid ""
-"The local copy of the track is referenced in the playlist. If the track is "
-"not available locally, an error message is displayed."
+"If checked, sorting will be case sensitive. Please note that case sensitive "
+"sorting will not work well with most charsets."
 msgstr ""
-"העותק המקומי של הרצועה יקושר מרשימת ההשמעה. אם הרצועה לא זמינה מקומית, תוצג "
-"הודעת שגיאה."
+"אם יסומן, המיון יבחין בין אותיות קטנות לגדולות. שים לב שהבחנה זאת לא תעבוד "
+"היטב ברוב ערכות התווים."
 
-#: gtkpod.glade:6929
-msgid "_Local"
-msgstr "_מקומי"
+#: ../data/gtkpod.glade.h:184
+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:6948
-msgid "The track on the iPod is referenced in the playlist file."
-msgstr "הרצועה על ה-iPod מקושרת בקובץ רשימת ההשמעה."
+#: ../data/gtkpod.glade.h:185
+msgid "If you check this, gtkpod will descend into subdirectories recursively."
+msgstr "אם תסמן אופציה זו, gtkpod יכנס לתוך תיקיות משנה רקורסיבית."
 
-#: gtkpod.glade:6950
-msgid "_iPod"
-msgstr "_iPod"
+#: ../data/gtkpod.glade.h:186
+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:6983
-msgid "Playlist type:"
-msgstr "סוג רשימת ההשמעה:"
-
-#: gtkpod.glade:7012
-msgid "Source:"
-msgstr "מקור:"
-
-#: gtkpod.glade:7055
-msgid "Template for info field: "
-msgstr "תבנית עבור שדה המידע:"
-
-#: gtkpod.glade:7080
+#: ../data/gtkpod.glade.h:187
 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 '%': %%."
+"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 ""
-"קובע איך מחרוזת המידע תבנה, לדוגמה:\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
+#: ../data/gtkpod.glade.h:188
 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 '%': %%."
+"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 ""
-"קובע את שם הרצועה שאותה תעתיק מה-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 " "
+#: ../data/gtkpod.glade.h:189
+msgid "Ignore these words when at the beginning of the following fields:"
+msgstr "התעלם ממילים אלו כאשר הן מופיעות בתחילת השדות הבאים:"
 
-#: gtkpod.glade:7225
+#: ../data/gtkpod.glade.h:190
 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."
+"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 ""
-"באופן רגיל ערכת התווים המצוינת כאשר מייבאים לראשונה את הרצועות תהיה זו שיעשה "
-"בה שימוש לעדכן את שם הקובץ. אם סמנת אפשרות זו תוכל לבחור ערכת תווים אחרת "
-"בעזרת בוחר ערכת התווים (העדפות 'הוספה/עדכון/סנכרון'). הערה: מידע ערכת התווים "
-"נשמר במידע המורחב (ראה העדפות כתיבה ל-iTunesDB). רצועות שיובאו לפני גרסה "
-"0.51 לא תהיה להם ערכת תווים שמורה. במקום זאת ערכת התווים המצוינת למעלה תהיה "
-"זו שנשתמש בה."
+"על מנת לשמור את סדר הרצועות הנראות אל ה-iPod בחר 'שמור סדר רצועות נראות' "
+"מתפריט ה-'עריכה' או בחר 'שמירה אוטומטית' למטה."
 
-#: gtkpod.glade:7227
+#: ../data/gtkpod.glade.h:191
+msgid "Initialize iPod"
+msgstr "אתחל iPod"
+
+#: ../data/gtkpod.glade.h:192
 msgid ""
-"Use selected charset (Preferences/'Adding/Updating/ Syncing')\n"
-"for this filename."
+"Insert before\n"
+"Insert after"
 msgstr ""
-"השתמש בערכת התווים הנבחרת (אפשרויות/'הוספה/עדכון/סנכרון')\n"
-"עבור הקובץ הזה."
+"הכנס לפני\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."
+#: ../data/gtkpod.glade.h:194
+msgid "Keeps all compilation CDs grouped together in the artists sort tab."
 msgstr ""
-"בזמן ההעתקה מה-iPod לא מתבצעת בדיקה האם קובץ היעד קיים. אפשר אפשרות זו "
-"והתכנית תבדוק האם גודלו של קובץ היעד הוא זהה לקובץ שעל ה-iPod. אם כן נדלג על "
-"הקובץ, ובכך נאפשר סנכרון מהיר של תוכן ה-iPod."
+"שמור את כל תקליטורי היצירות מקובצים ביחד בתוך כרטיסיות המיון של האמנים."
 
-#: gtkpod.glade:7248
-msgid "Check for existing files when copying from iPod."
-msgstr "בדוק קבצים קיימים בזמן העתקה מה-iPod."
+#: ../data/gtkpod.glade.h:195
+msgid "Live _updating"
+msgstr "עדכון _חי"
 
-#: gtkpod.glade:7423
-msgid "Playlist name:"
-msgstr "שם רשימת ההשמעה:"
+#: ../data/gtkpod.glade.h:196
+msgid "Load iPod(s)"
+msgstr "טען iPod(ים)"
 
-#: gtkpod.glade:7492
+#: ../data/gtkpod.glade.h:197
+msgid "Lower Margin"
+msgstr "שוליים תחתונים"
+
+#: ../data/gtkpod.glade.h:198
+msgid "M4A with :"
+msgstr ""
+
+#: ../data/gtkpod.glade.h:199
+msgid "MP3 with :"
+msgstr ""
+
+#: ../data/gtkpod.glade.h:200
 msgid "Match al_l of the following"
 msgstr "התאם את _כל הבאים"
 
-#: gtkpod.glade:7511
+#: ../data/gtkpod.glade.h:201
 msgid "Match an_y of the following"
 msgstr "התאם _כל אחד מן הבאים"
 
-#: gtkpod.glade:7531
-msgid "_Ignore rules"
-msgstr "_התעלם מחוקים"
+#: ../data/gtkpod.glade.h:202
+msgid "Match only _checked tracks"
+msgstr "התאם רק רצועות _מסומנות"
 
-#: gtkpod.glade:7601
-msgid "Rules"
-msgstr "חוקים"
+#: ../data/gtkpod.glade.h:203
+msgid "Maximum number of background threads:"
+msgstr ""
 
-#: gtkpod.glade:7638
-msgid "_Limit to"
-msgstr "_הגבל ל"
+#: ../data/gtkpod.glade.h:204
+msgid "Maximum size of cache directory (in GB):"
+msgstr ""
 
-#: gtkpod.glade:7689
-msgid "   Sort by:"
-msgstr "   מיין על פי:"
+#: ../data/gtkpod.glade.h:205
+msgid "Model:"
+msgstr "דגם:"
 
-#: gtkpod.glade:7741
-msgid "Match only _checked tracks"
-msgstr "התאם רק רצועות _מסומנות"
+#: ../data/gtkpod.glade.h:206 ../src/display_tracks.c:1993
+msgid "Modified"
+msgstr "שונה"
 
-#: gtkpod.glade:7773
-msgid "Live _updating"
-msgstr "עדכון _חי"
+#: ../data/gtkpod.glade.h:207
+msgid "Most Recently Played Tracks"
+msgstr "הרצועות שהושמעו הכי לאחרונה"
 
-#: gtkpod.glade:7864
-msgid "Preferences"
-msgstr "הגדרות"
+#: ../data/gtkpod.glade.h:208
+msgid "Music Root:"
+msgstr "שורש המוזיקה:"
 
-#: gtkpod.glade:7927
-msgid "<b>Mountpoint and individual repository/playlist options</b>"
+#: ../data/gtkpod.glade.h:209
+msgid ""
+"Music files can have images embedded in the APIC tag. Currently this is only "
+"supported for MP3 files."
 msgstr ""
+"קבצי מוסיקה יכולים להכיל תמונות בתוך תווית ה־APIC. כרגע זה רק נתמך על ידי "
+"קבצי MP3."
 
-#: gtkpod.glade:7990
-msgid "Set mountpoint or edit repository options"
-msgstr ""
+#: ../data/gtkpod.glade.h:210
+msgid "Never show this dialogue again"
+msgstr "אל תראה חלון דו-שיח זה בעתיד"
 
-#: gtkpod.glade:8037
-msgid "<b>Import</b>"
-msgstr "<b>ייבוא</b>"
+#: ../data/gtkpod.glade.h:211
+msgid "New PL"
+msgstr "ר\"ה חדשה"
 
-#: gtkpod.glade:8108
-#, fuzzy
-msgid "Automatically import iTunesDBs on startup"
-msgstr "יבא אוטומטית iTunesDB בתחילת התוכנית"
+#: ../data/gtkpod.glade.h:212
+msgid "No lower margin"
+msgstr "ללא שוליים תחתונים"
 
-#: gtkpod.glade:8154
-msgid "<b>Adding/Updating/Syncing</b>"
-msgstr "<b>הוספה/עדכון/סנכרון</b>"
+#: ../data/gtkpod.glade.h:213
+msgid "No upper margin"
+msgstr "ללא שוליים עליונים"
 
-#: gtkpod.glade:8226
-msgid "Exclude file mask(s)"
-msgstr ""
+#: ../data/gtkpod.glade.h:214
+msgid "Non-transferred tracks"
+msgstr "רצועות לא מועברות"
 
-#: gtkpod.glade:8251
-msgid "Semicolon seperated list of file exclusion masks, e.g. '*.mp3'"
-msgstr ""
+#: ../data/gtkpod.glade.h:215
+msgid "None"
+msgstr "ללא"
 
-#: gtkpod.glade:8285
-#, fuzzy
-msgid "_Encoding (ID3, files):"
-msgstr "_ערכת תווים (ID3, קבצים):"
-
-#: gtkpod.glade:8320
+#: ../data/gtkpod.glade.h:216
 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."
+"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 מצפה שהתגיות של הID3 והקבצים יהיו בקידוד המצוין כאן. תוכל "
-"לשנות זאת בשביל פעולות עוקבות של 'הוספת קבצים' ו 'הוספת תיקיות'. 'ערכת "
-"התווים של המערכת' היא ערכת התווים בשימוש עבור הלוקל הנוכחי שלך."
+"באופן רגיל ערכת התווים המצוינת כאשר מייבאים לראשונה את הרצועות תהיה זו שיעשה "
+"בה שימוש לעדכן את שם הקובץ. אם סמנת אפשרות זו תוכל לבחור ערכת תווים אחרת "
+"בעזרת בוחר ערכת התווים (העדפות 'הוספה/עדכון/סנכרון'). הערה: מידע ערכת התווים "
+"נשמר במידע המורחב (ראה העדפות כתיבה ל-iTunesDB). רצועות שיובאו לפני גרסה "
+"0.51 לא תהיה להם ערכת תווים שמורה. במקום זאת ערכת התווים המצוינת למעלה תהיה "
+"זו שנשתמש בה."
 
-#: gtkpod.glade:8357
+#: ../data/gtkpod.glade.h:217
 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 "
@@ -1004,86 +994,24 @@
 "ורצועות שיובאו לפני גרסה 0.51 לא תהיה להם ערכת תווים שמורה. במקום זאת ערכת "
 "התווים המצוינת למעלה תהיה זו שנשתמש בה אז."
 
-#: gtkpod.glade:8359
-#, fuzzy
+#: ../data/gtkpod.glade.h:218
 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."
+"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:8482
+#: ../data/gtkpod.glade.h:219
 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 "
@@ -1094,418 +1022,443 @@
 "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 ""
+#: ../data/gtkpod.glade.h:222
+msgid "Notes sync command:"
+msgstr "פקודת סנכרון לפתקאות (notes):"
 
-#: gtkpod.glade:8735
-msgid "This is the same option as in 'Edit/Delete Confirmation'"
-msgstr "זוהי אופציה זהה לזו שב- 'עריכה/ווידוא מחיקה'"
+#: ../data/gtkpod.glade.h:223
+msgid "Number of playlists"
+msgstr "מספר רשימות ההשמעה"
 
-#: gtkpod.glade:8737 gtkpod.glade:17782
-#, fuzzy
-msgid "Confirm before removing tracks from the iPod or repository"
-msgstr "לפני הסרת רצועות מה-iPod"
+#: ../data/gtkpod.glade.h:224
+msgid "Number of tracks"
+msgstr "מספר רצועות"
 
-#: gtkpod.glade:8756 gtkpod.glade:17800
+#: ../data/gtkpod.glade.h:225
+msgid "Number of tracks in generated playlists:"
+msgstr "מספר הרצועות ברשימת השמעה:"
+
+#: ../data/gtkpod.glade.h:226
 msgid ""
-"Will show a list of tracks removed and a list of tracks newly added or "
-"updated."
+"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:8758 gtkpod.glade:17802
-msgid "Show summary of sync result"
+#: ../data/gtkpod.glade.h:227
+msgid "Ogg with :"
 msgstr ""
 
-#: gtkpod.glade:8819
-msgid "<b>Sync</b>"
-msgstr "<b>סנכרון</b>"
+#: ../data/gtkpod.glade.h:228
+msgid "On startup automatically sync with playlist directories"
+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 ""
-"מומלץ מאוד לייבוא מהיר יותר ,כאשר מנצלים את מנגנון זיהוי הכפילויות. בנוסף, "
-"על ידי כך שקיים מידע שם הקובץ של הקבצים על ה-PC זה מאפשר כתיבת של תגיות ה-"
-"ID3 לדיסק הקשיח, ואפילו בניה מחדש של תוכן ה-iPod במקרה של בעיה במערכת הקבצים "
-"(שנה את שדה ה-\"הועבר\" במסד הנתונים המגובה)."
+#: ../data/gtkpod.glade.h:229
+msgid "On startup automatically sync with the following directory"
+msgstr "בתחילת התוכנית סנכרן אוטומטית עם התיקייה הבאה"
 
-#: gtkpod.glade:8877
-#, fuzzy
-msgid ""
-"Write extended information (PC filenames,\n"
-" MD5 hashes, encoding). Recommended."
-msgstr "כתוב מידע מורחב (שמות קבצים ב-PC ערבובי MD5, ערכות תווים). מומלץ."
+#: ../data/gtkpod.glade.h:230
+msgid "On startup automatically update (Live Playlist)"
+msgstr "בתחילת התוכנית עדכ אוטומטית (רשימת השמעה חיה)"
 
-#: gtkpod.glade:8921 gtkpod.glade:14688
-#, fuzzy
-msgid "_General"
-msgstr "כללי"
+#: ../data/gtkpod.glade.h:231
+msgid "One for each Album"
+msgstr "אחת לכל כותר"
 
-#: gtkpod.glade:8957
-msgid "<b>Tag Reading</b>"
-msgstr "<b>קריאת תגיות</b>"
+#: ../data/gtkpod.glade.h:232
+msgid "One for each Artist"
+msgstr "אחת לכל אמן"
 
-#: gtkpod.glade:9020
-msgid "Read tags from file contents (e.g. ID3 tags in MP3 files)"
-msgstr "קרא תגיות מתוכן הקובץ (כלומר תגיות ID3 של קבצי MP3)"
+#: ../data/gtkpod.glade.h:233
+msgid "One for each Composer"
+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 ""
-"אמן: a%, כותר: A%, יוצר: c%, שם הרצועה: t%, סגנון: G%, מספר רצועה: T%, מספר "
-"תקליטור: C%, שנה: Y%, מידע דילוג: *%, האות '%': %%.\n"
-"אפשר להפריד בין מספר תבניות על ידי ';'. הראשון שיתאים לקובץ יבחר. לדוגמה:\n"
-" '%a - %A/%T %t.mp3;%t.wav'."
+#: ../data/gtkpod.glade.h:234
+msgid "One for each Genre"
+msgstr "אחת לכל סגנון"
 
-#: gtkpod.glade:9041
-msgid "Use this template to parse filename for tag information:"
-msgstr "השתמש בתבנית הזאת על מנת לנתח את הקובץ למידע תגית:"
+#: ../data/gtkpod.glade.h:235
+msgid "One for each Rating"
+msgstr "אחת לכל מדרוג"
 
-#: gtkpod.glade:9118
+#: ../data/gtkpod.glade.h:236
+msgid "One for each Year"
+msgstr "אחת לכל שנה"
+
+#: ../data/gtkpod.glade.h:237
 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:"
+#: ../data/gtkpod.glade.h:238
+msgid "Password:"
 msgstr ""
-"בתור אפשרות אחרונה קבע את התגיות לשם הקובץ\n"
-"אם הן (עדיין) ריקות:"
 
-#: gtkpod.glade:9187 src/display_sorttabs.c:2942 src/display_spl.c:85
-#: src/misc_conversion.c:62
-msgid "Artist"
-msgstr "אמן"
+#: ../data/gtkpod.glade.h:239
+msgid "Path:"
+msgstr "נתיב:"
 
-#: gtkpod.glade:9209 src/display_sorttabs.c:2948 src/display_spl.c:89
-#: src/misc_conversion.c:64
-msgid "Genre"
-msgstr "סגנון"
+#: ../data/gtkpod.glade.h:240
+msgid "Play time"
+msgstr "זמן השמעה"
 
-#. 0
-#: gtkpod.glade:9231 src/display_sorttabs.c:2945 src/display_spl.c:84
-#: src/misc_conversion.c:61
-msgid "Album"
-msgstr "כותר"
+#: ../data/gtkpod.glade.h:241 ../src/display_spl.c:98
+#: ../src/misc_conversion.c:77
+msgid "Playcount"
+msgstr "מספור השמעות"
 
-#. 5
-#: gtkpod.glade:9253 src/display_spl.c:97 src/misc_conversion.c:66
-msgid "Composer"
-msgstr "יוצר"
+#: ../data/gtkpod.glade.h:242 ../src/display_tracks.c:1990
+msgid "Played"
+msgstr "הושמע"
 
-#: gtkpod.glade:9275 src/display_sorttabs.c:2954 src/display_spl.c:83
-#: src/misc_conversion.c:63
-msgid "Title"
-msgstr "שם הרצועה"
+#: ../data/gtkpod.glade.h:243 ../src/display_spl.c:105
+msgid "Playlist"
+msgstr "רשימת השמעה"
 
-#: gtkpod.glade:9330
-#, fuzzy
-msgid "<b>Coverart</b>"
-msgstr "<b>ייבוא</b>"
+#: ../data/gtkpod.glade.h:244
+msgid "Playlist name:"
+msgstr "שם רשימת ההשמעה:"
 
-#: gtkpod.glade:9392
-msgid ""
-"Music files can have images embedded in the APIC tag. Currently this is only "
-"supported for MP3 files."
-msgstr ""
+#: ../data/gtkpod.glade.h:245
+msgid "Playlist type:"
+msgstr "סוג רשימת ההשמעה:"
 
-#: gtkpod.glade:9394
-msgid "Read coverart from embedded APIC data"
-msgstr ""
+#: ../data/gtkpod.glade.h:246 ../src/display_playlists.c:2176
+msgid "Playlists"
+msgstr "רשימות השמעה"
 
-#: gtkpod.glade:9415
-msgid "Add coverart from file using the following template"
-msgstr ""
+#: ../data/gtkpod.glade.h:247
+msgid "Please refer to the notice below."
+msgstr "הסתכל בבקשה בהודעה למטה."
 
-#: gtkpod.glade:9471
-#, fuzzy
+#: ../data/gtkpod.glade.h:248
+msgid "Please specify a time interval"
+msgstr "אנא ציין מרווח זמן"
+
+#: ../data/gtkpod.glade.h:249
+msgid "Preferences"
+msgstr "הגדרות"
+
+#: ../data/gtkpod.glade.h:250
 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 "
-"'%': %%."
+"Press button to abort.\n"
+"Export can be continued at a later time."
 msgstr ""
-"קובע את שם הרצועה שאותה תעתיק מה-iPod. לדוגמה:\n"
-"'%a/%A/%T - %t.mp3' or '%o'.\n"
-"אתה יכול לציין מספר תבניות מופרדות על ידי נקודה־פסיק. היישום gtkpod יקבע "
-"באיזה יעשה שימוש על ידי הסיומת הניתנת.\n"
-"אמן: a%, כותר: A%, יוצר: c%, שם הרצועה: t%, סגנון: G%, מספר רצועה: T%, מספר "
-"תקליטור: C%, שנה: Y%, שם מקורי (דרוש מידע מורחב): o%, רשימת ההשמעה הנוכחית: p"
-"%, הסימן '%': %%."
+"לחץ על הכפתור לביטול.\n"
+"בכל עת ניתן להמשיך את היצוא."
 
-#: gtkpod.glade:9492
+#: ../data/gtkpod.glade.h:252
+msgid "Previous"
+msgstr ""
+
+#: ../data/gtkpod.glade.h:253
 #, fuzzy
-msgid "<b>Examples</b>"
-msgstr "<b>mserv</b>"
+msgid "Progress Information"
+msgstr "מידע"
 
-#: gtkpod.glade:9526
-msgid "folder.jpg"
-msgstr ""
+#: ../data/gtkpod.glade.h:254
+msgid "Random Playlist from Displayed Tracks"
+msgstr "רשימת השמעה אקראית מהרצועות הנראות"
 
-#: gtkpod.glade:9554
-msgid "folder"
-msgstr ""
+#: ../data/gtkpod.glade.h:255
+msgid "Randomize Current Playlist"
+msgstr "יצירת רשימת השמעה אקראית"
 
-#: gtkpod.glade:9582
-msgid "../%A.jpg"
-msgstr ""
+#: ../data/gtkpod.glade.h:256 ../src/display_spl.c:101
+#: ../src/misc_conversion.c:78
+msgid "Rating"
+msgstr "מדרוג"
 
-#: gtkpod.glade:9610
-msgid "%A"
-msgstr ""
+#: ../data/gtkpod.glade.h:257
+msgid "Read coverart from embedded APIC data"
+msgstr "קרא תמונת עטיפה מתוך מידע ה־APIC"
 
-#: gtkpod.glade:9638
-msgid "Use <i>folder.jpg</i> as cover art."
-msgstr ""
+#: ../data/gtkpod.glade.h:258
+msgid "Read tags from file contents (e.g. ID3 tags in MP3 files)"
+msgstr "קרא תגיות מתוכן הקובץ (כלומר תגיות ID3 של קבצי MP3)"
 
-#: gtkpod.glade:9666
-msgid "Use <i>folder.jpg</i>, <i>folder.png</i>..."
-msgstr ""
+#: ../data/gtkpod.glade.h:259
+msgid "Remove Cover Art"
+msgstr "הסר עטיפה"
 
-#: gtkpod.glade:9694
-msgid "Use <i>&lt;Album&gt;.jpg</i> in the parent directory"
-msgstr ""
+#: ../data/gtkpod.glade.h:260
+msgid "Repository Options"
+msgstr "אפשרויות מאגר"
 
-#: gtkpod.glade:9722
-msgid "Use <i>&lt;Album&gt;.jpg</i>, <i>&lt;Album&gt;.png</i>..."
-msgstr ""
+#: ../data/gtkpod.glade.h:261
+msgid "Repository name:"
+msgstr "שם המאגר:"
 
-#: gtkpod.glade:9750
-msgid "folder.jpg;%a.jpg"
-msgstr ""
+#: ../data/gtkpod.glade.h:262
+msgid "Repository type:"
+msgstr "סוג מאגר:"
 
-#: gtkpod.glade:9778
-msgid "First try <i>folder.jpg</i>, then <i>&lt;artist&gt;.jpg</i>"
+#: ../data/gtkpod.glade.h:263
+msgid "Root directory of mserv database (trackinfo root)."
+msgstr "תיקיית שורש או מסד נתונים mserv (השורש של trackinfo)."
+
+#: ../data/gtkpod.glade.h:264
+msgid "Rules"
+msgstr "חוקים"
+
+#: ../data/gtkpod.glade.h:265 ../src/context_menus.c:808
+msgid "Save Changes"
+msgstr "שמור שינויים"
+
+#: ../data/gtkpod.glade.h:266
+#, fuzzy
+msgid "Scrobble Tracks?"
+msgstr "ר_צועות נבחרות"
+
+#: ../data/gtkpod.glade.h:267
+msgid "Select '-1' for no upper limit."
+msgstr "בחר '-1' עבור ביטול גבול עליון."
+
+#: ../data/gtkpod.glade.h:268
+msgid "Select '0' for no lower limit."
+msgstr "בחר '0' עבור ביטול גבול תחתון."
+
+#: ../data/gtkpod.glade.h:269
+msgid ""
+"Selected\n"
+"Playlist"
 msgstr ""
+"רשימות השמעה\n"
+"נבחרות"
 
-#: gtkpod.glade:9835
-msgid "If both options are selected, embedded APIC data takes precedence."
+#: ../data/gtkpod.glade.h:271
+msgid ""
+"Selected\n"
+"Tracks"
 msgstr ""
+"רצועות\n"
+"נבחרות"
 
-#: gtkpod.glade:9887
-msgid "<b>mserv</b>"
-msgstr "<b>mserv</b>"
+#: ../data/gtkpod.glade.h:273
+msgid "Selected Tab _Entry"
+msgstr "רשומות _כרטיסיה נבחרות"
 
-#: gtkpod.glade:9949 gtkpod.glade:10175
-msgid "Currently only rating is supported."
-msgstr "נכון לעכשיו רק המדרוג נתמך."
+#: ../data/gtkpod.glade.h:274
+msgid "Selected _Playlist"
+msgstr "_רשימות השמעה נבחרות"
 
-#: gtkpod.glade:9951
-msgid "Use mserv database to fill additional information"
-msgstr "השתמש במסד נתונים של mserv על מנת למלא מידע נוסף"
+#: ../data/gtkpod.glade.h:275
+msgid "Selected _Tracks"
+msgstr "ר_צועות נבחרות"
 
-#: gtkpod.glade:9979
-msgid "Music Root:"
-msgstr "שורש המוזיקה:"
+#: ../data/gtkpod.glade.h:276
+msgid "Selected filter tab entry from database"
+msgstr "נבחרה רשומת כרטיסיית מסנן ממסד הנתונים"
 
-#: gtkpod.glade:10007
-msgid "mserv database lookup will be done for music in this directory."
-msgstr "החיפוש במסד הנתונים mserv יתבצע בתיקייה זאת עבור מוזיקה."
+#: ../data/gtkpod.glade.h:277
+msgid "Selected filter tab entry from harddisk"
+msgstr "נבחרה רשומת כרטיסיית מסנן מהדיסק הקשיח"
 
-#: gtkpod.glade:10029
-msgid "mserv Root:"
-msgstr "שורש ה-mserv:"
+#: ../data/gtkpod.glade.h:278
+msgid "Selected filter tab entry from iPod"
+msgstr "נבחרה רשומת כרטיסיית מסנן מה־iPod"
 
-#: gtkpod.glade:10057
-msgid "Root directory of mserv database (trackinfo root)."
-msgstr "תיקיית שורש או מסד נתונים mserv (השורש של trackinfo)."
+#: ../data/gtkpod.glade.h:279
+msgid "Selected filter tab entry from playlist"
+msgstr "נבחרה רשומת כרטיסיית מסנן מרשימת ההשמעה"
 
-#: gtkpod.glade:10079
-msgid "Username:"
-msgstr "שם משתמש:"
+#: ../data/gtkpod.glade.h:280
+msgid "Selected playlist"
+msgstr "רשימות השמעה נבחרות"
 
-#: gtkpod.glade:10107
-msgid "Username to be used for mserv database lookup."
-msgstr "שם משתמש הנועד לשימוש במסד הנתונים של mserv."
+#: ../data/gtkpod.glade.h:281
+msgid "Selected playlist including tracks from database"
+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 "סייר"
+#: ../data/gtkpod.glade.h:282
+msgid "Selected playlist including tracks from harddisk"
+msgstr "נבחרה רשימת השמעה נבחרת כוללת רצועות מהדיסק הקשיח"
 
-#: gtkpod.glade:10177
-msgid "Show information about problems when accessing mserv"
-msgstr "הצג מידע על בעיות בגישה ל-mserv"
+#: ../data/gtkpod.glade.h:283
+msgid "Selected playlist including tracks from iPod"
+msgstr "נבחרה רשימת השמעה נבחרת כוללת רצועות מה־iPod"
 
-#: gtkpod.glade:10223
+#: ../data/gtkpod.glade.h:284
+msgid "Selected tracks from database"
+msgstr "הרצועות הנבחרות ממסד הנתונים"
+
+#: ../data/gtkpod.glade.h:285
+msgid "Selected tracks from harddisk"
+msgstr "הרצועות הנבחרות מהדיסק הקשיח"
+
+#: ../data/gtkpod.glade.h:286
+msgid "Selected tracks from iPod"
+msgstr "הרצועות הנבחרות מה־iPod"
+
+#: ../data/gtkpod.glade.h:287
+msgid "Selected tracks from playlist"
+msgstr "הרצועות הנבחרות מרשימות ההשמעה"
+
+#: ../data/gtkpod.glade.h:288
 #, fuzzy
-msgid "_Track Info"
-msgstr "רצועה"
+msgid "Semicolon separated list of file exclusion masks, e.g. '*.mp3'"
+msgstr "רשימת מופרדת פסיקים של מסכות שלילה, לדוגמה: \"*.mp3"
 
-#: gtkpod.glade:10273
-msgid "<b>Displayed Track Attributes</b>"
-msgstr "<b>מאפייני רצועה נראים</b>"
+#: ../data/gtkpod.glade.h:289
+#, fuzzy
+msgid "Set Cover Art from File"
+msgstr "קבע עטיפה"
 
-#: gtkpod.glade:11083
-msgid "<b>Sort Tabs</b>"
-msgstr "<b>כרטיסיות מיון</b>"
+#: ../data/gtkpod.glade.h:290
+#, fuzzy
+msgid "Set Cover Art from Web"
+msgstr "קבע עטיפה"
 
-#: gtkpod.glade:11145
-msgid "Keeps all compilation CDs grouped together in the artists sort tab."
+#: ../data/gtkpod.glade.h:291
+msgid "Set mountpoint or edit repository options"
+msgstr "קבע נקודות עגינה או ערוך אפשרויות מאגר"
+
+#: ../data/gtkpod.glade.h:292
+msgid "Set options for Calendar/Contacts/Notes"
+msgstr "קבע אפשרויות עבור יומן/אנשי קשר/תזכורות"
+
+#: ../data/gtkpod.glade.h:293
+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:11147
-msgid "Group artists on compilation CDs"
+#: ../data/gtkpod.glade.h:294
+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:11172
-msgid "_Number of sort tabs:"
-msgstr "_מספר כרטיסיות המיון:"
+#: ../data/gtkpod.glade.h:295
+msgid "Set this to your last.fm password"
+msgstr ""
 
-#: gtkpod.glade:11252
-msgid "<b>Automatically select...</b>"
-msgstr "<b>בחירה אוטומטית...</b>"
+#: ../data/gtkpod.glade.h:296
+msgid "Set this to your last.fm username"
+msgstr ""
 
-#: gtkpod.glade:11314
+#: ../data/gtkpod.glade.h:297
 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."
+"Set to 0 to effectively disable caching (a maximum of one track will be "
+"cached at a time)."
 msgstr ""
-"אם לא תבחר את רשימת ההשמעה הראשית אוטומטית, יבוא מסד הנתונים הראשוני יהיה "
-"יותר מהיר בעקבות כך שהתצוגה לא תהיה חייבת להתעדכן."
 
-#: gtkpod.glade:11316
-msgid "...master playlist"
-msgstr "...רשימת השמעה ראשית"
+#: ../data/gtkpod.glade.h:298
+msgid ""
+"Set to 0 to use as many background threads as CPUs are available on your "
+"system."
+msgstr ""
 
-#: gtkpod.glade:11336
-msgid "...entry 'All' in sort tab..."
-msgstr "...רשומה 'הכל' בכרטיסיית המיון..."
+#: ../data/gtkpod.glade.h:299
+msgid "Show information about problems when accessing mserv"
+msgstr "הצג מידע על בעיות בגישה ל-mserv"
 
-#: gtkpod.glade:11421
-msgid "<b>Tooltips</b>"
-msgstr "<b>תוויות מידע</b>"
+#: ../data/gtkpod.glade.h:300
+msgid "Show summary of sync result"
+msgstr "הצג סיכום של תוצאות סינכרון"
 
-#: gtkpod.glade:11484
-msgid "Display tooltips in main window"
-msgstr "הצג תוויות מידע בחלון הראשי"
+#: ../data/gtkpod.glade.h:301 ../src/misc_playlist.c:96
+#: ../src/repository.c:1356
+msgid "Smart Playlist"
+msgstr "רשימת השמעה חכמה"
 
-#: gtkpod.glade:11504
-msgid "Display tooltips in prefs window"
-msgstr "הצג תוויות מידע בחלון האפשרויות"
+#: ../data/gtkpod.glade.h:302
+msgid "Sort tracks according to: "
+msgstr "מיין רצועות לפי:"
 
-#: gtkpod.glade:11550
-msgid "<b>Toolbar</b>"
-msgstr "<b>סרגל כלים</b>"
+#: ../data/gtkpod.glade.h:303
+msgid "Sorting Options"
+msgstr "אפשרויות מיון"
 
-#: gtkpod.glade:11613
-msgid "Display toolbar..."
-msgstr "הראה סרגל כלים..."
+#: ../data/gtkpod.glade.h:304
+msgid "Sorting case sensitive"
+msgstr "מיון עם תלות בגודל (case)"
 
-#: gtkpod.glade:11670
-msgid "...as icons"
-msgstr "...בתור סמלים"
+#: ../data/gtkpod.glade.h:305
+msgid "Sorttab: "
+msgstr "כרטיסייה מיון:"
 
-#: gtkpod.glade:11690
-msgid "...as text"
-msgstr "...בתור טקסט"
+#: ../data/gtkpod.glade.h:306
+msgid "Sorttabs"
+msgstr "כרטיסיות מיון"
 
-#: gtkpod.glade:11711
-msgid "...both as icons and text"
-msgstr "...ביחד גם סמלים וגם טקסט"
+#: ../data/gtkpod.glade.h:307
+msgid "Source:"
+msgstr "מקור:"
 
-#: gtkpod.glade:11772
-msgid "<b>Misc</b>"
-msgstr "<b>אחר</b>"
-
-#: gtkpod.glade:11834
+#: ../data/gtkpod.glade.h:309
+#, no-c-format
 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."
+"Specify exact path including command line options. '%i' will be replaced "
+"with the mount point of the iPod."
 msgstr ""
-"זה יותר מהיר למיין את התצוגה אחרי שכל הרצועות הוספו. חלק מהאנשים יחשבו "
-"שהתנהגות זו מעצבנת וכנראה יבטלו את הסימון לאפשרות זו."
+"מציין נתיב מלא כולל אפשרויות שורת פקודה. המחרוזת '%i' תוחלף עם נקודת העגינה "
+"של ה-iPod."
 
-#: gtkpod.glade:11836
-msgid ""
-"Temporarily disable sorting when changing playlist\n"
-"or tab entry (faster!)"
-msgstr "חסום זמנית מיון בזמן החלפת רשימת השמעה או רשומת כרטיסיה (מהיר)"
+#: ../data/gtkpod.glade.h:310
+msgid "Specify interval"
+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 ""
-"התצוגה יכולה להינעל אחרי שינוי הבחירה. עדכון התצוגה יהיה מהיר יותר, אך אתה "
-"תצטרך להמתין עד הסיום. בזמן שימוש באפשרות זו, המיון גם הוא זמנית מבוטל (ראה "
-"אפשרות למעלה)."
+#: ../data/gtkpod.glade.h:311
+msgid "Start display automatically"
+msgstr "התחל תצוגה אוטומטית"
 
-#: gtkpod.glade:11858
-msgid ""
-"Block display when changing playlist or tab\n"
-" entry (faster!)"
-msgstr "חסום תצוגה בזמן החלפת רשימת השמעה או רשומת כרטיסיה (מהיר)"
+#: ../data/gtkpod.glade.h:312
+msgid "Synchronise Contacts, Calendar and Notes"
+msgstr "סנכרן אנשי קשר, יומן ופתקים"
 
-#: gtkpod.glade:11878
-msgid "This option will be re-activated when you upgrade gtkpod."
-msgstr "האפשרות הזאת תופעל מחדש בזמן שדרוג gtkpod."
+#: ../data/gtkpod.glade.h:313
+msgid "Synchronize All"
+msgstr "סנכרן הכל"
 
-#: gtkpod.glade:11880
-msgid "Display messages and warnings at startup"
-msgstr "הראה הודעות ואזהרות בתחילת התוכנית"
+#: ../data/gtkpod.glade.h:314
+msgid "Synchronize Calendar"
+msgstr "סנכרן יומן"
 
-#: gtkpod.glade:11942
-msgid "Advanced Sorting Options"
-msgstr "אפשרויות מיון מתקדמות"
+#: ../data/gtkpod.glade.h:315
+msgid "Synchronize Contacts"
+msgstr "סנכרן אנשי קשר"
 
-#: gtkpod.glade:12045
-msgid "<b>Track Editing</b>"
-msgstr "<b>עריכת רצועות</b>"
+#: ../data/gtkpod.glade.h:316
+msgid "Synchronize Notes"
+msgstr "סנכרן פתקים"
 
-#: gtkpod.glade:12107
+#: ../data/gtkpod.glade.h:317
+msgid "Template for info field: "
+msgstr "תבנית עבור שדה המידע:"
+
+#: ../data/gtkpod.glade.h:318
 msgid ""
-"The tags are written to the files on your harddrive and on the ipod (if "
-"available)."
-msgstr "התגיות נכתבות לקבצים על הדיסק הקשיח ועל ה-iPod (אם זמין)."
+"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:12109
-msgid "Write ID3 tags to disk when modified in gtkpod"
-msgstr "כתוב תגיות ID3 לדיסק כאשר הן משתנות ב-gtkpod"
-
-#: gtkpod.glade:12165
+#: ../data/gtkpod.glade.h:319
 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."
+"The output of the background conversion scripts is copied below. Each page "
+"of the notebook corresponds to one background thread."
 msgstr ""
-"בדרך כלל יעשה שימוש בערכת התווים המצוינת בזמן ייבוא הרצועה לשם כתיבת התגיות. "
-"אם בחרת ערכת תווים שגויה בזמן ייבוא רצועה, אתה יכול לבחור אפשרות זו ביחד עם "
-"ערכת התווים הנכונה. הערה: משתמש בקובץ המידע המורחב לשמור את מידע ערכת התווים "
-"(ראה 'כתיבת iTunesDB' בעמוד קלט/פלט) ורצועות שיובאו לפני גרסה 0.51 לא תהייה "
-"להן ערכה שמורה -- הערכה המצוינת בעמוד קלט/פלט יעשה בה שימוש."
 
-#: gtkpod.glade:12167
+#: ../data/gtkpod.glade.h:320
 #, fuzzy
 msgid ""
-"Use selected encoding (on the 'General' page)\n"
-"when writing tags"
-msgstr ""
-"השתמש בערכת תווים הנבחרת (בעמוד 'כללי')\n"
-"בזמן כתיבת התגיות"
+"The tags are written to the files on your harddrive and on the iPod (if "
+"available)."
+msgstr "התגיות נכתבות לקבצים על הדיסק הקשיח ועל ה-iPod (אם זמין)."
 
-#: gtkpod.glade:12187
+#: ../data/gtkpod.glade.h:321
+msgid "The track on the iPod is referenced in the playlist file."
+msgstr "הרצועה על ה-iPod מקושרת בקובץ רשימת ההשמעה."
+
+#: ../data/gtkpod.glade.h:322
+msgid "This is the same option as in 'Edit/Delete Confirmation'"
+msgstr "זוהי אופציה זהה לזו שב- 'עריכה/ווידוא מחיקה'"
+
+#: ../data/gtkpod.glade.h:323
 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 "
@@ -1518,771 +1471,993 @@
 "gtkpod ישתמש ב־UTF8 כי זה לא יגדיל את הגודל של תגיות ASCII טהורות. תגיות "
 "ID3V2.2/4 יכתבו גם אם הן כבר קיימות בקובץ שכותבים עליו."
 
-#: gtkpod.glade:12189
-msgid "Always write ID3v2.4 tags (only applies to MP3)"
-msgstr "כתוב תמיד תגיות ID3v2.4 (תקף רק ל-MP3)"
+#: ../data/gtkpod.glade.h:324
+msgid "This option will be re-activated when you upgrade gtkpod."
+msgstr "האפשרות הזאת תופעל מחדש בזמן שדרוג gtkpod."
 
-#: gtkpod.glade:12222
+#: ../data/gtkpod.glade.h:325
+msgid "Time:"
+msgstr "זמן:"
+
+#: ../data/gtkpod.glade.h:326 ../src/display_sorttabs.c:2963
+#: ../src/display_spl.c:83 ../src/misc_conversion.c:62
+msgid "Title"
+msgstr "שם הרצועה"
+
+#: ../data/gtkpod.glade.h:327
 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."
+"Total\n"
+"(iPod)"
 msgstr ""
-"אם אתה בוחר מספר רצועות ברשימת הרצועות ועורך תגית של הרצועה הראשונה, התגיות "
-"ברצועות הממוינות מתעדכנות גם כן."
+"סך הכל\n"
+"(iPod)"
 
-#: gtkpod.glade:12224
-msgid "Use 'Multi-Edit' for tracks selections"
-msgstr "השתמש ב-'עריכה מרובה' עבור בחירת רצועות"
+#: ../data/gtkpod.glade.h:329
+msgid ""
+"Total\n"
+"(local)"
+msgstr ""
+"סך הכל\n"
+"(מקומי)"
 
-#: gtkpod.glade:12274
+#: ../data/gtkpod.glade.h:331
+msgid "Tracks"
+msgstr "רצועות"
+
+#: ../data/gtkpod.glade.h:332
+msgid "Tracks Most Often Listened To"
+msgstr "הרצועות שהכי מאזינים להן"
+
+#: ../data/gtkpod.glade.h:333
 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)."
+"Tracks can be transferred in the background as soon as they are added to an "
+"iPod repository. Otherwise they will be transferred when ejecting the "
+"contents of the iPod completely unchanged until then."
 msgstr ""
-"בדרך כלל אתה לא תרצה לקבוע את שם הרצועה של מספר רצועות לאותו טקסט. אפשרות "
-"זאת עלולה למנוע תוצאות לא רצויות (במיוחד שאין עדיין אפשרות 'בטל')"
 
-#: gtkpod.glade:12276
-msgid "Use 'Multi-Edit' also for title field"
-msgstr "השתמש ב-'עריכה מרובה' גם עבור שדה שם הרצועה"
+#: ../data/gtkpod.glade.h:334
+msgid "Tracks in Selected Tab _Entry"
+msgstr "רצועות ב_רשומות כרטיסיות נבחרות"
 
-#: gtkpod.glade:12329
-msgid "<b>Auto-Generated Playlists</b>"
-msgstr "<b>יצירה אוטומטית של רשימות השמעה</b>"
+#: ../data/gtkpod.glade.h:335
+msgid "Tracks in Selected _Playlist"
+msgstr "רצועות ב_רשימות השמעה נבחרות"
 
-#: gtkpod.glade:12397
-msgid "Number of tracks in generated playlists:"
-msgstr "מספר הרצועות ברשימת השמעה:"
+#: ../data/gtkpod.glade.h:336
+msgid "Transfer tracks to the iPod in the background"
+msgstr ""
 
-#: gtkpod.glade:12422
+#: ../data/gtkpod.glade.h:337
+msgid "Translators"
+msgstr "מתרגמים"
+
+#: ../data/gtkpod.glade.h:338
 msgid ""
-"Number of tracks in the generated playlists 'Most Often Listened', 'Best "
-"Rated' and 'Most Recently Played'. Choose '0' for 'no limit'."
+"Try to load contents of all connected iPods. For each iPod a separate "
+"repository must be set up."
 msgstr ""
-"מספר הרצועות ברשימות ההשמעה הנוצרות 'המושמעים ביותר', 'הדירוג הכי גבוה' "
-"ו-'נוגנו הכי לאחרונה'. בחר '0' עבור 'ללא מגבלה'."
+"מנסה לטעון תוכן של כל ה־iPod-ים המחוברים. עבור כל iPod חייב להיות מוקם מאגר "
+"נפרד."
 
-#: gtkpod.glade:12451
-msgid "Also include tracks never played in \"Best Rated\" playlist"
-msgstr "כלול גם רצועות שלעולם לא נוגנו ברשימת השמעה \"הדירוג הכי גבוה\""
+#: ../data/gtkpod.glade.h:339
+msgid "Update _mserv Data from File"
+msgstr "עדכון _נתוני mserv מקובץ"
 
-#: gtkpod.glade:12497
-msgid "<b>Delete Confirmation</b>"
-msgstr "<b>ווידוא מחיקה</b>"
+#: ../data/gtkpod.glade.h:340
+msgid "Update/Sync all playlists now"
+msgstr "עדכן/סנכרן את כל רשימות ההשמעה עכשיו"
 
-#: gtkpod.glade:12560
-msgid "Before removing playlists or tracks from a playlist"
-msgstr "לפני הסרת רשימות השמעה או רצועות מרשימת השמעה"
+#: ../data/gtkpod.glade.h:341
+msgid "Update/Sync playlist now"
+msgstr "עדכן/סנכרן את רשימת הניגון עכשיו"
 
-#: gtkpod.glade:12580
-msgid "Before removing tracks from the iPod"
-msgstr "לפני הסרת רצועות מה-iPod"
+#: ../data/gtkpod.glade.h:342
+msgid "Upper margin"
+msgstr "שוליים עליונים"
 
-#: gtkpod.glade:12600
-msgid "Before removing tracks from the harddisk"
-msgstr "לפני הסרת רצועות מהדיסק הקשיח"
+#: ../data/gtkpod.glade.h:343
+msgid "Use 'Multi-Edit' also for title field"
+msgstr "השתמש ב-'עריכה מרובה' גם עבור שדה שם הרצועה"
 
-#: gtkpod.glade:12620
-msgid "Before removing tracks from the local database"
-msgstr "לפני הסרת רצועות ממסד הנתונים המקומי"
+#: ../data/gtkpod.glade.h:344
+msgid "Use 'Multi-Edit' for tracks selections"
+msgstr "השתמש ב-'עריכה מרובה' עבור בחירת רצועות"
 
-#: gtkpod.glade:12640
-msgid ""
-"Confirm before removing tracks from the iPod or repository\n"
-"when syncing playlists"
-msgstr ""
+#: ../data/gtkpod.glade.h:345
+#, fuzzy
+msgid "Use <i><Album>.jpg</i> in the parent directory"
+msgstr "השתמש ב־ <i>&lt;Album&gt;.jpg</i> בתור תיקייה אב"
 
-#: gtkpod.glade:12723
-msgid "<b>Play</b>"
-msgstr "<b>נגן</b>"
+#: ../data/gtkpod.glade.h:346
+#, fuzzy
+msgid "Use <i><Album>.jpg</i>, <i><Album>.png</i>..."
+msgstr "השתמש ב־ <i>&lt;Album&gt;.jpg</i>, <i>&lt;Album&gt;.png</i>..."
 
-#: gtkpod.glade:12788
-msgid "Command for 'Play now':"
-msgstr "פקודה עבור 'נגן עכשיו':"
+#: ../data/gtkpod.glade.h:347
+msgid "Use <i>folder.jpg</i> as cover art."
+msgstr "השתמש ב <i>folder.jpg</i> בתור עטיפה."
 
-#: gtkpod.glade:12816
-msgid "Command for 'Enqueue':"
-msgstr "פקודה עבור 'הכנס לתור':"
+#: ../data/gtkpod.glade.h:348
+msgid "Use <i>folder.jpg</i>, <i>folder.png</i>..."
+msgstr "השתמש ב־ <i>folder.jpg</i>, <i>folder.png</i>..."
 
-#: gtkpod.glade:12844
+#: ../data/gtkpod.glade.h:349
+msgid "Use mserv database to fill additional information"
+msgstr "השתמש במסד נתונים של mserv על מנת למלא מידע נוסף"
+
+#: ../data/gtkpod.glade.h:350
 msgid ""
-"For example, 'xmms %s' will clear xmms' current playlist, add the selected "
-"tracks and start playing."
+"Use selected charset (Preferences/'Adding/Updating/ Syncing')\n"
+"for this filename."
 msgstr ""
-"לדוגמא, 'xmms %s' ינקה את רשימת ההשמעה הנוכחית של xmms, יוסיף את הרצועות "
-"הנבחרות ויתחיל לנגן."
+"השתמש בערכת התווים הנבחרת (אפשרויות/'הוספה/עדכון/סנכרון')\n"
+"עבור הקובץ הזה."
 
-#: gtkpod.glade:12866
+#: ../data/gtkpod.glade.h:352
 msgid ""
-"For example, 'xmms -e %s' will append (enqueue) the selected tracks to xmms' "
-"current playlist."
+"Use selected encoding (on the 'General' page)\n"
+"when writing tags"
 msgstr ""
-"לדוגמא, 'xmms -e %s' יוסיף את הרצועות הנבחרות לרשימת ההשמעה הנוכחית ב-xmms."
+"השתמש בערכת תווים הנבחרת (בעמוד 'כללי')\n"
+"בזמן כתיבת התגיות"
 
-#: gtkpod.glade:12953
-msgid "<b>Volume Normalization</b>"
-msgstr "<b>נרמול עוצמת קול</b>"
+#: ../data/gtkpod.glade.h:354
+#, fuzzy
+msgid "Use selected encoding also when updating or syncing tracks"
+msgstr "השתמש בערכת תווים נבחרת גם בזמן עדכון או סנכרון רצועות"
 
-#: gtkpod.glade:13018
-msgid "'mp3gain' executable:"
-msgstr "קובץ ריצה של 'mp3gain':"
+#: ../data/gtkpod.glade.h:355
+msgid "Use this template to parse filename for tag information:"
+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 ""
+#: ../data/gtkpod.glade.h:356
+msgid "Username to be used for mserv database lookup."
+msgstr "שם משתמש הנועד לשימוש במסד הנתונים של mserv."
 
-#: gtkpod.glade:13087
-#, fuzzy
-msgid "'aacgain' executable:"
-msgstr "קובץ ריצה של 'mp3gain':"
+#: ../data/gtkpod.glade.h:357
+msgid "Username:"
+msgstr "שם משתמש:"
 
-#: gtkpod.glade:13115
+#: ../data/gtkpod.glade.h:358
 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."
+"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:13183
-msgid "<b>Calendar/Contacts/Notes</b>"
+#: ../data/gtkpod.glade.h:359
+msgid "WAV with :"
 msgstr ""
 
-#: gtkpod.glade:13246
-msgid "Set options for Calendar/Contacts/Notes"
+#: ../data/gtkpod.glade.h:360
+msgid ""
+"When adding dirs/files, update information of\n"
+"existing tracks with identical filenames"
 msgstr ""
+"בזמן הוספת תיקיות/קבצים, עדכן את המידע על\n"
+"רצועות קיימות עם שמות קבצים זהים"
 
-#: gtkpod.glade:13381
-msgid "Details"
+#: ../data/gtkpod.glade.h:362
+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:13449
-#, fuzzy
-msgid "Cover"
-msgstr "יוצר"
+#: ../data/gtkpod.glade.h:363
+msgid "When syncing playlists"
+msgstr "בזמן סנכרון רשימות השמעה"
 
-#: gtkpod.glade:13538
-msgid "Set Cover Art"
+#: ../data/gtkpod.glade.h:364
+msgid ""
+"Will show a list of tracks removed and a list of tracks newly added or "
+"updated."
 msgstr ""
+"יראה רשימה של רצועות שהוסרו ורשימות של רצועות שהוספו או עודכנו לאחרונה."
 
-#: gtkpod.glade:13575
+#: ../data/gtkpod.glade.h:365
+msgid "Write ID3 tags to disk when modified in gtkpod"
+msgstr "כתוב תגיות ID3 לדיסק כאשר הן משתנות ב-gtkpod"
+
+#: ../data/gtkpod.glade.h:366
+msgid "Write all changes made to the disk and the iPod(s)."
+msgstr "שמור את כל השינויים שנעשו אל הדיסק ואל ה־iPod-ים."
+
+#: ../data/gtkpod.glade.h:367
+#, fuzzy
 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."
+"Write extended information (PC filenames, SHA1 hashes,\n"
+"encoding...). Recommended."
 msgstr ""
+"כתוב מידע מורחב (שמות קבצים ב-PC,\n"
+" ערבובי MD5, ערכות תווים). מומלץ."
 
-#: gtkpod.glade:13621
+#: ../data/gtkpod.glade.h:369
 msgid ""
-"Change all tracks\n"
-"simultaneously"
+"You can also use the table headers, but this allows you to sort according to "
+"a column that is not displayed."
 msgstr ""
+"אתה גם יכול להשתמש בכותרות הטבלאות, אבל זה יאפשר לך למיין רק לפי העמודה "
+"המוצגת."
 
-#: gtkpod.glade:13713
-msgid "Remove Cover Art"
-msgstr ""
+#: ../data/gtkpod.glade.h:370
+msgid "_About"
+msgstr "_אודות"
 
-#: gtkpod.glade:14646
-msgid "(Checked)"
-msgstr ""
+#: ../data/gtkpod.glade.h:371
+msgid "_All Tracks"
+msgstr "_כל הרצועות"
 
-#: gtkpod.glade:15088
-msgid "_Podcasts"
-msgstr ""
+#: ../data/gtkpod.glade.h:372
+msgid "_Arrange Sort Tabs"
+msgstr "_סדר כרטיסיות מיון"
 
-#: gtkpod.glade:16127
-msgid "_Other"
-msgstr ""
+#: ../data/gtkpod.glade.h:373
+msgid "_Check iPod's Files"
+msgstr "_בדיקת קבצי iPod"
 
-#: gtkpod.glade:16425
-msgid "_Undo All"
+#: ../data/gtkpod.glade.h:374
+msgid "_Conversion Log"
 msgstr ""
 
-#: gtkpod.glade:16499
-#, fuzzy
-msgid "_Undo Track"
-msgstr "רצועות לא דורגו"
+#: ../data/gtkpod.glade.h:375
+msgid "_Create Playlists"
+msgstr "_יצירת רשימות השמעה"
 
-#: gtkpod.glade:16546
-#, fuzzy
-msgid "Repository Options"
-msgstr "אפשרויות מיון"
+#: ../data/gtkpod.glade.h:376
+msgid "_Create iPod's Directories"
+msgstr "_יצירת תיקיות iPod"
 
-#: gtkpod.glade:16667
-msgid "Add new repository/iPod"
-msgstr ""
+#: ../data/gtkpod.glade.h:377
+msgid "_Delete"
+msgstr "_מחק"
 
-#: gtkpod.glade:16736 gtkpod.glade:18163 gtkpod.glade:18659
-#, fuzzy
-msgid "iPod mountpoint:"
-msgstr "נקודת ה_עיגון של ה-iPod:"
+#: ../data/gtkpod.glade.h:378
+msgid "_Display"
+msgstr "_תצוגה"
 
-#: gtkpod.glade:16764 gtkpod.glade:18135
-msgid "iTunesDB backup:"
-msgstr ""
+#: ../data/gtkpod.glade.h:379
+msgid "_Displayed Tracks"
+msgstr "_הראה רצועות"
 
-#: gtkpod.glade:16792 gtkpod.glade:18107 gtkpod.glade:18730 gtkpod.glade:18922
-msgid "Model:"
+#: ../data/gtkpod.glade.h:380
+msgid "_Edit"
+msgstr "_עריכה"
+
+#: ../data/gtkpod.glade.h:381
+msgid "_Encoding (ID3, files):"
+msgstr "_ערכת תווים (ID3, קבצים):"
+
+#: ../data/gtkpod.glade.h:382
+msgid "_Enqueue"
+msgstr "_הכנס לתור"
+
+#: ../data/gtkpod.glade.h:383
+msgid "_Export Tracks from Database"
+msgstr "_ייצא רצועות ממסד הנתונים"
+
+#: ../data/gtkpod.glade.h:384
+msgid "_File"
+msgstr "_קובץ"
+
+#: ../data/gtkpod.glade.h:385
+msgid "_Find New"
 msgstr ""
 
-#: gtkpod.glade:16820 gtkpod.glade:18079
-msgid "Path:"
+#: ../data/gtkpod.glade.h:386
+msgid "_General"
+msgstr "_כללי"
+
+#: ../data/gtkpod.glade.h:387
+msgid "_Help"
+msgstr "_עזרה"
+
+#: ../data/gtkpod.glade.h:388
+msgid "_Ignore rules"
+msgstr "_התעלם מחוקים"
+
+#: ../data/gtkpod.glade.h:389
+msgid "_Info Window"
+msgstr "_חלון מידע"
+
+#: ../data/gtkpod.glade.h:390
+msgid "_Last.FM"
 msgstr ""
 
-#: gtkpod.glade:16848
-msgid "<b>Synchronization</b>"
-msgstr "<b>סנכרון</b>"
+#: ../data/gtkpod.glade.h:391
+msgid "_Less Sort Tabs"
+msgstr "_פחות כרטיסיות מיון"
 
-#: gtkpod.glade:16906
-msgid "Contacts sync command:"
-msgstr "פקודת סנכרון לאנשי קשר:"
+#: ../data/gtkpod.glade.h:392
+msgid "_Limit to"
+msgstr "_הגבל ל"
 
-#: gtkpod.glade:16934
-msgid "Calendar sync command:"
-msgstr "פקודת סנכרון ליומן:"
+#: ../data/gtkpod.glade.h:393
+msgid "_Load iPod(s)"
+msgstr "_טען iPod"
 
-#: gtkpod.glade:16962
-msgid "Notes sync command:"
-msgstr "פקודת סנכרון לפתקאות (notes):"
+#: ../data/gtkpod.glade.h:394
+msgid "_Local"
+msgstr "_מקומי"
 
-#: gtkpod.glade:16991
-msgid "Call automatically when synchronizing iTunesDB"
-msgstr "קרא אוטומטית בזמן סנכרון iTunesDB"
+#: ../data/gtkpod.glade.h:395
+msgid "_M3U"
+msgstr "_M3U"
 
-#: 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."
+#: ../data/gtkpod.glade.h:396
+msgid "_More Sort Tabs"
+msgstr "_יותר כרטיסיות מיון"
 
-#: gtkpod.glade:17294
-msgid "Update/Sync all playlists now"
-msgstr ""
+#: ../data/gtkpod.glade.h:397
+msgid "_Newly Added Tracks"
+msgstr "_רצועות חדשות שהוספו"
 
-#: gtkpod.glade:17314
-#, fuzzy
-msgid "Delete repository"
-msgstr "מחק מה-iPod"
+#: ../data/gtkpod.glade.h:398
+msgid "_Normalize Volume"
+msgstr "_נרמל עוצמת קול"
 
-#: gtkpod.glade:17334 src/context_menus.c:430 src/context_menus.c:448
-#: src/context_menus.c:523
-msgid "I'm sure"
-msgstr ""
+#: ../data/gtkpod.glade.h:399
+msgid "_Number of sort tabs:"
+msgstr "_מספר כרטיסיות המיון:"
 
-#: gtkpod.glade:17390
-#, fuzzy
-msgid "<b>Repositories</b>"
-msgstr "<b>תוויות מידע</b>"
+#: ../data/gtkpod.glade.h:400
+msgid "_Other"
+msgstr "_אחר"
 
-#: gtkpod.glade:17587
-msgid ""
-"Directories to sync with are determined from the filenames of the tracks in "
-"the playlist."
-msgstr ""
+#: ../data/gtkpod.glade.h:401
+msgid "_PLS"
+msgstr "_PLS"
 
-#: gtkpod.glade:17589
-msgid "On startup automatically sync with playlist directories"
-msgstr ""
+#: ../data/gtkpod.glade.h:402
+msgid "_Play Now"
+msgstr "_נגן עכשיו"
 
-#: gtkpod.glade:17608
+#: ../data/gtkpod.glade.h:403
+msgid "_Podcasts"
+msgstr "_פודקסטים"
+
+#: ../data/gtkpod.glade.h:404
+msgid "_Prefer Local"
+msgstr "_העדף מקומי"
+
+#: ../data/gtkpod.glade.h:405
+msgid "_Save Changes"
+msgstr "_שמור שינויים"
+
+#: ../data/gtkpod.glade.h:406
+msgid "_Save Displayed Track Order"
+msgstr "_שמירת סדר רצועות נראות"
+
+#: ../data/gtkpod.glade.h:407
+msgid "_Sorting"
+msgstr "_מיון"
+
+#: ../data/gtkpod.glade.h:408
 #, fuzzy
-msgid "On startup automatically sync with the following directory"
-msgstr "האם לסנכרן את התיקיות הבאות?"
+msgid "_Synchronize Playlist with Dir(s)"
+msgstr "סנכרן את רשימת ההשמעה עם התיקיה(יות)"
 
-#: gtkpod.glade:17702
+#: ../data/gtkpod.glade.h:409
+msgid "_Toolbar"
+msgstr "_סרגל כלים"
+
+#: ../data/gtkpod.glade.h:410
+msgid "_Tools"
+msgstr "_כלים"
+
+#: ../data/gtkpod.glade.h:411
+msgid "_Tooltips"
+msgstr "_תוויות מידע"
+
+#: ../data/gtkpod.glade.h:412
+msgid "_Track Info"
+msgstr "_מידע רצועה"
+
+#: ../data/gtkpod.glade.h:413
+msgid "_Undo All"
+msgstr "_בטל הכל"
+
+#: ../data/gtkpod.glade.h:414
+msgid "_Undo Track"
+msgstr "_בטל פעולה על רצועה"
+
+#: ../data/gtkpod.glade.h:415
+msgid "_Update Tracks from File"
+msgstr "_סנכרון רצועות מקובץ"
+
+#: ../data/gtkpod.glade.h:416
 #, fuzzy
-msgid "Don't automatically sync on startup"
-msgstr "יבא אוטומטית iTunesDB בתחילת התוכנית"
+msgid "_Video"
+msgstr "_תצוגה"
 
-#: gtkpod.glade:17848
-msgid "On startup automatically update (Live Playlist)"
-msgstr ""
+#: ../data/gtkpod.glade.h:417
+msgid "_View"
+msgstr "_תצוגה"
 
-#: gtkpod.glade:17878
-msgid "Update/Sync playlist now"
+#: ../data/gtkpod.glade.h:418
+msgid "_iPod"
+msgstr "_iPod"
+
+#: ../data/gtkpod.glade.h:420
+#, no-c-format
+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:17925
-#, fuzzy
-msgid "<b>Playlists</b>"
-msgstr "<b>נגן</b>"
+#: ../data/gtkpod.glade.h:421
+msgid "folder"
+msgstr "תיקיה"
 
-#: gtkpod.glade:18042
-#, fuzzy
-msgid "Create Repository"
-msgstr "מחק מה-iPod"
+#: ../data/gtkpod.glade.h:422
+msgid "folder.jpg"
+msgstr "folder.jpg"
 
-#: gtkpod.glade:18320
+#: ../data/gtkpod.glade.h:424
+#, no-c-format
+msgid "folder.jpg;%a.jpg"
+msgstr "folder.jpg;%a.jpg"
+
+#: ../data/gtkpod.glade.h:425
+msgid "gtkpod"
+msgstr "gtkpod"
+
+#: ../data/gtkpod.glade.h:426
+msgid "gtkpod Info"
+msgstr "מידע gtkpod"
+
+#: ../data/gtkpod.glade.h:427
 msgid ""
-"Insert before\n"
-"Insert after"
+"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:18358
-#, fuzzy
-msgid "Repository type:"
-msgstr "אפשרויות מיון"
+#: ../data/gtkpod.glade.h:428
+msgid "gtkpod options"
+msgstr "אפשרויות ה-gtkpod"
 
-#: gtkpod.glade:18386
+#. These are the items for the 'Repository type' combo in the 'Create Repository' dialog. Keep the three items in order!
+#: ../data/gtkpod.glade.h:430
 msgid ""
 "iPod\n"
 "Local Repository (Standard)\n"
 "Local Repository (Podcasts)\n"
 msgstr ""
+"iPod\n"
+"מאגר מקומי (סטנדרטי)\n"
+"מאגר מקומי (פודקסטים)\n"
 
-#: gtkpod.glade:18407
+#: ../data/gtkpod.glade.h:434
+msgid "iPod mountpoint:"
+msgstr "נקודת העגינה של ה-iPod:"
+
+#: ../data/gtkpod.glade.h:435
+msgid "iTunesDB backup:"
+msgstr "גיבוי ה־iTunesDB:"
+
+#: ../data/gtkpod.glade.h:436
 #, fuzzy
-msgid "Repository name:"
-msgstr "אפשרויות מיון"
+msgid "label"
+msgstr "label21"
 
-#: gtkpod.glade:18543 gtkpod.glade:18806
-msgid "Initialize iPod"
-msgstr ""
+#: ../data/gtkpod.glade.h:437
+msgid "mserv Root:"
+msgstr "שורש ה-mserv:"
 
-#: gtkpod.glade:18613
-msgid "<b>Please select mountpoint and your iPod model</b>"
-msgstr ""
+#: ../data/gtkpod.glade.h:438
+msgid "mserv database lookup will be done for music in this directory."
+msgstr "החיפוש במסד הנתונים mserv יתבצע בתיקייה זאת עבור מוזיקה."
 
-#: src/charset.c:53
+#: ../data/gtkpod.glade.h:439 ../src/details.c:1175
+msgid "n/a"
+msgstr "ל/ז"
+
+#: ../data/gtkpod.glade.h:440
+msgid "special_sorttab -- Don't translate!"
+msgstr "special_sorttab -- Don't translate!"
+
+#: ../src/charset.c:53
 msgid "Arabic (IBM-864)"
 msgstr "ערבית (IBM-864)"
 
-#: src/charset.c:54
+#: ../src/charset.c:54
 msgid "Arabic (ISO-8859-6)"
 msgstr "ערבית (ISO-8859-6)"
 
-#: src/charset.c:55
+#: ../src/charset.c:55
 msgid "Arabic (Windows-1256)"
 msgstr "ערבית (Windows-1256)"
 
-#: src/charset.c:56
+#: ../src/charset.c:56
 msgid "Baltic (ISO-8859-13)"
 msgstr "בלטית (ISO-8859-13)"
 
-#: src/charset.c:57
+#: ../src/charset.c:57
 msgid "Baltic (ISO-8859-4)"
 msgstr "בלטית (ISO-8859-4)"
 
-#: src/charset.c:58
+#: ../src/charset.c:58
 msgid "Baltic (Windows-1257)"
 msgstr "בלטית (Windows-1257)"
 
-#: src/charset.c:59
+#: ../src/charset.c:59
 msgid "Celtic (ISO-8859-14)"
 msgstr "קלטית (ISO-8859-14)"
 
-#: src/charset.c:60
+#: ../src/charset.c:60
 msgid "Central European (IBM-852)"
 msgstr "מרכז אירופאי (IBM-852)"
 
-#: src/charset.c:61
+#: ../src/charset.c:61
 msgid "Central European (ISO-8859-2)"
 msgstr "מרכז אירופאי (ISO-8859-2)"
 
-#: src/charset.c:62
+#: ../src/charset.c:62
 msgid "Central European (Windows-1250)"
 msgstr "מרכז אירופאי (Windows-1250)"
 
-#: src/charset.c:63
+#: ../src/charset.c:63
 msgid "Chinese Simplified (GB18030)"
 msgstr "סינית מופשטת (GB18030)"
 
-#: src/charset.c:64
+#: ../src/charset.c:64
 msgid "Chinese Simplified (GB2312)"
 msgstr "סינית מופשטת (GB2312)"
 
-#: src/charset.c:65
+#: ../src/charset.c:65
 msgid "Chinese Traditional (Big5)"
 msgstr "סינית מסורתית (Big5)"
 
-#: src/charset.c:66
+#: ../src/charset.c:66
 msgid "Chinese Traditional (Big5-HKSCS)"
 msgstr "סינית מסורתית (Big5-HKSCS)"
 
-#: src/charset.c:67
+#: ../src/charset.c:67
 msgid "Cyrillic (IBM-855)"
 msgstr "קירילית (IBM-855)"
 
-#: src/charset.c:68
+#: ../src/charset.c:68
 msgid "Cyrillic (ISO-8859-5)"
 msgstr "קירילית (ISO-8859-5)"
 
-#: src/charset.c:69
+#: ../src/charset.c:69
 msgid "Cyrillic (ISO-IR-111)"
 msgstr "קירילית (ISO-IR-111)"
 
-#: src/charset.c:70
+#: ../src/charset.c:70
 msgid "Cyrillic (KOI8-R)"
 msgstr "קירילית (KOI8-R)"
 
-#: src/charset.c:71
+#: ../src/charset.c:71
 msgid "Cyrillic (Windows-1251)"
 msgstr "קירילית (Windows-1251)"
 
-#: src/charset.c:72
+#: ../src/charset.c:72
 msgid "Cyrillic/Russian (CP-866)"
 msgstr "קירילית/רוסית (CP-866)"
 
-#: src/charset.c:73
+#: ../src/charset.c:73
 msgid "Cyrillic/Ukrainian (KOI8-U)"
 msgstr "קירילית/אוקראינית (KOI8-U)"
 
-#: src/charset.c:74
+#: ../src/charset.c:74
 msgid "English (US-ASCII)"
 msgstr "אנגלית (US-ASCII)"
 
-#: src/charset.c:75
+#: ../src/charset.c:75
 msgid "Greek (ISO-8859-7)"
 msgstr "יוונית (ISO-8859-7)"
 
-#: src/charset.c:76
+#: ../src/charset.c:76
 msgid "Greek (Windows-1253)"
 msgstr "יוונית (Windows-1253)"
 
-#: src/charset.c:77
+#: ../src/charset.c:77
 msgid "Hebrew (IBM-862)"
 msgstr "עברית (IBM-862)"
 
-#: src/charset.c:78
+#: ../src/charset.c:78
 msgid "Hebrew (Windows-1255)"
 msgstr "עברית (Windows-1255)"
 
-#: src/charset.c:79
+#: ../src/charset.c:79
 msgid "Japanese (automatic detection)"
 msgstr "יפנית (זיהוי אוטומטי)"
 
-#: src/charset.c:80
+#: ../src/charset.c:80
 msgid "Japanese (EUC-JP)"
 msgstr "יפנית (EUC-JP)"
 
-#: src/charset.c:81
+#: ../src/charset.c:81
 msgid "Japanese (ISO-2022-JP)"
 msgstr "יפנית (ISO-2022-JP)"
 
-#: src/charset.c:82
+#: ../src/charset.c:82
 msgid "Japanese (Shift_JIS)"
 msgstr "יפנית (Shift_JIS)"
 
-#: src/charset.c:83
+#: ../src/charset.c:83
 msgid "Korean (EUC-KR)"
 msgstr "קוריאנית (EUC-KR)"
 
-#: src/charset.c:84
+#: ../src/charset.c:84
 msgid "Nordic (ISO-8859-10)"
 msgstr "נורדית (ISO-8859-10)"
 
-#: src/charset.c:85
+#: ../src/charset.c:85
 msgid "South European (ISO-8859-3)"
 msgstr "דרום אירופאי (ISO-8859-3)"
 
-#: src/charset.c:86
+#: ../src/charset.c:86
 msgid "Thai (TIS-620)"
 msgstr "תאילנדית (TIS-620)"
 
-#: src/charset.c:87
+#: ../src/charset.c:87
 msgid "Turkish (IBM-857)"
 msgstr "טורקית (IBM-857)"
 
-#: src/charset.c:88
+#: ../src/charset.c:88
 msgid "Turkish (ISO-8859-9)"
 msgstr "טורקית (ISO-8859-9)"
 
-#: src/charset.c:89
+#: ../src/charset.c:89
 msgid "Turkish (Windows-1254)"
 msgstr "טורקית (Windows-1254)"
 
-#: src/charset.c:90
+#: ../src/charset.c:90
 msgid "Unicode (UTF-7)"
 msgstr "יוניקוד (UTF-7)"
 
-#: src/charset.c:91
+#: ../src/charset.c:91
 msgid "Unicode (UTF-8)"
 msgstr "יוניקוד (UTF-8)"
 
-#: src/charset.c:92
+#: ../src/charset.c:92
 msgid "Unicode (UTF-16BE)"
 msgstr "יוניקוד (UTF-16BE)"
 
-#: src/charset.c:93
+#: ../src/charset.c:93
 msgid "Unicode (UTF-16LE)"
 msgstr "יוניקוד (UTF-16LE)"
 
-#: src/charset.c:94
+#: ../src/charset.c:94
 msgid "Unicode (UTF-32BE)"
 msgstr "יוניקוד (UTF-32BE)"
 
-#: src/charset.c:95
+#: ../src/charset.c:95
 msgid "Unicode (UTF-32LE)"
 msgstr "יוניקוד (UTF-32LE)"
 
-#: src/charset.c:96
+#: ../src/charset.c:96
 msgid "Vietnamese (VISCII)"
 msgstr "וייטנאמית (VISCII)"
 
-#: src/charset.c:97
+#: ../src/charset.c:97
 msgid "Vietnamese (Windows-1258)"
 msgstr "וייטנאמית (Windows-1258)"
 
-#: src/charset.c:98
+#: ../src/charset.c:98
 msgid "Visual Hebrew (ISO-8859-8)"
 msgstr "עברית ויזואלית (ISO-8859-8)"
 
-#: src/charset.c:99
+#: ../src/charset.c:99
 msgid "Western (IBM-850)"
 msgstr "מערבי (IBM-850)"
 
-#: src/charset.c:100
+#: ../src/charset.c:100
 msgid "Western (ISO-8859-1)"
 msgstr "מערבי (ISO-8859-1)"
 
-#: src/charset.c:101
+#: ../src/charset.c:101
 msgid "Western (ISO-8859-15)"
 msgstr "מערבי (ISO-8859-15)"
 
-#: src/charset.c:102
+#: ../src/charset.c:102
 msgid "Western (Windows-1252)"
 msgstr "מערבי (Windows-1252)"
 
 #. sanity!
 #. check for "System Charset" and return NULL
-#: src/charset.c:160 src/charset.c:170 src/charset.c:223
+#: ../src/charset.c:160 ../src/charset.c:170 ../src/charset.c:223
 msgid "System Charset"
 msgstr "ערכת התווים של המערכת"
 
 #. we are not the first instance of gtkpod -- the socket is
 #. already being used, so we pass
-#: src/clientserver.c:215
+#: ../src/clientserver.c:214
 msgid ""
 "Another instance of gtkpod was detected. Playcount server not started.\n"
 msgstr "עותק ריצה נוסף של gtkpod נמצא. שרת ספירה לא יופעל.\n"
 
-#: src/confirmation.c:376
+#: ../src/confirmation.c:377
 msgid "Confirmation Dialogue"
 msgstr "תיבת דו שיח לאישור"
 
-#: src/context_menus.c:367 src/tools.c:852
+#: ../src/context_menus.c:359
+#, c-format
+msgid "Copied \"%s\" playlist to %s"
+msgstr ""
+
+#: ../src/context_menus.c:398
+#, fuzzy, c-format
+msgid "Copied %d track to '%s'"
+msgid_plural "Copied %d tracks to '%s'"
+msgstr[0] "הועתק %d מתוך %d רצועה."
+msgstr[1] "הועתקו %d מתוך %d רצועות."
+
+#: ../src/context_menus.c:426
+#, c-format
+msgid "Copied '%s' playlist to '%s' in '%s'"
+msgstr ""
+
+#: ../src/context_menus.c:459
+#, fuzzy, c-format
+msgid "Copied %d track to '%s' in '%s'"
+msgid_plural "Copied %d tracks to %s in '%s'"
+msgstr[0] "נמחקה %d רצועה מרשימת ההשמעה '%s'"
+msgstr[1] "נמחקו %d רצועות מרשימת ההשמעה '%s'"
+
+#: ../src/context_menus.c:619 ../src/tools.c:854
 msgid "Play Now"
 msgstr "נגן עכשיו"
 
-#: src/context_menus.c:373 src/tools.c:865
+#: ../src/context_menus.c:625 ../src/tools.c:867
 msgid "Enqueue"
 msgstr "הכנס לתור"
 
-#: src/context_menus.c:379
-#, fuzzy
+#: ../src/context_menus.c:631
 msgid "Copy Tracks to Filesystem"
-msgstr "_סנכרון רצועות מקובץ"
+msgstr "העתק רצועות אל מערכת הקבצים"
 
-#: src/context_menus.c:386 src/file_export.c:1081
+#: ../src/context_menus.c:638 ../src/file_export.c:1085
 msgid "Create Playlist File"
 msgstr "יצירת קובץ רשימת השמעה"
 
-#: src/context_menus.c:393
+#: ../src/context_menus.c:645
 msgid "Create new Playlist"
 msgstr "יצירת רשימת השמעה חדשה"
 
-#: src/context_menus.c:400
-#, fuzzy
+#: ../src/context_menus.c:652
 msgid "Update Tracks from File"
-msgstr "_סנכרון רצועות מקובץ"
+msgstr "עדכן רצועות מקובץ"
 
-#: src/context_menus.c:414
+#: ../src/context_menus.c:666
 msgid "Sync Playlist with Dir(s)"
-msgstr ""
+msgstr "סנכרן את רשימת ההשמעה עם התיקיה(יות)"
 
-#: src/context_menus.c:424
+#: ../src/context_menus.c:676
 msgid "Remove All Tracks from iPod"
 msgstr "מחק את כל הרצועות מה-iPod"
 
-#: src/context_menus.c:442
-#, fuzzy
+#: ../src/context_menus.c:694
 msgid "Remove All Podcasts from iPod"
-msgstr "מחק את כל הרצועות מה-iPod"
+msgstr "מחק את כל הפודקסטים מה-iPod"
 
-#: src/context_menus.c:457
+#: ../src/context_menus.c:709
 msgid "Delete Including Tracks"
 msgstr "מחק כולל רצועות"
 
-#: src/context_menus.c:465
+#: ../src/context_menus.c:717
 msgid "Delete But Keep Tracks"
 msgstr "מחק אבל שמור רצועות"
 
-#: src/context_menus.c:473
-#, fuzzy
+#: ../src/context_menus.c:725
 msgid "Edit iPod Properties"
-msgstr "יצירת תיקיות iPod"
+msgstr "ערוך מאפייני iPod"
 
-#: src/context_menus.c:493
+#: ../src/context_menus.c:732
 #, fuzzy
+msgid "Edit Repository Properties"
+msgstr "ערוך מאפייני iPod"
+
+#: ../src/context_menus.c:739
+msgid "Edit Playlist Properties"
+msgstr "ערוך מאפייני רשימת השמעה"
+
+#: ../src/context_menus.c:767
+msgid "View Full Size Artwork"
+msgstr ""
+
+#: ../src/context_menus.c:774
+#, fuzzy
+msgid "Select Cover From File"
+msgstr "מחק מה-iPod"
+
+#: ../src/context_menus.c:781
+msgid "Find Cover on Web"
+msgstr ""
+
+#: ../src/context_menus.c:794
 msgid "Load iPod"
-msgstr "_iPod"
+msgstr "טען iPod"
 
-#: src/context_menus.c:500
+#: ../src/context_menus.c:801
 msgid "Eject iPod"
-msgstr ""
+msgstr "נתק iPod"
 
-#: src/context_menus.c:517
+#: ../src/context_menus.c:818
 msgid "Remove All Tracks from Database"
 msgstr "מחק את כל הרצועות ממסד הנתונים"
 
-#: src/context_menus.c:532
+#: ../src/context_menus.c:833
 msgid "Delete Including Tracks (Harddisk)"
 msgstr "מחק כולל רצועות (דיסק קשיח)"
 
-#: src/context_menus.c:540
+#: ../src/context_menus.c:841
 msgid "Delete Including Tracks (Database)"
 msgstr "מחק כולל רצועות (מסד נתונים)"
 
-#: src/context_menus.c:548
+#: ../src/context_menus.c:849
 msgid "Delete From iPod"
 msgstr "מחק מה-iPod"
 
-#: src/context_menus.c:556
+#: ../src/context_menus.c:857
 msgid "Delete From Playlist"
 msgstr "מחק מרשימת ההשמעה"
 
-#: src/context_menus.c:564
+#: ../src/context_menus.c:865
 msgid "Delete From Harddisk"
 msgstr "מחק מהדיסק הקשיח"
 
-#: src/context_menus.c:572
+#: ../src/context_menus.c:873
 msgid "Delete From Database"
 msgstr "מחק ממסד הנתונים"
 
-#: src/context_menus.c:580
+#: ../src/context_menus.c:881
 msgid "Alphabetize"
 msgstr "סדר אלפאבתי"
 
-#: src/context_menus.c:596
+#: ../src/context_menus.c:949 ../src/context_menus.c:998
 #, fuzzy
-msgid "Edit Playlist Properties"
-msgstr "הוספת רשימת השמעה מקובץ"
+msgid "Copy selected playlist to..."
+msgstr "רשימות השמעה נבחרות"
 
-#: src/date_parser.l:269
+#: ../src/context_menus.c:1051
+#, fuzzy
+msgid "Copy selected track(s) to..."
+msgstr "רצועות נמחקות"
+
+#: ../src/date_parser.l:269
 #, c-format
 msgid "Date format error: unrecognized character: '%s'\n"
 msgstr "פורמט תאריך שגוי: תו לא מזוהה: '%s'\n"
 
-#: src/details.c:1182
-#, fuzzy
+#: ../src/details.c:700
+#, c-format
+msgid "%s (image data corrupted or unreadable)"
+msgstr ""
+
+#: ../src/details.c:1246
 msgid "<b>n/a</b>"
-msgstr "<b>נגן</b>"
+msgstr "<b>לא זמין</b>"
 
-#: src/display.c:891
-#, fuzzy
+#: ../src/display.c:647
 msgid "Edit selected entry of which sort tab?"
-msgstr "באיזה כרטיסיית מיון של רשומה נבחרת לעדכן?"
+msgstr "מאיזה כרטיסיית מיון לערוך את הרשומה הנבחרת?"
 
 #. no entry selected
-#: src/display.c:898 src/misc_confirm.c:431 src/misc_track.c:1613
+#: ../src/display.c:654 ../src/misc_confirm.c:435 ../src/misc_track.c:2059
 msgid "No entry selected."
 msgstr "לא נבחרה רשומה."
 
-#: src/display.c:1057 src/display.c:1384 src/display.c:1440 src/display.c:1494
-#: src/display.c:1549 src/display.c:1810
+#: ../src/display.c:813 ../src/display.c:1133 ../src/display.c:1189
+#: ../src/display.c:1243 ../src/display.c:1298 ../src/display.c:1559
 #, c-format
 msgid "No entry selected in Sort Tab %d"
 msgstr "לא נבחרה רשומה בכרטיסיית מיון %d"
 
-#: src/display.c:1096
-#, fuzzy
+#: ../src/display.c:852
 msgid "Remove entry of which sort tab from database?"
-msgstr "באיזה כרטיסיית מיון של רשומה נבחרת לייצא?"
+msgstr "הסר רשומה מאיזה כרטיסיית מיון במסד הנתונים?"
 
-#: src/display.c:1104
-#, fuzzy
+#: ../src/display.c:860
 msgid "Remove tracks in selected entry of which filter tab from the iPod?"
-msgstr "באיזה כרטיסיית מיון של רשומה נבחרת להוסיף רצועות לתור?"
+msgstr "באיזה כרטיסיית מיון של רשומה נבחרת להסיר רצועות מה־iPod?"
 
-#: src/display.c:1126
-#, fuzzy
+#: ../src/display.c:882
 msgid "Remove tracks in selected entry of which filter tab from the harddisk?"
-msgstr "באיזה כרטיסיית מיון של רשומה נבחרת להוסיף רצועות לתור?"
+msgstr "באיזה כרטיסיית מיון של רשומה נבחרת להסיר רצועות מהדיסק הקשיח?"
 
-#: src/display.c:1156
-#, fuzzy
+#: ../src/display.c:912
 msgid "Remove tracks in selected entry of which filter tab from playlist?"
-msgstr "באיזה כרטיסיית מיון של רשומה נבחרת להוסיף רצועות לתור?"
+msgstr "באיזה כרטיסיית מיון של רשומה נבחרת להסיר רצועות מרשימת ההשמעה?"
 
-#: src/display.c:1183 src/display.c:1221
+#: ../src/display.c:939 ../src/display.c:977
 #, c-format
 msgid ""
 "iPod at '%s' is not loaded.\n"
 "Please load it first."
 msgstr ""
+"ה־iPod ב־'%s' לא טעון.\n"
+"אנא טען אותו תחילה."
 
-#: src/display.c:1265 src/display.c:1292
+#: ../src/display.c:1014 ../src/display.c:1041
 msgid "Update selected entry of which sort tab?"
 msgstr "באיזה כרטיסיית מיון של רשומה נבחרת לעדכן?"
 
-#: src/display.c:1378
+#: ../src/display.c:1127
 msgid "Export selected entry of which sort tab?"
 msgstr "באיזה כרטיסיית מיון של רשומה נבחרת לייצא?"
 
-#: src/display.c:1434
+#: ../src/display.c:1183
 msgid "Create playlist file from selected entry of which sort tab?"
 msgstr "באיזה כרטיסיית מיון של רשומה נבחרת ליצור קובץ רשימת השמעה?"
 
-#: src/display.c:1488
+#: ../src/display.c:1237
 msgid "Play tracks in selected entry of which sort tab?"
 msgstr "באיזה כרטיסיית מיון של רשומה נבחרת לנגן רצועות?"
 
-#: src/display.c:1543
+#: ../src/display.c:1292
 msgid "Enqueue tracks in selected entry of which sort tab?"
 msgstr "באיזה כרטיסיית מיון של רשומה נבחרת להוסיף רצועות לתור?"
 
-#: src/display.c:1800
+#: ../src/display.c:1549
 msgid "Normalize tracks in selected entry of which sort tab?"
 msgstr "באיזה כרטיסיית מיון של רשומה נבחרת לנרמל רצועות?"
 
-#: src/display_itdb.c:355
-#, fuzzy, c-format
+#: ../src/display_coverart.c:1714
+msgid "Failed to remove the album from the album hash store."
+msgstr ""
+
+#: ../src/display_itdb.c:376
+#, c-format
 msgid "Failed to set cover art: '%s'\n"
-msgstr "כישלון בכתיבה ל '%s-%s'\n"
+msgstr "כשלון בקביעת עטיפה: '%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
+#: ../src/display_itdb.c:851 ../src/display_itdb.c:984
 msgid "Local"
 msgstr "מקומי"
 
 #. add podcast playlist
-#: src/display_itdb.c:852 src/display_itdb.c:963 src/display_itdb.c:991
+#: ../src/display_itdb.c:859 ../src/display_itdb.c:982
+#: ../src/display_itdb.c:1010
 msgid "Podcasts"
-msgstr ""
+msgstr "פודקסטים"
 
-#: src/display_itdb.c:1050
+#: ../src/display_itdb.c:868 ../src/display_itdb.c:986
+#: ../src/repository.c:1186
+msgid "iPod"
+msgstr "iPod"
+
+#: ../src/display_itdb.c:1069
 #, 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:496 src/display_playlists.c:538
+#: ../src/display_playlists.c:500 ../src/display_playlists.c:542
 msgid "Error: drag from iPod not possible in offline mode."
 msgstr "שגיאה: גרירה מה-iPod היא לא אפשרית במצב לא מקוון."
 
-#: src/display_playlists.c:565 src/display_songs.c:287
+#: ../src/display_playlists.c:569 ../src/display_tracks.c:286
 #, c-format
 msgid "Copied one track"
 msgid_plural "Copied %d tracks"
 msgstr[0] "רצועה אחת הועתקה"
 msgstr[1] "הועתקו %d רצועות"
 
-#: src/display_playlists.c:851
+#: ../src/display_playlists.c:849 ../src/display_playlists.c:861
 msgid "Can't reorder sorted treeview."
 msgstr "אי אפשר לסדר מחדש עץ ממוין."
 
-#: src/display_playlists.c:944
+#: ../src/display_playlists.c:938
 #, c-format
 msgid ""
 "This DND type (%d) is not (yet) supported. If you feel implementing this "
@@ -2293,352 +2468,393 @@
 "ראוי, צור קשר עם המחבר.\n"
 "\n"
 
-#: 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: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 ""
-"אי אפשר לבטל מיון של תצוגת העץ עקב באג בספרית ה-GTK הנמצאת בשימוש (%d.%d.%d "
-"< 2.5.4). ברגע שמיינת את תוגת העץ, אי אפשר לחזור חזרה למצב הלא ממוין.\n"
-"\n"
-
-#: src/display_songs.c:1923
-#, fuzzy
-msgid "Rtng"
-msgstr "מדרוג"
-
-#: src/display_songs.c:1926
-msgid "#"
-msgstr "#"
-
-#: src/display_songs.c:1929
-msgid "CD"
-msgstr "דיסק שמע"
-
-#: src/display_songs.c:1932
-msgid "ID"
-msgstr "מזהה"
-
-#: src/display_songs.c:1935
-msgid "Trnsfrd"
-msgstr "העברה"
-
-#: src/display_songs.c:1939
-msgid "Cmpl"
-msgstr "יצירה"
-
-#: src/display_songs.c:1945 src/display_spl.c:94
-msgid "Time"
-msgstr "זמן"
-
-#: src/display_songs.c:1948
-msgid "Plycnt"
-msgstr "ספירת שמע"
-
-#: src/display_songs.c:1960
-#, fuzzy
-msgid "Released"
-msgstr "קרא"
-
-#: 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:1966
-msgid "Vol."
-msgstr "עוצמה"
-
-#: src/display_songs.c:1969
-msgid "Sndchk."
-msgstr "בדיקת קול"
-
-#: src/display_sorttabs.c:456
+#: ../src/display_sorttabs.c:473
 msgid "'Played' condition ignored because of error."
 msgstr "התעלמות ממצב 'הושמע' עקב תקלה"
 
-#: src/display_sorttabs.c:459
+#: ../src/display_sorttabs.c:476
 msgid "'Modified' condition ignored because of error."
 msgstr "התעלמות ממצב 'שונה' עקב תקלה"
 
-#: src/display_sorttabs.c:462
+#: ../src/display_sorttabs.c:479
 msgid "'Added' condition ignored because of error."
 msgstr "התעלמות ממצב 'הוספה' עקב תקלה"
 
-#: src/display_sorttabs.c:1582 src/misc_conversion.c:60
+#: ../src/display_sorttabs.c:1563 ../src/misc_conversion.c:59
 msgid "All"
 msgstr "הכל"
 
-#: src/display_sorttabs.c:1608
-#, fuzzy
+#: ../src/display_sorttabs.c:1589
 msgid "Compilations"
-msgstr "יצירה"
+msgstr "יצירות"
 
-#: src/display_sorttabs.c:2951
+#: ../src/display_sorttabs.c:2960
 msgid "Comp."
 msgstr "יצירה"
 
-#: src/display_sorttabs.c:2960
+#: ../src/display_sorttabs.c:2966 ../src/display_spl.c:88
+#: ../src/display_tracks.c:2002 ../src/misc_conversion.c:84
+msgid "Year"
+msgstr "שנה"
+
+#: ../src/display_sorttabs.c:2969
 msgid "Special"
 msgstr "מיוחד"
 
-#: src/display_sorttabs.c:3216
+#: ../src/display_sorttabs.c:3230
 msgid "Last Played"
 msgstr "הושמע לאחרונה"
 
-#: src/display_sorttabs.c:3217
+#: ../src/display_sorttabs.c:3231
 msgid "Last Modified"
 msgstr "שונה לאחרונה"
 
-#: src/display_spl.c:64
+#: ../src/display_spl.c:64
 msgid "days"
 msgstr "ימים"
 
-#: src/display_spl.c:65
+#: ../src/display_spl.c:65
 msgid "weeks"
 msgstr "שבועות"
 
-#: src/display_spl.c:66
+#: ../src/display_spl.c:66
 msgid "months"
 msgstr "חודשים"
 
-#: src/display_spl.c:73
+#: ../src/display_spl.c:73
 msgid "kbps"
 msgstr "קס\"ש"
 
-#: src/display_spl.c:74
+#: ../src/display_spl.c:74
 msgid "Hz"
 msgstr "הרץ"
 
-#: src/display_spl.c:75 src/display_spl.c:160 src/info.c:777
+#: ../src/display_spl.c:75 ../src/display_spl.c:179 ../src/info.c:777
 msgid "MB"
 msgstr "מ\"ב"
 
-#: src/display_spl.c:76
+#: ../src/display_spl.c:76
 msgid "secs"
 msgstr "שניות"
 
-#: src/display_spl.c:86 src/misc_conversion.c:75
+#: ../src/display_spl.c:86 ../src/misc_conversion.c:74
 msgid "Bitrate"
 msgstr "קצב סיביות"
 
 #. 15
-#: src/display_spl.c:87 src/misc_conversion.c:76
+#: ../src/display_spl.c:87 ../src/misc_conversion.c:75
 msgid "Samplerate"
 msgstr "קצב דגימה"
 
-#: src/display_spl.c:90
+#: ../src/display_spl.c:90
 msgid "Kind"
 msgstr "סוג"
 
-#: src/display_spl.c:91 src/misc_conversion.c:82
+#: ../src/display_spl.c:91 ../src/misc_conversion.c:81
 msgid "Date modified"
 msgstr "תאריך שינוי"
 
-#: src/display_spl.c:92
+#: ../src/display_spl.c:92
 msgid "Track number"
 msgstr "מספר רצועה"
 
-#: src/display_spl.c:93
+#: ../src/display_spl.c:93
 msgid "Size"
 msgstr "גודל"
 
-#: src/display_spl.c:95 src/misc_conversion.c:65
+#: ../src/display_spl.c:94 ../src/display_tracks.c:1984
+msgid "Time"
+msgstr "זמן"
+
+#: ../src/display_spl.c:95 ../src/misc_conversion.c:64
 msgid "Comment"
 msgstr "הערה"
 
-#: src/display_spl.c:96 src/misc_conversion.c:80
+#: ../src/display_spl.c:96 ../src/misc_conversion.c:79
 msgid "Date added"
 msgstr "תאריך הוספה"
 
-#: src/display_spl.c:99
+#: ../src/display_spl.c:99
 msgid "Last played"
 msgstr "הושמע לאחרונה"
 
-#: src/display_spl.c:100
+#: ../src/display_spl.c:100
 msgid "Disc number"
 msgstr "מספר דיסק"
 
-#: src/display_spl.c:102 src/misc_conversion.c:88
+#: ../src/display_spl.c:102 ../src/misc_conversion.c:87
 msgid "Compilation"
 msgstr "יצירה"
 
-#: src/display_spl.c:103 src/misc_conversion.c:77
+#: ../src/display_spl.c:103 ../src/misc_conversion.c:76
 msgid "BPM"
 msgstr "BPM"
 
-#: src/display_spl.c:104 src/misc_conversion.c:87
+#: ../src/display_spl.c:104 ../src/misc_conversion.c:86
 msgid "Grouping"
 msgstr "קיבוץ"
 
-#: src/display_spl.c:111
+#: ../src/display_spl.c:106
+msgid "Video Kind"
+msgstr ""
+
+#: ../src/display_spl.c:107 ../src/display_spl.c:210 ../src/display_spl.c:219
+#: ../src/misc_conversion.c:101
+msgid "TV Show"
+msgstr ""
+
+#: ../src/display_spl.c:108
+#, fuzzy
+msgid "Season number"
+msgstr "מספר דיסק"
+
+#: ../src/display_spl.c:109
+msgid "Skip count"
+msgstr ""
+
+#: ../src/display_spl.c:110
+#, fuzzy
+msgid "Last skipped"
+msgstr "הושמע לאחרונה"
+
+#: ../src/display_spl.c:111
+#, fuzzy
+msgid "Album artist"
+msgstr "אמן"
+
+#: ../src/display_spl.c:117
 msgid "contains"
 msgstr "מכיל"
 
-#: src/display_spl.c:112
+#: ../src/display_spl.c:118
 msgid "does not contain"
 msgstr "לא מכיל"
 
-#: src/display_spl.c:113 src/display_spl.c:122 src/display_spl.c:132
-#: src/display_spl.c:151
+#: ../src/display_spl.c:119 ../src/display_spl.c:128 ../src/display_spl.c:138
+#: ../src/display_spl.c:157 ../src/display_spl.c:164
 msgid "is"
 msgstr "קיים"
 
-#: src/display_spl.c:114 src/display_spl.c:123 src/display_spl.c:133
-#: src/display_spl.c:152
+#: ../src/display_spl.c:120 ../src/display_spl.c:129 ../src/display_spl.c:139
+#: ../src/display_spl.c:158 ../src/display_spl.c:165
 msgid "is not"
 msgstr "לא קיים"
 
-#: src/display_spl.c:115
+#: ../src/display_spl.c:121
 msgid "starts with"
 msgstr "מתחיל ב-"
 
-#: src/display_spl.c:116
+#: ../src/display_spl.c:122
 msgid "ends with"
 msgstr "מסתיים ב-"
 
-#: src/display_spl.c:124
+#: ../src/display_spl.c:130
 msgid "is greater than"
 msgstr "גדול מ-"
 
-#: src/display_spl.c:125
+#: ../src/display_spl.c:131
 msgid "is less than"
 msgstr "קטן מ-"
 
-#: src/display_spl.c:126 src/display_spl.c:138
+#: ../src/display_spl.c:132 ../src/display_spl.c:144
 msgid "is in the range"
 msgstr "בטווח "
 
-#: src/display_spl.c:134
+#: ../src/display_spl.c:140
 msgid "is after"
 msgstr "אחרי"
 
-#: src/display_spl.c:135
+#: ../src/display_spl.c:141
 msgid "is before"
 msgstr "לפני"
 
-#: src/display_spl.c:136
+#: ../src/display_spl.c:142
 msgid "in the last"
 msgstr "אחרון"
 
-#: src/display_spl.c:137
+#: ../src/display_spl.c:143
 msgid "not in the last"
 msgstr "לא אחרון"
 
-#: src/display_spl.c:144
+#: ../src/display_spl.c:150
 msgid "is set"
 msgstr "מקובע"
 
-#: src/display_spl.c:145
+#: ../src/display_spl.c:151
 msgid "is not set"
 msgstr "לא מקובע"
 
-#: src/display_spl.c:159
+#: ../src/display_spl.c:171
+#, fuzzy
+msgid "Not supported"
+msgstr "לא רשום"
+
+#: ../src/display_spl.c:178
 msgid "minutes"
 msgstr "דקות"
 
-#: src/display_spl.c:161
+#: ../src/display_spl.c:180
 msgid "tracks"
 msgstr "רצועות"
 
-#: src/display_spl.c:162
+#: ../src/display_spl.c:181
 msgid "hours"
 msgstr "שעות"
 
-#: src/display_spl.c:163 src/info.c:777
+#: ../src/display_spl.c:182 ../src/info.c:777
 msgid "GB"
 msgstr "ג\"ב"
 
-#: src/display_spl.c:170
+#: ../src/display_spl.c:189
 msgid "random order"
 msgstr "סדר אקראי"
 
-#: src/display_spl.c:171
+#: ../src/display_spl.c:190
 msgid "title"
 msgstr "שם הרצועה"
 
-#: src/display_spl.c:172
+#: ../src/display_spl.c:191
 msgid "album"
 msgstr "כותר"
 
-#: src/display_spl.c:173
+#: ../src/display_spl.c:192
 msgid "artist"
 msgstr "אמן"
 
-#: src/display_spl.c:174
+#: ../src/display_spl.c:193
 msgid "genre"
 msgstr "סגנון"
 
-#: src/display_spl.c:175
+#: ../src/display_spl.c:194
 msgid "most recently added"
 msgstr "הוספו לאחרונה"
 
-#: src/display_spl.c:176
+#: ../src/display_spl.c:195
 msgid "least recently added"
 msgstr "לא הוספו לאחרונה"
 
-#: src/display_spl.c:177
+#: ../src/display_spl.c:196
 msgid "most often played"
 msgstr "מושמע בתכיפות גבוהה"
 
-#: src/display_spl.c:178
+#: ../src/display_spl.c:197
 msgid "least often played"
 msgstr "מושמע בתכיפות נמוכה"
 
-#: src/display_spl.c:179
+#: ../src/display_spl.c:198
 msgid "most recently played"
 msgstr "הושמע לאחרונה"
 
-#: src/display_spl.c:180
+#: ../src/display_spl.c:199
 msgid "least recently played"
 msgstr "לא הושמע לאחרונה"
 
-#: src/display_spl.c:181
+#: ../src/display_spl.c:200
 msgid "highest rating"
 msgstr "מדרוג גבוה ביותר"
 
-#: src/display_spl.c:182
+#: ../src/display_spl.c:201
 msgid "lowest rating"
 msgstr "מדרוג נמוך ביותר"
 
-#: src/display_spl.c:1047 src/display_spl.c:1062
+#: ../src/display_spl.c:208 ../src/display_spl.c:217
+#, fuzzy
+msgid "Movie"
+msgstr "שונה"
+
+#: ../src/display_spl.c:209 ../src/display_spl.c:218
+#, fuzzy
+msgid "Music Video"
+msgstr "שורש המוזיקה:"
+
+#: ../src/display_spl.c:1162 ../src/display_spl.c:1177
 msgid "to"
 msgstr "אל "
 
-#: src/display_spl.c:1279
+#: ../src/display_spl.c:1455
 msgid "-"
 msgstr "-"
 
-#: src/display_spl.c:1294
+#: ../src/display_spl.c:1470
 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
+#: ../src/display_spl.c:1689 ../src/misc_playlist.c:66
+#: ../src/misc_playlist.c:68 ../src/misc_playlist.c:93
+#: ../src/misc_playlist.c:95 ../src/misc_playlist.c:428
+#: ../src/misc_playlist.c:430
 msgid "New Playlist"
 msgstr "רשימת השמעה חדשה"
 
-#: src/file.c:230
+#: ../src/display_tracks.c:281
 #, c-format
+msgid "Moved one track"
+msgid_plural "Moved %d tracks"
+msgstr[0] "רצועה אחת הועברה"
+msgstr[1] "הועברו %d רצועות"
+
+#: ../src/display_tracks.c:1717
+#, 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 ""
+"אי אפשר לבטל מיון של תצוגת העץ עקב באג בספרית ה-GTK הנמצאת בשימוש (%d.%d.%d "
+"< 2.5.4). ברגע שמיינת את תוגת העץ, אי אפשר לחזור חזרה למצב הלא ממוין.\n"
+"\n"
+
+#: ../src/display_tracks.c:1962
+msgid "Rtng"
+msgstr "מדרוג"
+
+#: ../src/display_tracks.c:1965
+msgid "#"
+msgstr "#"
+
+#: ../src/display_tracks.c:1968
+msgid "CD"
+msgstr "דיסק שמע"
+
+#: ../src/display_tracks.c:1971
+msgid "ID"
+msgstr "מזהה"
+
+#: ../src/display_tracks.c:1974
+msgid "Trnsfrd"
+msgstr "העברה"
+
+#: ../src/display_tracks.c:1978
+msgid "Cmpl"
+msgstr "יצירה"
+
+#: ../src/display_tracks.c:1987
+msgid "Plycnt"
+msgstr "ספירת שמע"
+
+#: ../src/display_tracks.c:1999
+msgid "Released"
+msgstr "שוחרר"
+
+#: ../src/display_tracks.c:2005
+msgid "Vol."
+msgstr "עוצמה"
+
+#: ../src/display_tracks.c:2008
+msgid "Sndchk."
+msgstr "בדיקת קול"
+
+#: ../src/file.c:236
+#, c-format
+msgid ""
 "'%s' is a directory, not a playlist file.\n"
 "\n"
 msgstr ""
 "'%s' הוא תיקייה, לא קובץ רשימת השמעה.\n"
 "\n"
 
-#: src/file.c:258
+#: ../src/file.c:266
 #, c-format
 msgid ""
 "'%s' is a not a known playlist file.\n"
@@ -2647,7 +2863,7 @@
 "'%s' הוא לא קובץ רשימת השמעה מוכר.\n"
 "\n"
 
-#: src/file.c:275
+#: ../src/file.c:283
 #, c-format
 msgid ""
 "Cannot open '%s' for reading.\n"
@@ -2656,86 +2872,86 @@
 "לא מסוגל לפתוח את '%s' לקריאה.\n"
 "\n"
 
-#: src/file.c:359
+#: ../src/file.c:369
 #, c-format
 msgid "Skipping '%s' because it is a directory.\n"
 msgstr "מדלג על '%s' בגלל שהוא תיקייה.\n"
 
-#: src/file.c:364
+#: ../src/file.c:374
 #, c-format
 msgid "Skipping '%s' to avoid adding playlist file recursively\n"
 msgstr "מדלג על '%s' על מנת להתחמק מהוספת קובץ רשימת השמעה רקורסיבי\n"
 
-#: src/file.c:619
+#: ../src/file.c:629
 #, c-format
 msgid "Unknown token '%s' in template '%s'\n"
 msgstr "הסימן '%s' בתבנית '%s' לא ידוע\n"
 
-#: src/file.c:871
+#: ../src/file.c:890
 #, c-format
 msgid "Local filename not valid (%s)"
 msgstr "שם קובץ מקומי לא תקין (%s)"
 
-#: src/file.c:930
+#: ../src/file.c:949
 #, c-format
 msgid "No information found for user '%s' in '%s'"
 msgstr "לא קיים מידע למשתמש '%s' ב- '%s'"
 
-#: src/file.c:939
+#: ../src/file.c:958
 #, c-format
 msgid "mserv data file (%s) not available for track (%s)"
 msgstr "מידע קובץ mserv (%s) לא זמין עבור רצועה (%s)"
 
-#: src/file.c:947
+#: ../src/file.c:966
 #, c-format
 msgid "Track (%s) not in mserv music root directory (%s)"
 msgstr "הרצועה (%s) לא קיימת בתיקיית השורש של mserv (%s)"
 
-#: src/file.c:1055
+#: ../src/file.c:1090
 #, c-format
 msgid ""
 "The following track could not be processed (file does not exist): '%s'\n"
 msgstr "אי אפשר לעבד את הרצועה הבאה (הקובץ לא קיים): '%s'\n"
 
-#: src/file.c:1118
+#: ../src/file.c:1169
 #, c-format
 msgid "The following track could not be processed (filetype unknown): '%s'\n"
 msgstr "אי אפשר לעבד את הרצועה הבאה (סוג קובץ לא ידוע): '%s'\n"
 
-#: src/file.c:1211
+#: ../src/file.c:1262
 #, c-format
 msgid ""
 "The following track could not be processed (filetype is known but analysis "
 "failed): '%s'\n"
 msgstr "אי אפשר לעבד את הרצועה הבאה (סוג קובץ ידוע, אך הבדיקה נכשלה): '%s'\n"
 
-#: src/file.c:1241 src/file.c:1295
+#: ../src/file.c:1292 ../src/file.c:1346
 msgid "Nothing to update"
 msgstr "אין מה לעדכן"
 
-#: src/file.c:1262
+#: ../src/file.c:1313
 #, c-format
 msgid "Updating %s"
 msgstr "מעדכן %s"
 
-#: src/file.c:1276
+#: ../src/file.c:1327
 msgid "Updated selected tracks with info from file."
 msgstr "מעדכן רצועות נבחרות עם מידע מקובץ."
 
-#: src/file.c:1310
+#: ../src/file.c:1361
 #, c-format
 msgid "Retrieving mserv data %s"
 msgstr "מאחזר נתוני mserv %s"
 
-#: src/file.c:1315
+#: ../src/file.c:1366
 msgid "no filename available"
 msgstr "קובץ לא קיים"
 
-#: src/file.c:1320
+#: ../src/file.c:1371
 msgid "Updated selected tracks with data from mserv."
 msgstr "עודכנו רצועות נבחרות עם נתונים מ-mserv"
 
-#: src/file.c:1341
+#: ../src/file.c:1392
 #, c-format
 msgid "The following track could not be updated"
 msgid_plural "The following %d tracks could not be updated"
@@ -2744,11 +2960,11 @@
 
 #. gint id,
 #. gboolean modal,
-#: src/file.c:1347
+#: ../src/file.c:1398
 msgid "Failed Track Update"
 msgstr "עדכון רצועה נכשל"
 
-#: src/file.c:1405
+#: ../src/file.c:1456
 #, c-format
 msgid "The following track has been updated"
 msgid_plural "The following %d tracks have been updated"
@@ -2757,11 +2973,11 @@
 
 #. gint id,
 #. gboolean modal,
-#: src/file.c:1411
+#: ../src/file.c:1462
 msgid "Successful Track Update"
 msgstr "הרצועה עודכנה בהצלחה"
 
-#: src/file.c:1470
+#: ../src/file.c:1521
 #, c-format
 msgid "No mserv information could be retrieved for the following track"
 msgid_plural ""
@@ -2771,90 +2987,92 @@
 
 #. gint id,
 #. gboolean modal,
-#: src/file.c:1476
+#: ../src/file.c:1527
 msgid "mserv data retrieval problem"
 msgstr "בעיה בהשגת מידע מ-mserv"
 
-#: src/file.c:1565
+#: ../src/file.c:1616
 msgid "no local filename available, file on the iPod will be used instead"
-msgstr ""
+msgstr "קובץ מקומי לא זמין, יעשה שימוש בקובץ על ה־iPod"
 
-#: src/file.c:1571
+#: ../src/file.c:1622
 msgid "no local filename available and copy on iPod cannot be found"
-msgstr ""
+msgstr "קובץ מקומי לא זמין ועותק על ה־iPod גם כן לא זמין"
 
-#: src/file.c:1575 src/file.c:1593
-#, fuzzy
+#: ../src/file.c:1626 ../src/file.c:1644
 msgid "no local filename available"
-msgstr "קובץ לא קיים"
+msgstr "קובץ מקומי לא זמין"
 
-#: src/file.c:1583
+#: ../src/file.c:1634
 msgid "local file could not be found, file on the iPod will be used instead"
-msgstr ""
+msgstr "קובץ מקומי לא קיים, יעשה שימוש בקובץ על ה־iPod"
 
-#: src/file.c:1589
+#: ../src/file.c:1640
 msgid "local file as well as copy on the iPod cannot be found"
-msgstr ""
+msgstr "לא נמצא קובץ מקומי וגם העותק על ה־iPod לא נמצא"
 
 #. update not successful -- log this track for later display
-#: src/file.c:1651
-#, fuzzy
+#: ../src/file.c:1728
 msgid "update failed (format no supported?)"
-msgstr "הפורמט לא נתמך"
+msgstr "העדכון נכשל (התבנית לא נתמכת?)"
 
-#: src/file.c:1734
+#: ../src/file.c:1813
 #, c-format
 msgid "Processing '%s'..."
 msgstr "מעבד '%s'..."
 
-#: src/file.c:1740
+#: ../src/file.c:1819
 #, c-format
 msgid "File skipped. match exclude masks: '%s'\n"
-msgstr ""
+msgstr "דילגנו על הקובץ. תבנית מסכת שלילה: '%s'\n"
 
-#: src/file.c:1852 src/misc_track.c:1299 src/misc_track.c:1355
+#: ../src/file.c:1939 ../src/misc_track.c:1694 ../src/misc_track.c:1799
 #, c-format
 msgid ""
 "Podcast already present: '%s'\n"
 "\n"
 msgstr ""
+"הפודקסט כבר קיים: '%s'\n"
+"\n"
 
-#: src/file.c:1913
-#, fuzzy, c-format
+#: ../src/file.c:2004
+#, c-format
 msgid ""
 "Writing to video files not yet supported (%s).\n"
 "\n"
-msgstr "נרמול נכשל: סוג קובץ לא נתמך.\n"
+msgstr ""
+"כתיבת קבצי וידאו עדיין לא נתמך (%s).\n"
+"\n"
 
-#: src/file.c:1965 src/file.c:1979
+#: ../src/file.c:2056 ../src/file.c:2070
 #, c-format
 msgid "Couldn't change tags of file: %s\n"
 msgstr "לא מסוגל לשנות תג של קובץ: %s\n"
 
-#: src/file.c:2076
+#: ../src/file.c:2172
 #, c-format
 msgid "Could not open '%s' for reading and writing.\n"
 msgstr "אי אפשר לפתוח את '%s' לקריאה וכתיבה.\n"
 
-#: src/file.c:2083
+#: ../src/file.c:2179
 #, c-format
 msgid "Could not obtain lock on '%s'.\n"
 msgstr "אי אשפר להשיג נעילה על '%s'.\n"
 
 #. error!
-#: src/file.c:2100 src/file.c:2109 src/file.c:2120 src/file.c:2130
+#: ../src/file.c:2196 ../src/file.c:2205 ../src/file.c:2216 ../src/file.c:2226
 #, c-format
 msgid "Malformed line in '%s': %s\n"
 msgstr "שורה לא תקינה ב '%s' : %s\n"
 
 #. gint id,
 #. gboolean modal,
-#: src/file.c:2159
+#: ../src/file.c:2255
 msgid "Remove offline playcounts?"
 msgstr "הסר מספור השמעות לא מקוון?"
 
 #. title
-#: src/file.c:2160
+#: ../src/file.c:2256
 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."
@@ -2862,106 +3080,226 @@
 "אי אפשר לאתר מספר רצועות שנוגנו בצורה לא מקוונת ב-iTunesDB. לחץ על 'אישור' "
 "להסיר אותן ממספור ההשמעה הלא מקוון, ועל 'ביטול' להשאיר אותן."
 
-#: src/file.c:2177
+#: ../src/file.c:2273
 #, c-format
 msgid "Error writing to '%s'.\n"
 msgstr "תקלה בכתיבה ל-'%s'.\n"
 
-#: src/file.c:2232 src/tools.c:269
-#, fuzzy, c-format
+#: ../src/file.c:2330 ../src/tools.c:271
+#, c-format
 msgid ""
 "Normalization failed: file type not supported (%s).\n"
 "\n"
-msgstr "נרמול נכשל: סוג קובץ לא נתמך.\n"
+msgstr ""
+"נרמול נכשל: סוג קובץ לא נתמך(%s).\n"
+"\n"
 
-#: src/file.c:2248 src/tools.c:286
-#, fuzzy, c-format
+#: ../src/file.c:2346 ../src/tools.c:288
+#, c-format
 msgid ""
 "Normalization failed: file not available (%s).\n"
 "\n"
-msgstr "נרמול נכשל: קובץ לא קיים.\n"
+msgstr ""
+"נרמול נכשל: קובץ לא קיים (%s).\n"
+"\n"
 
-#: src/file_export.c:182
+#: ../src/file_convert.c:316
+msgid "Summary status of conversion processes"
+msgstr ""
+
+#: ../src/file_convert.c:564
+msgid "active"
+msgstr ""
+
+#: ../src/file_convert.c:569
+msgid "inactive"
+msgstr ""
+
+#: ../src/file_convert.c:580
 #, c-format
+msgid "Active threads: %d. Scheduled tracks: %d."
+msgstr ""
+
+#: ../src/file_convert.c:1061
+#, fuzzy, c-format
+msgid "Original filename not available for '%s.'\n"
+msgstr ""
+"נרמול נכשל: קובץ לא קיים (%s).\n"
+"\n"
+
+#: ../src/file_convert.c:1076
+#, c-format
+msgid "Filename '%s' is no longer valid for '%s'.\n"
+msgstr ""
+
+#: ../src/file_convert.c:1127
+msgid "Ogg Vorbis"
+msgstr ""
+
+#: ../src/file_convert.c:1133
+msgid "FLAC"
+msgstr ""
+
+#: ../src/file_convert.c:1188
+#, c-format
+msgid ""
+"Files of type '%s' are not supported by the iPod. Please go to the "
+"Preferences to set up and turn on a suitable conversion script for '%s'.\n"
+"\n"
+msgstr ""
+
+#: ../src/file_convert.c:1274
+#, fuzzy
+msgid "No information available"
+msgstr "קובץ לא קיים"
+
+#: ../src/file_convert.c:1313
+#, c-format
+msgid "Could not create '%s'. Filetype conversion will not work.\n"
+msgstr ""
+
+#: ../src/file_convert.c:1631 ../src/file_convert.c:3040
+#, fuzzy, c-format
+msgid ""
+"Transfer of '%s' failed. %s\n"
+"\n"
+msgstr ""
+"הביצוע של '%s' נכשל.\n"
+"\n"
+
+#: ../src/file_convert.c:2035 ../src/file_convert.c:2313
+#, fuzzy, c-format
+msgid ""
+"Conversion of '%s' failed: '%s'.\n"
+"\n"
+msgstr ""
+"הביצוע של '%s' נכשל.\n"
+"\n"
+
+#: ../src/file_convert.c:2050
+#, c-format
+msgid ""
+"Conversion of '%s' failed: '%s %s' returned exit status %d.\n"
+"\n"
+msgstr ""
+
+#: ../src/file_convert.c:2079
+#, c-format
+msgid ""
+"Conversion of '%s' failed: '%s %s' did not return filename extension as "
+"expected.\n"
+"\n"
+msgstr ""
+
+#: ../src/file_convert.c:2155
+#, c-format
+msgid ""
+"Covnersion of '%s' failed: Could not access original file '%s' (%s).\n"
+"\n"
+msgstr ""
+
+#: ../src/file_convert.c:2210
+#, c-format
+msgid ""
+"Conversion of '%s' failed: Could not create directory '%s'.\n"
+"\n"
+msgstr ""
+
+#: ../src/file_convert.c:2344
+#, c-format
+msgid ""
+"Conversion of '%s' failed: '%s' returned exit status %d.\n"
+"\n"
+msgstr ""
+
+#: ../src/file_convert.c:2383
+#, c-format
+msgid ""
+"Conversion of '%s' failed: could not stat the converted file '%s'.\n"
+"\n"
+msgstr ""
+
+#: ../src/file_export.c:182
+#, c-format
 msgid "Skipping existing file with same length: '%s'\n"
 msgstr "מדלג על קובץ קיים עם אורך זהה: '%s'\n"
 
-#: src/file_export.c:190
+#: ../src/file_export.c:190
 #, c-format
 msgid "Overwriting existing file: '%s'\n"
 msgstr "כותב על קובץ קיים: '%s'\n"
 
-#: src/file_export.c:207
+#: ../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:209
+#: ../src/file_export.c:209
 #, c-format
 msgid "Error copying '%s' to '%s' (%s)\n"
 msgstr "תקלה בהעתקת '%s' ל '%s' (%s)\n"
 
-#: src/file_export.c:217
+#: ../src/file_export.c:217
 #, c-format
 msgid "Unable to open '%s' for reading\n"
 msgstr "אי אפשר לפתוח את '%s' לקריאה\n"
 
-#: src/file_export.c:327
+#: ../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:395 src/file_itunesdb.c:1230 src/tools.c:359
+#: ../src/file_export.c:395 ../src/tools.c:361
 msgid "Information"
 msgstr "מידע"
 
-#: src/file_export.c:406 src/tools.c:371
+#: ../src/file_export.c:406 ../src/tools.c:373
 msgid "Press button to abort."
 msgstr "לביטול לחץ על הכפתור."
 
-#: src/file_export.c:419
+#: ../src/file_export.c:419
 msgid "copying..."
 msgstr "מעתיק..."
 
-#: src/file_export.c:472
+#: ../src/file_export.c:476
 #, c-format
 msgid "Failed to write '%s-%s'\n"
 msgstr "כישלון בכתיבה ל '%s-%s'\n"
 
-#: src/file_export.c:485
+#: ../src/file_export.c:489
 #, 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:501 src/file_itunesdb.c:1495 src/tools.c:517
+#: ../src/file_export.c:505 ../src/tools.c:519
 #, c-format
 msgid "%d%% (%d:%02d:%02d left)"
 msgstr "%d%% (%d:%02d:%02d נותרו)"
 
-#: src/file_export.c:510
+#: ../src/file_export.c:514
 msgid "Some tracks were not copied."
 msgstr "מספר רצועות לא הועתקו."
 
-#: src/file_export.c:575
+#: ../src/file_export.c:579
 msgid "Export from iPod database not possible in offline mode."
 msgstr "יצוא ממסד הנתונים של ה-iPod הוא לא אפשרי במצב לא מקוון."
 
-#: src/file_export.c:583
+#: ../src/file_export.c:587
 msgid "Select Export Destination Directory"
 msgstr "בחר נתיב תיקיית יצוא"
 
-#: src/file_export.c:732
+#: ../src/file_export.c:736
 msgid "Drag from iPod database not possible in offline mode."
 msgstr "גרירה ממסד הנתונים של ה-iPod היא לא אפשרית במצב לא מקוון."
 
-#: src/file_export.c:766
+#: ../src/file_export.c:770
 msgid "The following tracks have to be copied to your harddisk"
 msgstr "הרצועות הבאות צריכות להיות מועתקות לכונן הקשיח שלך"
 
-#: src/file_export.c:811
+#: ../src/file_export.c:815
 msgid ""
 "Some tracks were not copied to your harddisk. Only the copied tracks will be "
 "included in the current drag and drop operation.\n"
@@ -2971,7 +3309,7 @@
 "הגרור & שחרר הנוכחית.\n"
 "\n"
 
-#: src/file_export.c:1006
+#: ../src/file_export.c:1010
 #, c-format
 msgid ""
 "No valid filename for: %s\n"
@@ -2980,14 +3318,14 @@
 "קובץ לא תקין עבור: %s\n"
 "\n"
 
-#: src/file_export.c:1022
+#: ../src/file_export.c:1026
 #, c-format
 msgid "Created playlist with one track."
 msgid_plural "Created playlist with %d tracks."
 msgstr[0] "נוצרה רשימת השמעה עם רצועה אחת."
 msgstr[1] "נוצרה רשימת השמעה עם %d רצועות."
 
-#: src/file_export.c:1027
+#: ../src/file_export.c:1031
 #, c-format
 msgid ""
 "Could not open '%s' for writing (%s).\n"
@@ -2996,29 +3334,29 @@
 "אי אפשר לפתוח את '%s' לכתיבה (%s).\n"
 "\n"
 
-#: src/file_itunesdb.c:115
-#, c-format
-msgid "Matching MD5 checksum for file %d/%d"
-msgstr ""
+#: ../src/file_itunesdb.c:127
+#, fuzzy, c-format
+msgid "Matching SHA1 checksum for file %d/%d"
+msgstr "בודק סכומי MD5 עבור קובץ %d/%d"
 
-#: src/file_itunesdb.c:223
+#: ../src/file_itunesdb.c:234
 msgid "Could not open \"iTunesDB.ext\" for reading extended info.\n"
 msgstr "אי אפשר לפתוח את \"iTunesDB.ext\" לקריאת מידע מורחב.\n"
 
-#: src/file_itunesdb.c:230
+#: ../src/file_itunesdb.c:241
 msgid "Could not create hash value from itunesdb\n"
 msgstr "אי אפשר ליצור ערך ערבוב עבור itunesdb\n"
 
-#: src/file_itunesdb.c:244
+#: ../src/file_itunesdb.c:255
 #, c-format
 msgid "Error while reading extended info: %s\n"
 msgstr "תקלה בזמן קריאת מידע מורחב: %s\n"
 
-#: src/file_itunesdb.c:261
-#, c-format
+#: ../src/file_itunesdb.c:272
+#, fuzzy, 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 "
+"gtkpod will try to match the information using SHA1 checksums. This may take "
 "a long time.\n"
 "\n"
 msgstr ""
@@ -3027,7 +3365,7 @@
 "gtkpod ינסה להתאים את המידע על ידי שימוש ב-MD5. דבר זה עלול לקחת זמן רב.\n"
 "\n"
 
-#: src/file_itunesdb.c:273
+#: ../src/file_itunesdb.c:284
 #, c-format
 msgid ""
 "%s:\n"
@@ -3036,7 +3374,7 @@
 "%s:\n"
 "מצפים ל \"itunesdb_hash=\" אבל קיבלנו:\"%s\"\n"
 
-#: src/file_itunesdb.c:333
+#: ../src/file_itunesdb.c:344
 #, c-format
 msgid ""
 "%s:\n"
@@ -3045,12 +3383,13 @@
 "%s:\n"
 "תקלת פורמט: %s\n"
 
-#: src/file_itunesdb.c:377
+#: ../src/file_itunesdb.c:387
+#, fuzzy
 msgid ""
-"No MD5 checksums on individual tracks are available.\n"
+"No SHA1 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 "
+"(will provide SHA1 checksums) or avoid using the iPod with programs other "
 "than gtkpod.\n"
 "\n"
 msgstr ""
@@ -3059,7 +3398,7 @@
 "ביקורת) או הימנע משימוש בתוכנות אחרות מלבד gtkpod.\n"
 "\n"
 
-#: src/file_itunesdb.c:439
+#: ../src/file_itunesdb.c:451
 msgid ""
 "Extended info will not be used. If you have non-transferred tracks,\n"
 "these will be lost.\n"
@@ -3067,15 +3406,15 @@
 "מידע מורחב לא יהיה בשימוש. אם יש לך רצועות שלא הועברו,\n"
 "הן ילכו לאיבוד.\n"
 
-#: src/file_itunesdb.c:447
+#: ../src/file_itunesdb.c:459
 msgid "Offline iPod database successfully imported"
 msgstr "מסד נתונים לא מקוון של iPod יובא בהצלחה."
 
-#: src/file_itunesdb.c:450
+#: ../src/file_itunesdb.c:462
 msgid "Local database successfully imported"
 msgstr "מסד נתונים מקומי יובא בהצלחה"
 
-#: src/file_itunesdb.c:458
+#: ../src/file_itunesdb.c:470
 #, c-format
 msgid ""
 "Offline iPod database import failed: '%s'\n"
@@ -3084,7 +3423,7 @@
 "כישלון ביבוא מסד נתונים לא מקוון של iPod: '%s'\n"
 "\n"
 
-#: src/file_itunesdb.c:462
+#: ../src/file_itunesdb.c:474
 #, c-format
 msgid ""
 "Local database import failed: '%s'\n"
@@ -3093,7 +3432,7 @@
 "כישלון ביבוא מסד נתונים מקומי: '%s'\n"
 "\n"
 
-#: src/file_itunesdb.c:469
+#: ../src/file_itunesdb.c:481
 msgid ""
 "Offline iPod database import failed: \n"
 "\n"
@@ -3101,7 +3440,7 @@
 "כישלון ביבוא מסד נתונים לא מקוון של iPod: \n"
 "\n"
 
-#: src/file_itunesdb.c:472
+#: ../src/file_itunesdb.c:484
 msgid ""
 "Local database import failed: \n"
 "\n"
@@ -3109,7 +3448,7 @@
 "כישלון ביבוא מסד נתונים מקומי: \n"
 "\n"
 
-#: src/file_itunesdb.c:479
+#: ../src/file_itunesdb.c:491
 #, c-format
 msgid ""
 "'%s' does not exist. Import aborted.\n"
@@ -3118,15 +3457,15 @@
 "יבוא בוטל. לא קיים '%s'\n"
 "\n"
 
-#: src/file_itunesdb.c:502
+#: ../src/file_itunesdb.c:514
 msgid "Extended info will not be used.\n"
 msgstr "מידע מורחב לא יהיה בשימוש.\n"
 
-#: src/file_itunesdb.c:509
+#: ../src/file_itunesdb.c:521
 msgid "iPod Database Successfully Imported"
 msgstr "מסד נתונים של iPod יובא בהצלחה."
 
-#: src/file_itunesdb.c:516
+#: ../src/file_itunesdb.c:528
 #, c-format
 msgid ""
 "iPod Database Import Failed: '%s'\n"
@@ -3135,7 +3474,7 @@
 "כישלון ביבוא מסד נתונים של iPod: '%s'\n"
 "\n"
 
-#: src/file_itunesdb.c:522
+#: ../src/file_itunesdb.c:534
 msgid ""
 "iPod Database Import Failed.\n"
 "\n"
@@ -3143,16 +3482,16 @@
 "כישלון ביבוא מסד נתונים של iPod: \n"
 "\n"
 
-#: src/file_itunesdb.c:531
-#, fuzzy, c-format
+#: ../src/file_itunesdb.c:543
+#, c-format
 msgid ""
 "'%s' (or similar) does not exist. Import aborted.\n"
 "\n"
 msgstr ""
-"יבוא בוטל. לא קיים '%s'\n"
+"ה־'%s' לא קיים. היבוא בוטל.\n"
 "\n"
 
-#: src/file_itunesdb.c:817
+#: ../src/file_itunesdb.c:859
 #, c-format
 msgid ""
 "Could not find iPod directory structure at '%s'.\n"
@@ -3162,45 +3501,104 @@
 "Do you want to create the directory structure now?\n"
 msgstr ""
 
-#: src/file_itunesdb.c:1071
+#: ../src/file_itunesdb.c:1140
 #, c-format
 msgid "Could not open \"%s\" for writing extended info.\n"
 msgstr "אי אפשר לפתוח \"%s\" לכתיבת מידע מורחב.\n"
 
-#: src/file_itunesdb.c:1086
+#: ../src/file_itunesdb.c:1155
 msgid "Aborted writing of extended info.\n"
 msgstr "כתיבת מידע מורחב בוטלה.\n"
 
-#: src/file_itunesdb.c:1241
+#: ../src/file_itunesdb.c:1356
+#, c-format
+msgid "%d%%"
+msgstr ""
+
+#: ../src/file_itunesdb.c:1370
+#, fuzzy, c-format
+msgid "%d%% (%d/%d  %d:%02d:%02d left)"
+msgstr "%d%% (%d:%02d:%02d נותרו)"
+
+#: ../src/file_itunesdb.c:1412
+msgid "Status: Deleting File"
+msgstr ""
+
+#: ../src/file_itunesdb.c:1473
+#, fuzzy, c-format
 msgid ""
-"Press button to abort.\n"
-"Export can be continued at a later time."
+"Could not remove the following file: '%s'\n"
+"\n"
 msgstr ""
-"לחץ על הכפתור לביטול.\n"
-"בכל עת ניתן להמשיך את היצוא."
+"אי אפשר לפתוח את '%s' לכתיבה (%s).\n"
+"\n"
 
-#: src/file_itunesdb.c:1310
-msgid "deleting..."
-msgstr "מוחק..."
+#: ../src/file_itunesdb.c:1581
+#, fuzzy
+msgid ""
+"The following track could not be converted successfully:\n"
+"\n"
+msgid_plural ""
+"The following tracks could not be converted successfully:\n"
+"\n"
+msgstr[0] "הרצועה הבאה איננה יכולה להתעדכן"
+msgstr[1] "%d הרצועות הבאות אינן יכולות להתעדכן"
 
-#: src/file_itunesdb.c:1413
-msgid "preparing to copy..."
-msgstr "מתכונן להעתיק..."
+#: ../src/file_itunesdb.c:1591
+#, fuzzy
+msgid ""
+"The following track could not be transferred successfully:\n"
+"\n"
+msgid_plural ""
+"The following tracks could not be transferred successfully:\n"
+"\n"
+msgstr[0] "הרצועה הבאה איננה יכולה להתעדכן"
+msgstr[1] "%d הרצועות הבאות אינן יכולות להתעדכן"
 
-#: 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 רצועות חדשות."
+#. ID
+#. modal,
+#. gint id,
+#. gboolean modal,
+#: ../src/file_itunesdb.c:1600 ../src/misc_confirm.c:70
+msgid "Warning"
+msgstr "אזהרה"
 
-#: src/file_itunesdb.c:1506
-msgid "Some tracks were not written to iPod. Export aborted!"
-msgstr "מספר רצועות לא נכתבו ל-iPod. יצוא בוטל!"
+#. title
+#: ../src/file_itunesdb.c:1601
+msgid ""
+"The iPod could not be ejected. Please fix the problems mentioned below and "
+"then eject the iPod again. Pressing 'OK' will re-schedule the failed tracks "
+"for conversion and transfer."
+msgstr ""
 
-#: src/file_itunesdb.c:1557
+#: ../src/file_itunesdb.c:1663
+msgid "Status: Copying track"
+msgstr ""
+
+#: ../src/file_itunesdb.c:1669
+msgid "Status: Waiting for conversion to complete"
+msgstr ""
+
+#: ../src/file_itunesdb.c:1673
+msgid "Status: Finished transfer"
+msgstr ""
+
+#: ../src/file_itunesdb.c:1714
 #, c-format
 msgid ""
+"One track could not be transferred because your iPod is full. Either delete "
+"some tracks or otherwise create space on the iPod before ejecting the iPod "
+"again."
+msgid_plural ""
+"%d tracks could not be transferred because your iPod is full. Either delete "
+"some tracks or otherwise create space on the iPod before ejecting the iPod "
+"again."
+msgstr[0] ""
+msgstr[1] ""
+
+#: ../src/file_itunesdb.c:1792
+#, 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"
@@ -3214,219 +3612,254 @@
 "לחץ אישור אם תרצה להמשיך בכל זאת או ביטול לדלג על השמירה. אם תבטל, תוכל "
 "לייבא את מסד הנתונים הקיים לפני קריאה לפונקציה זו שוב.\n"
 
-#: src/file_itunesdb.c:1588
+#: ../src/file_itunesdb.c:1827
 msgid ""
 "iPod directory structure must be present before synching to the iPod can be "
 "performed.\n"
 msgstr "מבנה התיקיות של ה-iPod חייב להיות זמין לפני סנכרון ה-iPod.\n"
 
-#: src/file_itunesdb.c:1597
+#: ../src/file_itunesdb.c:1836
 msgid "Some tracks could not be deleted from the iPod. Export aborted!"
 msgstr "מספר רצועות לא יכלו להימחק מה-iPod. יצוא בוטל!"
 
-#: src/file_itunesdb.c:1613
-#, fuzzy
+#: ../src/file_itunesdb.c:1854
 msgid "Now writing database. Please wait..."
-msgstr "כותב כעת iTunesDB. אנא המתן..."
+msgstr "כותב כעת מסד נתונים. אנא המתן..."
 
-#: src/file_itunesdb.c:1659
+#: ../src/file_itunesdb.c:1901
 #, c-format
 msgid "Extended information file not deleted: '%s'"
 msgstr "קובץ מידע מורחב לא נמחק: '%s'"
 
-#: src/file_itunesdb.c:1745
-#, fuzzy, c-format
+#: ../src/file_itunesdb.c:1987
+#, c-format
 msgid "%s: Database saved"
-msgstr "מסד נתונים של iPod נשמר"
+msgstr "מסד נתונים של iPod נשמר :%s"
 
-#: src/file_itunesdb.c:1749
+#: ../src/file_itunesdb.c:1991
 #, c-format
 msgid "%s: Changes saved"
-msgstr ""
+msgstr "%s: שינויים נשמרו"
 
-#: src/fileselection.c:127
+#: ../src/fileselection.c:128
 msgid "Successfully added files"
 msgstr "קבצים הוספו בהצלחה"
 
-#: src/fileselection.c:129
+#: ../src/fileselection.c:130
 msgid "Some files were not added successfully"
 msgstr "מספר קבצים לא הוספו בהצלחה"
 
 #. Create the file chooser, and handle the response
-#: src/fileselection.c:157
+#: ../src/fileselection.c:160
 msgid "Add Files"
 msgstr "הוספת קבצים"
 
 #. Create the file chooser, and handle the response
-#: src/fileselection.c:250
+#: ../src/fileselection.c:253
 msgid "Add Playlists"
 msgstr "הוספת רשימת השמעה"
 
 #. Create the file chooser, and handle the response
-#: src/fileselection.c:297
+#: ../src/fileselection.c:300
 msgid "Set Cover"
-msgstr ""
+msgstr "קבע עטיפה"
 
-#: src/fileselection.c:718
+#: ../src/fileselection.c:721
 msgid "Select directory to add recursively"
 msgstr "בחר תיקייה להוספה רקורסיבית"
 
-#: src/fileselection.c:989
+#: ../src/fileselection.c:992
 msgid "Ok"
 msgstr "אישור"
 
-#: src/fileselection.c:998
+#: ../src/fileselection.c:1001
 msgid "Cancel"
 msgstr "ביטול"
 
-#: src/getopt.c:681
+#: ../src/flacfile.c:33
+#, fuzzy, c-format
+msgid "'%s' does not appear to be an FLAC audio file.\n"
+msgstr "הקובץ '%s' הוא כנראה לא קובץ שמע mp4.\n"
+
+#: ../src/flacfile.c:52
+#, fuzzy, c-format
+msgid "Error retrieving tags for '%s'.\n"
+msgstr "תקלה בכתיבה ל-'%s'.\n"
+
+#: ../src/flacfile.c:119
+#, fuzzy, c-format
+msgid ""
+"Import of '%s' failed: FLAC not supported without the FLAC library. You must "
+"compile the gtkpod source together with the FLAC library.\n"
+msgstr ""
+"הייבוא של '%s' נכשל: m4a/m4p/m4b לא נתמך ללא הספריה mp4v2. אתה חייב להדר את "
+"קוד המקור gtkpod ביחד עם הספריה mp4v2.\n"
+
+#: ../src/flacfile.c:125
+#, fuzzy, c-format
+msgid ""
+"FLAC metadata update for '%s' failed: FLAC not supported without the FLAC "
+"library. You must compile the gtkpod source together with the FLAC library.\n"
+msgstr ""
+"עדכון מטא-מידע של m4a/m4p/m4b עבור '%s' נכשל: הסוגים m4a/m4p/m4b לא נתמכים "
+"ללא הספריה mp4v2. אתה חייב להדר את קוד המקור של gtkpod ביחד עם ספריית "
+"mp4v2.\n"
+
+#: ../src/getopt.c:681
 #, c-format
 msgid "%s: option `%s' is ambiguous\n"
 msgstr "%s: אפשרות '%s' היא דו משמעית\n"
 
-#: src/getopt.c:706
+#: ../src/getopt.c:706
 #, c-format
 msgid "%s: option `--%s' doesn't allow an argument\n"
 msgstr "%s: אפשרות '--%s' לא מאפשרת ארגומנט\n"
 
-#: src/getopt.c:711
+#: ../src/getopt.c:711
 #, c-format
 msgid "%s: option `%c%s' doesn't allow an argument\n"
 msgstr "%s: אפשרות '%c%s' לא מאפשרת ארגומנט\n"
 
-#: src/getopt.c:729 src/getopt.c:902
+#: ../src/getopt.c:729 ../src/getopt.c:902
 #, c-format
 msgid "%s: option `%s' requires an argument\n"
 msgstr "%s: אפשרות '%s' דורשת ארגומנט\n"
 
 #. --option
-#: src/getopt.c:758
+#: ../src/getopt.c:758
 #, c-format
 msgid "%s: unrecognized option `--%s'\n"
 msgstr "%s: אפשרות '--%s' לא מזוהה\n"
 
 #. +option or -option
-#: src/getopt.c:762
+#: ../src/getopt.c:762
 #, c-format
 msgid "%s: unrecognized option `%c%s'\n"
 msgstr "%s: אפשרות '%c%s' לא מזוהה\n"
 
 #. 1003.2 specifies the format of this message.
-#: src/getopt.c:788
+#: ../src/getopt.c:788
 #, c-format
 msgid "%s: illegal option -- %c\n"
 msgstr "%s: אפשרות --%c לא חוקית\n"
 
-#: src/getopt.c:791
+#: ../src/getopt.c:791
 #, c-format
 msgid "%s: invalid option -- %c\n"
 msgstr "%s: אפשרות --%c לא תקינה\n"
 
 #. 1003.2 specifies the format of this message.
-#: src/getopt.c:821 src/getopt.c:951
+#: ../src/getopt.c:821 ../src/getopt.c:951
 #, c-format
 msgid "%s: option requires an argument -- %c\n"
 msgstr "%s: אפשרות דורשת ארגומנט -- %c\n"
 
-#: src/getopt.c:868
+#: ../src/getopt.c:868
 #, c-format
 msgid "%s: option `-W %s' is ambiguous\n"
 msgstr "%s: אפשרות `-W %s' היא דו משמעית\n"
 
-#: src/getopt.c:886
+#: ../src/getopt.c:886
 #, c-format
 msgid "%s: option `-W %s' doesn't allow an argument\n"
 msgstr "%s: אפשרות`-W %s' אינה מאפשרת ארגומנט\n"
 
-#: src/info.c:383
+#: ../src/info.c:383
 msgid "n/c"
 msgstr "n/c"
 
-#: src/info.c:388 src/info.c:835
+#: ../src/info.c:388 ../src/info.c:835
 msgid "offline"
 msgstr "לא מקוון"
 
-#: src/info.c:483
+#: ../src/info.c:483
 #, c-format
 msgid " P:%d T:%d/%d"
 msgstr " P:%d T:%d/%d"
 
-#: src/info.c:777
+#: ../src/info.c:777
 msgid "B"
 msgstr "בתים"
 
-#: src/info.c:777
+#: ../src/info.c:777
 msgid "kB"
 msgstr "ק\"ב"
 
-#: src/info.c:777
+#: ../src/info.c:777
 msgid "TB"
 msgstr "ט\"ב"
 
-#: src/info.c:820
+#: ../src/info.c:820
 #, c-format
 msgid " %s Free"
 msgstr " %s זמין"
 
-#: src/info.c:825
+#: ../src/info.c:825
 #, c-format
 msgid " %s Pending"
 msgstr " %s ממתין"
 
-#: src/info.c:830
+#: ../src/info.c:830
 msgid " disconnected"
 msgstr " מנותק"
 
-#: src/info.c:881
-#, fuzzy
+#: ../src/info.c:881
 msgid "No database or playlist selected"
-msgstr "לא נבחרה רשימת השמעה"
+msgstr "לא נבחרו מסד נתונים את רשימת השמעה"
 
-#: src/info.c:886
+#: ../src/info.c:886
 msgid "No tracks selected"
 msgstr "לא נבחרו רצועות"
 
-#: src/info.c:891
+#: ../src/info.c:891
 msgid "No playlist selected"
 msgstr "לא נבחרה רשימת השמעה"
 
-#: src/info.c:896
-#, fuzzy
+#: ../src/info.c:896
 msgid "No iPod or iPod playlist selected"
-msgstr "לא נבחרה רשימת השמעה"
+msgstr "לא נבחר iPod או לא נבחרה רשימת השמעה של iPod"
 
-#: src/md5.c:187
-msgid "Hashed file is 0 bytes long\n"
-msgstr "קובץ מעורבב (Hashed) בעל גודל של 0\n"
+#. Strings used several times
+#: ../src/ipod_init.c:48
+msgid "Select or enter your model"
+msgstr ""
 
-#: src/md5.c:240
-#, c-format
-msgid "Could not open '%s' to calculate MD5 checksum: %s\n"
-msgstr "לא יכול לפתוח את '%s' על מנת לחשב סכומי ביקורת: %s\n"
+#: ../src/ipod_init.c:79 ../src/repository.c:546 ../src/repository.c:2369
+msgid "Select mountpoint"
+msgstr "בחר נקודת עגינה"
 
-#: src/misc.c:79
+#: ../src/ipod_init.c:359
+#, fuzzy, c-format
+msgid "Error initialising iPod: %s\n"
+msgstr "תקלה בכתיבה ל-'%s'.\n"
+
+#: ../src/ipod_init.c:366
+msgid "Error initialising iPod, unknown error\n"
+msgstr ""
+
+#: ../src/ipod_init.c:422
+#, fuzzy, c-format
+msgid "<b>Please select your iPod model at </b><i>%s</i>"
+msgstr "<b>אנא בחר נקודת עגינה ואת הדגם של ה־iPod</b>"
+
+#: ../src/misc.c:86
 #, c-format
 msgid ""
 "gtkpod Version %s: Cross-Platform Multi-Lingual Interface to Apple's iPod"
 "(tm)."
 msgstr "גרסת gtkpod %s: ממשק חוצה-פלטפורמות רב-שפות לאייפוד(TM) של אפל."
 
-#: src/misc.c:83
+#: ../src/misc.c:90
 #, fuzzy
 msgid ""
-"(C) 2002 - 2005\n"
+"(C) 2002 - 2007\n"
 "Jorg Schuler (jcsjcs at users dot sourceforge dot net)\n"
 "Corey Donohoe (atmos at atmos dot org)\n"
 "\n"
 "\n"
-msgstr ""
-"(C) 2002 - 2003\n"
-"יורג שולר (jcsjcs at users dot sourceforge dot net)\n"
-"קורי דונהיו (atmos at atmos dot org)\n"
-"\n"
-"\n"
+msgstr "גרמנית:\tיורג שולר (jcsjcs at users dot sourceforge dot net)\n"
 
-#: src/misc.c:89
+#: ../src/misc.c:96
 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 "
@@ -3445,7 +3878,7 @@
 "\n"
 msgstr ""
 
-#: src/misc.c:97
+#: ../src/misc.c:104
 msgid ""
 "Patches were supplied by the following people (list may be incomplete -- "
 "please contact me)\n"
@@ -3455,19 +3888,19 @@
 "איתי קשר)\n"
 "\n"
 
-#: src/misc.c:99
+#: ../src/misc.c:106
 msgid "Ramesh Dharan: Multi-Edit (edit tags of several tracks in one run)\n"
 msgstr "רמס דהאראן: עריכה-מרובה (עריכת תגיות של מספר רצועות בו זמנית)\n"
 
-#: src/misc.c:101
+#: ../src/misc.c:108
 msgid "Hiroshi Kawashima: Japanese charset autodetecion feature\n"
 msgstr "הירושי קאוואשימה: זיהוי אוטומטי של ערכת תווים יפנית.\n"
 
-#: src/misc.c:103
+#: ../src/misc.c:110
 msgid "Adrian Ulrich: porting of playlist code from mktunes.pl to itunesdb.c\n"
 msgstr "אדריאן אלריך: הסבה של קוד רשימות השמעה מ mktunes.pl ל itunesdb.c\n"
 
-#: src/misc.c:105
+#: ../src/misc.c:112
 msgid ""
 "Walter Bell: correct handling of DND URIs with escaped characters and/or cr/"
 "newlines at the end\n"
@@ -3475,15 +3908,15 @@
 "וולטר בל: טיפול נכון בנתיבי גרירה ושחרור עם תווים מיוחדים או תווי cr ושורות "
 "חדשות בסוף\n"
 
-#: src/misc.c:107
+#: ../src/misc.c:114
 msgid "Sam Clegg: user defined filenames when exporting tracks from the iPod\n"
 msgstr "סאם קלאג: קביעת שמות קבצים על ידי משתמש בזמן ייצוא רצועות מה-iPod\n"
 
-#: src/misc.c:109
+#: ../src/misc.c:116
 msgid "Chris Cutler: automatic creation of various playlist types\n"
 msgstr "כריס קוטלר: יצירת סוגים שונים של רשימות השמעה אוטומטית\n"
 
-#: src/misc.c:111
+#: ../src/misc.c:118
 msgid ""
 "Graeme Wilford: reading and writing of the 'Composer' ID3 tags, progress "
 "dialogue during sync\n"
@@ -3491,7 +3924,7 @@
 "גרהאם וילפורד: קריאה וכתיבה של תגיות הID3 של ה'יוצר', פקד התקדמות בזמן "
 "סנכרון\n"
 
-#: src/misc.c:113
+#: ../src/misc.c:120
 msgid ""
 "Edward Matteucci: debugging, special playlist creation, most of the volume "
 "normalizing code\n"
@@ -3499,48 +3932,48 @@
 "אדוארד מאטוצ'י : דיבוג, יצירת רשימות השמעה מיוחדות, רוב הקוד של נירמול "
 "הקול.\n"
 
-#: src/misc.c:115
+#: ../src/misc.c:122
 msgid "Jens Lautenbach: some optical improvements\n"
 msgstr "ז'אנס לאוטנבאך: מספר שיפורים אופטיים\n"
 
-#: src/misc.c:117
+#: ../src/misc.c:124
 msgid "Alex Tribble: iPod eject patch\n"
 msgstr "אלכס טריבל: טלאי שחרור iPod\n"
 
-#: src/misc.c:119
+#: ../src/misc.c:126
 msgid "Yaroslav Halchenko: Orphaned and dangling tracks handling\n"
 msgstr "ירוסלב אלצ'נקו: טיפול ברצועות יתומות ומתנדנדות\n"
 
-#: src/misc.c:121
+#: ../src/misc.c:128
 msgid ""
 "Andrew Huntwork: Filename case sensitivity fix and various other bugfixes\n"
 msgstr ""
 "אנדרו הנטוורק: טיפול בהבחנה באותיות גדולות/קטנות בשמות קבצים ומספר באגים "
 "נוספים\n"
 
-#: src/misc.c:123
+#: ../src/misc.c:130
 msgid ""
 "Ero Carrera: Filename validation and quick sync when copying tracks from the "
 "iPod\n"
 msgstr "אירו קאררה: בדיקת קבצים וסנכרון מהיר בזמן העתקת רצועות מה-iPod\n"
 
-#: src/misc.c:125
+#: ../src/misc.c:132
 msgid "Jens Taprogge: Support for LAME's replay gain tag to normalize volume\n"
 msgstr "ז'אנס טאפרוג: תמיכה בנרמול עוצמת קול של LAME\n"
 
-#: src/misc.c:127
+#: ../src/misc.c:134
 msgid "Armando Atienza: Support with external playcounts\n"
 msgstr "ארמנדו אטיאנזה: תמיכה בספירה השמעה חיצונית\n"
 
-#: src/misc.c:129
+#: ../src/misc.c:136
 msgid "D.L. Sharp: Support for m4b files (bookmarkable AAC files)\n"
 msgstr "ד.ה. שרפ: תמיכה בקבצי m4b (קבצי AAC עם תגיות)\n"
 
-#: src/misc.c:131
+#: ../src/misc.c:138
 msgid "Jim Hall: Decent INSTALL file\n"
 msgstr "ג'ים הול: הליך התקנה נורמלי\n"
 
-#: src/misc.c:133
+#: ../src/misc.c:140
 msgid ""
 "Juergen Helmers, Markus Gaugusch: Conversion scripts to sync calendar/"
 "contacts to the iPod\n"
@@ -3548,11 +3981,11 @@
 "יורגן הלמרס, מרכוס גאוגושס: תסריטי המרה לסנכרון היומן/אנשי קשר אל ה-iPod\n"
 
 #. J"urgen!
-#: src/misc.c:135
+#: ../src/misc.c:142
 msgid "Flavio Stanchina: bugfixes\n"
 msgstr "פלאביו סטאנצינה: תיקון באגים\n"
 
-#: src/misc.c:137
+#: ../src/misc.c:144
 msgid ""
 "Chris Micacchi: when sorting ignore 'the' and similar at the beginning of "
 "the title\n"
@@ -3560,168 +3993,172 @@
 "כריס מיקאצ'י: בזמן מיון התעלם מתחילות כגון ה' הידיעה (the) ואחרים בתחילת שם "
 "הרצועה\n"
 
-#: src/misc.c:139
+#: ../src/misc.c:146
 msgid "Steve Jay: use statvfs() instead of df (better portability, faster)\n"
 msgstr ""
 "סטיב גאי: השתמש ב-statvfs() במקום ב-df (מהיר יותר, וניתן להמרה לפלטפורמות "
 "שונות בקלות יותר)\n"
 
-#: src/misc.c:142
+#: ../src/misc.c:149
 msgid ""
 "Christoph Kunz: address compatibility issues when writing id3v2.4 type mp3 "
 "tags\n"
 msgstr "כריסטוף קונץ: טיפול בבעיות תאימות בזמן כתיבת תגיות id3v2.4 בקבצי mp3\n"
 
-#: src/misc.c:145
-#, fuzzy
+#: ../src/misc.c:152
 msgid ""
 "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:150
+#: ../src/misc.c:157
 msgid "Daniel Kercher: sync scripts for abook and webcalendar\n"
 msgstr "דניאל קרצר: קבצי סנכרון בשביל abook ו-webcalender\n"
 
-#: src/misc.c:153
+#: ../src/misc.c:160
 msgid "Clinton Gormley: sync scripts for thunderbird\n"
 msgstr "קלינטון גורמלי: קבצי אצווה לסינכרון עם thunderbird\n"
 
-#: src/misc.c:156
-#, fuzzy
+#: ../src/misc.c:163
 msgid "Sebastien Beridot: sync script for ldif addressbook format\n"
-msgstr "קלינטון גורמלי: קבצי אצווה לסינכרון עם thunderbird\n"
+msgstr ""
 
-#: src/misc.c:159
-#, fuzzy
+#: ../src/misc.c:166
 msgid "Sebastian Scherer: sync script for kNotes\n"
-msgstr "קלינטון גורמלי: קבצי אצווה לסינכרון עם thunderbird\n"
+msgstr ""
 
-#: src/misc.c:162
+#: ../src/misc.c:169
 msgid "Nick Piper: sync script for Palm, type-ahead search\n"
 msgstr ""
 
-#: src/misc.c:165
+#: ../src/misc.c:172
 msgid "Uwe Hermann: help with support for iPod Video\n"
 msgstr ""
 
-#: src/misc.c:168
+#: ../src/misc.c:175
 msgid ""
 "Iain Benson: support for compilation tag in mp3 files and separate display "
 "of compilations in the sort tab.\n"
 msgstr ""
 
-#: src/misc.c:170
+#: ../src/misc.c:177
 msgid ""
 "Nicolas Chariot: icons of buttons\n"
 "\n"
 "\n"
 msgstr ""
 
-#: src/misc.c:174
+#: ../src/misc.c:181
 msgid "This program borrows code from the following projects:\n"
 msgstr "התוכנה שואלת קוד מהפרוייקטים הבאים: \n"
 
-#: src/misc.c:176
+#: ../src/misc.c:183
 msgid ""
 "    gnutools: (mktunes.pl, ported to C) reading and writing of iTunesDB "
 "(http://www.gnu.org/software/gnupod/)\n"
 msgstr ""
-"    gnutools: (mktunes.pl, ported to C) reading and writing of iTunesDB "
-"(http://www.gnu.org/software/gnupod/)\n"
 
-#: src/misc.c:178
+#: ../src/misc.c:185
 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 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:180
+#: ../src/misc.c:187
 msgid "    mp3info:  mp3 playlength detection (http://ibiblio.org/mp3info/)\n"
-msgstr "    mp3info:  mp3 playlength detection (http://ibiblio.org/mp3info/)\n"
+msgstr ""
 
-#: src/misc.c:182
+#: ../src/misc.c:189
 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:185
+#: ../src/misc.c:192
 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:200
+#: ../src/misc.c:207
 msgid "French:   David Le Brun (david at dyn-ns dot net)\n"
 msgstr "צרפתית:\tדיוויד לה-ברון (david at dyn-ns dot net)\n"
 
-#: src/misc.c:202
+#: ../src/misc.c:209
 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:204
+#: ../src/misc.c:211
 msgid "Hebrew: Assaf Gillat (gillata at gmail dot com)\n"
 msgstr "עברית:\tאסף גילת (gillata at gmail dot com)\n"
 
-#: src/misc.c:206
+#: ../src/misc.c:213
 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:208
+#: ../src/misc.c:215
 msgid "Japanese: Ayako Sano\n"
 msgstr "יפנית:\tאייקו סאנו\n"
 
-#: src/misc.c:210
+#: ../src/misc.c:217
 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:212
+#: ../src/misc.c:219
 msgid "Swedish: Stefan Asserhall (stefan asserhall at comhem dot se)\n"
 msgstr "שוודית:\tסטפן אסרהול (stefan asserhall at comhem dot se)\n"
 
-#: src/misc.c:936
-#, fuzzy, c-format
+#: ../src/misc.c:975
+#, c-format
 msgid "Could not process '%s' (no filename available)"
-msgstr "קובץ לא קיים"
+msgstr "אי אפשר לעבד את '%s' (קובץ לא זמין)"
 
-#: src/misc.c:1084
+#: ../src/misc.c:1129
 #, c-format
 msgid "Unknown token '%%%c' in template '%s'"
 msgstr "אסימון לא ידוע '%%%c' בתבנית '%s'"
 
-#: src/misc.c:1166
+#: ../src/misc.c:1212
 #, c-format
 msgid "Template ('%s') does not match file type '%s'\n"
 msgstr "התבנית ('%s') לא מתאימה לסוג הקובץ '%s'\n"
 
-#: src/misc.c:1247
+#: ../src/misc.c:1298
 #, c-format
 msgid "Error creating %s: %s\n"
 msgstr "תקלה ביצירת %s: %s\n"
 
-#. gint id,
-#. gboolean modal,
-#: src/misc_confirm.c:71
-msgid "Warning"
-msgstr "אזהרה"
+#: ../src/misc.c:1777
+#, fuzzy, c-format
+msgid ""
+"Writing preferences file '%s' failed (%s).\n"
+"\n"
+msgstr ""
+"הביצוע של '%s' נכשל.\n"
+"\n"
 
+#: ../src/misc.c:1779
+msgid "unspecified error"
+msgstr ""
+
+#: ../src/misc.c:1787
+#, c-format
+msgid ""
+"Writing preferences to the iPod (%s) failed: could not get path to Control "
+"Directory.\n"
+"\n"
+msgstr ""
+
 #. title
-#: src/misc_confirm.c:72
-msgid "The following has occured:"
+#: ../src/misc_confirm.c:71
+#, fuzzy
+msgid "The following has occurred:"
 msgstr "אירע האירוע הבא:"
 
-#: src/misc_confirm.c:123
+#: ../src/misc_confirm.c:122
 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 "
@@ -3737,13 +4174,13 @@
 "האם אתה בטוח שברצונך למחוק את הרצועות הבאות לגמרי מה-iPod? מספר רשימות "
 "ההשמעה שהרצועות האלו חברות בהן מצוינות בסוגריים."
 
-#: src/misc_confirm.c:127
+#: ../src/misc_confirm.c:126
 msgid "Delete Track Completely from iPod?"
-msgid_plural "Delete Tracks Completey from iPod?"
+msgid_plural "Delete Tracks Completely from iPod?"
 msgstr[0] "מחק את הרצועה לגמרי מה-iPod?"
 msgstr[1] "מחק את הרצועות לגמרי מה-iPod?"
 
-#: src/misc_confirm.c:138 src/misc_confirm.c:179
+#: ../src/misc_confirm.c:137 ../src/misc_confirm.c:178
 #, c-format
 msgid ""
 "Are you sure you want to remove the following track from the playlist \"%s\"?"
@@ -3753,13 +4190,13 @@
 msgstr[0] "האם אתה בטוח שברצונך להסיר את הרצועה הבאה מרשימת ההשמעה \"%s\"?"
 msgstr[1] "האם אתה בטוח שברצונך להסיר את הרצועות הבאות מרשימת ההשמעה \"%s\"?"
 
-#: src/misc_confirm.c:142 src/misc_confirm.c:183
+#: ../src/misc_confirm.c:141 ../src/misc_confirm.c:182
 msgid "Remove Track From Playlist?"
 msgid_plural "Remove Tracks From Playlist?"
 msgstr[0] "הסר את הרצועה מרשימת ההשמעה?"
 msgstr[1] "הסר את הרצועות מרשימת ההשמעה?"
 
-#: src/misc_confirm.c:164
+#: ../src/misc_confirm.c:163
 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 "
@@ -3775,13 +4212,13 @@
 "האם אתה בטוח שברצונך למחוק את הרצועות הבאות לגמרי מהדיסק הקשיח? מספר רשימות "
 "ההשמעה שהרצועות האלו חברות בהן מצוינות בסוגריים."
 
-#: src/misc_confirm.c:168
+#: ../src/misc_confirm.c:167
 msgid "Delete Track from Harddisk?"
 msgid_plural "Delete Tracks from Harddisk?"
 msgstr[0] "מחק את הרצועה מהדיסק הקשיח?"
 msgstr[1] "מחק את הרצועות מהדיסק הקשיח?"
 
-#: src/misc_confirm.c:193
+#: ../src/misc_confirm.c:192
 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 "
@@ -3797,55 +4234,54 @@
 "האם אתה בטוח שברצונך למחוק את הרצועות הבאות לגמרי ממסד הנתונים המקומי? מספר "
 "רשימות ההשמעה שהרצועות האלו חברות בהן מצוינות בסוגריים."
 
-#: src/misc_confirm.c:197
+#: ../src/misc_confirm.c:196
 msgid "Remove Track from Local Database?"
 msgid_plural "Remove Tracks from Local Database?"
 msgstr[0] "הסר את הרצועה ממסד הנתונים המקומי?"
 msgstr[1] "הסר את הרצועות ממסד הנתונים המקומי?"
 
-#: src/misc_confirm.c:259
+#: ../src/misc_confirm.c:261
 #, c-format
 msgid "Deleted one track completely from iPod"
 msgid_plural "Deleted %d tracks completely from iPod"
 msgstr[0] "הרצועה נמחקה לגמרי מה-iPod"
 msgstr[1] "הרצועות %d נמחקו לגמרי מה-iPod"
 
-#: src/misc_confirm.c:265 src/misc_confirm.c:289
+#: ../src/misc_confirm.c:267 ../src/misc_confirm.c:291
 #, c-format
 msgid "Deleted %d track from playlist '%s'"
 msgid_plural "Deleted %d tracks from playlist '%s'"
 msgstr[0] "נמחקה %d רצועה מרשימת ההשמעה '%s'"
 msgstr[1] "נמחקו %d רצועות מרשימת ההשמעה '%s'"
 
-#: src/misc_confirm.c:283
+#: ../src/misc_confirm.c:285
 #, c-format
 msgid "Deleted one track from harddisk"
 msgid_plural "Deleted %d tracks from harddisk"
 msgstr[0] "נמחקה רצועה אחת מהדיסק הקשיח"
 msgstr[1] "נמחקו %d רצועות מהדיסק הקשיח"
 
-#: src/misc_confirm.c:295
+#: ../src/misc_confirm.c:297
 #, c-format
 msgid "Deleted track from local database"
 msgid_plural "Deleted %d tracks from local database"
 msgstr[0] "נמחקה רצועה ממסד הנתונים המקומי"
 msgstr[1] "נמחקו %d רצועות ממסד הנתונים המקומי"
 
-#: src/misc_confirm.c:438
+#: ../src/misc_confirm.c:442
 msgid "Cannot remove entry 'All'"
 msgstr "לא מסוגל להסיר רשומה 'הכל'"
 
-#: src/misc_confirm.c:532
+#: ../src/misc_confirm.c:536
 #, c-format
 msgid "Removed all %d tracks from the iPod"
 msgstr "הוסרו כל %d הרצועות מה-iPod"
 
-#: src/misc_confirm.c:537
-#, fuzzy
+#: ../src/misc_confirm.c:541
 msgid "Removed all podcasts from the iPod"
-msgstr "הוסרו כל %d הרצועות מה-iPod"
+msgstr "הוסרו כל הפודקסטים מה-iPod"
 
-#: src/misc_confirm.c:546 src/misc_confirm.c:620
+#: ../src/misc_confirm.c:550 ../src/misc_confirm.c:624
 #, c-format
 msgid "Deleted playlist '%s' including %d member track"
 msgid_plural "Deleted playlist '%s' including %d member tracks"
@@ -3853,33 +4289,32 @@
 msgstr[1] "נמחקה רשימת השמעה '%s' כולל %d רצועות"
 
 #. first use playlist name
-#: src/misc_confirm.c:562 src/misc_confirm.c:636
+#: ../src/misc_confirm.c:566 ../src/misc_confirm.c:640
 #, c-format
 msgid "Deleted playlist '%s'"
 msgstr "נמחקה רשומה '%s'"
 
-#: src/misc_confirm.c:596
+#: ../src/misc_confirm.c:600
 #, 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:613
+#: ../src/misc_confirm.c:617
 #, c-format
 msgid "Removed all %d tracks from the database"
 msgstr "הסר את כל %d הרצועות ממסד הנתונים"
 
-#: src/misc_confirm.c:691
+#: ../src/misc_confirm.c:695
 msgid "Are you sure you want to remove all tracks from your iPod?"
 msgstr "האם אתה בטוח שאתה רוצה להסיר את כל הרצועות מה-iPod?"
 
-#: src/misc_confirm.c:696
-#, fuzzy
+#: ../src/misc_confirm.c:700
 msgid "Are you sure you want to remove all podcasts from your iPod?"
-msgstr "האם אתה בטוח שאתה רוצה להסיר את כל הרצועות מה-iPod?"
+msgstr "האם אתה בטוח שאתה רוצה להסיר את כל הפודקסטים מה-iPod שלך?"
 
-#: src/misc_confirm.c:704
+#: ../src/misc_confirm.c:708
 #, c-format
 msgid ""
 "Are you sure you want to delete playlist '%s' and the following track "
@@ -3896,12 +4331,12 @@
 "האם אתה בטוח שברצונך למחוק את רשימת ההשמעה '%s' ואת הרצועות הבאות לגמרי מה-"
 "iPod? מספר רשימות ההשמעה שהרצועות האלו חברות בהן מצוינות בסוגריים."
 
-#: src/misc_confirm.c:715 src/misc_confirm.c:770
+#: ../src/misc_confirm.c:719 ../src/misc_confirm.c:774
 #, c-format
 msgid "Are you sure you want to delete the playlist '%s'?"
 msgstr "האם אתה בטח שאתה רוצה למחוק את רשימת ההשמעה '%s'?"
 
-#: src/misc_confirm.c:741
+#: ../src/misc_confirm.c:745
 #, c-format
 msgid ""
 "Are you sure you want to delete playlist '%s' and remove the following track "
@@ -3918,11 +4353,11 @@
 "האם אתה בטוח שברצונך למחוק את רשימת ההשמעה '%s' ואת הרצועות הבאות לגמרי "
 "מהדיסק הקשיח? מספר רשימות ההשמעה שהרצועות האלו חברות בהן מצוינות בסוגריים."
 
-#: src/misc_confirm.c:749
+#: ../src/misc_confirm.c:753
 msgid "Are you sure you want to remove all tracks from the database?"
 msgstr "האם אתה בטוח שאתה רוצה להסיר את כל הרצועות ממסד הנתונים?"
 
-#: src/misc_confirm.c:758
+#: ../src/misc_confirm.c:762
 #, c-format
 msgid ""
 "Are you sure you want to delete playlist '%s' and remove the following track "
@@ -3939,7 +4374,7 @@
 "האם אתה בטוח שברצונך למחוק את רשימת ההשמעה '%s' ואת הרצועות הבאות לגמרי ממסד "
 "הנתונים? מספר רשימות ההשמעה שהרצועות האלו חברות בהן מצוינות בסוגריים."
 
-#: src/misc_confirm.c:859
+#: ../src/misc_confirm.c:841
 msgid ""
 "Data has been changed and not been saved.\n"
 "OK to exit gtkpod?"
@@ -3947,162 +4382,178 @@
 "המידע שונה ולא נשמר.\n"
 "האם לצאת מ-gtkpod?"
 
-#: src/misc_conversion.c:67
-#, fuzzy
+#: ../src/misc_conversion.c:66
 msgid "File type"
-msgstr "גודל קובץ"
+msgstr "סוג קובץ"
 
-#: src/misc_conversion.c:68
+#: ../src/misc_conversion.c:67
 msgid "PC File"
 msgstr "קובץ PC"
 
-#: src/misc_conversion.c:69
+#: ../src/misc_conversion.c:68
 msgid "iPod File"
 msgstr "קובץ iPod"
 
-#: src/misc_conversion.c:70
+#: ../src/misc_conversion.c:69
 msgid "iPod ID"
 msgstr "מזהה iPod"
 
 #. 10
-#: src/misc_conversion.c:71
+#: ../src/misc_conversion.c:70
 msgid "Track Nr (#)"
 msgstr "מספר רצועה (#)"
 
-#: src/misc_conversion.c:72
+#: ../src/misc_conversion.c:71
 msgid "Transferred"
 msgstr "הועבר"
 
-#: src/misc_conversion.c:73
+#: ../src/misc_conversion.c:72
 msgid "File Size"
 msgstr "גודל קובץ"
 
-#: src/misc_conversion.c:74
+#: ../src/misc_conversion.c:73
 msgid "Play Time"
 msgstr "זמן השמעה"
 
 #. 20
-#: src/misc_conversion.c:81
+#: ../src/misc_conversion.c:80
 msgid "Date played"
 msgstr "תאריך השמעה"
 
-#: src/misc_conversion.c:83
+#: ../src/misc_conversion.c:82
 msgid "Volume"
 msgstr "עוצמת קול"
 
-#: src/misc_conversion.c:84
+#: ../src/misc_conversion.c:83
 msgid "Soundcheck"
 msgstr "בדיקת קול"
 
 #. 25
-#: src/misc_conversion.c:86
+#: ../src/misc_conversion.c:85
 msgid "CD Nr"
 msgstr "מזהה דיסק שמע"
 
-#: src/misc_conversion.c:89
-#, fuzzy
+#: ../src/misc_conversion.c:88
 msgid "Category"
-msgstr "קטגוריה:"
+msgstr "קטגוריה"
 
-#: src/misc_conversion.c:90
+#: ../src/misc_conversion.c:89
 msgid "Description"
-msgstr ""
+msgstr "מאפיינים"
 
 #. 30
-#: src/misc_conversion.c:91
+#: ../src/misc_conversion.c:90
 msgid "Podcast URL"
-msgstr ""
+msgstr "כתובת ה־URL של הפודקסט"
 
-#: src/misc_conversion.c:92
+#: ../src/misc_conversion.c:91
 msgid "Podcast RSS"
-msgstr ""
+msgstr "ה־RSS של הפודקסט"
 
-#: src/misc_conversion.c:93
-#, fuzzy
+#: ../src/misc_conversion.c:92
 msgid "Subtitle"
-msgstr "שם הרצועה"
+msgstr "כתובית"
 
-#: src/misc_conversion.c:94
-#, fuzzy
+#: ../src/misc_conversion.c:93
 msgid "Date released"
-msgstr "תאריך השמעה"
+msgstr "תאריך שחרור"
 
-#: src/misc_conversion.c:95
+#: ../src/misc_conversion.c:94
 msgid "Checked"
-msgstr ""
+msgstr "מסומן"
 
 #. 35
-#: src/misc_conversion.c:96
-#, fuzzy
+#: ../src/misc_conversion.c:95
 msgid "Start time"
-msgstr "בפעם האחרונה"
+msgstr "זמן התחלה"
 
-#: src/misc_conversion.c:97
-#, fuzzy
+#: ../src/misc_conversion.c:96
 msgid "Stop time"
-msgstr "עצור"
+msgstr "זמן סיום"
 
-#: src/misc_conversion.c:98
+#: ../src/misc_conversion.c:97
 msgid "Remember Playback Position"
-msgstr ""
+msgstr "שמור את מיקום ההשמעה"
 
-#: src/misc_conversion.c:99
+#: ../src/misc_conversion.c:98
 msgid "Skip when Shuffling"
-msgstr ""
+msgstr "דלג בזמן ערבוב"
 
-#: src/misc_conversion.c:100
+#: ../src/misc_conversion.c:99
 msgid "Artwork Path"
+msgstr "נתיב לתמונות (עבודות האמנות)"
+
+#. 40
+#: ../src/misc_conversion.c:100
+msgid "Media Type"
 msgstr ""
 
-#: src/misc_conversion.c:113
+#: ../src/misc_conversion.c:102
+msgid "TV Episode"
+msgstr ""
+
+#: ../src/misc_conversion.c:103
+msgid "TV Network"
+msgstr ""
+
+#: ../src/misc_conversion.c:104
+msgid "Season Nr"
+msgstr ""
+
+#. 45
+#: ../src/misc_conversion.c:105
+msgid "Episode Nr"
+msgstr ""
+
+#: ../src/misc_conversion.c:118
 msgid "Name of file on PC, if available"
 msgstr "שם הקובץ על ה-PC, אם קיים"
 
-#: src/misc_conversion.c:114
+#: ../src/misc_conversion.c:119
 msgid "Name of file on the iPod"
 msgstr "שם הקובץ על ה-iPod"
 
 #. 10
-#: src/misc_conversion.c:116
+#: ../src/misc_conversion.c:121
 msgid "Track Nr. and total number of tracks on CD"
 msgstr "מספר רצועה וסך כל מספר הרצועות על דיסק השמע"
 
-#: src/misc_conversion.c:117
+#: ../src/misc_conversion.c:122
 msgid "Whether the file has already been transferred to the iPod or not"
 msgstr "האם הקובץ הועבר כבר אל ה-iPod או לא"
 
-#: src/misc_conversion.c:123
+#: ../src/misc_conversion.c:128
 msgid ""
 "Supposedly something that tells the iPod to increase or decrease the "
 "playback speed"
 msgstr "לכאורה משהו המסמן ל-iPod להגביר או להנמיך את מהירות ההשמעה"
 
-#: src/misc_conversion.c:125
+#: ../src/misc_conversion.c:130
 msgid "Number of times the track has been played"
 msgstr "מספר הפעמים שהרצועה הושמעה"
 
-#: src/misc_conversion.c:126
+#: ../src/misc_conversion.c:131
 msgid "Star rating from 0 to 5"
 msgstr "דירוג כוכבים החל מ 0 עד 5"
 
-#: src/misc_conversion.c:127
+#: ../src/misc_conversion.c:132
 msgid "Date and time track has been added"
 msgstr "תאריך ושעה שהרצועה הוספה"
 
 #. 20
-#: src/misc_conversion.c:128
+#: ../src/misc_conversion.c:133
 msgid "Date and time track has last been played"
 msgstr "תאריך ושעה שהרצועה הושמעה לאחרונה"
 
-#: src/misc_conversion.c:129
+#: ../src/misc_conversion.c:134
 msgid "Date and time track has last been modified"
 msgstr "תאריך ושעה שהרצועה שונתה לאחרונה"
 
-#: src/misc_conversion.c:130
+#: ../src/misc_conversion.c:135
 msgid "Manual volume adjust"
 msgstr "שינוי עוצמת קול ידנית"
 
-#: src/misc_conversion.c:131
+#: ../src/misc_conversion.c:136
 msgid ""
 "Volume adjust in dB (replay gain) -- you need to activate 'soundcheck' on "
 "the iPod"
@@ -4110,82 +4561,83 @@
 "תיקון עוצמת קול בדציבלים (הגבר השמעה) -- צריך להפעיל 'soundcheck' על ה-iPod"
 
 #. 25
-#: src/misc_conversion.c:134
+#: ../src/misc_conversion.c:139
 msgid "CD Nr. and total number of CDS in set"
 msgstr "מספר דיסק שמע וסך כל דיסקי השמע בקבוצה"
 
-#: src/misc_conversion.c:137
+#: ../src/misc_conversion.c:142
 msgid ""
 "The category (e.g. 'Technology' or 'Music') where the podcast was located."
-msgstr ""
+msgstr "הקטגוריה (לדוגמה \"טכנולוגיה\" או מוזיקה) שבה הפודקסט מוקם."
 
-#: src/misc_conversion.c:138
+#: ../src/misc_conversion.c:143
 msgid "Accessible by selecting the center button on the iPod."
-msgstr ""
+msgstr "זמין על ידי לחיצה על הכפתור המרכזי של ה־iPod."
 
-#: src/misc_conversion.c:142
+#: ../src/misc_conversion.c:147
 msgid "Release date (for podcasts displayed next to the title on the iPod)"
-msgstr ""
+msgstr "זמן שחרור (עבור פודקסטים מוצג ליד הכותרת ב־iPod)"
 
-#: src/misc_conversion.c:649
+#: ../src/misc_conversion.c:713
 #, c-format
 msgid "The URI '%s' is not an absolute URI using the file scheme"
 msgstr "הנתיב '%s' הוא נתיב לא מוחלט המשתמש בתבנית הקובץ"
 
-#: src/misc_conversion.c:659
+#: ../src/misc_conversion.c:723
 #, c-format
 msgid "The local file URI '%s' may not include a '#'"
 msgstr "שם הקובץ המקומי בנתיב '%s' לא יכול לכלול '#'"
 
-#: src/misc_conversion.c:676
+#: ../src/misc_conversion.c:740
 #, c-format
 msgid "The URI '%s' is invalid"
 msgstr "הנתיב '%s' הוא לא חוקי"
 
-#: src/misc_conversion.c:688
+#: ../src/misc_conversion.c:752
 #, c-format
 msgid "The hostname of the URI '%s' is invalid"
 msgstr "שם השרת של הנתיב '%s' הוא לא חוקי."
 
-#: src/misc_conversion.c:704
+#: ../src/misc_conversion.c:768
 #, 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:430
+#: ../src/misc_playlist.c:67 ../src/misc_playlist.c:94
+#: ../src/misc_playlist.c:429
 msgid "Please enter a name for the new playlist"
 msgstr "הכנס בבקשה את השם של רשימת ההשמעה החדשה"
 
-#: src/misc_playlist.c:155
+#: ../src/misc_playlist.c:154
 msgid "AR:"
 msgstr "ביצוע:"
 
-#: src/misc_playlist.c:158
+#: ../src/misc_playlist.c:157
 msgid "AL:"
 msgstr "כותר:"
 
-#: src/misc_playlist.c:161
+#: ../src/misc_playlist.c:160
 msgid "GE:"
 msgstr "סוג:"
 
-#: src/misc_playlist.c:164
+#: ../src/misc_playlist.c:163
 msgid "CO:"
 msgstr "מחבר:"
 
-#: src/misc_playlist.c:167
+#: ../src/misc_playlist.c:166
 msgid "YE:"
 msgstr "שנה:"
 
-#: src/misc_playlist.c:195
+#: ../src/misc_playlist.c:194
 msgid "Unknown"
 msgstr "לא ידוע"
 
-#: src/misc_playlist.c:273
+#: ../src/misc_playlist.c:272
 #, c-format
 msgid "Random (%d)"
 msgstr "אקראי (%d)"
 
-#: src/misc_playlist.c:298
+#: ../src/misc_playlist.c:297
 msgid ""
 "Auto Store of track view disabled.\n"
 "\n"
@@ -4193,11 +4645,11 @@
 "שמירה אוטומטית של תצוגת הרצועות בוטלה.\n"
 "\n"
 
-#: src/misc_playlist.c:357
+#: ../src/misc_playlist.c:356
 msgid "Not Listed"
 msgstr "לא רשום"
 
-#: src/misc_playlist.c:407
+#: ../src/misc_playlist.c:406
 #, c-format
 msgid "Created playlist '%s' with %d track."
 msgid_plural "Created playlist '%s' with %d tracks."
@@ -4205,68 +4657,68 @@
 msgstr[1] "נוצרה רשימת השמעה '%s' עם %d רצועות."
 
 #. n==0
-#: src/misc_playlist.c:418
+#: ../src/misc_playlist.c:417
 msgid "No tracks available, playlist not created"
 msgstr "רצועות לא זמינות, לא נוצרה רשימת השמעה"
 
-#: src/misc_playlist.c:544
+#: ../src/misc_playlist.c:543
 #, c-format
 msgid "Most Listened (%d)"
 msgstr "הכי הרבה הושמע (%d)"
 
-#: src/misc_playlist.c:585
+#: ../src/misc_playlist.c:584
 msgid "Never Listened"
 msgstr "לא הושמע אף פעם"
 
-#: src/misc_playlist.c:625
+#: ../src/misc_playlist.c:624
 #, c-format
 msgid "Best Rated (%d)"
 msgstr "דורג הכי טוב (%d)"
 
-#: src/misc_playlist.c:667
+#: ../src/misc_playlist.c:666
 msgid "Unrated tracks"
 msgstr "רצועות לא דורגו"
 
-#: src/misc_playlist.c:672
+#: ../src/misc_playlist.c:671
 #, c-format
 msgid "Rated %d"
 msgstr "דורגו %d"
 
-#: src/misc_playlist.c:715
+#: ../src/misc_playlist.c:714
 #, c-format
 msgid "Recent (%d)"
 msgstr "לאחרונה (%d)"
 
-#: src/misc_playlist.c:754
+#: ../src/misc_playlist.c:753
 msgid "Last Time"
 msgstr "בפעם האחרונה"
 
-#: src/misc_playlist.c:845
+#: ../src/misc_playlist.c:844
 msgid "Removal of dangling tracks with no files on PC was canceled."
 msgstr "הסרה של רצועות מתנדנדות ללא קבצים על ה-PC בוטלה."
 
-#: src/misc_playlist.c:855
+#: ../src/misc_playlist.c:854
 msgid "Handling of dangling tracks with files on PC was canceled."
 msgstr "טיפול ברצועות מתנדנדות ללא קבצים על ה-PC בוטל."
 
-#: src/misc_playlist.c:883
+#: ../src/misc_playlist.c:882
 msgid "Dangling tracks with no files on PC were removed."
 msgstr "רצועות מתנדנדות ללא קבצים על ה-PC הוסרו."
 
-#: src/misc_playlist.c:917
+#: ../src/misc_playlist.c:916
 #, c-format
 msgid "Processing '%s'"
 msgstr "מעבד '%s'"
 
-#: src/misc_playlist.c:941
+#: ../src/misc_playlist.c:943
 msgid "Dangling tracks with files on PC were handled."
 msgstr "רצועות מתנדנדות עם קבצים על ה-PC טופלו."
 
-#: src/misc_playlist.c:974
+#: ../src/misc_playlist.c:976
 msgid "Track"
 msgstr "רצועה"
 
-#: src/misc_playlist.c:1017
+#: ../src/misc_playlist.c:1019
 msgid ""
 "You did not import the existing iTunesDB. This is most likely incorrect and "
 "will result in the loss of the existing database.\n"
@@ -4281,19 +4733,19 @@
 "לחץ 'אישור' על מנת להמשיך כרגיל או 'ביטול' לביטול. אם אתה תבטל, אתה תוכל "
 "לייבא את מסד הנתונים הקיים לפני קריאה לפעולה זו שוב.\n"
 
-#: src/misc_playlist.c:1031
+#: ../src/misc_playlist.c:1033
 msgid "Creating a tree of known files"
 msgstr "יוצר עץ של קבצים ידועים"
 
-#: src/misc_playlist.c:1075
+#: ../src/misc_playlist.c:1077
 msgid "Checking iPOD files against known files in DB"
 msgstr "בודק קבצים על ה-iPod כנגד קבצים ידועים במסד הנתונים"
 
-#: src/misc_playlist.c:1118
+#: ../src/misc_playlist.c:1120
 msgid "Orphaned"
 msgstr "יתום"
 
-#: src/misc_playlist.c:1145
+#: ../src/misc_playlist.c:1147
 #, c-format
 msgid ""
 "The following orphaned file had already been added to the iPod again. It "
@@ -4305,12 +4757,12 @@
 "%s\n"
 "\n"
 
-#: src/misc_playlist.c:1173
+#: ../src/misc_playlist.c:1175
 #, c-format
 msgid "Found %d orphaned and %d dangling files. Processing..."
 msgstr "נמצאו %d קבצים יתומים ו-%d קבצים מתנדנדים. מעבד..."
 
-#: src/misc_playlist.c:1197
+#: ../src/misc_playlist.c:1199
 #, c-format
 msgid ""
 "The following dangling track has a file on PC.\n"
@@ -4327,7 +4779,7 @@
 "הרצועות המתנדנדות (%d) הבאות הן בעלות קבצים על ה-PC\n"
 "לחץ אישור להעביר אותן מהקבצים בסנכרון הבא, וביטול לעזוב את זה כמו שזה."
 
-#: src/misc_playlist.c:1202
+#: ../src/misc_playlist.c:1204
 #, c-format
 msgid ""
 "The following dangling track doesn't have file on PC. \n"
@@ -4344,31 +4796,31 @@
 
 #. we want unique window for each
 #. gboolean modal,
-#: src/misc_playlist.c:1209
+#: ../src/misc_playlist.c:1211
 msgid "Dangling Tracks"
 msgstr "רצועות מתנדנדות"
 
-#: src/misc_playlist.c:1232
+#: ../src/misc_playlist.c:1234
 #, 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:90 src/misc_track.c:364
+#: ../src/misc_track.c:89
 #, 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:199
+#: ../src/misc_track.c:198
 #, 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:206
+#: ../src/misc_track.c:205
 #, c-format
 msgid ""
 "The following duplicate track has not been added to the master play list."
@@ -4380,66 +4832,76 @@
 
 #. gint id,
 #. gboolean modal,
-#: src/misc_track.c:213
+#: ../src/misc_track.c:212
 msgid "Duplicate detection"
 msgstr "זיהוי כפילויות"
 
-#: src/misc_track.c:904
+#: ../src/misc_track.c:1269
 msgid "Local Database"
 msgstr "מסד נתונים מקומי"
 
 #. artwork is set
-#: src/misc_track.c:915
+#: ../src/misc_track.c:1280
 msgid "Embedded or filename was lost"
-msgstr ""
+msgstr "מוטבע או ששם הקובץ אבד"
 
-#: src/misc_track.c:919
-#, fuzzy
+#: ../src/misc_track.c:1284
 msgid "Artwork not set"
-msgstr "לא מקובע"
+msgstr "לא נקבעו תמונות"
 
-#: src/misc_track.c:1527
+#: ../src/misc_track.c:1737
+#, fuzzy, c-format
+msgid "Could not find source file for '%s'. Track not copied."
+msgstr "אי אפשר למצוא את הקובץ '%s' על ה-iPod\n"
+
+#: ../src/misc_track.c:1973
 #, c-format
 msgid "drag and drop: ignored '%s'\n"
 msgstr "גרור ושחרר: התעלמות מ '%s'\n"
 
-#: src/mp3file.c:1276
+#: ../src/mp3file.c:1282
 #, c-format
 msgid "Error setting ID3 field: %s\n"
 msgstr "שגיאה בקביעת שדה ID3: %s\n"
 
-#: src/mp3file.c:1300 src/mp3file.c:1373 src/mp3file.c:1522 src/mp3file.c:2160
+#: ../src/mp3file.c:1306 ../src/mp3file.c:1399 ../src/mp3file.c:1548
+#: ../src/mp3file.c:2186
 #, c-format
 msgid "ERROR while opening file: '%s' (%s).\n"
 msgstr "שגיאה בזמן פתיחת קובץ: '%s' (%s).\n"
 
-#: src/mp3file.c:1593
+#: ../src/mp3file.c:1619
 #, c-format
 msgid "ERROR while writing tag to file: '%s' (%s).\n"
 msgstr "שגיאה בזמן כתיבת תג לקובץ: '%s' (%s).\n"
 
 #. Tracks with zero play length are ignored by iPod...
-#: src/mp3file.c:2326
+#: ../src/mp3file.c:2352
 #, c-format
 msgid "File \"%s\" has zero play length. Ignoring.\n"
 msgstr "הקובץ \"%s\" בעל זמן אפס. מתעלם.\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"
+#: ../src/mp4file.c:227 ../src/mp4file.c:359
+#, fuzzy, c-format
+msgid "'%s' does not appear to be a mp4 audio or video file.\n"
 msgstr "הקובץ '%s' הוא כנראה לא קובץ שמע mp4.\n"
 
-#: src/mp4file.c:231 src/mp4file.c:352
+#: ../src/mp4file.c:237 ../src/mp4file.c:369
 #, c-format
 msgid "Could not open '%s' for reading, or file is not an mp4 file.\n"
 msgstr "אי אפשר לפתוח את '%s' לקריאה, או הקובץ הוא לא קובץ שמע mp4.\n"
 
-#: src/mp4file.c:472
+#: ../src/mp4file.c:478
 #, c-format
+msgid "'%s' does not appear to be a mp4 audio file.\n"
+msgstr "הקובץ '%s' הוא כנראה לא קובץ שמע mp4.\n"
+
+#: ../src/mp4file.c:489
+#, c-format
 msgid "Could not open '%s' for writing, or file is not an mp4 file.\n"
 msgstr "אי אפשר לפתוח את '%s' לכתיבה, או הקובץ הוא לא קובץ שמע mp4.\n"
 
-#: src/mp4file.c:485
+#: ../src/mp4file.c:502
 #, c-format
 msgid ""
 "Import of '%s' failed: m4a/m4p/m4b not supported without the mp4v2 library. "
@@ -4448,7 +4910,7 @@
 "הייבוא של '%s' נכשל: m4a/m4p/m4b לא נתמך ללא הספריה mp4v2. אתה חייב להדר את "
 "קוד המקור gtkpod ביחד עם הספריה mp4v2.\n"
 
-#: src/mp4file.c:491
+#: ../src/mp4file.c:508
 #, c-format
 msgid ""
 "m4a/m4p/m4b metadata update for '%s' failed: m4a/m4p/m4b not supported "
@@ -4459,263 +4921,304 @@
 "ללא הספריה mp4v2. אתה חייב להדר את קוד המקור של gtkpod ביחד עם ספריית "
 "mp4v2.\n"
 
-#: src/mp4file.c:497
-#, fuzzy, c-format
+#: ../src/mp4file.c:514
+#, 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/oggfile.c:62 ../src/wavfile.c:107
+#, c-format
+msgid "Could not open '%s' for reading.\n"
+msgstr "לא מסוגל לפתוח את '%s' לכתיבה.\n"
+
+#: ../src/oggfile.c:73
+#, fuzzy, c-format
+msgid "'%s' does not appear to be an ogg audio file.\n"
+msgstr "הקובץ '%s' הוא כנראה לא קובץ שמע mp4.\n"
+
+#: ../src/oggfile.c:150
+#, fuzzy, c-format
+msgid ""
+"Import of '%s' failed: ogg not supported without the ogg library. You must "
+"compile the gtkpod source together with the ogg library.\n"
+msgstr ""
+"הייבוא של '%s' נכשל: m4a/m4p/m4b לא נתמך ללא הספריה mp4v2. אתה חייב להדר את "
+"קוד המקור gtkpod ביחד עם הספריה mp4v2.\n"
+
+#: ../src/oggfile.c:156
+#, fuzzy, c-format
+msgid ""
+"ogg metadata update for '%s' failed: ogg not supported without the ogg "
+"library. You must compile the gtkpod source together with the ogg library.\n"
+msgstr ""
 "עדכון מטא-מידע של m4a/m4p/m4b עבור '%s' נכשל: הסוגים m4a/m4p/m4b לא נתמכים "
 "ללא הספריה mp4v2. אתה חייב להדר את קוד המקור של gtkpod ביחד עם ספריית "
 "mp4v2.\n"
 
-#: src/prefs.c:307
+#: ../src/prefs.c:356
 #, c-format
 msgid "gtkpod version %s usage:\n"
 msgstr "גרסה %s של gtkpod, שימוש:\n"
 
-#: src/prefs.c:308
+#: ../src/prefs.c:357
 msgid "  -h, --help:   display this message\n"
 msgstr "  -h, --help:   display this message\n"
 
-#: src/prefs.c:309
-msgid "  -p <filename>:increment playcount for file by one\n"
+#: ../src/prefs.c:358
+#, fuzzy
+msgid "  -p <file>:    increment playcount for file by one\n"
 msgstr "  -p <filename>:increment playcount for file by one\n"
 
-#: src/prefs.c:310
+#: ../src/prefs.c:359
+msgid "  --hash <file>:print gtkpod hash for file\n"
+msgstr ""
+
+#: ../src/prefs.c:360
 msgid "  -m path:      define the mountpoint of your iPod\n"
 msgstr "  -m path:      define the mountpoint of your iPod\n"
 
-#: src/prefs.c:311
+#: ../src/prefs.c:361
 msgid "  --mountpoint: same as '-m'.\n"
 msgstr "  --mountpoint: same as '-m'.\n"
 
-#: src/prefs.c:312
+#: ../src/prefs.c:362
 msgid "  -a:           import database automatically after start.\n"
 msgstr "  -a:           import database automatically after start.\n"
 
-#: src/prefs.c:313
+#: ../src/prefs.c:363
 msgid "  --auto:       same as '-a'.\n"
 msgstr "  --auto:       same as '-a'.\n"
 
-#: src/prefs_window.c:119
+#: ../src/prefs.c:560
+#, c-format
+msgid "Couldn't create ~/.gtkpod\n"
+msgstr ""
+
+#: ../src/prefs_window.c:134
 msgid "Please select command for 'Play Now'"
 msgstr "בחר בבקשה פקודה ל 'נגן עכשיו'"
 
-#: src/prefs_window.c:120
+#: ../src/prefs_window.c:135
 msgid "Please select command for 'Enqueue'"
 msgstr "בחר בבקשה פקודה ל 'הכנס לתור'"
 
-#: src/prefs_window.c:121
+#: ../src/prefs_window.c:136
 msgid "Please select the mp3gain executable"
 msgstr "בחר בבקשה את קובץ ההרצה ל-mp3gain"
 
-#: src/prefs_window.c:124
+#: ../src/prefs_window.c:137
+msgid "Please select the aacgain executable"
+msgstr "בחר בבקשה את קובץ ההרצה ל־aacgain"
+
+#: ../src/prefs_window.c:138
 msgid "Select the mserv music root directory"
 msgstr "בחר את תיקיית השורש ל mserv music"
 
-#: src/prefs_window.c:125
+#: ../src/prefs_window.c:139
 msgid "Select the mserv trackinfo root directory"
 msgstr "בחר את תיקיית השורש ל mserv trackinfo"
 
-#: src/prefs_window.c:127
-#, fuzzy
-msgid "Please select the aacgain executable"
-msgstr "בחר בבקשה את קובץ ההרצה ל-mp3gain"
+#: ../src/prefs_window.c:140
+msgid "Select the ogg/vorbis converter command"
+msgstr ""
 
-#: src/prefs_window.c:911 src/prefs_window.c:929
+#: ../src/prefs_window.c:141
+msgid "Select the flac converter command"
+msgstr ""
+
+#: ../src/prefs_window.c:142
+msgid "Select the m4a converter command."
+msgstr ""
+
+#: ../src/prefs_window.c:143
+msgid "Select the mp3 converter command."
+msgstr ""
+
+#: ../src/prefs_window.c:144
+msgid "Select the wav converter command."
+msgstr ""
+
+#: ../src/prefs_window.c:211 ../src/repository.c:662
+#, fuzzy, c-format
+msgid ""
+"<i>Have a look at the scripts provided in '%s'. If you write a new script or "
+"improve an existing one, please send it to jcsjcs at users.sourceforge.net "
+"for inclusion into the next release.</i>"
+msgstr ""
+"<i>הסתכל על קבצי האצווה המופיעים ב-'%s'. אם תכתוב קובץ אצווה חדש, שלח אותו "
+"בבקשה אל jcsjcs ב- users.sourceforge.net להכללה בגרסה הבאה.</i>"
+
+#: ../src/prefs_window.c:986 ../src/prefs_window.c:1004
 msgid "Preferences not updated"
 msgstr "העדפות לא עודכנו"
 
-#: src/prefs_window.c:938
+#: ../src/prefs_window.c:1013
 msgid "Preferences applied"
 msgstr "העדפות עודכנו"
 
-#: src/repository.c:549 src/repository.c:2372
-#, fuzzy
-msgid "Select mountpoint"
-msgstr "נקודת ה_עיגון של ה-iPod:"
-
-#: src/repository.c:576 src/repository.c:2398
+#: ../src/repository.c:573 ../src/repository.c:2395
 msgid "Set backup file"
-msgstr ""
+msgstr "קבע קובץ גיבוי"
 
-#: src/repository.c:615
-#, fuzzy
+#: ../src/repository.c:612
 msgid "Select directory for synchronization"
-msgstr "בחר תיקייה להוספה רקורסיבית"
+msgstr "בחר תיקייה עבור הסנכרון"
 
-#: src/repository.c:641
+#: ../src/repository.c:638
 msgid "Please select command to sync contacts"
 msgstr "בחר בבקשה פקודה לסנכרון אנשי קשר"
 
-#: src/repository.c:647
+#: ../src/repository.c:644
 msgid "Please select command to sync calendar"
 msgstr "בחר בבקשה פקודה לסנכרון יומן"
 
-#: src/repository.c:653
-#, fuzzy
+#: ../src/repository.c:650
 msgid "Please select command to sync notes"
-msgstr "בחר בבקשה פקודה לסנכרון אנשי קשר"
+msgstr "בחר בבקשה פקודה לסנכרון תזכורות"
 
-#: src/repository.c:665
-#, 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>"
-msgstr ""
-"הסתכל על קבצי האצווה המופיעים ב-'%s'. אם תכתוב קובץ אצווה חדש, שלח אותו "
-"בבקשה אל jcsjcs ב- users.sourceforge.net להכללה בגרסה הבאה."
-
-#: src/repository.c:732
-#, fuzzy
+#: ../src/repository.c:729
 msgid "Smart playlist updated."
-msgstr "רשימת השמעה חכמה"
+msgstr "רשימת השמעה חכמה עודכנה."
 
-#: src/repository.c:1193
-#, fuzzy
+#: ../src/repository.c:1190
 msgid "Podcasts Repository"
-msgstr "מחק מה-iPod"
+msgstr "מאגר פודקסטים"
 
-#: src/repository.c:1197
-#, fuzzy
+#: ../src/repository.c:1194
 msgid "Local Repository"
-msgstr "מחק מה-iPod"
+msgstr "מאגר מקומי"
 
-#: src/repository.c:1351
-#, fuzzy
+#: ../src/repository.c:1348
 msgid "Master Playlist"
-msgstr "...רשימת השמעה ראשית"
+msgstr "רשימת השמעה ראשית"
 
-#: src/repository.c:1355
-#, fuzzy
+#: ../src/repository.c:1352
 msgid "Podcasts Playlist"
-msgstr "רשימת השמעה חכמה"
+msgstr "רשימות השמעה של פודקסטים"
 
-#: src/repository.c:1363
-#, fuzzy
+#: ../src/repository.c:1360
 msgid "Regular Playlist"
-msgstr "רשימת השמעה חכמה"
+msgstr "רשימת השמעה רגילות"
 
-#: src/repository.c:2426
-#, fuzzy
+#: ../src/repository.c:2423
 msgid "Set local repository file"
-msgstr "מחק מה-iPod"
+msgstr "קבע קובץ מאגר מקומי"
 
-#: src/repository.c:2525
-#, fuzzy
+#: ../src/repository.c:2522
 msgid "New Repository"
-msgstr "מחק מה-iPod"
+msgstr "מאגר חדש"
 
-#: src/support.c:90 src/support.c:114
+#: ../src/sha1.c:186
+msgid "Hashed file is 0 bytes long\n"
+msgstr "קובץ מעורבב (Hashed) בעל גודל של 0\n"
+
+#: ../src/sha1.c:239
 #, fuzzy, c-format
-msgid "Couldn't find pixmap file: %s"
-msgstr "לא מסוגל לשנות תג של קובץ: %s\n"
+msgid "Could not open '%s' to calculate SHA1 checksum: %s\n"
+msgstr "לא יכול לפתוח את '%s' על מנת לחשב סכומי ביקורת: %s\n"
 
-#: src/syncdir.c:237
+#: ../src/syncdir.c:237
 #, c-format
 msgid "Sync summary for %s/%s\n"
-msgstr ""
+msgstr "סיכום סנכרון עבור %s/%s\n"
 
-#: src/syncdir.c:246
-#, fuzzy
+#: ../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] "עודכנו %d הרצועות הבאות"
+msgstr[0] "הרצועה הבאה עודכנה או התווספה:\n"
+msgstr[1] "הרצועות הבאות עודכנו או התווספו:\n"
 
-#: src/syncdir.c:255
-#, fuzzy
+#: ../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] "לפני הסרת רצועות לגמרי מן ה-iPod"
-msgstr[1] "לפני הסרת רצועות לגמרי מן ה-iPod"
+msgstr[0] "הרצועה הבאה הוסרה לחלוטין מה־iPod:\n"
+msgstr[1] "הרצועות הבאות הוסרו לחלוטין מה־iPod:\n"
 
-#: src/syncdir.c:264
-#, fuzzy
+#: ../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] "הוסרו %d מן הרצועות הכפולות הבאות."
+msgstr[0] "הרצועה הבאה הוסרה מהמאגר:\n"
+msgstr[1] "הרצועות הבאות הוסרו מהמאגר:\n"
 
-#: src/syncdir.c:271
-#, fuzzy
+#: ../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] "הרצועות הכפולות (%d) הבאות לא הוספו לרשימת ההשמעה הראשית."
+msgstr[0] "הרצועה הבאה הוסרה מרשימת ההשמעה:\n"
+msgstr[1] "הרצועות הבאות הוסרו מרשימת ההשמעה:\n"
 
-#: src/syncdir.c:277
+#: ../src/syncdir.c:277
 msgid "Nothing was changed.\n"
-msgstr ""
+msgstr "כלום לא השתנה.\n"
 
-#: src/syncdir.c:282
+#: ../src/syncdir.c:282
 msgid "Sync summary"
-msgstr ""
+msgstr "סיכום הסנכרון"
 
-#: src/tools.c:119
+#: ../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"
+"Could not find '%s'.\n"
+"Please specifiy the exact path in the Tools section of the preference dialog "
+"or install the program if it is not installed on your system.\n"
 "\n"
 msgstr ""
-"לא מסוגל למצוא את הפקודה '%s'.\n"
+"לא מסוגל למצוא את '%s'.\n"
+"  אנא ציין את הנתיב המדוייק בחלק 'כלים' של חלון דו-שיח ההעדפות או התקן את "
+"התכנית אם היא לא מותקנת על המערכת שלך.\n"
 "\n"
-"אנא בדוק את ההגדרות בחלק 'כלים' של חלון דו-שיח ההעדפות.\n"
-"\n"
 
-#: src/tools.c:204
-#, fuzzy, c-format
+#: ../src/tools.c:204
+#, c-format
 msgid ""
 "Execution of '%s' failed.\n"
 "\n"
-msgstr "ביצוע של mp3gain ('%s') נכשל."
+msgstr ""
+"הביצוע של '%s' נכשל.\n"
+"\n"
 
-#: src/tools.c:249
-#, fuzzy, c-format
+#: ../src/tools.c:249
+#, c-format
 msgid ""
 "Did not normalize '%s'. Set mp3gain path in the Tools section of the "
 "preferences.\n"
 msgstr ""
-"לא מסוגל למצוא את הפקודה '%s'.\n"
-"\n"
-"אנא בדוק את ההגדרות בחלק 'כלים' של חלון דו-שיח ההעדפות.\n"
-"\n"
+"לא בוצע נרמול עבור '%s'.אנא קבע את הנתיב של mp3gain בחלק 'כלים' של חלון דו-"
+"שיח ההעדפות.\n"
 
-#: src/tools.c:259
-#, fuzzy, c-format
+#: ../src/tools.c:259
+#, c-format
 msgid ""
 "Did not normalize '%s'. Set aacgain path in the Tools section of the "
 "preferences.\n"
 msgstr ""
-"לא מסוגל למצוא את הפקודה '%s'.\n"
-"\n"
-"אנא בדוק את ההגדרות בחלק 'כלים' של חלון דו-שיח ההעדפות.\n"
-"\n"
+"לא בוצע נרמול עבור '%s'.אנא קבע את הנתיב של aacgain בחלק 'כלים' של חלון דו-"
+"שיח ההעדפות.\n"
 
-#: src/tools.c:384
+#: ../src/tools.c:386
 msgid "Normalizing..."
 msgstr "מנרמל..."
 
-#: src/tools.c:434
+#: ../src/tools.c:436
 #, c-format
 msgid "%s - %s"
 msgstr "%s - %s"
 
-#: src/tools.c:460
+#: ../src/tools.c:462
 msgid "Aborting..."
 msgstr "מבטל..."
 
-#: src/tools.c:464
+#: ../src/tools.c:466
 msgid "Will abort after current mp3gain process ends."
 msgstr "יבוטל אחרי שתהליך mp3gain יסתיים."
 
-#: src/tools.c:490
+#: ../src/tools.c:492
 #, c-format
 msgid ""
 "'%s-%s' (%s) could not be normalized.\n"
@@ -4724,20 +5227,20 @@
 "אי אפשר לנרמל את '%s-%s' (%s)\n"
 "\n"
 
-#: src/tools.c:529
+#: ../src/tools.c:531
 #, 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:632
+#: ../src/tools.c:634
 msgid ""
 "Please specify the command to be called on the 'Tools' section of the "
 "preferences dialog.\n"
 msgstr "אנא ציין את הפקודה שיקראו לה בחלק 'כלים' בחלון הדו-שיח העדפות.\n"
 
-#: src/tools.c:644
+#: ../src/tools.c:646
 #, c-format
 msgid ""
 "Could not find the command '%s'.\n"
@@ -4750,7 +5253,7 @@
 "אנא בדוק את ההגדרות בחלק 'כלים' של חלון דו-שיח ההעדפות.\n"
 "\n"
 
-#: src/tools.c:685
+#: ../src/tools.c:687
 #, c-format
 msgid ""
 "'%s' returned the following output:\n"
@@ -4759,693 +5262,83 @@
 "האובייקט '%s' החזיר את הפלט הבא:\n"
 "%s\n"
 
-#: src/tools.c:752
+#: ../src/tools.c:754
 #, c-format
 msgid "No command set for '%s'"
 msgstr "אין רשימת פקודות ל-'%s'"
 
-#: src/tools.c:772
+#: ../src/tools.c:774
 #, c-format
 msgid "Could not find command '%s' specified for '%s'"
 msgstr "לא מסוגל למצוא פקודה '%s' אשר צוינה עבור '%s'"
 
-#: src/wavfile.c:107
+#: ../src/wavfile.c:181
 #, c-format
-msgid "Could not open '%s' for reading.\n"
-msgstr "לא מסוגל לפתוח את '%s' לכתיבה.\n"
-
-#: src/wavfile.c:181
-#, c-format
 msgid "%s does not appear to be a supported wav file.\n"
 msgstr "הקובץ %s הוא כנראה לא קובץ wav נתמך.\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 ""
-#~ "בעליית התוכנית gtkpod יבצע 'mount <ipod mountpoint>' ביציאה תבוצע הפקודה "
-#~ "'umount <ipod mountpoint>'. עבור סידורים יותר מתוחכמים אנא השתמש "
-#~ "בסקריפטים: ~/.gtkpod/gtkpod.in ~/.gtkpod/gtkpod.out"
+#, fuzzy
+#~ msgid "label21"
+#~ msgstr "label21"
 
-#~ msgid "Handle mounting/unmounting of iPod drive"
-#~ msgstr "טפל בעגינה/ניתוק של כונן ה-iPod"
+#~ msgid "window1"
+#~ msgstr "חלון1"
 
-#, fuzzy
-#~ msgid "<b>Artwork</b>"
+#~ msgid "<b>Import</b>"
 #~ msgstr "<b>ייבוא</b>"
 
-#~ msgid "_Offline"
-#~ msgstr "_מנותק"
+#~ msgid "Automatically import iTunesDBs on startup"
+#~ msgstr "יבא אוטומטית את iTunesDB בתחילת התוכנית"
 
-#~ 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 עדיין לא "
-#~ "ידועה -- מצפים לעזרה מצדכם."
+#~ msgid "Couldn't find pixmap file: %s"
+#~ msgstr "לא מוצא קובץ תמונה: %s"
 
-#, fuzzy
-#~ msgid "Edit Repository Properties"
-#~ msgstr "אפשרויות מיון"
+#~ msgid "_Synchronize Playlist"
+#~ msgstr "_סנכרן רשימת השמעה"
 
-#~ msgid "Currently no iPod database selected"
-#~ msgstr "מסד נתונים של iPod לא נבחר עדיין."
+#~ msgid "Stop Display Update"
+#~ msgstr "עצור עדכון תצוגה"
 
-#~ msgid "No playlist selected."
-#~ msgstr "לא נבחרה רשימת השמעה."
+#~ msgid "Stop"
+#~ msgstr "עצור"
 
-#~ msgid "Could not delete backup file: \"%s\"\n"
-#~ msgstr "לא מסוגל למחוק קובץ גיבוי: \"%s\"\n"
-
-#~ msgid "No tracks selected."
-#~ msgstr "לא נבחרו רצועות."
-
-#~ msgid "Problem creating iPod directory: '%s'."
-#~ msgstr "בעיות ביצירת תיקיית iPod: '%s'."
-
-#~ msgid "Successfully created iPod directories in '%s'."
-#~ msgstr "תיקיות ה-iPod נוצרו בהצלחה ב - '%s'."
-
-#~ msgid "Create iPod directories"
-#~ msgstr "יצירת תיקיות iPod"
-
-#~ msgid "OK to create the following directories?"
-#~ msgstr "האם ליצור את התיקיות הבאות?"
-
 #~ 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."
+#~ "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 ""
-#~ "לא מוצא את mp3gain. ניסיתי להשתמש בקובץ הריצה: '%s'.\n"
-#~ "\n"
-#~ "אם הקובץ mp3gain לא נמצא בנתיב החיפוש או נקרא בשם אחר, אתה יכול לציין את "
-#~ "הנתיב המלא בחלק 'כלים' של חלון דו-שיח ההעדפות.\n"
-#~ "\n"
-#~ "אם אין לך את mp3gain מותקן, אתה יכול להורידו מ: http://www.sourceforge."
-#~ "net/projects/mp3gain"
+#~ "זה יותר מהיר למיין את התצוגה אחרי שכל הרצועות הוספו. חלק מהאנשים יחשבו "
+#~ "שהתנהגות זו מעצבנת וכנראה יבטלו את הסימון לאפשרות זו."
 
 #~ 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"
+#~ "Temporarily disable sorting when changing playlist\n"
+#~ "or tab entry (faster!)"
+#~ msgstr "חסום זמנית מיון בזמן החלפת רשימת השמעה או רשומת כרטיסיה (מהיר)"
 
-#~ msgid "  --offline:    same as '-o'.\n"
-#~ msgstr "  --offline:    same as '-o'.\n"
-
-#~ msgid "Error while reading prefs: %s\n"
-#~ msgstr "שגיאה בזמן קריאת העדפות: %s\n"
-
-#~ msgid "Unable to open config file '%s' for reading\n"
-#~ msgstr "אי אפשר לפתוח את קובץ הקונפיגורציה '%s' לקריאה\n"
-
-#~ msgid "Unknown option: %s\n"
-#~ msgstr "אפשרות לא ידועה: %s\n"
-
-#~ msgid "# delete confirmation\n"
-#~ msgstr "# וידוא מחיקה\n"
-
-#~ msgid "# sort tab: select 'All', last selected page (=category)\n"
-#~ msgstr "# כרטיסיית מיון: בחר 'הכל', הדף הנבחר אחרון (=קטגוריה)\n"
-
-#~ msgid "# autoselect master playlist?\n"
-#~ msgstr "# בחירה אוטומטית של רשימת ראשית להשמעה?\n"
-
-#~ msgid "# title=0, artist, album, genre, composer\n"
-#~ msgstr "# שם רצועה=0, אמן, כותר, סגנון, יוצר\n"
-
-#~ msgid "# track_nr=5, ipod_id, pc_path, transferred\n"
-#~ msgstr "# מספר_רצועה=5, מזהה_ipod, נתיב_ב-PC, הועברו\n"
-
-#~ msgid "# autoset: set empty tag to filename?\n"
-#~ msgstr "# קביעה אוטומטית: קבע תג ריקה לקובץ?\n"
-
 #~ msgid ""
-#~ "# position of sliders (paned): playlists, above tracks,\n"
-#~ "# between sort tabs, and in statusbar.\n"
+#~ "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 ""
-#~ "# מיקום הגלילות : רשימות השמעה, מעל הרצועות,\n"
-#~ "# בין כרטיסיות מיון, ובסרגל הסטטוס.\n"
+#~ "התצוגה יכולה להינעל אחרי שינוי הבחירה. עדכון התצוגה יהיה מהיר יותר, אך "
+#~ "אתה תצטרך להמתין עד הסיום. בזמן שימוש באפשרות זו, המיון גם הוא זמנית "
+#~ "מבוטל (ראה אפשרות למעלה)."
 
 #~ msgid ""
-#~ "# window sizes: main window, confirmation scrolled,\n"
-#~ "#               confirmation non-scrolled, dirbrowser, prefs\n"
-#~ msgstr ""
-#~ "# גדלי חלונות: חלון ראשי, ווידוא לא נגלל, ווידוא נגלל, סייר תיקיות, "
-#~ "הגדרות\n"
+#~ "Block display when changing playlist or tab\n"
+#~ " entry (faster!)"
+#~ msgstr "חסום תצוגה בזמן החלפת רשימת השמעה או רשומת כרטיסיה (מהיר)"
 
-#~ msgid "Unable to open '%s' for writing\n"
-#~ msgstr "אי אפשר לפתוח '%s' לכתיבה\n"
+#~ msgid "deleting..."
+#~ msgstr "מוחק..."
 
-#~ msgid ""
-#~ " Preferences: Category nr (%d<%d?) or sorttab nr (%d<%d?) out of range.\n"
-#~ msgstr ""
-#~ " העדפות: מספר קטגוריה (%d<%d?) או מספר כרטיסיית מיון (%d<%d?) מתוך "
-#~ "לטווח.\n"
+#~ msgid "preparing to copy..."
+#~ msgstr "מתכונן להעתיק..."
 
-#~ msgid "Unable to 'mkdir %s'\n"
-#~ msgstr "אי אפשר לעשות 'mkdir %s'\n"
+#~ msgid "Copied %d of %d new track."
+#~ msgid_plural "Copied %d of %d new tracks."
+#~ msgstr[0] "הועתקו %d מתוך %d רצועה חדשה."
+#~ msgstr[1] "הועתקו %d מתוך %d רצועות חדשות."
 
-#~ msgid "prefs_set_toolbar_style: illegal style '%d' ignored\n"
-#~ msgstr "prefs_set_toolbar_style: התעלמות מסגנון לא חוקי '%d' \n"
-
-#~ msgid "prefs_set_pm_sort: illegal type '%d' ignored\n"
-#~ msgstr "prefs_set_pm_sort: התעלמות מסוג לא חוקי '%d'\n"
-
-#~ msgid "'%s': no arguments (%%...) allowed.\n"
-#~ msgstr "ארגומנטים לא מותרים (%%...) : '%s'\n"
-
-#~ msgid "'%s': only '%%[%s]' allowed.\n"
-#~ msgstr "רק '%%[%s]' מותר : '%s'\n"
-
-#~ msgid "_Read iTunesDB"
-#~ msgstr "ק_ריאת iTuneDB"
-
-#~ msgid "Synchronize _iTunesDB"
-#~ msgstr "סנכרון _iTunesDB"
-
-#~ msgid "Edit"
-#~ msgstr "עריכה"
-
-#~ msgid "Read Existing Database from Disk/iPod"
-#~ msgstr "קרא מסד נתונים קיים מהדיסק הקשיח/iPod"
-
-#~ msgid "Read"
-#~ msgstr "קרא"
-
-#~ msgid "Write Changes to Disk/iPod"
-#~ msgstr "כתוב שינויים אל הדיסק/iPod"
-
-#~ msgid "Sync"
-#~ msgstr "סנכרן"
-
-#, fuzzy
-#~ msgid "Update Tracks"
-#~ msgstr "רצועות לא דורגו"
-
-#~ msgid "Normalize"
-#~ msgstr "נרמול"
-
-#, fuzzy
-#~ msgid "Podcasts Preferences"
-#~ msgstr "_עריכת העדפות"
-
-#~ msgid "file not found"
-#~ msgstr "הקובץ לא נמצא"
-
-#~ msgid "Unmounting of '%s' (%s) unsuccessful."
-#~ msgstr "ביטול עגינה של '%s' (%s) נכשלה."
-
-#~ msgid "Unmounting of '%s' unsuccessful."
-#~ msgstr "ביטול עגינה של '%s' נכשלה."
-
-#~ msgid "Update"
-#~ msgstr "עדכון"
-
-#~ msgid "Sync Dirs"
-#~ msgstr "סנכרון תיקיות"
-
-#~ msgid "Sync dirs of selected entry in which sort tab?"
-#~ msgstr "באיזה כרטיסיית מיון של רשומה נבחרת לסנכרן תיקיות?"
-
-#~ msgid "Syncing directory '%s'"
-#~ msgstr "מסנכרן תיקיית '%s'"
-
-#~ msgid "Syncing completed. No files deleted."
-#~ msgstr "הסנכרון הושלם. קבצים לא נמחקו."
-
-#~ msgid "Never delete any files when syncing"
-#~ msgstr "בזמן סנכרון, אל תמחק שום קובץ"
-
-#~ msgid "Syncing completed."
-#~ msgstr "סנכרון הושלם."
-
-#~ msgid "Syncing aborted"
-#~ msgstr "סנכרון בוטל"
-
-#~ msgid "No tracks in selection"
-#~ msgstr "אין רצועות בבחירה"
-
-#~ msgid "'%s' is not a directory. Ignored.\n"
-#~ msgstr "'%s' היא לא תיקייה. מתעלם.\n"
-
-#~ 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"
-
-#~ msgid "No valid directories have been found. Sync aborted.\n"
-#~ msgstr "לא נמצאו תיקיות תקינות. סנכרון בוטל.\n"
-
-#~ msgid ""
-#~ "The (former) contents of the following directories will be removed from "
-#~ "the database:\n"
-#~ "\n"
-#~ msgstr ""
-#~ "התוכן (הקודם) של התיקיות הבאות יוסר ממסד הנתונים:\n"
-#~ "\n"
-
-#~ msgid ""
-#~ "The following directories will be synchronized:\n"
-#~ "\n"
-#~ msgstr ""
-#~ "התיקיות הבאות יסונכרנו:\n"
-#~ "\n"
-
-#~ msgid "Synchronize directories"
-#~ msgstr "מסנכרן תיקיות"
-
-#~ msgid "Syncing contacts, calendar and notes..."
-#~ msgstr "מסנכרן אנשי קשר, יומן ופתקים..."
-
-#~ msgid "_Synchronize Directories"
-#~ msgstr "_סנכרון תיקיות"
-
-#~ msgid ""
-#~ "Where you mounted your iPod's filesystem. Usually '/mnt/ipod/' or similar."
-#~ msgstr ""
-#~ "היכן שעגנת את מערכת הקבצים של ה-iPod. בדרך כלל '/mnt/ipod' או משהו דומה."
-
-#~ 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 "Delete tracks that have been removed"
-#~ msgstr "מחק רצועות שהוסרו"
-
-#~ msgid "Confirm before removing tracks"
-#~ msgstr "וודא לפני הסרת רצועות"
-
-#~ msgid ""
-#~ "Before removing tracks completely when\n"
-#~ "synchronizing directories"
-#~ msgstr "לפני הסרת רצועות לגמרי כאשר מסנכרנים תיקיות"
-
-#, fuzzy
-#~ msgid "Add"
-#~ msgstr "הוספו"
-
-#, fuzzy
-#~ msgid "Delete"
-#~ msgstr "רצועות נמחקות"
-
-#, fuzzy
-#~ msgid "Name: "
-#~ msgstr "שם משתמש:"
-
-#, fuzzy
-#~ msgid "<b>File options</b>"
-#~ msgstr "<b>ווידוא מחיקה</b>"
-
-#, fuzzy
-#~ msgid " days old"
-#~ msgstr "ימים"
-
-#, fuzzy
-#~ msgid "Delete once copied to iPod"
-#~ msgstr "הרצועה נמחקה לגמרי מה-iPod"
-
-#, fuzzy
-#~ msgid "Create podcast logfile at:"
-#~ msgstr "יצירת קובץ רשימת השמעה"
-
-#, fuzzy
-#~ msgid "<b>iPod options</b>"
-#~ msgstr "<b>תוויות מידע</b>"
-
-#, fuzzy
-#~ msgid "Automatically sync to iPod"
-#~ msgstr "בחירה אוטומטית..."
-
-#, fuzzy
-#~ msgid "Delete from iPod when "
-#~ msgstr "מחק מה-iPod"
-
-#, fuzzy
-#~ msgid "Delete from iPod if podcast has been played"
-#~ msgstr "תאריך ושעה שהרצועה הושמעה לאחרונה"
-
-#, fuzzy
-#~ msgid "Abort selected"
-#~ msgstr "לא נבחרו רצועות"
-
-#~ msgid "Export Tracks"
-#~ msgstr "ייצא רצועות"
-
-#~ msgid ""
-#~ "Icons of buttons were made by Nicolas Chariot.\n"
-#~ "\n"
-#~ "\n"
-#~ msgstr ""
-#~ "הסמלים על הכפתורים נעשו על ידי ניקולס צ'ריוט.\n"
-#~ "\n"
-#~ "\n"
-
-#~ msgid "Settings are not saved.\n"
-#~ msgstr "אפשרויות לא נשמרו.\n"
-
-#~ msgid "_Delete But Keep Tracks"
-#~ msgstr "_מחק אבל שמור רצועות"
-
-#~ msgid "_Delete Completely From iPod"
-#~ msgstr "_מחק לגמרי מה-iPod"
-
-#~ msgid " iPod Mount _Point:"
-#~ msgstr " נקודת עיגון של ה-iPod:"
-
-#~ msgid "Import"
-#~ msgstr "ייבא"
-
-#~ msgid " _Charset (ID3, files): "
-#~ msgstr " _ערכת תווים (ID3, קבצים):"
-
-#~ msgid ""
-#~ "Use selected charset also when updating\n"
-#~ " or syncing tracks"
-#~ msgstr ""
-#~ "השתמש בבחירת ערכת תווים גם בזמן עדכון\n"
-#~ " או סנכרון רצועות"
-
-#~ 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 ""
-#~ "As a last resort set the following tags to the filename if they are "
-#~ "(still) empty:"
-#~ msgstr "בתור אפשרות אחרונה קבע את התגיות לשם הקובץ, אם הן (עדיין) ריקות:"
-
-#~ msgid "Tag Reading"
-#~ msgstr "קריאת תגיות"
-
-#~ msgid "Use mserv database to fill in additional information"
-#~ msgstr "השתמש במסד הנתונים של mserv על מנת למלא מידע נוסף"
-
-#~ msgid "Music Root: "
-#~ msgstr "שורש המוזיקה:"
-
-#~ msgid "..."
-#~ msgstr "..."
-
-#~ msgid "mserv Root: "
-#~ msgstr "השורש של mserv:"
-
-#~ msgid "mserv"
-#~ msgstr "mserv"
-
-#~ msgid "Sync (Writing of iTunesDB)"
-#~ msgstr "סנכרן (כתיבה של iTunesDB)"
-
-#~ msgid "_Input/Output"
-#~ msgstr "_קלט/פלט"
-
-#~ msgid "Relative volume adjustment between -100 and +100"
-#~ msgstr "כיוון עוצמת קול יחסית בין -100 ל +100"
-
-#~ msgid "Displayed Track Attributes "
-#~ msgstr "הצג מאפייני רצועה"
-
-#~ msgid " _Number of sort tabs: "
-#~ msgstr " _מספר כרטיסיות ממויונות:"
-
-#~ 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 ""
-#~ "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 "נרמול עוצמת קול"
-
-#~ msgid "Command to synchronize contacts:"
-#~ msgstr "פקודה עבור סנכרון אנשי קשר:"
-
-#~ msgid "Command to be called to synchronize calendar:"
-#~ msgstr "פקודה עבור סנכרון יומן:"
-
-#~ msgid "Command to be called to synchronize notes:"
-#~ msgstr "פקודה עבור סנכרון פתקים:"
-
-#~ msgid "Contacts / Calendar / Notes"
-#~ msgstr "אנשי קשר / יומן / פתקים"
-
-#~ 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 כאשר תשתמש בגרירה ושחרור על מנת "
-#~ "לסדר את הרצועות.\n"
-#~ "על מנת לשמור רצועות בסדר אלפביתי ל-iPod  אתה מוכרח לבחור באפשרות 'שמירת "
-#~ "סדר רצועות נראות' מתפריט העריכה או לבחור 'שמירה אוטומטית' למעלה."
-
-#~ msgid "Reading"
-#~ msgstr "קריאה"
-
-#~ msgid "Display"
-#~ msgstr "תצוגה"
-
-#~ msgid "Illegal seek to offset %ld (length %ld) in file '%s'."
-#~ msgstr "חיפוש לא חוקי בהיסט %ld (אורך %ld) בקובץ '%s'."
-
-#~ msgid "Not a Play Counts file: '%s' (missing mhdp header)."
-#~ msgstr "זהו לא קובץ ספירת השמעה: '%s' (חסר תחילית mhdp)"
-
-#~ msgid ""
-#~ "Play Counts file ('%s'): header length smaller than expected (%d<96)."
-#~ msgstr "קובץ ספירת השמעה ('%s'): אורך תחילית קטן מהצפוי (%d<96)."
-
-#~ msgid "Play Counts file ('%s'): entry length smaller than expected (%d<12)."
-#~ msgstr "קובץ ספירת השמעה ('%s'): אורך רשומה קטן מהצפוי (%d<12)."
-
-#~ msgid "iTunesDB corrupt: no MHOD at offset %ld in file '%s'."
-#~ msgstr "iTunesDB שבור: אין MHOD בהיסט %ld בקובץ '%s'."
-
-#~ msgid ""
-#~ "Length of smart playlist rule field (%d) not as expected. Trying to "
-#~ "continue anyhow.\n"
-#~ msgstr ""
-#~ "אורך שדה של חוק (%d) רשימת השמעה חכמה הוא לא כצפוי. מנסה להמשיך בכל זאת.\n"
-
-#~ msgid "Did not find SLst hunk as expected. Trying to continue.\n"
-#~ msgstr "לא נמצאה חתיכת SLst כצפוי. מנסה להמשיך.\n"
-
-#~ msgid ""
-#~ "Encountered unknown MHOD type (%d) while parsing the iTunesDB. Ignoring.\n"
-#~ "\n"
-#~ msgstr ""
-#~ "נתקלנו בסוג לא ידוע של MHOD (%d) בזמן ניתוח ה-iTuneDB. מתעלם.\n"
-#~ "\n"
-
-#~ msgid "iTunesDB corrupt: hunk length 0 for hunk at %ld in file '%s'."
-#~ msgstr "iTunesDB שבור: אורך חתיכה 0 בחתיכה  %ld בקובץ '%s'."
-
-#~ msgid "Master-PL"
-#~ msgstr "רשימת ראשית"
-
-#~ msgid "iTunesDB corrupt: found mhyp at %ld in file '%s'."
-#~ msgstr "iTunesDB שבור: נמצא mhyp ב %ld בקובץ '%s'."
-
-#~ msgid "Itdb_Track ID '%d' not found.\n"
-#~ msgstr "מזהה Itdb_Track '%d' לא נמצא.\n"
-
-#~ msgid "OTG Playlist"
-#~ msgstr "רשימת השמעה OTG"
-
-#~ msgid "Not a OTG playlist file: '%s' (missing mhpo header)."
-#~ msgstr "זהו לא קובץ רשימת השמעה OTG: '%s' (חסרה תחילת קובץ mhpo)."
-
-#~ msgid ""
-#~ "OTG playlist file ('%s'): header length smaller than expected (%d<20)."
-#~ msgstr "קובץ רשימת השמעה OTG ('%s'): גודל תחילית קטן מהצפוי (%d<20)."
-
-#~ msgid ""
-#~ "OTG playlist file file ('%s'): entry length smaller than expected (%d<4)."
-#~ msgstr "קובץ רשימת השמעה OTG ('%s'): גודל רשומה קטן מהצפוי (%d<4)."
-
-#~ msgid "OTG playlist file '%s': reference to non-existent track (%d)."
-#~ msgstr "רשימת השמעה OTG '%s': התייחסות לרצועה לא קיימת (%d)."
-
-#~ msgid "OTG Playlist %d"
-#~ msgstr "רשימת השמעה OTG %d"
-
-#~ msgid "Not a iTunesDB: '%s' (missing mhdb header)."
-#~ msgstr "זהו לא iTunesDB: '%s' (חסרה תחילית mhdb)."
-
-#~ msgid ""
-#~ "iTunesDB ('%s'): header length of mhsd hunk smaller than expected (%"
-#~ "ld<32). Aborting."
-#~ msgstr ""
-#~ "iTunesDB ('%s'): גודל תחילית של החתיכה mhsd קטנה מהצפוי (%ld<32). מבטל."
-
-#~ msgid ""
-#~ "iTunesDB '%s' corrupt: already found two playlist mhsds -- giving up."
-#~ msgstr "iTunesDB '%s' שבור: כבר מצאנו mhsds של שתי רשימות השמעה -- מוותר."
-
-#~ msgid ""
-#~ "iTunesDB possibly corrupt: number of tracks (mhit hunks) inconsistent. "
-#~ "Trying to continue.\n"
-#~ msgstr ""
-#~ "יכול להיות ש-iTuneDB שבור: מספר רצועות (mhit חתיכות) לא עקביות. מנסה "
-#~ "להמשיך.\n"
-
-#~ msgid ""
-#~ "iTunesDB possibly corrupt: number of playlists (mhyp hunks) inconsistent. "
-#~ "Trying to continue.\n"
-#~ msgstr ""
-#~ "יכול להיות ש-iTuneDB שבור: מספר רשימות השמעה (mhyp חתיכות) לא עקביות. "
-#~ "מנסה להמשיך.\n"
-
-#~ msgid "File not found: '%s'."
-#~ msgstr "קובץ לא קיים: '%s'."
-
-#~ msgid "Cannot write mhod of type %d\n"
-#~ msgstr "לא יכול לכתוב mhod של סוג %d\n"
-
-#~ msgid "Database in memory corrupt (track pointer == NULL). Aborting export."
-#~ msgstr "מסד הנתונים בזיכרון שבור (מצביע רצועה == NULL). מבטל ייצוא."
-
-#~ msgid ""
-#~ "Database in memory corrupt (playlist pointer == NULL). Aborting export."
-#~ msgstr "מסד הנתונים בזיכרון שבור (מצביע רשימת השמעה == NULL). מבטל ייצוא."
-
-#~ msgid "Opening of '%s' for writing failed."
-#~ msgstr "פתיחת '%s' לכתיבה נכשלה."
-
-#~ msgid "Writing to '%s' failed."
-#~ msgstr "נכשלה כתיבה ל '%s'."
-
-#~ msgid "Writing to '%s' failed (%s)."
-#~ msgstr "נכשלה כתיבה ל '%s' (%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 "Unknown action (%d) in smart playlist will be ignored.\n"
-#~ msgstr "התעלמות מפעולה לא ידועה (%d) ברשימת השמעה חכמה.\n"
+#~ msgid "Some tracks were not written to iPod. Export aborted!"
+#~ msgstr "מספר רצועות לא נכתבו ל-iPod. יצוא בוטל!"

Deleted: gtkpod/trunk/po/it.gmo
===================================================================
(Binary files differ)

Modified: gtkpod/trunk/po/it.po
===================================================================
--- gtkpod/trunk/po/it.po	2007-06-27 20:59:02 UTC (rev 193)
+++ gtkpod/trunk/po/it.po	2007-06-27 21:27:12 UTC (rev 194)
@@ -1,1005 +1,1017 @@
-# translation of it2.po to 
-# translation of it.po to 
-# translation of it.po to
 # Italian language translation for gtkpod.
 # Copyright (C) 2003 Edward Matteucci
+# Copyright (C) 2007 Daniele Forsi
 # This file is distributed under the same license as the gtkpod package.
-# Edward Matteucci <edward.matteucci at libero.it>, 2003, 2005.
 #
 #
+# Edward Matteucci <edward.matteucci at libero.it>, 2003, 2005.
+# Daniele Forsi <dforsi at gmail.com>, 2007.
 msgid ""
 msgstr ""
-"Project-Id-Version: it2\n"
+"Project-Id-Version: it\n"
 "Report-Msgid-Bugs-To: \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"
+"POT-Creation-Date: 2007-06-14 22:57+0900\n"
+"PO-Revision-Date: 2007-06-02 14:55+0200\n"
+"Last-Translator: Daniele Forsi <dforsi at gmail.com>\n"
+"Language-Team: Italian <tp at lists.linux.it>\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"
+"X-Generator: KBabel 1.11.4\n"
 
-#: gtkpod.glade:7
-msgid "gtkpod"
+#: ../data/gtkpod.desktop.in.h:1
+#, fuzzy
+msgid "GtkPod"
 msgstr "gtkpod"
 
-#: gtkpod.glade:40
-msgid "_File"
-msgstr "_File"
+#: ../data/gtkpod.desktop.in.h:2
+msgid "Manage music and video on an Apple iPod"
+msgstr ""
 
-#: gtkpod.glade:49
-#, fuzzy
-msgid "_Load iPod(s)"
-msgstr "_iPod"
-
-#: gtkpod.glade:69
-msgid "_Save Changes"
+#: ../data/gtkpod.desktop.in.h:3
+msgid "iPod Manager"
 msgstr ""
 
-#: gtkpod.glade:90
-msgid "Add _Files"
-msgstr "Aggiungi _File"
+#: ../data/gtkpod.glade.h:1
+msgid " "
+msgstr " "
 
-#: gtkpod.glade:111
-msgid "Add _Directory"
-msgstr "Aggiungi _Directory"
+#: ../data/gtkpod.glade.h:2
+msgid "    "
+msgstr "    "
 
-#: gtkpod.glade:132
-msgid "Add _Playlist"
-msgstr "Aggiungi _Playlist"
+#: ../data/gtkpod.glade.h:3
+msgid "     "
+msgstr "     "
 
-#: gtkpod.glade:159
-msgid "_Update Tracks from File"
-msgstr "_Aggiorna le tracce dai file"
+#: ../data/gtkpod.glade.h:4
+msgid "      "
+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 "_Playlist selezionata"
+#: ../data/gtkpod.glade.h:5
+msgid "   Sort by:"
+msgstr "   Ordina per:"
 
-#: 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"
+#: ../data/gtkpod.glade.h:6
+msgid " <= cts <= "
+msgstr " <= cts <= "
 
-#: 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"
+#: ../data/gtkpod.glade.h:7
+msgid " Logic: "
+msgstr " Logica: "
 
-#: gtkpod.glade:211
-msgid "Update _mserv Data from File"
-msgstr "Aggiorna i dati _mserv dai File"
+#: ../data/gtkpod.glade.h:9
+#, no-c-format
+msgid "%A"
+msgstr "%A"
 
-#: gtkpod.glade:263
-#, fuzzy
-msgid "_Synchronize Playlist"
-msgstr "Sincronizza tutto"
+#: ../data/gtkpod.glade.h:10
+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. Premere «Invio» alla "
+"fine."
 
-#: gtkpod.glade:290
-msgid "_Export Tracks from Database"
-msgstr "_Esporta le tracce dal Database"
+#: ../data/gtkpod.glade.h:11
+msgid "'aacgain' executable:"
+msgstr "Eseguibile «aacgain»:"
 
-#: gtkpod.glade:342
-msgid "Create _Playlist File"
-msgstr "Crea un file della _Playlist"
+#: ../data/gtkpod.glade.h:12
+msgid "'mp3gain' executable:"
+msgstr "Eseguibile «mp3gain»:"
 
-#: gtkpod.glade:400
-msgid "_Create iPod's Directories"
-msgstr "_Crea le directory dell'iPod"
+#: ../data/gtkpod.glade.h:13
+msgid "(Checked)"
+msgstr "(selezionato)"
 
-#: 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)"
+#: ../data/gtkpod.glade.h:14
+msgid "...as icons"
+msgstr "...con icone"
 
-#: gtkpod.glade:422
-msgid "_Check iPod's Files"
-msgstr "_Controlla i file dell'iPod"
+#: ../data/gtkpod.glade.h:15
+msgid "...as text"
+msgstr "...con testo"
 
-#: gtkpod.glade:450 gtkpod.glade:12687
-msgid "_Edit"
-msgstr "_Modifica"
+#: ../data/gtkpod.glade.h:16
+msgid "...both as icons and text"
+msgstr "...con icone e testo"
 
-#: gtkpod.glade:459 src/context_menus.c:480
-msgid "Edit Track Details"
-msgstr ""
+#: ../data/gtkpod.glade.h:17
+msgid "...entry 'All' in sort tab..."
+msgstr "...la voce «Tutti» nella scheda di ordinamento..."
 
-#: gtkpod.glade:480
-#, fuzzy
-msgid "Tracks in Selected _Playlist"
-msgstr "_Playlist selezionata"
+#: ../data/gtkpod.glade.h:18
+msgid "...master playlist"
+msgstr "...la playlist principale"
 
-#: gtkpod.glade:489
-#, fuzzy
-msgid "Tracks in Selected Tab _Entry"
-msgstr "Le voci nel _Blocco selezionato"
+#: ../data/gtkpod.glade.h:20
+#, no-c-format
+msgid "../%A.jpg"
+msgstr "../%A.jpg"
 
-#: gtkpod.glade:511 src/context_menus.c:407
-msgid "Edit Smart Playlist"
-msgstr "Modifica la playlist intelligente"
+#: ../data/gtkpod.glade.h:21
+msgid "0"
+msgstr "0"
 
-#: gtkpod.glade:520
-msgid "_Delete"
-msgstr ""
+#: ../data/gtkpod.glade.h:22
+msgid "1"
+msgstr "1"
 
-#: gtkpod.glade:541
-#, fuzzy
-msgid "Selected playlist"
-msgstr "_Playlist selezionata"
+#: ../data/gtkpod.glade.h:23
+msgid "2"
+msgstr "2"
 
-#: gtkpod.glade:550
-#, fuzzy
-msgid "Selected playlist including tracks from iPod"
-msgstr "Cancellata la playlist '%s' con la %d traccia appartenente."
+#: ../data/gtkpod.glade.h:24
+msgid "3"
+msgstr "3"
 
-#: gtkpod.glade:559
-#, fuzzy
-msgid "Selected playlist including tracks from database"
-msgstr "Cancella le tracce incluse (Database)"
+#: ../data/gtkpod.glade.h:25
+msgid "4"
+msgstr "4"
 
-#: gtkpod.glade:568
-#, fuzzy
-msgid "Selected playlist including tracks from harddisk"
-msgstr ""
-"Cancellata la playlist '%s' con la %d traccia appartenente sul disco fisso."
+#: ../data/gtkpod.glade.h:26
+msgid "5"
+msgstr "5"
 
-#: gtkpod.glade:583
-#, fuzzy
-msgid "Selected filter tab entry from playlist"
-msgstr "Cancella %d traccia dalla playlist '%s'"
+#: ../data/gtkpod.glade.h:27
+msgid ":"
+msgstr ":"
 
-#: gtkpod.glade:592
-#, fuzzy
-msgid "Selected filter tab entry from iPod"
-msgstr "Cancella completamente una traccia dall'iPod"
+#: ../data/gtkpod.glade.h:28
+msgid "<"
+msgstr "<"
 
-#: gtkpod.glade:601
-#, fuzzy
-msgid "Selected filter tab entry from database"
-msgstr "Cancella la traccia dal database locale"
+#: ../data/gtkpod.glade.h:29
+msgid "<b>Account Information</b>"
+msgstr "<b>Informazioni sull'account</b>"
 
-#: gtkpod.glade:610
-#, fuzzy
-msgid "Selected filter tab entry from harddisk"
-msgstr "Cancella la traccia dal disco fisso"
+#: ../data/gtkpod.glade.h:30
+msgid "<b>Adding/Updating/Syncing</b>"
+msgstr "<b>Aggiungi/Aggiorna/Sincronizza</b>"
 
-#: gtkpod.glade:625
-#, fuzzy
-msgid "Selected tracks from playlist"
-msgstr "Cancella %d traccia dalla playlist '%s'"
+#: ../data/gtkpod.glade.h:31
+msgid "<b>Audioscrobbler</b>"
+msgstr "<b>Audioscrobbler</b>"
 
-#: gtkpod.glade:634
-#, fuzzy
-msgid "Selected tracks from iPod"
-msgstr "Cancella completamente una traccia dall'iPod"
+#: ../data/gtkpod.glade.h:32
+msgid "<b>Auto-Generated Playlists</b>"
+msgstr "<b>Playlist generate automaticamente</b>"
 
-#: gtkpod.glade:643
-#, fuzzy
-msgid "Selected tracks from database"
-msgstr "Cancella la traccia dal database locale"
+#: ../data/gtkpod.glade.h:33
+msgid "<b>Automatically select...</b>"
+msgstr "<b>Seleziona automaticamente...</b>"
 
-#: gtkpod.glade:652
-#, fuzzy
-msgid "Selected tracks from harddisk"
-msgstr "Cancella la traccia dal disco fisso"
+#: ../data/gtkpod.glade.h:34
+msgid "<b>Calendar/Contacts/Notes</b>"
+msgstr "<b>Calendario/Contatti/Note</b>"
 
-#: gtkpod.glade:671
-msgid "_Create Playlists"
-msgstr "_Crea nuova Playlist"
+#: ../data/gtkpod.glade.h:35
+msgid "<b>Coverart</b>"
+msgstr "<b>Copertina</b>"
 
-#: gtkpod.glade:692
-msgid "Empty Playlist"
-msgstr "Playlist Vuota"
+#: ../data/gtkpod.glade.h:36
+msgid "<b>Delete Confirmation</b>"
+msgstr "<b>Conferma l'eliminazione</b>"
 
-#: gtkpod.glade:701 gtkpod.glade:7379 src/misc_playlist.c:97
-#: src/repository.c:1359
-msgid "Smart Playlist"
-msgstr "Playlist Intelligente"
+#: ../data/gtkpod.glade.h:37
+msgid "<b>Displayed Track Attributes</b>"
+msgstr "<b>Attributi delle tracce visualizzati</b>"
 
-#: gtkpod.glade:716
-msgid "Random Playlist from Displayed Tracks"
-msgstr "Playlist random dalle tracce mostrate"
+#: ../data/gtkpod.glade.h:38
+msgid "<b>Examples</b>"
+msgstr "<b>Esempi</b>"
 
-#: gtkpod.glade:725
-msgid "Containing Displayed Tracks"
-msgstr "Contenente le tracce visualizzate"
+#: ../data/gtkpod.glade.h:39
+msgid "<b>Ignore Frequent Words</b>"
+msgstr "<b>Ignora parole frequenti</b>"
 
-#: gtkpod.glade:734
-msgid "Containing Selected Tracks"
-msgstr "Contenente le tracce selezionate"
+#: ../data/gtkpod.glade.h:40
+msgid "<b>Misc</b>"
+msgstr "<b>Miscellanea</b>"
 
-#: gtkpod.glade:743
-msgid "One for each Artist"
-msgstr "Una per ogni Artista"
+#: ../data/gtkpod.glade.h:41
+msgid "<b>Mountpoint and individual repository/playlist options</b>"
+msgstr "<b>Punto di mount e opzioni individuali per archivio e playlist</b>"
 
-#: gtkpod.glade:752
-msgid "One for each Album"
-msgstr "Una per ogni Album"
+#: ../data/gtkpod.glade.h:42
+msgid "<b>On-the-fly Conversion</b>"
+msgstr "<b>Conversione al volo</b>"
 
-#: gtkpod.glade:761
-msgid "One for each Genre"
-msgstr "Una per ogni Genere"
+#: ../data/gtkpod.glade.h:43
+msgid "<b>Play</b>"
+msgstr "<b>Riproduzione</b>"
 
-#: gtkpod.glade:770
-msgid "One for each Composer"
-msgstr "Una per ogni Compositore"
+#: ../data/gtkpod.glade.h:44
+msgid "<b>Playlists</b>"
+msgstr "<b>Playlist</b>"
 
-#: gtkpod.glade:779
-msgid "One for each Year"
-msgstr "Una per ogni anno"
+#: ../data/gtkpod.glade.h:45
+msgid "<b>Please select mountpoint and your iPod model</b>"
+msgstr "<b>Scegliere il punto di mount e il modello di iPod</b>"
 
-#: gtkpod.glade:788
-msgid "One for each Rating"
-msgstr "Una per ogni Voto"
+#: ../data/gtkpod.glade.h:46
+msgid "<b>Repositories</b>"
+msgstr "<b>Archivio</b>"
 
-#: gtkpod.glade:797
-msgid "Best Rated Tracks"
-msgstr "Tracce con il voto migliore"
+#: ../data/gtkpod.glade.h:47
+msgid "<b>Sort Order</b>"
+msgstr "<b>Schede di ordinamento</b>"
 
-#: gtkpod.glade:806
-msgid "Tracks Most Often Listened To"
-msgstr "Tracce ascoltate più spesso"
+#: ../data/gtkpod.glade.h:48
+msgid "<b>Sort Tabs</b>"
+msgstr "<b>Schede di ordinamento</b>"
 
-#: gtkpod.glade:815
-msgid "Most Recently Played Tracks"
-msgstr "Tracce riprodotte più recentemente"
+#: ../data/gtkpod.glade.h:49
+msgid "<b>Sync</b>"
+msgstr "<b>Sincronizza</b>"
 
-#: gtkpod.glade:824
-msgid "All Tracks Played Since Last Time"
-msgstr "Riprodotte dall'ultima volta"
+#: ../data/gtkpod.glade.h:50
+msgid "<b>Synchronization</b>"
+msgstr "<b>Sincronizzazione</b>"
 
-#: gtkpod.glade:833
-msgid "All Tracks Never Listened To"
-msgstr "Tutte le tracce mai ascoltate"
+#: ../data/gtkpod.glade.h:51
+msgid "<b>Tag Reading</b>"
+msgstr "<b>Lettura delle etichette</b>"
 
-#: gtkpod.glade:842
-msgid "All Tracks not Listed in any Playlist"
-msgstr "Tutte le tracce non contenute in una Playlist"
+#: ../data/gtkpod.glade.h:52
+msgid "<b>Toolbar</b>"
+msgstr "<b>Barra degli strumenti</b>"
 
-#: gtkpod.glade:861
-msgid "_Sorting"
-msgstr "_Ordinamento"
+#: ../data/gtkpod.glade.h:53
+msgid "<b>Tooltips</b>"
+msgstr "<b>Suggerimenti</b>"
 
-#: gtkpod.glade:883
-msgid "Randomize Current Playlist"
-msgstr "Rendi random la playlist corrente"
+#: ../data/gtkpod.glade.h:54
+msgid "<b>Track Editing</b>"
+msgstr "<b>Modifica della traccia</b>"
 
-#: gtkpod.glade:892
-msgid "_Save Displayed Track Order"
-msgstr "_Salva l'ordine delle tracce"
+#: ../data/gtkpod.glade.h:55
+msgid "<b>Volume Normalization</b>"
+msgstr "<b>Normalizzazione del volume</b>"
 
-#: gtkpod.glade:920
-#, fuzzy
-msgid "Edit Repository/iPod Options"
-msgstr "Opzioni di ordinamento"
+#: ../data/gtkpod.glade.h:56
+msgid "<b>mserv</b>"
+msgstr "<b>mserv</b>"
 
-#: gtkpod.glade:941
-#, fuzzy
-msgid "Edit _Preferences"
-msgstr "_Modifica le preferenze"
+#: ../data/gtkpod.glade.h:57
+msgid ">"
+msgstr ">"
 
-#: gtkpod.glade:967
-msgid "_View"
-msgstr "_Visualizza"
+#: ../data/gtkpod.glade.h:58
+msgid "About gtkpod"
+msgstr "Informazioni su gtkpod"
 
-#: gtkpod.glade:976
-msgid "_Toolbar"
-msgstr "_Barra degli strumenti"
+#: ../data/gtkpod.glade.h:59
+msgid "Add Directories Recursively"
+msgstr "Aggiunge directory ricorsivamente"
 
-#: gtkpod.glade:986
-msgid "_Tooltips"
-msgstr "_Suggerimenti"
+#: ../data/gtkpod.glade.h:60
+msgid "Add Files or Directories"
+msgstr "Aggiunge file o directory"
 
-#: gtkpod.glade:996
-msgid "_Info Window"
-msgstr "_Finestra di informazioni"
+#: ../data/gtkpod.glade.h:61
+msgid "Add _Directory"
+msgstr "Aggiungi _directory"
 
-#: gtkpod.glade:1007
-msgid "_More Sort Tabs"
-msgstr "_Più blocchi di ordinamento"
+#: ../data/gtkpod.glade.h:62
+msgid "Add _Files"
+msgstr "Aggiungi _file"
 
-#: gtkpod.glade:1028
-msgid "_Less Sort Tabs"
-msgstr "_Meno blocchi di ordinamento"
+#: ../data/gtkpod.glade.h:63
+msgid "Add _Playlist"
+msgstr "Aggiungi _playlist"
 
-#: gtkpod.glade:1049
-msgid "_Arrange Sort Tabs"
-msgstr "_Sistema i blocchi di ordinamento"
+#: ../data/gtkpod.glade.h:64
+msgid "Add coverart from file using the following template"
+msgstr "Aggiungi la copertina da un file usando il seguente modello"
 
-#: gtkpod.glade:1062 gtkpod.glade:13297
-msgid "_Tools"
-msgstr "_Strumenti"
+#: ../data/gtkpod.glade.h:65
+msgid "Add directories recursively"
+msgstr "Aggiungi le directory ricorsivamente"
 
-#: gtkpod.glade:1071
-msgid "_Play Now"
-msgstr "_Suona"
+#: ../data/gtkpod.glade.h:66
+msgid "Add new repository/iPod"
+msgstr "Aggiungi un nuovo archivio o iPod"
 
-#: gtkpod.glade:1123
-msgid "_Enqueue"
-msgstr "_Metti in coda"
+#: ../data/gtkpod.glade.h:67
+msgid "Add playlist from file"
+msgstr "Aggiunge playlist da file"
 
-#: gtkpod.glade:1181
-msgid "_Normalize Volume"
-msgstr "_Normalizza il Volume"
+#: ../data/gtkpod.glade.h:68 ../src/display_sorttabs.c:3232
+#: ../src/display_tracks.c:1996
+msgid "Added"
+msgstr "Aggiunto"
 
-#: gtkpod.glade:1217
-msgid "_Displayed Tracks"
-msgstr "_Tracce Visualizzate"
+#: ../data/gtkpod.glade.h:69
+msgid "Advanced Sorting Options"
+msgstr "Opzioni avanzate di ordinamento"
 
-#: gtkpod.glade:1226
-msgid "_All Tracks"
-msgstr "_Tutte le tracce"
+#. 0
+#: ../data/gtkpod.glade.h:70 ../src/display_sorttabs.c:2954
+#: ../src/display_spl.c:84 ../src/misc_conversion.c:60
+msgid "Album"
+msgstr "Album"
 
-#: gtkpod.glade:1235
-msgid "_Newly Added Tracks"
-msgstr "_Tracce Nuove Aggiunte"
+#: ../data/gtkpod.glade.h:71
+msgid "Album Art"
+msgstr "Copertina dell'album"
 
-#: gtkpod.glade:1254
-msgid "Synchronise Contacts, Calendar and Notes"
-msgstr "Sincronizza Calendario, Contatti e Note"
+#: ../data/gtkpod.glade.h:72
+msgid "All (AND)"
+msgstr "Tutti (AND)"
 
-#: gtkpod.glade:1255
-msgid "Synchronize All"
-msgstr "Sincronizza tutto"
+#: ../data/gtkpod.glade.h:73
+msgid "All Tracks Never Listened To"
+msgstr "Tutte le tracce mai ascoltate"
 
-#: gtkpod.glade:1264
-msgid "Synchronize Contacts"
-msgstr "Sincronizza i contatti"
+#: ../data/gtkpod.glade.h:74
+msgid "All Tracks Played Since Last Time"
+msgstr "Tutte le tracce riprodotte dall'ultima volta"
 
-#: gtkpod.glade:1273
-msgid "Synchronize Calendar"
-msgstr "Sincronizza il calendario"
+#: ../data/gtkpod.glade.h:75
+msgid "All Tracks not Listed in any Playlist"
+msgstr "Tutte le tracce non contenute in una playlist"
 
-#: gtkpod.glade:1282
-msgid "Synchronize Notes"
-msgstr "Sincronizza le Note"
+#: ../data/gtkpod.glade.h:76
+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:1295
-msgid "_Help"
-msgstr "_Aiuto"
+#: ../data/gtkpod.glade.h:77
+msgid "Always write ID3v2.4 tags (only applies to MP3)"
+msgstr "Scrivi sempre le etichette ID3v2.4 (vale solo per gli MP3)"
 
-#: gtkpod.glade:1304
-msgid "_About"
-msgstr "_A Proposito"
+#: ../data/gtkpod.glade.h:78
+msgid "Any (OR)"
+msgstr "Qualsiasi (OR)"
 
-#: gtkpod.glade:1344
+#: ../data/gtkpod.glade.h:79 ../src/display_sorttabs.c:2951
+#: ../src/display_spl.c:85 ../src/misc_conversion.c:61
+msgid "Artist"
+msgstr "Artista"
+
+#: ../data/gtkpod.glade.h:80
 msgid ""
-"Try to load contents of all connected iPods. For each iPod a separate "
-"repository must be set up."
+"As a last resort set the following tags to the\n"
+"filename if they are (still) empty:"
 msgstr ""
+"Come ultimo tentativo riempi le etichette seguenti con\n"
+"il nome del file se sono (ancora) vuote:"
 
-#: gtkpod.glade:1345
-#, fuzzy
-msgid "Load iPod(s)"
-msgstr "_iPod"
+#: ../data/gtkpod.glade.h:82
+msgid "Ascending"
+msgstr "Crescente"
 
-#: gtkpod.glade:1362
-msgid "Write all changes made to the disk and the iPod(s)."
+#: ../data/gtkpod.glade.h:83
+msgid ""
+"Audio/Video\n"
+"Audio\n"
+"Video\n"
+"Podcast\n"
+"Video Podcast\n"
+"Audiobook\n"
+"Music Video\n"
+"TV Show\n"
+"TV Show & Music Video\n"
 msgstr ""
+"Audio/video\n"
+"Audio\n"
+"Video\n"
+"Podcast\n"
+"Podcast video\n"
+"Audiolibro\n"
+"Video musicale\n"
+"Programma TV\n"
+"Programma TV e Video musicale\n"
 
-#: gtkpod.glade:1363 src/context_menus.c:507
-msgid "Save Changes"
+#: ../data/gtkpod.glade.h:93
+msgid "Auto Store"
+msgstr "Salvataggio automatico"
+
+#: ../data/gtkpod.glade.h:94
+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 inseriti "
+"sopra. Se non selezionato, si deve premere «Mostra» per attivare la "
+"visualizzazione."
 
-#: gtkpod.glade:1380
-msgid "Add Files or Directories"
-msgstr "Aggiungi file o directory"
+#: ../data/gtkpod.glade.h:95
+msgid "Before removing playlists or tracks from a playlist"
+msgstr "Prima di rimuovere le playlist o le tracce da una playlist"
 
-#: gtkpod.glade:1381
-msgid "Files"
-msgstr "File"
+#: ../data/gtkpod.glade.h:96
+msgid "Before removing tracks from the harddisk"
+msgstr "Prima di rimuovere le tracce dal disco fisso"
 
-#: gtkpod.glade:1398
-msgid "Add Directories Recursively"
-msgstr "Aggiungi directory ricorsivamente"
+#: ../data/gtkpod.glade.h:97
+msgid "Before removing tracks from the iPod"
+msgstr "Prima di rimuovere le tracce dall'iPod"
 
-#: gtkpod.glade:1399
-msgid "Dirs"
-msgstr "Dir"
+#: ../data/gtkpod.glade.h:98
+msgid "Before removing tracks from the local database"
+msgstr "Prima di rimuovere le tracce dal database locale"
 
-#: gtkpod.glade:1416
-msgid "Add playlist from file"
-msgstr "Aggiungi playlist dal file"
+#: ../data/gtkpod.glade.h:99
+msgid "Best Rated Tracks"
+msgstr "Tracce con il voto migliore"
 
-#: gtkpod.glade:1417 src/display_spl.c:105
-msgid "Playlist"
-msgstr "Playlist"
+#: ../data/gtkpod.glade.h:100
+msgid "Browse"
+msgstr "Sfoglia"
 
-#: gtkpod.glade:1434
-msgid "Create New Playlist"
-msgstr "Crea nuova Playlist"
+#: ../data/gtkpod.glade.h:101
+msgid "Cache directory:"
+msgstr "Directory per la cache:"
 
-#: gtkpod.glade:1435
-msgid "New PL"
-msgstr "Nuova PL"
+#: ../data/gtkpod.glade.h:102
+msgid "Calendar"
+msgstr "Calendario"
 
-#: gtkpod.glade:1451
-msgid "Stop Display Update"
-msgstr "Ferma l'aggiornamento della visualizzazione"
+#: ../data/gtkpod.glade.h:103
+msgid "Calendar sync command:"
+msgstr "Comando per sincronizzare il calendario:"
 
-#: gtkpod.glade:1452
-msgid "Stop"
-msgstr "Stop"
+#: ../data/gtkpod.glade.h:104
+msgid "Call automatically when synchronizing iTunesDB"
+msgstr "Chiama automaticamente mentre sincronizzi iTunesDB"
 
-#: gtkpod.glade:1625
-msgid "About gtkpod"
-msgstr "A proposito di gtkpod"
+#: ../data/gtkpod.glade.h:105
+msgid "Category: "
+msgstr "Categoria: "
 
-#: gtkpod.glade:1752
-msgid "Credits"
-msgstr "Crediti"
-
-#: gtkpod.glade:1810
-msgid "Translators"
-msgstr "Traduttori"
-
-#: gtkpod.glade:1868
-msgid "special_sorttab -- Don't translate!"
+#: ../data/gtkpod.glade.h:106
+msgid ""
+"Change all tracks\n"
+"simultaneously"
 msgstr ""
+"Cambia tutte le tracce\n"
+"simultaneamente"
 
-#: gtkpod.glade:1903
-msgid " Logic: "
-msgstr "Operatori logici:"
+#: ../data/gtkpod.glade.h:108
+msgid "Check for existing files when copying from iPod."
+msgstr "Controlla se i file esistono durante la copia dall'iPod."
 
-#: gtkpod.glade:1929
-msgid "Any (OR)"
-msgstr "Ogni (OR)"
+#: ../data/gtkpod.glade.h:109
+msgid "Command for 'Enqueue':"
+msgstr "Comando per «Metti in coda»:"
 
-#: gtkpod.glade:1948
-msgid "All (AND)"
-msgstr "Tutti (AND)"
+#: ../data/gtkpod.glade.h:110
+msgid "Command for 'Play now':"
+msgstr "Comando per «Riproduci ora»:"
 
-#: gtkpod.glade:2001
-msgid "0"
-msgstr "0"
+#. 5
+#: ../data/gtkpod.glade.h:111 ../src/display_spl.c:97
+#: ../src/misc_conversion.c:65
+msgid "Composer"
+msgstr "Compositore"
 
-#: gtkpod.glade:2020
-msgid "1"
-msgstr "1"
+#: ../data/gtkpod.glade.h:112
+msgid "Confirm before removing tracks from the iPod or repository"
+msgstr "Chiedi conferma prima di rimuovere le tracce dall'iPod o dall'archivio"
 
-#: gtkpod.glade:2039
-msgid "2"
-msgstr "2"
+#: ../data/gtkpod.glade.h:113
+msgid ""
+"Confirm before removing tracks from the iPod or repository\n"
+"when syncing playlists"
+msgstr ""
+"Conferma prima di rimuovere le tracce dall'iPod o dall'archivio\n"
+"durante la sincronizzazione delle playlist"
 
-#: gtkpod.glade:2058
-msgid "3"
-msgstr "3"
+#: ../data/gtkpod.glade.h:115
+msgid "Confirm lists of directories"
+msgstr "Conferma la lista delle directory"
 
-#: gtkpod.glade:2077
-msgid "4"
-msgstr "4"
+#: ../data/gtkpod.glade.h:116
+msgid "Contacts sync command:"
+msgstr "Comando per sincronizzare i contatti:"
 
-#: gtkpod.glade:2096
-msgid "5"
-msgstr "5"
+#: ../data/gtkpod.glade.h:117
+msgid "Containing Displayed Tracks"
+msgstr "Contenente le tracce visualizzate"
 
-#: gtkpod.glade:2135
-msgid "Select '0' for no lower limit."
-msgstr "Seleziona '0' per eliminare il limite inferiore."
+#: ../data/gtkpod.glade.h:118
+msgid "Containing Selected Tracks"
+msgstr "Contenente le tracce selezionate"
 
-#: gtkpod.glade:2156
-msgid " <= cts <= "
-msgstr " <= cts <= "
+#: ../data/gtkpod.glade.h:119
+msgid "Conversion Progress Display"
+msgstr "Visualizzazione dell'avanzamento della conversione"
 
-#: gtkpod.glade:2181
-msgid "Select '-1' for no upper limit."
-msgstr "Seleziona '-l' per nessun limite superire"
+#: ../data/gtkpod.glade.h:120
+msgid "Cover"
+msgstr "Copertina"
 
-#: 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."
+#: ../data/gtkpod.glade.h:121
+msgid "Create New Playlist"
+msgstr "Crea nuova playlist"
 
-#: gtkpod.glade:2270 gtkpod.glade:2347 gtkpod.glade:2517 gtkpod.glade:2696
-msgid "Calendar"
-msgstr "Calendario"
+#: ../data/gtkpod.glade.h:122
+msgid "Create Repository"
+msgstr "Crea archivio"
 
-#: gtkpod.glade:2372
-msgid "Specify interval"
-msgstr "Specifica l'intervallo"
+#: ../data/gtkpod.glade.h:123
+msgid "Create _Playlist File"
+msgstr "Crea un file di _playlist"
 
-#: gtkpod.glade:2374 src/display_spl.c:98 src/misc_conversion.c:78
-msgid "Playcount"
-msgstr "Conta riproduzioni"
+#: ../data/gtkpod.glade.h:124
+msgid "Credits"
+msgstr "Riconoscimenti"
 
-#: gtkpod.glade:2397 src/display_spl.c:101 src/misc_conversion.c:79
-msgid "Rating"
-msgstr "Voto"
+#: ../data/gtkpod.glade.h:125
+msgid "Currently only rating is supported."
+msgstr "Attualmente solo il voto è supportato."
 
-#: gtkpod.glade:2420 src/display_songs.c:1951
-msgid "Played"
-msgstr "Suonato"
+#: ../data/gtkpod.glade.h:126
+msgid "Delete repository"
+msgstr "Elimina l'archivio"
 
-#: gtkpod.glade:2443 src/display_songs.c:1954
-msgid "Modified"
-msgstr "Modificato"
+#: ../data/gtkpod.glade.h:127
+#, fuzzy
+msgid ""
+"Delete tracks that are no longer present from the\n"
+"iPod or repository"
+msgstr ""
+"Elimina dall'iPod o dall'archivio\n"
+"le tracce che non sono più presenti"
 
-#: gtkpod.glade:2542 src/display_songs.c:1957 src/display_sorttabs.c:3218
-msgid "Added"
-msgstr "Aggiunta"
+#: ../data/gtkpod.glade.h:129
+msgid "Deleted tracks"
+msgstr "Tracce eliminate"
 
-#: gtkpod.glade:2587
-msgid "Display tracks that match the criteria entered above."
-msgstr "Mostra le tracce che corrispondono ai criteri entrati qui sopra."
+#: ../data/gtkpod.glade.h:130
+msgid "Descending"
+msgstr "Decrescente"
 
-#: gtkpod.glade:2630 gtkpod.glade:12009
-msgid "_Display"
-msgstr "_Visualizzazione"
+#: ../data/gtkpod.glade.h:131
+msgid "Details"
+msgstr "Dettagli"
 
-#: gtkpod.glade:2666
+#: ../data/gtkpod.glade.h:133
+#, no-c-format
 msgid ""
-"Automatically start displaying tracks that match the criteria entered above. "
-"If not selected, you must press 'Display' to start displaying."
+"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 ""
-"Visualizza automaticamente le tracce che corrispondono ai criteri "
-"specificati qui sopra. Se non selezionati, devi premere 'Mostra' per "
-"attivare la visualizzazione"
+"Determina come costruire la stringa per il campo di informazioni. es. «%a/%A/"
+"%T - %t.mp3» o «%o». Si possono separare diversi modelli con punto e virgola "
+"-- gtkopd determinerà quale usare a seconda dell'estensione data al file. "
+"Artista: %a, album: %A, compositore: %c, titolo: %t, genere: %G, numero "
+"traccia: %T, numero CD: %C, anno: %Y, nome file originale (necessita del "
+"file con le informazioni estese): %o, il carattere «%»: %%."
 
-#: gtkpod.glade:2668
-msgid "Start display automatically"
-msgstr "Far partire la visualizzazione automaticamente "
+#: ../data/gtkpod.glade.h:135
+#, no-c-format
+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 delle tracce copiate dall'iPod, es. «%a/%A/%T -%t."
+"mp3» o «%o». Si possono separare diversi modelli con punto e virgola -- "
+"gtkopd determinerà quale usare a seconda dell'estensione data al file. "
+"Artista: %a, album: %A, compositore: %c, titolo: %t, genere: %G, numero "
+"traccia: %T, numero CD: %C, anno: %Y, nome del file originale (necessita del "
+"file con le informazioni estese): %o, playlist attuale: %p, il carattere "
+"«%»: %%."
 
-#: gtkpod.glade:2743
-msgid "Sorttab: "
-msgstr "Blocco di ordinamento: "
+#: ../data/gtkpod.glade.h:137
+#, no-c-format
+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 con la copertina. Si possono separare diversi "
+"modelli con punto e virgola che verranno provati nell'ordine. Artista: %a, "
+"album: %A, compositore: %c, titolo: %t, genere: %G, numero traccia: %T, "
+"numero CD: %C, anno: %Y, nome del file originale (necessita del file con le "
+"informazioni estese): %o, nome del file originale senza estensione: %O, "
+"playlist attuale: %p, il carattere «%»: %%."
 
-#: gtkpod.glade:2787
-msgid "     "
-msgstr "     "
+#: ../data/gtkpod.glade.h:138
+msgid ""
+"Directories to sync with are determined from the filenames of the tracks in "
+"the playlist."
+msgstr ""
+"Le directory da sincronizzare sono determinate a partire dal nome dei file "
+"delle tracce nella playlist."
 
-#: gtkpod.glade:2813
-msgid "Category: "
-msgstr "Categoria: "
+#: ../data/gtkpod.glade.h:139
+msgid "Dirs"
+msgstr "Dir"
 
-#: gtkpod.glade:2894
-msgid "Please specify a time interval"
-msgstr "Specifica un intervallo di tempo"
+#: ../data/gtkpod.glade.h:140
+msgid "Display a list of tracks that could actually be updated."
+msgstr "Mostra una lista di tracce che sono state veramente aggiornate."
 
-#: gtkpod.glade:2943
-msgid "Lower Margin"
-msgstr "Margine inferiore"
+#: ../data/gtkpod.glade.h:141
+msgid "Display a list of tracks that could not be updated."
+msgstr "Mostra una lista di tracce che non è stato possibile aggiornare."
 
-#: gtkpod.glade:2994 gtkpod.glade:3208
-msgid "Time:"
-msgstr "Durata:"
+#: ../data/gtkpod.glade.h:142
+msgid "Display conversion log"
+msgstr "Mostra il registro della conversione"
 
-#: gtkpod.glade:3037 gtkpod.glade:3251
-msgid ":"
-msgstr ":"
+#: ../data/gtkpod.glade.h:143
+msgid "Display info about detected duplicates"
+msgstr "Mostra informazioni sui duplicati individuati"
 
-#: gtkpod.glade:3114
-msgid "No lower margin"
-msgstr "Nessun margine inferiore"
+#: ../data/gtkpod.glade.h:144
+msgid "Display info about non-updated tracks"
+msgstr "Mostra informazioni sulle tracce non aggiornate"
 
-#: gtkpod.glade:3157
-msgid "Upper margin"
-msgstr "Margine superiore"
+#: ../data/gtkpod.glade.h:145
+msgid "Display info about updated tracks"
+msgstr "Mostra informazioni sulle tracce aggiornate"
 
-#: gtkpod.glade:3328
-msgid "No upper margin"
-msgstr "Nessun margine superiore"
+#: ../data/gtkpod.glade.h:146
+msgid "Display messages and warnings at startup"
+msgstr "Mostra messaggi e avvertimenti all'avvio"
 
-#: 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
+#: ../data/gtkpod.glade.h:147
 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."
+"Display the list of duplicates that have been detected after adding files."
 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."
+"Mostra la lista dei duplicati che sono stati individuati dopo l'aggiunta dei "
+"file."
 
-#: gtkpod.glade:3905
-msgid "Ascending"
-msgstr "Ascendente"
+#: ../data/gtkpod.glade.h:148
+msgid "Display toolbar..."
+msgstr "Mostra la barra degli strumenti..."
 
-#: gtkpod.glade:3953
-msgid "Descending"
-msgstr "Discendente"
+#: ../data/gtkpod.glade.h:149
+msgid "Display tooltips in main window"
+msgstr "Mostra i suggerimenti nella finestra principale"
 
-#: gtkpod.glade:4001
-msgid "None"
-msgstr "Nessuno"
+#: ../data/gtkpod.glade.h:150
+msgid "Display tooltips in prefs window"
+msgstr "Mostra i suggerimenti nella finestra delle preferenze"
 
-#: gtkpod.glade:4048 src/display_playlists.c:2106
-msgid "Playlists"
-msgstr "Playlist"
+#: ../data/gtkpod.glade.h:151
+msgid "Display tracks that match the criteria entered above."
+msgstr "Mostra le tracce che corrispondono ai criteri inseriti sopra."
 
-#: gtkpod.glade:4097
-msgid "Sorttabs"
-msgstr "Blocco di ordinamento: "
+#: ../data/gtkpod.glade.h:152
+msgid ""
+"Displayed\n"
+"Tracks"
+msgstr ""
+"Tracce\n"
+"visualizzate"
 
-#: gtkpod.glade:4146
-msgid "Tracks"
-msgstr "Tracce"
+#: ../data/gtkpod.glade.h:154
+msgid "Don't allow file duplication"
+msgstr "Non permettere i file duplicati"
 
-#: gtkpod.glade:4306
-msgid "Auto Store"
-msgstr "Salvataggio automatico"
+#: ../data/gtkpod.glade.h:155
+msgid "Don't automatically sync on startup"
+msgstr "Non sincronizzare automaticamente all'avvio"
 
-#: gtkpod.glade:4349
-msgid "Please refer to the notice below."
-msgstr "Per favore, consultare la nota precedente."
+#: ../data/gtkpod.glade.h:156
+msgid "Download Cover"
+msgstr "Scarica copertina"
 
-#: 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."
+#: ../data/gtkpod.glade.h:157
+msgid "Duplicate Recognition is based on a (modified) sha1 hash over the file."
 msgstr ""
-"C'è la possibilità di utilizzare l'intestazione della tabella, questo metodo "
-"permette però l'ordinamento anche secondo colonne che non vengono mostrate"
+"Il riconoscimento dei file duplicati è basato su un hash sha1 (modificato) "
+"sul file."
 
-#: 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."
+#: ../data/gtkpod.glade.h:158
+msgid "Edit Repository/iPod Options"
+msgstr "Modifica le opzioni dell'archivio e dell'iPod"
 
-#: gtkpod.glade:4685
-msgid "Sorting case sensitive"
-msgstr "Ordinamento case sensitive"
+#: ../data/gtkpod.glade.h:159 ../src/context_menus.c:659
+msgid "Edit Smart Playlist"
+msgstr "Modifica la playlist intelligente"
 
-#: gtkpod.glade:4731
-msgid "<b>Ignore Frequent Words</b>"
-msgstr "<b>Ignora le parole frequenti</b>"
+#: ../data/gtkpod.glade.h:160 ../src/context_menus.c:746
+msgid "Edit Track Details"
+msgstr "Modifica i dettagli della traccia"
 
-#: 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:"
+#: ../data/gtkpod.glade.h:161
+msgid "Edit _Preferences"
+msgstr "Modifica le _preferenze"
 
-#: gtkpod.glade:5106
-msgid "gtkpod Info"
-msgstr "informazioni su gtkpod"
+#: ../data/gtkpod.glade.h:162
+msgid "Effective free space"
+msgstr "Spazio libero effettivo"
 
-#: gtkpod.glade:5427 gtkpod.glade:5514 gtkpod.glade:5543 gtkpod.glade:6261
-#: gtkpod.glade:6406
-msgid "      "
-msgstr "      "
+#: ../data/gtkpod.glade.h:163
+msgid "Empty Playlist"
+msgstr "Playlist vuota"
 
-#: gtkpod.glade:5832
-msgid "Number of tracks"
-msgstr "Numero di tracce"
+#: ../data/gtkpod.glade.h:164
+msgid "Exclude file mask(s)"
+msgstr "Maschera per i file da escludere"
 
-#: gtkpod.glade:5862
-msgid "Play time"
-msgstr "Durata"
-
-#: gtkpod.glade:5893
+#: ../data/gtkpod.glade.h:165
 msgid "File size"
-msgstr "Dimensione"
+msgstr "Dimensione file"
 
-#: gtkpod.glade:5923
-msgid "Number of playlists"
-msgstr "Numero delle playlist"
-
-#: gtkpod.glade:5953
-msgid "Deleted tracks"
-msgstr "_Tracce Cancellate"
-
-#: gtkpod.glade:5983
+#: ../data/gtkpod.glade.h:166
 msgid "File size (deleted)"
-msgstr "Dimensione dei file (cancellatinon trasferiti)"
+msgstr "Dimensione dei file (eliminati)"
 
-#: gtkpod.glade:6013
-msgid "Non-transferred tracks"
-msgstr "Tracce non trasferite"
-
-#: gtkpod.glade:6043
+#: ../data/gtkpod.glade.h:167
 msgid "File size (non-transferred)"
 msgstr "Dimensione dei file (non trasferiti)"
 
-#: gtkpod.glade:6073
-msgid "Effective free space"
-msgstr "Spazio libero effettivo"
+#: ../data/gtkpod.glade.h:168
+msgid "Filename Format: "
+msgstr "Formato del nome del file: "
 
-#: gtkpod.glade:6103
-msgid ""
-"Total\n"
-"(iPod)"
-msgstr ""
-"Totale\n"
-"(iPod)"
+#: ../data/gtkpod.glade.h:169
+msgid "Files"
+msgstr "File"
 
-#: gtkpod.glade:6135
+#: ../data/gtkpod.glade.h:170
+#, fuzzy
 msgid ""
-"Selected\n"
-"Playlist"
+"Find orphan files (files with no track info in DB) and dangling tracks "
+"(tracks with no corresponding files on iPod)"
 msgstr ""
-"Playlist\n"
-"selezionata"
+"Trova i file orfani (file senza informazioni sulla traccia nel DB) e tracce "
+"fantasma (tracce senza file corrispondenti sull'iPod)"
 
-#: gtkpod.glade:6167
-msgid ""
-"Displayed\n"
-"Tracks"
-msgstr ""
-"Tracce\n"
-"Visualizzate"
+#: ../data/gtkpod.glade.h:171
+#, fuzzy
+msgid "First try <i>folder.jpg</i>, then <i><artist>.jpg</i>"
+msgstr "Prima prova <i>folder.jpg</i>, poi <i>&lt;artist&gt;.jpg</i>"
 
-#: gtkpod.glade:6199
+#: ../data/gtkpod.glade.h:172
+msgid "Flac with :"
+msgstr "Flac con :"
+
+#: ../data/gtkpod.glade.h:174
+#, no-c-format
 msgid ""
-"Selected\n"
-"Tracks"
+"For example, 'xmms %s' will clear xmms' current playlist, add the selected "
+"tracks and start playing."
 msgstr ""
-"Tracce\n"
-"Selezionate"
+"Per esempio, «xmms %s» cancellerà la playlist attuale di xmms, aggiungerà la "
+"traccia selezionata e comincerà a suonarla."
 
-#: gtkpod.glade:6231
+#: ../data/gtkpod.glade.h:176
+#, no-c-format
 msgid ""
-"Total\n"
-"(local)"
+"For example, 'xmms -e %s' will append (enqueue) the selected tracks to xmms' "
+"current playlist."
 msgstr ""
-"Totale\n"
-"(locale)"
+"Per esempio, «xmms -e %s» appenderà (in coda) la traccia selezionata alla "
+"playlist corrente di xmms."
 
-#: gtkpod.glade:6651
-msgid "label21"
-msgstr "label21"
+#: ../data/gtkpod.glade.h:177 ../src/display_sorttabs.c:2957
+#: ../src/display_spl.c:89 ../src/misc_conversion.c:63
+msgid "Genre"
+msgstr "Genere"
 
-#: gtkpod.glade:6746
-msgid "Never show this dialogue again"
-msgstr "Non mostrare mai più questa finestra"
+#: ../data/gtkpod.glade.h:178
+msgid "Group artists on compilation CDs"
+msgstr "Raggruppa gli artisti nei CD di compilation"
 
-#: gtkpod.glade:6791 gtkpod.glade:7135
-msgid "window1"
-msgstr "window1"
+#: ../data/gtkpod.glade.h:179
+#, fuzzy
+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 sul PC "
+"permette di scrivere sul disco le etichette ID3 cambiate e perfino di "
+"ricostruire il contenuto dell'iPod nel caso di corruzione del filesystem "
+"(cambiare la voce «transferred=» nel backup del database)."
 
-#: gtkpod.glade:6850
-msgid "_M3U"
-msgstr "_M3U"
+#: ../data/gtkpod.glade.h:180 ../src/context_menus.c:682
+#: ../src/context_menus.c:700 ../src/context_menus.c:824
+msgid "I'm sure"
+msgstr "Sono sicuro"
 
-#: gtkpod.glade:6869
-msgid "_PLS"
-msgstr "_PLS"
-
-#: gtkpod.glade:6907
+#: ../data/gtkpod.glade.h:181
 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. "
+"Se disponibile, la playlist fa riferimento alla copia locale della traccia. "
 "Altrimenti è usato il file sul iPod."
 
-#: gtkpod.glade:6909
-msgid "_Prefer Local"
-msgstr "_Preferisci i file locali"
+#: ../data/gtkpod.glade.h:182
+msgid "If both options are selected, embedded APIC data takes precedence."
+msgstr ""
+"Se entrambe le opzioni sono selezionate, i dati APIC incorporati hanno la "
+"precedenza."
 
-#: gtkpod.glade:6927
+#: ../data/gtkpod.glade.h:183
 msgid ""
-"The local copy of the track is referenced in the playlist. If the track is "
-"not available locally, an error message is displayed."
+"If checked, sorting will be case sensitive. Please note that case sensitive "
+"sorting will not work well with most charsets."
 msgstr ""
-"La copia locale della traccia èsegnata nella playlist. Se la traccia non è "
-"disponibile localmente, verrà mostrato un messaggio di errore."
+"Se selezionata, l'ordinamento sarà sensibile alle maiuscole. Nota: "
+"l'ordinamento sensibile alle maiuscole non funziona bene con la maggior "
+"parte delle codifiche."
 
-#: gtkpod.glade:6929
-msgid "_Local"
-msgstr "_Locale"
+#: ../data/gtkpod.glade.h:184
+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 (percorso completo) di una traccia esistente corrisponde "
+"a quella di una traccia che deve essere aggiunta, questa opzione permette di "
+"aggiornare le informazioni della traccia esistente piuttosto che ignorare "
+"del tutto la traccia. Nessun aggiornamento avrà luogo se il file non è "
+"cambiato e l'opzione precedente «Non permettere i file duplicati» è "
+"selezionata."
 
-#: 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."
+#: ../data/gtkpod.glade.h:185
+msgid "If you check this, gtkpod will descend into subdirectories recursively."
+msgstr "Selezionando questo, gtkpod discenderà nelle directory ricorsivamente."
 
-#: gtkpod.glade:6950
-msgid "_iPod"
-msgstr "_iPod"
+#: ../data/gtkpod.glade.h:186
+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 ""
+"Se si seleziona questa casella, le informazioni (copertina e meta "
+"informazioni) cambiate per questa traccia saranno copiate anche in tutte le "
+"altre tracce selezionate. Usare con cautela."
 
-#: 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
+#: ../data/gtkpod.glade.h:187
 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 '%': %%."
+"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 ""
-"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 '%': %%."
+"Se non si seleziona automaticamente la playlist principale, l'importazione "
+"iniziale del database sarà molto più veloce perché non verrà aggiornata "
+"l'interfaccia."
 
-#: 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
+#: ../data/gtkpod.glade.h:188
 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 '%': %%."
+"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 ""
-"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 '%': %%."
+"Se si selezionano diverse tracce nella lista delle tracce e si modifica "
+"un'etichetta della prima traccia, saranno aggiornate anche le etichette "
+"delle altre tracce."
 
-#: gtkpod.glade:7203
-msgid " "
-msgstr " "
+#: ../data/gtkpod.glade.h:189
+msgid "Ignore these words when at the beginning of the following fields:"
+msgstr "Ignorare queste parole quando sono all'inizio dei campi seguenti:"
 
-#: gtkpod.glade:7225
+#: ../data/gtkpod.glade.h:190
 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."
+"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 ""
-"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."
+"Per memorizzare sull'iPod l'ordine delle tracce come visualizzato scegliere "
+"«Salva l'ordine visualizzato delle tracce» dal menù «Modifica» o selezionare "
+"«Salvataggio automatico» sotto."
 
-#: gtkpod.glade:7227
+#: ../data/gtkpod.glade.h:191
+msgid "Initialize iPod"
+msgstr "Inizializza l'iPod"
+
+#: ../data/gtkpod.glade.h:192
 msgid ""
-"Use selected charset (Preferences/'Adding/Updating/ Syncing')\n"
-"for this filename."
+"Insert before\n"
+"Insert after"
 msgstr ""
-"Usa la codifica selezionata (vedi sopra: 'Aggiungi/Aggiorna/ Sincronizza')\n"
-" per questo file."
+"Inserisci prima\n"
+"Inserisci dopo"
 
-#: 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."
+#: ../data/gtkpod.glade.h:194
+msgid "Keeps all compilation CDs grouped together in the artists sort tab."
 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."
+"Mantiene raggruppati tutti i CD di compilation nelle schede di ordinamento "
+"degli artisti."
 
-#: gtkpod.glade:7248
-msgid "Check for existing files when copying from iPod."
-msgstr "Controlla i file esistenti quando copi dall'iPod."
+#: ../data/gtkpod.glade.h:195
+msgid "Live _updating"
+msgstr "Aggiornamento contin_uo"
 
-#: gtkpod.glade:7423
-msgid "Playlist name:"
-msgstr "Nome della playlist:"
+#: ../data/gtkpod.glade.h:196
+msgid "Load iPod(s)"
+msgstr "Carica gli iPod"
 
-#: gtkpod.glade:7492
+#: ../data/gtkpod.glade.h:197
+msgid "Lower Margin"
+msgstr "Limite inferiore"
+
+#: ../data/gtkpod.glade.h:198
+msgid "M4A with :"
+msgstr "M4A con :"
+
+#: ../data/gtkpod.glade.h:199
+msgid "MP3 with :"
+msgstr "MP3 con :"
+
+#: ../data/gtkpod.glade.h:200
 msgid "Match al_l of the following"
-msgstr "Confronta tut_ti i seguenti"
+msgstr "Verifica _tutti i seguenti"
 
-#: gtkpod.glade:7511
+#: ../data/gtkpod.glade.h:201
 msgid "Match an_y of the following"
-msgstr "Confronta uno quals_iasi dei seguenti"
+msgstr "Verifica _uno qualsiasi dei seguenti"
 
-#: gtkpod.glade:7531
-msgid "_Ignore rules"
-msgstr "_Ignora le regole"
+#: ../data/gtkpod.glade.h:202
+msgid "Match only _checked tracks"
+msgstr "Confronta solo le tracce _selezionate"
 
-#: gtkpod.glade:7601
-msgid "Rules"
-msgstr "Regole"
+#: ../data/gtkpod.glade.h:203
+msgid "Maximum number of background threads:"
+msgstr "Numero massimo di thread sullo sfondo:"
 
-#: gtkpod.glade:7638
-msgid "_Limit to"
-msgstr "_Limita a"
+#: ../data/gtkpod.glade.h:204
+msgid "Maximum size of cache directory (in GB):"
+msgstr "Dimensione massima della directory della cache (in GB):"
 
-#: gtkpod.glade:7689
-msgid "   Sort by:"
-msgstr "   Ordina per:"
+#: ../data/gtkpod.glade.h:205
+msgid "Model:"
+msgstr "Modello:"
 
-#: gtkpod.glade:7741
-msgid "Match only _checked tracks"
-msgstr "Confronta solo le tracce _selezionate"
+#: ../data/gtkpod.glade.h:206 ../src/display_tracks.c:1993
+msgid "Modified"
+msgstr "Modificato"
 
-#: gtkpod.glade:7773
-msgid "Live _updating"
-msgstr "_aggiornamente in diretta"
+#: ../data/gtkpod.glade.h:207
+msgid "Most Recently Played Tracks"
+msgstr "Tracce riprodotte più recentemente"
 
-#: gtkpod.glade:7864
-msgid "Preferences"
-msgstr "Preferenze"
+#: ../data/gtkpod.glade.h:208
+msgid "Music Root:"
+msgstr "Radice della musica:"
 
-#: gtkpod.glade:7927
-msgid "<b>Mountpoint and individual repository/playlist options</b>"
+#: ../data/gtkpod.glade.h:209
+msgid ""
+"Music files can have images embedded in the APIC tag. Currently this is only "
+"supported for MP3 files."
 msgstr ""
+"I file musicali possono avere delle immagini incorporate nell'etichetta "
+"APIC. Attualmente questo è supportato solo per i file MP3."
 
-#: gtkpod.glade:7990
-msgid "Set mountpoint or edit repository options"
-msgstr ""
+#: ../data/gtkpod.glade.h:210
+msgid "Never show this dialogue again"
+msgstr "Non mostrare più questa finestra di dialogo"
 
-#: gtkpod.glade:8037
-msgid "<b>Import</b>"
-msgstr "<b>Importa</b>"
+#: ../data/gtkpod.glade.h:211
+msgid "New PL"
+msgstr "Nuova PL"
 
-#: gtkpod.glade:8108
-#, fuzzy
-msgid "Automatically import iTunesDBs on startup"
-msgstr "Importa automaticamente l'iTunesDB all'avvio"
+#: ../data/gtkpod.glade.h:212
+msgid "No lower margin"
+msgstr "Nessun limite inferiore"
 
-#: gtkpod.glade:8154
-msgid "<b>Adding/Updating/Syncing</b>"
-msgstr "<b>Aggiungi/Aggiorna/Sincronizza</b>"
+#: ../data/gtkpod.glade.h:213
+msgid "No upper margin"
+msgstr "Nessun limite superiore"
 
-#: gtkpod.glade:8226
-msgid "Exclude file mask(s)"
-msgstr ""
+#: ../data/gtkpod.glade.h:214
+msgid "Non-transferred tracks"
+msgstr "Tracce non trasferite"
 
-#: gtkpod.glade:8251
-msgid "Semicolon seperated list of file exclusion masks, e.g. '*.mp3'"
-msgstr ""
+#: ../data/gtkpod.glade.h:215
+msgid "None"
+msgstr "Nessuno"
 
-#: gtkpod.glade:8285
-#, fuzzy
-msgid "_Encoding (ID3, files):"
-msgstr "_Charset (ID3, file):"
-
-#: gtkpod.glade:8320
+#: ../data/gtkpod.glade.h:216
 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."
+"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 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."
+"Normalmente la codifica specificata la prima volta che si importa una "
+"traccia viene utilizzata per il nome del file. Se si sceglie questa opzione "
+"si può impostare una codifica differente con il selettore delle codifiche "
+"(Preferenze/«Aggiungi/Aggiorna/Sincronizza»). Nota: la codifica è "
+"memorizzata nel file con le informazioni estese (vedere "
+"Preferenze/«Scrittura di iTunesDB»). Le tracce importate prima della V0.51 "
+"non avranno alcuna codifica memorizzata. Verrà usata invece la codifica "
+"specificata."
 
-#: gtkpod.glade:8357
+#: ../data/gtkpod.glade.h:217
 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 "
@@ -1009,537 +1021,508 @@
 "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."
+"Normalmente la codifica specificata al momento di importare la traccia verrà "
+"usata per aggiornare le informazioni sulla traccia. Se si è scelta la "
+"codifica sbagliata al momento della prima importazione di una traccia e si "
+"vuole correggerla usando la funzione «Aggiorna traccia», si deve selezionare "
+"questa opzione. Nota: le informazioni sulla codifica sono memorizzate nel "
+"file con le informazioni estese (vedere «Scrittura di iTunesDB» sotto) e le "
+"tracce importate prima della V0.51 non avranno una codifica memorizzata. "
+"Verrà usata invece la codifica specificata qui sopra."
 
-#: gtkpod.glade:8359
-#, fuzzy
+#: ../data/gtkpod.glade.h:218
 msgid ""
-"Use selected encoding also when updating \n"
-"or syncing tracks"
+"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 ""
-"Usa la codifica selezionata anche quando aggiorni \n"
-"o sincronizzi le tracce"
+"Normalmente la codifica specificata al momento di importare la traccia verrà "
+"usata per scrivere l'etichetta. Se si è scelta la codifica sbagliata al "
+"momento della prima importazione, si deve selezionare questa opzione insieme "
+"alla codifica giusta. Nota: le informazioni sulla codifica sono memorizzate "
+"nel file con le informazioni estese (vedere «Scrittura di iTunesDB» nella "
+"pagina «Input/Output») e le tracce importate prima della V0.51 non avranno "
+"una codifica memorizzata, verrà usata la codifica specificata nella nella "
+"pagina «Input/Output»."
 
-#: gtkpod.glade:8379
-msgid "If you check this, gtkpod will descend into subdirectories recursively."
-msgstr "Se selezioni questo, gtkpod discenderà nelle directory ricorsivamente."
+#: ../data/gtkpod.glade.h:219
+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, se una traccia non è più presente nella directory di "
+"sincronizzazione, verrà rimossa dalla playlist, ma non dall'archivio "
+"dell'iPod o da quello locale.\n"
+"Se questa opzione è selezionata, le tracce saranno rimosse completamente "
+"dall'archivio dell'iPod o da quello locale, a meno che la traccia non faccia "
+"parte anche di altre playlist.\n"
+"NOTA: se si sincronizza con la playlist principale, si deve selezionare "
+"questa opzione se si vuole che le tracce siano rimosse perché rimuovere "
+"dalla playlist principale significa rimuovere dall'iPod."
 
-#: gtkpod.glade:8381
-msgid "Add directories recursively"
-msgstr "Aggiungi le directory ricorsivamente"
+#: ../data/gtkpod.glade.h:222
+msgid "Notes sync command:"
+msgstr "Comando per sincronizzare le note:"
 
-#: 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."
+#: ../data/gtkpod.glade.h:223
+msgid "Number of playlists"
+msgstr "Numero di playlist"
 
-#: gtkpod.glade:8402
-msgid "Don't allow file duplication"
-msgstr "Non permettere i file duplicati"
+#: ../data/gtkpod.glade.h:224
+msgid "Number of tracks"
+msgstr "Numero di tracce"
 
-#: gtkpod.glade:8452
+#: ../data/gtkpod.glade.h:225
+msgid "Number of tracks in generated playlists:"
+msgstr "Numero di tracce nelle playlist generate:"
+
+#: ../data/gtkpod.glade.h:226
 msgid ""
-"Display the list of duplicates that have been detected after adding files."
+"Number of tracks in the generated playlists 'Most Often Listened', 'Best "
+"Rated' and 'Most Recently Played'. Choose '0' for 'no limit'."
 msgstr ""
-"Mostra la lista dei duplicati che sono stati cancellati dopo l'aggiunta dei "
-"file."
+"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:8454
-msgid "Display info about detected duplicates"
-msgstr "Mostra informazioni sui duplicati scoperti"
+#: ../data/gtkpod.glade.h:227
+msgid "Ogg with :"
+msgstr "Ogg con :"
 
-#: 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'."
+#: ../data/gtkpod.glade.h:228
+msgid "On startup automatically sync with playlist directories"
+msgstr "All'avvio sincronizza automaticamente con le directory delle playlist"
 
-#: 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"
+#: ../data/gtkpod.glade.h:229
+msgid "On startup automatically sync with the following directory"
+msgstr "All'avvio sincronizza automaticamente con la seguente directory"
 
-#: gtkpod.glade:8533
-msgid "Display a list of tracks that could actually be updated."
-msgstr "Mostra una lista di tracce che potrebbero essere aggiornate."
+#: ../data/gtkpod.glade.h:230
+msgid "On startup automatically update (Live Playlist)"
+msgstr "All'avvio aggiorna automaticamente (Live Playlist)"
 
-#: gtkpod.glade:8535
-msgid "Display info about updated tracks"
-msgstr "Mostra informazioni sulle tracce aggiornate"
+#: ../data/gtkpod.glade.h:231
+msgid "One for each Album"
+msgstr "Una per ogni album"
 
-#: 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."
+#: ../data/gtkpod.glade.h:232
+msgid "One for each Artist"
+msgstr "Una per ogni artista"
 
-#: gtkpod.glade:8594
-msgid "Display info about non-updated tracks"
-msgstr "Mostra informazioni a proposito di tracce non aggiornate"
+#: ../data/gtkpod.glade.h:233
+msgid "One for each Composer"
+msgstr "Una per ogni compositore"
 
-#: gtkpod.glade:8620
-#, fuzzy
-msgid "When syncing playlists"
-msgstr "Durante la sincronizzazione delle directory"
+#: ../data/gtkpod.glade.h:234
+msgid "One for each Genre"
+msgstr "Una per ogni genere"
 
-#: gtkpod.glade:8694
-msgid "Confirm lists of directories"
-msgstr "Conferma la lista delle directory"
+#: ../data/gtkpod.glade.h:235
+msgid "One for each Rating"
+msgstr "Una per ogni voto"
 
-#: 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 ""
+#: ../data/gtkpod.glade.h:236
+msgid "One for each Year"
+msgstr "Una per ogni anno"
 
-#: gtkpod.glade:8716 gtkpod.glade:17762
-msgid ""
-"Delete tracks that are no longer present from the\n"
-"ipod or repository"
-msgstr ""
+#: ../data/gtkpod.glade.h:237
+msgid "Overwrite tags that are already set"
+msgstr "Sovrascrivi le etichette che sono già impostate"
 
-#: gtkpod.glade:8735
-msgid "This is the same option as in 'Edit/Delete Confirmation'"
-msgstr "Questa è la stessa opzione in 'Edit/Conferma la cancellazione'"
+#: ../data/gtkpod.glade.h:238
+msgid "Password:"
+msgstr "Password:"
 
-#: 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"
+#: ../data/gtkpod.glade.h:239
+msgid "Path:"
+msgstr "Percorso:"
 
-#: gtkpod.glade:8756 gtkpod.glade:17800
-msgid ""
-"Will show a list of tracks removed and a list of tracks newly added or "
-"updated."
-msgstr ""
+#: ../data/gtkpod.glade.h:240
+msgid "Play time"
+msgstr "Durata"
 
-#: gtkpod.glade:8758 gtkpod.glade:17802
-msgid "Show summary of sync result"
-msgstr ""
+#: ../data/gtkpod.glade.h:241 ../src/display_spl.c:98
+#: ../src/misc_conversion.c:77
+msgid "Playcount"
+msgstr "Contatore riproduzioni"
 
-#: gtkpod.glade:8819
-msgid "<b>Sync</b>"
-msgstr "<b>Sincronizza</b>"
+#: ../data/gtkpod.glade.h:242 ../src/display_tracks.c:1990
+msgid "Played"
+msgstr "Riprodotto"
 
-#: 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)."
+#: ../data/gtkpod.glade.h:243 ../src/display_spl.c:105
+msgid "Playlist"
+msgstr "Playlist"
 
-#: 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."
+#: ../data/gtkpod.glade.h:244
+msgid "Playlist name:"
+msgstr "Nome della playlist:"
 
-#: gtkpod.glade:8921 gtkpod.glade:14688
-#, fuzzy
-msgid "_General"
-msgstr "Generale"
+#: ../data/gtkpod.glade.h:245
+msgid "Playlist type:"
+msgstr "Tipo di playlist:"
 
-#: gtkpod.glade:8957
-msgid "<b>Tag Reading</b>"
-msgstr "<b>Lettura del Tag</b>"
+#: ../data/gtkpod.glade.h:246 ../src/display_playlists.c:2176
+msgid "Playlists"
+msgstr "Playlist"
 
-#: 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)"
+#: ../data/gtkpod.glade.h:247
+msgid "Please refer to the notice below."
+msgstr "Consultare la nota seguente."
 
-#: 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'."
+#: ../data/gtkpod.glade.h:248
+msgid "Please specify a time interval"
+msgstr "Specificare un intervallo di tempo"
 
-#: 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"
+#: ../data/gtkpod.glade.h:249
+msgid "Preferences"
+msgstr "Preferenze"
 
-#: gtkpod.glade:9118
-msgid "Overwrite tags that are already set"
-msgstr "Sovrascrivi i tag che sono giàimpostati."
-
-#: gtkpod.glade:9151
+#: ../data/gtkpod.glade.h:250
 msgid ""
-"As a last resort set the following tags to the\n"
-"filename if they are (still) empty:"
+"Press button to abort.\n"
+"Export can be continued at a later time."
 msgstr ""
-"Come ultimo tentativo riempi i tag seguenti con\n"
-"il filename se sono (ancora) vuoti:"
+"Premere il bottone per interrompere.\n"
+"L'esportazione può essere ripresa in seguito."
 
-#: gtkpod.glade:9187 src/display_sorttabs.c:2942 src/display_spl.c:85
-#: src/misc_conversion.c:62
-msgid "Artist"
-msgstr "Artista"
+#: ../data/gtkpod.glade.h:252
+msgid "Previous"
+msgstr "Precedente"
 
-#: gtkpod.glade:9209 src/display_sorttabs.c:2948 src/display_spl.c:89
-#: src/misc_conversion.c:64
-msgid "Genre"
-msgstr "Genere"
+#: ../data/gtkpod.glade.h:253
+msgid "Progress Information"
+msgstr "Informazioni sull'avanzamento"
 
-#. 0
-#: gtkpod.glade:9231 src/display_sorttabs.c:2945 src/display_spl.c:84
-#: src/misc_conversion.c:61
-msgid "Album"
-msgstr "Album"
+#: ../data/gtkpod.glade.h:254
+msgid "Random Playlist from Displayed Tracks"
+msgstr "Playlist casuale dalle tracce mostrate"
 
-#. 5
-#: gtkpod.glade:9253 src/display_spl.c:97 src/misc_conversion.c:66
-msgid "Composer"
-msgstr "Compositore"
+#: ../data/gtkpod.glade.h:255
+msgid "Randomize Current Playlist"
+msgstr "Rendi casuale la playlist corrente"
 
-#: gtkpod.glade:9275 src/display_sorttabs.c:2954 src/display_spl.c:83
-#: src/misc_conversion.c:63
-msgid "Title"
-msgstr "Titolo"
+#: ../data/gtkpod.glade.h:256 ../src/display_spl.c:101
+#: ../src/misc_conversion.c:78
+msgid "Rating"
+msgstr "Voto"
 
-#: gtkpod.glade:9330
-#, fuzzy
-msgid "<b>Coverart</b>"
-msgstr "<b>Importa</b>"
+#: ../data/gtkpod.glade.h:257
+msgid "Read coverart from embedded APIC data"
+msgstr "Leggi la copertina dai dati APIC incorporati"
 
-#: gtkpod.glade:9392
-msgid ""
-"Music files can have images embedded in the APIC tag. Currently this is only "
-"supported for MP3 files."
+#: ../data/gtkpod.glade.h:258
+msgid "Read tags from file contents (e.g. ID3 tags in MP3 files)"
 msgstr ""
+"Leggi le etichette dal contenuto del file (es. etichette ID3 nei file MP3)"
 
-#: gtkpod.glade:9394
-msgid "Read coverart from embedded APIC data"
-msgstr ""
+#: ../data/gtkpod.glade.h:259
+msgid "Remove Cover Art"
+msgstr "Rimuovi la copertina"
 
-#: gtkpod.glade:9415
-msgid "Add coverart from file using the following template"
-msgstr ""
+#: ../data/gtkpod.glade.h:260
+msgid "Repository Options"
+msgstr "Opzioni dell'archivio"
 
-#: 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 '%': %%."
+#: ../data/gtkpod.glade.h:261
+msgid "Repository name:"
+msgstr "Nome dell'archivio:"
 
-#: gtkpod.glade:9492
-#, fuzzy
-msgid "<b>Examples</b>"
-msgstr "<b>Importa</b>"
+#: ../data/gtkpod.glade.h:262
+msgid "Repository type:"
+msgstr "Tipo di archivio:"
 
-#: gtkpod.glade:9526
-msgid "folder.jpg"
-msgstr ""
+#: ../data/gtkpod.glade.h:263
+msgid "Root directory of mserv database (trackinfo root)."
+msgstr "Directory radice del database mserv (radice di trackinfo)."
 
-#: gtkpod.glade:9554
-msgid "folder"
-msgstr ""
+#: ../data/gtkpod.glade.h:264
+msgid "Rules"
+msgstr "Regole"
 
-#: gtkpod.glade:9582
-msgid "../%A.jpg"
-msgstr ""
+#: ../data/gtkpod.glade.h:265 ../src/context_menus.c:808
+msgid "Save Changes"
+msgstr "Salva le modifiche"
 
-#: gtkpod.glade:9610
-msgid "%A"
-msgstr ""
+#: ../data/gtkpod.glade.h:266
+msgid "Scrobble Tracks?"
+msgstr "Invia le tracce a Audioscrobbler?"
 
-#: gtkpod.glade:9638
-msgid "Use <i>folder.jpg</i> as cover art."
-msgstr ""
+#: ../data/gtkpod.glade.h:267
+msgid "Select '-1' for no upper limit."
+msgstr "Scegliere «-1» per nessun limite superiore."
 
-#: gtkpod.glade:9666
-msgid "Use <i>folder.jpg</i>, <i>folder.png</i>..."
-msgstr ""
+#: ../data/gtkpod.glade.h:268
+msgid "Select '0' for no lower limit."
+msgstr "Scegliere «0» per nessun limite inferiore."
 
-#: gtkpod.glade:9694
-msgid "Use <i>&lt;Album&gt;.jpg</i> in the parent directory"
+#: ../data/gtkpod.glade.h:269
+msgid ""
+"Selected\n"
+"Playlist"
 msgstr ""
+"Playlist\n"
+"selezionata"
 
-#: gtkpod.glade:9722
-msgid "Use <i>&lt;Album&gt;.jpg</i>, <i>&lt;Album&gt;.png</i>..."
+#: ../data/gtkpod.glade.h:271
+msgid ""
+"Selected\n"
+"Tracks"
 msgstr ""
+"Tracce\n"
+"selezionate"
 
-#: gtkpod.glade:9750
-msgid "folder.jpg;%a.jpg"
-msgstr ""
+#: ../data/gtkpod.glade.h:273
+msgid "Selected Tab _Entry"
+msgstr "Voc_e nella scheda selezionata"
 
-#: gtkpod.glade:9778
-msgid "First try <i>folder.jpg</i>, then <i>&lt;artist&gt;.jpg</i>"
-msgstr ""
+#: ../data/gtkpod.glade.h:274
+msgid "Selected _Playlist"
+msgstr "_Playlist selezionata"
 
-#: gtkpod.glade:9835
-msgid "If both options are selected, embedded APIC data takes precedence."
-msgstr ""
+#: ../data/gtkpod.glade.h:275
+msgid "Selected _Tracks"
+msgstr "_Tracce selezionate"
 
-#: gtkpod.glade:9887
-msgid "<b>mserv</b>"
-msgstr ""
+#: ../data/gtkpod.glade.h:276
+msgid "Selected filter tab entry from database"
+msgstr "Voce selezionata nella scheda di filtro dal database"
 
-#: gtkpod.glade:9949 gtkpod.glade:10175
-msgid "Currently only rating is supported."
-msgstr "Attualmente solo la votazione è supportata."
+#: ../data/gtkpod.glade.h:277
+msgid "Selected filter tab entry from harddisk"
+msgstr "Voce selezionata nella scheda di filtro dal disco fisso"
 
-#: gtkpod.glade:9951
-msgid "Use mserv database to fill additional information"
-msgstr "Usa il database mserv per aggiungere informazioni addizionali"
+#: ../data/gtkpod.glade.h:278
+msgid "Selected filter tab entry from iPod"
+msgstr "Voce selezionata nella scheda di filtro dall'iPod"
 
-#: gtkpod.glade:9979
-msgid "Music Root:"
-msgstr "Radice della musica:"
+#: ../data/gtkpod.glade.h:279
+msgid "Selected filter tab entry from playlist"
+msgstr "Voce selezionata nella scheda di filtro dalla playlist"
 
-#: 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."
+#: ../data/gtkpod.glade.h:280
+msgid "Selected playlist"
+msgstr "Playlist selezionata"
 
-#: gtkpod.glade:10029
-msgid "mserv Root:"
-msgstr "radice del mserv:"
+#: ../data/gtkpod.glade.h:281
+msgid "Selected playlist including tracks from database"
+msgstr "Playlist selezionata comprese tracce nel database"
 
-#: gtkpod.glade:10057
-msgid "Root directory of mserv database (trackinfo root)."
-msgstr "Directory radice del database mserv (radice del trackinfo)."
+#: ../data/gtkpod.glade.h:282
+msgid "Selected playlist including tracks from harddisk"
+msgstr "Playlist selezionata comprese tracce sul disco fisso"
 
-#: gtkpod.glade:10079
-msgid "Username:"
-msgstr "Nome utente:"
+#: ../data/gtkpod.glade.h:283
+msgid "Selected playlist including tracks from iPod"
+msgstr "Playlist selezionata comprese tracce nell'iPod"
 
-#: gtkpod.glade:10107
-msgid "Username to be used for mserv database lookup."
-msgstr "Nome utente da utilizzare per la consultazione del database mserv"
+#: ../data/gtkpod.glade.h:284
+msgid "Selected tracks from database"
+msgstr "Tracce selezionate dal database"
 
-#: 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 ""
+#: ../data/gtkpod.glade.h:285
+msgid "Selected tracks from harddisk"
+msgstr "Tracce selezionate dal disco fisso"
 
-#: gtkpod.glade:10177
-msgid "Show information about problems when accessing mserv"
-msgstr "Mostra informazioni sui problemi nell'accesso a mserv"
+#: ../data/gtkpod.glade.h:286
+msgid "Selected tracks from iPod"
+msgstr "Tracce selezionate dall'iPod"
 
-#: gtkpod.glade:10223
+#: ../data/gtkpod.glade.h:287
+msgid "Selected tracks from playlist"
+msgstr "Tracce selezionate dalla playlist"
+
+#: ../data/gtkpod.glade.h:288
 #, fuzzy
-msgid "_Track Info"
-msgstr "Traccia"
+msgid "Semicolon separated list of file exclusion masks, e.g. '*.mp3'"
+msgstr ""
+"Lista separata da punto e virgola di maschere per escludere i file, es. «*."
+"mp3»"
 
-#: gtkpod.glade:10273
-msgid "<b>Displayed Track Attributes</b>"
-msgstr "<b>Attributi delle tracce visualizzati</b>"
+#: ../data/gtkpod.glade.h:289
+msgid "Set Cover Art from File"
+msgstr "Imposta la copertina da un file"
 
-#: gtkpod.glade:11083
-msgid "<b>Sort Tabs</b>"
-msgstr "<b>Blocchi di ordinamento</b>"
+#: ../data/gtkpod.glade.h:290
+msgid "Set Cover Art from Web"
+msgstr "Imposta la copertina dal web"
 
-#: gtkpod.glade:11145
-msgid "Keeps all compilation CDs grouped together in the artists sort tab."
+#: ../data/gtkpod.glade.h:291
+msgid "Set mountpoint or edit repository options"
+msgstr "Imposta il punto di mount o modifica le opzioni dell'archivio"
+
+#: ../data/gtkpod.glade.h:292
+msgid "Set options for Calendar/Contacts/Notes"
+msgstr "Imposta le opzioni per Calendario/Contatti/Note"
+
+#: ../data/gtkpod.glade.h:293
+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 ""
+"Impostare a «aacgain -q -k» per usare la funzionalità «Normalizza volume» "
+"nel menù «Strumenti». Se impostato, i dati mancanti per la normalizzazione "
+"dei file .m4a e .m4b saranno calcolati e scritti nel file musicale usando "
+"questo comando."
 
-#: gtkpod.glade:11147
-msgid "Group artists on compilation CDs"
+#: ../data/gtkpod.glade.h:294
+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 ""
+"Impostare a «mp3gain -q -k» per usare la funzionalità «Normalizza volume» "
+"nel menù «Strumenti». Se impostato, i dati mancanti per la normalizzazione "
+"dei file mp3 saranno calcolati e scritti nel file mp3 usando questo comando."
 
-#: gtkpod.glade:11172
-msgid "_Number of sort tabs:"
-msgstr "_Numero dei blocchi di ordinamento:"
+#: ../data/gtkpod.glade.h:295
+msgid "Set this to your last.fm password"
+msgstr "Impostare la propria password su last.fm"
 
-#: gtkpod.glade:11252
-msgid "<b>Automatically select...</b>"
-msgstr "<b>Seleziona automaticamente...</b>"
+#: ../data/gtkpod.glade.h:296
+msgid "Set this to your last.fm username"
+msgstr "Impostare il proprio nome utente su last.fm"
 
-#: gtkpod.glade:11314
+#: ../data/gtkpod.glade.h:297
 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."
+"Set to 0 to effectively disable caching (a maximum of one track will be "
+"cached at a time)."
 msgstr ""
-"Se non selezioni la playlist principale automaticamente, l'importazione "
-"iniziale del database sarà molto più veloce perchè non verrà aggiornata "
-"l'interfaccia."
+"Impostare a 0 per disabilitare la cache (al massimo una traccia per volta "
+"sarà mantenuta nella cache)."
 
-#: gtkpod.glade:11316
-msgid "...master playlist"
-msgstr "...playlist principale"
+#: ../data/gtkpod.glade.h:298
+msgid ""
+"Set to 0 to use as many background threads as CPUs are available on your "
+"system."
+msgstr ""
+"Impostare a 0 per usare tanti thread sullo sfondo quante sono le CPU "
+"disponibili nel sistema."
 
-#: gtkpod.glade:11336
-msgid "...entry 'All' in sort tab..."
-msgstr "...voce 'Tutti' nel blocco di ordinamento..."
+#: ../data/gtkpod.glade.h:299
+msgid "Show information about problems when accessing mserv"
+msgstr "Mostra informazioni sui problemi nell'accesso a mserv"
 
-#: gtkpod.glade:11421
-msgid "<b>Tooltips</b>"
-msgstr "<b>Suggerimenti</b>"
+#: ../data/gtkpod.glade.h:300
+msgid "Show summary of sync result"
+msgstr "Mostra un riassunto dei risultati della sincronizzazione"
 
-#: gtkpod.glade:11484
-msgid "Display tooltips in main window"
-msgstr "Mostra i suggerimenti nella finestra principale"
+#: ../data/gtkpod.glade.h:301 ../src/misc_playlist.c:96
+#: ../src/repository.c:1356
+msgid "Smart Playlist"
+msgstr "Playlist intelligente"
 
-#: gtkpod.glade:11504
-msgid "Display tooltips in prefs window"
-msgstr "Mostra i suggerimenti nella finestra delle preferenze"
+#: ../data/gtkpod.glade.h:302
+msgid "Sort tracks according to: "
+msgstr "Ordina le tracce secondo: "
 
-#: gtkpod.glade:11550
-msgid "<b>Toolbar</b>"
-msgstr "<b>Barra degli Strumenti</b>"
+#: ../data/gtkpod.glade.h:303
+msgid "Sorting Options"
+msgstr "Opzioni di ordinamento"
 
-#: gtkpod.glade:11613
-msgid "Display toolbar..."
-msgstr "Mostra la barra degli strumenti..."
+#: ../data/gtkpod.glade.h:304
+msgid "Sorting case sensitive"
+msgstr "Ordinamento sensibile alle maiuscole"
 
-#: gtkpod.glade:11670
-msgid "...as icons"
-msgstr "...con icone"
+#: ../data/gtkpod.glade.h:305
+msgid "Sorttab: "
+msgstr "Scheda di ordinamento: "
 
-#: gtkpod.glade:11690
-msgid "...as text"
-msgstr "...con testo"
+#: ../data/gtkpod.glade.h:306
+msgid "Sorttabs"
+msgstr "Schede di ordinamento"
 
-#: gtkpod.glade:11711
-msgid "...both as icons and text"
-msgstr "...con icone e testo"
+#: ../data/gtkpod.glade.h:307
+msgid "Source:"
+msgstr "Sorgente:"
 
-#: gtkpod.glade:11772
-msgid "<b>Misc</b>"
-msgstr "<b>Misc</b>"
-
-#: gtkpod.glade:11834
+#: ../data/gtkpod.glade.h:309
+#, no-c-format
 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."
+"Specify exact path including command line options. '%i' will be replaced "
+"with the mount point of the iPod."
 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."
+"Specificare il percorso esatto incluse le opzioni della riga di comando. «%"
+"i» verrà sostituito con il punto di montaggio dell'iPod."
 
-#: 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!)"
+#: ../data/gtkpod.glade.h:310
+msgid "Specify interval"
+msgstr "Specificare l'intervallo"
 
-#: 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)."
+#: ../data/gtkpod.glade.h:311
+msgid "Start display automatically"
+msgstr "Mostra automaticamente"
 
-#: 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!)"
+#: ../data/gtkpod.glade.h:312
+msgid "Synchronise Contacts, Calendar and Notes"
+msgstr "Sincronizza contatti, calendario e note"
 
-#: gtkpod.glade:11878
-msgid "This option will be re-activated when you upgrade gtkpod."
-msgstr "Questa opzione verrà riattivata all'aggiornamento di gtkpod."
+#: ../data/gtkpod.glade.h:313
+msgid "Synchronize All"
+msgstr "Sincronizza tutto"
 
-#: gtkpod.glade:11880
-msgid "Display messages and warnings at startup"
-msgstr "Mostra messaggi e avvertimenti all'avvio"
+#: ../data/gtkpod.glade.h:314
+msgid "Synchronize Calendar"
+msgstr "Sincronizza il calendario"
 
-#: gtkpod.glade:11942
-msgid "Advanced Sorting Options"
-msgstr "Opzioni di ordinamento avanzate"
+#: ../data/gtkpod.glade.h:315
+msgid "Synchronize Contacts"
+msgstr "Sincronizza i contatti"
 
-#: gtkpod.glade:12045
-msgid "<b>Track Editing</b>"
-msgstr "<b>Modifica della traccia</b>"
+#: ../data/gtkpod.glade.h:316
+msgid "Synchronize Notes"
+msgstr "Sincronizza le note"
 
-#: gtkpod.glade:12107
+#: ../data/gtkpod.glade.h:317
+msgid "Template for info field: "
+msgstr "Modello per il campo delle informazioni: "
+
+#: ../data/gtkpod.glade.h:318
 msgid ""
-"The tags are written to the files on your harddrive and on the ipod (if "
-"available)."
+"The local copy of the track is referenced in the playlist. If the track is "
+"not available locally, an error message is displayed."
 msgstr ""
-"I tag vengono scritti sui file nel tuo disco e sull'iPod (se disponibile)."
+"La playlist fa riferimento alla copia locale della traccia. Se la traccia "
+"non è disponibile localmente, verrà mostrato un messaggio di errore."
 
-#: 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
+#: ../data/gtkpod.glade.h:319
 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."
+"The output of the background conversion scripts is copied below. Each page "
+"of the notebook corresponds to one background thread."
 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."
+"L'output degli script di conversione sullo sfondo è copiato sotto. Ogni "
+"linguetta corrisponde ad un thread sullo sfondo."
 
-#: gtkpod.glade:12167
+#: ../data/gtkpod.glade.h:320
 #, fuzzy
 msgid ""
-"Use selected encoding (on the 'General' page)\n"
-"when writing tags"
+"The tags are written to the files on your harddrive and on the iPod (if "
+"available)."
 msgstr ""
-"Usa la codifica selezionata (nella pagina 'Generale')\n"
-" per la scrittura dei tag"
+"Le etichette vengono scritte sui file nel disco fisso e sull'iPod (se "
+"disponibile)."
 
-#: gtkpod.glade:12187
+#: ../data/gtkpod.glade.h:321
+msgid "The track on the iPod is referenced in the playlist file."
+msgstr "Il file della playlist fa riferimento alla traccia sull'iPod."
+
+#: ../data/gtkpod.glade.h:322
+msgid "This is the same option as in 'Edit/Delete Confirmation'"
+msgstr ""
+"Questa è la stessa opzione che si trova in «Modifica/Conferma l'eliminazione»"
+
+#: ../data/gtkpod.glade.h:323
 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 "
@@ -1548,794 +1531,1017 @@
 "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."
+"supportano già. ID3v2.4 usa unicode per memorizzare le etichette, quindi non "
+"c'è più  bisogno di preoccuparsi delle codifiche. gtkpod userà la codifica "
+"UTF8 perché questa non incrementerà la dimensione delle etichette ASCII "
+"pure. Le etichette ID3v2.2/4 verranno scritte 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)"
+#: ../data/gtkpod.glade.h:324
+msgid "This option will be re-activated when you upgrade gtkpod."
+msgstr "Questa opzione verrà riattivata dopo aver aggiornato gtkpod."
 
-#: gtkpod.glade:12222
+#: ../data/gtkpod.glade.h:325
+msgid "Time:"
+msgstr "Ora:"
+
+#: ../data/gtkpod.glade.h:326 ../src/display_sorttabs.c:2963
+#: ../src/display_spl.c:83 ../src/misc_conversion.c:62
+msgid "Title"
+msgstr "Titolo"
+
+#: ../data/gtkpod.glade.h:327
 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."
+"Total\n"
+"(iPod)"
 msgstr ""
-"Se selezioni diverse tracce nella playlist e modifichi il tag della prima i "
-"tag delle altre verrà aggiornato."
+"Totale\n"
+"(iPod)"
 
-#: gtkpod.glade:12224
-msgid "Use 'Multi-Edit' for tracks selections"
-msgstr "Usa 'Multi-Edit' per la selezione dei file"
+#: ../data/gtkpod.glade.h:329
+msgid ""
+"Total\n"
+"(local)"
+msgstr ""
+"Totale\n"
+"(locale)"
 
-#: gtkpod.glade:12274
+#: ../data/gtkpod.glade.h:331
+msgid "Tracks"
+msgstr "Tracce"
+
+#: ../data/gtkpod.glade.h:332
+msgid "Tracks Most Often Listened To"
+msgstr "Tracce ascoltate più spesso"
+
+#: ../data/gtkpod.glade.h:333
 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)."
+"Tracks can be transferred in the background as soon as they are added to an "
+"iPod repository. Otherwise they will be transferred when ejecting the "
+"contents of the iPod completely unchanged until then."
 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')."
+"Le tracce possono essere trasferite sullo sfondo non appena sono aggiunte "
+"all'archivio di un iPod. Altrimenti saranno trasferite al momento "
+"dell'espulsione; il contenuto dell'iPod è completamente intatto fino a quel "
+"momento."
 
-#: gtkpod.glade:12276
-msgid "Use 'Multi-Edit' also for title field"
-msgstr "Usa 'Multi-edit' anche per il campo titolo"
+#: ../data/gtkpod.glade.h:334
+msgid "Tracks in Selected Tab _Entry"
+msgstr "Tracce nella scheda s_elezionata"
 
-#: gtkpod.glade:12329
-msgid "<b>Auto-Generated Playlists</b>"
-msgstr "<b>Playlist Auto-Generata</b>"
+#: ../data/gtkpod.glade.h:335
+msgid "Tracks in Selected _Playlist"
+msgstr "Tracce nella _playlist selezionata"
 
-#: gtkpod.glade:12397
-msgid "Number of tracks in generated playlists:"
-msgstr "Numero di tracce nelle playlist generate:"
+#: ../data/gtkpod.glade.h:336
+msgid "Transfer tracks to the iPod in the background"
+msgstr "Trasferisci le tracce all'iPod sullo sfondo"
 
-#: gtkpod.glade:12422
+#: ../data/gtkpod.glade.h:337
+msgid "Translators"
+msgstr "Traduttori"
+
+#: ../data/gtkpod.glade.h:338
 msgid ""
-"Number of tracks in the generated playlists 'Most Often Listened', 'Best "
-"Rated' and 'Most Recently Played'. Choose '0' for 'no limit'."
+"Try to load contents of all connected iPods. For each iPod a separate "
+"repository must be set up."
 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'"
+"Tenta di caricare i contenuti di tutti gli iPod connessi. Per ogni iPod deve "
+"essere impostato un archivio separato."
 
-#: 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"
-"\""
+#: ../data/gtkpod.glade.h:339
+msgid "Update _mserv Data from File"
+msgstr "Aggiorna i dati _mserv da file"
 
-#: gtkpod.glade:12497
-msgid "<b>Delete Confirmation</b>"
-msgstr "<b>Conferma la cancellazione</b>"
+#: ../data/gtkpod.glade.h:340
+msgid "Update/Sync all playlists now"
+msgstr "Aggiorna/sincronizza tutte le playlist ora"
 
-#: gtkpod.glade:12560
-msgid "Before removing playlists or tracks from a playlist"
-msgstr "Prima di rimuovere le playlist o le tracce dalla playlist"
+#: ../data/gtkpod.glade.h:341
+msgid "Update/Sync playlist now"
+msgstr "Aggiorna/sincronizza la playlist ora"
 
-#: gtkpod.glade:12580
-msgid "Before removing tracks from the iPod"
-msgstr "Prima di rimuovere le tracce dall'iPod"
+#: ../data/gtkpod.glade.h:342
+msgid "Upper margin"
+msgstr "Limite superiore"
 
-#: gtkpod.glade:12600
-msgid "Before removing tracks from the harddisk"
-msgstr "Prima di rimuovere completamente le tracce dal disco fisso"
+#: ../data/gtkpod.glade.h:343
+msgid "Use 'Multi-Edit' also for title field"
+msgstr "Usa «Multi-edit» anche per il campo titolo"
 
-#: gtkpod.glade:12620
-msgid "Before removing tracks from the local database"
-msgstr "Prima di rimuovere le tracce dal database locale"
+#: ../data/gtkpod.glade.h:344
+msgid "Use 'Multi-Edit' for tracks selections"
+msgstr "Usa «Multi-Edit» per la selezione delle tracce"
 
-#: gtkpod.glade:12640
-msgid ""
-"Confirm before removing tracks from the iPod or repository\n"
-"when syncing playlists"
-msgstr ""
+#: ../data/gtkpod.glade.h:345
+#, fuzzy
+msgid "Use <i><Album>.jpg</i> in the parent directory"
+msgstr "Usa <i>&lt;Album&gt;.jpg</i> nella directory superiore"
 
-#: gtkpod.glade:12723
-msgid "<b>Play</b>"
-msgstr "<b>Riproduzione</b>"
+#: ../data/gtkpod.glade.h:346
+#, fuzzy
+msgid "Use <i><Album>.jpg</i>, <i><Album>.png</i>..."
+msgstr "Usa <i>&lt;Album&gt;.jpg</i>, <i>&lt;Album&gt;.png</i>..."
 
-#: gtkpod.glade:12788
-msgid "Command for 'Play now':"
-msgstr "Comando per 'Suona ora':"
+#: ../data/gtkpod.glade.h:347
+msgid "Use <i>folder.jpg</i> as cover art."
+msgstr "Usa <i>folder.jpg</i> come copertina."
 
-#: gtkpod.glade:12816
-msgid "Command for 'Enqueue':"
-msgstr "Comando per 'Metti in coda':"
+#: ../data/gtkpod.glade.h:348
+msgid "Use <i>folder.jpg</i>, <i>folder.png</i>..."
+msgstr "Usa <i>folder.jpg</i>, <i>folder.png</i>..."
 
-#: gtkpod.glade:12844
+#: ../data/gtkpod.glade.h:349
+msgid "Use mserv database to fill additional information"
+msgstr "Usa il database mserv per aggiungere ulteriori informazioni"
+
+#: ../data/gtkpod.glade.h:350
 msgid ""
-"For example, 'xmms %s' will clear xmms' current playlist, add the selected "
-"tracks and start playing."
+"Use selected charset (Preferences/'Adding/Updating/ Syncing')\n"
+"for this filename."
 msgstr ""
-"Per esempio, 'xmms %s' cancellerà la playlist attuale di xmms, aggiungerà la "
-"traccia selezionata e comincerà a suonarla."
+"Usare la codifica selezionata (Preferenze/«Aggiungi/Aggiorna/ Sincronizza»)\n"
+" per questo nome di file."
 
-#: gtkpod.glade:12866
+#: ../data/gtkpod.glade.h:352
 msgid ""
-"For example, 'xmms -e %s' will append (enqueue) the selected tracks to xmms' "
-"current playlist."
+"Use selected encoding (on the 'General' page)\n"
+"when writing tags"
 msgstr ""
-"Per esempio, 'xmms -e %s' appenderà (in coda) la traccia selezionata alla "
-"playlist corrente di xmms."
+"Usa la codifica selezionata (nella pagina «Generale»)\n"
+"per la scrittura delle etichette"
 
-#: gtkpod.glade:12953
-msgid "<b>Volume Normalization</b>"
-msgstr "<b>Normalizzazione del volume</b>"
+#: ../data/gtkpod.glade.h:354
+msgid "Use selected encoding also when updating or syncing tracks"
+msgstr ""
+"Usa la codifica selezionata anche durante l'aggiornamento e la "
+"sincronizzazione delle tracce"
 
-#: gtkpod.glade:13018
-msgid "'mp3gain' executable:"
-msgstr "eseguibile 'mp3gain':"
+#: ../data/gtkpod.glade.h:355
+msgid "Use this template to parse filename for tag information:"
+msgstr ""
+"Usa questa maschera per interpretare il nome del file per informazioni sulle "
+"etichette:"
 
-#: gtkpod.glade:13046
+#: ../data/gtkpod.glade.h:356
+msgid "Username to be used for mserv database lookup."
+msgstr "Nome utente da utilizzare per la consultazione del database mserv."
+
+#: ../data/gtkpod.glade.h:357
+msgid "Username:"
+msgstr "Nome utente:"
+
+#: ../data/gtkpod.glade.h:358
 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."
+"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:13087
-#, fuzzy
-msgid "'aacgain' executable:"
-msgstr "eseguibile 'mp3gain':"
+#: ../data/gtkpod.glade.h:359
+msgid "WAV with :"
+msgstr "WAV con :"
 
-#: gtkpod.glade:13115
+#: ../data/gtkpod.glade.h:360
 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."
+"When adding dirs/files, update information of\n"
+"existing tracks with identical filenames"
 msgstr ""
+"Aggiorna le informazioni sulle tracce esistenti con\n"
+"nomi identici durante l'aggiunta di directory e file"
 
-#: gtkpod.glade:13183
-msgid "<b>Calendar/Contacts/Notes</b>"
+#: ../data/gtkpod.glade.h:362
+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 ""
+"Durante la copia dall'iPod non viene controllato se il file di destinazione "
+"esiste. Selezionare questa opzione farà in modo che gtkpod controlli se la "
+"dimensione del file di destinazione è la stessa del file sull'iPod. Se fosse "
+"così il file verrà saltato, permettendo una veloce sincronizzazione del "
+"contenuto dell'iPod."
 
-#: gtkpod.glade:13246
-msgid "Set options for Calendar/Contacts/Notes"
-msgstr ""
+#: ../data/gtkpod.glade.h:363
+msgid "When syncing playlists"
+msgstr "Durante la sincronizzazione delle playlist"
 
-#: gtkpod.glade:13381
-msgid "Details"
+#: ../data/gtkpod.glade.h:364
+msgid ""
+"Will show a list of tracks removed and a list of tracks newly added or "
+"updated."
 msgstr ""
+"Mostra una lista delle tracce rimosse e una lista di tracce nuove aggiunte o "
+"aggiornate."
 
-#: gtkpod.glade:13449
-#, fuzzy
-msgid "Cover"
-msgstr "Compositore"
+#: ../data/gtkpod.glade.h:365
+msgid "Write ID3 tags to disk when modified in gtkpod"
+msgstr "Scrivi le etichette ID3 sul disco quando vengono modificate in gtkpod"
 
-#: gtkpod.glade:13538
-msgid "Set Cover Art"
-msgstr ""
+#: ../data/gtkpod.glade.h:366
+msgid "Write all changes made to the disk and the iPod(s)."
+msgstr "Scrive sul disco e sugli iPod tutte le modifiche fatte."
 
-#: gtkpod.glade:13575
+#: ../data/gtkpod.glade.h:367
 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."
+"Write extended information (PC filenames, SHA1 hashes,\n"
+"encoding...). Recommended."
 msgstr ""
+"Scrivi informazioni estese (nome del file sul PC,\n"
+" hash SHA1, codifica). Consigliato."
 
-#: gtkpod.glade:13621
+#: ../data/gtkpod.glade.h:369
 msgid ""
-"Change all tracks\n"
-"simultaneously"
+"You can also use the table headers, but this allows you to sort according to "
+"a column that is not displayed."
 msgstr ""
+"Si possono usare le intestazioni della tabella, ma questo metodo permette "
+"l'ordinamento secondo una colonna non visualizzata."
 
-#: gtkpod.glade:13713
-msgid "Remove Cover Art"
-msgstr ""
+#: ../data/gtkpod.glade.h:370
+msgid "_About"
+msgstr "_Informazioni su gtkpod"
 
-#: gtkpod.glade:14646
-msgid "(Checked)"
-msgstr ""
+#: ../data/gtkpod.glade.h:371
+msgid "_All Tracks"
+msgstr "_Tutte le tracce"
 
-#: gtkpod.glade:15088
-msgid "_Podcasts"
-msgstr ""
+#: ../data/gtkpod.glade.h:372
+msgid "_Arrange Sort Tabs"
+msgstr "_Sistema le schede di ordinamento"
 
-#: gtkpod.glade:16127
+#: ../data/gtkpod.glade.h:373
+msgid "_Check iPod's Files"
+msgstr "_Controlla i file dell'iPod"
+
+#: ../data/gtkpod.glade.h:374
+msgid "_Conversion Log"
+msgstr "Registro di _conversione"
+
+#: ../data/gtkpod.glade.h:375
+msgid "_Create Playlists"
+msgstr "_Crea playlist"
+
+#: ../data/gtkpod.glade.h:376
+msgid "_Create iPod's Directories"
+msgstr "_Crea le directory dell'iPod"
+
+#: ../data/gtkpod.glade.h:377
+msgid "_Delete"
+msgstr "_Elimina"
+
+#: ../data/gtkpod.glade.h:378
+msgid "_Display"
+msgstr "_Mostra"
+
+#: ../data/gtkpod.glade.h:379
+msgid "_Displayed Tracks"
+msgstr "_Tracce visualizzate"
+
+#: ../data/gtkpod.glade.h:380
+msgid "_Edit"
+msgstr "_Modifica"
+
+#: ../data/gtkpod.glade.h:381
+msgid "_Encoding (ID3, files):"
+msgstr "_Codifica (ID3, file):"
+
+#: ../data/gtkpod.glade.h:382
+msgid "_Enqueue"
+msgstr "_Metti in coda"
+
+#: ../data/gtkpod.glade.h:383
+msgid "_Export Tracks from Database"
+msgstr "_Esporta le tracce dal database"
+
+#: ../data/gtkpod.glade.h:384
+msgid "_File"
+msgstr "_File"
+
+#: ../data/gtkpod.glade.h:385
+msgid "_Find New"
+msgstr "Trova _nuova"
+
+#: ../data/gtkpod.glade.h:386
+msgid "_General"
+msgstr "_Generale"
+
+#: ../data/gtkpod.glade.h:387
+msgid "_Help"
+msgstr "_Aiuto"
+
+#: ../data/gtkpod.glade.h:388
+msgid "_Ignore rules"
+msgstr "_Ignora le regole"
+
+#: ../data/gtkpod.glade.h:389
+msgid "_Info Window"
+msgstr "_Finestra di informazioni"
+
+#: ../data/gtkpod.glade.h:390
+msgid "_Last.FM"
+msgstr "_Last.FM"
+
+#: ../data/gtkpod.glade.h:391
+msgid "_Less Sort Tabs"
+msgstr "_Meno schede di ordinamento"
+
+#: ../data/gtkpod.glade.h:392
+msgid "_Limit to"
+msgstr "_Limita a"
+
+#: ../data/gtkpod.glade.h:393
+msgid "_Load iPod(s)"
+msgstr "Carica g_li iPod"
+
+#: ../data/gtkpod.glade.h:394
+msgid "_Local"
+msgstr "_Locale"
+
+#: ../data/gtkpod.glade.h:395
+msgid "_M3U"
+msgstr "_M3U"
+
+#: ../data/gtkpod.glade.h:396
+msgid "_More Sort Tabs"
+msgstr "_Più schede di ordinamento"
+
+#: ../data/gtkpod.glade.h:397
+msgid "_Newly Added Tracks"
+msgstr "_Tracce nuove aggiunte"
+
+#: ../data/gtkpod.glade.h:398
+msgid "_Normalize Volume"
+msgstr "_Normalizza il volume"
+
+#: ../data/gtkpod.glade.h:399
+msgid "_Number of sort tabs:"
+msgstr "_Numero di schede di ordinamento:"
+
+#: ../data/gtkpod.glade.h:400
 msgid "_Other"
-msgstr ""
+msgstr "Altr_o"
 
-#: gtkpod.glade:16425
-msgid "_Undo All"
-msgstr ""
+#: ../data/gtkpod.glade.h:401
+msgid "_PLS"
+msgstr "_PLS"
 
-#: gtkpod.glade:16499
-#, fuzzy
-msgid "_Undo Track"
-msgstr "Tracce senza voto"
+#: ../data/gtkpod.glade.h:402
+msgid "_Play Now"
+msgstr "_Riproduci ora"
 
-#: gtkpod.glade:16546
-#, fuzzy
-msgid "Repository Options"
-msgstr "Opzioni di ordinamento"
+#: ../data/gtkpod.glade.h:403
+msgid "_Podcasts"
+msgstr "_Podcast"
 
-#: gtkpod.glade:16667
-msgid "Add new repository/iPod"
-msgstr ""
+#: ../data/gtkpod.glade.h:404
+msgid "_Prefer Local"
+msgstr "_Preferisci locali"
 
-#: gtkpod.glade:16736 gtkpod.glade:18163 gtkpod.glade:18659
-#, fuzzy
-msgid "iPod mountpoint:"
-msgstr " _Punto di montaggio dell'iPod"
+#: ../data/gtkpod.glade.h:405
+msgid "_Save Changes"
+msgstr "_Salva le modifiche"
 
-#: gtkpod.glade:16764 gtkpod.glade:18135
-msgid "iTunesDB backup:"
-msgstr ""
+#: ../data/gtkpod.glade.h:406
+msgid "_Save Displayed Track Order"
+msgstr "_Salva l'ordine visualizzato delle tracce"
 
-#: gtkpod.glade:16792 gtkpod.glade:18107 gtkpod.glade:18730 gtkpod.glade:18922
-msgid "Model:"
-msgstr ""
+#: ../data/gtkpod.glade.h:407
+msgid "_Sorting"
+msgstr "_Ordinamento"
 
-#: gtkpod.glade:16820 gtkpod.glade:18079
-msgid "Path:"
-msgstr ""
+#: ../data/gtkpod.glade.h:408
+msgid "_Synchronize Playlist with Dir(s)"
+msgstr "_Sincronizza la playlist con le directory"
 
-#: gtkpod.glade:16848
-msgid "<b>Synchronization</b>"
-msgstr "<b>Sincronizzazione</b>"
+#: ../data/gtkpod.glade.h:409
+msgid "_Toolbar"
+msgstr "_Barra degli strumenti"
 
-#: gtkpod.glade:16906
-msgid "Contacts sync command:"
-msgstr "Comando sincronizzazione contatti:"
+#: ../data/gtkpod.glade.h:410
+msgid "_Tools"
+msgstr "_Strumenti"
 
-#: gtkpod.glade:16934
-msgid "Calendar sync command:"
-msgstr "Comando sincronizzazione calendario:"
+#: ../data/gtkpod.glade.h:411
+msgid "_Tooltips"
+msgstr "_Suggerimenti"
 
-#: gtkpod.glade:16962
-msgid "Notes sync command:"
-msgstr "Comando sincronizzazione note:"
+#: ../data/gtkpod.glade.h:412
+msgid "_Track Info"
+msgstr "Informazioni sulla _traccia"
 
-#: gtkpod.glade:16991
-msgid "Call automatically when synchronizing iTunesDB"
-msgstr "Chiama automaticamente mentre sincronizzi l'iTunesDB"
+#: ../data/gtkpod.glade.h:413
+msgid "_Undo All"
+msgstr "Ann_ulla tutto"
 
-#: 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."
+#: ../data/gtkpod.glade.h:414
+msgid "_Undo Track"
+msgstr "Ann_ulla traccia"
 
-#: gtkpod.glade:17294
-msgid "Update/Sync all playlists now"
-msgstr ""
+#: ../data/gtkpod.glade.h:415
+msgid "_Update Tracks from File"
+msgstr "_Aggiorna tracce da file"
 
-#: gtkpod.glade:17314
-#, fuzzy
-msgid "Delete repository"
-msgstr "Cancella dall'iPod"
+#: ../data/gtkpod.glade.h:416
+msgid "_Video"
+msgstr "_Video"
 
-#: gtkpod.glade:17334 src/context_menus.c:430 src/context_menus.c:448
-#: src/context_menus.c:523
-msgid "I'm sure"
-msgstr ""
+#: ../data/gtkpod.glade.h:417
+msgid "_View"
+msgstr "_Visualizza"
 
-#: gtkpod.glade:17390
-#, fuzzy
-msgid "<b>Repositories</b>"
-msgstr "<b>Suggerimenti</b>"
+#: ../data/gtkpod.glade.h:418
+msgid "_iPod"
+msgstr "_iPod"
 
-#: gtkpod.glade:17587
+#: ../data/gtkpod.glade.h:420
+#, no-c-format
 msgid ""
-"Directories to sync with are determined from the filenames of the tracks in "
-"the playlist."
+"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, numero "
+"traccia: %T, numero CD: %C, anno: %Y, ignora un dato: %*, il carattere «%»: %"
+"%. Si possono separare diversi modelli usando un «;». Verrà usato il primo "
+"corrispondente al nome di un file. Esempio: «%a - %A/%T %t.mp;%t.wav»."
 
-#: gtkpod.glade:17589
-msgid "On startup automatically sync with playlist directories"
-msgstr ""
+#: ../data/gtkpod.glade.h:421
+msgid "folder"
+msgstr "folder"
 
-#: gtkpod.glade:17608
-#, fuzzy
-msgid "On startup automatically sync with the following directory"
-msgstr "Vuoi sincronizzare le seguenti directory?"
+#: ../data/gtkpod.glade.h:422
+msgid "folder.jpg"
+msgstr "folder.jpg"
 
-#: gtkpod.glade:17702
-#, fuzzy
-msgid "Don't automatically sync on startup"
-msgstr "Importa automaticamente l'iTunesDB all'avvio"
+#: ../data/gtkpod.glade.h:424
+#, no-c-format
+msgid "folder.jpg;%a.jpg"
+msgstr "folder.jpg;%a.jpg"
 
-#: gtkpod.glade:17848
-msgid "On startup automatically update (Live Playlist)"
-msgstr ""
+#: ../data/gtkpod.glade.h:425
+msgid "gtkpod"
+msgstr "gtkpod"
 
-#: gtkpod.glade:17878
-msgid "Update/Sync playlist now"
-msgstr ""
+#: ../data/gtkpod.glade.h:426
+msgid "gtkpod Info"
+msgstr "Informazioni su gtkpod"
 
-#: 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
+#: ../data/gtkpod.glade.h:427
 msgid ""
-"Insert before\n"
-"Insert after"
+"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 le etichette ID3 e i nomi dei file siano nella stessa "
+"codifica specificata qui. Si può cambiare per i successivi «Aggiungi file» e "
+"«Aggiungi directory». «Codifica di sistema» è la codifica usata dalla "
+"localizzazione attuale."
 
-#: gtkpod.glade:18358
-#, fuzzy
-msgid "Repository type:"
-msgstr "Opzioni di ordinamento"
+#: ../data/gtkpod.glade.h:428
+msgid "gtkpod options"
+msgstr "Opzioni di gtkpod"
 
-#: gtkpod.glade:18386
+#. These are the items for the 'Repository type' combo in the 'Create Repository' dialog. Keep the three items in order!
+#: ../data/gtkpod.glade.h:430
 msgid ""
 "iPod\n"
 "Local Repository (Standard)\n"
 "Local Repository (Podcasts)\n"
 msgstr ""
+"iPod\n"
+"Archivio locale (standard)\n"
+"Archivio locale (podcast)\n"
 
-#: gtkpod.glade:18407
-#, fuzzy
-msgid "Repository name:"
-msgstr "Opzioni di ordinamento"
+#: ../data/gtkpod.glade.h:434
+msgid "iPod mountpoint:"
+msgstr "Punto di montaggio dell'iPod:"
 
-#: gtkpod.glade:18543 gtkpod.glade:18806
-msgid "Initialize iPod"
-msgstr ""
+#: ../data/gtkpod.glade.h:435
+msgid "iTunesDB backup:"
+msgstr "Copia di iTunesDB:"
 
-#: gtkpod.glade:18613
-msgid "<b>Please select mountpoint and your iPod model</b>"
-msgstr ""
+#: ../data/gtkpod.glade.h:436
+msgid "label"
+msgstr "label"
 
-#: src/charset.c:53
+#: ../data/gtkpod.glade.h:437
+msgid "mserv Root:"
+msgstr "Radice di mserv:"
+
+#: ../data/gtkpod.glade.h:438
+msgid "mserv database lookup will be done for music in this directory."
+msgstr "Verrà consultato il database mserv per la musica in questa directory."
+
+#: ../data/gtkpod.glade.h:439 ../src/details.c:1175
+msgid "n/a"
+msgstr "n.d."
+
+#: ../data/gtkpod.glade.h:440
+msgid "special_sorttab -- Don't translate!"
+msgstr "special_sorttab -- Don't translate!"
+
+#: ../src/charset.c:53
 msgid "Arabic (IBM-864)"
 msgstr "Arabo (IBM-864)"
 
-#: src/charset.c:54
+#: ../src/charset.c:54
 msgid "Arabic (ISO-8859-6)"
 msgstr "Arabo (ISO-8859-6)"
 
-#: src/charset.c:55
+#: ../src/charset.c:55
 msgid "Arabic (Windows-1256)"
 msgstr "Arabo (Windows-1256)"
 
-#: src/charset.c:56
+#: ../src/charset.c:56
 msgid "Baltic (ISO-8859-13)"
 msgstr "Baltico (ISO-8859-13)"
 
-#: src/charset.c:57
+#: ../src/charset.c:57
 msgid "Baltic (ISO-8859-4)"
 msgstr "Baltico (ISO-8859-4)"
 
-#: src/charset.c:58
+#: ../src/charset.c:58
 msgid "Baltic (Windows-1257)"
 msgstr "Baltico (Windows-1257)"
 
-#: src/charset.c:59
+#: ../src/charset.c:59
 msgid "Celtic (ISO-8859-14)"
 msgstr "Celtico (ISO-8859-14)"
 
-#: src/charset.c:60
+#: ../src/charset.c:60
 msgid "Central European (IBM-852)"
-msgstr "Europa Centrale (IBM-852)"
+msgstr "Europa centrale (IBM-852)"
 
-#: src/charset.c:61
+#: ../src/charset.c:61
 msgid "Central European (ISO-8859-2)"
-msgstr "Europa Centrale (ISO-8859-2)"
+msgstr "Europa centrale (ISO-8859-2)"
 
-#: src/charset.c:62
+#: ../src/charset.c:62
 msgid "Central European (Windows-1250)"
-msgstr "Europa Centrale (Windows-1250)"
+msgstr "Europa centrale (Windows-1250)"
 
-#: src/charset.c:63
+#: ../src/charset.c:63
 msgid "Chinese Simplified (GB18030)"
-msgstr "Cinese Semplificato (GB18030)"
+msgstr "Cinese semplificato (GB18030)"
 
-#: src/charset.c:64
+#: ../src/charset.c:64
 msgid "Chinese Simplified (GB2312)"
-msgstr "Cinese Semplificato (GB2312)"
+msgstr "Cinese semplificato (GB2312)"
 
-#: src/charset.c:65
+#: ../src/charset.c:65
 msgid "Chinese Traditional (Big5)"
-msgstr "Cinese Tradizionale (Big5)"
+msgstr "Cinese tradizionale (Big5)"
 
-#: src/charset.c:66
+#: ../src/charset.c:66
 msgid "Chinese Traditional (Big5-HKSCS)"
-msgstr "Cinese Tradizionale (Big5-HKSCS)"
+msgstr "Cinese tradizionale (Big5-HKSCS)"
 
-#: src/charset.c:67
+#: ../src/charset.c:67
 msgid "Cyrillic (IBM-855)"
 msgstr "Cirillico (IBM-855)"
 
-#: src/charset.c:68
+#: ../src/charset.c:68
 msgid "Cyrillic (ISO-8859-5)"
 msgstr "Cirillico (ISO-8859-5)"
 
-#: src/charset.c:69
+#: ../src/charset.c:69
 msgid "Cyrillic (ISO-IR-111)"
 msgstr "Cirillico (ISO-IR-111)"
 
-#: src/charset.c:70
+#: ../src/charset.c:70
 msgid "Cyrillic (KOI8-R)"
 msgstr "Cirillico (KOI8-R)"
 
-#: src/charset.c:71
+#: ../src/charset.c:71
 msgid "Cyrillic (Windows-1251)"
 msgstr "Cirillico (Windows-1251)"
 
-#: src/charset.c:72
+#: ../src/charset.c:72
 msgid "Cyrillic/Russian (CP-866)"
 msgstr "Cirillico/Russo (CP-866)"
 
-#: src/charset.c:73
+#: ../src/charset.c:73
 msgid "Cyrillic/Ukrainian (KOI8-U)"
 msgstr "Cirillico/Ucraino (KOI8-U)"
 
-#: src/charset.c:74
+#: ../src/charset.c:74
 msgid "English (US-ASCII)"
 msgstr "Inglese (US-ASCII)"
 
-#: src/charset.c:75
+#: ../src/charset.c:75
 msgid "Greek (ISO-8859-7)"
 msgstr "Greco (ISO-8859-7)"
 
-#: src/charset.c:76
+#: ../src/charset.c:76
 msgid "Greek (Windows-1253)"
 msgstr "Greco (Windows-1253)"
 
-#: src/charset.c:77
+#: ../src/charset.c:77
 msgid "Hebrew (IBM-862)"
 msgstr "Ebraico (IBM-862)"
 
-#: src/charset.c:78
+#: ../src/charset.c:78
 msgid "Hebrew (Windows-1255)"
 msgstr "Ebraico (Windows-1255)"
 
-#: src/charset.c:79
+#: ../src/charset.c:79
 msgid "Japanese (automatic detection)"
 msgstr "Giapponese (automatico)"
 
-#: src/charset.c:80
+#: ../src/charset.c:80
 msgid "Japanese (EUC-JP)"
 msgstr "Giapponese (EUC-JP)"
 
-#: src/charset.c:81
+#: ../src/charset.c:81
 msgid "Japanese (ISO-2022-JP)"
 msgstr "Giapponese (ISO-2022-JP)"
 
-#: src/charset.c:82
+#: ../src/charset.c:82
 msgid "Japanese (Shift_JIS)"
 msgstr "Giapponese (Shift_JIS)"
 
-#: src/charset.c:83
+#: ../src/charset.c:83
 msgid "Korean (EUC-KR)"
 msgstr "Coreano (EUC-KR)"
 
-#: src/charset.c:84
+#: ../src/charset.c:84
 msgid "Nordic (ISO-8859-10)"
 msgstr "Nordico (ISO-8859-10)"
 
-#: src/charset.c:85
+#: ../src/charset.c:85
 msgid "South European (ISO-8859-3)"
 msgstr "Europa del sud (ISO-8859-3)"
 
-#: src/charset.c:86
+#: ../src/charset.c:86
 msgid "Thai (TIS-620)"
 msgstr "Thai (TIS-620)"
 
-#: src/charset.c:87
+#: ../src/charset.c:87
 msgid "Turkish (IBM-857)"
 msgstr "Turco (IBM-857)"
 
-#: src/charset.c:88
+#: ../src/charset.c:88
 msgid "Turkish (ISO-8859-9)"
 msgstr "Turco (ISO-8859-9)"
 
-#: src/charset.c:89
+#: ../src/charset.c:89
 msgid "Turkish (Windows-1254)"
 msgstr "Turco (Windows-1254)"
 
-#: src/charset.c:90
+#: ../src/charset.c:90
 msgid "Unicode (UTF-7)"
 msgstr "Unicode (UTF-7)"
 
-#: src/charset.c:91
+#: ../src/charset.c:91
 msgid "Unicode (UTF-8)"
 msgstr "Unicode (UTF-8)"
 
-#: src/charset.c:92
+#: ../src/charset.c:92
 msgid "Unicode (UTF-16BE)"
 msgstr "Unicode (UTF-16BE)"
 
-#: src/charset.c:93
+#: ../src/charset.c:93
 msgid "Unicode (UTF-16LE)"
 msgstr "Unicode (UTF-16LE)"
 
-#: src/charset.c:94
+#: ../src/charset.c:94
 msgid "Unicode (UTF-32BE)"
 msgstr "Unicode (UTF-32BE)"
 
-#: src/charset.c:95
+#: ../src/charset.c:95
 msgid "Unicode (UTF-32LE)"
 msgstr "Unicode (UTF-32LE)"
 
-#: src/charset.c:96
+#: ../src/charset.c:96
 msgid "Vietnamese (VISCII)"
 msgstr "Vietnamita (VISCII)"
 
-#: src/charset.c:97
+#: ../src/charset.c:97
 msgid "Vietnamese (Windows-1258)"
 msgstr "Vietnamita (Windows-1258)"
 
-#: src/charset.c:98
+#: ../src/charset.c:98
 msgid "Visual Hebrew (ISO-8859-8)"
 msgstr "Ebraico visuale (ISO-8859-8)"
 
-#: src/charset.c:99
+#: ../src/charset.c:99
 msgid "Western (IBM-850)"
-msgstr "Europa occidentale (IBM-850)"
+msgstr "Occidentale (IBM-850)"
 
-#: src/charset.c:100
+#: ../src/charset.c:100
 msgid "Western (ISO-8859-1)"
-msgstr "Europa occidentale (ISO-8859-1)"
+msgstr "Occidentale (ISO-8859-1)"
 
-#: src/charset.c:101
+#: ../src/charset.c:101
 msgid "Western (ISO-8859-15)"
-msgstr "Europa occidentale (ISO-8859-15)"
+msgstr "Occidentale (ISO-8859-15)"
 
-#: src/charset.c:102
+#: ../src/charset.c:102
 msgid "Western (Windows-1252)"
-msgstr "Europa occidentale (Windows-1252)"
+msgstr "Occidentale (Windows-1252)"
 
 #. sanity!
 #. check for "System Charset" and return NULL
-#: src/charset.c:160 src/charset.c:170 src/charset.c:223
+#: ../src/charset.c:160 ../src/charset.c:170 ../src/charset.c:223
 msgid "System Charset"
 msgstr "Codifica di sistema"
 
 #. we are not the first instance of gtkpod -- the socket is
 #. already being used, so we pass
-#: src/clientserver.c:215
+#: ../src/clientserver.c:214
 msgid ""
 "Another instance of gtkpod was detected. Playcount server not started.\n"
 msgstr ""
-"E' stata rilevata un'altra istanza di gtkpod. Il server dei conta-"
-"riproduzioni non è partito.\n"
+"È stata rilevata un'altra istanza di gtkpod. Server conta riproduzioni non "
+"avviato.\n"
 
-#: src/confirmation.c:376
+#: ../src/confirmation.c:377
 msgid "Confirmation Dialogue"
-msgstr "Finestra di conferma"
+msgstr "Finestra di dialogo di conferma"
 
-#: src/context_menus.c:367 src/tools.c:852
+#: ../src/context_menus.c:359
+#, c-format
+msgid "Copied \"%s\" playlist to %s"
+msgstr "Playlist «%s» copiata in %s"
+
+#: ../src/context_menus.c:398
+#, c-format
+msgid "Copied %d track to '%s'"
+msgid_plural "Copied %d tracks to '%s'"
+msgstr[0] "Copiata %d traccia in «%s»"
+msgstr[1] "Copiate %d tracce in «%s»"
+
+#: ../src/context_menus.c:426
+#, c-format
+msgid "Copied '%s' playlist to '%s' in '%s'"
+msgstr "Playlist «%s» copiata su «%s» in «%s»"
+
+#: ../src/context_menus.c:459
+#, c-format
+msgid "Copied %d track to '%s' in '%s'"
+msgid_plural "Copied %d tracks to %s in '%s'"
+msgstr[0] "Copiata %d traccia su «%s» in «%s»"
+msgstr[1] "Copiate %d tracce su «%s» in «%s»"
+
+#: ../src/context_menus.c:619 ../src/tools.c:854
 msgid "Play Now"
-msgstr "Suona"
+msgstr "Riproduci ora"
 
-#: src/context_menus.c:373 src/tools.c:865
+#: ../src/context_menus.c:625 ../src/tools.c:867
 msgid "Enqueue"
 msgstr "Metti in coda"
 
-#: src/context_menus.c:379
-#, fuzzy
+#: ../src/context_menus.c:631
 msgid "Copy Tracks to Filesystem"
-msgstr "_Aggiorna le tracce dai file"
+msgstr "Copia le tracce sul filesystem"
 
-#: src/context_menus.c:386 src/file_export.c:1081
+#: ../src/context_menus.c:638 ../src/file_export.c:1085
 msgid "Create Playlist File"
-msgstr "Crea un File Playlist"
+msgstr "Crea un file di playlist"
 
-#: src/context_menus.c:393
+#: ../src/context_menus.c:645
 msgid "Create new Playlist"
-msgstr "Crea una nuova Playlist"
+msgstr "Crea una nuova playlist"
 
-#: src/context_menus.c:400
-#, fuzzy
+#: ../src/context_menus.c:652
 msgid "Update Tracks from File"
-msgstr "_Aggiorna le tracce dai file"
+msgstr "Aggiorna tracce da file"
 
-#: src/context_menus.c:414
+#: ../src/context_menus.c:666
 msgid "Sync Playlist with Dir(s)"
-msgstr ""
+msgstr "Sincronizza la playlist con le directory"
 
-#: src/context_menus.c:424
+#: ../src/context_menus.c:676
 msgid "Remove All Tracks from iPod"
-msgstr "Rimuovi tutte le Tracce dall'iPod"
+msgstr "Rimuovi tutte le tracce dall'iPod"
 
-#: src/context_menus.c:442
-#, fuzzy
+#: ../src/context_menus.c:694
 msgid "Remove All Podcasts from iPod"
-msgstr "Rimuovi tutte le Tracce dall'iPod"
+msgstr "Rimuovi tutti i podcast dall'iPod"
 
-#: src/context_menus.c:457
+#: ../src/context_menus.c:709
 msgid "Delete Including Tracks"
-msgstr "Cancella le tracce incluse"
+msgstr "Elimina anche le tracce"
 
-#: src/context_menus.c:465
+#: ../src/context_menus.c:717
 msgid "Delete But Keep Tracks"
-msgstr "Cancella ma preserva le tracce"
+msgstr "Elimina, ma preserva le tracce"
 
-#: src/context_menus.c:473
-#, fuzzy
+#: ../src/context_menus.c:725
 msgid "Edit iPod Properties"
-msgstr "Crea le directory dell'iPod"
+msgstr "Modifica le proprietà dell'iPod"
 
-#: src/context_menus.c:493
-#, fuzzy
+#: ../src/context_menus.c:732
+msgid "Edit Repository Properties"
+msgstr "Modifica le proprietà dell'archivio"
+
+#: ../src/context_menus.c:739
+msgid "Edit Playlist Properties"
+msgstr "Modifica le proprietà della playlist"
+
+#: ../src/context_menus.c:767
+msgid "View Full Size Artwork"
+msgstr "Mostra l'artwork a piena grandezza"
+
+#: ../src/context_menus.c:774
+msgid "Select Cover From File"
+msgstr "Seleziona copertina da file"
+
+#: ../src/context_menus.c:781
+msgid "Find Cover on Web"
+msgstr "Trova la copertina sul web"
+
+#: ../src/context_menus.c:794
 msgid "Load iPod"
-msgstr "_iPod"
+msgstr "Carica l'iPod"
 
-#: src/context_menus.c:500
+#: ../src/context_menus.c:801
 msgid "Eject iPod"
-msgstr ""
+msgstr "Espelli l'iPod"
 
-#: src/context_menus.c:517
+#: ../src/context_menus.c:818
 msgid "Remove All Tracks from Database"
-msgstr "Rimuovi tutte le tracce dal Database"
+msgstr "Rimuovi tutte le tracce dal database"
 
-#: src/context_menus.c:532
+#: ../src/context_menus.c:833
 msgid "Delete Including Tracks (Harddisk)"
-msgstr "Cancella le tracce incluse (disco fisso)"
+msgstr "Elimina anche le tracce (disco fisso)"
 
-#: src/context_menus.c:540
+#: ../src/context_menus.c:841
 msgid "Delete Including Tracks (Database)"
-msgstr "Cancella le tracce incluse (Database)"
+msgstr "Elimina anche le tracce (database)"
 
-#: src/context_menus.c:548
+#: ../src/context_menus.c:849
 msgid "Delete From iPod"
-msgstr "Cancella dall'iPod"
+msgstr "Elimina dall'iPod"
 
-#: src/context_menus.c:556
+#: ../src/context_menus.c:857
 msgid "Delete From Playlist"
-msgstr "Cancella dalla Playlist"
+msgstr "Elimina dalla playlist"
 
-#: src/context_menus.c:564
+#: ../src/context_menus.c:865
 msgid "Delete From Harddisk"
-msgstr "Cancella dal disco fisso"
+msgstr "Elimina dal disco fisso"
 
-#: src/context_menus.c:572
+#: ../src/context_menus.c:873
 msgid "Delete From Database"
-msgstr "Cancella dal database"
+msgstr "Elimina dal database"
 
-#: src/context_menus.c:580
+#: ../src/context_menus.c:881
 msgid "Alphabetize"
 msgstr "Ordine alfabetico"
 
-#: src/context_menus.c:596
-#, fuzzy
-msgid "Edit Playlist Properties"
-msgstr "Aggiungi playlist dal file"
+#: ../src/context_menus.c:949 ../src/context_menus.c:998
+msgid "Copy selected playlist to..."
+msgstr "Copia la playlist selezionata su..."
 
-#: src/date_parser.l:269
+#: ../src/context_menus.c:1051
+msgid "Copy selected track(s) to..."
+msgstr "Copia le tracce selezionate su..."
+
+#: ../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"
+msgstr "Errore nel formato della data: carattere sconosciuto: «%s»\n"
 
-#: src/details.c:1182
-#, fuzzy
+#: ../src/details.c:700
+#, c-format
+msgid "%s (image data corrupted or unreadable)"
+msgstr "%s (dati dell'immagine corrotti o non leggibili)"
+
+#: ../src/details.c:1246
 msgid "<b>n/a</b>"
-msgstr "<b>Riproduzione</b>"
+msgstr "<b>n/d</b>"
 
-#: src/display.c:891
-#, fuzzy
+#: ../src/display.c:647
 msgid "Edit selected entry of which sort tab?"
-msgstr "Aggiornare la voce selezionata di quale blocco di ordinamento?"
+msgstr "Modificare la voce selezionata di quale scheda di ordinamento?"
 
 #. no entry selected
-#: src/display.c:898 src/misc_confirm.c:431 src/misc_track.c:1613
+#: ../src/display.c:654 ../src/misc_confirm.c:435 ../src/misc_track.c:2059
 msgid "No entry selected."
 msgstr "Nessuna voce selezionata."
 
-#: src/display.c:1057 src/display.c:1384 src/display.c:1440 src/display.c:1494
-#: src/display.c:1549 src/display.c:1810
+#: ../src/display.c:813 ../src/display.c:1133 ../src/display.c:1189
+#: ../src/display.c:1243 ../src/display.c:1298 ../src/display.c:1559
 #, c-format
 msgid "No entry selected in Sort Tab %d"
-msgstr "Nessuna voce selezionata nel blocco di ordinamento %d"
+msgstr "Nessuna voce selezionata nella scheda di ordinamento %d"
 
-#: src/display.c:1096
-#, fuzzy
+#: ../src/display.c:852
 msgid "Remove entry of which sort tab from database?"
-msgstr "Esportare la voce selezionata di quale blocco di ordinamento?"
+msgstr "Rimuovere dal database la voce di quale scheda di ordinamento?"
 
-#: src/display.c:1104
-#, fuzzy
+#: ../src/display.c:860
 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?"
+"Rimuovere dall'iPod le tracce nella voce selezionata di quale scheda di "
+"filtro?"
 
-#: src/display.c:1126
-#, fuzzy
+#: ../src/display.c:882
 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?"
+"Rimuovere dal disco fisso le tracce nella voce selezionata di quale scheda "
+"di filtro?"
 
-#: src/display.c:1156
-#, fuzzy
+#: ../src/display.c:912
 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?"
+"Rimuovere dalla playlist le tracce nella voce selezionata di quale scheda di "
+"filtro?"
 
-#: src/display.c:1183 src/display.c:1221
+#: ../src/display.c:939 ../src/display.c:977
 #, c-format
 msgid ""
 "iPod at '%s' is not loaded.\n"
 "Please load it first."
 msgstr ""
+"L'iPod in «%s» non è caricato.\n"
+"Prima è necessario caricarlo."
 
-#: src/display.c:1265 src/display.c:1292
+#: ../src/display.c:1014 ../src/display.c:1041
 msgid "Update selected entry of which sort tab?"
-msgstr "Aggiornare la voce selezionata di quale blocco di ordinamento?"
+msgstr "Aggiornare la voce selezionata di quale scheda di ordinamento?"
 
-#: src/display.c:1378
+#: ../src/display.c:1127
 msgid "Export selected entry of which sort tab?"
-msgstr "Esportare la voce selezionata di quale blocco di ordinamento?"
+msgstr "Esportare la voce selezionata di quale scheda di ordinamento?"
 
-#: src/display.c:1434
+#: ../src/display.c:1183
 msgid "Create playlist file from selected entry of which sort tab?"
 msgstr ""
-"Creare la playlist dalle voci selezionate di quale blocco di ordinamento?"
+"Creare la playlist dalle voci selezionate di quale scheda di ordinamento?"
 
-#: src/display.c:1488
+#: ../src/display.c:1237
 msgid "Play tracks in selected entry of which sort tab?"
 msgstr ""
-"Riproduci le tracce nella voce selezionata di quale blocco di ordinamento?"
+"Riprodurre le tracce nella voce selezionata di quale scheda di ordinamento?"
 
-#: src/display.c:1543
+#: ../src/display.c:1292
 msgid "Enqueue tracks in selected entry of which sort tab?"
 msgstr ""
-"Metti in coda le tracce nella voce selezionata di quale blocco di "
+"Mettere in coda le tracce nella voce selezionata di quale scheda di "
 "ordinamento?"
 
-#: src/display.c:1800
+#: ../src/display.c:1549
 msgid "Normalize tracks in selected entry of which sort tab?"
 msgstr ""
-"Normalizza le tracce nella voce selezionata di quale blocco di ordinamento?"
+"Normalizzare le tracce nella voce selezionata di quale scheda di ordinamento?"
 
-#: src/display_itdb.c:355
-#, fuzzy, c-format
+#: ../src/display_coverart.c:1714
+msgid "Failed to remove the album from the album hash store."
+msgstr ""
+
+#: ../src/display_itdb.c:376
+#, c-format
 msgid "Failed to set cover art: '%s'\n"
-msgstr "Impossibile scrivere %s-%s\n"
+msgstr "Impossibile impostare la copertina: «%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
+#: ../src/display_itdb.c:851 ../src/display_itdb.c:984
 msgid "Local"
 msgstr "Locale"
 
 #. add podcast playlist
-#: src/display_itdb.c:852 src/display_itdb.c:963 src/display_itdb.c:991
+#: ../src/display_itdb.c:859 ../src/display_itdb.c:982
+#: ../src/display_itdb.c:1010
 msgid "Podcasts"
-msgstr ""
+msgstr "Podcast"
 
-#: src/display_itdb.c:1050
+#: ../src/display_itdb.c:868 ../src/display_itdb.c:986
+#: ../src/repository.c:1186
+msgid "iPod"
+msgstr "iPod"
+
+#: ../src/display_itdb.c:1069
 #, c-format
 msgid "Increased playcount for '%s'"
-msgstr "Aumentati i conta-riproduzione per '%s'"
+msgstr "Incrementato 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:496 src/display_playlists.c:538
+#: ../src/display_playlists.c:500 ../src/display_playlists.c:542
 msgid "Error: drag from iPod not possible in offline mode."
-msgstr "Errore: il 'drag' dal iPod non è possibile in modalit offline"
+msgstr ""
+"Errore: il trascinamento dall'iPod non è possibile in modalità non in linea."
 
-#: src/display_playlists.c:565 src/display_songs.c:287
+#: ../src/display_playlists.c:569 ../src/display_tracks.c:286
 #, 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:851
+#: ../src/display_playlists.c:849 ../src/display_playlists.c:861
 msgid "Can't reorder sorted treeview."
 msgstr "Impossibile riordinare la vista ad albero ordinata."
 
-#: src/display_playlists.c:944
+#: ../src/display_playlists.c:938
 #, c-format
 msgid ""
 "This DND type (%d) is not (yet) supported. If you feel implementing this "
@@ -2345,454 +2551,493 @@
 "Questo tipo DND (%d) non è (ancora) supportato. Se pensi che possa essere "
 "utile implementarlo, contatta l'autore.\n"
 
-# c-format
-#: 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: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 ""
-"È Impossibile invertire l'ordinamento delle tracce per un bug delle GTK lib "
-"in uso(%d.%d.%d < 2.5.4). Una volta che avrai ordinato la visualizzazione "
-"delle tracce,non sarà possibile tornare allo stato 'non ordinato'.\n"
-"\n"
-
-#: src/display_songs.c:1923
-#, fuzzy
-msgid "Rtng"
-msgstr "Voto"
-
-#: 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 "Trasferito"
-
-#: src/display_songs.c:1939
-msgid "Cmpl"
-msgstr "Comp."
-
-#: src/display_songs.c:1945 src/display_spl.c:94
-msgid "Time"
-msgstr "Durata"
-
-#: src/display_songs.c:1948
-msgid "Plycnt"
-msgstr "Conta riproduzioni"
-
-#: src/display_songs.c:1960
-#, fuzzy
-msgid "Released"
-msgstr "Leggi"
-
-#: 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:1966
-msgid "Vol."
-msgstr "Vol."
-
-#: src/display_songs.c:1969
-msgid "Sndchk."
-msgstr "Sndchk"
-
-#: src/display_sorttabs.c:456
+#: ../src/display_sorttabs.c:473
 msgid "'Played' condition ignored because of error."
-msgstr "La condizione 'Suonato' è stata ignorata a causa di un errore"
+msgstr "Condizione «Riprodotto» ignorata a causa di un errore."
 
-#: src/display_sorttabs.c:459
+#: ../src/display_sorttabs.c:476
 msgid "'Modified' condition ignored because of error."
-msgstr "Condizione 'Modificato' ignorata a causa di un errore."
+msgstr "Condizione «Modificato» ignorata a causa di un errore."
 
-#: src/display_sorttabs.c:462
+#: ../src/display_sorttabs.c:479
 msgid "'Added' condition ignored because of error."
-msgstr "Condizione 'Aggiunta' ignorata a causa di un errore."
+msgstr "Condizione «Aggiunta» ignorata a causa di un errore."
 
-#: src/display_sorttabs.c:1582 src/misc_conversion.c:60
+#: ../src/display_sorttabs.c:1563 ../src/misc_conversion.c:59
 msgid "All"
 msgstr "Tutti"
 
-#: src/display_sorttabs.c:1608
-#, fuzzy
+#: ../src/display_sorttabs.c:1589
 msgid "Compilations"
 msgstr "Compilation"
 
-#: src/display_sorttabs.c:2951
+#: ../src/display_sorttabs.c:2960
 msgid "Comp."
 msgstr "Comp."
 
-#: src/display_sorttabs.c:2960
+#: ../src/display_sorttabs.c:2966 ../src/display_spl.c:88
+#: ../src/display_tracks.c:2002 ../src/misc_conversion.c:84
+msgid "Year"
+msgstr "Anno"
+
+#: ../src/display_sorttabs.c:2969
 msgid "Special"
 msgstr "Speciale"
 
-#: src/display_sorttabs.c:3216
+#: ../src/display_sorttabs.c:3230
 msgid "Last Played"
-msgstr "Suonato"
+msgstr "Ultimo ascolto"
 
-#: src/display_sorttabs.c:3217
+#: ../src/display_sorttabs.c:3231
 msgid "Last Modified"
-msgstr "Modificato"
+msgstr "Ultima modifica"
 
-#: src/display_spl.c:64
+#: ../src/display_spl.c:64
 msgid "days"
 msgstr "giorni"
 
-#: src/display_spl.c:65
+#: ../src/display_spl.c:65
 msgid "weeks"
 msgstr "settimane"
 
-#: src/display_spl.c:66
+#: ../src/display_spl.c:66
 msgid "months"
 msgstr "mesi"
 
-#: src/display_spl.c:73
+#: ../src/display_spl.c:73
 msgid "kbps"
 msgstr "kbps"
 
-#: src/display_spl.c:74
+#: ../src/display_spl.c:74
 msgid "Hz"
 msgstr "Hz"
 
-#: src/display_spl.c:75 src/display_spl.c:160 src/info.c:777
+#: ../src/display_spl.c:75 ../src/display_spl.c:179 ../src/info.c:777
 msgid "MB"
 msgstr "MB"
 
-#: src/display_spl.c:76
+#: ../src/display_spl.c:76
 msgid "secs"
 msgstr "sec"
 
-#: src/display_spl.c:86 src/misc_conversion.c:75
+#: ../src/display_spl.c:86 ../src/misc_conversion.c:74
 msgid "Bitrate"
 msgstr "Bitrate"
 
 #. 15
-#: src/display_spl.c:87 src/misc_conversion.c:76
+#: ../src/display_spl.c:87 ../src/misc_conversion.c:75
 msgid "Samplerate"
 msgstr "Frequenza di campionamento"
 
-#: src/display_spl.c:90
+#: ../src/display_spl.c:90
 msgid "Kind"
-msgstr "Genere"
+msgstr "Tipo"
 
-#: src/display_spl.c:91 src/misc_conversion.c:82
+#: ../src/display_spl.c:91 ../src/misc_conversion.c:81
 msgid "Date modified"
 msgstr "Modificato il"
 
-#: src/display_spl.c:92
+#: ../src/display_spl.c:92
 msgid "Track number"
 msgstr "Numero della traccia"
 
-#: src/display_spl.c:93
+#: ../src/display_spl.c:93
 msgid "Size"
 msgstr "Dimensione"
 
-#: src/display_spl.c:95 src/misc_conversion.c:65
+#: ../src/display_spl.c:94 ../src/display_tracks.c:1984
+msgid "Time"
+msgstr "Durata"
+
+#: ../src/display_spl.c:95 ../src/misc_conversion.c:64
 msgid "Comment"
 msgstr "Commento"
 
-#: src/display_spl.c:96 src/misc_conversion.c:80
+#: ../src/display_spl.c:96 ../src/misc_conversion.c:79
 msgid "Date added"
 msgstr "Data di aggiunta"
 
-#: src/display_spl.c:99
+#: ../src/display_spl.c:99
 msgid "Last played"
-msgstr "Ultimo Ascolto"
+msgstr "Ultimo ascolto"
 
-#: src/display_spl.c:100
+#: ../src/display_spl.c:100
 msgid "Disc number"
 msgstr "Numero disco"
 
-#: src/display_spl.c:102 src/misc_conversion.c:88
+#: ../src/display_spl.c:102 ../src/misc_conversion.c:87
 msgid "Compilation"
 msgstr "Compilation"
 
-#: src/display_spl.c:103 src/misc_conversion.c:77
+#: ../src/display_spl.c:103 ../src/misc_conversion.c:76
 msgid "BPM"
 msgstr "BPM"
 
-#: src/display_spl.c:104 src/misc_conversion.c:87
+#: ../src/display_spl.c:104 ../src/misc_conversion.c:86
 msgid "Grouping"
-msgstr "Raggrupamento"
+msgstr "Raggruppamento"
 
-#: src/display_spl.c:111
+#: ../src/display_spl.c:106
+msgid "Video Kind"
+msgstr "Tipo di video"
+
+#: ../src/display_spl.c:107 ../src/display_spl.c:210 ../src/display_spl.c:219
+#: ../src/misc_conversion.c:101
+msgid "TV Show"
+msgstr "Programma TV"
+
+#: ../src/display_spl.c:108
+msgid "Season number"
+msgstr "Numero stagione"
+
+#: ../src/display_spl.c:109
+msgid "Skip count"
+msgstr "Conta salti"
+
+#: ../src/display_spl.c:110
+msgid "Last skipped"
+msgstr "Saltata l'ultima volta"
+
+#: ../src/display_spl.c:111
+msgid "Album artist"
+msgstr "Artista dell'album"
+
+#: ../src/display_spl.c:117
 msgid "contains"
 msgstr "contiene"
 
-#: src/display_spl.c:112
+#: ../src/display_spl.c:118
 msgid "does not contain"
 msgstr "non contiene"
 
-#: src/display_spl.c:113 src/display_spl.c:122 src/display_spl.c:132
-#: src/display_spl.c:151
+#: ../src/display_spl.c:119 ../src/display_spl.c:128 ../src/display_spl.c:138
+#: ../src/display_spl.c:157 ../src/display_spl.c:164
 msgid "is"
 msgstr "è"
 
-#: src/display_spl.c:114 src/display_spl.c:123 src/display_spl.c:133
-#: src/display_spl.c:152
+#: ../src/display_spl.c:120 ../src/display_spl.c:129 ../src/display_spl.c:139
+#: ../src/display_spl.c:158 ../src/display_spl.c:165
 msgid "is not"
 msgstr "non è"
 
-#: src/display_spl.c:115
+#: ../src/display_spl.c:121
 msgid "starts with"
 msgstr "comincia con"
 
-#: src/display_spl.c:116
+#: ../src/display_spl.c:122
 msgid "ends with"
 msgstr "finisce con"
 
-#: src/display_spl.c:124
+#: ../src/display_spl.c:130
 msgid "is greater than"
-msgstr "è più grande di"
+msgstr "è maggiore di"
 
-#: src/display_spl.c:125
+#: ../src/display_spl.c:131
 msgid "is less than"
-msgstr "è più piccolo di"
+msgstr "è minore di"
 
-#: src/display_spl.c:126 src/display_spl.c:138
+#: ../src/display_spl.c:132 ../src/display_spl.c:144
 msgid "is in the range"
 msgstr "è nell'intervallo"
 
-#: src/display_spl.c:134
+#: ../src/display_spl.c:140
 msgid "is after"
 msgstr "è dopo"
 
-#: src/display_spl.c:135
+#: ../src/display_spl.c:141
 msgid "is before"
 msgstr "è prima"
 
-#: src/display_spl.c:136
+#: ../src/display_spl.c:142
 msgid "in the last"
-msgstr "tra gli ultimi"
+msgstr "negli ultimi"
 
-#: src/display_spl.c:137
+#: ../src/display_spl.c:143
 msgid "not in the last"
-msgstr "non tra gli ultimi"
+msgstr "non negli ultimi"
 
-#: src/display_spl.c:144
+#: ../src/display_spl.c:150
 msgid "is set"
 msgstr "è impostato"
 
-#: src/display_spl.c:145
+#: ../src/display_spl.c:151
 msgid "is not set"
 msgstr "non è impostato"
 
-#: src/display_spl.c:159
+#: ../src/display_spl.c:171
+msgid "Not supported"
+msgstr "Non supportato"
+
+#: ../src/display_spl.c:178
 msgid "minutes"
 msgstr "minuti"
 
-#: src/display_spl.c:161
+#: ../src/display_spl.c:180
 msgid "tracks"
-msgstr "Tracce"
+msgstr "tracce"
 
-#: src/display_spl.c:162
+#: ../src/display_spl.c:181
 msgid "hours"
 msgstr "ore"
 
-#: src/display_spl.c:163 src/info.c:777
+#: ../src/display_spl.c:182 ../src/info.c:777
 msgid "GB"
 msgstr "GB"
 
-#: src/display_spl.c:170
+#: ../src/display_spl.c:189
 msgid "random order"
 msgstr "ordine casuale"
 
-#: src/display_spl.c:171
+#: ../src/display_spl.c:190
 msgid "title"
 msgstr "titolo"
 
-#: src/display_spl.c:172
+#: ../src/display_spl.c:191
 msgid "album"
 msgstr "album"
 
-#: src/display_spl.c:173
+#: ../src/display_spl.c:192
 msgid "artist"
 msgstr "artista"
 
-#: src/display_spl.c:174
+#: ../src/display_spl.c:193
 msgid "genre"
 msgstr "genere"
 
-#: src/display_spl.c:175
+#: ../src/display_spl.c:194
 msgid "most recently added"
-msgstr "tracce aggiunte più recentemente"
+msgstr "aggiunto più di recente"
 
-#: src/display_spl.c:176
+#: ../src/display_spl.c:195
 msgid "least recently added"
-msgstr "aggiunte meno di recente"
+msgstr "aggiunto meno di recente"
 
-#: src/display_spl.c:177
+#: ../src/display_spl.c:196
 msgid "most often played"
-msgstr "suonato più spesso"
+msgstr "ascoltato più spesso"
 
-#: src/display_spl.c:178
+#: ../src/display_spl.c:197
 msgid "least often played"
-msgstr "suonato meno spesso"
+msgstr "ascoltato meno spesso"
 
-#: src/display_spl.c:179
+#: ../src/display_spl.c:198
 msgid "most recently played"
-msgstr "riprodotte più spesso"
+msgstr "ascoltato più di recente"
 
-#: src/display_spl.c:180
+#: ../src/display_spl.c:199
 msgid "least recently played"
-msgstr "riprodotte meno di recente"
+msgstr "ascoltato meno di recente"
 
-#: src/display_spl.c:181
+#: ../src/display_spl.c:200
 msgid "highest rating"
 msgstr "voto migliore"
 
-#: src/display_spl.c:182
+#: ../src/display_spl.c:201
 msgid "lowest rating"
 msgstr "voto peggiore"
 
-#: src/display_spl.c:1047 src/display_spl.c:1062
+#: ../src/display_spl.c:208 ../src/display_spl.c:217
+msgid "Movie"
+msgstr "Film"
+
+#: ../src/display_spl.c:209 ../src/display_spl.c:218
+msgid "Music Video"
+msgstr "Video musicale"
+
+#: ../src/display_spl.c:1162 ../src/display_spl.c:1177
 msgid "to"
 msgstr "a"
 
-#: src/display_spl.c:1279
+#: ../src/display_spl.c:1455
 msgid "-"
 msgstr "-"
 
-#: src/display_spl.c:1294
+#: ../src/display_spl.c:1470
 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
+#: ../src/display_spl.c:1689 ../src/misc_playlist.c:66
+#: ../src/misc_playlist.c:68 ../src/misc_playlist.c:93
+#: ../src/misc_playlist.c:95 ../src/misc_playlist.c:428
+#: ../src/misc_playlist.c:430
 msgid "New Playlist"
-msgstr "Nuova Playlist"
+msgstr "Nuova playlist"
 
-#: src/file.c:230
+# c-format
+#: ../src/display_tracks.c:281
 #, c-format
+msgid "Moved one track"
+msgid_plural "Moved %d tracks"
+msgstr[0] "Spostata una traccia"
+msgstr[1] "Spostate %d tracce"
+
+#: ../src/display_tracks.c:1717
+#, 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 ""
+"È impossibile annullare l'ordinamento delle tracce per un bug delle librerie "
+"GTK in uso(%d.%d.%d < 2.5.4). Una volta che avrai ordinato la "
+"visualizzazione delle tracce, non sarà possibile tornare allo stato «non "
+"ordinato».\n"
+"\n"
+
+#: ../src/display_tracks.c:1962
+msgid "Rtng"
+msgstr "Voto"
+
+#: ../src/display_tracks.c:1965
+msgid "#"
+msgstr "N°"
+
+#: ../src/display_tracks.c:1968
+msgid "CD"
+msgstr "CD"
+
+#: ../src/display_tracks.c:1971
+msgid "ID"
+msgstr "ID"
+
+#: ../src/display_tracks.c:1974
+msgid "Trnsfrd"
+msgstr "Trasferito"
+
+#: ../src/display_tracks.c:1978
+msgid "Cmpl"
+msgstr "Cmpl"
+
+#: ../src/display_tracks.c:1987
+msgid "Plycnt"
+msgstr "Conta rip."
+
+#: ../src/display_tracks.c:1999
+msgid "Released"
+msgstr "Pubblicato"
+
+#: ../src/display_tracks.c:2005
+msgid "Vol."
+msgstr "Vol."
+
+# L'interfaccia italiana usa "Verifica livello"
+#: ../src/display_tracks.c:2008
+msgid "Sndchk."
+msgstr "Verifica livello"
+
+#: ../src/file.c:236
+#, c-format
+msgid ""
 "'%s' is a directory, not a playlist file.\n"
 "\n"
-msgstr "'%s' è una directory. non un file playlist.\n"
+msgstr ""
+"«%s» è una directory. non un file di playlist.\n"
+"\n"
 
-#: src/file.c:258
+#: ../src/file.c:266
 #, c-format
 msgid ""
 "'%s' is a not a known playlist file.\n"
 "\n"
 msgstr ""
-"'%s' non sembra essere un file playlist conosciuto.\n"
+"«%s» non è un file di playlist conosciuto.\n"
 "\n"
 
-#: src/file.c:275
+#: ../src/file.c:283
 #, c-format
 msgid ""
 "Cannot open '%s' for reading.\n"
 "\n"
 msgstr ""
-"Impossibile aprire il file '%s' in lettura.\n"
+"Impossibile aprire il file «%s» in lettura.\n"
 "\n"
 
-#: src/file.c:359
+#: ../src/file.c:369
 #, c-format
 msgid "Skipping '%s' because it is a directory.\n"
-msgstr "Salto '%s' perchè è una directory.\n"
+msgstr "Salto «%s» perché è una directory.\n"
 
-#: src/file.c:364
+#: ../src/file.c:374
 #, c-format
 msgid "Skipping '%s' to avoid adding playlist file recursively\n"
-msgstr ""
-"Salto '%s' per evitare di aggiungere file delle playlist ricorsivamente\n"
+msgstr "Salto «%s» per evitare di aggiungere file di playlist ricorsivamente\n"
 
-#: src/file.c:619
+#: ../src/file.c:629
 #, c-format
 msgid "Unknown token '%s' in template '%s'\n"
-msgstr "Token '%s' sconosciuto nel formato '%s'\n"
+msgstr "Segnaposto «%s» sconosciuto nel modello «%s»\n"
 
-#: src/file.c:871
+#: ../src/file.c:890
 #, c-format
 msgid "Local filename not valid (%s)"
 msgstr "Nome del file locale non valido (%s)"
 
-#: src/file.c:930
+#: ../src/file.c:949
 #, c-format
 msgid "No information found for user '%s' in '%s'"
-msgstr "Nessuna informazioni sull'utente '%s' in '%s'"
+msgstr "Nessuna informazione trovata per l'utente «%s» in «%s»"
 
-#: src/file.c:939
+#: ../src/file.c:958
 #, c-format
 msgid "mserv data file (%s) not available for track (%s)"
-msgstr "il file dei dati mserv (%s) non è disponibileper la traccia (%s)"
+msgstr "Il file dei dati mserv (%s) non è disponibile per la traccia (%s)"
 
-#: src/file.c:947
+#: ../src/file.c:966
 #, c-format
 msgid "Track (%s) not in mserv music root directory (%s)"
-msgstr "La traccia (%s) è non nella directory radice musicale di mserv (%s)"
+msgstr "La traccia (%s) non è nella directory radice musicale di mserv (%s)"
 
-#: src/file.c:1055
+#: ../src/file.c:1090
 #, 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"
+"La traccia seguente non può essere elaborata (il file non esiste): «%s»\n"
 
-#: src/file.c:1118
+#: ../src/file.c:1169
 #, 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"
+"La traccia seguente non può essere elaborata (tipo di file sconosciuto): «%"
+"s»\n"
 
-#: src/file.c:1211
+#: ../src/file.c:1262
 #, c-format
 msgid ""
 "The following track could not be processed (filetype is known but analysis "
 "failed): '%s'\n"
 msgstr ""
 "La traccia seguente non può essere elaborata (tipo di file conosciuto ma "
-"l'analisi è fallita): '%s'\n"
+"l'analisi è fallita): «%s»\n"
 
-#: src/file.c:1241 src/file.c:1295
+#: ../src/file.c:1292 ../src/file.c:1346
 msgid "Nothing to update"
 msgstr "Nulla da aggiornare"
 
-#: src/file.c:1262
+#: ../src/file.c:1313
 #, c-format
 msgid "Updating %s"
 msgstr "Aggiornamento di %s in corso"
 
-#: src/file.c:1276
+#: ../src/file.c:1327
 msgid "Updated selected tracks with info from file."
 msgstr "Le tracce sono state aggiornate con le informazioni dal file."
 
-#: src/file.c:1310
+#: ../src/file.c:1361
 #, c-format
 msgid "Retrieving mserv data %s"
 msgstr "Ricezione dei dati mserv %s"
 
-#: src/file.c:1315
+#: ../src/file.c:1366
 msgid "no filename available"
 msgstr "nessun nome di file disponibile"
 
-#: src/file.c:1320
+#: ../src/file.c:1371
 msgid "Updated selected tracks with data from mserv."
-msgstr "Le tracce sono state aggiornate con le informazioni dal mserv."
+msgstr "Le tracce sono state aggiornate con le informazioni da mserv."
 
-#: src/file.c:1341
+#: ../src/file.c:1392
 #, c-format
 msgid "The following track could not be updated"
 msgid_plural "The following %d tracks could not be updated"
@@ -2801,11 +3046,11 @@
 
 #. gint id,
 #. gboolean modal,
-#: src/file.c:1347
+#: ../src/file.c:1398
 msgid "Failed Track Update"
 msgstr "Aggiornamento delle tracce fallito"
 
-#: src/file.c:1405
+#: ../src/file.c:1456
 #, c-format
 msgid "The following track has been updated"
 msgid_plural "The following %d tracks have been updated"
@@ -2814,11 +3059,11 @@
 
 #. gint id,
 #. gboolean modal,
-#: src/file.c:1411
+#: ../src/file.c:1462
 msgid "Successful Track Update"
-msgstr "Aggiornamento delle tracce completato con successo."
+msgstr "Aggiornamento delle tracce completato con successo"
 
-#: src/file.c:1470
+#: ../src/file.c:1521
 #, c-format
 msgid "No mserv information could be retrieved for the following track"
 msgid_plural ""
@@ -2832,274 +3077,406 @@
 
 #. gint id,
 #. gboolean modal,
-#: src/file.c:1476
+#: ../src/file.c:1527
 msgid "mserv data retrieval problem"
 msgstr "problemi nel raccogliere le informazioni mserv"
 
-#: src/file.c:1565
+#: ../src/file.c:1616
 msgid "no local filename available, file on the iPod will be used instead"
 msgstr ""
+"il nome del file locale non è disponibile, al suo posto sarà usato il file "
+"sull'iPod"
 
-#: src/file.c:1571
+#: ../src/file.c:1622
 msgid "no local filename available and copy on iPod cannot be found"
 msgstr ""
+"il nome del file locale non è disponibile e la copia sull'iPod non è stata "
+"trovata"
 
-#: src/file.c:1575 src/file.c:1593
-#, fuzzy
+#: ../src/file.c:1626 ../src/file.c:1644
 msgid "no local filename available"
-msgstr "nessun nome di file disponibile"
+msgstr "il nome del file locale non è disponibile"
 
-#: src/file.c:1583
+#: ../src/file.c:1634
 msgid "local file could not be found, file on the iPod will be used instead"
 msgstr ""
+"il file locale non è stato trovato, al suo posto sarà usato il file sull'iPod"
 
-#: src/file.c:1589
+#: ../src/file.c:1640
 msgid "local file as well as copy on the iPod cannot be found"
-msgstr ""
+msgstr "non è stato trovato né il file locale né la copia sull'iPod"
 
 #. update not successful -- log this track for later display
-#: src/file.c:1651
-#, fuzzy
+#: ../src/file.c:1728
 msgid "update failed (format no supported?)"
-msgstr "formato non supportato"
+msgstr "aggiornamento fallito (formato non supportato?)"
 
-#: src/file.c:1734
+#: ../src/file.c:1813
 #, c-format
 msgid "Processing '%s'..."
-msgstr "Elaborazione di '%s' in corso..."
+msgstr "Elaborazione di «%s» in corso..."
 
-#: src/file.c:1740
+#: ../src/file.c:1819
 #, c-format
 msgid "File skipped. match exclude masks: '%s'\n"
-msgstr ""
+msgstr "File saltato. Coincide con la maschera di esclusione «%s»\n"
 
-#: src/file.c:1852 src/misc_track.c:1299 src/misc_track.c:1355
+#: ../src/file.c:1939 ../src/misc_track.c:1694 ../src/misc_track.c:1799
 #, c-format
 msgid ""
 "Podcast already present: '%s'\n"
 "\n"
 msgstr ""
+"Podcast già presente: «%s»\n"
+"\n"
 
-#: src/file.c:1913
-#, fuzzy, c-format
+#: ../src/file.c:2004
+#, c-format
 msgid ""
 "Writing to video files not yet supported (%s).\n"
 "\n"
-msgstr "Normalizzazione fallita: tipo di file non supportato.\n"
+msgstr ""
+"La scrittura su file video non è ancora supportata (%s).\n"
+"\n"
 
-#: src/file.c:1965 src/file.c:1979
+#: ../src/file.c:2056 ../src/file.c:2070
 #, c-format
 msgid "Couldn't change tags of file: %s\n"
-msgstr "Impossibile cambiare il tag del file: %s\n"
+msgstr "Impossibile cambiare le etichette del file: %s\n"
 
-#: src/file.c:2076
+#: ../src/file.c:2172
 #, c-format
 msgid "Could not open '%s' for reading and writing.\n"
-msgstr "Impossibile aprire il file \"%s\" in scrittura e lettura.\n"
+msgstr "Impossibile aprire il file «%s» in lettura e scrittura.\n"
 
-#: src/file.c:2083
+#: ../src/file.c:2179
 #, c-format
 msgid "Could not obtain lock on '%s'.\n"
-msgstr "Impossibile ottenere il lock su '%s'.\n"
+msgstr "Impossibile ottenere il lock su «%s».\n"
 
 #. error!
-#: src/file.c:2100 src/file.c:2109 src/file.c:2120 src/file.c:2130
+#: ../src/file.c:2196 ../src/file.c:2205 ../src/file.c:2216 ../src/file.c:2226
 #, c-format
 msgid "Malformed line in '%s': %s\n"
-msgstr "Linea malformata in '%s': %s\n"
+msgstr "Linea malformata in «%s»: %s\n"
 
 #. gint id,
 #. gboolean modal,
-#: src/file.c:2159
+#: ../src/file.c:2255
 msgid "Remove offline playcounts?"
-msgstr "Rimuovere i conta-riproduzione offline?"
+msgstr "Rimuovere i contatori di riproduzioni non in linea?"
 
 #. title
-#: src/file.c:2160
+#: ../src/file.c:2256
 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 ""
-"Alcune tracce riprodotte offline non sono state trovate nel iTunesDB. Premi "
-"'OK' per rimuoverle dal file conta-riproduzioni offline, 'Cancel' per "
-"tenerle."
+"Alcune tracce riprodotte non in linea non sono state trovate in iTunesDB. "
+"Premere «Ok» per rimuoverle dal file conta riproduzioni non in linea, "
+"«Annulla» per mantenerle."
 
-#: src/file.c:2177
+#: ../src/file.c:2273
 #, c-format
 msgid "Error writing to '%s'.\n"
-msgstr "Errore nella scrittura verso '%s'.\n"
+msgstr "Errore nella scrittura su «%s».\n"
 
-#: src/file.c:2232 src/tools.c:269
-#, fuzzy, c-format
+#: ../src/file.c:2330 ../src/tools.c:271
+#, c-format
 msgid ""
 "Normalization failed: file type not supported (%s).\n"
 "\n"
-msgstr "Normalizzazione fallita: tipo di file non supportato.\n"
+msgstr ""
+"Normalizzazione fallita: tipo di file non supportato (%s).\n"
+"\n"
 
-#: src/file.c:2248 src/tools.c:286
-#, fuzzy, c-format
+#: ../src/file.c:2346 ../src/tools.c:288
+#, c-format
 msgid ""
 "Normalization failed: file not available (%s).\n"
 "\n"
-msgstr "Normalizzazione fallita: file non disponibile.\n"
+msgstr ""
+"Normalizzazione fallita: file non disponibile (%s).\n"
+"\n"
 
-#: src/file_export.c:182
+#: ../src/file_convert.c:316
+#, fuzzy
+msgid "Summary status of conversion processes"
+msgstr "Status: in attesa del completamento della conversione"
+
+#: ../src/file_convert.c:564
+msgid "active"
+msgstr ""
+
+#: ../src/file_convert.c:569
+msgid "inactive"
+msgstr ""
+
+#: ../src/file_convert.c:580
 #, c-format
+msgid "Active threads: %d. Scheduled tracks: %d."
+msgstr ""
+
+#: ../src/file_convert.c:1061
+#, fuzzy, c-format
+msgid "Original filename not available for '%s.'\n"
+msgstr ""
+"Normalizzazione fallita: file non disponibile (%s).\n"
+"\n"
+
+#: ../src/file_convert.c:1076
+#, c-format
+msgid "Filename '%s' is no longer valid for '%s'.\n"
+msgstr ""
+
+#: ../src/file_convert.c:1127
+msgid "Ogg Vorbis"
+msgstr ""
+
+#: ../src/file_convert.c:1133
+msgid "FLAC"
+msgstr ""
+
+#: ../src/file_convert.c:1188
+#, c-format
+msgid ""
+"Files of type '%s' are not supported by the iPod. Please go to the "
+"Preferences to set up and turn on a suitable conversion script for '%s'.\n"
+"\n"
+msgstr ""
+
+#: ../src/file_convert.c:1274
+#, fuzzy
+msgid "No information available"
+msgstr "nessun nome di file disponibile"
+
+#: ../src/file_convert.c:1313
+#, c-format
+msgid "Could not create '%s'. Filetype conversion will not work.\n"
+msgstr ""
+
+#: ../src/file_convert.c:1631 ../src/file_convert.c:3040
+#, fuzzy, c-format
+msgid ""
+"Transfer of '%s' failed. %s\n"
+"\n"
+msgstr ""
+"Esecuzione di «%s» fallita.\n"
+"\n"
+
+#: ../src/file_convert.c:2035 ../src/file_convert.c:2313
+#, fuzzy, c-format
+msgid ""
+"Conversion of '%s' failed: '%s'.\n"
+"\n"
+msgstr ""
+"Esecuzione di «%s» fallita.\n"
+"\n"
+
+#: ../src/file_convert.c:2050
+#, c-format
+msgid ""
+"Conversion of '%s' failed: '%s %s' returned exit status %d.\n"
+"\n"
+msgstr ""
+
+#: ../src/file_convert.c:2079
+#, c-format
+msgid ""
+"Conversion of '%s' failed: '%s %s' did not return filename extension as "
+"expected.\n"
+"\n"
+msgstr ""
+
+#: ../src/file_convert.c:2155
+#, c-format
+msgid ""
+"Covnersion of '%s' failed: Could not access original file '%s' (%s).\n"
+"\n"
+msgstr ""
+
+#: ../src/file_convert.c:2210
+#, c-format
+msgid ""
+"Conversion of '%s' failed: Could not create directory '%s'.\n"
+"\n"
+msgstr ""
+
+#: ../src/file_convert.c:2344
+#, c-format
+msgid ""
+"Conversion of '%s' failed: '%s' returned exit status %d.\n"
+"\n"
+msgstr ""
+
+#: ../src/file_convert.c:2383
+#, c-format
+msgid ""
+"Conversion of '%s' failed: could not stat the converted file '%s'.\n"
+"\n"
+msgstr ""
+
+#: ../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"
+msgstr "Saltato il file esistente con la stessa lunghezza: «%s»\n"
 
-#: src/file_export.c:190
+#: ../src/file_export.c:190
 #, c-format
 msgid "Overwriting existing file: '%s'\n"
-msgstr "Sovrascrittura del file esistente: '%s'\n"
+msgstr "Sovrascrittura del file esistente: «%s»\n"
 
-#: src/file_export.c:207
+#: ../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"
+msgstr "Errore nella copia di «%s» su «%s»: Errore nei permessi (%s)\n"
 
-#: src/file_export.c:209
+#: ../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"
+msgstr "Errore nella copia di «%s» su «%s» (%s)\n"
 
-#: src/file_export.c:217
+#: ../src/file_export.c:217
 #, c-format
 msgid "Unable to open '%s' for reading\n"
-msgstr "Impossibile aprire '%s' in lettura\n"
+msgstr "Impossibile aprire «%s» in lettura\n"
 
-#: src/file_export.c:327
+#: ../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"
+msgstr "Impossibile trovare il file per «%s» sull'iPod\n"
 
 #. create the dialog window
-#: src/file_export.c:395 src/file_itunesdb.c:1230 src/tools.c:359
+#: ../src/file_export.c:395 ../src/tools.c:361
 msgid "Information"
 msgstr "Informazioni"
 
-#: src/file_export.c:406 src/tools.c:371
+#: ../src/file_export.c:406 ../src/tools.c:373
 msgid "Press button to abort."
-msgstr "Premi il bottone per interrompere l'operazione"
+msgstr "Premere il bottone per interrompere."
 
-#: src/file_export.c:419
+#: ../src/file_export.c:419
 msgid "copying..."
-msgstr "copia in corsa..."
+msgstr "copia in corso..."
 
-#: src/file_export.c:472
+#: ../src/file_export.c:476
 #, c-format
 msgid "Failed to write '%s-%s'\n"
-msgstr "Impossibile scrivere %s-%s\n"
+msgstr "Impossibile scrivere «%s-%s»\n"
 
-#: src/file_export.c:485
+#: ../src/file_export.c:489
 #, 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"
+msgstr[0] "Copiata traccia %d di %d."
+msgstr[1] "Copiata traccia %d di %d."
 
-#: src/file_export.c:501 src/file_itunesdb.c:1495 src/tools.c:517
+#: ../src/file_export.c:505 ../src/tools.c:519
 #, c-format
 msgid "%d%% (%d:%02d:%02d left)"
 msgstr "%d%% (%d:%02d:%02d rimasti)"
 
-#: src/file_export.c:510
+#: ../src/file_export.c:514
 msgid "Some tracks were not copied."
 msgstr "Alcune tracce non sono state copiate."
 
-#: src/file_export.c:575
+#: ../src/file_export.c:579
 msgid "Export from iPod database not possible in offline mode."
 msgstr ""
-"L'esportazione dal database dell'iPod non è possibile in modalità offline"
+"L'esportazione dal database dell'iPod non è possibile in modalità non in "
+"linea."
 
-#: src/file_export.c:583
+#: ../src/file_export.c:587
 msgid "Select Export Destination Directory"
-msgstr "Seleziona la directory di destinazione dell'esportazione"
+msgstr "Selezionare la directory di destinazione dell'esportazione"
 
-#: src/file_export.c:732
+#: ../src/file_export.c:736
 msgid "Drag from iPod database not possible in offline mode."
-msgstr "Impossibile selezionare dal database dell'iPod in modalità offline"
+msgstr ""
+"Impossibile trascinare dal database dell'iPod in modalità non in linea."
 
-#: src/file_export.c:766
+#: ../src/file_export.c:770
 msgid "The following tracks have to be copied to your harddisk"
-msgstr "Le tracce seguente devono essere copiate sul tuo disco fisso"
+msgstr "Le tracce seguenti devono essere copiate sul disco fisso"
 
-#: src/file_export.c:811
+#: ../src/file_export.c:815
 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 ""
 "Alcune tracce non sono state copiate sul disco fisso. Solo le tracce copiate "
-"saranno incluse nella operazione di 'drag and drop' attuale.\n"
+"saranno incluse nell'operazione attuale di trascinamento.\n"
 "\n"
 
-#: src/file_export.c:1006
+#: ../src/file_export.c:1010
 #, c-format
 msgid ""
 "No valid filename for: %s\n"
 "\n"
-msgstr "Nessuno nome di file valido per: %s\n"
+msgstr ""
+"Nessuno nome di file valido per: %s\n"
+"\n"
 
-#: src/file_export.c:1022
+#: ../src/file_export.c:1026
 #, 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:1027
+#: ../src/file_export.c:1031
 #, c-format
 msgid ""
 "Could not open '%s' for writing (%s).\n"
 "\n"
 msgstr ""
-"Impossibile aprire il file '%s' in scrittura (%s).\n"
+"Impossibile aprire il file «%s» in scrittura (%s).\n"
 "\n"
 
-#: src/file_itunesdb.c:115
+#: ../src/file_itunesdb.c:127
 #, c-format
-msgid "Matching MD5 checksum for file %d/%d"
-msgstr ""
+msgid "Matching SHA1 checksum for file %d/%d"
+msgstr "Confronto delle somme di controllo SHA1 per il file %d di %d"
 
-#: src/file_itunesdb.c:223
+#: ../src/file_itunesdb.c:234
 msgid "Could not open \"iTunesDB.ext\" for reading extended info.\n"
 msgstr ""
-"Impossibile aprire \"iTunesDB.ext\" per leggere le informazioni estese.\n"
+"Impossibile aprire «iTunesDB.ext» per leggere le informazioni estese.\n"
 
-#: src/file_itunesdb.c:230
+#: ../src/file_itunesdb.c:241
 msgid "Could not create hash value from itunesdb\n"
-msgstr "Impossibile creare il valore di hash dal itunesdb\n"
+msgstr "Impossibile creare il valore di hash da itunesdb\n"
 
-#: src/file_itunesdb.c:244
+#: ../src/file_itunesdb.c:255
 #, c-format
 msgid "Error while reading extended info: %s\n"
 msgstr "Errore nella lettura delle informazioni estese: %s\n"
 
-#: src/file_itunesdb.c:261
+#: ../src/file_itunesdb.c:272
 #, 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 "
+"gtkpod will try to match the information using SHA1 checksums. This may take "
 "a long time.\n"
 "\n"
 msgstr ""
-"iTunesDB '%s' ha un checksum diverso da quello nel file delle informazioni "
-"estese '%s'\n"
-" gtkpod proverà a combinare le informazioni usando il checksum MD5.  "
-"l'operazione richiede un pò di tempo.\n"
+"iTunesDB «%s» ha una somma di controllo diversa da quella nel file con le "
+"informazioni estese «%s»\n"
+" gtkpod proverà a confrontare le informazioni usando il checksum SHA1. "
+"Questo può richiedere molto tempo.\n"
 "\n"
 
-#: src/file_itunesdb.c:273
+#: ../src/file_itunesdb.c:284
 #, c-format
 msgid ""
 "%s:\n"
 "Expected \"itunesdb_hash=\" but got:\"%s\"\n"
 msgstr ""
 "%s:\n"
-"Era atteso \"itunesdb_hash=\" ma ho trovato:'%s'\n"
+"Atteso «itunesdb_hash=» ma trovato: «%s»\n"
 
-#: src/file_itunesdb.c:333
+#: ../src/file_itunesdb.c:344
 #, c-format
 msgid ""
 "%s:\n"
@@ -3108,116 +3485,116 @@
 "%s:\n"
 "Errore nel formato: %s\n"
 
-#: src/file_itunesdb.c:377
+#: ../src/file_itunesdb.c:387
 msgid ""
-"No MD5 checksums on individual tracks are available.\n"
+"No SHA1 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 "
+"(will provide SHA1 checksums) or avoid using the iPod with programs other "
 "than gtkpod.\n"
 "\n"
 msgstr ""
-"Non sono disponibili dei checksum MD5 individuali per le tracce.\n"
+"Non sono disponibili somme di controllo SHA1 individuali per le tracce.\n"
 "\n"
-"Nel futuro, per evitare questa situazione, usate l'opzione di rilevamento "
-"dei duplicati (aggiungerà i checksum MD5) oppure evitate di usare l'iPod con "
-"altri programmi rispetto a gtkpod.\n"
+"Nel futuro, per evitare questa situazione, usare l'opzione di rilevamento "
+"dei duplicati (aggiungerà somme di controllo SHA1) oppure evitate di usare "
+"l'iPod con programmi diversi da gtkpod.\n"
 "\n"
 
-#: src/file_itunesdb.c:439
+#: ../src/file_itunesdb.c:451
 msgid ""
 "Extended info will not be used. If you have non-transferred tracks,\n"
 "these will be lost.\n"
 msgstr ""
-"Le informazioni estese non verranno usate. Se hai delle tracce non "
-"trasferite, verranno perse.\n"
+"Le informazioni estese non verranno usate. Le tracce non trasferite verranno "
+"perse.\n"
 
-#: src/file_itunesdb.c:447
+#: ../src/file_itunesdb.c:459
 msgid "Offline iPod database successfully imported"
-msgstr "Database offline dell'iPod importato con successo"
+msgstr "Database non in linea dell'iPod importato con successo"
 
-#: src/file_itunesdb.c:450
+#: ../src/file_itunesdb.c:462
 msgid "Local database successfully imported"
 msgstr "Database locale importato con successo"
 
-#: src/file_itunesdb.c:458
+#: ../src/file_itunesdb.c:470
 #, c-format
 msgid ""
 "Offline iPod database import failed: '%s'\n"
 "\n"
 msgstr ""
-"Fallita l'importazione del Database offline: '%s' \n"
+"Importazione del database non in linea dell'iPod fallita: «%s» \n"
 "\n"
 
-#: src/file_itunesdb.c:462
+#: ../src/file_itunesdb.c:474
 #, c-format
 msgid ""
 "Local database import failed: '%s'\n"
 "\n"
 msgstr ""
-"Importazione del database locale fallito: '%s'\n"
+"Importazione del database locale fallita: «%s»\n"
 "\n"
 
-#: src/file_itunesdb.c:469
+#: ../src/file_itunesdb.c:481
 msgid ""
 "Offline iPod database import failed: \n"
 "\n"
 msgstr ""
-"Fallita l'importazione del Database offline del iPod: \n"
+"Importazione del database non in linea dell'iPod fallita: \n"
 "\n"
 
-#: src/file_itunesdb.c:472
+#: ../src/file_itunesdb.c:484
 msgid ""
 "Local database import failed: \n"
 "\n"
 msgstr ""
-"Fallita l'importazione del Database locale: \n"
+"Importazione del database locale fallita:\n"
 "\n"
 
-#: src/file_itunesdb.c:479
+#: ../src/file_itunesdb.c:491
 #, c-format
 msgid ""
 "'%s' does not exist. Import aborted.\n"
 "\n"
 msgstr ""
-"'%s' non esiste. Importazione abortita.\n"
+"«%s» non esiste. Importazione interrotta.\n"
 "\n"
 
-#: src/file_itunesdb.c:502
+#: ../src/file_itunesdb.c:514
 msgid "Extended info will not be used.\n"
 msgstr "Le informazioni estese non verranno usate.\n"
 
-#: src/file_itunesdb.c:509
+#: ../src/file_itunesdb.c:521
 msgid "iPod Database Successfully Imported"
-msgstr "Database iPod importato con successo"
+msgstr "Database dell'iPod importato con successo"
 
-#: src/file_itunesdb.c:516
+#: ../src/file_itunesdb.c:528
 #, c-format
 msgid ""
 "iPod Database Import Failed: '%s'\n"
 "\n"
 msgstr ""
-"Importazione del database dell'iPod fallito: '%s'\n"
+"Importazione del database dell'iPod fallita: «%s»\n"
 "\n"
 
-#: src/file_itunesdb.c:522
+#: ../src/file_itunesdb.c:534
 msgid ""
 "iPod Database Import Failed.\n"
 "\n"
 msgstr ""
-"Importazione del database dell'iPod fallito.\n"
+"Importazione del database dell'iPod fallita.\n"
 "\n"
 
-#: src/file_itunesdb.c:531
-#, fuzzy, c-format
+#: ../src/file_itunesdb.c:543
+#, c-format
 msgid ""
 "'%s' (or similar) does not exist. Import aborted.\n"
 "\n"
 msgstr ""
-"'%s' non esiste. Importazione abortita.\n"
+"«%s» (o simile) non esiste. Importazione interrotta.\n"
 "\n"
 
-#: src/file_itunesdb.c:817
+#: ../src/file_itunesdb.c:859
 #, c-format
 msgid ""
 "Could not find iPod directory structure at '%s'.\n"
@@ -3226,46 +3603,123 @@
 "\n"
 "Do you want to create the directory structure now?\n"
 msgstr ""
+"Impossibile trovare la struttura delle directory dell'iPod in «%s».\n"
+"Se si è sicuri che l'iPod sia montato correttamente in «%s», gtkpod può "
+"creare la struttura delle directory.\n"
+"\n"
+"Si desidera creare la struttura delle directory ora?\n"
 
-#: src/file_itunesdb.c:1071
+#: ../src/file_itunesdb.c:1140
 #, c-format
 msgid "Could not open \"%s\" for writing extended info.\n"
-msgstr ""
-"Impossibile aprire \"%s\" per la scrittura delle informazioni estese.\n"
+msgstr "Impossibile aprire «%s» per la scrittura delle informazioni estese.\n"
 
-#: src/file_itunesdb.c:1086
+#: ../src/file_itunesdb.c:1155
 msgid "Aborted writing of extended info.\n"
+msgstr "Scrittura delle informazioni estese interrotta.\n"
+
+#: ../src/file_itunesdb.c:1356
+#, c-format
+msgid "%d%%"
+msgstr "%d%%"
+
+#: ../src/file_itunesdb.c:1370
+#, c-format
+msgid "%d%% (%d/%d  %d:%02d:%02d left)"
+msgstr "%d%% (%d/%d  %d:%02d:%02d rimasti)"
+
+#: ../src/file_itunesdb.c:1412
+msgid "Status: Deleting File"
+msgstr "Status: eliminazione file in corso"
+
+#: ../src/file_itunesdb.c:1473
+#, c-format
+msgid ""
+"Could not remove the following file: '%s'\n"
+"\n"
 msgstr ""
-"Impossibile aprire \"%s\" per la scrittura delle informazioni estese.\n"
+"Impossibile rimuovere il file seguente: «%s»\n"
+"\n"
 
-#: src/file_itunesdb.c:1241
+#: ../src/file_itunesdb.c:1581
 msgid ""
-"Press button to abort.\n"
-"Export can be continued at a later time."
+"The following track could not be converted successfully:\n"
+"\n"
+msgid_plural ""
+"The following tracks could not be converted successfully:\n"
+"\n"
+msgstr[0] ""
+"La traccia seguente non è stata convertita con successo:\n"
+"\n"
+msgstr[1] ""
+"Le tracce seguenti non sono state convertite con successo:\n"
+"\n"
+
+#: ../src/file_itunesdb.c:1591
+msgid ""
+"The following track could not be transferred successfully:\n"
+"\n"
+msgid_plural ""
+"The following tracks could not be transferred successfully:\n"
+"\n"
+msgstr[0] ""
+"La traccia seguente non è stata trasferita con successo:\n"
+"\n"
+msgstr[1] ""
+"Le tracce seguenti non sono state trasferite con successo:\n"
+"\n"
+
+#. ID
+#. modal,
+#. gint id,
+#. gboolean modal,
+#: ../src/file_itunesdb.c:1600 ../src/misc_confirm.c:70
+msgid "Warning"
+msgstr "Attenzione"
+
+#. title
+#: ../src/file_itunesdb.c:1601
+msgid ""
+"The iPod could not be ejected. Please fix the problems mentioned below and "
+"then eject the iPod again. Pressing 'OK' will re-schedule the failed tracks "
+"for conversion and transfer."
 msgstr ""
-"Premi il bottone per abortire.\n"
-"l'esportazione può essere ultimata in un secondo momento."
+"Impossibile espellere l'iPod. Correggere i problemi menzionati sotto e poi "
+"espellere di nuovo l'iPod. Premendo «Ok» le tracce mancanti saranno di nuovo "
+"messe in coda per la conversione e il trasferimento."
 
-#: src/file_itunesdb.c:1310
-msgid "deleting..."
-msgstr "cancellazione in corso..."
+#: ../src/file_itunesdb.c:1663
+msgid "Status: Copying track"
+msgstr "Status: copia traccia in corso"
 
-#: src/file_itunesdb.c:1413
-msgid "preparing to copy..."
-msgstr "copia in preparazione..."
+#: ../src/file_itunesdb.c:1669
+msgid "Status: Waiting for conversion to complete"
+msgstr "Status: in attesa del completamento della conversione"
 
-#: src/file_itunesdb.c:1480
+#: ../src/file_itunesdb.c:1673
+msgid "Status: Finished transfer"
+msgstr "Status: trasferimento completato"
+
+#: ../src/file_itunesdb.c:1714
 #, 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"
+msgid ""
+"One track could not be transferred because your iPod is full. Either delete "
+"some tracks or otherwise create space on the iPod before ejecting the iPod "
+"again."
+msgid_plural ""
+"%d tracks could not be transferred because your iPod is full. Either delete "
+"some tracks or otherwise create space on the iPod before ejecting the iPod "
+"again."
+msgstr[0] ""
+"Non è stato possibile trasferire una traccia perché l'iPod è pieno. "
+"Cancellare alcune tracce oppure creare spazio sull'iPod in altro modo prima "
+"di espellerlo di nuovo."
+msgstr[1] ""
+"Non è stato possibile trasferire %d tracce perché l'iPod è pieno. Cancellare "
+"alcune tracce oppure creare spazio sull'iPod in altro modo prima di "
+"espellerlo di nuovo."
 
-#: 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:1557
+#: ../src/file_itunesdb.c:1792
 #, c-format
 msgid ""
 "You did not import the existing iTunesDB ('%s'). This is most likely "
@@ -3275,227 +3729,271 @@
 "cancel, you can import the existing database before calling this function "
 "again.\n"
 msgstr ""
-"Non hai importato l'iTunesDB esistente ('%s'). Questo è quasi  certamente "
+"Non si è importato l'iTunesDB esistente («%s»). Questo è quasi certamente "
 "sbagliato e porterà alla perdita del database esistente.\n"
 "\n"
-"Premi 'OK' se si vuole procedere comunque o 'Annulla' se si vuole "
-"interrompere l'operazione. Se la interrompi, puoi importare il database "
+"Premere «Ok» se si vuole procedere comunque o «Annulla» se si vuole "
+"interrompere l'operazione. Se la si interrompe, si può importare il database "
 "esistente prima di richiamare di nuovo questa funzione.\n"
 
-#: src/file_itunesdb.c:1588
+#: ../src/file_itunesdb.c:1827
 msgid ""
 "iPod directory structure must be present before synching to the iPod can be "
 "performed.\n"
 msgstr ""
 "La struttura delle directory dell'iPod deve essere presente prima che la "
-"sincronizzazione verso l'iPod possa avere inizio.\n"
+"sincronizzazione verso l'iPod possa essere eseguita.\n"
 
-#: src/file_itunesdb.c:1597
+#: ../src/file_itunesdb.c:1836
 msgid "Some tracks could not be deleted from the iPod. Export aborted!"
 msgstr ""
-"Alcune tracce non possono essere cancellate dall'iPod. Esportazione abortita!"
+"Alcune tracce non possono essere cancellate dall'iPod. Esportazione "
+"interrotta!"
 
-#: src/file_itunesdb.c:1613
-#, fuzzy
+#: ../src/file_itunesdb.c:1854
 msgid "Now writing database. Please wait..."
-msgstr "Scrittura del iTunesDB in corso. Attendere prego..."
+msgstr "Scrittura del database in corso. Attendere prego..."
 
-#: src/file_itunesdb.c:1659
+#: ../src/file_itunesdb.c:1901
 #, c-format
 msgid "Extended information file not deleted: '%s'"
-msgstr "Il file delle informazioni estese non è stato cancellato: '%s'"
+msgstr "Il file con le informazioni estese non è stato cancellato: «%s»"
 
-#: src/file_itunesdb.c:1745
-#, fuzzy, c-format
+#: ../src/file_itunesdb.c:1987
+#, c-format
 msgid "%s: Database saved"
-msgstr "Database iPod salvato"
+msgstr "%s: database salvato"
 
-#: src/file_itunesdb.c:1749
+#: ../src/file_itunesdb.c:1991
 #, c-format
 msgid "%s: Changes saved"
-msgstr ""
+msgstr "%s: modifiche salvate"
 
-#: src/fileselection.c:127
+#: ../src/fileselection.c:128
 msgid "Successfully added files"
 msgstr "File aggiunti con successo"
 
-#: src/fileselection.c:129
+#: ../src/fileselection.c:130
 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:157
+#: ../src/fileselection.c:160
 msgid "Add Files"
-msgstr "Aggiungi _File"
+msgstr "Aggiungi file"
 
 #. Create the file chooser, and handle the response
-#: src/fileselection.c:250
+#: ../src/fileselection.c:253
 msgid "Add Playlists"
-msgstr "Aggiungi _Playlist"
+msgstr "Aggiungi playlist"
 
 #. Create the file chooser, and handle the response
-#: src/fileselection.c:297
+#: ../src/fileselection.c:300
 msgid "Set Cover"
-msgstr ""
+msgstr "Imposta copertina"
 
-#: src/fileselection.c:718
+#: ../src/fileselection.c:721
 msgid "Select directory to add recursively"
 msgstr "Seleziona una directory da aggiungere ricorsivamente"
 
-#: src/fileselection.c:989
+#: ../src/fileselection.c:992
 msgid "Ok"
 msgstr "Ok"
 
-#: src/fileselection.c:998
+#: ../src/fileselection.c:1001
 msgid "Cancel"
-msgstr "Cancella"
+msgstr "Annulla"
 
-#: src/getopt.c:681
+#: ../src/flacfile.c:33
+#, fuzzy, c-format
+msgid "'%s' does not appear to be an FLAC audio file.\n"
+msgstr "«%s» non sembra essere un file audio mp4.\n"
+
+#: ../src/flacfile.c:52
+#, fuzzy, c-format
+msgid "Error retrieving tags for '%s'.\n"
+msgstr "Errore nella scrittura su «%s».\n"
+
+#: ../src/flacfile.c:119
+#, fuzzy, c-format
+msgid ""
+"Import of '%s' failed: FLAC not supported without the FLAC library. You must "
+"compile the gtkpod source together with the FLAC library.\n"
+msgstr ""
+"Importazione di «%s» fallita: m4a/m4p/m4b non è supportata senza librerie "
+"mp4v2. Devi compilare i sorgenti di gtkpod insieme alla libreria mp4v2.\n"
+
+#: ../src/flacfile.c:125
+#, fuzzy, c-format
+msgid ""
+"FLAC metadata update for '%s' failed: FLAC not supported without the FLAC "
+"library. You must compile the gtkpod source together with the FLAC library.\n"
+msgstr ""
+"Aggiornamento fallito dei metadati m4a/m4p/m4b per «%s»: m4a/m4p/m4b non "
+"sono supportati senza la libreria mp4v2. Devi compilare i sorgenti gtkpod "
+"insieme alla libreria mp4v2.\n"
+
+#: ../src/getopt.c:681
 #, c-format
 msgid "%s: option `%s' is ambiguous\n"
-msgstr "%s: l'opzione '%s' è ambigua\n"
+msgstr "%s: l'opzione «%s» è ambigua\n"
 
-#: src/getopt.c:706
+#: ../src/getopt.c:706
 #, c-format
 msgid "%s: option `--%s' doesn't allow an argument\n"
-msgstr "%s: l'opzione `--%s' non ammette argomenti\n"
+msgstr "%s: l'opzione «--%s» non ammette argomenti\n"
 
-#: src/getopt.c:711
+#: ../src/getopt.c:711
 #, c-format
 msgid "%s: option `%c%s' doesn't allow an argument\n"
-msgstr "%s: l'opzione `%c%s' non ammette argomenti\n"
+msgstr "%s: l'opzione «%c%s» non ammette argomenti\n"
 
-#: src/getopt.c:729 src/getopt.c:902
+#: ../src/getopt.c:729 ../src/getopt.c:902
 #, c-format
 msgid "%s: option `%s' requires an argument\n"
-msgstr "%s: l'opzione `%s' richiede un argomento\n"
+msgstr "%s: l'opzione «%s» richiede un argomento\n"
 
 #. --option
-#: src/getopt.c:758
+#: ../src/getopt.c:758
 #, c-format
 msgid "%s: unrecognized option `--%s'\n"
-msgstr "%s: opzione sconosciuta `--%s'\n"
+msgstr "%s: opzione sconosciuta «--%s»\n"
 
 #. +option or -option
-#: src/getopt.c:762
+#: ../src/getopt.c:762
 #, c-format
 msgid "%s: unrecognized option `%c%s'\n"
-msgstr "%s: opzione sconosciuta `%c%s'\n"
+msgstr "%s: opzione sconosciuta «%c%s»\n"
 
 #. 1003.2 specifies the format of this message.
-#: src/getopt.c:788
+#: ../src/getopt.c:788
 #, c-format
 msgid "%s: illegal option -- %c\n"
 msgstr "%s: opzione illegale -- %c\n"
 
-#: src/getopt.c:791
+#: ../src/getopt.c:791
 #, c-format
 msgid "%s: invalid option -- %c\n"
 msgstr "%s: opzione non valida -- %c\n"
 
 #. 1003.2 specifies the format of this message.
-#: src/getopt.c:821 src/getopt.c:951
+#: ../src/getopt.c:821 ../src/getopt.c:951
 #, c-format
 msgid "%s: option requires an argument -- %c\n"
 msgstr "%s: l'opzione richiede un argomento -- %c\n"
 
-#: src/getopt.c:868
+#: ../src/getopt.c:868
 #, c-format
 msgid "%s: option `-W %s' is ambiguous\n"
-msgstr "%s: l'opzione `-W %s' è ambigua\n"
+msgstr "%s: l'opzione «-W %s» è ambigua\n"
 
-#: src/getopt.c:886
+#: ../src/getopt.c:886
 #, c-format
 msgid "%s: option `-W %s' doesn't allow an argument\n"
-msgstr "%s: l'opzione `-W %s' non ammette argomenti\n"
+msgstr "%s: l'opzione «-W %s» non ammette argomenti\n"
 
-#: src/info.c:383
+#: ../src/info.c:383
 msgid "n/c"
-msgstr "n.d."
+msgstr "n.c."
 
-#: src/info.c:388 src/info.c:835
+#: ../src/info.c:388 ../src/info.c:835
 msgid "offline"
-msgstr "offline"
+msgstr "non in linea"
 
-#: src/info.c:483
+#: ../src/info.c:483
 #, c-format
 msgid " P:%d T:%d/%d"
-msgstr " P:%d S:%d/%d"
+msgstr " P:%d T:%d/%d"
 
-#: src/info.c:777
+#: ../src/info.c:777
 msgid "B"
 msgstr "B"
 
-#: src/info.c:777
+#: ../src/info.c:777
 msgid "kB"
 msgstr "kB"
 
-#: src/info.c:777
+#: ../src/info.c:777
 msgid "TB"
 msgstr "TB"
 
-#: src/info.c:820
+#: ../src/info.c:820
 #, c-format
 msgid " %s Free"
-msgstr "%s Liberi"
+msgstr "%s liberi"
 
-#: src/info.c:825
+#: ../src/info.c:825
 #, c-format
 msgid " %s Pending"
-msgstr " %s Pendenti"
+msgstr " %s in sospeso"
 
-#: src/info.c:830
+#: ../src/info.c:830
 msgid " disconnected"
 msgstr " scollegato"
 
-#: src/info.c:881
-#, fuzzy
+#: ../src/info.c:881
 msgid "No database or playlist selected"
-msgstr "Nessuna playlist selezionata"
+msgstr "Nessun database o playlist selezionato"
 
-#: src/info.c:886
+#: ../src/info.c:886
 msgid "No tracks selected"
-msgstr "Nessuna traccia selezionata."
+msgstr "Nessuna traccia selezionata"
 
-#: src/info.c:891
+#: ../src/info.c:891
 msgid "No playlist selected"
 msgstr "Nessuna playlist selezionata"
 
-#: src/info.c:896
-#, fuzzy
+#: ../src/info.c:896
 msgid "No iPod or iPod playlist selected"
-msgstr "Nessuna playlist selezionata"
+msgstr "Nessun iPod o playlist di iPod selezionato"
 
-#: 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"
+#. Strings used several times
+#: ../src/ipod_init.c:48
+msgid "Select or enter your model"
+msgstr ""
 
-#: 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/ipod_init.c:79 ../src/repository.c:546 ../src/repository.c:2369
+msgid "Select mountpoint"
+msgstr "Selezionare il punto di montaggio dell'iPod"
 
-#: src/misc.c:79
+#: ../src/ipod_init.c:359
+#, fuzzy, c-format
+msgid "Error initialising iPod: %s\n"
+msgstr "Errore nella scrittura su «%s».\n"
+
+#: ../src/ipod_init.c:366
+msgid "Error initialising iPod, unknown error\n"
+msgstr ""
+
+#: ../src/ipod_init.c:422
+#, fuzzy, c-format
+msgid "<b>Please select your iPod model at </b><i>%s</i>"
+msgstr "<b>Scegliere il punto di mount e il modello di iPod</b>"
+
+#: ../src/misc.c:86
 #, c-format
 msgid ""
 "gtkpod Version %s: Cross-Platform Multi-Lingual Interface to Apple's iPod"
 "(tm)."
 msgstr ""
-"gtkpod Versione %s: Interfaccia per l'Apple iPod (tm) multi-lingua e multi-"
-"piattaforma"
+"gtkpod Versione %s: interfaccia multi-lingua e multi-piattaforma per Apple "
+"iPod (tm)."
 
-#: src/misc.c:83
+#: ../src/misc.c:90
 msgid ""
-"(C) 2002 - 2005\n"
+"(C) 2002 - 2007\n"
 "Jorg Schuler (jcsjcs at users dot sourceforge dot net)\n"
 "Corey Donohoe (atmos at atmos dot org)\n"
 "\n"
 "\n"
 msgstr ""
-"Jörg Schuler (jcsjcs at users dot sourceforge dot net)\n"
+"(C) 2002 - 2007\n"
+"Jorg Schuler (jcsjcs at users dot sourceforge dot net)\n"
 "Corey Donohoe (atmos at atmos dot org)\n"
+"\n"
+"\n"
 
-#: src/misc.c:89
+#: ../src/misc.c:96
 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 "
@@ -3513,299 +4011,338 @@
 "\n"
 "\n"
 msgstr ""
+"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"
 
-#: src/misc.c:97
+#: ../src/misc.c:104
 msgid ""
 "Patches were supplied by the following people (list may be incomplete -- "
 "please contact me)\n"
 "\n"
 msgstr ""
-"Patch sono state fornite dalle seguenti persone (la lista potrebbe essere "
-"incompleta -- per favore contattatemi)\n"
+"Correzioni sono state fornite dalle seguenti persone (la lista potrebbe "
+"essere incompleta -- per favore contattatemi)\n"
 "\n"
 
-#: src/misc.c:99
+#: ../src/misc.c:106
 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"
+"Ramesh Dharan: Multi-Edit (modifica le etichette di diverse tracce in una "
+"volta)\n"
 
-#: src/misc.c:101
+#: ../src/misc.c:108
 msgid "Hiroshi Kawashima: Japanese charset autodetecion feature\n"
 msgstr ""
-"Hiroshi Kawashima: riconoscimento della codifica di carattere Giapponese\n"
+"Hiroshi Kawashima: riconoscimento automatico della codifica giapponese\n"
 
-#: src/misc.c:103
+#: ../src/misc.c:110
 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:105
+#: ../src/misc.c:112
 msgid ""
 "Walter Bell: correct handling of DND URIs with escaped characters and/or cr/"
 "newlines at the end\n"
 msgstr ""
-"Waiter Bell: trattamento corretto dei DND URI con la presenza di caratteri "
-"di escape e/o cr/nuova linea alla fine\n"
+"Waiter Bell: trattamento corretto dei DND di URI con la presenza di "
+"caratteri di escape e/o cr/nuova linea alla fine\n"
 
-#: src/misc.c:107
+#: ../src/misc.c:114
 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:109
+#: ../src/misc.c:116
 msgid "Chris Cutler: automatic creation of various playlist types\n"
 msgstr "Chris Cutler: creazione automatica di diversi tipi di playlist\n"
 
-#: src/misc.c:111
+#: ../src/misc.c:118
 msgid ""
 "Graeme Wilford: reading and writing of the 'Composer' ID3 tags, progress "
 "dialogue during sync\n"
 msgstr ""
-"Graeme Wilford: lettura e scrittura del tag ID3 'Compositore', barra di "
-"avanzamento durante la sincronizzazione\n"
+"Graeme Wilford: lettura e scrittura dell'etichetta ID3 «Compositore», barra "
+"di avanzamento durante la sincronizzazione\n"
 
-#: src/misc.c:113
+#: ../src/misc.c:120
 msgid ""
 "Edward Matteucci: debugging, special playlist creation, most of the volume "
 "normalizing code\n"
 msgstr ""
-"Edward Matteucci: debugging, creazione delle playlist speciali,buona parte "
+"Edward Matteucci: debugging, creazione delle playlist speciali, buona parte "
 "del codice relativo alla normalizzazione\n"
 
-#: src/misc.c:115
+#: ../src/misc.c:122
 msgid "Jens Lautenbach: some optical improvements\n"
 msgstr "Jens Lautenbach: alcuni miglioramenti ottici\n"
 
-#: src/misc.c:117
+#: ../src/misc.c:124
 msgid "Alex Tribble: iPod eject patch\n"
-msgstr "Alex Tribble: patch per l'espulsione del iPod\n"
+msgstr "Alex Tribble: patch per l'espulsione dell'iPod\n"
 
-#: src/misc.c:119
+#: ../src/misc.c:126
 msgid "Yaroslav Halchenko: Orphaned and dangling tracks handling\n"
-msgstr "Yaroslav Halchenko: Gestione delle tracce orfane e pendenti\n"
+msgstr "Yaroslav Halchenko: gestione delle tracce orfane e fantasma\n"
 
-#: src/misc.c:121
+#: ../src/misc.c:128
 msgid ""
 "Andrew Huntwork: Filename case sensitivity fix and various other bugfixes\n"
-msgstr "Andrew Huntwork: Filename case sensitivity fix e vari altri bugfixes\n"
+msgstr ""
+"Andrew Huntwork: correzione di maiuscole/minuscole nei nomi dei file e "
+"correzione di vari altri bug\n"
 
-#: src/misc.c:123
+#: ../src/misc.c:130
 msgid ""
 "Ero Carrera: Filename validation and quick sync when copying tracks from the "
 "iPod\n"
 msgstr ""
-"Ero Carrera: Validazione dei nomi dei file e sincronizzazione rapida nella "
+"Ero Carrera: validazione dei nomi dei file e sincronizzazione rapida nella "
 "copia delle tracce dall'iPod\n"
 
-#: src/misc.c:125
+#: ../src/misc.c:132
 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"
+"Jens Taprogge: supporto per l'etichetta per il guadagno di riproduzione di "
+"LAME per normalizzare il volume\n"
 
-#: src/misc.c:127
+#: ../src/misc.c:134
 msgid "Armando Atienza: Support with external playcounts\n"
-msgstr "Armando Atienza: Supporto per i conta-riproduzioni esterni\n"
+msgstr "Armando Atienza: supporto per i contatori di riproduzione esterni\n"
 
-#: src/misc.c:129
+#: ../src/misc.c:136
 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"
+msgstr "D.L. Sharp: supporto per i file m4b (file AAC con segnalibri)\n"
 
-#: src/misc.c:131
+#: ../src/misc.c:138
 msgid "Jim Hall: Decent INSTALL file\n"
-msgstr "Jim Hall: File INSTALL decente\n"
+msgstr "Jim Hall: un file INSTALL decente\n"
 
-#: src/misc.c:133
+#: ../src/misc.c:140
 msgid ""
 "Juergen Helmers, Markus Gaugusch: Conversion scripts to sync calendar/"
 "contacts to the iPod\n"
 msgstr ""
-"Juergen Helmers, Markus Gaugusch: Script per la conversione per "
-"sincronizzarei calendari/contatti con l'iPod\n"
+"Juergen Helmers, Markus Gaugusch: script di conversione per sincronizzare "
+"calendari e contatti con l'iPod\n"
 
 #. J"urgen!
-#: src/misc.c:135
+#: ../src/misc.c:142
 msgid "Flavio Stanchina: bugfixes\n"
-msgstr "Flavio Stanchina: bugfixes\n"
+msgstr "Flavio Stanchina: correzione di bug\n"
 
-#: src/misc.c:137
+#: ../src/misc.c:144
 msgid ""
 "Chris Micacchi: when sorting ignore 'the' and similar at the beginning of "
 "the title\n"
 msgstr ""
-"Chris Micacchi: ignora 'the' e cose simili all'inizio del titolo durante "
+"Chris Micacchi: ignora «the» e cose simili all'inizio del titolo durante "
 "l'ordinamento\n"
 
-#: src/misc.c:139
+#: ../src/misc.c:146
 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:142
+#: ../src/misc.c:149
 msgid ""
 "Christoph Kunz: address compatibility issues when writing id3v2.4 type mp3 "
 "tags\n"
 msgstr ""
 "Christoph Kunz: risoluzione dei problemi di compatibilità nella scrittura "
-"dei tag mp3 di tipo id3v2.4\n"
+"delle etichette mp3 di tipo id3v2.4\n"
 
-#: src/misc.c:145
-#, fuzzy
+#: ../src/misc.c:152
 msgid ""
 "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"
+"James Ligget:      sostituzione dei «GTK file selection dialog» con i nuovi "
+"«GTK filechooser dialog»\n"
+"     rifacimento del sistema di preferenze dell'utente\n"
 
-#: src/misc.c:150
+#: ../src/misc.c:157
 msgid "Daniel Kercher: sync scripts for abook and webcalendar\n"
-msgstr ""
-"Daniel Kercher: script per la sincronizzazione di abook e webcalendar\n"
+msgstr "Daniel Kercher: script di sincronizzazione per abook e webcalendar\n"
 
-#: src/misc.c:153
+#: ../src/misc.c:160
 msgid "Clinton Gormley: sync scripts for thunderbird\n"
 msgstr "Clinton Gormley: script di sincronizzazione per thunderbird\n"
 
-#: src/misc.c:156
-#, fuzzy
+#: ../src/misc.c:163
 msgid "Sebastien Beridot: sync script for ldif addressbook format\n"
 msgstr ""
-"Sebastien Beridot: script di sincronizzazione per la rubrica in formato  "
+"Sebastien Beridot: script di sincronizzazione per la rubrica in formato "
 "ldif \n"
 
-#: src/misc.c:159
-#, fuzzy
+#: ../src/misc.c:166
 msgid "Sebastian Scherer: sync script for kNotes\n"
 msgstr "Sebastian Scherer: script di sincronizzazione per kNotes\n"
 
-#: src/misc.c:162
+#: ../src/misc.c:169
 msgid "Nick Piper: sync script for Palm, type-ahead search\n"
-msgstr ""
+msgstr "Nick Piper: script di sincronizzazione per Palm, ricerca type-ahead\n"
 
-#: src/misc.c:165
+#: ../src/misc.c:172
 msgid "Uwe Hermann: help with support for iPod Video\n"
-msgstr ""
+msgstr "Uwe Hermann: aiuto nel supporto per l'iPod Video\n"
 
-#: src/misc.c:168
+#: ../src/misc.c:175
 msgid ""
 "Iain Benson: support for compilation tag in mp3 files and separate display "
 "of compilations in the sort tab.\n"
 msgstr ""
+"Iain Benson: supporto per l'etichetta compilation nei file mp3 e "
+"visualizzazione separata delle compilation nella scheda di ordinamento.\n"
 
-#: src/misc.c:170
+#: ../src/misc.c:177
 msgid ""
 "Nicolas Chariot: icons of buttons\n"
 "\n"
 "\n"
 msgstr ""
+"Nicolas Chariot: icone dei bottoni\n"
+"\n"
+"\n"
 
-#: src/misc.c:174
+#: ../src/misc.c:181
 msgid "This program borrows code from the following projects:\n"
 msgstr "Questo programma prende in prestito codice dai seguenti progetti:\n"
 
-#: src/misc.c:176
+#: ../src/misc.c:183
 msgid ""
 "    gnutools: (mktunes.pl, ported to C) reading and writing of iTunesDB "
 "(http://www.gnu.org/software/gnupod/)\n"
 msgstr ""
-"    gnutools: (mktunes.pl, portato dal C) lettura e scrittura del iTunesDB "
+"    gnutools: (mktunes.pl, portato in C) lettura e scrittura di iTunesDB "
 "(http://www.gnu.org/software/gnupod/)\n"
 
-#: src/misc.c:178
+#: ../src/misc.c:185
 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 da Samuel Wood (sam dot wood at gmail dot com): un po' "
-"di codice per le playlist intelligenti è basata su classi in C++.\n"
+"    iPod.cpp, iPod.h di Samuel Wood (sam dot wood at gmail dot com): un po» "
+"di codice per le playlist intelligenti è basata sulle sue classi in C++.\n"
 
-#: src/misc.c:180
+#: ../src/misc.c:187
 msgid "    mp3info:  mp3 playlength detection (http://ibiblio.org/mp3info/)\n"
 msgstr ""
-"mp3info:  rilevazione della durata dei brani mp3 (http://ibiblio.org/"
+"    mp3info:  rilevazione della durata dei brani mp3 (http://ibiblio.org/"
 "mp3info/)\n"
 
-#: src/misc.c:182
+#: ../src/misc.c:189
 msgid ""
 "    xmms:     dirbrowser, mp3 playlength detection (http://www.xmms.org)\n"
 msgstr ""
-"    xmms:     browser directory, rilevazione della durata dei brani mp3 "
+"    xmms:     sfoglia directory, rilevazione della durata dei brani mp3 "
 "(http://www.xmms.org)\n"
 
-#: src/misc.c:185
+#: ../src/misc.c:192
 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:200
+#: ../src/misc.c:207
 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:202
+#: ../src/misc.c:209
 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:204
+#: ../src/misc.c:211
 msgid "Hebrew: Assaf Gillat (gillata at gmail dot com)\n"
 msgstr "Ebraico: Assaf Gillat (gillata at gmail dot com)\n"
 
-#: src/misc.c:206
+#: ../src/misc.c:213
 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"
+"Italiano:  Daniele Forsi (dforsi at gmail dot com)\n"
 
-#: src/misc.c:208
+#: ../src/misc.c:215
 msgid "Japanese: Ayako Sano\n"
 msgstr "Giapponese: Ayako Sano\n"
 
-#: src/misc.c:210
+#: ../src/misc.c:217
 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:212
+#: ../src/misc.c:219
 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:936
-#, fuzzy, c-format
+#: ../src/misc.c:975
+#, c-format
 msgid "Could not process '%s' (no filename available)"
-msgstr "nessun nome di file disponibile"
+msgstr "Impossibile processare «%s» (nessun nome di file disponibile)"
 
-#: src/misc.c:1084
+#: ../src/misc.c:1129
 #, c-format
 msgid "Unknown token '%%%c' in template '%s'"
-msgstr "Token sconosciuto '%%%c' nella maschera '%s'"
+msgstr "Segnaposto sconosciuto «%%%c» nel modello «%s»"
 
-#: src/misc.c:1166
+#: ../src/misc.c:1212
 #, c-format
 msgid "Template ('%s') does not match file type '%s'\n"
-msgstr "La maschera ('%s') non coincide con il file '%s'\n"
+msgstr "Il modello («%s») non coincide con il tipo di file «%s»\n"
 
-#: src/misc.c:1247
+#: ../src/misc.c:1298
 #, c-format
 msgid "Error creating %s: %s\n"
 msgstr "Errore nella creazione di %s: %s\n"
 
-#. gint id,
-#. gboolean modal,
-#: src/misc_confirm.c:71
-msgid "Warning"
-msgstr "Attenzione"
+#: ../src/misc.c:1777
+#, c-format
+msgid ""
+"Writing preferences file '%s' failed (%s).\n"
+"\n"
+msgstr ""
+"La scrittura del file delle preferenze «%s» è fallita (%s).\n"
+"\n"
 
+#: ../src/misc.c:1779
+msgid "unspecified error"
+msgstr "errore non specificato"
+
+#: ../src/misc.c:1787
+#, c-format
+msgid ""
+"Writing preferences to the iPod (%s) failed: could not get path to Control "
+"Directory.\n"
+"\n"
+msgstr ""
+"La scrittura delle preferenze sull'iPod (%s) è fallita: impossibile "
+"raggiungere il percorso per la Control Directory.\n"
+"\n"
+
 #. title
-#: src/misc_confirm.c:72
-msgid "The following has occured:"
+#: ../src/misc_confirm.c:71
+msgid "The following has occurred:"
 msgstr "Si è verificato l'errore seguente:"
 
-#: src/misc_confirm.c:123
+#: ../src/misc_confirm.c:122
 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 "
@@ -3819,37 +4356,33 @@
 "iPod? Il numero di playlist di cui questa traccia fa parte è indicato tra "
 "parentesi."
 msgstr[1] ""
-"Sei sicuro di voler eliminare completamente le seguenti tracce dal tuo iPod? "
-"Il numero di playlist di cui ognuna di queste tracce fa parte è indicata tra "
+"Sei sicuro di voler eliminare completamente le seguenti tracce dall'iPod? Il "
+"numero di playlist di cui ognuna di queste tracce fa parte è indicato tra "
 "parentesi."
 
-#: src/misc_confirm.c:127
+#: ../src/misc_confirm.c:126
 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"
+msgid_plural "Delete Tracks Completely from iPod?"
+msgstr[0] "Cancellare completamente la traccia dall'iPod?"
+msgstr[1] "Cancellare completamente le tracce dall'iPod?"
 
-#: src/misc_confirm.c:138 src/misc_confirm.c:179
+#: ../src/misc_confirm.c:137 ../src/misc_confirm.c:178
 #, 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] ""
-"Sei sicuro di voler eliminare la seguente traccia\n"
-"dalla playlist \"%s\"?"
-msgstr[1] ""
-"Sei sicuro di voler eliminare le seguenti tracce\n"
-"dalla playlist \"%s\"?"
+msgstr[0] "Eliminare veramente la seguente traccia dalla playlist «%s»?"
+msgstr[1] "Eliminare veramente le seguenti tracce dalla playlist «%s»?"
 
-#: src/misc_confirm.c:142 src/misc_confirm.c:183
+#: ../src/misc_confirm.c:141 ../src/misc_confirm.c:182
 msgid "Remove Track From Playlist?"
 msgid_plural "Remove Tracks From Playlist?"
-msgstr[0] "Cancella la traccia dalla playlist?"
-msgstr[1] "Cancella le tracce dalla playlist?"
+msgstr[0] "Cancellare la traccia dalla playlist?"
+msgstr[1] "Cancellare le tracce dalla playlist?"
 
-#: src/misc_confirm.c:164
+#: ../src/misc_confirm.c:163
 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 "
@@ -3859,21 +4392,21 @@
 "harddisk? The number of playlists the tracks are member of is indicated in "
 "parentheses."
 msgstr[0] ""
-"Sei sicuro di voler eliminare completamente la seguente traccia\n"
-"dal tuo disco fisso? Il numero di playlist di cui questa traccia fa parte è "
+"Sei sicuro di voler eliminare completamente la seguente traccia dal tuo "
+"disco fisso? Il numero di playlist di cui questa traccia fa parte è indicato "
+"tra parentesi."
+msgstr[1] ""
+"Sei sicuro di voler eliminare completamente le seguenti tracce dal tuo disco "
+"fisso? Il numero di playlist di cui ognuna di queste tracce fa parte è "
 "indicato tra parentesi."
-msgstr[1] ""
-"Sei sicuro di voler eliminare completamente le seguenti tracce\n"
-"dal tuo disco fisso? Il numero di playlist di cui ognuna di queste tracce fa "
-"parte è indicata tra parentesi."
 
-#: src/misc_confirm.c:168
+#: ../src/misc_confirm.c:167
 msgid "Delete Track from Harddisk?"
 msgid_plural "Delete Tracks from Harddisk?"
-msgstr[0] "Cancella la traccia dal disco fisso?"
-msgstr[1] "Cancella le tracce dal disco fisso?"
+msgstr[0] "Cancellare la traccia dal disco fisso?"
+msgstr[1] "Cancellare le tracce dal disco fisso?"
 
-#: src/misc_confirm.c:193
+#: ../src/misc_confirm.c:192
 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 "
@@ -3889,93 +4422,91 @@
 msgstr[1] ""
 "Sei sicuro di voler eliminare completamente le seguenti tracce dal tuo "
 "database locale? Il numero di playlist di cui ognuna di queste tracce fa "
-"parte è indicata tra parentesi."
+"parte è indicato tra parentesi."
 
-#: src/misc_confirm.c:197
+#: ../src/misc_confirm.c:196
 msgid "Remove Track from Local Database?"
 msgid_plural "Remove Tracks from Local Database?"
-msgstr[0] "Rimuovere le traccia dal database locale?"
+msgstr[0] "Rimuovere la traccia dal database locale?"
 msgstr[1] "Rimuovere le tracce dal database locale?"
 
-#: src/misc_confirm.c:259
+#: ../src/misc_confirm.c:261
 #, c-format
 msgid "Deleted one track completely from iPod"
 msgid_plural "Deleted %d tracks completely from iPod"
-msgstr[0] "Cancella completamente una traccia dall'iPod"
-msgstr[1] "Cancella completamente %d tracce dall'iPod"
+msgstr[0] "Cancellata completamente una traccia dall'iPod"
+msgstr[1] "Cancellate completamente %d tracce dall'iPod"
 
-#: src/misc_confirm.c:265 src/misc_confirm.c:289
+#: ../src/misc_confirm.c:267 ../src/misc_confirm.c:291
 #, c-format
 msgid "Deleted %d track from playlist '%s'"
 msgid_plural "Deleted %d tracks from playlist '%s'"
-msgstr[0] "Cancella %d traccia dalla playlist '%s'"
-msgstr[1] "Cancella %d tracce dalla playlist '%s'"
+msgstr[0] "Cancellata %d traccia dalla playlist «%s»"
+msgstr[1] "Cancellate %d tracce dalla playlist «%s»"
 
-#: src/misc_confirm.c:283
+#: ../src/misc_confirm.c:285
 #, c-format
 msgid "Deleted one track from harddisk"
 msgid_plural "Deleted %d tracks from harddisk"
-msgstr[0] "Cancella la traccia dal disco fisso"
-msgstr[1] "Cancella %d tracce dal disco fisso"
+msgstr[0] "Cancellata una traccia dal disco fisso"
+msgstr[1] "Cancellate %d tracce dal disco fisso"
 
-#: src/misc_confirm.c:295
+#: ../src/misc_confirm.c:297
 #, c-format
 msgid "Deleted track from local database"
 msgid_plural "Deleted %d tracks from local database"
-msgstr[0] "Cancella la traccia dal database locale"
-msgstr[1] "Cancella %d tracce dal database locale"
+msgstr[0] "Cancellata la traccia dal database locale"
+msgstr[1] "Cancellate %d tracce dal database locale"
 
-#: src/misc_confirm.c:438
+#: ../src/misc_confirm.c:442
 msgid "Cannot remove entry 'All'"
-msgstr "Impossibile rimuovere la voce 'Tutti'"
+msgstr "Impossibile rimuovere la voce «Tutti»"
 
-#: src/misc_confirm.c:532
+#: ../src/misc_confirm.c:536
 #, c-format
 msgid "Removed all %d tracks from the iPod"
 msgstr "Eliminate tutte le %d tracce dall'iPod"
 
-#: src/misc_confirm.c:537
-#, fuzzy
+#: ../src/misc_confirm.c:541
 msgid "Removed all podcasts from the iPod"
-msgstr "Eliminate tutte le %d tracce dall'iPod"
+msgstr "Eliminati tutti i podcast dall'iPod"
 
-#: src/misc_confirm.c:546 src/misc_confirm.c:620
+#: ../src/misc_confirm.c:550 ../src/misc_confirm.c:624
 #, 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."
+msgstr[0] "Cancellata la playlist «%s» con %d traccia appartenente"
+msgstr[1] "Cancellata la playlist «%s» con le %d tracce appartenenti"
 
 #. first use playlist name
-#: src/misc_confirm.c:562 src/misc_confirm.c:636
+#: ../src/misc_confirm.c:566 ../src/misc_confirm.c:640
 #, c-format
 msgid "Deleted playlist '%s'"
-msgstr "Playlist cancellata '%s'"
+msgstr "Playlist eliminata «%s»"
 
-#: src/misc_confirm.c:596
+#: ../src/misc_confirm.c:600
 #, 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] ""
-"Cancellata la playlist '%s' con la %d traccia appartenente sul disco fisso."
+"Cancellata la playlist «%s» con %d traccia appartenente sul disco fisso"
 msgstr[1] ""
-"Cancellata la playlist '%s' con le %d tracce appartenenti sul disco fisso."
+"Cancellata la playlist «%s» con le %d tracce appartenenti sul disco fisso"
 
-#: src/misc_confirm.c:613
+#: ../src/misc_confirm.c:617
 #, c-format
 msgid "Removed all %d tracks from the database"
 msgstr "Rimosse tutte le %d tracce dal database"
 
-#: src/misc_confirm.c:691
+#: ../src/misc_confirm.c:695
 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?"
+msgstr "Eliminare veramente tutte le tracce dall'iPod?"
 
-#: src/misc_confirm.c:696
-#, fuzzy
+#: ../src/misc_confirm.c:700
 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?"
+msgstr "Eliminare veramente tutti i podcast dall'iPod?"
 
-#: src/misc_confirm.c:704
+#: ../src/misc_confirm.c:708
 #, c-format
 msgid ""
 "Are you sure you want to delete playlist '%s' and the following track "
@@ -3986,20 +4517,20 @@
 "completely from your ipod? The number of playlists the tracks are member of "
 "is indicated in parentheses."
 msgstr[0] ""
-"Sei sicuro di voler eliminare completamente la playlist '%s' e la traccia "
-"seguente dal tuo iPod? Il numero di playlist in cui �presentequesta traccia "
-"�indicato tra parentesi."
+"Sei sicuro di voler eliminare completamente la playlist «%s» e la traccia "
+"seguente dall'iPod? Il numero di playlist di cui questa traccia fa parte è "
+"indicato tra parentesi."
 msgstr[1] ""
-"Sei sicuro di voler eliminare completamente la playlist '%s' e le tracce "
-"seguenti dal tuo iPod? Il numero di playlist in cui presente ogni traccia "
-"�indicato tra parentesi."
+"Sei sicuro di voler eliminare completamente la playlist «%s» e le tracce "
+"seguenti dall'iPod? Il numero di playlist di cui ogni traccia fa parte è "
+"indicato tra parentesi."
 
-#: src/misc_confirm.c:715 src/misc_confirm.c:770
+#: ../src/misc_confirm.c:719 ../src/misc_confirm.c:774
 #, c-format
 msgid "Are you sure you want to delete the playlist '%s'?"
-msgstr "Sei sicuro di voler cancellare la playlist '%s'"
+msgstr "Cancellare veramente la playlist «%s»?"
 
-#: src/misc_confirm.c:741
+#: ../src/misc_confirm.c:745
 #, c-format
 msgid ""
 "Are you sure you want to delete playlist '%s' and remove the following track "
@@ -4010,19 +4541,19 @@
 "tracks from your harddisk? The number of playlists the tracks are member of "
 "is indicated in parentheses."
 msgstr[0] ""
-"Sei sicuro di voler eliminare la playlist '%s' e la traccia seguente dal tuo "
-"disco fisso? Il numero di playlist in cui �presentequesta traccia �indicato "
+"Sei sicuro di voler eliminare la playlist «%s» e la traccia seguente dal tuo "
+"disco fisso? Il numero di playlist di cui questa traccia fa parte è indicato "
 "tra parentesi."
 msgstr[1] ""
-"Sei sicuro di voler eliminare la playlist '%s' e le tracce seguenti dal tuo "
-"disco fisso? Il numero di playlist in cui presente ogni traccia �indicato "
+"Sei sicuro di voler eliminare la playlist «%s» e le tracce seguenti dal tuo "
+"disco fisso? Il numero di playlist di cui ogni traccia fa parte è indicato "
 "tra parentesi."
 
-#: src/misc_confirm.c:749
+#: ../src/misc_confirm.c:753
 msgid "Are you sure you want to remove all tracks from the database?"
-msgstr "Sei sicuro di voler eliminare tutte le tracce dal database?"
+msgstr "Eliminare veramente tutte le tracce dal database?"
 
-#: src/misc_confirm.c:758
+#: ../src/misc_confirm.c:762
 #, c-format
 msgid ""
 "Are you sure you want to delete playlist '%s' and remove the following track "
@@ -4033,15 +4564,15 @@
 "tracks from the database? The number of playlists the tracks are member of "
 "is indicated in parentheses."
 msgstr[0] ""
-"Sei sicuro di voler eliminare completamente la playlist '%s' e la traccia "
-"seguente dal database? Il numero di playlist in cui �presentequesta traccia "
-"�indicato tra parentesi."
+"Sei sicuro di voler eliminare completamente la playlist «%s» e la traccia "
+"seguente dal database? Il numero di playlist di cui questa traccia fa parte "
+"è indicato tra parentesi."
 msgstr[1] ""
-"Sei sicuro di voler eliminare completamente la playlist '%s' e le tracce "
-"seguente dal database? Il numero di playlist in cui �presen ognita traccia "
-"�indicato tra parensi"
+"Sei sicuro di voler eliminare completamente la playlist «%s» e le tracce "
+"seguenti dal database? Il numero di playlist di cui ogni traccia fa parte è "
+"indicato tra parentesi."
 
-#: src/misc_confirm.c:859
+#: ../src/misc_confirm.c:841
 msgid ""
 "Data has been changed and not been saved.\n"
 "OK to exit gtkpod?"
@@ -4049,131 +4580,147 @@
 "Ci sono dei dati modificati e non salvati.\n"
 "Uscire comunque da gtkpod?"
 
-#: src/misc_conversion.c:67
-#, fuzzy
+#: ../src/misc_conversion.c:66
 msgid "File type"
-msgstr "Dimensione"
+msgstr "Tipo file"
 
-#: src/misc_conversion.c:68
+#: ../src/misc_conversion.c:67
 msgid "PC File"
-msgstr "File PC"
+msgstr "File sul PC"
 
-#: src/misc_conversion.c:69
+#: ../src/misc_conversion.c:68
 msgid "iPod File"
-msgstr "File iPod"
+msgstr "File sull'iPod"
 
-#: src/misc_conversion.c:70
+#: ../src/misc_conversion.c:69
 msgid "iPod ID"
 msgstr "iPod ID"
 
 #. 10
-#: src/misc_conversion.c:71
+#: ../src/misc_conversion.c:70
 msgid "Track Nr (#)"
-msgstr "Traccia Num"
+msgstr "Numero traccia"
 
-#: src/misc_conversion.c:72
+#: ../src/misc_conversion.c:71
 msgid "Transferred"
-msgstr "Trasferiti"
+msgstr "Trasferito"
 
-#: src/misc_conversion.c:73
+#: ../src/misc_conversion.c:72
 msgid "File Size"
-msgstr "Dimensione"
+msgstr "Dimensione file"
 
-#: src/misc_conversion.c:74
+#: ../src/misc_conversion.c:73
 msgid "Play Time"
 msgstr "Durata"
 
 #. 20
-#: src/misc_conversion.c:81
+#: ../src/misc_conversion.c:80
 msgid "Date played"
 msgstr "Data riproduzione"
 
-#: src/misc_conversion.c:83
+#: ../src/misc_conversion.c:82
 msgid "Volume"
 msgstr "Volume"
 
-#: src/misc_conversion.c:84
+#: ../src/misc_conversion.c:83
 msgid "Soundcheck"
-msgstr "Controllo del suono"
+msgstr "Ver. livello sonoro"
 
 #. 25
-#: src/misc_conversion.c:86
+#: ../src/misc_conversion.c:85
 msgid "CD Nr"
-msgstr "CD Num"
+msgstr "Numero CD"
 
-#: src/misc_conversion.c:89
-#, fuzzy
+#: ../src/misc_conversion.c:88
 msgid "Category"
-msgstr "Categoria: "
+msgstr "Categoria"
 
-#: src/misc_conversion.c:90
+#: ../src/misc_conversion.c:89
 msgid "Description"
-msgstr ""
+msgstr "Descrizione"
 
 #. 30
-#: src/misc_conversion.c:91
+#: ../src/misc_conversion.c:90
 msgid "Podcast URL"
-msgstr ""
+msgstr "URL del podcast"
 
-#: src/misc_conversion.c:92
+#: ../src/misc_conversion.c:91
 msgid "Podcast RSS"
-msgstr ""
+msgstr "RSS del podcast"
 
-#: src/misc_conversion.c:93
-#, fuzzy
+#: ../src/misc_conversion.c:92
 msgid "Subtitle"
-msgstr "titolo"
+msgstr "Sottotitoli"
 
-#: src/misc_conversion.c:94
-#, fuzzy
+#: ../src/misc_conversion.c:93
 msgid "Date released"
-msgstr "Data riproduzione"
+msgstr "Data pubblicazione"
 
-#: src/misc_conversion.c:95
+#: ../src/misc_conversion.c:94
 msgid "Checked"
-msgstr ""
+msgstr "Selezionato"
 
 #. 35
-#: src/misc_conversion.c:96
-#, fuzzy
+#: ../src/misc_conversion.c:95
 msgid "Start time"
-msgstr "Durata"
+msgstr "Inizio"
 
-#: src/misc_conversion.c:97
-#, fuzzy
+#: ../src/misc_conversion.c:96
 msgid "Stop time"
-msgstr "Stop"
+msgstr "Fine"
 
-#: src/misc_conversion.c:98
+#: ../src/misc_conversion.c:97
 msgid "Remember Playback Position"
-msgstr ""
+msgstr "Ricorda la posizione raggiunta"
 
-#: src/misc_conversion.c:99
+#: ../src/misc_conversion.c:98
 msgid "Skip when Shuffling"
-msgstr ""
+msgstr "Salta quando riproduci casualmente"
 
-#: src/misc_conversion.c:100
+#: ../src/misc_conversion.c:99
 msgid "Artwork Path"
-msgstr ""
+msgstr "Percorso artwork"
 
-#: src/misc_conversion.c:113
+#. 40
+#: ../src/misc_conversion.c:100
+msgid "Media Type"
+msgstr "Tipo di media"
+
+#: ../src/misc_conversion.c:102
+msgid "TV Episode"
+msgstr "Episodio TV"
+
+#: ../src/misc_conversion.c:103
+msgid "TV Network"
+msgstr "Rete TV"
+
+#: ../src/misc_conversion.c:104
+msgid "Season Nr"
+msgstr "N° stagione"
+
+#. 45
+#: ../src/misc_conversion.c:105
+msgid "Episode Nr"
+msgstr "N° episodio"
+
+#: ../src/misc_conversion.c:118
 msgid "Name of file on PC, if available"
-msgstr "Nome del file sul pc, se disponibile"
+msgstr "Nome del file sul PC, se disponibile"
 
-#: src/misc_conversion.c:114
+#: ../src/misc_conversion.c:119
 msgid "Name of file on the iPod"
 msgstr "Nome del file sull'iPod"
 
 #. 10
-#: src/misc_conversion.c:116
+#: ../src/misc_conversion.c:121
 msgid "Track Nr. and total number of tracks on CD"
-msgstr "Num. Traccia e numero totale delle tracce sul CD"
+msgstr "N° traccia e numero totale di tracce sul CD"
 
-#: src/misc_conversion.c:117
+#: ../src/misc_conversion.c:122
 msgid "Whether the file has already been transferred to the iPod or not"
-msgstr "se il file è stato già trasferito sull'iPod"
+msgstr "Se il file è stato già trasferito sull'iPod o meno"
 
-#: src/misc_conversion.c:123
+#: ../src/misc_conversion.c:128
 msgid ""
 "Supposedly something that tells the iPod to increase or decrease the "
 "playback speed"
@@ -4181,116 +4728,119 @@
 "Probabilmente qualcosa che dice all'iPod di aumentare o diminuire la "
 "velocità di riproduzione"
 
-#: src/misc_conversion.c:125
+#: ../src/misc_conversion.c:130
 msgid "Number of times the track has been played"
 msgstr "Numero di volte in cui la traccia è stata riprodotta"
 
-#: src/misc_conversion.c:126
+#: ../src/misc_conversion.c:131
 msgid "Star rating from 0 to 5"
 msgstr "Votazione a stelle da 0 a 5"
 
-#: src/misc_conversion.c:127
+#: ../src/misc_conversion.c:132
 msgid "Date and time track has been added"
 msgstr "Data e ora in cui la traccia è stata aggiunta"
 
 #. 20
-#: src/misc_conversion.c:128
+#: ../src/misc_conversion.c:133
 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:129
+#: ../src/misc_conversion.c:134
 msgid "Date and time track has last been modified"
-msgstr "Data e ora in cui la traccia è stata modificat l'ultima voltaa"
+msgstr "Data e ora in cui la traccia è stata modificata l'ultima volta"
 
-#: src/misc_conversion.c:130
+#: ../src/misc_conversion.c:135
 msgid "Manual volume adjust"
-msgstr "Aggiustamento manuale del volume"
+msgstr "Regolazione manuale del volume"
 
-#: src/misc_conversion.c:131
+#: ../src/misc_conversion.c:136
 msgid ""
 "Volume adjust in dB (replay gain) -- you need to activate 'soundcheck' on "
 "the iPod"
 msgstr ""
-"Aggiustamento del volume in dB (guadagno di riproduzione) -- bisogna anche "
-"attivare 'soundcheck' sull'iPod"
+"Regolazione del volume in dB (guadagno di riproduzione) -- bisogna anche "
+"attivare «Ver. livello sonoro» sull'iPod"
 
 #. 25
-#: src/misc_conversion.c:134
+#: ../src/misc_conversion.c:139
 msgid "CD Nr. and total number of CDS in set"
-msgstr "CD num. e numero totale dei cd nell'insieme"
+msgstr "N° CD e numero totale dei CD nel cofanetto"
 
-#: src/misc_conversion.c:137
+#: ../src/misc_conversion.c:142
 msgid ""
 "The category (e.g. 'Technology' or 'Music') where the podcast was located."
 msgstr ""
+"La categoria (es. «Tecnologia» o «Musica») in cui si trovava il podcast."
 
-#: src/misc_conversion.c:138
+#: ../src/misc_conversion.c:143
 msgid "Accessible by selecting the center button on the iPod."
-msgstr ""
+msgstr "Accessibile selezionando il bottone centrale sull'iPod."
 
-#: src/misc_conversion.c:142
+#: ../src/misc_conversion.c:147
 msgid "Release date (for podcasts displayed next to the title on the iPod)"
 msgstr ""
+"Data di pubblicazione (per i podcast è mostrata accanto al titolo sull'iPod)"
 
-#: src/misc_conversion.c:649
+#: ../src/misc_conversion.c:713
 #, 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"
+msgstr "L'URI «%s» non è un URI assoluto usando lo schema dei file"
 
-#: src/misc_conversion.c:659
+#: ../src/misc_conversion.c:723
 #, c-format
 msgid "The local file URI '%s' may not include a '#'"
-msgstr "La URI del file locale '%s' non può includere '#'"
+msgstr "L'URI del file locale «%s» non può includere «#»"
 
-#: src/misc_conversion.c:676
+#: ../src/misc_conversion.c:740
 #, c-format
 msgid "The URI '%s' is invalid"
-msgstr "La URI '%s' non è valida"
+msgstr "L'URI «%s» non è valido"
 
-#: src/misc_conversion.c:688
+#: ../src/misc_conversion.c:752
 #, c-format
 msgid "The hostname of the URI '%s' is invalid"
-msgstr "Il nome dell'host della URI '%s' non è valido"
+msgstr "Il nome dell'host dell'URI «%s» non è valido"
 
-#: src/misc_conversion.c:704
+#: ../src/misc_conversion.c:768
 #, c-format
 msgid "The URI '%s' contains invalidly escaped characters"
-msgstr "La URI '%s' contiene caratteri non validi che sono stati saltati"
+msgstr "L'URI «%s» contiene caratteri di escape non validi"
 
-#: src/misc_playlist.c:68 src/misc_playlist.c:95 src/misc_playlist.c:430
+#: ../src/misc_playlist.c:67 ../src/misc_playlist.c:94
+#: ../src/misc_playlist.c:429
 msgid "Please enter a name for the new playlist"
 msgstr "Inserire un nome per la nuova playlist"
 
-#: src/misc_playlist.c:155
+#: ../src/misc_playlist.c:154
 msgid "AR:"
 msgstr "AR:"
 
-#: src/misc_playlist.c:158
+#: ../src/misc_playlist.c:157
 msgid "AL:"
 msgstr "AL:"
 
-#: src/misc_playlist.c:161
+#: ../src/misc_playlist.c:160
 msgid "GE:"
 msgstr "GE:"
 
-#: src/misc_playlist.c:164
+#: ../src/misc_playlist.c:163
 msgid "CO:"
 msgstr "CO:"
 
-#: src/misc_playlist.c:167
+#: ../src/misc_playlist.c:166
 msgid "YE:"
 msgstr "AN:"
 
-#: src/misc_playlist.c:195
+#: ../src/misc_playlist.c:194
 msgid "Unknown"
 msgstr "Sconosciuto"
 
-#: src/misc_playlist.c:273
+#: ../src/misc_playlist.c:272
 #, c-format
 msgid "Random (%d)"
 msgstr "Casuale (%d)"
 
-#: src/misc_playlist.c:298
+#: ../src/misc_playlist.c:297
 msgid ""
 "Auto Store of track view disabled.\n"
 "\n"
@@ -4298,83 +4848,82 @@
 "Salvataggio automatico dell'ordine delle tracce disabilitato.\n"
 "\n"
 
-#: src/misc_playlist.c:357
+#: ../src/misc_playlist.c:356
 msgid "Not Listed"
 msgstr "Mai elencati"
 
-#: src/misc_playlist.c:407
+#: ../src/misc_playlist.c:406
 #, c-format
 msgid "Created playlist '%s' with %d track."
 msgid_plural "Created playlist '%s' with %d tracks."
-msgstr[0] "Creata la playlist '%s' con %d traccia."
-msgstr[1] "Creata la playlist '%s' con %d tracce."
+msgstr[0] "Creata la playlist «%s» con %d traccia."
+msgstr[1] "Creata la playlist «%s» con %d tracce."
 
 #. n==0
-#: src/misc_playlist.c:418
+#: ../src/misc_playlist.c:417
 msgid "No tracks available, playlist not created"
 msgstr "Nessuna traccia disponibile, la playlist non è stata creata"
 
-#: src/misc_playlist.c:544
+#: ../src/misc_playlist.c:543
 #, c-format
 msgid "Most Listened (%d)"
-msgstr "Più sentite (%d)"
+msgstr "Più ascoltate (%d)"
 
-#: src/misc_playlist.c:585
+#: ../src/misc_playlist.c:584
 msgid "Never Listened"
-msgstr "Mai riprodotti"
+msgstr "Mai ascoltate"
 
-#: src/misc_playlist.c:625
+#: ../src/misc_playlist.c:624
 #, c-format
 msgid "Best Rated (%d)"
 msgstr "Le meglio votate (%d)"
 
-#: src/misc_playlist.c:667
+#: ../src/misc_playlist.c:666
 msgid "Unrated tracks"
 msgstr "Tracce senza voto"
 
-#: src/misc_playlist.c:672
+#: ../src/misc_playlist.c:671
 #, c-format
 msgid "Rated %d"
 msgstr "Voto (%d)"
 
-#: src/misc_playlist.c:715
+#: ../src/misc_playlist.c:714
 #, c-format
 msgid "Recent (%d)"
 msgstr "Recenti (%d)"
 
-#: src/misc_playlist.c:754
+#: ../src/misc_playlist.c:753
 msgid "Last Time"
-msgstr "Durata"
+msgstr "Ultima volta"
 
-#: src/misc_playlist.c:845
+#: ../src/misc_playlist.c:844
 msgid "Removal of dangling tracks with no files on PC was canceled."
 msgstr ""
-"La rimozione delle tracce pendenti senza file sul PC è stata cancellata."
+"La rimozione delle tracce fantasma senza file sul PC è stata annullata."
 
-#: src/misc_playlist.c:855
+#: ../src/misc_playlist.c:854
 msgid "Handling of dangling tracks with files on PC was canceled."
 msgstr ""
-"La gestione delle tracce pendenti con file presenti sul PC è stata "
-"cancellata."
+"La gestione delle tracce fantasma con file presenti sul PC è stata annullata."
 
-#: src/misc_playlist.c:883
+#: ../src/misc_playlist.c:882
 msgid "Dangling tracks with no files on PC were removed."
-msgstr "Le tracce pendenti senza file sul PC sono state rimosse."
+msgstr "Le tracce fantasma senza file sul PC sono state rimosse."
 
-#: src/misc_playlist.c:917
+#: ../src/misc_playlist.c:916
 #, c-format
 msgid "Processing '%s'"
-msgstr "Elaborazione di '%s'"
+msgstr "Elaborazione di «%s»"
 
-#: src/misc_playlist.c:941
+#: ../src/misc_playlist.c:943
 msgid "Dangling tracks with files on PC were handled."
-msgstr "Le tracce con i file sul PC sono state gestite."
+msgstr "Le tracce fantasma con i file sul PC sono state gestite."
 
-#: src/misc_playlist.c:974
+#: ../src/misc_playlist.c:976
 msgid "Track"
 msgstr "Traccia"
 
-#: src/misc_playlist.c:1017
+#: ../src/misc_playlist.c:1019
 msgid ""
 "You did not import the existing iTunesDB. This is most likely incorrect and "
 "will result in the loss of the existing database.\n"
@@ -4383,26 +4932,26 @@
 "cancel, you can import the existing database before calling this function "
 "again.\n"
 msgstr ""
-"Non hai importato l'iTunesDB esistente. Questo è quasi certamente sbagliato "
-"e risulterà in una perdita del database esistente.\n"
+"Non si è importato l'iTunesDB esistente. Questo è quasi certamente sbagliato "
+"e porterà alla perdita del database esistente.\n"
 "\n"
-"Premi 'OK' se si vuole procedere comunque o 'Annulla' se si vuole "
-"interrompere l'operazione. Se la interrompi, puoi importare il database "
+"Premere «Ok» se si vuole procedere comunque o «Annulla» se si vuole "
+"interrompere l'operazione. Se la si interrompe, si può importare il database "
 "esistente prima di richiamare di nuovo questa funzione.\n"
 
-#: src/misc_playlist.c:1031
+#: ../src/misc_playlist.c:1033
 msgid "Creating a tree of known files"
 msgstr "Creazione di un albero di file conosciuti"
 
-#: src/misc_playlist.c:1075
+#: ../src/misc_playlist.c:1077
 msgid "Checking iPOD files against known files in DB"
-msgstr "Controllo dei file dell'iPod verso i file conosciuti nel DB"
+msgstr "Controllo dei file dell'iPod con i file conosciuti nel DB"
 
-#: src/misc_playlist.c:1118
+#: ../src/misc_playlist.c:1120
 msgid "Orphaned"
 msgstr "Orfani"
 
-#: src/misc_playlist.c:1145
+#: ../src/misc_playlist.c:1147
 #, c-format
 msgid ""
 "The following orphaned file had already been added to the iPod again. It "
@@ -4410,17 +4959,17 @@
 "%s\n"
 "\n"
 msgstr ""
-"I seguenti file orfani sono già stati aggiunti all'iPod di nuovo. Verrà "
+"Il seguente file orfano era già stato aggiunto di nuovo all'iPod. Verrà "
 "rimosso alla prossima sincronizzazione:\n"
 "%s\n"
 "\n"
 
-#: src/misc_playlist.c:1173
+#: ../src/misc_playlist.c:1175
 #, c-format
 msgid "Found %d orphaned and %d dangling files. Processing..."
-msgstr "Trovati %d file orfani e %d pendenti. Elaborazione in corso..."
+msgstr "Trovati %d file orfani e %d fantasma. Elaborazione in corso..."
 
-#: src/misc_playlist.c:1197
+#: ../src/misc_playlist.c:1199
 #, c-format
 msgid ""
 "The following dangling track has a file on PC.\n"
@@ -4431,15 +4980,15 @@
 "Press OK to have them transfered from the files on next Sync, CANCEL to "
 "leave them as is."
 msgstr[0] ""
-"Le seguente traccia pendente ha un file sul PC.\n"
-"Premi OK per trasferirla dal file nella prossima sincronizzazione, CANCEL "
-"per lasciare tutto così"
+"La seguente traccia fantasma ha un file sul PC.\n"
+"Premere Ok per trasferirla dal file nella prossima sincronizzazione, Annulla "
+"per lasciare tutto così."
 msgstr[1] ""
-"Le seguenti %d tracce pendenti hanno file sul PC.\n"
-"Premi OK per trasferirle dai file nella prossima sincronizzazione, CANCEL "
-"per lasciare tutto così"
+"Le seguenti %d tracce fantasma hanno file sul PC.\n"
+"Premere Ok per trasferirle dai file nella prossima sincronizzazione, Annulla "
+"per lasciare tutto così."
 
-#: src/misc_playlist.c:1202
+#: ../src/misc_playlist.c:1204
 #, c-format
 msgid ""
 "The following dangling track doesn't have file on PC. \n"
@@ -4448,39 +4997,39 @@
 "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 seguente traccia pendente non ha un file sul PC.\n"
-"Premi OK per rimuoverla, CANCEL per lasciare tutto così."
+"La seguente traccia fantasma non ha un file sul PC.\n"
+"Premere Ok per rimuoverla, Annulla per lasciare tutto così."
 msgstr[1] ""
-"Le seguente tracce pendenti non hanno un file sul PC.\n"
-"Premi OK per rimuoverle, CANCEL per lasciare tutto così."
+"Le seguenti %d tracce fantasma non hanno un file sul PC.\n"
+"Premere Ok per rimuoverle, Annulla per lasciare tutto così."
 
 #. we want unique window for each
 #. gboolean modal,
-#: src/misc_playlist.c:1209
+#: ../src/misc_playlist.c:1211
 msgid "Dangling Tracks"
-msgstr "Tracce pendenti"
+msgstr "Tracce fantasma"
 
-#: src/misc_playlist.c:1232
+#: ../src/misc_playlist.c:1234
 #, c-format
 msgid "Found %d orphaned and %d dangling files. Done."
-msgstr "Trovati %d file orfani e %d pendenti. Terminato."
+msgstr "Trovati %d file orfani e %d fantasma. Terminato."
 
 #. update for count == 1, 21, 41 ... and for count == n
-#: src/misc_track.c:90 src/misc_track.c:364
+#: ../src/misc_track.c:89
 #, 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."
+msgstr[0] "Calcolato l'hash di %d traccia su %d."
+msgstr[1] "Calcolato l'hash di %d tracce su %d."
 
-#: src/misc_track.c:199
+#: ../src/misc_track.c:198
 #, 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:206
+#: ../src/misc_track.c:205
 #, c-format
 msgid ""
 "The following duplicate track has not been added to the master play list."
@@ -4488,382 +5037,431 @@
 "The following %d duplicate tracks have not been added to the master play "
 "list."
 msgstr[0] ""
-"La seguente traccia duplicata non è stata aggiunta alla playlist principale"
+"La seguente traccia duplicata non è stata aggiunta alla playlist principale."
 msgstr[1] ""
 "Le seguenti %d tracce duplicate non sono state aggiunte alla playlist "
-"principale"
+"principale."
 
 #. gint id,
 #. gboolean modal,
-#: src/misc_track.c:213
+#: ../src/misc_track.c:212
 msgid "Duplicate detection"
 msgstr "Rilevazione dei duplicati"
 
-#: src/misc_track.c:904
+#: ../src/misc_track.c:1269
 msgid "Local Database"
-msgstr "Database Locale"
+msgstr "Database locale"
 
 #. artwork is set
-#: src/misc_track.c:915
+#: ../src/misc_track.c:1280
 msgid "Embedded or filename was lost"
-msgstr ""
+msgstr "Incorporato o il nome del file è andato perso"
 
-#: src/misc_track.c:919
-#, fuzzy
+#: ../src/misc_track.c:1284
 msgid "Artwork not set"
-msgstr "non è impostato"
+msgstr "Artwork non impostato"
 
-#: src/misc_track.c:1527
+#: ../src/misc_track.c:1737
 #, c-format
+msgid "Could not find source file for '%s'. Track not copied."
+msgstr "Impossibile trovare il file sorgente per «%s». Traccia non copiata."
+
+#: ../src/misc_track.c:1973
+#, c-format
 msgid "drag and drop: ignored '%s'\n"
-msgstr "drag and drop: ignorato '%s'\n"
+msgstr "drag and drop: ignorato «%s»\n"
 
-#: src/mp3file.c:1276
+#: ../src/mp3file.c:1282
 #, c-format
 msgid "Error setting ID3 field: %s\n"
 msgstr "Errore nella impostazione del campo ID3: %s\n"
 
-#: src/mp3file.c:1300 src/mp3file.c:1373 src/mp3file.c:1522 src/mp3file.c:2160
+#: ../src/mp3file.c:1306 ../src/mp3file.c:1399 ../src/mp3file.c:1548
+#: ../src/mp3file.c:2186
 #, c-format
 msgid "ERROR while opening file: '%s' (%s).\n"
-msgstr "ERRORE nell'apertura del file: '%s' (%s).\n"
+msgstr "ERRORE nell'apertura del file: «%s» (%s).\n"
 
-#: src/mp3file.c:1593
+#: ../src/mp3file.c:1619
 #, c-format
 msgid "ERROR while writing tag to file: '%s' (%s).\n"
-msgstr "ERRORE nella scrittura del tag sul file: '%s' (%s).\n"
+msgstr "ERRORE nella scrittura dell'etichetta sul file: «%s» (%s).\n"
 
 #. Tracks with zero play length are ignored by iPod...
-#: src/mp3file.c:2326
+#: ../src/mp3file.c:2352
 #, c-format
 msgid "File \"%s\" has zero play length. Ignoring.\n"
-msgstr "Il file \"%s\" ha durata zero. Ignorato.\n"
+msgstr "Il file «%s» ha durata zero. Ignorato.\n"
 
-#: src/mp4file.c:221 src/mp4file.c:342 src/mp4file.c:461
+#: ../src/mp4file.c:227 ../src/mp4file.c:359
 #, c-format
-msgid "'%s' does not appear to be a mp4 audio file.\n"
-msgstr "'%s' non sembra essere un file audio mp4.\n"
+msgid "'%s' does not appear to be a mp4 audio or video file.\n"
+msgstr "«%s» non sembra essere un file audio mp4 o un file video.\n"
 
-#: src/mp4file.c:231 src/mp4file.c:352
+#: ../src/mp4file.c:237 ../src/mp4file.c:369
 #, 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"
+msgstr "Impossibile aprire «%s» in lettura, o il file non è un file mp4.\n"
 
-#: src/mp4file.c:472
+#: ../src/mp4file.c:478
 #, 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:489
+#, 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"
+msgstr "Impossibile aprire «%s» in scrittura, o il file non è un file mp4.\n"
 
-#: src/mp4file.c:485
+#: ../src/mp4file.c:502
 #, 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 ""
-"Importazione di '%s' fallita: m4a/m4p/m4b non è supportata senza librerie "
+"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:491
+#: ../src/mp4file.c:508
 #, 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 ""
-"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"
+"Aggiornamento fallito dei metadati m4a/m4p/m4b per «%s»: m4a/m4p/m4b non "
+"sono supportati senza la libreria mp4v2. Devi compilare i sorgenti gtkpod "
+"insieme alla libreria mp4v2.\n"
 
-#: src/mp4file.c:497
-#, fuzzy, c-format
+#: ../src/mp4file.c:514
+#, 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"
+"Aggiornamento fallito di soundcheck m4a/m4p/m4b per «%s»: m4a/m4p/m4b non "
+"sono supportati senza la libreria mp4v2. Devi compilare i sorgenti gtkpod "
+"insieme alla libreria mp4v2.\n"
 
-#: src/prefs.c:307
+#: ../src/oggfile.c:62 ../src/wavfile.c:107
 #, c-format
+msgid "Could not open '%s' for reading.\n"
+msgstr "Impossibile aprire il file «%s» in lettura.\n"
+
+#: ../src/oggfile.c:73
+#, fuzzy, c-format
+msgid "'%s' does not appear to be an ogg audio file.\n"
+msgstr "«%s» non sembra essere un file audio mp4.\n"
+
+#: ../src/oggfile.c:150
+#, fuzzy, c-format
+msgid ""
+"Import of '%s' failed: ogg not supported without the ogg library. You must "
+"compile the gtkpod source together with the ogg library.\n"
+msgstr ""
+"Importazione di «%s» fallita: m4a/m4p/m4b non è supportata senza librerie "
+"mp4v2. Devi compilare i sorgenti di gtkpod insieme alla libreria mp4v2.\n"
+
+#: ../src/oggfile.c:156
+#, fuzzy, c-format
+msgid ""
+"ogg metadata update for '%s' failed: ogg not supported without the ogg "
+"library. You must compile the gtkpod source together with the ogg library.\n"
+msgstr ""
+"Aggiornamento fallito dei metadati m4a/m4p/m4b per «%s»: m4a/m4p/m4b non "
+"sono supportati senza la libreria mp4v2. Devi compilare i sorgenti gtkpod "
+"insieme alla libreria mp4v2.\n"
+
+#: ../src/prefs.c:356
+#, c-format
 msgid "gtkpod version %s usage:\n"
 msgstr "uso di gtkpod versione %s:\n"
 
-#: src/prefs.c:308
+#: ../src/prefs.c:357
 msgid "  -h, --help:   display this message\n"
 msgstr "  -h, --help:   mostra questo messaggio\n"
 
-#: 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:358
+msgid "  -p <file>:    increment playcount for file by one\n"
+msgstr "  -p <file>:incrementa di uno il contatore delle riproduzioni\n"
 
-#: src/prefs.c:310
+#: ../src/prefs.c:359
+msgid "  --hash <file>:print gtkpod hash for file\n"
+msgstr "  --hash <file>:stampa l'hash di gtkpod per il file\n"
+
+#: ../src/prefs.c:360
 msgid "  -m path:      define the mountpoint of your iPod\n"
-msgstr "  -m path       definisci il punto di montaggio del tuo iPod\n"
+msgstr "  -m percorso   definisce il punto di montaggio dell'iPod\n"
 
-#: src/prefs.c:311
+#: ../src/prefs.c:361
 msgid "  --mountpoint: same as '-m'.\n"
-msgstr "  --mountpoint: come '-m'.\n"
+msgstr "  --mountpoint: come «-m».\n"
 
-#: src/prefs.c:312
+#: ../src/prefs.c:362
 msgid "  -a:           import database automatically after start.\n"
 msgstr "  -a:           importa il database automaticamente all'avvio.\n"
 
-#: src/prefs.c:313
+#: ../src/prefs.c:363
 msgid "  --auto:       same as '-a'.\n"
-msgstr "  --auto:       come '-a'.\n"
+msgstr "  --auto:       come «-a».\n"
 
-#: src/prefs_window.c:119
+#: ../src/prefs.c:560
+#, c-format
+msgid "Couldn't create ~/.gtkpod\n"
+msgstr "Impossibile creare ~/.gtkpod\n"
+
+#: ../src/prefs_window.c:134
 msgid "Please select command for 'Play Now'"
-msgstr "Selezionare il comando per 'Riproduci Ora'"
+msgstr "Selezionare il comando per «Riproduci ora»"
 
-#: src/prefs_window.c:120
+#: ../src/prefs_window.c:135
 msgid "Please select command for 'Enqueue'"
-msgstr "Selezionare la riga di comando per 'Metti in coda'"
+msgstr "Selezionare il comando per «Metti in coda»"
 
-#: src/prefs_window.c:121
+#: ../src/prefs_window.c:136
 msgid "Please select the mp3gain executable"
-msgstr "Selezionare Path esatta per l'eseguibile 'mp3gain'"
+msgstr "Selezionare l'eseguibile di mp3gain"
 
-#: src/prefs_window.c:124
+#: ../src/prefs_window.c:137
+msgid "Please select the aacgain executable"
+msgstr "Selezionare l'eseguibile di aacgain"
+
+#: ../src/prefs_window.c:138
 msgid "Select the mserv music root directory"
-msgstr "Seleziona la directory musicale radice di mserv"
+msgstr "Selezionare la directory musicale radice di mserv"
 
-#: src/prefs_window.c:125
+#: ../src/prefs_window.c:139
 msgid "Select the mserv trackinfo root directory"
-msgstr "Seleziona la directory trackinfo radice di mserv"
+msgstr "Selezionare la directory trackinfo radice di mserv"
 
-#: src/prefs_window.c:127
-#, fuzzy
-msgid "Please select the aacgain executable"
-msgstr "Selezionare Path esatta per l'eseguibile 'mp3gain'"
+#: ../src/prefs_window.c:140
+msgid "Select the ogg/vorbis converter command"
+msgstr "Selezionare il comando per il convertitore ogg/vorbis"
 
-#: src/prefs_window.c:911 src/prefs_window.c:929
+#: ../src/prefs_window.c:141
+msgid "Select the flac converter command"
+msgstr "Selezionare il comando per il convertitore flac"
+
+#: ../src/prefs_window.c:142
+msgid "Select the m4a converter command."
+msgstr "Selezionare il comando per il convertitore m4a."
+
+#: ../src/prefs_window.c:143
+msgid "Select the mp3 converter command."
+msgstr "Selezionare il comando per il convertitore mp3."
+
+#: ../src/prefs_window.c:144
+msgid "Select the wav converter command."
+msgstr "Selezionare il comando per il convertitore wav."
+
+#: ../src/prefs_window.c:211 ../src/repository.c:662
+#, c-format
+msgid ""
+"<i>Have a look at the scripts provided in '%s'. If you write a new script or "
+"improve an existing one, please send it to jcsjcs at users.sourceforge.net "
+"for inclusion into the next release.</i>"
+msgstr ""
+"<i>Consultare lo script fornito in «%s». Se scrivi un nuovo script, mandalo "
+"a jcsjcs at users.sourceforge.net per la inclusione nella prossima release.</"
+"i>"
+
+#: ../src/prefs_window.c:986 ../src/prefs_window.c:1004
 msgid "Preferences not updated"
 msgstr "Preferenze non aggiornate"
 
-#: src/prefs_window.c:938
+#: ../src/prefs_window.c:1013
 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
+#: ../src/repository.c:573 ../src/repository.c:2395
 msgid "Set backup file"
-msgstr ""
+msgstr "Impostare il file di backup"
 
-#: src/repository.c:615
-#, fuzzy
+#: ../src/repository.c:612
 msgid "Select directory for synchronization"
-msgstr "Seleziona una directory da aggiungere ricorsivamente"
+msgstr "Selezionare una directory per la sincronizzazione"
 
-#: src/repository.c:641
+#: ../src/repository.c:638
 msgid "Please select command to sync contacts"
 msgstr "Selezionare il comando per sincronizzare i contatti"
 
-#: src/repository.c:647
+#: ../src/repository.c:644
 msgid "Please select command to sync calendar"
-msgstr "Sincronizzare il comando per sincronizzare i calendari"
+msgstr "Selezionare il comando per sincronizzare il calendario"
 
-#: src/repository.c:653
-#, fuzzy
+#: ../src/repository.c:650
 msgid "Please select command to sync notes"
-msgstr "Selezionare il comando per sincronizzare i contatti"
+msgstr "Selezionare il comando per sincronizzare le note"
 
-#: src/repository.c:665
-#, 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>"
-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/repository.c:732
-#, fuzzy
+#: ../src/repository.c:729
 msgid "Smart playlist updated."
-msgstr "Playlist Intelligente"
+msgstr "Playlist intelligente aggiornata."
 
-#: src/repository.c:1193
-#, fuzzy
+#: ../src/repository.c:1190
 msgid "Podcasts Repository"
-msgstr "Cancella dall'iPod"
+msgstr "Archivio dei podcast"
 
-#: src/repository.c:1197
-#, fuzzy
+#: ../src/repository.c:1194
 msgid "Local Repository"
-msgstr "Cancella dall'iPod"
+msgstr "Archivio locale"
 
-#: src/repository.c:1351
-#, fuzzy
+#: ../src/repository.c:1348
 msgid "Master Playlist"
-msgstr "...playlist principale"
+msgstr "Playlist principale"
 
-#: src/repository.c:1355
-#, fuzzy
+#: ../src/repository.c:1352
 msgid "Podcasts Playlist"
-msgstr "Playlist Intelligente"
+msgstr "Playlist dei podcast"
 
-#: src/repository.c:1363
-#, fuzzy
+#: ../src/repository.c:1360
 msgid "Regular Playlist"
-msgstr "Playlist Intelligente"
+msgstr "Playlist normale"
 
-#: src/repository.c:2426
-#, fuzzy
+#: ../src/repository.c:2423
 msgid "Set local repository file"
-msgstr "Cancella dall'iPod"
+msgstr "Imposta il file dell'archivio locale"
 
-#: src/repository.c:2525
-#, fuzzy
+#: ../src/repository.c:2522
 msgid "New Repository"
-msgstr "Cancella dall'iPod"
+msgstr "Nuovo archivio"
 
-#: src/support.c:90 src/support.c:114
+#: ../src/sha1.c:186
+msgid "Hashed file is 0 bytes long\n"
+msgstr ""
+
+#: ../src/sha1.c:239
 #, fuzzy, c-format
-msgid "Couldn't find pixmap file: %s"
-msgstr "Impossibile cambiare il tag del file: %s\n"
+msgid "Could not open '%s' to calculate SHA1 checksum: %s\n"
+msgstr ""
+"Impossibile aprire il file «%s» in scrittura (%s).\n"
+"\n"
 
-#: src/syncdir.c:237
+#: ../src/syncdir.c:237
 #, c-format
 msgid "Sync summary for %s/%s\n"
-msgstr ""
+msgstr "Riepilogo della sincronizzazione per %s/%s\n"
 
-#: src/syncdir.c:246
-#, fuzzy
+#: ../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 traccia seguente è stata aggiornata"
-msgstr[1] "Le %d tracce seguenti sono state aggiornate"
+msgstr[0] "La traccia seguente è stata aggiunta o aggiornata:\n"
+msgstr[1] "Le %d tracce seguenti sono state aggiunte o aggiornate:\n"
 
-#: src/syncdir.c:255
-#, fuzzy
+#: ../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] "Prima di rimuovere completamente le tracce dall'iPod"
-msgstr[1] "Prima di rimuovere completamente le tracce dall'iPod"
+msgstr[0] "La traccia seguente è stata completamente rimossa dall'iPod:\n"
+msgstr[1] "La tracce seguenti sono state completamente rimosse dall'iPod:\n"
 
-#: src/syncdir.c:264
-#, fuzzy
+#: ../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 seguente traccia duplicata è stata rimossa."
-msgstr[1] "Le seguenti %d tracce duplicate sono state rimosse."
+msgstr[0] "La traccia seguente è stata completamente rimossa dall'archivio:\n"
+msgstr[1] ""
+"Le tracce seguenti sono state completamente rimosse dall'archivio:\n"
 
-#: src/syncdir.c:271
-#, fuzzy
+#: ../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 seguente traccia duplicata non è stata aggiunta alla playlist principale"
+msgstr[0] "La traccia seguente è stata completamente rimossa dalla playlist:\n"
 msgstr[1] ""
-"Le seguenti %d tracce duplicate non sono state aggiunte alla playlist "
-"principale"
+"Le tracce seguenti sono state completamente rimosse dalla playlist:\n"
 
-#: src/syncdir.c:277
+#: ../src/syncdir.c:277
 msgid "Nothing was changed.\n"
-msgstr ""
+msgstr "Nessun cambiamento.\n"
 
-#: src/syncdir.c:282
+#: ../src/syncdir.c:282
 msgid "Sync summary"
-msgstr ""
+msgstr "Riepilogo della sincronizzazione"
 
-#: src/tools.c:119
+#: ../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"
+"Could not find '%s'.\n"
+"Please specifiy the exact path in the Tools section of the preference dialog "
+"or install the program if it is not installed on your system.\n"
 "\n"
 msgstr ""
-"Impossibile trovare il comando '%s'.\n"
+"Impossibile trovare «%s».\n"
+"Specificare il percorso esatto nella sezione «Strumenti» della finestra di "
+"dialogo delle preferenze o installare il programma se non è installato nel "
+"sistema.\n"
 "\n"
-"Per favore verifica le impostazioni nella sezione 'Strumenti' della "
-"finestradi dialogo.\n"
-"\n"
 
-#: src/tools.c:204
-#, fuzzy, c-format
+#: ../src/tools.c:204
+#, c-format
 msgid ""
 "Execution of '%s' failed.\n"
 "\n"
-msgstr "Esecuzione di mp3gain ('%s') fallita."
+msgstr ""
+"Esecuzione di «%s» fallita.\n"
+"\n"
 
-#: src/tools.c:249
-#, fuzzy, c-format
+#: ../src/tools.c:249
+#, c-format
 msgid ""
 "Did not normalize '%s'. Set mp3gain 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"
+"Non normalizzato «%s». Impostare il percorso di mp3gain nella sezione "
+"Strumenti delle preferenze.\n"
 
-#: src/tools.c:259
-#, fuzzy, c-format
+#: ../src/tools.c:259
+#, 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"
+"Non normalizzato «%s». Impostare il percorso di aacgain nella sezione "
+"Strumenti delle preferenze.\n"
 
-#: src/tools.c:384
+#: ../src/tools.c:386
 msgid "Normalizing..."
 msgstr "Normalizzazione in corso..."
 
-#: src/tools.c:434
+#: ../src/tools.c:436
 #, c-format
 msgid "%s - %s"
 msgstr "%s - %s"
 
-#: src/tools.c:460
+#: ../src/tools.c:462
 msgid "Aborting..."
 msgstr "Interruzione in corso..."
 
-#: src/tools.c:464
+#: ../src/tools.c:466
 msgid "Will abort after current mp3gain process ends."
 msgstr ""
-"L'operazione verrà interrotta alla conclusione del prossimo  processo di "
-"mp3gain"
+"L'operazione verrà interrotta alla conclusione del processo corrente di "
+"mp3gain."
 
-#: src/tools.c:490
+#: ../src/tools.c:492
 #, c-format
 msgid ""
 "'%s-%s' (%s) could not be normalized.\n"
 "\n"
 msgstr ""
-"'%s-%s' (%s) non può essere normalizzata.\n"
+"'%s-%s» (%s) non può essere normalizzata.\n"
 "\n"
 
-#: src/tools.c:529
+#: ../src/tools.c:531
 #, 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"
+msgstr[0] "Normalizzata %d traccia su %d."
+msgstr[1] "Normalizzate %d tracce su %d."
 
-#: src/tools.c:632
+#: ../src/tools.c:634
 msgid ""
 "Please specify the command to be called on the 'Tools' section of the "
 "preferences dialog.\n"
 msgstr ""
-"Specificare il comando da richiamare nella sezione 'Strumenti' della "
-"finestra delle preferenze.\n"
+"Specificare il comando da richiamare nella sezione «Strumenti» della "
+"finestra di dialogo delle preferenze.\n"
 
-#: src/tools.c:644
+#: ../src/tools.c:646
 #, c-format
 msgid ""
 "Could not find the command '%s'.\n"
@@ -4871,576 +5469,46 @@
 "Please verify the setting in the 'Tools' section of the preferences dialog.\n"
 "\n"
 msgstr ""
-"Impossibile trovare il comando '%s'.\n"
+"Impossibile trovare il comando «%s».\n"
 "\n"
-"Per favore verifica le impostazioni nella sezione 'Strumenti' della "
-"finestradi dialogo.\n"
+"Verificare le impostazioni nella sezione «Strumenti» della finestra di "
+"dialogo delle preferenze.\n"
 "\n"
 
-#: src/tools.c:685
+#: ../src/tools.c:687
 #, c-format
 msgid ""
 "'%s' returned the following output:\n"
 "%s\n"
 msgstr ""
-"'%s' ha restituito il seguente output:\n"
+"'%s» ha restituito il seguente output:\n"
 "%s\n"
 
-#: src/tools.c:752
+#: ../src/tools.c:754
 #, c-format
 msgid "No command set for '%s'"
-msgstr "Nessun comando impostato per '%s'"
+msgstr "Nessun comando impostato per «%s»"
 
-#: src/tools.c:772
+#: ../src/tools.c:774
 #, c-format
 msgid "Could not find command '%s' specified for '%s'"
-msgstr "Impossibile trovare il comando '%s' specificato per '%s'"
+msgstr "Impossibile trovare il comando «%s» specificato per «%s»"
 
-#: src/wavfile.c:107
+#: ../src/wavfile.c:181
 #, c-format
-msgid "Could not open '%s' for reading.\n"
-msgstr "Impossibile aprire il file '%s' in lettura.\n"
-
-#: src/wavfile.c:181
-#, c-format
 msgid "%s does not appear to be a supported wav file.\n"
-msgstr "%s non sembra essere un file audio wav supportato.\n"
+msgstr "%s non sembra essere un file wav supportato.\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 ""
-#~ "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."
+#~ msgid "label21"
+#~ msgstr "label21"
 
-#~ msgid "Handle mounting/unmounting of iPod drive"
-#~ msgstr "Gestisci montaggio/smontaggio del drive iPod"
+#~ msgid "window1"
+#~ msgstr "window1"
 
 #, fuzzy
-#~ msgid "<b>Artwork</b>"
-#~ msgstr "<b>Importa</b>"
+#~ msgid "<b>Import</b>"
+#~ msgstr "<b>mserv</b>"
 
-#~ msgid "_Offline"
-#~ msgstr "_Offline"
-
-#~ 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."
-
 #, fuzzy
-#~ msgid "Edit Repository Properties"
-#~ msgstr "Opzioni di ordinamento"
-
-#~ msgid "Currently no iPod database selected"
-#~ msgstr "Nessun database iPod è stato selezionato al momento"
-
-#~ msgid "No playlist selected."
-#~ msgstr "Nessuna playlist selezionata."
-
-#~ msgid "Could not delete backup file: \"%s\"\n"
-#~ msgstr "Impossibile cancellare il file di backup: \"%s\"\n"
-
-#~ msgid "No tracks selected."
-#~ msgstr "Nessuna traccia selezionata."
-
-#~ msgid "Problem creating iPod directory: '%s'."
-#~ msgstr "Problemi nella creazione delle directory dell'iPod: '%s'."
-
-#~ msgid "Successfully created iPod directories in '%s'."
-#~ msgstr "Directory dell'iPod create con successo ('%s')."
-
-#~ msgid "Create iPod directories"
-#~ msgstr "Crea le directory dell'iPod"
-
-#~ msgid "OK to create the following directories?"
-#~ msgstr "Creare le directory seguenti?"
-
-#~ 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."
-
-#~ 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"
-
-#~ msgid "  --offline:    same as '-o'.\n"
-#~ msgstr " --offline:    come '-o'.\n"
-
-#~ msgid "Error while reading prefs: %s\n"
-#~ msgstr "Errore nella lettura delle preferenze: %s\n"
-
-#~ msgid "Unable to open config file '%s' for reading\n"
-#~ msgstr "Impossibile aprire il file di configurazione '%s' in lettura\n"
-
-#~ msgid "Unknown option: %s\n"
-#~ msgstr "Opzione sconosciuta: %s\n"
-
-#~ msgid "# delete confirmation\n"
-#~ msgstr "# conferma la cancellazione\n"
-
-#~ msgid "# sort tab: select 'All', last selected page (=category)\n"
-#~ msgstr ""
-#~ "#blocco di ordinamento: seleziona 'Tutti', ultima pagina selezionata "
-#~ "(=category)\n"
-
-#~ msgid "# autoselect master playlist?\n"
-#~ msgstr "# seleziona automaticamente la playlist principale?\n"
-
-#~ msgid "# title=0, artist, album, genre, composer\n"
-#~ msgstr "# titolo=0, artista, album, genere, compositore\n"
-
-#~ msgid "# track_nr=5, ipod_id, pc_path, transferred\n"
-#~ msgstr "# traccia_num=5, ipod_id, pc_path, trasferita\n"
-
-#~ msgid "# autoset: set empty tag to filename?\n"
-#~ msgstr ""
-#~ "# impostazione: impostare un tag vuoto al posto del nome del file?\n"
-
-#~ msgid "Unable to open '%s' for writing\n"
-#~ msgstr "Impossibile aprire '%s' per la scrittura\n"
-
-#~ 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"
-
-#~ msgid "Unable to 'mkdir %s'\n"
-#~ msgstr "Impossibile eseguire 'mkdir %s'\n"
-
-#~ msgid "prefs_set_toolbar_style: illegal style '%d' ignored\n"
-#~ msgstr "prefs_set_toolbar_style: stile non legale '%d' ignorato\n"
-
-#~ msgid "prefs_set_pm_sort: illegal type '%d' ignored\n"
-#~ msgstr "prefs_set_pm_sort: tipo non legale '%d' ignorato\n"
-
-#~ msgid "'%s': no arguments (%%...) allowed.\n"
-#~ msgstr "'%s': nessun argomento (%%...) permesso.\n"
-
-#~ msgid "'%s': only '%%[%s]' allowed.\n"
-#~ msgstr "'%s': è permesso solo '%%[%s]'.\n"
-
-#~ msgid "_Read iTunesDB"
-#~ msgstr "_Leggi l'iTunesDB"
-
-#~ msgid "Synchronize _iTunesDB"
-#~ msgstr "Sincronizza l'_iTunesDB"
-
-#~ msgid "Edit"
-#~ msgstr "Modifica"
-
-#~ msgid "Read Existing Database from Disk/iPod"
-#~ msgstr "Leggi il database esistente dal disco/iPod"
-
-#~ msgid "Read"
-#~ msgstr "Leggi"
-
-#~ msgid "Write Changes to Disk/iPod"
-#~ msgstr "Scrivi le modifiche sul disco/iPod"
-
-#~ msgid "Sync"
-#~ msgstr "Sincronizza"
-
-#, fuzzy
-#~ msgid "Update Tracks"
-#~ msgstr "Tracce senza voto"
-
-#~ msgid "Normalize"
-#~ msgstr "Normalizza"
-
-#, fuzzy
-#~ msgid "Podcasts Preferences"
-#~ msgstr "_Modifica le preferenze"
-
-#~ msgid "file not found"
-#~ msgstr "file non trovato"
-
-#~ msgid "Unmounting of '%s' (%s) unsuccessful."
-#~ msgstr "Smontaggio di '%s' (%s) fallito."
-
-#~ msgid "Unmounting of '%s' unsuccessful."
-#~ msgstr "Smontaggio di '%s' fallito."
-
-#~ msgid "Update"
-#~ msgstr "Aggiorna"
-
-#~ msgid "Sync Dirs"
-#~ msgstr "Sincronizza le directory"
-
-#~ msgid "Sync dirs of selected entry in which sort tab?"
-#~ msgstr "Sincronizza le directory delle voci di quale blocco di ordinamento?"
-
-#~ msgid "Syncing directory '%s'"
-#~ msgstr "Sincronizzazione della directory '%s' in corso"
-
-#~ msgid "Syncing completed. No files deleted."
-#~ msgstr "Sincronizzazione completata. Nessun file cancellato."
-
-#~ msgid "Never delete any files when syncing"
-#~ msgstr "Non cancellare i file durante la sincronizzazione"
-
-#~ msgid "Syncing completed."
-#~ msgstr "Sincronizzazione completata."
-
-#~ msgid "Syncing aborted"
-#~ msgstr "Sincronizzazione abortita"
-
-#~ msgid "No tracks in selection"
-#~ msgstr "Nessuna traccia selezionata"
-
-#~ msgid "'%s' is not a directory. Ignored.\n"
-#~ msgstr "'%s' non è una directory. Ignorata.\n"
-
-#~ 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"
-
-#~ msgid "No valid directories have been found. Sync aborted.\n"
-#~ msgstr ""
-#~ "Nessuna directory valida è stata trovata. Sincronizzazione abortita.\n"
-
-#~ 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"
-
-#~ msgid ""
-#~ "The following directories will be synchronized:\n"
-#~ "\n"
-#~ msgstr ""
-#~ "La directory seguente verrà sincronizzata:\n"
-#~ "\n"
-
-#~ msgid "Synchronize directories"
-#~ msgstr "Sincronizza le directory"
-
-#~ msgid "Syncing contacts, calendar and notes..."
-#~ msgstr "Sincronizzazione di contatti, calendari e note..."
-
-#~ msgid "_Synchronize Directories"
-#~ msgstr "_Sincronizza le directory"
-
-#~ 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."
-
-#~ 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 "Delete tracks that have been removed"
-#~ msgstr "Cancella le tracce che sono state rimosse"
-
-#~ msgid "Confirm before removing tracks"
-#~ msgstr "Conferma prima di rimuovere le tracce"
-
-#~ msgid ""
-#~ "Before removing tracks completely when\n"
-#~ "synchronizing directories"
-#~ msgstr ""
-#~ "Prima di rimuovere completamente le tracce durante la\n"
-#~ "sincronizzazione delle directory"
-
-#, fuzzy
-#~ msgid "Add"
-#~ msgstr "Aggiunta"
-
-#, fuzzy
-#~ msgid "Delete"
-#~ msgstr "_Tracce Cancellate"
-
-#, fuzzy
-#~ msgid "Name: "
-#~ msgstr "Nome utente: "
-
-#, fuzzy
-#~ msgid "<b>File options</b>"
-#~ msgstr "<b>Conferma la cancellazione</b>"
-
-#, fuzzy
-#~ msgid " days old"
-#~ msgstr "giorni"
-
-#, fuzzy
-#~ msgid "Delete once copied to iPod"
-#~ msgstr "Cancella completamente una traccia dall'iPod"
-
-#, fuzzy
-#~ msgid "Create podcast logfile at:"
-#~ msgstr "Crea un File Playlist"
-
-#, fuzzy
-#~ msgid "<b>iPod options</b>"
-#~ msgstr "<b>Suggerimenti</b>"
-
-#, fuzzy
-#~ msgid "Automatically sync to iPod"
-#~ msgstr "Seleziona automaticamente..."
-
-#, fuzzy
-#~ msgid "Delete from iPod when "
-#~ msgstr "Cancella dall'iPod"
-
-#, fuzzy
-#~ msgid "Delete from iPod if podcast has been played"
-#~ msgstr "Data e ora in cui la traccia è stata riprodotta l'ultima volta"
-
-#, fuzzy
-#~ msgid "Abort selected"
-#~ msgstr "Nessuna traccia selezionata."
-
-#~ msgid "Export Tracks"
-#~ msgstr "Tracce da esportare"
-
-#~ msgid ""
-#~ "Icons of buttons were made by Nicolas Chariot.\n"
-#~ "\n"
-#~ "\n"
-#~ msgstr ""
-#~ "Le icone dei buttoni sono state fatte da Nicolas Chariot.\n"
-#~ "\n"
-#~ "\n"
-
-#~ msgid "Settings are not saved.\n"
-#~ msgstr "Impostazioni non salvate.\n"
-
-#~ msgid "_Delete But Keep Tracks"
-#~ msgstr "_Cancella ma preserva le tracce"
-
-#~ msgid "_Delete Completely From iPod"
-#~ msgstr "_Cancella completamente dall'iPod"
-
-#~ msgid " iPod Mount _Point:"
-#~ msgstr " _Punto di montaggio dell'iPod"
-
-#~ msgid "Import"
-#~ msgstr "Importa"
-
-#~ msgid " _Charset (ID3, files): "
-#~ msgstr "_Charset (ID3, file):"
-
-#~ msgid ""
-#~ "Use selected charset also when updating\n"
-#~ " or syncing tracks"
-#~ msgstr ""
-#~ "Usa la codifica selezionata anche quando aggiorni\n"
-#~ "o sincronizzi le tracce"
-
-#~ 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 "Confirm list of directories"
-#~ msgstr "Conferma la lista delle directory"
-
-#~ msgid "Adding/Updating/Syncing"
-#~ msgstr "Aggiungi/Aggiorna/Sincronizza"
-
-#~ msgid "Use this template to parse filename for tag information"
-#~ msgstr ""
-#~ "Usa questa maschera per controllare il nome file per informazioni sul tag"
-
-#~ msgid "Overwrite tags that are already set."
-#~ msgstr "Sovrascrivi i tag che sono giàimpostati."
-
-#~ msgid ""
-#~ "As a last resort set the following tags to the filename if they are "
-#~ "(still) empty:"
-#~ msgstr ""
-#~ "Come ultimo tentativo riempi i tag seguenti con il filename se sono "
-#~ "(ancora) vuoti:"
-
-#~ msgid "Tag Reading"
-#~ msgstr "Lettura del Tag"
-
-#~ msgid "Use mserv database to fill in additional information"
-#~ msgstr "Usa il database mserv per aggiungere informazioni addizionali"
-
-#~ msgid "Music Root: "
-#~ msgstr "Radice della musica"
-
-#~ msgid "..."
-#~ msgstr "..."
-
-#~ msgid "mserv Root: "
-#~ msgstr "radice del mserv"
-
-#~ msgid "mserv"
-#~ msgstr "mserv"
-
-#~ msgid "Sync (Writing of iTunesDB)"
-#~ msgstr "Sincronizzazione (scrittura dell'iTunesDB)"
-
-#~ msgid "_Input/Output"
-#~ msgstr "_Ingresso/Uscita"
-
-#~ msgid "Relative volume adjustment between -100 and +100"
-#~ msgstr "Livellamento relativo del volume tra -100 e +100"
-
-#~ msgid "Displayed Track Attributes "
-#~ msgstr "Attributi delle tracce visualizzati "
-
-#~ msgid " _Number of sort tabs: "
-#~ msgstr "_Numero dei blocchi di ordinamento"
-
-#~ msgid "Sort Tabs"
-#~ msgstr "Blocchi di ordinamento"
-
-#~ msgid "Toolbar"
-#~ msgstr "Barra degli strumenti"
-
-#~ msgid "Tooltips"
-#~ msgstr "Suggerimenti"
-
-#~ msgid "Sorting"
-#~ msgstr "Ordinamento"
-
-#~ msgid "Misc"
-#~ msgstr "Misc"
-
-#~ msgid ""
-#~ "Use selected charset (on the 'Import' page)\n"
-#~ " when writing tags"
-#~ msgstr ""
-#~ "Usa la codifica selezionata (nella pagina 'importazione')\n"
-#~ " per la scrittura dei tag"
-
-#~ msgid "Use 'Multi-Edit' for track selections"
-#~ msgstr "Usa 'Multi-Edit' per le selezioni di file"
-
-#~ msgid "Track Editing"
-#~ msgstr "Modifica della traccia"
-
-#~ msgid " Number of tracks in generated playlists: "
-#~ msgstr "_Numero dei blocchi di ordinamento"
-
-#~ msgid "Auto-Generated Playlists"
-#~ msgstr "Playlist Auto-Generata"
-
-#~ 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 ""
-#~ "Questa opzione ha senso solo se viene attivata anche l'opzione 'Cancella "
-#~ "le tracce che sono state rimosse' nella sezione 'Aggiunta/Aggiornamento/"
-#~ "Sincronizzazione' nella sezione 'Input/Output'."
-
-#~ msgid ""
-#~ "Before removing tracks completely when\n"
-#~ " synchronizing directories"
-#~ msgstr ""
-#~ "Prima di rimuovere completamente le tracce nella\n"
-#~ "sincronizzazione delle directory"
-
-#~ msgid "Delete Confirmation "
-#~ msgstr "Conferma la cancellazione"
-
-#~ msgid "Command Line for 'Play Now':"
-#~ msgstr "Riga di comando per 'Suona ora'"
-
-#~ msgid "Command Line for 'Enqueue':"
-#~ msgstr "Riga di comando per 'Metti in coda'"
-
-#~ msgid "Track Playing"
-#~ msgstr "Traccia in riproduzione"
-
-#~ msgid "Exact path for the 'mp3gain' executable:"
-#~ msgstr "Path esatta per l'eseguibile 'mp3gain'"
-
-#~ msgid "Volume Normalization"
-#~ msgstr "Normalizzazione del volume"
-
-#~ msgid "Command to synchronize contacts:"
-#~ msgstr "Comando per sincronizzare i contatti:"
-
-#~ msgid "Command to be called to synchronize calendar:"
-#~ msgstr "Comando da richiamare per la sincronizzazione dei calendari:"
-
-#~ msgid "Command to be called to synchronize notes:"
-#~ msgstr "Comando da richiamare per la sincronizzazione delle note:"
-
-#~ msgid "Contacts / Calendar / Notes"
-#~ msgstr "Contatti / Calendari / Note"
-
-#~ 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 ""
-#~ "Nota: l'ordine delle tracce è sempre contenuto nell'iPod se si usa il "
-#~ "drag and drop per sistemare le tracce.\n"
-#~ "Per memorizzare l'ordine alfabetico delle tracce nell'iPod devi "
-#~ "selezionare 'Salva l'ordine delle tracce' dal menù 'Modifica' o "
-#~ "selezionare 'Auto Store' sopra."
-
-#~ msgid "Reading"
-#~ msgstr "Lettura in corso"
-
-#~ msgid "Display"
-#~ msgstr "Visualizzazione"
+#~ msgid "Automatically import iTunesDBs on startup"
+#~ msgstr "Non sincronizzare automaticamente all'avvio"

Deleted: gtkpod/trunk/po/ja.gmo
===================================================================
(Binary files differ)

Modified: gtkpod/trunk/po/ja.po
===================================================================
--- gtkpod/trunk/po/ja.po	2007-06-27 20:59:02 UTC (rev 193)
+++ gtkpod/trunk/po/ja.po	2007-06-27 21:27:12 UTC (rev 194)
@@ -7,7 +7,7 @@
 msgstr ""
 "Project-Id-Version: gtkpod 0.40\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2006-09-24 23:08+0900\n"
+"POT-Creation-Date: 2007-06-14 22:57+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,966 +16,967 @@
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=1; plural=0;\n"
 
-#: gtkpod.glade:7
-msgid "gtkpod"
+#: ../data/gtkpod.desktop.in.h:1
+#, fuzzy
+msgid "GtkPod"
 msgstr "gtkpod"
 
-#: gtkpod.glade:40
-msgid "_File"
-msgstr "¥Õ¥¡¥¤¥ë(_F)"
+#: ../data/gtkpod.desktop.in.h:2
+msgid "Manage music and video on an Apple iPod"
+msgstr ""
 
-#: gtkpod.glade:49
-#, fuzzy
-msgid "_Load iPod(s)"
-msgstr "iPod ¥Õ¥¡¥¤¥ë"
-
-#: gtkpod.glade:69
-msgid "_Save Changes"
+#: ../data/gtkpod.desktop.in.h:3
+msgid "iPod Manager"
 msgstr ""
 
-#: gtkpod.glade:90
-msgid "Add _Files"
-msgstr "¥Õ¥¡¥¤¥ë¤òÄɲ乤ë(_F)"
+#: ../data/gtkpod.glade.h:1
+msgid " "
+msgstr " "
 
-#: gtkpod.glade:111
-msgid "Add _Directory"
-msgstr "¥Ç¥£¥ì¥¯¥È¥ê¤òÄɲ乤ë(_D)"
+#: ../data/gtkpod.glade.h:2
+msgid "    "
+msgstr ""
 
-#: gtkpod.glade:132
-msgid "Add _Playlist"
-msgstr "¥×¥ì¥¤¥ê¥¹¥È¤òÄɲ乤ë(_P)"
+#: ../data/gtkpod.glade.h:3
+msgid "     "
+msgstr ""
 
-#: gtkpod.glade:159
-msgid "_Update Tracks from File"
-msgstr "¥Õ¥¡¥¤¥ë¤ò¸µ¤Ë¶Ê¤ò¹¹¿·¤¹¤ë(_U)"
+#: ../data/gtkpod.glade.h:4
+msgid "      "
+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 "¥×¥ì¥¤¥ê¥¹¥È(_P)"
+#: ../data/gtkpod.glade.h:5
+msgid "   Sort by:"
+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 "ÁªÂò¤µ¤ì¤Æ¤¤¤ë¥½¡¼¥È¥¿¥Ö(_E)"
+#: ../data/gtkpod.glade.h:6
+msgid " <= cts <= "
+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 "ÁªÂò¤µ¤ì¤Æ¤¤¤ë¶Ê(_S)"
+#: ../data/gtkpod.glade.h:7
+msgid " Logic: "
+msgstr "¾ò·ï: "
 
-#: gtkpod.glade:211
-msgid "Update _mserv Data from File"
-msgstr "mserv ¥Ç¡¼¥¿¤ò¹¹¿·¤¹¤ë(_m)"
+#: ../data/gtkpod.glade.h:9
+#, no-c-format
+msgid "%A"
+msgstr ""
 
-#: gtkpod.glade:263
-#, fuzzy
-msgid "_Synchronize Playlist"
-msgstr "¤¹¤Ù¤ÆƱ´ü"
+#: ../data/gtkpod.glade.h:10
+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:290
+#: ../data/gtkpod.glade.h:11
 #, fuzzy
-msgid "_Export Tracks from Database"
-msgstr "¤¹¤Ù¤Æ¤Î¶Ê¤ò¥Ç¡¼¥¿¥Ù¡¼¥¹¤«¤éºï½ü"
+msgid "'aacgain' executable:"
+msgstr "'mp3gain' ¥³¥Þ¥ó¥É¤Î¾ì½ê:"
 
-#: gtkpod.glade:342
-msgid "Create _Playlist File"
-msgstr "¥×¥ì¥¤¥ê¥¹¥È¤òºîÀ® (_P)"
+#: ../data/gtkpod.glade.h:12
+msgid "'mp3gain' executable:"
+msgstr "'mp3gain' ¥³¥Þ¥ó¥É¤Î¾ì½ê:"
 
-#: gtkpod.glade:400
-msgid "_Create iPod's Directories"
-msgstr "iPod¤Î½é´üÀßÄê(_C)"
+#: ../data/gtkpod.glade.h:13
+#, fuzzy
+msgid "(Checked)"
+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 ""
+#: ../data/gtkpod.glade.h:14
+msgid "...as icons"
+msgstr "¥¢¥¤¥³¥ó¤Î¤ß"
 
-#: gtkpod.glade:422
-msgid "_Check iPod's Files"
-msgstr "iPod ¤Î¥Á¥§¥Ã¥¯(_C)"
+#: ../data/gtkpod.glade.h:15
+msgid "...as text"
+msgstr "¥Æ¥­¥¹¥È¤Î¤ß"
 
-#: gtkpod.glade:450 gtkpod.glade:12687
-msgid "_Edit"
-msgstr "ÊÔ½¸(_E)"
+#: ../data/gtkpod.glade.h:16
+msgid "...both as icons and text"
+msgstr "¥¢¥¤¥³¥ó¤È¥Æ¥­¥¹¥È"
 
-#: gtkpod.glade:459 src/context_menus.c:480
-#, fuzzy
-msgid "Edit Track Details"
-msgstr "¾ÜºÙ¤òÊÔ½¸"
+#: ../data/gtkpod.glade.h:17
+msgid "...entry 'All' in sort tab..."
+msgstr "...°Ê²¼¤Î¥½¡¼¥È¥¿¥ÖÆâ¤Î¡Ö¤¹¤Ù¤Æ¡×¤Î¹àÌÜ"
 
-#: gtkpod.glade:480
-#, fuzzy
-msgid "Tracks in Selected _Playlist"
-msgstr "¥×¥ì¥¤¥ê¥¹¥È(_P)"
+#: ../data/gtkpod.glade.h:18
+msgid "...master playlist"
+msgstr "...¥Þ¥¹¥¿¡¼¥×¥ì¥¤¥ê¥¹¥È"
 
-#: gtkpod.glade:489
-#, fuzzy
-msgid "Tracks in Selected Tab _Entry"
-msgstr "ÁªÂò¤µ¤ì¤Æ¤¤¤ë¥½¡¼¥È¥¿¥Ö(_E)"
+#: ../data/gtkpod.glade.h:20
+#, no-c-format
+msgid "../%A.jpg"
+msgstr ""
 
-#: gtkpod.glade:511 src/context_menus.c:407
-msgid "Edit Smart Playlist"
-msgstr "¥¹¥Þ¡¼¥È¥×¥ì¥¤¥ê¥¹¥È¤ÎÊÔ½¸"
+#: ../data/gtkpod.glade.h:21
+msgid "0"
+msgstr ""
 
-#: gtkpod.glade:520
-msgid "_Delete"
+#: ../data/gtkpod.glade.h:22
+msgid "1"
 msgstr ""
 
-#: gtkpod.glade:541
-#, fuzzy
-msgid "Selected playlist"
-msgstr "¥×¥ì¥¤¥ê¥¹¥È(_P)"
+#: ../data/gtkpod.glade.h:23
+msgid "2"
+msgstr ""
 
-#: gtkpod.glade:550
-#, fuzzy
-msgid "Selected playlist including tracks from iPod"
-msgstr "¥×¥ì¥¤¥ê¥¹¥È '%s'¡Ê%d ¶ÊÆþ¤ê¡Ë¤òºï½ü¤·¤Þ¤·¤¿"
+#: ../data/gtkpod.glade.h:24
+msgid "3"
+msgstr ""
 
-#: gtkpod.glade:559
-#, fuzzy
-msgid "Selected playlist including tracks from database"
-msgstr "Ãæ¤Î¶Ê¤´¤Èºï½ü (¥Ç¡¼¥¿¥Ù¡¼¥¹¤«¤é)"
+#: ../data/gtkpod.glade.h:25
+msgid "4"
+msgstr ""
 
-#: gtkpod.glade:568
-#, fuzzy
-msgid "Selected playlist including tracks from harddisk"
-msgstr "¥×¥ì¥¤¥ê¥¹¥È '%s'¡Ê%d ¶ÊÆþ¤ê¡Ë¤òºï½ü¤·¤Þ¤·¤¿"
+#: ../data/gtkpod.glade.h:26
+msgid "5"
+msgstr ""
 
-#: gtkpod.glade:583
-msgid "Selected filter tab entry from playlist"
+#: ../data/gtkpod.glade.h:27
+msgid ":"
 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"
+#: ../data/gtkpod.glade.h:28
+msgid "<"
 msgstr ""
 
-#: gtkpod.glade:610
+#: ../data/gtkpod.glade.h:29
 #, fuzzy
-msgid "Selected filter tab entry from harddisk"
-msgstr "¤³¤Î¶Ê¤ò¥Ï¡¼¥É¥Ç¥£¥¹¥¯¤«¤éºï½ü¤·¤Þ¤¹¤«?"
+msgid "<b>Account Information</b>"
+msgstr "<b>ºï½ü¤Î³Îǧ</b>"
 
-#: gtkpod.glade:625
-#, fuzzy
-msgid "Selected tracks from playlist"
-msgstr "¥×¥ì¥¤¥ê¥¹¥È¤«¤éºï½ü"
+#: ../data/gtkpod.glade.h:30
+msgid "<b>Adding/Updating/Syncing</b>"
+msgstr "<b>ÅÐÏ¿/¹¹¿·/Ʊ´ü</b>"
 
-#: gtkpod.glade:634
+#: ../data/gtkpod.glade.h:31
 #, fuzzy
-msgid "Selected tracks from iPod"
-msgstr "iPod¤«¤é1¶Ê´°Á´¤Ëºï½ü¤·¤Þ¤·¤¿"
+msgid "<b>Audioscrobbler</b>"
+msgstr "<b>¥Ä¡¼¥ë¥Ð¡¼</b>"
 
-#: gtkpod.glade:643
-#, fuzzy
-msgid "Selected tracks from database"
-msgstr "¤¹¤Ù¤Æ¤Î¶Ê¤ò¥Ç¡¼¥¿¥Ù¡¼¥¹¤«¤éºï½ü"
+#: ../data/gtkpod.glade.h:32
+msgid "<b>Auto-Generated Playlists</b>"
+msgstr "<b>¥×¥ì¥¤¥ê¥¹¥È¤Î¼«Æ°À¸À®</b>"
 
-#: gtkpod.glade:652
+#: ../data/gtkpod.glade.h:33
+msgid "<b>Automatically select...</b>"
+msgstr "<b>¼«Æ°Åª¤ËÁªÂò...</b>"
+
+#: ../data/gtkpod.glade.h:34
+msgid "<b>Calendar/Contacts/Notes</b>"
+msgstr ""
+
+#: ../data/gtkpod.glade.h:35
 #, fuzzy
-msgid "Selected tracks from harddisk"
-msgstr "¤³¤Î¶Ê¤ò¥Ï¡¼¥É¥Ç¥£¥¹¥¯¤«¤éºï½ü¤·¤Þ¤¹¤«?"
+msgid "<b>Coverart</b>"
+msgstr "<b>¥¤¥ó¥Ý¡¼¥È</b>"
 
-#: gtkpod.glade:671
-msgid "_Create Playlists"
-msgstr "¥×¥ì¥¤¥ê¥¹¥ÈºîÀ®(_C)"
+#: ../data/gtkpod.glade.h:36
+msgid "<b>Delete Confirmation</b>"
+msgstr "<b>ºï½ü¤Î³Îǧ</b>"
 
-#: gtkpod.glade:692
-msgid "Empty Playlist"
-msgstr "¶õ¥ê¥¹¥È"
+#: ../data/gtkpod.glade.h:37
+msgid "<b>Displayed Track Attributes</b>"
+msgstr "<b>ɽ¼¨¤¹¤ë¶Ê°À­</b>"
 
-#: gtkpod.glade:701 gtkpod.glade:7379 src/misc_playlist.c:97
-#: src/repository.c:1359
-msgid "Smart Playlist"
-msgstr "¥¹¥Þ¡¼¥È¥×¥ì¥¤¥ê¥¹¥È"
+#: ../data/gtkpod.glade.h:38
+msgid "<b>Examples</b>"
+msgstr "<b>Îã</b>"
 
-#: gtkpod.glade:716
-msgid "Random Playlist from Displayed Tracks"
-msgstr "ɽ¼¨¤µ¤ì¤Æ¤¤¤ë¶Ê¤«¤é¥é¥ó¥À¥à¤ËºîÀ®"
+#: ../data/gtkpod.glade.h:39
+msgid "<b>Ignore Frequent Words</b>"
+msgstr ""
 
-#: gtkpod.glade:725
-msgid "Containing Displayed Tracks"
-msgstr "ɽ¼¨¤µ¤ì¤Æ¤¤¤ë¶Ê¤«¤éºîÀ®"
+#: ../data/gtkpod.glade.h:40
+msgid "<b>Misc</b>"
+msgstr "<b>¤½¤Î¾</b>"
 
-#: gtkpod.glade:734
-msgid "Containing Selected Tracks"
-msgstr "ÁªÂò¤µ¤ì¤Æ¤¤¤ë¶Ê¤«¤éºîÀ®"
+#: ../data/gtkpod.glade.h:41
+msgid "<b>Mountpoint and individual repository/playlist options</b>"
+msgstr ""
 
-#: gtkpod.glade:743
-msgid "One for each Artist"
-msgstr "³Æ¥¢¡¼¥Æ¥£¥¹¥È¤´¤È¤Î¥ê¥¹¥È"
+#: ../data/gtkpod.glade.h:42
+#, fuzzy
+msgid "<b>On-the-fly Conversion</b>"
+msgstr "<b>ºï½ü¤Î³Îǧ</b>"
 
-#: gtkpod.glade:752
-msgid "One for each Album"
-msgstr "³Æ¥¢¥ë¥Ð¥à¤´¤È¤Î¥ê¥¹¥È"
+#: ../data/gtkpod.glade.h:43
+msgid "<b>Play</b>"
+msgstr "<b>ºÆÀ¸</b>"
 
-#: gtkpod.glade:761
-msgid "One for each Genre"
-msgstr "³Æ¥¸¥ã¥ó¥ë¤´¤È¤Î¥ê¥¹¥È"
+#: ../data/gtkpod.glade.h:44
+#, fuzzy
+msgid "<b>Playlists</b>"
+msgstr "<b>ºÆÀ¸</b>"
 
-#: gtkpod.glade:770
-msgid "One for each Composer"
-msgstr "³Æºî¶Ê¼Ô¤´¤È¤Î¥ê¥¹¥È"
+#: ../data/gtkpod.glade.h:45
+msgid "<b>Please select mountpoint and your iPod model</b>"
+msgstr ""
 
-#: gtkpod.glade:779
-msgid "One for each Year"
-msgstr "³Æǯ¤´¤È¤Î¥ê¥¹¥È"
+#: ../data/gtkpod.glade.h:46
+#, fuzzy
+msgid "<b>Repositories</b>"
+msgstr "<b>¥Ä¡¼¥ë¥Á¥Ã¥×</b>"
 
-#: gtkpod.glade:788
-msgid "One for each Rating"
-msgstr "³Æɾ²ÁÃͤ´¤È¤Î¥ê¥¹¥È"
+#: ../data/gtkpod.glade.h:47
+msgid "<b>Sort Order</b>"
+msgstr "<b>¥½¡¼¥È½ç</b>"
 
-#: gtkpod.glade:797
-msgid "Best Rated Tracks"
-msgstr "ɾ²Á¤Î¹â¤¤¶Ê"
+#: ../data/gtkpod.glade.h:48
+msgid "<b>Sort Tabs</b>"
+msgstr "<b>¥½¡¼¥È¥¿¥Ö</b>"
 
-#: gtkpod.glade:806
-msgid "Tracks Most Often Listened To"
-msgstr "ºÆÀ¸²ó¿ô¤Î¿¤¤¶Ê"
+#: ../data/gtkpod.glade.h:49
+msgid "<b>Sync</b>"
+msgstr ""
 
-#: gtkpod.glade:815
-msgid "Most Recently Played Tracks"
-msgstr "ºÇ¶áºÆÀ¸¤µ¤ì¤¿¶Ê"
+#: ../data/gtkpod.glade.h:50
+msgid "<b>Synchronization</b>"
+msgstr "<b>Ʊ´ü</b>"
 
-#: gtkpod.glade:824
-msgid "All Tracks Played Since Last Time"
-msgstr "Á°²ó°Ê¹ßºÆÀ¸¤µ¤ì¤¿¶Ê"
+#: ../data/gtkpod.glade.h:51
+msgid "<b>Tag Reading</b>"
+msgstr "<b>¥¿¥°¤ÎÆɤ߹þ¤ß</b>"
 
-#: gtkpod.glade:833
-msgid "All Tracks Never Listened To"
-msgstr "°ìÅÙ¤âÄ°¤¤¤¿»ö¤¬¤Ê¤¤¶Ê"
+#: ../data/gtkpod.glade.h:52
+msgid "<b>Toolbar</b>"
+msgstr "<b>¥Ä¡¼¥ë¥Ð¡¼</b>"
 
-#: gtkpod.glade:842
-msgid "All Tracks not Listed in any Playlist"
-msgstr "¥×¥ì¥¤¥ê¥¹¥È¤ËºÜ¤Ã¤Æ¤¤¤Ê¤¤¤¹¤Ù¤Æ¤Î¶Ê"
+#: ../data/gtkpod.glade.h:53
+msgid "<b>Tooltips</b>"
+msgstr "<b>¥Ä¡¼¥ë¥Á¥Ã¥×</b>"
 
-#: gtkpod.glade:861
-msgid "_Sorting"
-msgstr "ʤٴ¹¤¨(_S)"
+#: ../data/gtkpod.glade.h:54
+msgid "<b>Track Editing</b>"
+msgstr "<b>¶Ê¤ÎÊÔ½¸</b>"
 
-#: gtkpod.glade:883
-msgid "Randomize Current Playlist"
-msgstr "¸½ºß¤Î¥×¥ì¥¤¥ê¥¹¥È¤ò¥é¥ó¥À¥à¤Ëʤٴ¹¤¨¤ë"
+#: ../data/gtkpod.glade.h:55
+msgid "<b>Volume Normalization</b>"
+msgstr "<b>²»Î̤ÎÊ¿¶Ñ²½</b>"
 
-#: gtkpod.glade:892
-msgid "_Save Displayed Track Order"
-msgstr "¸½ºß¤Î¶Ê½ç¤òÊݸ(_S)"
+#: ../data/gtkpod.glade.h:56
+msgid "<b>mserv</b>"
+msgstr ""
 
-#: gtkpod.glade:920
-#, fuzzy
-msgid "Edit Repository/iPod Options"
-msgstr "¥½¡¼¥È¤ÎÀßÄê"
+#: ../data/gtkpod.glade.h:57
+msgid ">"
+msgstr ""
 
-#: gtkpod.glade:941
-#, fuzzy
-msgid "Edit _Preferences"
-msgstr "ÀßÄê(_E)"
+#: ../data/gtkpod.glade.h:58
+msgid "About gtkpod"
+msgstr "gtkpod ¤Ë¤Ä¤¤¤Æ"
 
-#: gtkpod.glade:967
-msgid "_View"
-msgstr "ɽ¼¨(_V)"
+#: ../data/gtkpod.glade.h:59
+msgid "Add Directories Recursively"
+msgstr "¥Ç¥£¥ì¥¯¥È¥ê¤òºÆµ¢Åª¤ËÄɲä·¤Þ¤¹"
 
-#: gtkpod.glade:976
-msgid "_Toolbar"
-msgstr "¥Ä¡¼¥ë¥Ð¡¼(_T)"
+#: ../data/gtkpod.glade.h:60
+msgid "Add Files or Directories"
+msgstr "¥Õ¥¡¥¤¥ë¤Þ¤¿¤Ï¥Ç¥£¥ì¥¯¥È¥ê¤òÄɲä·¤Þ¤¹"
 
-#: gtkpod.glade:986
-msgid "_Tooltips"
-msgstr "¥Ä¡¼¥ë¥Á¥Ã¥×(_T)"
+#: ../data/gtkpod.glade.h:61
+msgid "Add _Directory"
+msgstr "¥Ç¥£¥ì¥¯¥È¥ê¤òÄɲ乤ë(_D)"
 
-#: gtkpod.glade:996
-msgid "_Info Window"
-msgstr "¾ðÊó(_I)"
+#: ../data/gtkpod.glade.h:62
+msgid "Add _Files"
+msgstr "¥Õ¥¡¥¤¥ë¤òÄɲ乤ë(_F)"
 
-#: gtkpod.glade:1007
-msgid "_More Sort Tabs"
-msgstr "¥½¡¼¥È¥¿¥Ö¤ÎÄɲÃ(_M)"
+#: ../data/gtkpod.glade.h:63
+msgid "Add _Playlist"
+msgstr "¥×¥ì¥¤¥ê¥¹¥È¤òÄɲ乤ë(_P)"
 
-#: gtkpod.glade:1028
-msgid "_Less Sort Tabs"
-msgstr "¥½¡¼¥È¥¿¥Ö¤Îºï½ü(_L)"
+#: ../data/gtkpod.glade.h:64
+#, fuzzy
+msgid "Add coverart from file using the following template"
+msgstr "¼¡¤Î¥Æ¥ó¥×¥ì¡¼¥È¤Ë¹ç¤¦¥Õ¥¡¥¤¥ë¤ò¥¢¡¼¥È¥ï¡¼¥¯¤È¤·¤ÆÅÐÏ¿¤¹¤ë"
 
-#: gtkpod.glade:1049
-msgid "_Arrange Sort Tabs"
-msgstr "¥½¡¼¥È¥¿¥Ö¤òºÆÇÛÃÖ(_A)"
+#: ../data/gtkpod.glade.h:65
+msgid "Add directories recursively"
+msgstr "¥Ç¥£¥ì¥¯¥È¥ê¤òºÆµ¢Åª¤ËÄɲ乤ë"
 
-#: gtkpod.glade:1062 gtkpod.glade:13297
-msgid "_Tools"
-msgstr "¥Ä¡¼¥ë(_T)"
+#: ../data/gtkpod.glade.h:66
+msgid "Add new repository/iPod"
+msgstr ""
 
-#: gtkpod.glade:1071
-msgid "_Play Now"
-msgstr "º£¤¹¤°±éÁÕ(_P)"
+#: ../data/gtkpod.glade.h:67
+msgid "Add playlist from file"
+msgstr "¥×¥ì¥¤¥ê¥¹¥È¤ò¥Õ¥¡¥¤¥ë¤«¤éÆɤ߹þ¤ó¤ÇÄɲä·¤Þ¤¹"
 
-#: gtkpod.glade:1123
-msgid "_Enqueue"
-msgstr "±éÁÕ¥­¥å¡¼¤ËÆþ¤ì¤ë(_E)"
+#: ../data/gtkpod.glade.h:68 ../src/display_sorttabs.c:3232
+#: ../src/display_tracks.c:1996
+msgid "Added"
+msgstr "ÅÐÏ¿Æü"
 
-#: gtkpod.glade:1181
-msgid "_Normalize Volume"
-msgstr "¥Ü¥ê¥å¡¼¥à¤ÎÊ¿¶Ñ²½"
+#: ../data/gtkpod.glade.h:69
+msgid "Advanced Sorting Options"
+msgstr ""
 
-#: gtkpod.glade:1217
-msgid "_Displayed Tracks"
-msgstr "ɽ¼¨¤µ¤ì¤Æ¤¤¤ë¶Ê(_D)"
+#. 0
+#: ../data/gtkpod.glade.h:70 ../src/display_sorttabs.c:2954
+#: ../src/display_spl.c:84 ../src/misc_conversion.c:60
+msgid "Album"
+msgstr "¥¢¥ë¥Ð¥à"
 
-#: gtkpod.glade:1226
-msgid "_All Tracks"
-msgstr "¤¹¤Ù¤Æ¤Î¶Ê(_A)"
+#: ../data/gtkpod.glade.h:71
+#, fuzzy
+msgid "Album Art"
+msgstr "¥¢¥ë¥Ð¥à"
 
-#: gtkpod.glade:1235
-msgid "_Newly Added Tracks"
-msgstr "¿·¤¿¤ËÄɲ䵤줿¶Ê(_N)"
+#: ../data/gtkpod.glade.h:72
+msgid "All (AND)"
+msgstr "¤¹¤Ù¤Æ(AND)"
 
-#: gtkpod.glade:1254
-msgid "Synchronise Contacts, Calendar and Notes"
-msgstr "¶Ê¡¢¥«¥ì¥ó¥À¡¼¡¢¥Î¡¼¥È¤òƱ´ü¤¹¤ë"
+#: ../data/gtkpod.glade.h:73
+msgid "All Tracks Never Listened To"
+msgstr "°ìÅÙ¤âÄ°¤¤¤¿»ö¤¬¤Ê¤¤¶Ê"
 
-#: gtkpod.glade:1255
-msgid "Synchronize All"
-msgstr "¤¹¤Ù¤ÆƱ´ü"
+#: ../data/gtkpod.glade.h:74
+msgid "All Tracks Played Since Last Time"
+msgstr "Á°²ó°Ê¹ßºÆÀ¸¤µ¤ì¤¿¶Ê"
 
-#: gtkpod.glade:1264
-msgid "Synchronize Contacts"
-msgstr "¶Ê¤òƱ´ü"
+#: ../data/gtkpod.glade.h:75
+msgid "All Tracks not Listed in any Playlist"
+msgstr "¥×¥ì¥¤¥ê¥¹¥È¤ËºÜ¤Ã¤Æ¤¤¤Ê¤¤¤¹¤Ù¤Æ¤Î¶Ê"
 
-#: gtkpod.glade:1273
-msgid "Synchronize Calendar"
-msgstr "¥«¥ì¥ó¥À¡¼¤òƱ´ü"
+#: ../data/gtkpod.glade.h:76
+msgid "Also include tracks never played in \"Best Rated\" playlist"
+msgstr ""
+"¡Öɾ²Á¤Î¹â¤¤¶Ê¡×¤Î¥ê¥¹¥È¤òºî¤ëºÝ¤Ë¡¢°ìÅÙ¤â\n"
+"ºÆÀ¸¤µ¤ì¤¿»ö¤Î¤Ê¤¤¶Ê¤âÂоݤȤ·¤Þ¤¹¡£"
 
-#: gtkpod.glade:1282
-msgid "Synchronize Notes"
-msgstr "¥Î¡¼¥È¤òƱ´ü"
+#: ../data/gtkpod.glade.h:77
+msgid "Always write ID3v2.4 tags (only applies to MP3)"
+msgstr "¾ï¤Ë ID3v2.4 ¥¿¥°¤ò½ñ¤­¹þ¤à (MP3 ¤Î¤ß)"
 
-#: gtkpod.glade:1295
-msgid "_Help"
-msgstr "¥Ø¥ë¥×(_H)"
+#: ../data/gtkpod.glade.h:78
+msgid "Any (OR)"
+msgstr "¤¤¤º¤ì¤«(OR)"
 
-#: gtkpod.glade:1304
-msgid "_About"
-msgstr "gtkpod¤Ë¤Ä¤¤¤Æ(_A)"
+#: ../data/gtkpod.glade.h:79 ../src/display_sorttabs.c:2951
+#: ../src/display_spl.c:85 ../src/misc_conversion.c:61
+msgid "Artist"
+msgstr "¥¢¡¼¥Æ¥£¥¹¥È"
 
-#: gtkpod.glade:1344
+#: ../data/gtkpod.glade.h:80
 msgid ""
-"Try to load contents of all connected iPods. For each iPod a separate "
-"repository must be set up."
+"As a last resort set the following tags to the\n"
+"filename if they are (still) empty:"
 msgstr ""
+"ºÇ¸å¤Î¼êÃʤȤ·¤Æ¡¢°Ê²¼¤Î¥¿¥°¤¬Ì¤ÀßÄê¤Î¾ì¹ç¤Ë¥Õ¥¡¥¤¥ë̾¤ò¤½¤ÎÃͤȤ·¤Æ»ÈÍѤ¹¤ë:"
 
-#: gtkpod.glade:1345
-#, fuzzy
-msgid "Load iPod(s)"
-msgstr "iPod ¥Õ¥¡¥¤¥ë"
+#: ../data/gtkpod.glade.h:82
+msgid "Ascending"
+msgstr "¾º½ç"
 
-#: gtkpod.glade:1362
-msgid "Write all changes made to the disk and the iPod(s)."
+#: ../data/gtkpod.glade.h:83
+msgid ""
+"Audio/Video\n"
+"Audio\n"
+"Video\n"
+"Podcast\n"
+"Video Podcast\n"
+"Audiobook\n"
+"Music Video\n"
+"TV Show\n"
+"TV Show & Music Video\n"
 msgstr ""
 
-#: gtkpod.glade:1363 src/context_menus.c:507
-msgid "Save Changes"
+#: ../data/gtkpod.glade.h:93
+msgid "Auto Store"
+msgstr "¼«Æ°Êݸ"
+
+#: ../data/gtkpod.glade.h:94
+msgid ""
+"Automatically start displaying tracks that match the criteria entered above. "
+"If not selected, you must press 'Display' to start displaying."
 msgstr ""
+"³Æ¹àÌܤ¬ÆþÎϤµ¤ì¤ë¤È¤¹¤°¤Ëɽ¼¨¤ò¹¹¿·¤·¤Þ¤¹. ¤³¤Î¹àÌܤ¬ÁªÂò¤µ¤ì¤Æ¤¤¤Ê¤¤»þ¤Ë"
+"¤Ï¡¢¡Öɽ¼¨¡×¥Ü¥¿¥ó¤ò²¡¤¹¤³¤È¤Ç¹¹¿·¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹."
 
-#: gtkpod.glade:1380
-msgid "Add Files or Directories"
-msgstr "¥Õ¥¡¥¤¥ë¤Þ¤¿¤Ï¥Ç¥£¥ì¥¯¥È¥ê¤òÄɲä·¤Þ¤¹"
+#: ../data/gtkpod.glade.h:95
+msgid "Before removing playlists or tracks from a playlist"
+msgstr "¥×¥ì¥¤¥ê¥¹¥È¤ä¡¢¥×¥ì¥¤¥ê¥¹¥È¤«¤é¶Ê¤òºï½ü¤¹¤ë»þ"
 
-#: gtkpod.glade:1381
-msgid "Files"
-msgstr "¥Õ¥¡¥¤¥ë"
+#: ../data/gtkpod.glade.h:96
+msgid "Before removing tracks from the harddisk"
+msgstr "¶Ê¤ò¥Ï¡¼¥É¥Ç¥£¥¹¥¯¤«¤é´°Á´¤Ëºï½ü¤¹¤ë»þ"
 
-#: gtkpod.glade:1398
-msgid "Add Directories Recursively"
-msgstr "¥Ç¥£¥ì¥¯¥È¥ê¤òºÆµ¢Åª¤ËÄɲä·¤Þ¤¹"
+#: ../data/gtkpod.glade.h:97
+msgid "Before removing tracks from the iPod"
+msgstr "¶Ê¤òiPod¤«¤é´°Á´¤Ëºï½ü¤¹¤ë»þ"
 
-#: gtkpod.glade:1399
-msgid "Dirs"
-msgstr "¥Ç¥£¥ì¥¯¥È¥ê"
+#: ../data/gtkpod.glade.h:98
+msgid "Before removing tracks from the local database"
+msgstr "¶Ê¤ò¥í¡¼¥«¥ë¥Ç¡¼¥¿¥Ù¡¼¥¹¤«¤éºï½ü¤¹¤ë»þ"
 
-#: gtkpod.glade:1416
-msgid "Add playlist from file"
-msgstr "¥×¥ì¥¤¥ê¥¹¥È¤ò¥Õ¥¡¥¤¥ë¤«¤éÆɤ߹þ¤ó¤ÇÄɲä·¤Þ¤¹"
+#: ../data/gtkpod.glade.h:99
+msgid "Best Rated Tracks"
+msgstr "ɾ²Á¤Î¹â¤¤¶Ê"
 
-#: gtkpod.glade:1417 src/display_spl.c:105
-msgid "Playlist"
-msgstr "¥×¥ì¥¤¥ê¥¹¥È"
+#: ../data/gtkpod.glade.h:100
+msgid "Browse"
+msgstr "¥Ö¥é¥¦¥º"
 
-#: gtkpod.glade:1434
-msgid "Create New Playlist"
-msgstr "¿·¤·¤¯¥×¥ì¥¤¥ê¥¹¥È¤òºîÀ®¤·¤Þ¤¹"
+#: ../data/gtkpod.glade.h:101
+#, fuzzy
+msgid "Cache directory:"
+msgstr "¥Ç¥£¥ì¥¯¥È¥ê¤òÄɲ乤ë(_D)"
 
-#: gtkpod.glade:1435
-msgid "New PL"
-msgstr "¿·µ¬¥×¥ì¥¤¥ê¥¹¥È"
+#: ../data/gtkpod.glade.h:102
+msgid "Calendar"
+msgstr "¥«¥ì¥ó¥À¡¼"
 
-#: gtkpod.glade:1451
-msgid "Stop Display Update"
-msgstr "ɽ¼¨¤Î¹¹¿·¤ò»ß¤á¤ë"
+#: ../data/gtkpod.glade.h:103
+msgid "Calendar sync command:"
+msgstr ""
 
-#: gtkpod.glade:1452
-msgid "Stop"
-msgstr "̾ȧ"
+#: ../data/gtkpod.glade.h:104
+msgid "Call automatically when synchronizing iTunesDB"
+msgstr ""
 
-#: gtkpod.glade:1625
-msgid "About gtkpod"
-msgstr "gtkpod¤Ë¤Ä¤¤¤Æ"
+#: ../data/gtkpod.glade.h:105
+msgid "Category: "
+msgstr "¥«¥Æ¥´¥ê: "
 
-#: gtkpod.glade:1752
-msgid "Credits"
-msgstr "¸¢Íøɽ¼¨"
+#: ../data/gtkpod.glade.h:106
+msgid ""
+"Change all tracks\n"
+"simultaneously"
+msgstr ""
 
-#: gtkpod.glade:1810
-msgid "Translators"
-msgstr "ËÝÌõôÅö"
+#: ../data/gtkpod.glade.h:108
+msgid "Check for existing files when copying from iPod."
+msgstr "iPod ¤«¤é¥³¥Ô¡¼¤¹¤ëºÝ¤ËƱ¤¸¥Õ¥¡¥¤¥ë¤«¤É¤¦¤«¤ò¥Á¥§¥Ã¥¯¤¹¤ë"
 
-#: gtkpod.glade:1868
-msgid "special_sorttab -- Don't translate!"
-msgstr ""
+#: ../data/gtkpod.glade.h:109
+msgid "Command for 'Enqueue':"
+msgstr "¡Ö±éÁÕ¥­¥å¡¼¤ËÆþ¤ì¤ë¡×¤¿¤á¤Î¥³¥Þ¥ó¥É:"
 
-#: gtkpod.glade:1903
-msgid " Logic: "
-msgstr "¾ò·ï: "
+#: ../data/gtkpod.glade.h:110
+msgid "Command for 'Play now':"
+msgstr "¡Öº£¤¹¤°±éÁաפΤ¿¤á¤Î¥³¥Þ¥ó¥É:"
 
-#: gtkpod.glade:1929
-msgid "Any (OR)"
-msgstr "¤¤¤º¤ì¤«(OR)"
+#. 5
+#: ../data/gtkpod.glade.h:111 ../src/display_spl.c:97
+#: ../src/misc_conversion.c:65
+msgid "Composer"
+msgstr "ºî¶Ê¼Ô"
 
-#: gtkpod.glade:1948
-msgid "All (AND)"
-msgstr "¤¹¤Ù¤Æ(AND)"
+#: ../data/gtkpod.glade.h:112
+#, fuzzy
+msgid "Confirm before removing tracks from the iPod or repository"
+msgstr "¶Ê¤òiPod¤«¤é´°Á´¤Ëºï½ü¤¹¤ë»þ"
 
-#: gtkpod.glade:2001
-msgid "0"
+#: ../data/gtkpod.glade.h:113
+msgid ""
+"Confirm before removing tracks from the iPod or repository\n"
+"when syncing playlists"
 msgstr ""
 
-#: gtkpod.glade:2020
-msgid "1"
-msgstr ""
+#: ../data/gtkpod.glade.h:115
+msgid "Confirm lists of directories"
+msgstr "¥Ç¥£¥ì¥¯¥È¥ê¤Î¥ê¥¹¥È¤ò³Îǧ¤¹¤ë"
 
-#: gtkpod.glade:2039
-msgid "2"
+#: ../data/gtkpod.glade.h:116
+msgid "Contacts sync command:"
 msgstr ""
 
-#: gtkpod.glade:2058
-msgid "3"
-msgstr ""
+#: ../data/gtkpod.glade.h:117
+msgid "Containing Displayed Tracks"
+msgstr "ɽ¼¨¤µ¤ì¤Æ¤¤¤ë¶Ê¤«¤éºîÀ®"
 
-#: gtkpod.glade:2077
-msgid "4"
-msgstr ""
+#: ../data/gtkpod.glade.h:118
+msgid "Containing Selected Tracks"
+msgstr "ÁªÂò¤µ¤ì¤Æ¤¤¤ë¶Ê¤«¤éºîÀ®"
 
-#: gtkpod.glade:2096
-msgid "5"
+#: ../data/gtkpod.glade.h:119
+msgid "Conversion Progress Display"
 msgstr ""
 
-#: gtkpod.glade:2135
-msgid "Select '0' for no lower limit."
-msgstr "²¼¸Â¤ò»ØÄꤷ¤Ê¤¤¾ì¹ç¤Ï '0' ¤òÁª¤ó¤Ç¤¯¤À¤µ¤¤¡£"
+#: ../data/gtkpod.glade.h:120
+msgid "Cover"
+msgstr "¥«¥Ð¡¼"
 
-#: gtkpod.glade:2156
-msgid " <= cts <= "
-msgstr " <= ²ó¿ô <= "
+#: ../data/gtkpod.glade.h:121
+msgid "Create New Playlist"
+msgstr "¿·¤·¤¯¥×¥ì¥¤¥ê¥¹¥È¤òºîÀ®¤·¤Þ¤¹"
 
-#: gtkpod.glade:2181
-msgid "Select '-1' for no upper limit."
-msgstr "¾å¸Â¤ò»ØÄꤷ¤Ê¤¤¾ì¹ç¤Ï '-1' ¤òÁª¤ó¤Ç¤¯¤À¤µ¤¤¡£"
+#: ../data/gtkpod.glade.h:122
+#, fuzzy
+msgid "Create Repository"
+msgstr "iPod¤«¤éºï½ü"
 
-#: 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' ¥­¡¼¤ò²¡¤·¤Æ¤¯¤À¤µ¤¤¡£"
+#: ../data/gtkpod.glade.h:123
+msgid "Create _Playlist File"
+msgstr "¥×¥ì¥¤¥ê¥¹¥È¥Õ¥¡¥¤¥ë¤òºîÀ® (_P)"
 
-#: gtkpod.glade:2270 gtkpod.glade:2347 gtkpod.glade:2517 gtkpod.glade:2696
-msgid "Calendar"
-msgstr "¥«¥ì¥ó¥À¡¼"
+#: ../data/gtkpod.glade.h:124
+msgid "Credits"
+msgstr "¸¢Íøɽ¼¨"
 
-#: gtkpod.glade:2372
-msgid "Specify interval"
-msgstr "ÈϰϤò»ØÄꤷ¤Æ¤¯¤À¤µ¤¤"
+#: ../data/gtkpod.glade.h:125
+msgid "Currently only rating is supported."
+msgstr "¸½ºß¤Ïɾ²Á¾ðÊó¤Î¤ß»ÈÍÑ"
 
-#: gtkpod.glade:2374 src/display_spl.c:98 src/misc_conversion.c:78
-msgid "Playcount"
-msgstr "ºÆÀ¸²ó¿ô"
+#: ../data/gtkpod.glade.h:126
+#, fuzzy
+msgid "Delete repository"
+msgstr "iPod¤«¤éºï½ü"
 
-#: gtkpod.glade:2397 src/display_spl.c:101 src/misc_conversion.c:79
-msgid "Rating"
-msgstr "ɾ²Á"
+#: ../data/gtkpod.glade.h:127
+#, fuzzy
+msgid ""
+"Delete tracks that are no longer present from the\n"
+"iPod or repository"
+msgstr "°Ê²¼¤Î½ÅÊ£¤·¤¿%d¶Ê¤¬ºï½ü¤µ¤ì¤Þ¤·¤¿¡£"
 
-#: gtkpod.glade:2420 src/display_songs.c:1951
-msgid "Played"
-msgstr "±éÁÕÆü"
+#: ../data/gtkpod.glade.h:129
+msgid "Deleted tracks"
+msgstr "ºï½ü¤µ¤ì¤¿¶Ê"
 
-#: gtkpod.glade:2443 src/display_songs.c:1954
-msgid "Modified"
-msgstr "Êѹ¹Æü"
+#: ../data/gtkpod.glade.h:130
+msgid "Descending"
+msgstr "¹ß½ç"
 
-#: gtkpod.glade:2542 src/display_songs.c:1957 src/display_sorttabs.c:3218
-msgid "Added"
-msgstr "ÅÐÏ¿Æü"
+#: ../data/gtkpod.glade.h:131
+msgid "Details"
+msgstr "¾ÜºÙ"
 
-#: gtkpod.glade:2587
-msgid "Display tracks that match the criteria entered above."
-msgstr "¾å¤Ç»ØÄꤵ¤ì¤¿¾ò·ï¤Ë¹çÃפ¹¤ë¶Ê¤òɽ¼¨¤·¤Þ¤¹¡£"
+#: ../data/gtkpod.glade.h:133
+#, no-c-format
+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 ""
+"¶Ê¾ðÊó¤òÃê½Ð¤¹¤ë¤¿¤á¤Î·Á¼°¾ðÊó¤òÀßÄꤷ¤Þ¤¹. Îã: '%a/%A/%T - %t.mp3' ¤ä '%o'."
+"Ê£¿ô¤Î·Á¼°¾ðÊó¤ò¥»¥ß¥³¥í¥ó¤Ç¶èÀڤäÆϢ³¤·¤Æ½ñ¤¯¤³¤È¤¬¤Ç¤­¤Þ¤¹ -- gtkpod ¤Ï¤É"
+"¤Î·Á¼°¤ò»È¤¨¤Ð¤¤¤¤¤«¤ò, ¥Õ¥¡¥¤¥ë̾¤Î³ÈÄ¥»Ò¤«¤éȽÃǤ·¤Þ¤¹.¥¢¡¼¥Æ¥£¥¹¥È: %a, ¥¢"
+"¥ë¥Ð¥à: %A, ºî¶Ê¼Ô: %c, ̾Á°: %t, ¥¸¥ã¥ó¥ë: %G, ¶ÊÈÖ¹æ: %T, ¥Ç¥£¥¹¥¯ÈÖ¹æ: %"
+"C, ǯ: %Y, ¸µ¤Î¥Õ¥¡¥¤¥ë̾ (³ÈÄ¥¾ðÊó¥Õ¥¡¥¤¥ë¤¬É¬Í×): %o, ¡Ö%¡×: %%."
 
-#: gtkpod.glade:2630 gtkpod.glade:12009
-msgid "_Display"
-msgstr "ɽ¼¨(_D)"
+#: ../data/gtkpod.glade.h:135
+#, no-c-format
+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/%A/%T - %t."
+"mp3' ¤ä '%o'. Ê£¿ô¤Î½ñ¼°¤ò¥»¥ß¥³¥í¥ó¤Ç¶èÀڤäÆϢ³¤·¤Æ½ñ¤¯¤³¤È¤â¤Ç¤­¤Þ¤¹ -- "
+"gtkpod ¤Ï¤É¤Î½ñ¼°¤ò»È¤¨¤Ð¤¤¤¤¤«¤ò, ¥Õ¥¡¥¤¥ë̾¤Î³ÈÄ¥»Ò¤«¤éȽÃǤ·¤Þ¤¹.¥¢¡¼¥Æ¥£"
+"¥¹¥È: %a, ¥¢¥ë¥Ð¥à: %A, ºî¶Ê¼Ô: %c, ̾Á°: %t, ¥¸¥ã¥ó¥ë: %G, ¶ÊÈÖ¹æ: %T, ¥Ç¥£"
+"¥¹¥¯ÈÖ¹æ: %C, ǯ: %Y, ¸µ¤Î¥Õ¥¡¥¤¥ë̾ (³ÈÄ¥¾ðÊó¥Õ¥¡¥¤¥ë¤¬É¬Í×): %o, ¥×¥ì¥¤¥ê¥¹"
+"¥È: %p, ¡Ö%¡×: %%."
 
-#: gtkpod.glade:2666
+#: ../data/gtkpod.glade.h:137
+#, fuzzy, no-c-format
 msgid ""
-"Automatically start displaying tracks that match the criteria entered above. "
-"If not selected, you must press 'Display' to start displaying."
+"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:2668
-msgid "Start display automatically"
-msgstr "¼«Æ°Åª¤Ëɽ¼¨¤ò¹¹¿·¤¹¤ë"
-
-#: gtkpod.glade:2743
-msgid "Sorttab: "
-msgstr "¥½¡¼¥È¥¿¥Ö: "
-
-#: gtkpod.glade:2787
-msgid "     "
+#: ../data/gtkpod.glade.h:138
+msgid ""
+"Directories to sync with are determined from the filenames of the tracks in "
+"the playlist."
 msgstr ""
 
-#: gtkpod.glade:2813
-msgid "Category: "
-msgstr "¥«¥Æ¥´¥ê: "
+#: ../data/gtkpod.glade.h:139
+msgid "Dirs"
+msgstr "¥Ç¥£¥ì¥¯¥È¥ê"
 
-#: gtkpod.glade:2894
-msgid "Please specify a time interval"
-msgstr "´ü´Ö¤ò»ØÄꤷ¤Æ¤¯¤À¤µ¤¤"
+#: ../data/gtkpod.glade.h:140
+msgid "Display a list of tracks that could actually be updated."
+msgstr "¼ÂºÝ¤Ë¹¹¿·¤µ¤ì¤¿¶Ê¤Î¥ê¥¹¥È¤òɽ¼¨¤·¤Þ¤¹¡£"
 
-#: gtkpod.glade:2943
-msgid "Lower Margin"
-msgstr "²¼¸Â"
+#: ../data/gtkpod.glade.h:141
+msgid "Display a list of tracks that could not be updated."
+msgstr "¼ÂºÝ¤Ë¤Ï¹¹¿·¤µ¤ì¤Ê¤«¤Ã¤¿¶Ê¤Î¥ê¥¹¥È¤òɽ¼¨¤·¤Þ¤¹¡£"
 
-#: gtkpod.glade:2994 gtkpod.glade:3208
-msgid "Time:"
-msgstr "»þ¹ï:"
-
-#: gtkpod.glade:3037 gtkpod.glade:3251
-msgid ":"
+#: ../data/gtkpod.glade.h:142
+msgid "Display conversion log"
 msgstr ""
 
-#: gtkpod.glade:3114
-msgid "No lower margin"
-msgstr "²¼¸Â¤ò»ØÄꤷ¤Ê¤¤"
+#: ../data/gtkpod.glade.h:143
+msgid "Display info about detected duplicates"
+msgstr "½ÅÊ£¤ò¸«¤Ä¤±¤¿ºÝ¤ËÊó¹ð¤¹¤ë"
 
-#: gtkpod.glade:3157
-msgid "Upper margin"
-msgstr "¾å¸Â"
+#: ../data/gtkpod.glade.h:144
+msgid "Display info about non-updated tracks"
+msgstr "¹¹¿·¤µ¤ì¤Ê¤«¤Ã¤¿¶Ê¤òɽ¼¨¤¹¤ë"
 
-#: gtkpod.glade:3328
-msgid "No upper margin"
-msgstr "¾å¸Â¤ò»ØÄꤷ¤Ê¤¤"
+#: ../data/gtkpod.glade.h:145
+msgid "Display info about updated tracks"
+msgstr "¹¹¿·¤µ¤ì¤¿¶Ê¤Î¾ðÊó¤òɽ¼¨¤¹¤ë"
 
-#: gtkpod.glade:3426
-msgid "Sorting Options"
-msgstr "¥½¡¼¥È¤ÎÀßÄê"
+#: ../data/gtkpod.glade.h:146
+msgid "Display messages and warnings at startup"
+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
+#: ../data/gtkpod.glade.h:147
 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 ¤ËÊݸ¤¹¤ë¤Ë¤Ï¡¢¡ÖÊÔ½¸¡×¥á¥Ë¥å¡¼¤Î¡Ö¸½ºß¤Î¶Ê½ç¤òÊÝ"
-"¸¡×¤Î¹àÌܤ«¡¢¾å¤Î¡Ö¼«Æ°Êݸ¡×¤òÍ­¸ú¤Ë¤·¤Æ¤¯¤À¤µ¤¤¡£"
+"Display the list of duplicates that have been detected after adding files."
+msgstr "¥Õ¥¡¥¤¥ë¤òÄɲä·¤¿ºÝ¤Ëȯ¸«¤·¤¿¡¢½ÅÊ£¤¹¤ë¶Ê¤Î¥ê¥¹¥È¤òɽ¼¨¤·¤Þ¤¹¡£"
 
-#: gtkpod.glade:3905
-msgid "Ascending"
-msgstr "¾º½ç"
+#: ../data/gtkpod.glade.h:148
+msgid "Display toolbar..."
+msgstr "¥Ä¡¼¥ë¥Ð¡¼¤Îɽ¼¨..."
 
-#: gtkpod.glade:3953
-msgid "Descending"
-msgstr "¹ß½ç"
+#: ../data/gtkpod.glade.h:149
+msgid "Display tooltips in main window"
+msgstr "¥Ä¡¼¥ë¥Á¥Ã¥×¤ò¥á¥¤¥ó²èÌ̤Çɽ¼¨¤¹¤ë"
 
-#: gtkpod.glade:4001
-msgid "None"
-msgstr "̵»ØÄê"
+#: ../data/gtkpod.glade.h:150
+msgid "Display tooltips in prefs window"
+msgstr "¥Ä¡¼¥ë¥Á¥Ã¥×¤òÀßÄê²èÌ̤Çɽ¼¨¤¹¤ë"
 
-#: gtkpod.glade:4048 src/display_playlists.c:2106
-msgid "Playlists"
-msgstr "¥×¥ì¥¤¥ê¥¹¥È"
+#: ../data/gtkpod.glade.h:151
+msgid "Display tracks that match the criteria entered above."
+msgstr "¾å¤Ç»ØÄꤵ¤ì¤¿¾ò·ï¤Ë¹çÃפ¹¤ë¶Ê¤òɽ¼¨¤·¤Þ¤¹."
 
-#: gtkpod.glade:4097
-msgid "Sorttabs"
-msgstr "¥½¡¼¥È¥¿¥Ö"
+#: ../data/gtkpod.glade.h:152
+msgid ""
+"Displayed\n"
+"Tracks"
+msgstr ""
+"ɽ¼¨¤µ¤ì\n"
+"¤Æ¤¤¤ë¶Ê"
 
-#: gtkpod.glade:4146
-msgid "Tracks"
-msgstr "¶Ê¥ê¥¹¥È"
+#: ../data/gtkpod.glade.h:154
+msgid "Don't allow file duplication"
+msgstr "¥Õ¥¡¥¤¥ë¤Î½ÅÊ£¤òµö¤µ¤Ê¤¤"
 
-#: gtkpod.glade:4306
-msgid "Auto Store"
-msgstr "¼«Æ°Êݸ"
+#: ../data/gtkpod.glade.h:155
+#, fuzzy
+msgid "Don't automatically sync on startup"
+msgstr "µ¯Æ°»þ¤Ë¼«Æ°Åª¤Ë iTunesDB ¤òÆɤ߹þ¤à"
 
-#: 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."
+#: ../data/gtkpod.glade.h:156
+msgid "Download Cover"
 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 ""
-"ʤٴ¹¤¨¤ÎºÝ¤Ë¡¢¥¢¥ë¥Õ¥¡¥Ù¥Ã¥È¤ÎÂçʸ»ú¤È¾®Ê¸»ú¤ò¶èÊ̤·¤Þ¤¹¡£¥¢¥ë¥Õ¥¡¥Ù¥Ã¥È°Ê"
-"³°¤Î¤Û¤È¤ó¤É¤Îʸ»ú¤Ë¤ÏÂбþ¤·¤Æ¤¤¤Þ¤»¤ó¡£"
+#: ../data/gtkpod.glade.h:157
+#, fuzzy
+msgid "Duplicate Recognition is based on a (modified) sha1 hash over the file."
+msgstr "md5¤òÍøÍѤ·¤¿½ÅÊ£¥Á¥§¥Ã¥¯¤ò¹Ô¤¦¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡£"
 
-#: gtkpod.glade:4685
-msgid "Sorting case sensitive"
-msgstr "ʤٴ¹¤¨¤ÎºÝ¤ËÂçʸ»ú¾®Ê¸»ú¤ò¶èÊ̤¹¤ë"
+#: ../data/gtkpod.glade.h:158
+msgid "Edit Repository/iPod Options"
+msgstr "iPod ¤ÎÀßÄê"
 
-#: gtkpod.glade:4731
-msgid "<b>Ignore Frequent Words</b>"
-msgstr ""
+#: ../data/gtkpod.glade.h:159 ../src/context_menus.c:659
+msgid "Edit Smart Playlist"
+msgstr "¥¹¥Þ¡¼¥È¥×¥ì¥¤¥ê¥¹¥È¤ÎÊÔ½¸"
 
-#: gtkpod.glade:4831
-msgid "Ignore these words when at the beginning of the following fields:"
-msgstr ""
+#: ../data/gtkpod.glade.h:160 ../src/context_menus.c:746
+msgid "Edit Track Details"
+msgstr "¶Ê¾ðÊó¤òÊÔ½¸"
 
-#: gtkpod.glade:5106
-msgid "gtkpod Info"
-msgstr ""
+#: ../data/gtkpod.glade.h:161
+msgid "Edit _Preferences"
+msgstr "ÀßÄê(_P)"
 
-#: gtkpod.glade:5427 gtkpod.glade:5514 gtkpod.glade:5543 gtkpod.glade:6261
-#: gtkpod.glade:6406
-msgid "      "
-msgstr ""
+#: ../data/gtkpod.glade.h:162
+msgid "Effective free space"
+msgstr "¶õ¤­ÍÆÎÌ"
 
-#: gtkpod.glade:5832
-msgid "Number of tracks"
-msgstr "¶Ê¿ô"
+#: ../data/gtkpod.glade.h:163
+msgid "Empty Playlist"
+msgstr "¶õ¥ê¥¹¥È"
 
-#: gtkpod.glade:5862
-msgid "Play time"
-msgstr "±éÁÕ»þ´Ö"
+#: ../data/gtkpod.glade.h:164
+msgid "Exclude file mask(s)"
+msgstr "ŬÍѤ·¤Ê¤¤¥Õ¥¡¥¤¥ë"
 
-#: gtkpod.glade:5893
+#: ../data/gtkpod.glade.h:165
 msgid "File size"
 msgstr "¥Õ¥¡¥¤¥ë¥µ¥¤¥º"
 
-#: gtkpod.glade:5923
-msgid "Number of playlists"
-msgstr "¥×¥ì¥¤¥ê¥¹¥È¤Î¿ô"
-
-#: gtkpod.glade:5953
-msgid "Deleted tracks"
-msgstr "ºï½ü¤µ¤ì¤¿¶Ê"
-
-#: gtkpod.glade:5983
+#: ../data/gtkpod.glade.h:166
 msgid "File size (deleted)"
 msgstr "ºï½ü¤µ¤ì¤¿¥Õ¥¡¥¤¥ë¥µ¥¤¥º"
 
-#: gtkpod.glade:6013
-#, fuzzy
-msgid "Non-transferred tracks"
-msgstr "̤žÁ÷¤Î¶Ê¿ô"
-
-#: gtkpod.glade:6043
-#, fuzzy
+#: ../data/gtkpod.glade.h:167
 msgid "File size (non-transferred)"
 msgstr "̤žÁ÷¤Î¥Õ¥¡¥¤¥ë¥µ¥¤¥º"
 
-#: gtkpod.glade:6073
-msgid "Effective free space"
-msgstr ""
+#: ../data/gtkpod.glade.h:168
+msgid "Filename Format: "
+msgstr "¥Õ¥¡¥¤¥ë̾¤Î½ñ¼°: "
 
-#: gtkpod.glade:6103
-msgid ""
-"Total\n"
-"(iPod)"
-msgstr ""
+#: ../data/gtkpod.glade.h:169
+msgid "Files"
+msgstr "¥Õ¥¡¥¤¥ë"
 
-#: gtkpod.glade:6135
+#: ../data/gtkpod.glade.h:170
 #, fuzzy
 msgid ""
-"Selected\n"
-"Playlist"
-msgstr "¥×¥ì¥¤¥ê¥¹¥È(_P)"
+"Find orphan files (files with no track info in DB) and dangling tracks "
+"(tracks with no corresponding files on iPod)"
+msgstr ""
+"¤ß¤Ê¤·¤´¥Õ¥¡¥¤¥ë (¥Ç¡¼¥¿¥Ù¡¼¥¹¤Ë¶Ê¾ðÊó¤¬ÅÐÏ¿¤µ¤ì¤Æ¤¤¤Ê¤¤¥Õ¥¡¥¤¥ë) ¤ä¤Ö¤é¤µ¤¬"
+"¤ê¶Ê (¶Ê¾ðÊ󤬤¢¤ë¤Î¤Ë¥Õ¥¡¥¤¥ë¼«ÂΤ¬ iPod ¾å¤Ë¸ºß¤·¤Ê¤¤) ¤òõ¤¹"
 
-#: gtkpod.glade:6167
+#: ../data/gtkpod.glade.h:171
 #, fuzzy
-msgid ""
-"Displayed\n"
-"Tracks"
-msgstr "ɽ¼¨¤µ¤ì¤Æ¤¤¤ë¶Ê(_D)"
+msgid "First try <i>folder.jpg</i>, then <i><artist>.jpg</i>"
+msgstr "ºÇ½é¤Ë <i>folder.jpg</i> ¤ò»î¤·¡¢Ìµ¤±¤ì¤Ð <i>&lt;artist&gt;.jpg</i>"
 
-#: gtkpod.glade:6199
-#, fuzzy
-msgid ""
-"Selected\n"
-"Tracks"
-msgstr "ÁªÂò¤µ¤ì¤Æ¤¤¤ë¶Ê(_S)"
+#: ../data/gtkpod.glade.h:172
+msgid "Flac with :"
+msgstr ""
 
-#: gtkpod.glade:6231
+#: ../data/gtkpod.glade.h:174
+#, fuzzy, no-c-format
 msgid ""
-"Total\n"
-"(local)"
+"For example, 'xmms %s' will clear xmms' current playlist, add the selected "
+"tracks and start playing."
 msgstr ""
+"Î㤨¤Ð 'xmms -p %s' ¤È¤¹¤ë¤È¡¢xmms ¤Î¤½¤Î»þ¤Î¥×¥ì¥¤¥ê¥¹¥È¤ò¥¯¥ê¥¢¤·¡¢ÁªÂò¤·¤¿"
+"¶Ê¤ò¥×¥ì¥¤¥ê¥¹¥È¤ÎÀèƬ¤Ë²Ã¤¨¤Æ±éÁÕ¤ò»Ï¤á¤Þ¤¹¡£"
 
-#: gtkpod.glade:6651
-msgid "label21"
+#: ../data/gtkpod.glade.h:176
+#, no-c-format
+msgid ""
+"For example, 'xmms -e %s' will append (enqueue) the selected tracks to xmms' "
+"current playlist."
 msgstr ""
+"Î㤨¤Ð 'xmms -e %s' ¤È¤¹¤ë¤È¡¢ÁªÂò¤µ¤ì¤¿¶Ê¤ò xmms ¤Î¤½¤Î»þ¤Î¥×¥ì¥¤¥ê¥¹¥È¤ÎºÇ"
+"¸åÈø¤ËÄɲä·¤Þ¤¹"
 
-#: gtkpod.glade:6746
-msgid "Never show this dialogue again"
-msgstr "¤³¤Î¼ÁÌä¤òÆóÅÙ¤Èɽ¼¨¤·¤Ê¤¤"
+#: ../data/gtkpod.glade.h:177 ../src/display_sorttabs.c:2957
+#: ../src/display_spl.c:89 ../src/misc_conversion.c:63
+msgid "Genre"
+msgstr "¥¸¥ã¥ó¥ë"
 
-#: gtkpod.glade:6791 gtkpod.glade:7135
-msgid "window1"
+#: ../data/gtkpod.glade.h:178
+msgid "Group artists on compilation CDs"
 msgstr ""
 
-#: gtkpod.glade:6850
-msgid "_M3U"
+#: ../data/gtkpod.glade.h:179
+#, fuzzy
+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:6869
-msgid "_PLS"
+#: ../data/gtkpod.glade.h:180 ../src/context_menus.c:682
+#: ../src/context_menus.c:700 ../src/context_menus.c:824
+msgid "I'm sure"
 msgstr ""
 
-#: gtkpod.glade:6907
+#: ../data/gtkpod.glade.h:181
 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"
+#: ../data/gtkpod.glade.h:182
+msgid "If both options are selected, embedded APIC data takes precedence."
 msgstr ""
 
-#: gtkpod.glade:6927
+#: ../data/gtkpod.glade.h:183
 msgid ""
-"The local copy of the track is referenced in the playlist. If the track is "
-"not available locally, an error message is displayed."
+"If checked, sorting will be case sensitive. Please note that case sensitive "
+"sorting will not work well with most charsets."
 msgstr ""
+"ʤٴ¹¤¨¤ÎºÝ¤Ë, ¥¢¥ë¥Õ¥¡¥Ù¥Ã¥È¤ÎÂçʸ»ú¤È¾®Ê¸»ú¤ò¶èÊ̤·¤Þ¤¹. ¤³¤Îµ¡Ç½¤Ï¥¢¥ë"
+"¥Õ¥¡¥Ù¥Ã¥È°Ê³°¤Î¤Û¤È¤ó¤É¤Îʸ»ú¤Ë¤ÏÂбþ¤·¤Æ¤¤¤Þ¤»¤ó."
 
-#: gtkpod.glade:6929
-msgid "_Local"
+#: ../data/gtkpod.glade.h:184
+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:6948
-msgid "The track on the iPod is referenced in the playlist file."
-msgstr ""
+#: ../data/gtkpod.glade.h:185
+msgid "If you check this, gtkpod will descend into subdirectories recursively."
+msgstr "¤³¤Î¹àÌܤòÍ­¸ú¤Ë¤¹¤ë¤È¡¢gtkpod¤Ï¥µ¥Ö¥Ç¥£¥ì¥¯¥È¥ê¤òºÆµ¢Åª¤Ëé¤ê¤Þ¤¹¡£"
 
-#: gtkpod.glade:6950
-msgid "_iPod"
+#: ../data/gtkpod.glade.h:186
+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:6983
-#, fuzzy
-msgid "Playlist type:"
-msgstr "¥×¥ì¥¤¥ê¥¹¥È"
-
-#: gtkpod.glade:7012
-msgid "Source:"
+#: ../data/gtkpod.glade.h:187
+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:7055
-msgid "Template for info field: "
-msgstr ""
-
-#: gtkpod.glade:7080
-#, fuzzy
+#: ../data/gtkpod.glade.h:188
 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 '%': %%."
+"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 ""
-"iPod¤«¤é¥³¥Ô¡¼¤·¤¿¶Ê¤ËÉÕ¤±¤é¤ì¤ë¥Õ¥¡¥¤¥ë̾¤òÀßÄꤷ¤Þ¤¹¡£Îã:'%A/%d%t - %n' ¤ä "
-"'%o' ¤Ê¤É¡£%A: ¥¢¡¼¥Æ¥£¥¹¥È; %n: ¥¿¥¤¥È¥ë; %t: ¥È¥é¥Ã¥¯No.; %o: ¸µ¤Î¥Õ¥¡¥¤¥ë"
-"̾ (³ÈÄ¥¾ðÊó¥Õ¥¡¥¤¥ë¤¬É¬Í×)"
+"¶Ê¥ê¥¹¥È¤Î¶Ê¤òÆó¤Ä°Ê¾åÁªÂò¤·¤Æ¡¢ºÇ½é¤Î¶Ê¤Î¥¿¥°¤òÊѹ¹¤¹¤ë¤È¾¤Î¶Ê¤Ë¤â¤½¤ÎÊѹ¹"
+"¤òŬÍѤ·¤Þ¤¹¡£"
 
-#: gtkpod.glade:7111 gtkpod.glade:7355
-#, fuzzy
-msgid "gtkpod options"
-msgstr "ÉÔÌÀ¤Ê¥ª¥×¥·¥ç¥ó: %s\n"
+#: ../data/gtkpod.glade.h:189
+msgid "Ignore these words when at the beginning of the following fields:"
+msgstr "¤³¤ì¤é¤Î¸ì¤¬°Ê²¼¤Î¹àÌܤÎËÁƬ¤Ë¤¢¤Ã¤¿¾ì¹ç¤Ë¤Ï̵»ë¤·¤Þ¤¹:"
 
-#: gtkpod.glade:7173
-msgid "Filename Format: "
-msgstr "¥Õ¥¡¥¤¥ë̾¤Î½ñ¼°: "
-
-#: gtkpod.glade:7198
-#, fuzzy
+#: ../data/gtkpod.glade.h:190
 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 '%': %%."
+"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¤«¤é¥³¥Ô¡¼¤·¤¿¶Ê¤ËÉÕ¤±¤é¤ì¤ë¥Õ¥¡¥¤¥ë̾¤òÀßÄꤷ¤Þ¤¹¡£Îã:'%A/%d%t - %n' ¤ä "
-"'%o' ¤Ê¤É¡£%A: ¥¢¡¼¥Æ¥£¥¹¥È; %n: ¥¿¥¤¥È¥ë; %t: ¥È¥é¥Ã¥¯No.; %o: ¸µ¤Î¥Õ¥¡¥¤¥ë"
-"̾ (³ÈÄ¥¾ðÊó¥Õ¥¡¥¤¥ë¤¬É¬Í×)"
+"ɽ¼¨¤µ¤ì¤Æ¤¤¤ë¶Ê½ç¤ò iPod ¤ËÊݸ¤¹¤ë¤Ë¤Ï,¡ÖÊÔ½¸¡×¥á¥Ë¥å¡¼¤«¤é¡Ö¸½ºß¤Î¶Ê½ç¤òÊÝ"
+"¸¡×¤òÁªÂò¤¹¤ë¤«, ¤³¤Î²¼¤Î¡Ö¼«Æ°Êݸ¡×¤òÁªÂò¤·¤Æ¤¯¤À¤µ¤¤."
 
-#: 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."
+#: ../data/gtkpod.glade.h:191
+msgid "Initialize iPod"
 msgstr ""
-"Ä̾ï¤Ï¡¢ºÇ½é¤Ë¶Ê¤òÊݸ¤·¤¿»þ¤Ë»ØÄꤵ¤ì¤¿Ê¸»ú¥³¡¼¥É¤ò¥Õ¥¡¥¤¥ë̾¤Ë¤â»ÈÍѤ·¤Þ¤¹"
-"¤¬¡¢¤³¤Î¹àÌܤòÍ­¸ú¤Ë¤¹¤ë¤È¡¢¡ÖÄɲÃ/¹¹¿·/Ʊ´ü¡×¤Î¹àÌܤǻØÄꤷ¤¿Ê¸»ú¥³¡¼¥É¤ò¤«"
-"¤ï¤ê¤Ë»ÈÍѤǤ­¤Þ¤¹¡£Ãí°Õ: ʸ»ú¥³¡¼¥É¤Î¾ðÊó¤Ï³ÈÄ¥¾ðÊó¥Õ¥¡¥¤¥ë(¡ÖiTunesDB¤Ø¤Î½ñ"
-"¤­¹þ¤ß¡×¤ò»²¾È)¤Ëµ­Ï¿¤µ¤ì¤Þ¤¹¡£¥Ð¡¼¥¸¥ç¥ó0.51°ÊÁ°¤Îgtkpod¤ÇÅÐÏ¿¤µ¤ì¤¿¶Ê¤Ë¤Ï¤³"
-"¤Î¾ðÊ󤬵­Ï¿¤µ¤ì¤Æ¤¤¤Þ¤»¤ó¡£¤³¤Î¾ì¹ç¡¢¾å¤Ç»ØÄꤵ¤ì¤¿Ê¸»ú¥³¡¼¥É¤¬º£¸å»È¤ï¤ì¤ë"
-"¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡£"
 
-#: gtkpod.glade:7227
+#: ../data/gtkpod.glade.h:192
 msgid ""
-"Use selected charset (Preferences/'Adding/Updating/ Syncing')\n"
-"for this filename."
+"Insert before\n"
+"Insert after"
 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."
+#: ../data/gtkpod.glade.h:194
+msgid "Keeps all compilation CDs grouped together in the artists sort tab."
 msgstr ""
 
-#: gtkpod.glade:7248
-msgid "Check for existing files when copying from iPod."
+#: ../data/gtkpod.glade.h:195
+msgid "Live _updating"
 msgstr ""
 
-#: gtkpod.glade:7423
-msgid "Playlist name:"
-msgstr "¥×¥ì¥¤¥ê¥¹¥È¤Î̾Á°:"
+#: ../data/gtkpod.glade.h:196
+msgid "Load iPod(s)"
+msgstr "iPod ¤«¤éÆɤ߹þ¤ß"
 
-#: gtkpod.glade:7492
-msgid "Match al_l of the following"
-msgstr "°Ê²¼¤Ë³ºÅö¤¹¤ë¤â¤Î¤¹¤Ù¤Æ(_l)"
+#: ../data/gtkpod.glade.h:197
+msgid "Lower Margin"
+msgstr "²¼¸Â"
 
-#: gtkpod.glade:7511
-msgid "Match an_y of the following"
+#: ../data/gtkpod.glade.h:198
+msgid "M4A with :"
 msgstr ""
 
-#: gtkpod.glade:7531
-msgid "_Ignore rules"
-msgstr "¥ë¡¼¥ë¤ò̵»ë"
+#: ../data/gtkpod.glade.h:199
+msgid "MP3 with :"
+msgstr ""
 
-#: gtkpod.glade:7601
-msgid "Rules"
-msgstr "¥ë¡¼¥ë"
+#: ../data/gtkpod.glade.h:200
+msgid "Match al_l of the following"
+msgstr "°Ê²¼¤Î¤¹¤Ù¤Æ¤Ë³ºÅö¤¹¤ë¤â¤Î(_l)"
 
-#: gtkpod.glade:7638
-msgid "_Limit to"
-msgstr "À©¸Â (_L)"
+#: ../data/gtkpod.glade.h:201
+msgid "Match an_y of the following"
+msgstr "°Ê²¼¤Î¤¤¤º¤ì¤«¤Ë³ºÅö¤¹¤ë¤â¤Î(_y)"
 
-#: gtkpod.glade:7689
-msgid "   Sort by:"
-msgstr "   ¥½¡¼¥È½ç:"
-
-#: gtkpod.glade:7741
+#: ../data/gtkpod.glade.h:202
 msgid "Match only _checked tracks"
 msgstr ""
 
-#: gtkpod.glade:7773
-msgid "Live _updating"
+#: ../data/gtkpod.glade.h:203
+msgid "Maximum number of background threads:"
 msgstr ""
 
-#: gtkpod.glade:7864
-msgid "Preferences"
-msgstr "ÀßÄê"
-
-#: gtkpod.glade:7927
-msgid "<b>Mountpoint and individual repository/playlist options</b>"
+#: ../data/gtkpod.glade.h:204
+msgid "Maximum size of cache directory (in GB):"
 msgstr ""
 
-#: gtkpod.glade:7990
-msgid "Set mountpoint or edit repository options"
+#: ../data/gtkpod.glade.h:205
+msgid "Model:"
 msgstr ""
 
-#: gtkpod.glade:8037
-msgid "<b>Import</b>"
-msgstr "<b>¥¤¥ó¥Ý¡¼¥È</b>"
+#: ../data/gtkpod.glade.h:206 ../src/display_tracks.c:1993
+msgid "Modified"
+msgstr "Êѹ¹Æü"
 
-#: gtkpod.glade:8108
-#, fuzzy
-msgid "Automatically import iTunesDBs on startup"
-msgstr "µ¯Æ°»þ¤Ë¼«Æ°Åª¤Ë iTunesDB ¤òÆɤ߹þ¤à"
+#: ../data/gtkpod.glade.h:207
+msgid "Most Recently Played Tracks"
+msgstr "ºÇ¶áºÆÀ¸¤µ¤ì¤¿¶Ê"
 
-#: gtkpod.glade:8154
-msgid "<b>Adding/Updating/Syncing</b>"
-msgstr "<b>ÅÐÏ¿/¹¹¿·/Ʊ´ü</b>"
-
-#: gtkpod.glade:8226
-msgid "Exclude file mask(s)"
+#: ../data/gtkpod.glade.h:208
+msgid "Music Root:"
 msgstr ""
 
-#: gtkpod.glade:8251
-msgid "Semicolon seperated list of file exclusion masks, e.g. '*.mp3'"
+#: ../data/gtkpod.glade.h:209
+msgid ""
+"Music files can have images embedded in the APIC tag. Currently this is only "
+"supported for MP3 files."
 msgstr ""
 
-#: gtkpod.glade:8285
-#, fuzzy
-msgid "_Encoding (ID3, files):"
-msgstr "ʸ»ú¥³¡¼¥É(_C) (ID3,¥Õ¥¡¥¤¥ë):"
+#: ../data/gtkpod.glade.h:210
+msgid "Never show this dialogue again"
+msgstr "¤³¤Î¼ÁÌä¤òÆóÅÙ¤Èɽ¼¨¤·¤Ê¤¤"
 
-#: gtkpod.glade:8320
+#: ../data/gtkpod.glade.h:211
+msgid "New PL"
+msgstr "¿·µ¬¥×¥ì¥¤¥ê¥¹¥È"
+
+#: ../data/gtkpod.glade.h:212
+msgid "No lower margin"
+msgstr "²¼¸Â¤ò»ØÄꤷ¤Ê¤¤"
+
+#: ../data/gtkpod.glade.h:213
+msgid "No upper margin"
+msgstr "¾å¸Â¤ò»ØÄꤷ¤Ê¤¤"
+
+#: ../data/gtkpod.glade.h:214
+msgid "Non-transferred tracks"
+msgstr "̤žÁ÷¤Î¶Ê¿ô"
+
+#: ../data/gtkpod.glade.h:215
+msgid "None"
+msgstr "̵»ØÄê"
+
+#: ../data/gtkpod.glade.h:216
 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."
+"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¤Ï¤³¤³¤Ç»ØÄꤵ¤ì¤¿Ê¸»ú¥³¡¼¥É¤¬¡¢ID3¤Î¥¿¥°¤ä¥Õ¥¡¥¤¥ë̾¤Ë»È¤ï¤ì¤Æ¤¤¤ë¤â¤Î"
-"¤È¤·¤Æ½èÍý¤·¤Þ¤¹¡£¡Ö¥Õ¥¡¥¤¥ë¤ÎÄɲáפä¡Ö¥Ç¥£¥ì¥¯¥È¥ê¤´¤ÈÄɲáפò¼Â¹Ô¤¹¤ëÁ°¤Ë"
-"¤³¤ÎÀßÄê¤òÊѹ¹¤¹¤ì¤Ð¡¢¤³¤ì¤é¤Î½èÍý¤ËÀßÄ꤬ȿ±Ç¤µ¤ì¤Þ¤¹¡£¡Ö¥·¥¹¥Æ¥àʸ»ú¡×¤òÁª"
-"Âò¤¹¤ë¤È¡¢¥í¥±¡¼¥ë¤Ç»ØÄꤵ¤ì¤¿¥³¡¼¥É¤¬»È¤ï¤ì¤Þ¤¹¡£"
+"Ä̾ï¤Ï, ºÇ½é¤Ë¶Ê¤òÅÐÏ¿¤·¤¿»þ¤Ë»ØÄꤵ¤ì¤¿Ê¸»ú¥³¡¼¥É¤ò¥Õ¥¡¥¤¥ë̾¤Ë¤â»ÈÍѤ·¤Þ¤¹"
+"¤¬, ¤³¤Î¹àÌܤòÍ­¸ú¤Ë¤¹¤ë¤È, ÀßÄê¥á¥Ë¥å¡¼¤Î¡ÖÄɲÃ/¹¹¿·/Ʊ´ü¡×¤Î¹àÌܤǻØÄꤷ¤¿"
+"ʸ»ú¥³¡¼¥É¤ò¤«¤ï¤ê¤Ë»ÈÍѤǤ­¤Þ¤¹. Ãí°Õ: ʸ»ú¥³¡¼¥É¤Î¾ðÊó¤Ï³ÈÄ¥¾ðÊó¥Õ¥¡¥¤¥ë "
+"(¡ÖiTunesDB¤Ø¤Î½ñ¤­¹þ¤ß¡×¤ò»²¾È)¤Ëµ­Ï¿¤µ¤ì¤Þ¤¹. ¥Ð¡¼¥¸¥ç¥ó0.51°ÊÁ°¤Î gtkpod "
+"¤ÇÅÐÏ¿¤µ¤ì¤¿¶Ê¤Ë¤Ï¤³¤Î¾ðÊ󤬵­Ï¿¤µ¤ì¤Æ¤¤¤Þ¤»¤ó. ¤³¤Î¾ì¹ç, ¾å¤Ç»ØÄꤵ¤ì¤¿Ê¸»ú"
+"¥³¡¼¥É¤¬º£¸å»È¤ï¤ì¤ë¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹."
 
-#: gtkpod.glade:8357
+#: ../data/gtkpod.glade.h:217
 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 "
@@ -985,94 +986,33 @@
 "imported before V0.51 will have no charset stored. Instead the charset "
 "specified above will be used then."
 msgstr ""
-"Ä̾ï¤Ï¡¢¶Ê¤ò¥¤¥ó¥Ý¡¼¥È¤¹¤ëºÝ¤Ë»ØÄꤵ¤ì¤¿Ê¸»ú¥³¡¼¥É¤¬¤½¤Î¸å¤â»È¤ï¤ì¤Þ¤¹¤¬¡¢¤â"
-"¤·¤½¤Î»þ¤Ë´Ö°ã¤Ã¤¿Ê¸»ú¥³¡¼¥É¤ò»ØÄꤷ¤Æ¤·¤Þ¤Ã¤Æ¤¤¤Æ¡¢¡Ö¶Ê¤Î¹¹¿·¡×¤ò»È¤Ã¤Æ¤½¤ì"
-"¤òľ¤·¤¿¤¤¤Î¤Ç¤¢¤ì¤Ð¡¢¤³¤Î¹àÌܤòÍ­¸ú¤Ë¤·¤Æ¤¯¤À¤µ¤¤¡£Ãí°Õ: ʸ»ú¥³¡¼¥É¤Î¾ðÊó¤Ï"
-"³ÈÄ¥¾ðÊó¥Õ¥¡¥¤¥ë¤Ëµ­Ï¿¤µ¤ì¤Þ¤¹¤¬(¡ÖiTunesDB¤Ø¤Î½ñ¤­¹þ¤ß¡×¤Î¹àÌܤò»²¾È)¡¢¥Ð¡¼"
-"¥¸¥ç¥ó0.51°ÊÁ°¤Îgtkpod¤Ç¥¤¥ó¥Ý¡¼¥È¤µ¤ì¤¿¶Ê¤Ï¤³¤Î¾ðÊ󤬵­Ï¿¤µ¤Æ¤¤¤Þ¤»¤ó¡£¤³¤Î"
-"¾ì¹ç¡¢¤³¤³¤Ç»ØÄꤵ¤ì¤¿Ê¸»ú¥³¡¼¥É¤¬º£¸å»È¤ï¤ì¤ë¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡£"
+"Ä̾ï¤Ï, ¶Ê¤ò¥¤¥ó¥Ý¡¼¥È¤¹¤ëºÝ¤Ë»ØÄꤵ¤ì¤¿Ê¸»ú¥³¡¼¥É¤¬¤½¤Î¸å¤â»È¤ï¤ì¤Þ¤¹¤¬, ¤â"
+"¤·¤½¤Î»þ¤Ë´Ö°ã¤Ã¤¿Ê¸»ú¥³¡¼¥É¤ò»ØÄꤷ¤Æ¤·¤Þ¤Ã¤Æ¤¤¤Æ,¡Ö¶Ê¤Î¹¹¿·¡×¤ò»È¤Ã¤Æ¤½¤ì¤ò"
+"ľ¤·¤¿¤¤¤Î¤Ç¤¢¤ì¤Ð, ¤³¤Î¹àÌܤòÍ­¸ú¤Ë¤·¤Æ¤¯¤À¤µ¤¤. Ãí°Õ: ʸ»ú¥³¡¼¥É¤Î¾ðÊó¤Ï³È"
+"Ä¥¾ðÊó¥Õ¥¡¥¤¥ë¤Ëµ­Ï¿¤µ¤ì¤Þ¤¹¤¬(¡ÖiTunesDB¤Ø¤Î½ñ¤­¹þ¤ß¡×¤Î¹àÌܤò»²¾È), ¥Ð¡¼"
+"¥¸¥ç¥ó0.51°ÊÁ°¤Î gtkpod ¤Ç¥¤¥ó¥Ý¡¼¥È¤µ¤ì¤¿¶Ê¤Ï¤³¤Î¾ðÊ󤬵­Ï¿¤µ¤Æ¤¤¤Þ¤»¤ó. ¤³"
+"¤Î¾ì¹ç, ¤³¤³¤Ç»ØÄꤵ¤ì¤¿Ê¸»ú¥³¡¼¥É¤¬º£¸å»È¤ï¤ì¤ë¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹."
 
-#: gtkpod.glade:8359
-#, fuzzy
+#: ../data/gtkpod.glade.h:218
 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."
+"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:8482
+#: ../data/gtkpod.glade.h:219
 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 "
@@ -1083,419 +1023,447 @@
 "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"
+#: ../data/gtkpod.glade.h:222
+msgid "Notes sync command:"
 msgstr ""
 
-#: gtkpod.glade:8735
-msgid "This is the same option as in 'Edit/Delete Confirmation'"
-msgstr "¡ÖÊÔ½¸/ºï½ü¤Î³Îǧ¡×¤Î¹àÌܤÈƱ¤¸¤Ç¤¹"
+#: ../data/gtkpod.glade.h:223
+msgid "Number of playlists"
+msgstr "¥×¥ì¥¤¥ê¥¹¥È¤Î¿ô"
 
-#: gtkpod.glade:8737 gtkpod.glade:17782
-#, fuzzy
-msgid "Confirm before removing tracks from the iPod or repository"
-msgstr "¶Ê¤òiPod¤«¤é´°Á´¤Ëºï½ü¤¹¤ë»þ"
+#: ../data/gtkpod.glade.h:224
+msgid "Number of tracks"
+msgstr "¶Ê¿ô"
 
-#: gtkpod.glade:8756 gtkpod.glade:17800
+#: ../data/gtkpod.glade.h:225
+msgid "Number of tracks in generated playlists:"
+msgstr "À¸À®¤¹¤ë¥×¥ì¥¤¥ê¥¹¥È¤Ë²Ã¤¨¤ë¶Ê¿ô:"
+
+#: ../data/gtkpod.glade.h:226
 msgid ""
-"Will show a list of tracks removed and a list of tracks newly added or "
-"updated."
+"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:8758 gtkpod.glade:17802
-msgid "Show summary of sync result"
+#: ../data/gtkpod.glade.h:227
+msgid "Ogg with :"
 msgstr ""
 
-#: gtkpod.glade:8819
-msgid "<b>Sync</b>"
+#: ../data/gtkpod.glade.h:228
+msgid "On startup automatically sync with playlist directories"
 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=\" ¤Î¹àÌܤòÊѹ¹¤¹¤ì¤Ð¤è¤¤)"
+#: ../data/gtkpod.glade.h:229
+#, fuzzy
+msgid "On startup automatically sync with the following directory"
+msgstr "°Ê²¼¤Î¥Ç¥£¥ì¥¯¥È¥ê¤ÇƱ´ü½èÍý¤ò¤·¤Æ¤â¤è¤í¤·¤¤¤Ç¤¹¤«?"
 
-#: gtkpod.glade:8877
-#, fuzzy
-msgid ""
-"Write extended information (PC filenames,\n"
-" MD5 hashes, encoding). Recommended."
+#: ../data/gtkpod.glade.h:230
+msgid "On startup automatically update (Live Playlist)"
 msgstr ""
-"³ÈÄ¥¾ðÊó(PC¾å¤Î¥Õ¥¡¥¤¥ë̾,MD5ÃÍ,ʸ»ú¥³¡¼¥É)¤ò½ñ¤­¹þ¤à¡£\n"
-"¿ä¾©¤µ¤ì¤ëÀßÄê¤Ç¤¹¡£"
 
-#: gtkpod.glade:8921 gtkpod.glade:14688
-msgid "_General"
-msgstr "´ðËÜÀßÄê(_G)"
+#: ../data/gtkpod.glade.h:231
+msgid "One for each Album"
+msgstr "³Æ¥¢¥ë¥Ð¥à¤´¤È¤Î¥ê¥¹¥È"
 
-#: gtkpod.glade:8957
-msgid "<b>Tag Reading</b>"
-msgstr "<b>¥¿¥°¤ÎÆɤ߹þ¤ß</b>"
+#: ../data/gtkpod.glade.h:232
+msgid "One for each Artist"
+msgstr "³Æ¥¢¡¼¥Æ¥£¥¹¥È¤´¤È¤Î¥ê¥¹¥È"
 
-#: gtkpod.glade:9020
-msgid "Read tags from file contents (e.g. ID3 tags in MP3 files)"
-msgstr "¥Õ¥¡¥¤¥ë¤«¤é¥¿¥°¾ðÊó¤òÆɤ߹þ¤à (MP3 ¥Õ¥¡¥¤¥ë¤Î ID3 ¥¿¥°¤Ê¤É)"
+#: ../data/gtkpod.glade.h:233
+msgid "One for each Composer"
+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 ""
-"¥¢¡¼¥Æ¥£¥¹¥È: %a, ¥¢¥ë¥Ð¥à: %A, ºî¶Ê¼Ô: %c, ¥¿¥¤¥È¥ë: %t, ¥¸¥ã¥ó¥ë: %G, ¥È"
-"¥é¥Ã¥¯ÈÖ¹æ: %T, CD ÈÖ¹æ: %C, ǯ: %Y, ¥¹¥­¥Ã¥×: %*, ¥Ñ¡¼¥»¥ó¥Èµ­¹æ: %%¡£¤¤¤¯¤Ä"
-"¤«¤Î¥Æ¥ó¥×¥ì¡¼¥È¤ò';' ¤Ç¶èÀڤäÆʤ٤뤳¤È¤¬¤Ç¤­¤Þ¤¹¡£ºÇ½é¤Ë¹ç¤Ã¤¿¥Æ¥ó¥×¥ì¡¼"
-"¥È¤¬»È¤ï¤ì¤Þ¤¹¡£Îã: '%a - %A/%T %t.mp3;%t.wav'."
+#: ../data/gtkpod.glade.h:234
+msgid "One for each Genre"
+msgstr "³Æ¥¸¥ã¥ó¥ë¤´¤È¤Î¥ê¥¹¥È"
 
-#: gtkpod.glade:9041
-msgid "Use this template to parse filename for tag information:"
-msgstr "°Ê²¼¤Î¥Æ¥ó¥×¥ì¡¼¥È¤ò¡¢¥Õ¥¡¥¤¥ë̾¤«¤é¥¿¥°¾ðÊó¤òÃê½Ð¤¹¤ë¤Î¤Ë»ÈÍѤ¹¤ë:"
+#: ../data/gtkpod.glade.h:235
+msgid "One for each Rating"
+msgstr "³Æɾ²ÁÃͤ´¤È¤Î¥ê¥¹¥È"
 
-#: gtkpod.glade:9118
+#: ../data/gtkpod.glade.h:236
+msgid "One for each Year"
+msgstr "³Æǯ¤´¤È¤Î¥ê¥¹¥È"
+
+#: ../data/gtkpod.glade.h:237
 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:"
+#: ../data/gtkpod.glade.h:238
+msgid "Password:"
 msgstr ""
-"ºÇ¸å¤Î¼êÃʤȤ·¤Æ¡¢°Ê²¼¤Î¥¿¥°¤¬Ì¤ÀßÄê¤Î¾ì¹ç¤Ë¥Õ¥¡¥¤¥ë̾¤ò¤½¤ÎÃͤȤ·¤Æ»ÈÍѤ¹¤ë:"
 
-#: gtkpod.glade:9187 src/display_sorttabs.c:2942 src/display_spl.c:85
-#: src/misc_conversion.c:62
-msgid "Artist"
-msgstr "¥¢¡¼¥Æ¥£¥¹¥È"
+#: ../data/gtkpod.glade.h:239
+msgid "Path:"
+msgstr ""
 
-#: gtkpod.glade:9209 src/display_sorttabs.c:2948 src/display_spl.c:89
-#: src/misc_conversion.c:64
-msgid "Genre"
-msgstr "¥¸¥ã¥ó¥ë"
+#: ../data/gtkpod.glade.h:240
+msgid "Play time"
+msgstr "±éÁÕ»þ´Ö"
 
-#. 0
-#: gtkpod.glade:9231 src/display_sorttabs.c:2945 src/display_spl.c:84
-#: src/misc_conversion.c:61
-msgid "Album"
-msgstr "¥¢¥ë¥Ð¥à"
+#: ../data/gtkpod.glade.h:241 ../src/display_spl.c:98
+#: ../src/misc_conversion.c:77
+msgid "Playcount"
+msgstr "ºÆÀ¸²ó¿ô"
 
-#. 5
-#: gtkpod.glade:9253 src/display_spl.c:97 src/misc_conversion.c:66
-msgid "Composer"
-msgstr "ºî¶Ê¼Ô"
+#: ../data/gtkpod.glade.h:242 ../src/display_tracks.c:1990
+msgid "Played"
+msgstr "±éÁÕÆü"
 
-#: gtkpod.glade:9275 src/display_sorttabs.c:2954 src/display_spl.c:83
-#: src/misc_conversion.c:63
-msgid "Title"
-msgstr "¥¿¥¤¥È¥ë"
+#: ../data/gtkpod.glade.h:243 ../src/display_spl.c:105
+msgid "Playlist"
+msgstr "¥×¥ì¥¤¥ê¥¹¥È"
 
-#: gtkpod.glade:9330
+#: ../data/gtkpod.glade.h:244
+msgid "Playlist name:"
+msgstr "¥×¥ì¥¤¥ê¥¹¥È¤Î̾Á°:"
+
+#: ../data/gtkpod.glade.h:245
 #, fuzzy
-msgid "<b>Coverart</b>"
-msgstr "<b>¥¤¥ó¥Ý¡¼¥È</b>"
+msgid "Playlist type:"
+msgstr "¥×¥ì¥¤¥ê¥¹¥È"
 
-#: gtkpod.glade:9392
+#: ../data/gtkpod.glade.h:246 ../src/display_playlists.c:2176
+msgid "Playlists"
+msgstr "¥×¥ì¥¤¥ê¥¹¥È"
+
+#: ../data/gtkpod.glade.h:247
+msgid "Please refer to the notice below."
+msgstr "²¼µ­¤ÎÃí°Õ¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£"
+
+#: ../data/gtkpod.glade.h:248
+msgid "Please specify a time interval"
+msgstr "´ü´Ö¤ò»ØÄꤷ¤Æ¤¯¤À¤µ¤¤"
+
+#: ../data/gtkpod.glade.h:249
+msgid "Preferences"
+msgstr "ÀßÄê"
+
+#: ../data/gtkpod.glade.h:250
 msgid ""
-"Music files can have images embedded in the APIC tag. Currently this is only "
-"supported for MP3 files."
+"Press button to abort.\n"
+"Export can be continued at a later time."
 msgstr ""
+"¥Ü¥¿¥ó¤ò²¡¤¹¤ÈÃæÃǤ·¤Þ¤¹¡£\n"
+"¥Õ¥¡¥¤¥ë¤Î¥¨¥¯¥¹¥Ý¡¼¥È¤Ï¸å¤ÇºÆ³«¤¹¤ë»ö¤¬¤Ç¤­¤Þ¤¹¡£"
 
-#: gtkpod.glade:9394
-msgid "Read coverart from embedded APIC data"
+#: ../data/gtkpod.glade.h:252
+msgid "Previous"
 msgstr ""
 
-#: gtkpod.glade:9415
+#: ../data/gtkpod.glade.h:253
 #, fuzzy
-msgid "Add coverart from file using the following template"
-msgstr "¼¡¤Î¥Æ¥ó¥×¥ì¡¼¥È¤Ë¹ç¤¦¥Õ¥¡¥¤¥ë¤ò¥¢¡¼¥È¥ï¡¼¥¯¤È¤·¤ÆÅÐÏ¿¤¹¤ë"
+msgid "Progress Information"
+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: ¸µ¤Î¥Õ¥¡¥¤¥ë"
-"̾ (³ÈÄ¥¾ðÊó¥Õ¥¡¥¤¥ë¤¬É¬Í×)"
+#: ../data/gtkpod.glade.h:254
+msgid "Random Playlist from Displayed Tracks"
+msgstr "ɽ¼¨¤µ¤ì¤Æ¤¤¤ë¶Ê¤«¤é¥é¥ó¥À¥à¤ËºîÀ®"
 
-#: gtkpod.glade:9492
-msgid "<b>Examples</b>"
-msgstr "<b>Îã</b>"
+#: ../data/gtkpod.glade.h:255
+msgid "Randomize Current Playlist"
+msgstr "¸½ºß¤Î¥×¥ì¥¤¥ê¥¹¥È¤ò¥é¥ó¥À¥à¤Ëʤٴ¹¤¨¤ë"
 
-#: gtkpod.glade:9526
-msgid "folder.jpg"
-msgstr ""
+#: ../data/gtkpod.glade.h:256 ../src/display_spl.c:101
+#: ../src/misc_conversion.c:78
+msgid "Rating"
+msgstr "ɾ²Á"
 
-#: gtkpod.glade:9554
-msgid "folder"
+#: ../data/gtkpod.glade.h:257
+msgid "Read coverart from embedded APIC data"
 msgstr ""
 
-#: gtkpod.glade:9582
-msgid "../%A.jpg"
-msgstr ""
+#: ../data/gtkpod.glade.h:258
+msgid "Read tags from file contents (e.g. ID3 tags in MP3 files)"
+msgstr "¥Õ¥¡¥¤¥ë¤«¤é¥¿¥°¾ðÊó¤òÆɤ߹þ¤à (MP3 ¥Õ¥¡¥¤¥ë¤Î ID3 ¥¿¥°¤Ê¤É)"
 
-#: gtkpod.glade:9610
-msgid "%A"
-msgstr ""
+#: ../data/gtkpod.glade.h:259
+msgid "Remove Cover Art"
+msgstr "¥«¥Ð¡¼¥¢¡¼¥È¤òºï½ü"
 
-#: gtkpod.glade:9638
-msgid "Use <i>folder.jpg</i> as cover art."
-msgstr "<i>folder.jpg</i> ¤ò¥«¥Ð¡¼¥¢¡¼¥È¤Ë»È¤¦"
+#: ../data/gtkpod.glade.h:260
+#, fuzzy
+msgid "Repository Options"
+msgstr "¥½¡¼¥È¤ÎÀßÄê"
 
-#: gtkpod.glade:9666
-msgid "Use <i>folder.jpg</i>, <i>folder.png</i>..."
-msgstr "<i>folder.jpg</i>, <i>folder.png</i> ¤Ê¤É"
+#: ../data/gtkpod.glade.h:261
+#, fuzzy
+msgid "Repository name:"
+msgstr "¥½¡¼¥È¤ÎÀßÄê"
 
-#: gtkpod.glade:9694
-msgid "Use <i>&lt;Album&gt;.jpg</i> in the parent directory"
-msgstr "¿Æ¥Ç¥£¥ì¥¯¥È¥ê¤Ë¤¢¤ë <i>&lt;Album&gt;.jpg</i> ¤ò»È¤¦"
+#: ../data/gtkpod.glade.h:262
+#, fuzzy
+msgid "Repository type:"
+msgstr "¥½¡¼¥È¤ÎÀßÄê"
 
-#: 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> ¤Ê¤É"
+#: ../data/gtkpod.glade.h:263
+msgid "Root directory of mserv database (trackinfo root)."
+msgstr "mserv ¥Ç¡¼¥¿¥Ù¡¼¥¹¤Î¤¢¤ë¥Ç¥£¥ì¥¯¥È¥ê¡£(trackinfo root)"
 
-#: gtkpod.glade:9750
-msgid "folder.jpg;%a.jpg"
-msgstr ""
+#: ../data/gtkpod.glade.h:264
+msgid "Rules"
+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>"
+#: ../data/gtkpod.glade.h:265 ../src/context_menus.c:808
+msgid "Save Changes"
+msgstr "Êѹ¹¤òÊݸ"
 
-#: gtkpod.glade:9835
-msgid "If both options are selected, embedded APIC data takes precedence."
+#: ../data/gtkpod.glade.h:266
+#, fuzzy
+msgid "Scrobble Tracks?"
+msgstr "ÁªÂò¤µ¤ì¤¿¶Ê(_T)"
+
+#: ../data/gtkpod.glade.h:267
+msgid "Select '-1' for no upper limit."
+msgstr "¾å¸Â¤ò»ØÄꤷ¤Ê¤¤¾ì¹ç¤Ï '-1' ¤òÁª¤ó¤Ç¤¯¤À¤µ¤¤¡£"
+
+#: ../data/gtkpod.glade.h:268
+msgid "Select '0' for no lower limit."
+msgstr "²¼¸Â¤ò»ØÄꤷ¤Ê¤¤¾ì¹ç¤Ï '0' ¤òÁª¤ó¤Ç¤¯¤À¤µ¤¤."
+
+#: ../data/gtkpod.glade.h:269
+msgid ""
+"Selected\n"
+"Playlist"
 msgstr ""
+"ÁªÂò¤µ¤ì¤¿\n"
+"¥×¥ì¥¤¥ê¥¹¥È"
 
-#: gtkpod.glade:9887
-msgid "<b>mserv</b>"
+#: ../data/gtkpod.glade.h:271
+msgid ""
+"Selected\n"
+"Tracks"
 msgstr ""
+"ÁªÂò¤µ¤ì\n"
+"¤Æ¤¤¤ë¶Ê"
 
-#: gtkpod.glade:9949 gtkpod.glade:10175
-msgid "Currently only rating is supported."
-msgstr "¸½ºß¤Ïɾ²Á¾ðÊó¤Î¤ß»ÈÍÑ"
+#: ../data/gtkpod.glade.h:273
+msgid "Selected Tab _Entry"
+msgstr "ÁªÂò¤µ¤ì¤¿¥½¡¼¥È¥¿¥Ö(_E)"
 
-#: gtkpod.glade:9951
-msgid "Use mserv database to fill additional information"
-msgstr "mserv ¤Î¥Ç¡¼¥¿¥Ù¡¼¥¹¤«¤éÄɲþðÊó¤ò¼èÆÀ¤¹¤ë"
+#: ../data/gtkpod.glade.h:274
+msgid "Selected _Playlist"
+msgstr "ÁªÂò¤µ¤ì¤¿¥×¥ì¥¤¥ê¥¹¥È(_P)"
 
-#: gtkpod.glade:9979
-msgid "Music Root:"
-msgstr ""
+#: ../data/gtkpod.glade.h:275
+msgid "Selected _Tracks"
+msgstr "ÁªÂò¤µ¤ì¤¿¶Ê(_T)"
 
-#: gtkpod.glade:10007
-msgid "mserv database lookup will be done for music in this directory."
-msgstr "¤³¤Î¥Ç¥£¥ì¥¯¥È¥êÆâ¤Î¶Ê¤ËÂФ·¡¢mserv ¤Î¥Ç¡¼¥¿¥Ù¡¼¥¹¤ò»²¾È¤·¤Þ¤¹¡£"
+#: ../data/gtkpod.glade.h:276
+msgid "Selected filter tab entry from database"
+msgstr "ÁªÂò¤µ¤ì¤¿¥¿¥Ö¤Ç»ØÄꤷ¤¿¶Ê¤ò¥Ç¡¼¥¿¥Ù¡¼¥¹¤«¤éºï½ü¤¹¤ë"
 
-#: gtkpod.glade:10029
-msgid "mserv Root:"
-msgstr ""
+#: ../data/gtkpod.glade.h:277
+msgid "Selected filter tab entry from harddisk"
+msgstr "ÁªÂò¤µ¤ì¤¿¥¿¥Ö¤Ç»ØÄꤷ¤¿¶Ê¤ò¥Ï¡¼¥É¥Ç¥£¥¹¥¯¤«¤éºï½ü¤¹¤ë"
 
-#: gtkpod.glade:10057
-msgid "Root directory of mserv database (trackinfo root)."
-msgstr "mserv ¥Ç¡¼¥¿¥Ù¡¼¥¹¤Î¤¢¤ë¥Ç¥£¥ì¥¯¥È¥ê¡£(trackinfo root)"
+#: ../data/gtkpod.glade.h:278
+msgid "Selected filter tab entry from iPod"
+msgstr "ÁªÂò¤µ¤ì¤¿¥¿¥Ö¤Ç»ØÄꤷ¤¿¶Ê¤ò iPod ¤«¤éºï½ü¤¹¤ë"
 
-#: gtkpod.glade:10079
-msgid "Username:"
-msgstr "¥æ¡¼¥¶¡¼Ì¾:"
+#: ../data/gtkpod.glade.h:279
+msgid "Selected filter tab entry from playlist"
+msgstr "ÁªÂò¤µ¤ì¤¿¥¿¥Ö¤Ç»ØÄꤷ¤¿¶Ê¤ò¥×¥ì¥¤¥ê¥¹¥È¤«¤éºï½ü¤¹¤ë"
 
-#: gtkpod.glade:10107
-msgid "Username to be used for mserv database lookup."
-msgstr "¥æ¡¼¥¶¡¼Ì¾¤Ï mserv ¥Ç¡¼¥¿¥Ù¡¼¥¹¤Î»²¾È¤Ë»È¤¤¤Þ¤¹¡£"
+#: ../data/gtkpod.glade.h:280
+msgid "Selected playlist"
+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 "¥Ö¥é¥¦¥º"
+#: ../data/gtkpod.glade.h:281
+msgid "Selected playlist including tracks from database"
+msgstr "ÁªÂò¤µ¤ì¤¿¥×¥ì¥¤¥ê¥¹¥È¤ò¶Ê¤´¤È¥Ç¡¼¥¿¥Ù¡¼¥¹¤«¤éºï½ü¤¹¤ë"
 
-#: gtkpod.glade:10177
-msgid "Show information about problems when accessing mserv"
-msgstr "mserv ¤Ø¥¢¥¯¥»¥¹¤¹¤ë¤È¤­¡¢ÌäÂê¤ÎÊó¹ð¤òɽ¼¨¤¹¤ë"
+#: ../data/gtkpod.glade.h:282
+msgid "Selected playlist including tracks from harddisk"
+msgstr "ÁªÂò¤µ¤ì¤¿¥×¥ì¥¤¥ê¥¹¥È¤ò¶Ê¤´¤È¥Ç¡¼¥¿¥Ù¡¼¥¹¤«¤éºï½ü¤¹¤ë"
 
-#: gtkpod.glade:10223
-msgid "_Track Info"
-msgstr "¶Ê¾ðÊó(_T)"
+#: ../data/gtkpod.glade.h:283
+msgid "Selected playlist including tracks from iPod"
+msgstr "ÁªÂò¤µ¤ì¤¿¥×¥ì¥¤¥ê¥¹¥È¤ò¶Ê¤´¤È iPod ¤«¤éºï½ü¤¹¤ë"
 
-#: gtkpod.glade:10273
-msgid "<b>Displayed Track Attributes</b>"
-msgstr "<b>ɽ¼¨¤¹¤ë¶Ê°À­</b>"
+#: ../data/gtkpod.glade.h:284
+msgid "Selected tracks from database"
+msgstr "ÁªÂò¤µ¤ì¤¿¶Ê¤ò¥Ç¡¼¥¿¥Ù¡¼¥¹¤«¤éºï½ü¤¹¤ë"
 
-#: gtkpod.glade:11083
-msgid "<b>Sort Tabs</b>"
-msgstr "<b>¥½¡¼¥È¥¿¥Ö</b>"
+#: ../data/gtkpod.glade.h:285
+msgid "Selected tracks from harddisk"
+msgstr "ÁªÂò¤µ¤ì¤¿¶Ê¤ò¥Ï¡¼¥É¥Ç¥£¥¹¥¯¤«¤éºï½ü¤¹¤ë"
 
-#: gtkpod.glade:11145
-msgid "Keeps all compilation CDs grouped together in the artists sort tab."
+#: ../data/gtkpod.glade.h:286
+msgid "Selected tracks from iPod"
+msgstr "ÁªÂò¤µ¤ì¤¿¶Ê¤ò iPod ¤«¤éºï½ü¤¹¤ë"
+
+#: ../data/gtkpod.glade.h:287
+msgid "Selected tracks from playlist"
+msgstr "ÁªÂò¤µ¤ì¤¿¶Ê¤ò¥×¥ì¥¤¥ê¥¹¥È¤«¤éºï½ü¤¹¤ë"
+
+#: ../data/gtkpod.glade.h:288
+#, fuzzy
+msgid "Semicolon separated list of file exclusion masks, e.g. '*.mp3'"
+msgstr "¥»¥ß¥³¥í¥ó¤Ç¶èÀÚ¤é¤ì¤¿, ŬÍѤ·¤Ê¤¤¥Õ¥¡¥¤¥ë¤Î¥Þ¥¹¥¯¥ê¥¹¥È. Îã: '*.mp3'"
+
+#: ../data/gtkpod.glade.h:289
+#, fuzzy
+msgid "Set Cover Art from File"
+msgstr "mserv ¥Ç¡¼¥¿¤ò¹¹¿·¤¹¤ë(_m)"
+
+#: ../data/gtkpod.glade.h:290
+msgid "Set Cover Art from Web"
 msgstr ""
 
-#: gtkpod.glade:11147
-msgid "Group artists on compilation CDs"
+#: ../data/gtkpod.glade.h:291
+msgid "Set mountpoint or edit repository options"
 msgstr ""
 
-#: gtkpod.glade:11172
-msgid "_Number of sort tabs:"
-msgstr "¥½¡¼¥È¥¿¥Ö¤Î¿ô(_N):"
+#: ../data/gtkpod.glade.h:292
+msgid "Set options for Calendar/Contacts/Notes"
+msgstr ""
 
-#: gtkpod.glade:11252
-msgid "<b>Automatically select...</b>"
-msgstr "<b>¼«Æ°Åª¤ËÁªÂò...</b>"
+#: ../data/gtkpod.glade.h:293
+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:11314
+#: ../data/gtkpod.glade.h:294
 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."
+"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:11316
-msgid "...master playlist"
-msgstr "...¥Þ¥¹¥¿¡¼¥×¥ì¥¤¥ê¥¹¥È"
+#: ../data/gtkpod.glade.h:295
+msgid "Set this to your last.fm password"
+msgstr ""
 
-#: gtkpod.glade:11336
-msgid "...entry 'All' in sort tab..."
-msgstr "...°Ê²¼¤Î¥½¡¼¥È¥¿¥ÖÆâ¤Î¡Ö¤¹¤Ù¤Æ¡×¤Î¹àÌÜ"
+#: ../data/gtkpod.glade.h:296
+msgid "Set this to your last.fm username"
+msgstr ""
 
-#: gtkpod.glade:11421
-msgid "<b>Tooltips</b>"
-msgstr "<b>¥Ä¡¼¥ë¥Á¥Ã¥×</b>"
+#: ../data/gtkpod.glade.h:297
+msgid ""
+"Set to 0 to effectively disable caching (a maximum of one track will be "
+"cached at a time)."
+msgstr ""
 
-#: gtkpod.glade:11484
-msgid "Display tooltips in main window"
-msgstr "¥Ä¡¼¥ë¥Á¥Ã¥×¤ò¥á¥¤¥ó²èÌ̤Çɽ¼¨¤¹¤ë"
+#: ../data/gtkpod.glade.h:298
+msgid ""
+"Set to 0 to use as many background threads as CPUs are available on your "
+"system."
+msgstr ""
 
-#: gtkpod.glade:11504
-msgid "Display tooltips in prefs window"
-msgstr "¥Ä¡¼¥ë¥Á¥Ã¥×¤òÀßÄê²èÌ̤Çɽ¼¨¤¹¤ë"
+#: ../data/gtkpod.glade.h:299
+msgid "Show information about problems when accessing mserv"
+msgstr "mserv ¤Ø¥¢¥¯¥»¥¹¤¹¤ë¤È¤­¡¢ÌäÂê¤ÎÊó¹ð¤òɽ¼¨¤¹¤ë"
 
-#: gtkpod.glade:11550
-msgid "<b>Toolbar</b>"
-msgstr "<b>¥Ä¡¼¥ë¥Ð¡¼</b>"
+#: ../data/gtkpod.glade.h:300
+msgid "Show summary of sync result"
+msgstr ""
 
-#: gtkpod.glade:11613
-msgid "Display toolbar..."
-msgstr "¥Ä¡¼¥ë¥Ð¡¼¤Îɽ¼¨..."
+#: ../data/gtkpod.glade.h:301 ../src/misc_playlist.c:96
+#: ../src/repository.c:1356
+msgid "Smart Playlist"
+msgstr "¥¹¥Þ¡¼¥È¥×¥ì¥¤¥ê¥¹¥È"
 
-#: gtkpod.glade:11670
-msgid "...as icons"
-msgstr "¥¢¥¤¥³¥ó¤Î¤ß"
+#: ../data/gtkpod.glade.h:302
+msgid "Sort tracks according to: "
+msgstr "¶Ê½ç¤ò¼¡¤Î½ç¤Çʤٴ¹¤¨¤ë: "
 
-#: gtkpod.glade:11690
-msgid "...as text"
-msgstr "¥Æ¥­¥¹¥È¤Î¤ß"
+#: ../data/gtkpod.glade.h:303
+msgid "Sorting Options"
+msgstr "¥½¡¼¥È¤ÎÀßÄê"
 
-#: gtkpod.glade:11711
-msgid "...both as icons and text"
-msgstr "¥¢¥¤¥³¥ó¤È¥Æ¥­¥¹¥È"
+#: ../data/gtkpod.glade.h:304
+msgid "Sorting case sensitive"
+msgstr "ʤٴ¹¤¨¤ÎºÝ¤ËÂçʸ»ú¾®Ê¸»ú¤ò¶èÊ̤¹¤ë"
 
-#: gtkpod.glade:11772
-msgid "<b>Misc</b>"
-msgstr "<b>¤½¤Î¾</b>"
+#: ../data/gtkpod.glade.h:305
+msgid "Sorttab: "
+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 ""
+#: ../data/gtkpod.glade.h:306
+msgid "Sorttabs"
+msgstr "¥½¡¼¥È¥¿¥Ö"
 
-#: gtkpod.glade:11836
-msgid ""
-"Temporarily disable sorting when changing playlist\n"
-"or tab entry (faster!)"
-msgstr ""
-"¥×¥ì¥¤¥ê¥¹¥È¤ä¥½¡¼¥È¥¿¥Ö¤òÊѹ¹¤·¤¿»þ¤Î¼«Æ°Ê¤ٴ¹¤¨¤ò\n"
-"ÍÞÀ©¤¹¤ë (Æ°ºî¤¬Â®¤¯¤Ê¤ë)"
+#: ../data/gtkpod.glade.h:307
+msgid "Source:"
+msgstr "»²¾ÈÀè:"
 
-#: gtkpod.glade:11856
+#: ../data/gtkpod.glade.h:309
+#, no-c-format
 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)."
+"Specify exact path including command line options. '%i' will be replaced "
+"with the mount point of the iPod."
 msgstr ""
-"ÁªÂò¤òÊѹ¹¤·¤¿»þ¤Ë¡¢¶Ê¤Î¥ê¥¹¥È¤ò¹¹¿·¤·½ª¤ï¤ë¤Þ¤ÇÅÓÃæ·Ð²á¤òɽ¼¨¤·¤Þ¤»¤ó¡£¹¹¿·"
-"¤Î¥¹¥Ô¡¼¥É¤Ï®¤¯¤Ê¤ê¤Þ¤¹¤¬¡¢¤½¤ì¤¬½ª¤ï¤ë¤Þ¤Ç¤Ï²¿¤â¤¹¤ë»ö¤¬¤Ç¤­¤Ê¤¯¤Ê¤ê¤Þ¤¹¡£"
-"¤³¤ÎÀßÄê¤òÍ­¸ú¤Ë¤·¤¿¾ì¹ç¡¢Ê¤ٴ¹¤¨¤Ï°ì»þŪ¤Ë¤Ç¤­¤Ê¤¯¤Ê¤ê¤Þ¤¹ (¾å¤ÎÀßÄê¤ò»²"
-"¾È)¡£"
 
-#: gtkpod.glade:11858
-msgid ""
-"Block display when changing playlist or tab\n"
-" entry (faster!)"
-msgstr ""
-"¥×¥ì¥¤¥ê¥¹¥È¤ä¥½¡¼¥È¥¿¥Ö¤òÊѹ¹¤·¤¿»þ¤ËÅÓÃæ·Ð²á¤Î\n"
-"ɽ¼¨¤òÍÞÀ©¤¹¤ë(Æ°ºî¤¬Â®¤¯¤Ê¤ë)"
+#: ../data/gtkpod.glade.h:310
+msgid "Specify interval"
+msgstr "ÈϰϤò»ØÄꤷ¤Æ¤¯¤À¤µ¤¤"
 
-#: gtkpod.glade:11878
-msgid "This option will be re-activated when you upgrade gtkpod."
-msgstr ""
+#: ../data/gtkpod.glade.h:311
+msgid "Start display automatically"
+msgstr "¼«Æ°Åª¤Ëɽ¼¨¤ò¹¹¿·¤¹¤ë"
 
-#: gtkpod.glade:11880
-msgid "Display messages and warnings at startup"
-msgstr "µ¯Æ°»þ¤Ë¥á¥Ã¥»¡¼¥¸¤ä·Ù¹ð¤òɽ¼¨¤¹¤ë"
+#: ../data/gtkpod.glade.h:312
+msgid "Synchronise Contacts, Calendar and Notes"
+msgstr "¥¢¥É¥ì¥¹¥Ç¡¼¥¿,¥«¥ì¥ó¥À¡¼,¥á¥â¤òƱ´ü¤¹¤ë"
 
-#: gtkpod.glade:11942
-msgid "Advanced Sorting Options"
+#: ../data/gtkpod.glade.h:313
+msgid "Synchronize All"
+msgstr "¤¹¤Ù¤ÆƱ´ü"
+
+#: ../data/gtkpod.glade.h:314
+msgid "Synchronize Calendar"
+msgstr "¥«¥ì¥ó¥À¡¼¤òƱ´ü"
+
+#: ../data/gtkpod.glade.h:315
+msgid "Synchronize Contacts"
+msgstr "¥¢¥É¥ì¥¹¥Ç¡¼¥¿¤òƱ´ü"
+
+#: ../data/gtkpod.glade.h:316
+msgid "Synchronize Notes"
+msgstr "¥á¥â¤òƱ´ü"
+
+#: ../data/gtkpod.glade.h:317
+msgid "Template for info field: "
 msgstr ""
 
-#: gtkpod.glade:12045
-msgid "<b>Track Editing</b>"
-msgstr "<b>¶Ê¤ÎÊÔ½¸</b>"
-
-#: gtkpod.glade:12107
+#: ../data/gtkpod.glade.h:318
 msgid ""
-"The tags are written to the files on your harddrive and on the ipod (if "
-"available)."
+"The local copy of the track is referenced in the playlist. If the track is "
+"not available locally, an error message is displayed."
 msgstr ""
-"¥¿¥°¤Ï»È¤Ã¤Æ¤¤¤ë¥Ï¡¼¥É¥Ç¥£¥¹¥¯¤È(²Äǽ¤Ç¤¢¤ì¤Ð)iPod¤ÎξÊý¤Ç½¤Àµ¤µ¤ì¤Þ¤¹¡£"
+"¥Ï¡¼¥É¥Ç¥£¥¹¥¯¾å¤Ë¤¢¤ëÂбþ¤¹¤ë¶Ê¤ò¾ï¤Ë»²¾È¤·¤Þ¤¹. ¸«¤Ä¤«¤é¤Ê¤¤¾ì¹ç¤Ë¤Ï¥¨¥é¡¼"
+"¥á¥Ã¥»¡¼¥¸¤òɽ¼¨¤·¤Þ¤¹."
 
-#: gtkpod.glade:12109
-msgid "Write ID3 tags to disk when modified in gtkpod"
-msgstr "gtkpodÆâ¤ÇÊѹ¹¤¬¤¢¤Ã¤¿ID3¥¿¥°¤ò¥Ç¥£¥¹¥¯¤Ë½ñ¤­¹þ¤à"
-
-#: gtkpod.glade:12165
+#: ../data/gtkpod.glade.h:319
 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."
+"The output of the background conversion scripts is copied below. Each page "
+"of the notebook corresponds to one background thread."
 msgstr ""
-"Ä̾ï¤Ï¡¢ºÇ½é¤Ë¶Ê¤òÊݸ¤·¤¿»þ¤Ë»ØÄꤵ¤ì¤¿Ê¸»ú¥³¡¼¥É¤ò¥¿¥°¤ò½ñ¤­¹þ¤à»þ¤Ë¤â»ÈÍÑ"
-"¤·¤Þ¤¹¡£¤â¤·ºÇ½é¤Ë´Ö°ã¤Ã¤¿Ê¸»ú¥³¡¼¥É¤ò»ØÄꤷ¤Æ¤·¤Þ¤Ã¤¿¾ì¹ç¤Ë¤Ï¡¢Àµ¤·¤¤Ê¸»ú"
-"¥³¡¼¥É¤òÁªÂò¤·¤¿¸å¤Ë¤³¤Î¥ª¥×¥·¥ç¥ó¤òÁªÂò¤·¤Æ¤¯¤À¤µ¤¤¡£Ãí°Õ: ʸ»ú¥³¡¼¥É¤Î¾ðÊó"
-"¤òÊݸ¤¹¤ë¤¿¤á¤Ë¡¢³ÈÄ¥¾ðÊó¥Õ¥¡¥¤¥ë¤ò»ÈÍѤ·¤Æ¤¯¤À¤µ¤¤(¡ÖÆþ½ÐÎϡפΥڡ¼¥¸¤Î"
-"¡ÖiTunesDB¤Ø¤Î½ñ¤­¹þ¤ß¡×¤Î¹à¤ò»²¾È)¡£¤Þ¤¿¡¢¥Ð¡¼¥¸¥ç¥ó0.51°ÊÁ°¤ËÅÐÏ¿¤µ¤ì¤¿¶Ê¤Ë"
-"¤Ä¤¤¤Æ¤Ïʸ»ú¥³¡¼¥É¾ðÊó¤¬Êݸ¤µ¤ì¤Æ¤¤¤Þ¤»¤ó¡£¡ÖÆþ½ÐÎϡפιàÌܤǻØÄꤵ¤ì¤¿Ê¸»ú"
-"¥³¡¼¥É¤¬Å¬ÍѤµ¤ì¤Þ¤¹¡£"
 
-#: gtkpod.glade:12167
+#: ../data/gtkpod.glade.h:320
 #, fuzzy
 msgid ""
-"Use selected encoding (on the 'General' page)\n"
-"when writing tags"
+"The tags are written to the files on your harddrive and on the iPod (if "
+"available)."
 msgstr ""
-"¡Ö´ðËÜÀßÄê¡×¤Î¥Ú¡¼¥¸¤Ç»ØÄꤵ¤ì¤¿Ê¸»ú¥³¡¼¥É¤ò\n"
-"¥¿¥°¤ÎÆɤ߽ñ¤­¤Ë¤â»ÈÍѤ¹¤ë"
+"¥¿¥°¤Ï»È¤Ã¤Æ¤¤¤ë¥Ï¡¼¥É¥Ç¥£¥¹¥¯¤È(²Äǽ¤Ç¤¢¤ì¤Ð)iPod¤ÎξÊý¤Ç½¤Àµ¤µ¤ì¤Þ¤¹¡£"
 
-#: gtkpod.glade:12187
+#: ../data/gtkpod.glade.h:321
+msgid "The track on the iPod is referenced in the playlist file."
+msgstr "iPod ¾å¤Î¶Ê¤ò¾ï¤Ë»²¾È¤·¤Þ¤¹."
+
+#: ../data/gtkpod.glade.h:322
+msgid "This is the same option as in 'Edit/Delete Confirmation'"
+msgstr "¡ÖÊÔ½¸/ºï½ü¤Î³Îǧ¡×¤Î¹àÌܤÈƱ¤¸¤Ç¤¹"
+
+#: ../data/gtkpod.glade.h:323
 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 "
@@ -1504,766 +1472,996 @@
 "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 ¤Î¤ß)"
+#: ../data/gtkpod.glade.h:324
+msgid "This option will be re-activated when you upgrade gtkpod."
+msgstr ""
 
-#: gtkpod.glade:12222
+#: ../data/gtkpod.glade.h:325
+msgid "Time:"
+msgstr "»þ¹ï:"
+
+#: ../data/gtkpod.glade.h:326 ../src/display_sorttabs.c:2963
+#: ../src/display_spl.c:83 ../src/misc_conversion.c:62
+msgid "Title"
+msgstr "¥¿¥¤¥È¥ë"
+
+#: ../data/gtkpod.glade.h:327
 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."
+"Total\n"
+"(iPod)"
 msgstr ""
-"¶Ê¥ê¥¹¥È¤Î¶Ê¤òÆó¤Ä°Ê¾åÁªÂò¤·¤Æ¡¢ºÇ½é¤Î¶Ê¤Î¥¿¥°¤òÊѹ¹¤¹¤ë¤È¾¤Î¶Ê¤Ë¤â¤½¤ÎÊѹ¹"
-"¤òŬÍѤ·¤Þ¤¹¡£"
+"¹ç·×\n"
+"(iPod)"
 
-#: gtkpod.glade:12224
-msgid "Use 'Multi-Edit' for tracks selections"
-msgstr "ÁªÂò¤µ¤ì¤¿¶Ê¤ò¡Ö°ìÀÆÊÔ½¸¡×¤¹¤ë"
+#: ../data/gtkpod.glade.h:329
+msgid ""
+"Total\n"
+"(local)"
+msgstr ""
+"¹ç·×\n"
+"(¥í¡¼¥«¥ë)"
 
-#: gtkpod.glade:12274
+#: ../data/gtkpod.glade.h:331
+msgid "Tracks"
+msgstr "¶Ê¥ê¥¹¥È"
+
+#: ../data/gtkpod.glade.h:332
+msgid "Tracks Most Often Listened To"
+msgstr "ºÆÀ¸²ó¿ô¤Î¿¤¤¶Ê"
+
+#: ../data/gtkpod.glade.h:333
 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)."
+"Tracks can be transferred in the background as soon as they are added to an "
+"iPod repository. Otherwise they will be transferred when ejecting the "
+"contents of the iPod completely unchanged until then."
 msgstr ""
-"ÉáÄ̤ÏÊ£¿ô¤Î¶Ê¤Î¥¿¥¤¥È¥ë¤òƱ¤¸¤â¤Î¤Ë¤¹¤ëɬÍפϤʤ¤¤Ç¤·¤ç¤¦¡£¤³¤Î¥ª¥×¥·¥ç¥ó¤ò"
-"ÁªÂò¤¹¤ë¤ÈÂçÄñ¤Ï˾¤Þ¤·¤¯¤Ê¤¤·ë²Ì¤òÆÀ¤ë»ö¤Ë¤Ê¤ê¤Þ¤¹¡£(Æäˡ¢º£¤Î¤È¤³¤í¡Ö¤ä¤êľ"
-"¤·¡×¤Ï¸ú¤«¤Ê¤¤¤Î¤Ç¡¢ÁªÂò¤¹¤ë¤Ù¤­¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó)"
 
-#: gtkpod.glade:12276
-msgid "Use 'Multi-Edit' also for title field"
-msgstr "¥¿¥¤¥È¥ë¤Î¹àÌܤâ¡Ö°ìÀÆÊÔ½¸¡×¤ò²Äǽ¤Ë¤¹¤ë"
+#: ../data/gtkpod.glade.h:334
+msgid "Tracks in Selected Tab _Entry"
+msgstr "ÁªÂò¤µ¤ì¤¿¥¿¥Ö¤Î¶Ê(_E)"
 
-#: gtkpod.glade:12329
-msgid "<b>Auto-Generated Playlists</b>"
-msgstr "<b>¥×¥ì¥¤¥ê¥¹¥È¤Î¼«Æ°À¸À®</b>"
+#: ../data/gtkpod.glade.h:335
+msgid "Tracks in Selected _Playlist"
+msgstr "ÁªÂò¤µ¤ì¤¿¥×¥ì¥¤¥ê¥¹¥È¤Î¶Ê(_P)"
 
-#: gtkpod.glade:12397
-msgid "Number of tracks in generated playlists:"
-msgstr "À¸À®¤¹¤ë¥×¥ì¥¤¥ê¥¹¥È¤Ë²Ã¤¨¤ë¶Ê¿ô:"
+#: ../data/gtkpod.glade.h:336
+msgid "Transfer tracks to the iPod in the background"
+msgstr ""
 
-#: gtkpod.glade:12422
+#: ../data/gtkpod.glade.h:337
+msgid "Translators"
+msgstr "ËÝÌõôÅö"
+
+#: ../data/gtkpod.glade.h:338
 msgid ""
-"Number of tracks in the generated playlists 'Most Often Listened', 'Best "
-"Rated' and 'Most Recently Played'. Choose '0' for 'no limit'."
+"Try to load contents of all connected iPods. For each iPod a separate "
+"repository must be set up."
 msgstr ""
-"¥×¥ì¥¤¥ê¥¹¥È¤Î¿·µ¬ºîÀ®¤Ç¡¢¡ÖºÆÀ¸²ó¿ô¤Î¿¤¤¶Ê¡×¡Öɾ²Á¤Î¹â¤¤¶Ê¡×¡ÖºÇ¶áºÆÀ¸¤µ¤ì"
-"¤¿¶Ê¡×¤òÁªÂò¤·¤¿ºÝ¤Ë¥ê¥¹¥È¤ËÅÐÏ¿¤¹¤ë¶Ê¤Î¿ô¤ò»ØÄꤷ¤Þ¤¹¡£0¤ò»ØÄꤹ¤ë¤È¡¢¶Ê¿ô¤ò"
-"À©¸Â¤·¤Þ¤»¤ó¡£"
+"Àܳ¤µ¤ì¤Æ¤¤¤ë¤¹¤Ù¤Æ¤Î iPod ¤ÎÆâÍƤòÆɤ߹þ¤ß¤Þ¤¹. ¤½¤ì¤¾¤ì¤Î iPod ¤´¤È¤Ë¸ÄÊÌ"
+"¤ËÀßÄê¤ò¤·¤Æ¤ª¤¯É¬Íפ¬¤¢¤ê¤Þ¤¹."
 
-#: gtkpod.glade:12451
-msgid "Also include tracks never played in \"Best Rated\" playlist"
+#: ../data/gtkpod.glade.h:339
+msgid "Update _mserv Data from File"
+msgstr "mserv ¥Ç¡¼¥¿¤ò¹¹¿·¤¹¤ë(_m)"
+
+#: ../data/gtkpod.glade.h:340
+msgid "Update/Sync all playlists now"
 msgstr ""
-"¡Öɾ²Á¤Î¹â¤¤¶Ê¡×¤Î¥ê¥¹¥È¤òºî¤ëºÝ¤Ë¡¢°ìÅÙ¤â\n"
-"ºÆÀ¸¤µ¤ì¤¿»ö¤Î¤Ê¤¤¶Ê¤âÂоݤȤ·¤Þ¤¹¡£"
 
-#: gtkpod.glade:12497
-msgid "<b>Delete Confirmation</b>"
-msgstr "<b>ºï½ü¤Î³Îǧ</b>"
+#: ../data/gtkpod.glade.h:341
+msgid "Update/Sync playlist now"
+msgstr ""
 
-#: gtkpod.glade:12560
-msgid "Before removing playlists or tracks from a playlist"
-msgstr "¥×¥ì¥¤¥ê¥¹¥È¤ä¡¢¥×¥ì¥¤¥ê¥¹¥È¤«¤é¶Ê¤òºï½ü¤¹¤ë»þ"
+#: ../data/gtkpod.glade.h:342
+msgid "Upper margin"
+msgstr "¾å¸Â"
 
-#: gtkpod.glade:12580
-msgid "Before removing tracks from the iPod"
-msgstr "¶Ê¤òiPod¤«¤é´°Á´¤Ëºï½ü¤¹¤ë»þ"
+#: ../data/gtkpod.glade.h:343
+msgid "Use 'Multi-Edit' also for title field"
+msgstr "¥¿¥¤¥È¥ë¤Î¹àÌܤâ¡Ö°ìÀÆÊÔ½¸¡×¤ò²Äǽ¤Ë¤¹¤ë"
 
-#: gtkpod.glade:12600
-msgid "Before removing tracks from the harddisk"
-msgstr "¶Ê¤ò¥Ï¡¼¥É¥Ç¥£¥¹¥¯¤«¤é´°Á´¤Ëºï½ü¤¹¤ë»þ"
+#: ../data/gtkpod.glade.h:344
+msgid "Use 'Multi-Edit' for tracks selections"
+msgstr "ÁªÂò¤µ¤ì¤¿¶Ê¤ò¡Ö°ìÀÆÊÔ½¸¡×¤¹¤ë"
 
-#: gtkpod.glade:12620
-msgid "Before removing tracks from the local database"
-msgstr "¶Ê¤ò¥í¡¼¥«¥ë¥Ç¡¼¥¿¥Ù¡¼¥¹¤«¤éºï½ü¤¹¤ë»þ"
+#: ../data/gtkpod.glade.h:345
+#, fuzzy
+msgid "Use <i><Album>.jpg</i> in the parent directory"
+msgstr "¿Æ¥Ç¥£¥ì¥¯¥È¥ê¤Ë¤¢¤ë <i>&lt;Album&gt;.jpg</i> ¤ò»È¤¦"
 
-#: gtkpod.glade:12640
-msgid ""
-"Confirm before removing tracks from the iPod or repository\n"
-"when syncing playlists"
-msgstr ""
+#: ../data/gtkpod.glade.h:346
+#, fuzzy
+msgid "Use <i><Album>.jpg</i>, <i><Album>.png</i>..."
+msgstr "<i>&lt;Album&gt;.jpg</i>, <i>&lt;Album&gt;.png</i> ¤Ê¤É"
 
-#: gtkpod.glade:12723
-msgid "<b>Play</b>"
-msgstr "<b>ºÆÀ¸</b>"
+#: ../data/gtkpod.glade.h:347
+msgid "Use <i>folder.jpg</i> as cover art."
+msgstr "<i>folder.jpg</i> ¤ò¥«¥Ð¡¼¥¢¡¼¥È¤Ë»È¤¦"
 
-#: gtkpod.glade:12788
-msgid "Command for 'Play now':"
-msgstr "¡Öº£¤¹¤°±éÁաפΤ¿¤á¤Î¥³¥Þ¥ó¥É:"
+#: ../data/gtkpod.glade.h:348
+msgid "Use <i>folder.jpg</i>, <i>folder.png</i>..."
+msgstr "<i>folder.jpg</i>, <i>folder.png</i> ¤Ê¤É"
 
-#: gtkpod.glade:12816
-msgid "Command for 'Enqueue':"
-msgstr "¡Ö±éÁÕ¥­¥å¡¼¤ËÆþ¤ì¤ë¡×¤¿¤á¤Î¥³¥Þ¥ó¥É:"
+#: ../data/gtkpod.glade.h:349
+msgid "Use mserv database to fill additional information"
+msgstr "mserv ¤Î¥Ç¡¼¥¿¥Ù¡¼¥¹¤«¤éÄɲþðÊó¤ò¼èÆÀ¤¹¤ë"
 
-#: gtkpod.glade:12844
-#, fuzzy
+#: ../data/gtkpod.glade.h:350
 msgid ""
-"For example, 'xmms %s' will clear xmms' current playlist, add the selected "
-"tracks and start playing."
+"Use selected charset (Preferences/'Adding/Updating/ Syncing')\n"
+"for this filename."
 msgstr ""
-"Î㤨¤Ð 'xmms -p %s' ¤È¤¹¤ë¤È¡¢xmms ¤Î¤½¤Î»þ¤Î¥×¥ì¥¤¥ê¥¹¥È¤ò¥¯¥ê¥¢¤·¡¢ÁªÂò¤·¤¿"
-"¶Ê¤ò¥×¥ì¥¤¥ê¥¹¥È¤ÎÀèƬ¤Ë²Ã¤¨¤Æ±éÁÕ¤ò»Ï¤á¤Þ¤¹¡£"
+"»ØÄꤵ¤ì¤¿Ê¸»ú¥³¡¼¥É (¡ÖÀßÄê¡×Æâ¡ÖÅÐÏ¿/¹¹¿·/Ʊ´ü¡×¤ò»²¾È)\n"
+"¤ò¥Õ¥¡¥¤¥ë̾¤Ë¤â»ÈÍѤ¹¤ë¡£"
 
-#: gtkpod.glade:12866
+#: ../data/gtkpod.glade.h:352
+#, fuzzy
 msgid ""
-"For example, 'xmms -e %s' will append (enqueue) the selected tracks to xmms' "
-"current playlist."
+"Use selected encoding (on the 'General' page)\n"
+"when writing tags"
 msgstr ""
-"Î㤨¤Ð 'xmms -e %s' ¤È¤¹¤ë¤È¡¢ÁªÂò¤µ¤ì¤¿¶Ê¤ò xmms ¤Î¤½¤Î»þ¤Î¥×¥ì¥¤¥ê¥¹¥È¤ÎºÇ"
-"¸åÈø¤ËÄɲä·¤Þ¤¹"
+"¡Ö´ðËÜÀßÄê¡×¤Î¥Ú¡¼¥¸¤Ç»ØÄꤵ¤ì¤¿Ê¸»ú¥³¡¼¥É¤ò\n"
+"¥¿¥°¤ÎÆɤ߽ñ¤­¤Ë¤â»ÈÍѤ¹¤ë"
 
-#: gtkpod.glade:12953
-msgid "<b>Volume Normalization</b>"
-msgstr "<b>²»Î̤ÎÊ¿¶Ñ²½</b>"
+#: ../data/gtkpod.glade.h:354
+#, fuzzy
+msgid "Use selected encoding also when updating or syncing tracks"
+msgstr "ÁªÂò¤µ¤ì¤¿Ê¸»ú¥³¡¼¥É¤ò¹¹¿·¡¦Æ±´ü½èÍý¤Ç¤â»ÈÍѤ¹¤ë"
 
-#: gtkpod.glade:13018
-msgid "'mp3gain' executable:"
-msgstr "'mp3gain' ¥³¥Þ¥ó¥É¤Î¾ì½ê:"
+#: ../data/gtkpod.glade.h:355
+msgid "Use this template to parse filename for tag information:"
+msgstr "°Ê²¼¤Î¥Æ¥ó¥×¥ì¡¼¥È¤ò¡¢¥Õ¥¡¥¤¥ë̾¤«¤é¥¿¥°¾ðÊó¤òÃê½Ð¤¹¤ë¤Î¤Ë»ÈÍѤ¹¤ë:"
 
-#: gtkpod.glade:13046
+#: ../data/gtkpod.glade.h:356
+msgid "Username to be used for mserv database lookup."
+msgstr "¥æ¡¼¥¶¡¼Ì¾¤Ï mserv ¥Ç¡¼¥¿¥Ù¡¼¥¹¤Î»²¾È¤Ë»È¤¤¤Þ¤¹¡£"
+
+#: ../data/gtkpod.glade.h:357
+msgid "Username:"
+msgstr "¥æ¡¼¥¶¡¼Ì¾:"
+
+#: ../data/gtkpod.glade.h:358
 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."
+"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:13087
-#, fuzzy
-msgid "'aacgain' executable:"
-msgstr "'mp3gain' ¥³¥Þ¥ó¥É¤Î¾ì½ê:"
+#: ../data/gtkpod.glade.h:359
+msgid "WAV with :"
+msgstr ""
 
-#: gtkpod.glade:13115
+#: ../data/gtkpod.glade.h:360
 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."
+"When adding dirs/files, update information of\n"
+"existing tracks with identical filenames"
 msgstr ""
+"¥Õ¥¡¥¤¥ë¤ä¥Ç¥£¥ì¥¯¥È¥ê¤òÄɲ乤ëºÝ¤Ë¡¢Æ±¤¸¥Õ¥¡¥¤¥ë̾¤Î\n"
+"¶Ê¤¬¤¹¤Ç¤Ë¤¢¤Ã¤¿¤é¾ì¹ç¤Ë¤Ï¡¢¤½¤Á¤é¤ò¹¹¿·¤¹¤ë"
 
-#: gtkpod.glade:13183
-msgid "<b>Calendar/Contacts/Notes</b>"
+#: ../data/gtkpod.glade.h:362
+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 ¤«¤é¶Ê¤ò¥³¥Ô¡¼¤¹¤ëºÝ¤Ë¤Ï, Ʊ¤¸Ì¾Á°¤Î¥Õ¥¡¥¤¥ë¤¬¤¢¤Ã¤Æ¤âñ½ã¤Ë¾å½ñ¤­¤·¤Þ"
+"¤¹. ¤³¤Î¹àÌܤòÁªÂò¤¹¤ë¤È gtkpod ¤ÏƱ¤¸Ì¾Á°¤Î¥Õ¥¡¥¤¥ë¤¬¤¢¤Ã¤¿¾ì¹ç¤Ë¤½¤Î¥µ¥¤¥º"
+"¤ò iPod ¾å¤Î¥Õ¥¡¥¤¥ë¤ÈÈæ³Ó¤·¤Æ, Ʊ¤¸¤À¤Ã¤¿¾ì¹ç¤Ë¤ÏÈô¤Ð¤·¤Þ¤¹. ·ë²Ì¤È¤·¤ÆƱ´ü"
+"½èÍý¤ò¹â®¤Ë¹Ô¤¨¤Þ¤¹."
 
-#: gtkpod.glade:13246
-msgid "Set options for Calendar/Contacts/Notes"
+#: ../data/gtkpod.glade.h:363
+#, fuzzy
+msgid "When syncing playlists"
+msgstr "¥Ç¥£¥ì¥¯¥È¥ê¤ÎƱ´ü½èÍý»þ"
+
+#: ../data/gtkpod.glade.h:364
+msgid ""
+"Will show a list of tracks removed and a list of tracks newly added or "
+"updated."
 msgstr ""
 
-#: gtkpod.glade:13381
-msgid "Details"
-msgstr "¾ÜºÙ"
+#: ../data/gtkpod.glade.h:365
+msgid "Write ID3 tags to disk when modified in gtkpod"
+msgstr "gtkpodÆâ¤ÇÊѹ¹¤¬¤¢¤Ã¤¿ID3¥¿¥°¤ò¥Ç¥£¥¹¥¯¤Ë½ñ¤­¹þ¤à"
 
-#: gtkpod.glade:13449
-msgid "Cover"
-msgstr "¥«¥Ð¡¼"
+#: ../data/gtkpod.glade.h:366
+msgid "Write all changes made to the disk and the iPod(s)."
+msgstr "¥Ï¡¼¥É¥Ç¥£¥¹¥¯¤È iPod ¤ËÂФ¹¤ëÊѹ¹¤ò¤¹¤Ù¤ÆÊݸ¤·¤Þ¤¹."
 
-#: gtkpod.glade:13538
-msgid "Set Cover Art"
-msgstr ""
-
-#: gtkpod.glade:13575
+#: ../data/gtkpod.glade.h:367
+#, fuzzy
 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."
+"Write extended information (PC filenames, SHA1 hashes,\n"
+"encoding...). Recommended."
 msgstr ""
+"³ÈÄ¥¾ðÊó(PC¾å¤Î¥Õ¥¡¥¤¥ë̾,MD5ÃÍ,ʸ»ú¥³¡¼¥É)¤ò½ñ¤­¹þ¤à¡£\n"
+"¿ä¾©¤µ¤ì¤ëÀßÄê¤Ç¤¹¡£"
 
-#: gtkpod.glade:13621
+#: ../data/gtkpod.glade.h:369
 msgid ""
-"Change all tracks\n"
-"simultaneously"
+"You can also use the table headers, but this allows you to sort according to "
+"a column that is not displayed."
 msgstr ""
+"ɽ¤Î¥Ø¥Ã¥À¤òÁàºî¤·¤Æ¤âʤٴ¹¤¨¤Ï¤Ç¤­¤Þ¤¹¤¬, ¤³¤Îµ¡Ç½¤ò»È¤¦¤Èɽ¼¨¤µ¤ì¤Æ¤¤¤Ê¤¤"
+"¹àÌܤò»È¤Ã¤Æʤٴ¹¤¨¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹."
 
-#: gtkpod.glade:13713
-msgid "Remove Cover Art"
-msgstr "¥«¥Ð¡¼¥¢¡¼¥È¤òºï½ü"
+#: ../data/gtkpod.glade.h:370
+msgid "_About"
+msgstr "gtkpod¤Ë¤Ä¤¤¤Æ(_A)"
 
-#: gtkpod.glade:14646
-#, fuzzy
-msgid "(Checked)"
-msgstr "¥Á¥§¥Ã¥¯ºÑ¤ß"
+#: ../data/gtkpod.glade.h:371
+msgid "_All Tracks"
+msgstr "¤¹¤Ù¤Æ¤Î¶Ê(_A)"
 
-#: gtkpod.glade:15088
-msgid "_Podcasts"
-msgstr ""
+#: ../data/gtkpod.glade.h:372
+msgid "_Arrange Sort Tabs"
+msgstr "¥½¡¼¥È¥¿¥Ö¤òºÆÇÛÃÖ(_A)"
 
-#: gtkpod.glade:16127
-msgid "_Other"
+#: ../data/gtkpod.glade.h:373
+msgid "_Check iPod's Files"
+msgstr "iPod ¤Î¥Õ¥¡¥¤¥ë¤ò¥Á¥§¥Ã¥¯(_C)"
+
+#: ../data/gtkpod.glade.h:374
+msgid "_Conversion Log"
 msgstr ""
 
-#: gtkpod.glade:16425
-msgid "_Undo All"
-msgstr "¤¹¤Ù¤Æ¤ä¤êľ¤·(_U)"
+#: ../data/gtkpod.glade.h:375
+msgid "_Create Playlists"
+msgstr "¥×¥ì¥¤¥ê¥¹¥È¤òºîÀ®(_C)"
 
-#: gtkpod.glade:16499
-#, fuzzy
-msgid "_Undo Track"
-msgstr "̤ɾ²Á¤Î¶Ê"
+#: ../data/gtkpod.glade.h:376
+msgid "_Create iPod's Directories"
+msgstr "iPod¤Î½é´üÀßÄê(_C)"
 
-#: gtkpod.glade:16546
-#, fuzzy
-msgid "Repository Options"
-msgstr "¥½¡¼¥È¤ÎÀßÄê"
+#: ../data/gtkpod.glade.h:377
+msgid "_Delete"
+msgstr "ºï½ü(_D)"
 
-#: gtkpod.glade:16667
-msgid "Add new repository/iPod"
-msgstr ""
+#: ../data/gtkpod.glade.h:378
+msgid "_Display"
+msgstr "ɽ¼¨(_D)"
 
-#: gtkpod.glade:16736 gtkpod.glade:18163 gtkpod.glade:18659
-#, fuzzy
-msgid "iPod mountpoint:"
-msgstr "iPod¤Î¥Þ¥¦¥ó¥È¾ì½ê(_P):"
+#: ../data/gtkpod.glade.h:379
+msgid "_Displayed Tracks"
+msgstr "ɽ¼¨¤µ¤ì¤Æ¤¤¤ë¶Ê(_D)"
 
-#: gtkpod.glade:16764 gtkpod.glade:18135
-msgid "iTunesDB backup:"
-msgstr ""
+#: ../data/gtkpod.glade.h:380
+msgid "_Edit"
+msgstr "ÊÔ½¸(_E)"
 
-#: gtkpod.glade:16792 gtkpod.glade:18107 gtkpod.glade:18730 gtkpod.glade:18922
-msgid "Model:"
-msgstr ""
+#: ../data/gtkpod.glade.h:381
+msgid "_Encoding (ID3, files):"
+msgstr "ʸ»ú¥³¡¼¥É(_E) (ID3, ¥Õ¥¡¥¤¥ë):"
 
-#: gtkpod.glade:16820 gtkpod.glade:18079
-msgid "Path:"
-msgstr ""
+#: ../data/gtkpod.glade.h:382
+msgid "_Enqueue"
+msgstr "±éÁÕ¥­¥å¡¼¤ËÆþ¤ì¤ë(_E)"
 
-#: gtkpod.glade:16848
-msgid "<b>Synchronization</b>"
-msgstr "<b>Ʊ´ü</b>"
+#: ../data/gtkpod.glade.h:383
+msgid "_Export Tracks from Database"
+msgstr "¥Ç¡¼¥¿¥Ù¡¼¥¹¤«¤é¶Ê¤ò¼è¤ê½Ð¤¹(_E)"
 
-#: gtkpod.glade:16906
-msgid "Contacts sync command:"
-msgstr ""
+#: ../data/gtkpod.glade.h:384
+msgid "_File"
+msgstr "¥Õ¥¡¥¤¥ë(_F)"
 
-#: gtkpod.glade:16934
-msgid "Calendar sync command:"
+#: ../data/gtkpod.glade.h:385
+msgid "_Find New"
 msgstr ""
 
-#: gtkpod.glade:16962
-msgid "Notes sync command:"
+#: ../data/gtkpod.glade.h:386
+msgid "_General"
+msgstr "´ðËÜÀßÄê(_G)"
+
+#: ../data/gtkpod.glade.h:387
+msgid "_Help"
+msgstr "¥Ø¥ë¥×(_H)"
+
+#: ../data/gtkpod.glade.h:388
+msgid "_Ignore rules"
+msgstr "¥ë¡¼¥ë¤ò̵»ë(_I)"
+
+#: ../data/gtkpod.glade.h:389
+msgid "_Info Window"
+msgstr "¾ðÊó(_I)"
+
+#: ../data/gtkpod.glade.h:390
+msgid "_Last.FM"
 msgstr ""
 
-#: gtkpod.glade:16991
-msgid "Call automatically when synchronizing iTunesDB"
+#: ../data/gtkpod.glade.h:391
+msgid "_Less Sort Tabs"
+msgstr "¥½¡¼¥È¥¿¥Ö¤Îºï½ü(_L)"
+
+#: ../data/gtkpod.glade.h:392
+msgid "_Limit to"
+msgstr "À©¸Â(_L)"
+
+#: ../data/gtkpod.glade.h:393
+msgid "_Load iPod(s)"
+msgstr "iPod ¤«¤éÆɤ߹þ¤ß(_L)"
+
+#: ../data/gtkpod.glade.h:394
+msgid "_Local"
+msgstr "¥Ç¥£¥¹¥¯(_L)"
+
+#: ../data/gtkpod.glade.h:395
+msgid "_M3U"
 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."
+#: ../data/gtkpod.glade.h:396
+msgid "_More Sort Tabs"
+msgstr "¥½¡¼¥È¥¿¥Ö¤ÎÄɲÃ(_M)"
+
+#: ../data/gtkpod.glade.h:397
+msgid "_Newly Added Tracks"
+msgstr "¿·¤¿¤ËÄɲ䵤줿¶Ê(_N)"
+
+#: ../data/gtkpod.glade.h:398
+msgid "_Normalize Volume"
+msgstr "¥Ü¥ê¥å¡¼¥à¤ÎÊ¿¶Ñ²½"
+
+#: ../data/gtkpod.glade.h:399
+msgid "_Number of sort tabs:"
+msgstr "¥½¡¼¥È¥¿¥Ö¤Î¿ô(_N):"
+
+#: ../data/gtkpod.glade.h:400
+msgid "_Other"
 msgstr ""
 
-#: gtkpod.glade:17294
-msgid "Update/Sync all playlists now"
+#: ../data/gtkpod.glade.h:401
+msgid "_PLS"
 msgstr ""
 
-#: gtkpod.glade:17314
-#, fuzzy
-msgid "Delete repository"
-msgstr "iPod¤«¤éºï½ü"
+#: ../data/gtkpod.glade.h:402
+msgid "_Play Now"
+msgstr "º£¤¹¤°±éÁÕ(_P)"
 
-#: gtkpod.glade:17334 src/context_menus.c:430 src/context_menus.c:448
-#: src/context_menus.c:523
-msgid "I'm sure"
+#: ../data/gtkpod.glade.h:403
+msgid "_Podcasts"
 msgstr ""
 
-#: gtkpod.glade:17390
+#: ../data/gtkpod.glade.h:404
+msgid "_Prefer Local"
+msgstr "¤Ç¤­¤ì¤Ð¥Ç¥£¥¹¥¯(_P)"
+
+#: ../data/gtkpod.glade.h:405
+msgid "_Save Changes"
+msgstr "Êѹ¹¤ÎÊݸ(_S)"
+
+#: ../data/gtkpod.glade.h:406
+msgid "_Save Displayed Track Order"
+msgstr "¸½ºß¤Î¶Ê½ç¤òÊݸ(_S)"
+
+#: ../data/gtkpod.glade.h:407
+msgid "_Sorting"
+msgstr "ʤٴ¹¤¨(_S)"
+
+#: ../data/gtkpod.glade.h:408
 #, fuzzy
-msgid "<b>Repositories</b>"
-msgstr "<b>¥Ä¡¼¥ë¥Á¥Ã¥×</b>"
+msgid "_Synchronize Playlist with Dir(s)"
+msgstr "¥×¥ì¥¤¥ê¥¹¥È¤òƱ´ü¤¹¤ë(_S)"
 
-#: gtkpod.glade:17587
-msgid ""
-"Directories to sync with are determined from the filenames of the tracks in "
-"the playlist."
-msgstr ""
+#: ../data/gtkpod.glade.h:409
+msgid "_Toolbar"
+msgstr "¥Ä¡¼¥ë¥Ð¡¼(_T)"
 
-#: gtkpod.glade:17589
-msgid "On startup automatically sync with playlist directories"
-msgstr ""
+#: ../data/gtkpod.glade.h:410
+msgid "_Tools"
+msgstr "¥Ä¡¼¥ë(_T)"
 
-#: gtkpod.glade:17608
+#: ../data/gtkpod.glade.h:411
+msgid "_Tooltips"
+msgstr "¥Ä¡¼¥ë¥Á¥Ã¥×(_T)"
+
+#: ../data/gtkpod.glade.h:412
+msgid "_Track Info"
+msgstr "¶Ê¾ðÊó(_T)"
+
+#: ../data/gtkpod.glade.h:413
+msgid "_Undo All"
+msgstr "¤¹¤Ù¤Æ¤ä¤êľ¤·(_U)"
+
+#: ../data/gtkpod.glade.h:414
 #, fuzzy
-msgid "On startup automatically sync with the following directory"
-msgstr "°Ê²¼¤Î¥Ç¥£¥ì¥¯¥È¥ê¤ÇƱ´ü½èÍý¤ò¤·¤Æ¤â¤è¤í¤·¤¤¤Ç¤¹¤«?"
+msgid "_Undo Track"
+msgstr "̤ɾ²Á¤Î¶Ê"
 
-#: gtkpod.glade:17702
+#: ../data/gtkpod.glade.h:415
+msgid "_Update Tracks from File"
+msgstr "¥Õ¥¡¥¤¥ë¤ò¸µ¤Ë¶Ê¤ò¹¹¿·¤¹¤ë(_U)"
+
+#: ../data/gtkpod.glade.h:416
 #, fuzzy
-msgid "Don't automatically sync on startup"
-msgstr "µ¯Æ°»þ¤Ë¼«Æ°Åª¤Ë iTunesDB ¤òÆɤ߹þ¤à"
+msgid "_Video"
+msgstr "ɽ¼¨(_V)"
 
-#: gtkpod.glade:17848
-msgid "On startup automatically update (Live Playlist)"
+#: ../data/gtkpod.glade.h:417
+msgid "_View"
+msgstr "ɽ¼¨(_V)"
+
+#: ../data/gtkpod.glade.h:418
+msgid "_iPod"
+msgstr "iPod(_i)"
+
+#: ../data/gtkpod.glade.h:420
+#, no-c-format
+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:17878
-msgid "Update/Sync playlist now"
+#: ../data/gtkpod.glade.h:421
+msgid "folder"
 msgstr ""
 
-#: gtkpod.glade:17925
-#, fuzzy
-msgid "<b>Playlists</b>"
-msgstr "<b>ºÆÀ¸</b>"
+#: ../data/gtkpod.glade.h:422
+msgid "folder.jpg"
+msgstr ""
 
-#: gtkpod.glade:18042
+#: ../data/gtkpod.glade.h:424
+#, no-c-format
+msgid "folder.jpg;%a.jpg"
+msgstr ""
+
+#: ../data/gtkpod.glade.h:425
+msgid "gtkpod"
+msgstr "gtkpod"
+
+#: ../data/gtkpod.glade.h:426
 #, fuzzy
-msgid "Create Repository"
-msgstr "iPod¤«¤éºï½ü"
+msgid "gtkpod Info"
+msgstr "gtkpod"
 
-#: gtkpod.glade:18320
+#: ../data/gtkpod.glade.h:427
 msgid ""
-"Insert before\n"
-"Insert after"
+"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:18358
-#, fuzzy
-msgid "Repository type:"
-msgstr "¥½¡¼¥È¤ÎÀßÄê"
+#: ../data/gtkpod.glade.h:428
+msgid "gtkpod options"
+msgstr "gtkpod ¤Î¥ª¥×¥·¥ç¥ó"
 
-#: gtkpod.glade:18386
+#. These are the items for the 'Repository type' combo in the 'Create Repository' dialog. Keep the three items in order!
+#: ../data/gtkpod.glade.h:430
 msgid ""
 "iPod\n"
 "Local Repository (Standard)\n"
 "Local Repository (Podcasts)\n"
 msgstr ""
 
-#: gtkpod.glade:18407
+#: ../data/gtkpod.glade.h:434
 #, fuzzy
-msgid "Repository name:"
-msgstr "¥½¡¼¥È¤ÎÀßÄê"
+msgid "iPod mountpoint:"
+msgstr "iPod¤Î¥Þ¥¦¥ó¥È¾ì½ê(_P):"
 
-#: gtkpod.glade:18543 gtkpod.glade:18806
-msgid "Initialize iPod"
+#: ../data/gtkpod.glade.h:435
+msgid "iTunesDB backup:"
 msgstr ""
 
-#: gtkpod.glade:18613
-msgid "<b>Please select mountpoint and your iPod model</b>"
+#: ../data/gtkpod.glade.h:436
+msgid "label"
 msgstr ""
 
-#: src/charset.c:53
+#: ../data/gtkpod.glade.h:437
+msgid "mserv Root:"
+msgstr ""
+
+#: ../data/gtkpod.glade.h:438
+msgid "mserv database lookup will be done for music in this directory."
+msgstr "¤³¤Î¥Ç¥£¥ì¥¯¥È¥êÆâ¤Î¶Ê¤ËÂФ·¡¢mserv ¤Î¥Ç¡¼¥¿¥Ù¡¼¥¹¤ò»²¾È¤·¤Þ¤¹¡£"
+
+#: ../data/gtkpod.glade.h:439 ../src/details.c:1175
+msgid "n/a"
+msgstr "ÉÔ²Ä"
+
+#: ../data/gtkpod.glade.h:440
+msgid "special_sorttab -- Don't translate!"
+msgstr ""
+
+#: ../src/charset.c:53
 msgid "Arabic (IBM-864)"
 msgstr "¥¢¥é¥Ó¥¢¸ì (IBM-864)"
 
-#: src/charset.c:54
+#: ../src/charset.c:54
 msgid "Arabic (ISO-8859-6)"
 msgstr "¥¢¥é¥Ó¥¢¸ì (ISO-8859-6)"
 
-#: src/charset.c:55
+#: ../src/charset.c:55
 msgid "Arabic (Windows-1256)"
 msgstr "¥¢¥é¥Ó¥¢¸ì (Windows-1256)"
 
-#: src/charset.c:56
+#: ../src/charset.c:56
 msgid "Baltic (ISO-8859-13)"
 msgstr "¥Ð¥ë¥È¸ì (ISO-8859-13)"
 
-#: src/charset.c:57
+#: ../src/charset.c:57
 msgid "Baltic (ISO-8859-4)"
 msgstr "¥Ð¥ë¥È¸ì (ISO-8859-4)"
 
-#: src/charset.c:58
+#: ../src/charset.c:58
 msgid "Baltic (Windows-1257)"
 msgstr "¥Ð¥ë¥È¸ì (Windows-1257)"
 
-#: src/charset.c:59
+#: ../src/charset.c:59
 msgid "Celtic (ISO-8859-14)"
 msgstr "¥±¥ë¥È¸ì (ISO-8859-14)"
 
-#: src/charset.c:60
+#: ../src/charset.c:60
 msgid "Central European (IBM-852)"
 msgstr "Ãæ±û¥è¡¼¥í¥Ã¥Ñ (IBM-852)"
 
-#: src/charset.c:61
+#: ../src/charset.c:61
 msgid "Central European (ISO-8859-2)"
 msgstr "Ãæ±û¥è¡¼¥í¥Ã¥Ñ (ISO-8859-2)"
 
-#: src/charset.c:62
+#: ../src/charset.c:62
 msgid "Central European (Windows-1250)"
 msgstr "Ãæ±û¥è¡¼¥í¥Ã¥Ñ (Windows-1250)"
 
-#: src/charset.c:63
+#: ../src/charset.c:63
 msgid "Chinese Simplified (GB18030)"
 msgstr "Ãæ¹ñ¸ì ´ÊÂλú (GB18030)"
 
-#: src/charset.c:64
+#: ../src/charset.c:64
 msgid "Chinese Simplified (GB2312)"
 msgstr "Ãæ¹ñ¸ì ´ÊÂλú (GB2312)"
 
-#: src/charset.c:65
+#: ../src/charset.c:65
 msgid "Chinese Traditional (Big5)"
 msgstr "Ãæ¹ñ¸ì ÈËÂλú (Big5)"
 
-#: src/charset.c:66
+#: ../src/charset.c:66
 msgid "Chinese Traditional (Big5-HKSCS)"
 msgstr "Ãæ¹ñ¸ì ÈËÂλú (Big5-HKSCS)"
 
-#: src/charset.c:67
+#: ../src/charset.c:67
 msgid "Cyrillic (IBM-855)"
 msgstr "¥­¥ê¥ë¸ì (IBM-855)"
 
-#: src/charset.c:68
+#: ../src/charset.c:68
 msgid "Cyrillic (ISO-8859-5)"
 msgstr "¥­¥ê¥ë¸ì (ISO-8859-5)"
 
-#: src/charset.c:69
+#: ../src/charset.c:69
 msgid "Cyrillic (ISO-IR-111)"
 msgstr "¥­¥ê¥ë¸ì (ISO-IR-111)"
 
-#: src/charset.c:70
+#: ../src/charset.c:70
 msgid "Cyrillic (KOI8-R)"
 msgstr "¥­¥ê¥ë¸ì (KOI8-R)"
 
-#: src/charset.c:71
+#: ../src/charset.c:71
 msgid "Cyrillic (Windows-1251)"
 msgstr "¥­¥ê¥ë¸ì (Windows-1251)"
 
-#: src/charset.c:72
+#: ../src/charset.c:72
 msgid "Cyrillic/Russian (CP-866)"
 msgstr "¥­¥ê¥ë/¥í¥·¥¢¸ì (CP-866)"
 
-#: src/charset.c:73
+#: ../src/charset.c:73
 msgid "Cyrillic/Ukrainian (KOI8-U)"
 msgstr "¥­¥ê¥ë/¥¦¥¯¥é¥¤¥Ê¸ì (KOI8-U)"
 
-#: src/charset.c:74
+#: ../src/charset.c:74
 msgid "English (US-ASCII)"
 msgstr "±Ñ¸ì (US-ASCII)"
 
-#: src/charset.c:75
+#: ../src/charset.c:75
 msgid "Greek (ISO-8859-7)"
 msgstr "¥®¥ê¥·¥¢¸ì (ISO-8859-7)"
 
-#: src/charset.c:76
+#: ../src/charset.c:76
 msgid "Greek (Windows-1253)"
 msgstr "¥®¥ê¥·¥¢¸ì (Windows-1253)"
 
-#: src/charset.c:77
+#: ../src/charset.c:77
 msgid "Hebrew (IBM-862)"
 msgstr "¥Ø¥Ö¥é¥¤¸ì (IBM-862)"
 
-#: src/charset.c:78
+#: ../src/charset.c:78
 msgid "Hebrew (Windows-1255)"
 msgstr "¥Ø¥Ö¥é¥¤¸ì (Windows-1255)"
 
-#: src/charset.c:79
+#: ../src/charset.c:79
 msgid "Japanese (automatic detection)"
 msgstr "ÆüËܸì (¼«Æ°È½ÊÌ)"
 
-#: src/charset.c:80
+#: ../src/charset.c:80
 msgid "Japanese (EUC-JP)"
 msgstr "ÆüËܸì (EUC-JP)"
 
-#: src/charset.c:81
+#: ../src/charset.c:81
 msgid "Japanese (ISO-2022-JP)"
 msgstr "ÆüËܸì (ISO-2022-JP)"
 
-#: src/charset.c:82
+#: ../src/charset.c:82
 msgid "Japanese (Shift_JIS)"
 msgstr "ÆüËܸì (Shift_JIS)"
 
-#: src/charset.c:83
+#: ../src/charset.c:83
 msgid "Korean (EUC-KR)"
 msgstr "´Ú¹ñ¸ì (EUC-KR)"
 
-#: src/charset.c:84
+#: ../src/charset.c:84
 msgid "Nordic (ISO-8859-10)"
 msgstr "Ë̲¤¸ì (ISO-8859-10)"
 
-#: src/charset.c:85
+#: ../src/charset.c:85
 msgid "South European (ISO-8859-3)"
 msgstr "ÆîÉô¥è¡¼¥í¥Ã¥Ñ¸ì (ISO-8859-3)"
 
-#: src/charset.c:86
+#: ../src/charset.c:86
 msgid "Thai (TIS-620)"
 msgstr "¥¿¥¤¸ì (TIS-620)"
 
-#: src/charset.c:87
+#: ../src/charset.c:87
 msgid "Turkish (IBM-857)"
 msgstr "¥È¥ë¥³¸ì (IBM-857)"
 
-#: src/charset.c:88
+#: ../src/charset.c:88
 msgid "Turkish (ISO-8859-9)"
 msgstr "¥È¥ë¥³¸ì (ISO-8859-9)"
 
-#: src/charset.c:89
+#: ../src/charset.c:89
 msgid "Turkish (Windows-1254)"
 msgstr "¥È¥ë¥³¸ì (Windows-1254)"
 
-#: src/charset.c:90
+#: ../src/charset.c:90
 msgid "Unicode (UTF-7)"
 msgstr "Unicode (UTF-7)"
 
-#: src/charset.c:91
+#: ../src/charset.c:91
 msgid "Unicode (UTF-8)"
 msgstr "Unicode (UTF-8)"
 
-#: src/charset.c:92
+#: ../src/charset.c:92
 msgid "Unicode (UTF-16BE)"
 msgstr "Unicode (UTF-16BE)"
 
-#: src/charset.c:93
+#: ../src/charset.c:93
 msgid "Unicode (UTF-16LE)"
 msgstr "Unicode (UTF-16LE)"
 
-#: src/charset.c:94
+#: ../src/charset.c:94
 msgid "Unicode (UTF-32BE)"
 msgstr "Unicode (UTF-32BE)"
 
-#: src/charset.c:95
+#: ../src/charset.c:95
 msgid "Unicode (UTF-32LE)"
 msgstr "Unicode (UTF-32LE)"
 
-#: src/charset.c:96
+#: ../src/charset.c:96
 msgid "Vietnamese (VISCII)"
 msgstr "¥Ù¥È¥Ê¥à¸ì (VISCII)"
 
-#: src/charset.c:97
+#: ../src/charset.c:97
 msgid "Vietnamese (Windows-1258)"
 msgstr "¥Ù¥È¥Ê¥à¸ì (Windows-1258)"
 
-#: src/charset.c:98
+#: ../src/charset.c:98
 msgid "Visual Hebrew (ISO-8859-8)"
 msgstr "»ë³Ð·Ý½Ñ¸þ¤±¥Ø¥Ö¥é¥¤¸ì (ISO-8859-8)"
 
-#: src/charset.c:99
+#: ../src/charset.c:99
 msgid "Western (IBM-850)"
 msgstr "À¾ÍÎ (IBM-850)"
 
-#: src/charset.c:100
+#: ../src/charset.c:100
 msgid "Western (ISO-8859-1)"
 msgstr "À¾ÍÎ (ISO-8859-1)"
 
-#: src/charset.c:101
+#: ../src/charset.c:101
 msgid "Western (ISO-8859-15)"
 msgstr "À¾ÍÎ (ISO-8859-15)"
 
-#: src/charset.c:102
+#: ../src/charset.c:102
 msgid "Western (Windows-1252)"
 msgstr "À¾ÍÎ (Windows-1252)"
 
 #. sanity!
 #. check for "System Charset" and return NULL
-#: src/charset.c:160 src/charset.c:170 src/charset.c:223
+#: ../src/charset.c:160 ../src/charset.c:170 ../src/charset.c:223
 msgid "System Charset"
 msgstr "¥·¥¹¥Æ¥àʸ»ú"
 
 #. we are not the first instance of gtkpod -- the socket is
 #. already being used, so we pass
-#: src/clientserver.c:215
+#: ../src/clientserver.c:214
 msgid ""
 "Another instance of gtkpod was detected. Playcount server not started.\n"
 msgstr "gtkpod ¤¬¤¹¤Ç¤ËÆ°ºîÃæ¤Ç¤¹¡£¥×¥ì¥¤¥«¥¦¥ó¥È¥µ¡¼¥Ð¡¼¤Ïµ¯Æ°¤·¤Þ¤»¤ó¡£\n"
 
-#: src/confirmation.c:376
+#: ../src/confirmation.c:377
 msgid "Confirmation Dialogue"
 msgstr "³Îǧ"
 
-#: src/context_menus.c:367 src/tools.c:852
+#: ../src/context_menus.c:359
+#, c-format
+msgid "Copied \"%s\" playlist to %s"
+msgstr ""
+
+#: ../src/context_menus.c:398
+#, fuzzy, c-format
+msgid "Copied %d track to '%s'"
+msgid_plural "Copied %d tracks to '%s'"
+msgstr[0] "%2$d¶ÊÃæ %1$d¶Ê¤ò¥³¥Ô¡¼¤·¤Þ¤·¤¿¡£"
+
+#: ../src/context_menus.c:426
+#, c-format
+msgid "Copied '%s' playlist to '%s' in '%s'"
+msgstr ""
+
+#: ../src/context_menus.c:459
+#, fuzzy, c-format
+msgid "Copied %d track to '%s' in '%s'"
+msgid_plural "Copied %d tracks to %s in '%s'"
+msgstr[0] "¥×¥ì¥¤¥ê¥¹¥È '%2$s' ¤«¤é %1$d ¶Êºï½ü¤·¤Þ¤·¤¿"
+
+#: ../src/context_menus.c:619 ../src/tools.c:854
 msgid "Play Now"
 msgstr "º£¤¹¤°±éÁÕ"
 
-#: src/context_menus.c:373 src/tools.c:865
+#: ../src/context_menus.c:625 ../src/tools.c:867
 msgid "Enqueue"
 msgstr "±éÁÕ¥­¥å¡¼¤Ë²Ã¤¨¤ë"
 
-#: src/context_menus.c:379
+#: ../src/context_menus.c:631
 msgid "Copy Tracks to Filesystem"
 msgstr "¶Ê¤ò¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Ë¥³¥Ô¡¼¤¹¤ë"
 
-#: src/context_menus.c:386 src/file_export.c:1081
+#: ../src/context_menus.c:638 ../src/file_export.c:1085
 msgid "Create Playlist File"
-msgstr "¥×¥ì¥¤¥ê¥¹¥È¤òºîÀ®"
+msgstr "¥×¥ì¥¤¥ê¥¹¥È¥Õ¥¡¥¤¥ë¤òºîÀ®"
 
-#: src/context_menus.c:393
+#: ../src/context_menus.c:645
 msgid "Create new Playlist"
 msgstr "¥×¥ì¥¤¥ê¥¹¥È¤Î¿·µ¬ºîÀ®"
 
-#: src/context_menus.c:400
+#: ../src/context_menus.c:652
 #, fuzzy
 msgid "Update Tracks from File"
 msgstr "¥Õ¥¡¥¤¥ë¤ò¸µ¤Ë¶Ê¤ò¹¹¿·¤¹¤ë(_U)"
 
-#: src/context_menus.c:414
+#: ../src/context_menus.c:666
 msgid "Sync Playlist with Dir(s)"
 msgstr ""
 
-#: src/context_menus.c:424
+#: ../src/context_menus.c:676
 msgid "Remove All Tracks from iPod"
 msgstr "iPod¤«¤é¶Ê¤òºï½ü"
 
-#: src/context_menus.c:442
+#: ../src/context_menus.c:694
 msgid "Remove All Podcasts from iPod"
 msgstr "¤¹¤Ù¤Æ¤Î Podcast ¤ò iPod ¤«¤éºï½ü"
 
-#: src/context_menus.c:457
+#: ../src/context_menus.c:709
 msgid "Delete Including Tracks"
 msgstr "Ãæ¤Î¶Ê¤´¤Èºï½ü"
 
-#: src/context_menus.c:465
+#: ../src/context_menus.c:717
 msgid "Delete But Keep Tracks"
 msgstr "¶Ê¤Ï»Ä¤·¤¿¤Þ¤Þºï½ü"
 
-#: src/context_menus.c:473
+#: ../src/context_menus.c:725
 #, fuzzy
 msgid "Edit iPod Properties"
 msgstr "iPod¤Î½é´üÀßÄê"
 
-#: src/context_menus.c:493
+#: ../src/context_menus.c:732
 #, fuzzy
+msgid "Edit Repository Properties"
+msgstr "iPod¤Î½é´üÀßÄê"
+
+#: ../src/context_menus.c:739
+#, fuzzy
+msgid "Edit Playlist Properties"
+msgstr "¥×¥ì¥¤¥ê¥¹¥È¤ò¥Õ¥¡¥¤¥ë¤«¤éÆɤ߹þ¤ó¤ÇÄɲä·¤Þ¤¹"
+
+#: ../src/context_menus.c:767
+msgid "View Full Size Artwork"
+msgstr ""
+
+#: ../src/context_menus.c:774
+#, fuzzy
+msgid "Select Cover From File"
+msgstr "iPod¤«¤éºï½ü"
+
+#: ../src/context_menus.c:781
+msgid "Find Cover on Web"
+msgstr ""
+
+#: ../src/context_menus.c:794
+#, fuzzy
 msgid "Load iPod"
 msgstr "iPod ¥Õ¥¡¥¤¥ë"
 
-#: src/context_menus.c:500
+#: ../src/context_menus.c:801
 msgid "Eject iPod"
 msgstr ""
 
-#: src/context_menus.c:517
+#: ../src/context_menus.c:818
 msgid "Remove All Tracks from Database"
 msgstr "¤¹¤Ù¤Æ¤Î¶Ê¤ò¥Ç¡¼¥¿¥Ù¡¼¥¹¤«¤éºï½ü"
 
-#: src/context_menus.c:532
+#: ../src/context_menus.c:833
 msgid "Delete Including Tracks (Harddisk)"
 msgstr "Ãæ¤Î¶Ê¤´¤Èºï½ü (¥Ï¡¼¥É¥Ç¥£¥¹¥¯¤«¤é)"
 
-#: src/context_menus.c:540
+#: ../src/context_menus.c:841
 msgid "Delete Including Tracks (Database)"
 msgstr "Ãæ¤Î¶Ê¤´¤Èºï½ü (¥Ç¡¼¥¿¥Ù¡¼¥¹¤«¤é)"
 
-#: src/context_menus.c:548
+#: ../src/context_menus.c:849
 msgid "Delete From iPod"
 msgstr "iPod¤«¤éºï½ü"
 
-#: src/context_menus.c:556
+#: ../src/context_menus.c:857
 msgid "Delete From Playlist"
 msgstr "¥×¥ì¥¤¥ê¥¹¥È¤«¤éºï½ü"
 
-#: src/context_menus.c:564
+#: ../src/context_menus.c:865
 msgid "Delete From Harddisk"
 msgstr "¥Ï¡¼¥É¥Ç¥£¥¹¥¯¤«¤éºï½ü"
 
-#: src/context_menus.c:572
+#: ../src/context_menus.c:873
 msgid "Delete From Database"
 msgstr "¥Ç¡¼¥¿¥Ù¡¼¥¹¤«¤éºï½ü"
 
-#: src/context_menus.c:580
+#: ../src/context_menus.c:881
 msgid "Alphabetize"
 msgstr "ʤٴ¹¤¨"
 
-#: src/context_menus.c:596
+#: ../src/context_menus.c:949 ../src/context_menus.c:998
 #, fuzzy
-msgid "Edit Playlist Properties"
-msgstr "¥×¥ì¥¤¥ê¥¹¥È¤ò¥Õ¥¡¥¤¥ë¤«¤éÆɤ߹þ¤ó¤ÇÄɲä·¤Þ¤¹"
+msgid "Copy selected playlist to..."
+msgstr "ÁªÂò¤µ¤ì¤¿¥×¥ì¥¤¥ê¥¹¥È"
 
-#: src/date_parser.l:269
+#: ../src/context_menus.c:1051
+#, fuzzy
+msgid "Copy selected track(s) to..."
+msgstr "ºï½ü¤µ¤ì¤¿¶Ê"
+
+#: ../src/date_parser.l:269
 #, c-format
 msgid "Date format error: unrecognized character: '%s'\n"
 msgstr "¥Ç¡¼¥¿¥¨¥é¡¼: ¼¡¤Îʸ»ú¤Ï»ÈÍѤǤ­¤Þ¤»¤ó: '%s'\n"
 
-#: src/details.c:1182
+#: ../src/details.c:700
+#, c-format
+msgid "%s (image data corrupted or unreadable)"
+msgstr ""
+
+#: ../src/details.c:1246
 msgid "<b>n/a</b>"
 msgstr "<b>ÉÔ²Ä</b>"
 
-#: src/display.c:891
+#: ../src/display.c:647
 msgid "Edit selected entry of which sort tab?"
 msgstr "¤É¤Î¥½¡¼¥È¥¿¥Ö¤ÇÁªÂò¤µ¤ì¤¿¤â¤Î¤òÊÔ½¸¤·¤Þ¤¹¤«¡©"
 
 #. no entry selected
-#: src/display.c:898 src/misc_confirm.c:431 src/misc_track.c:1613
+#: ../src/display.c:654 ../src/misc_confirm.c:435 ../src/misc_track.c:2059
 msgid "No entry selected."
 msgstr "²¿¤âÁªÂò¤µ¤ì¤Æ¤¤¤Þ¤»¤ó¡£"
 
-#: src/display.c:1057 src/display.c:1384 src/display.c:1440 src/display.c:1494
-#: src/display.c:1549 src/display.c:1810
+#: ../src/display.c:813 ../src/display.c:1133 ../src/display.c:1189
+#: ../src/display.c:1243 ../src/display.c:1298 ../src/display.c:1559
 #, c-format
 msgid "No entry selected in Sort Tab %d"
 msgstr "¥½¡¼¥È¥¿¥Ö %d Æâ¤Ç¤Ï²¿¤âÁªÂò¤µ¤ì¤Æ¤¤¤Þ¤»¤ó¡£"
 
-#: src/display.c:1096
+#: ../src/display.c:852
 msgid "Remove entry of which sort tab from database?"
 msgstr "¤É¤Î¥½¡¼¥È¥¿¥Ö¤ÇÁªÂò¤µ¤ì¤¿¤â¤Î¤ò¥Ç¡¼¥¿¥Ù¡¼¥¹¤«¤éºï½ü¤·¤Þ¤¹¤«¡©"
 
-#: src/display.c:1104
+#: ../src/display.c:860
 msgid "Remove tracks in selected entry of which filter tab from the iPod?"
 msgstr "¤É¤Î¥½¡¼¥È¥¿¥Ö¤ÇÁªÂò¤µ¤ì¤¿¶Ê¤òiPod¤«¤éºï½ü¤·¤Þ¤¹¤«¡©"
 
-#: src/display.c:1126
+#: ../src/display.c:882
 msgid "Remove tracks in selected entry of which filter tab from the harddisk?"
 msgstr "¤É¤Î¥½¡¼¥È¥¿¥Ö¤ÇÁªÂò¤µ¤ì¤¿¶Ê¤ò¥Ï¡¼¥É¥Ç¥£¥¹¥¯¤«¤éºï½ü¤·¤Þ¤¹¤«¡©"
 
-#: src/display.c:1156
+#: ../src/display.c:912
 msgid "Remove tracks in selected entry of which filter tab from playlist?"
 msgstr "¤É¤Î¥½¡¼¥È¥¿¥Ö¤ÇÁªÂò¤µ¤ì¤¿¶Ê¤ò¥×¥ì¥¤¥ê¥¹¥È¤«¤éºï½ü¤·¤Þ¤¹¤«¡©"
 
-#: src/display.c:1183 src/display.c:1221
+#: ../src/display.c:939 ../src/display.c:977
 #, c-format
 msgid ""
 "iPod at '%s' is not loaded.\n"
 "Please load it first."
 msgstr ""
 
-#: src/display.c:1265 src/display.c:1292
+#: ../src/display.c:1014 ../src/display.c:1041
 msgid "Update selected entry of which sort tab?"
 msgstr "¤É¤Î¥½¡¼¥È¥¿¥Ö¤ÇÁªÂò¤µ¤ì¤¿¤â¤Î¤ò¹¹¿·¤·¤Þ¤¹¤«¡©"
 
-#: src/display.c:1378
+#: ../src/display.c:1127
 msgid "Export selected entry of which sort tab?"
 msgstr "¤É¤Î¥½¡¼¥È¥¿¥Ö¤ÇÁªÂò¤µ¤ì¤¿¤â¤Î¤ò¥¨¥¯¥¹¥Ý¡¼¥È¤·¤Þ¤¹¤«¡©"
 
-#: src/display.c:1434
+#: ../src/display.c:1183
 msgid "Create playlist file from selected entry of which sort tab?"
 msgstr "¤É¤Î¥½¡¼¥È¥¿¥Ö¤ÇÁªÂò¤µ¤ì¤¿¤â¤Î¤«¤é¥×¥ì¥¤¥ê¥¹¥È¤òºîÀ®¤·¤Þ¤¹¤«¡©"
 
-#: src/display.c:1488
+#: ../src/display.c:1237
 msgid "Play tracks in selected entry of which sort tab?"
 msgstr "¤É¤Î¥½¡¼¥È¥¿¥Ö¤ÇÁªÂò¤µ¤ì¤¿¶Ê¤ò±éÁÕ¤·¤Þ¤¹¤«¡©"
 
-#: src/display.c:1543
+#: ../src/display.c:1292
 msgid "Enqueue tracks in selected entry of which sort tab?"
 msgstr "¤É¤Î¥½¡¼¥È¥¿¥Ö¤ÇÁªÂò¤µ¤ì¤¿¶Ê¤ò±éÁÕ¥­¥å¡¼¤Ë²Ã¤¨¤Þ¤¹¤«¡©"
 
-#: src/display.c:1800
+#: ../src/display.c:1549
 msgid "Normalize tracks in selected entry of which sort tab?"
 msgstr "¤É¤Î¥½¡¼¥È¥¿¥Ö¤ÇÁªÂò¤µ¤ì¤¿¶Ê¤òÊ¿¶Ñ²½¤·¤Þ¤¹¤«¡©"
 
-#: src/display_itdb.c:355
+#: ../src/display_coverart.c:1714
+msgid "Failed to remove the album from the album hash store."
+msgstr ""
+
+#: ../src/display_itdb.c:376
 #, fuzzy, c-format
 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
+#: ../src/display_itdb.c:851 ../src/display_itdb.c:984
 msgid "Local"
 msgstr ""
 
 #. add podcast playlist
-#: src/display_itdb.c:852 src/display_itdb.c:963 src/display_itdb.c:991
+#: ../src/display_itdb.c:859 ../src/display_itdb.c:982
+#: ../src/display_itdb.c:1010
 msgid "Podcasts"
 msgstr ""
 
-#: src/display_itdb.c:1050
+#: ../src/display_itdb.c:868 ../src/display_itdb.c:986
+#: ../src/repository.c:1186
+#, fuzzy
+msgid "iPod"
+msgstr "iPod ¥Õ¥¡¥¤¥ë"
+
+#: ../src/display_itdb.c:1069
 #, 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:496 src/display_playlists.c:538
+#: ../src/display_playlists.c:500 ../src/display_playlists.c:542
 msgid "Error: drag from iPod not possible in offline mode."
 msgstr "¥¨¥é¡¼: ¥ª¥Õ¥é¥¤¥ó¥â¡¼¥É¤Ç¤Ï iPod ¤«¤é¤Î¥É¥é¥Ã¥°Áàºî¤Ï¤Ç¤­¤Þ¤»¤ó¡£"
 
-#: src/display_playlists.c:565 src/display_songs.c:287
+#: ../src/display_playlists.c:569 ../src/display_tracks.c:286
 #, c-format
 msgid "Copied one track"
 msgid_plural "Copied %d tracks"
 msgstr[0] "%d¶Ê¥³¥Ô¡¼¤·¤Þ¤·¤¿"
 
-#: src/display_playlists.c:851
+#: ../src/display_playlists.c:849 ../src/display_playlists.c:861
 msgid "Can't reorder sorted treeview."
 msgstr "¥½¡¼¥È¤µ¤ì¤Æ¤¤¤ë½çÈÖ¤òÊѹ¹¤¹¤ë¤³¤È¤Ï¤Ç¤­¤Þ¤»¤ó"
 
-#: src/display_playlists.c:944
+#: ../src/display_playlists.c:938
 #, c-format
 msgid ""
 "This DND type (%d) is not (yet) supported. If you feel implementing this "
@@ -2274,349 +2472,392 @@
 "¥È¤¹¤ë¤³¤È¤¬Í­ÍѤÀ¤È¤ª¹Í¤¨¤Ç¤·¤¿¤é¡¢ºî¼Ô¤ËÏ¢Íí¤·¤Æ¤¯¤À¤µ¤¤¡£\n"
 "\n"
 
-#: src/display_songs.c:282
-#, c-format
-msgid "Moved one track"
-msgid_plural "Moved %d tracks"
-msgstr[0] "%d¶Ê¤ò°ÜÆ°¤·¤Þ¤·¤¿"
-
-#: 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 ""
-"»È¤ï¤ì¤Æ¤¤¤ë GTK+ ¥é¥¤¥Ö¥é¥ê %d.%d.%d < 2.5.4) ¤Î¥Ð¥°¤Î¤¿¤á¡¢¥½¡¼¥Èɽ¼¨¤ò²ò½ü"
-"¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤»¤ó¡£°ìÅÙ¥½¡¼¥Èɽ¼¨¤òÁª¤ó¤Ç¤·¤Þ¤¦¤È¡¢È󥽡¼¥Èɽ¼¨¤ËÌ᤹¤³¤È"
-"¤Ï¤Ç¤­¤Þ¤»¤ó¡£\n"
-"\n"
-
-#: src/display_songs.c:1923
-msgid "Rtng"
-msgstr "ɾ²Á"
-
-#: src/display_songs.c:1926
-msgid "#"
-msgstr "#"
-
-#: src/display_songs.c:1929
-msgid "CD"
-msgstr ""
-
-#: src/display_songs.c:1932
-msgid "ID"
-msgstr "ID"
-
-#: src/display_songs.c:1935
-msgid "Trnsfrd"
-msgstr "žÁ÷ºÑ¤ß"
-
-#: src/display_songs.c:1939
-msgid "Cmpl"
-msgstr "¥³¥ó¥Ô"
-
-#: src/display_songs.c:1945 src/display_spl.c:94
-msgid "Time"
-msgstr "±éÁÕ»þ´Ö"
-
-#: src/display_songs.c:1948
-msgid "Plycnt"
-msgstr "ºÆÀ¸²ó¿ô"
-
-#: src/display_songs.c:1960
-msgid "Released"
-msgstr "¸ø³«Æü"
-
-#: 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:1966
-msgid "Vol."
-msgstr "²»ÎÌ"
-
-#: src/display_songs.c:1969
-msgid "Sndchk."
-msgstr "¥µ¥¦¥ó¥É¥Á¥§¥Ã¥¯"
-
-#: src/display_sorttabs.c:456
+#: ../src/display_sorttabs.c:473
 msgid "'Played' condition ignored because of error."
 msgstr "¡Ö±éÁÕÆü¡×¤Î¾ò·ï¤Ï¥¨¥é¡¼¤Î¤¿¤á¤Ë̵»ë¤µ¤ì¤Þ¤·¤¿¡£"
 
-#: src/display_sorttabs.c:459
+#: ../src/display_sorttabs.c:476
 msgid "'Modified' condition ignored because of error."
 msgstr "¡ÖÊѹ¹Æü¡×¤Î¾ò·ï¤Ï¥¨¥é¡¼¤Î¤¿¤á¤Ë̵»ë¤µ¤ì¤Þ¤·¤¿¡£"
 
-#: src/display_sorttabs.c:462
+#: ../src/display_sorttabs.c:479
 msgid "'Added' condition ignored because of error."
 msgstr "¡ÖÅÐÏ¿Æü¡×¤Î¾ò·ï¤Ï¥¨¥é¡¼¤Î¤¿¤á¤Ë̵»ë¤µ¤ì¤Þ¤·¤¿¡£"
 
-#: src/display_sorttabs.c:1582 src/misc_conversion.c:60
+#: ../src/display_sorttabs.c:1563 ../src/misc_conversion.c:59
 msgid "All"
 msgstr "¤¹¤Ù¤Æ"
 
-#: src/display_sorttabs.c:1608
+#: ../src/display_sorttabs.c:1589
 msgid "Compilations"
 msgstr "¥³¥ó¥Ô¥ì¡¼¥·¥ç¥ó"
 
-#: src/display_sorttabs.c:2951
+#: ../src/display_sorttabs.c:2960
 msgid "Comp."
 msgstr "ºî¶Ê¼Ô"
 
-#: src/display_sorttabs.c:2960
+#: ../src/display_sorttabs.c:2966 ../src/display_spl.c:88
+#: ../src/display_tracks.c:2002 ../src/misc_conversion.c:84
+msgid "Year"
+msgstr "ǯ"
+
+#: ../src/display_sorttabs.c:2969
 msgid "Special"
 msgstr "¥¹¥Ú¥·¥ã¥ë"
 
-#: src/display_sorttabs.c:3216
+#: ../src/display_sorttabs.c:3230
 msgid "Last Played"
 msgstr "ºÇ¸å¤Ë±éÁÕ¤·¤¿Æü"
 
-#: src/display_sorttabs.c:3217
+#: ../src/display_sorttabs.c:3231
 msgid "Last Modified"
 msgstr "ºÇ¸å¤ËÊѹ¹¤·¤¿Æü"
 
-#: src/display_spl.c:64
+#: ../src/display_spl.c:64
 msgid "days"
 msgstr "Æü"
 
-#: src/display_spl.c:65
+#: ../src/display_spl.c:65
 msgid "weeks"
 msgstr "½µ"
 
-#: src/display_spl.c:66
+#: ../src/display_spl.c:66
 msgid "months"
 msgstr "·î"
 
-#: src/display_spl.c:73
+#: ../src/display_spl.c:73
 msgid "kbps"
 msgstr ""
 
-#: src/display_spl.c:74
+#: ../src/display_spl.c:74
 msgid "Hz"
 msgstr ""
 
-#: src/display_spl.c:75 src/display_spl.c:160 src/info.c:777
+#: ../src/display_spl.c:75 ../src/display_spl.c:179 ../src/info.c:777
 msgid "MB"
 msgstr ""
 
-#: src/display_spl.c:76
+#: ../src/display_spl.c:76
 msgid "secs"
 msgstr "ÉÃ"
 
-#: src/display_spl.c:86 src/misc_conversion.c:75
+#: ../src/display_spl.c:86 ../src/misc_conversion.c:74
 msgid "Bitrate"
 msgstr "¥Ó¥Ã¥È¥ì¡¼¥È"
 
 #. 15
-#: src/display_spl.c:87 src/misc_conversion.c:76
+#: ../src/display_spl.c:87 ../src/misc_conversion.c:75
 msgid "Samplerate"
 msgstr "¥µ¥ó¥×¥ê¥ó¥°¥ì¡¼¥È"
 
-#: src/display_spl.c:90
+#: ../src/display_spl.c:90
 msgid "Kind"
 msgstr "¼ïÎà"
 
-#: src/display_spl.c:91 src/misc_conversion.c:82
+#: ../src/display_spl.c:91 ../src/misc_conversion.c:81
 msgid "Date modified"
 msgstr "Êѹ¹Æü"
 
-#: src/display_spl.c:92
+#: ../src/display_spl.c:92
 msgid "Track number"
 msgstr "¶ÊÈÖ¹æ"
 
-#: src/display_spl.c:93
+#: ../src/display_spl.c:93
 msgid "Size"
 msgstr "¥µ¥¤¥º"
 
-#: src/display_spl.c:95 src/misc_conversion.c:65
+#: ../src/display_spl.c:94 ../src/display_tracks.c:1984
+msgid "Time"
+msgstr "±éÁÕ»þ´Ö"
+
+#: ../src/display_spl.c:95 ../src/misc_conversion.c:64
 msgid "Comment"
 msgstr "¥³¥á¥ó¥È"
 
-#: src/display_spl.c:96 src/misc_conversion.c:80
+#: ../src/display_spl.c:96 ../src/misc_conversion.c:79
 msgid "Date added"
 msgstr "ÅÐÏ¿Æü"
 
-#: src/display_spl.c:99
+#: ../src/display_spl.c:99
 msgid "Last played"
 msgstr "ºÇ¸å¤Ë±éÁÕ¤·¤¿Æü"
 
-#: src/display_spl.c:100
+#: ../src/display_spl.c:100
 msgid "Disc number"
 msgstr "CD ÈÖ¹æ"
 
-#: src/display_spl.c:102 src/misc_conversion.c:88
+#: ../src/display_spl.c:102 ../src/misc_conversion.c:87
 msgid "Compilation"
 msgstr "¥³¥ó¥Ô¥ì¡¼¥·¥ç¥ó"
 
-#: src/display_spl.c:103 src/misc_conversion.c:77
+#: ../src/display_spl.c:103 ../src/misc_conversion.c:76
 msgid "BPM"
 msgstr ""
 
-#: src/display_spl.c:104 src/misc_conversion.c:87
+#: ../src/display_spl.c:104 ../src/misc_conversion.c:86
 msgid "Grouping"
 msgstr "¥°¥ë¡¼¥×"
 
-#: src/display_spl.c:111
+#: ../src/display_spl.c:106
+msgid "Video Kind"
+msgstr ""
+
+#: ../src/display_spl.c:107 ../src/display_spl.c:210 ../src/display_spl.c:219
+#: ../src/misc_conversion.c:101
+msgid "TV Show"
+msgstr ""
+
+#: ../src/display_spl.c:108
+#, fuzzy
+msgid "Season number"
+msgstr "CD ÈÖ¹æ"
+
+#: ../src/display_spl.c:109
+msgid "Skip count"
+msgstr ""
+
+#: ../src/display_spl.c:110
+#, fuzzy
+msgid "Last skipped"
+msgstr "ºÇ¸å¤Ë±éÁÕ¤·¤¿Æü"
+
+#: ../src/display_spl.c:111
+#, fuzzy
+msgid "Album artist"
+msgstr "¥¢¡¼¥Æ¥£¥¹¥È"
+
+#: ../src/display_spl.c:117
 msgid "contains"
 msgstr "¤¬¼¡¤Î¤â¤Î¤ò´Þ¤à"
 
-#: src/display_spl.c:112
+#: ../src/display_spl.c:118
 msgid "does not contain"
 msgstr "¤¬¼¡¤Î¤â¤Î¤ò´Þ¤Þ¤Ê¤¤"
 
-#: src/display_spl.c:113 src/display_spl.c:122 src/display_spl.c:132
-#: src/display_spl.c:151
+#: ../src/display_spl.c:119 ../src/display_spl.c:128 ../src/display_spl.c:138
+#: ../src/display_spl.c:157 ../src/display_spl.c:164
 msgid "is"
 msgstr "¤¬¼¡¤Î¤â¤Î¤Ç¤¢¤ë"
 
-#: src/display_spl.c:114 src/display_spl.c:123 src/display_spl.c:133
-#: src/display_spl.c:152
+#: ../src/display_spl.c:120 ../src/display_spl.c:129 ../src/display_spl.c:139
+#: ../src/display_spl.c:158 ../src/display_spl.c:165
 msgid "is not"
 msgstr "¤¬¼¡¤Î¤â¤Î¤Ç¤Ê¤¤"
 
-#: src/display_spl.c:115
+#: ../src/display_spl.c:121
 msgid "starts with"
 msgstr "¤¬¼¡¤Î¤â¤Î¤«¤é»Ï¤Þ¤ë"
 
-#: src/display_spl.c:116
+#: ../src/display_spl.c:122
 msgid "ends with"
 msgstr "¤¬¼¡¤Î¤â¤Î¤Ç½ª¤ï¤ë"
 
-#: src/display_spl.c:124
+#: ../src/display_spl.c:130
 msgid "is greater than"
 msgstr "¤¬¼¡¤ÎÃͤè¤êÂ礭¤¤"
 
-#: src/display_spl.c:125
+#: ../src/display_spl.c:131
 msgid "is less than"
 msgstr "¤¬¼¡¤ÎÃͤè¤ê¾®¤µ¤¤"
 
-#: src/display_spl.c:126 src/display_spl.c:138
+#: ../src/display_spl.c:132 ../src/display_spl.c:144
 msgid "is in the range"
 msgstr "¤¬¼¡¤ÎÈϰϤËÆþ¤ë"
 
-#: src/display_spl.c:134
+#: ../src/display_spl.c:140
 msgid "is after"
 msgstr "¤¬¼¡¤Î¤â¤Î°Ê¹ß"
 
-#: src/display_spl.c:135
+#: ../src/display_spl.c:141
 msgid "is before"
 msgstr "¤¬¼¡¤Î¤â¤Î°ÊÁ°"
 
-#: src/display_spl.c:136
+#: ../src/display_spl.c:142
 msgid "in the last"
 msgstr "¤¬¼¡¤ÎÃÍ°ÊÆâ"
 
-#: src/display_spl.c:137
+#: ../src/display_spl.c:143
 msgid "not in the last"
 msgstr "¤¬¼¡¤ÎÃͤè¤ê¸Å¤¤"
 
-#: src/display_spl.c:144
+#: ../src/display_spl.c:150
 msgid "is set"
 msgstr "¤¬ÀßÄꤵ¤ì¤Æ¤¤¤ë"
 
-#: src/display_spl.c:145
+#: ../src/display_spl.c:151
 msgid "is not set"
 msgstr "¤¬ÀßÄꤵ¤ì¤Æ¤¤¤Ê¤¤"
 
-#: src/display_spl.c:159
+#: ../src/display_spl.c:171
+#, fuzzy
+msgid "Not supported"
+msgstr "¥ê¥¹¥È¤ËºÜ¤Ã¤Æ¤Ê¤¤¶Ê"
+
+#: ../src/display_spl.c:178
 msgid "minutes"
 msgstr "ʬ"
 
-#: src/display_spl.c:161
+#: ../src/display_spl.c:180
 msgid "tracks"
 msgstr "¶Ê"
 
-#: src/display_spl.c:162
+#: ../src/display_spl.c:181
 msgid "hours"
 msgstr "»þ´Ö"
 
-#: src/display_spl.c:163 src/info.c:777
+#: ../src/display_spl.c:182 ../src/info.c:777
 msgid "GB"
 msgstr ""
 
-#: src/display_spl.c:170
+#: ../src/display_spl.c:189
 msgid "random order"
 msgstr "¥é¥ó¥À¥à¤Ê½ç"
 
-#: src/display_spl.c:171
+#: ../src/display_spl.c:190
 msgid "title"
 msgstr "¥¿¥¤¥È¥ë"
 
-#: src/display_spl.c:172
+#: ../src/display_spl.c:191
 msgid "album"
 msgstr "¥¢¥ë¥Ð¥à"
 
-#: src/display_spl.c:173
+#: ../src/display_spl.c:192
 msgid "artist"
 msgstr "¥¢¡¼¥Æ¥£¥¹¥È"
 
-#: src/display_spl.c:174
+#: ../src/display_spl.c:193
 msgid "genre"
 msgstr "¥¸¥ã¥ó¥ë"
 
-#: src/display_spl.c:175
+#: ../src/display_spl.c:194
 msgid "most recently added"
 msgstr "ºÇ¶áÅÐÏ¿¤µ¤ì¤¿¶Ê"
 
-#: src/display_spl.c:176
+#: ../src/display_spl.c:195
 msgid "least recently added"
 msgstr "¸Å¤¯¤ËÅÐÏ¿¤µ¤ì¤¿¶Ê"
 
-#: src/display_spl.c:177
+#: ../src/display_spl.c:196
 msgid "most often played"
 msgstr "¤è¤¯ºÆÀ¸¤µ¤ì¤ë¶Ê"
 
-#: src/display_spl.c:178
+#: ../src/display_spl.c:197
 msgid "least often played"
 msgstr "¤¢¤Þ¤êºÆÀ¸¤µ¤ì¤Ê¤¤¶Ê"
 
-#: src/display_spl.c:179
+#: ../src/display_spl.c:198
 msgid "most recently played"
 msgstr "ºÇ¶áºÆÀ¸¤µ¤ì¤¿¶Ê"
 
-#: src/display_spl.c:180
+#: ../src/display_spl.c:199
 msgid "least recently played"
 msgstr "ºÇ¶áºÆÀ¸¤µ¤ì¤Ê¤¤¶Ê"
 
-#: src/display_spl.c:181
+#: ../src/display_spl.c:200
 msgid "highest rating"
 msgstr "ɾ²Á¤Î¹â¤¤¶Ê"
 
-#: src/display_spl.c:182
+#: ../src/display_spl.c:201
 msgid "lowest rating"
 msgstr "ɾ²Á¤ÎÄ㤤¶Ê"
 
-#: src/display_spl.c:1047 src/display_spl.c:1062
+#: ../src/display_spl.c:208 ../src/display_spl.c:217
+#, fuzzy
+msgid "Movie"
+msgstr "Êѹ¹Æü"
+
+#: ../src/display_spl.c:209 ../src/display_spl.c:218
+msgid "Music Video"
+msgstr ""
+
+#: ../src/display_spl.c:1162 ../src/display_spl.c:1177
 msgid "to"
 msgstr "¤«¤é"
 
-#: src/display_spl.c:1279
+#: ../src/display_spl.c:1455
 msgid "-"
 msgstr ""
 
-#: src/display_spl.c:1294
+#: ../src/display_spl.c:1470
 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
+#: ../src/display_spl.c:1689 ../src/misc_playlist.c:66
+#: ../src/misc_playlist.c:68 ../src/misc_playlist.c:93
+#: ../src/misc_playlist.c:95 ../src/misc_playlist.c:428
+#: ../src/misc_playlist.c:430
 msgid "New Playlist"
 msgstr "¿·µ¬¥×¥ì¥¤¥ê¥¹¥È"
 
-#: src/file.c:230
+#: ../src/display_tracks.c:281
 #, c-format
+msgid "Moved one track"
+msgid_plural "Moved %d tracks"
+msgstr[0] "%d¶Ê¤ò°ÜÆ°¤·¤Þ¤·¤¿"
+
+#: ../src/display_tracks.c:1717
+#, 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 ""
+"»È¤ï¤ì¤Æ¤¤¤ë GTK+ ¥é¥¤¥Ö¥é¥ê %d.%d.%d < 2.5.4) ¤Î¥Ð¥°¤Î¤¿¤á¡¢¥½¡¼¥Èɽ¼¨¤ò²ò½ü"
+"¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤»¤ó¡£°ìÅÙ¥½¡¼¥Èɽ¼¨¤òÁª¤ó¤Ç¤·¤Þ¤¦¤È¡¢È󥽡¼¥Èɽ¼¨¤ËÌ᤹¤³¤È"
+"¤Ï¤Ç¤­¤Þ¤»¤ó¡£\n"
+"\n"
+
+#: ../src/display_tracks.c:1962
+msgid "Rtng"
+msgstr "ɾ²Á"
+
+#: ../src/display_tracks.c:1965
+msgid "#"
+msgstr "#"
+
+#: ../src/display_tracks.c:1968
+msgid "CD"
+msgstr ""
+
+#: ../src/display_tracks.c:1971
+msgid "ID"
+msgstr "ID"
+
+#: ../src/display_tracks.c:1974
+msgid "Trnsfrd"
+msgstr "žÁ÷ºÑ¤ß"
+
+#: ../src/display_tracks.c:1978
+msgid "Cmpl"
+msgstr "¥³¥ó¥Ô"
+
+#: ../src/display_tracks.c:1987
+msgid "Plycnt"
+msgstr "ºÆÀ¸²ó¿ô"
+
+#: ../src/display_tracks.c:1999
+msgid "Released"
+msgstr "¸ø³«Æü"
+
+#: ../src/display_tracks.c:2005
+msgid "Vol."
+msgstr "²»ÎÌ"
+
+#: ../src/display_tracks.c:2008
+msgid "Sndchk."
+msgstr "¥µ¥¦¥ó¥É¥Á¥§¥Ã¥¯"
+
+#: ../src/file.c:236
+#, c-format
+msgid ""
 "'%s' is a directory, not a playlist file.\n"
 "\n"
 msgstr ""
 "'%s' ¤Ï¥×¥ì¥¤¥ê¥¹¥È¥Õ¥¡¥¤¥ë¤Ç¤Ï¤Ê¤¯¡¢¥Ç¥£¥ì¥¯¥È¥ê¤Ç¤¹¡£\n"
 "\n"
 
-#: src/file.c:258
+#: ../src/file.c:266
 #, c-format
 msgid ""
 "'%s' is a not a known playlist file.\n"
@@ -2625,7 +2866,7 @@
 "'%s' ¤Ï ¥×¥ì¥¤¥ê¥¹¥È¥Õ¥¡¥¤¥ë¤Ç¤Ï¤Ê¤¤¤è¤¦¤Ç¤¹¡£\n"
 "\n"
 
-#: src/file.c:275
+#: ../src/file.c:283
 #, c-format
 msgid ""
 "Cannot open '%s' for reading.\n"
@@ -2634,53 +2875,53 @@
 "¥Õ¥¡¥¤¥ë '%s' ¤òÆɤ߹þ¤â¤¦¤È¤·¤Þ¤·¤¿¤¬¡¢³«¤¯¤³¤È¤¬¤Ç¤­¤Þ¤»¤ó¡£\n"
 "\n"
 
-#: src/file.c:359
+#: ../src/file.c:369
 #, c-format
 msgid "Skipping '%s' because it is a directory.\n"
 msgstr "'%s' ¤Ï¥Ç¥£¥ì¥¯¥È¥ê¤Ê¤Î¤ÇÈô¤Ð¤·¤Þ¤¹¡£\n"
 
-#: src/file.c:364
+#: ../src/file.c:374
 #, c-format
 msgid "Skipping '%s' to avoid adding playlist file recursively\n"
 msgstr "¥×¥ì¥¤¥ê¥¹¥È¥Õ¥¡¥¤¥ë¤ÎºÆµ¢Åª¤ÊÅÐÏ¿¤òÈò¤±¤ë¤¿¤á¡¢'%s' ¤ÏÈô¤Ð¤·¤Þ¤¹¡£\n"
 
-#: src/file.c:619
+#: ../src/file.c:629
 #, c-format
 msgid "Unknown token '%s' in template '%s'\n"
 msgstr "̤ÃΤΥȡ¼¥¯¥ó '%s' ¤¬¥Æ¥ó¥×¥ì¡¼¥È '%s' Ãæ¤Ë¤¢¤ê¤Þ¤¹¡£\n"
 
-#: src/file.c:871
+#: ../src/file.c:890
 #, c-format
 msgid "Local filename not valid (%s)"
 msgstr "¥í¡¼¥«¥ë¤Î¥Õ¥¡¥¤¥ë̾¤¬ÉÔÀµ¤Ç¤¹ (%s)"
 
-#: src/file.c:930
+#: ../src/file.c:949
 #, c-format
 msgid "No information found for user '%s' in '%s'"
 msgstr "¥æ¡¼¥¶¡¼ '%s' ¤Î¾ðÊó¤¬ '%s' Æâ¤Ë¸«¤Ä¤«¤ê¤Þ¤»¤ó"
 
-#: src/file.c:939
+#: ../src/file.c:958
 #, c-format
 msgid "mserv data file (%s) not available for track (%s)"
 msgstr "¤³¤Î¶Ê (%2$s) ÍѤΠmserv ¥Ç¡¼¥¿¥Õ¥¡¥¤¥ë (%1$s) ¤¬¤¢¤ê¤Þ¤»¤ó"
 
-#: src/file.c:947
+#: ../src/file.c:966
 #, c-format
 msgid "Track (%s) not in mserv music root directory (%s)"
 msgstr "¤³¤Î¶Ê (%s) ¤Ï mserv ¤Î¥ë¡¼¥È¥Ç¥£¥ì¥¯¥È¥ê (%s) ¤Ë¤ÏÆþ¤Ã¤Æ¤¤¤Þ¤»¤ó"
 
-#: src/file.c:1055
+#: ../src/file.c:1090
 #, c-format
 msgid ""
 "The following track could not be processed (file does not exist): '%s'\n"
 msgstr "°Ê²¼¤Î¶Ê¤ò½èÍý¤Ç¤­¤Þ¤»¤ó¤Ç¤·¤¿ (¥Õ¥¡¥¤¥ë¤¬Â¸ºß¤·¤Ê¤¤¤¿¤á): '%s'\n"
 
-#: src/file.c:1118
+#: ../src/file.c:1169
 #, c-format
 msgid "The following track could not be processed (filetype unknown): '%s'\n"
 msgstr "°Ê²¼¤Î¶Ê¤ò½èÍý¤Ç¤­¤Þ¤»¤ó¤Ç¤·¤¿ (¥Õ¥¡¥¤¥ë·Á¼°¤¬ÉÔÌÀ¤Ê¤¿¤á): '%s'\n"
 
-#: src/file.c:1211
+#: ../src/file.c:1262
 #, c-format
 msgid ""
 "The following track could not be processed (filetype is known but analysis "
@@ -2689,110 +2930,107 @@
 "°Ê²¼¤Î¶Ê¤ò½èÍý¤Ç¤­¤Þ¤»¤ó¤Ç¤·¤¿ (¥Õ¥¡¥¤¥ë·Á¼°¤Ï´ûÃΤÀ¤¬²òÀϤ˼ºÇÔ¤·¤¿¤¿¤á): '%"
 "s'\n"
 
-#: src/file.c:1241 src/file.c:1295
+#: ../src/file.c:1292 ../src/file.c:1346
 msgid "Nothing to update"
 msgstr "¹¹¿·¤µ¤ì¤ë¥Ç¡¼¥¿¤Ï¤¢¤ê¤Þ¤»¤ó"
 
-#: src/file.c:1262
+#: ../src/file.c:1313
 #, c-format
 msgid "Updating %s"
 msgstr "%s ¤ò¹¹¿·Ãæ"
 
-#: src/file.c:1276
+#: ../src/file.c:1327
 msgid "Updated selected tracks with info from file."
 msgstr "ÁªÂò¤µ¤ì¤¿¶Ê¤Î¾ðÊó¤ò¡¢¥Õ¥¡¥¤¥ë¤ò¸µ¤Ë¹¹¿·¤·¤Þ¤·¤¿¡£"
 
-#: src/file.c:1310
+#: ../src/file.c:1361
 #, c-format
 msgid "Retrieving mserv data %s"
 msgstr "mserv data %s ¤ò¼èÆÀÃæ"
 
-#: src/file.c:1315
+#: ../src/file.c:1366
 msgid "no filename available"
 msgstr "¥Õ¥¡¥¤¥ë̾¤¬¤ï¤«¤ê¤Þ¤»¤ó"
 
-#: src/file.c:1320
+#: ../src/file.c:1371
 msgid "Updated selected tracks with data from mserv."
 msgstr "ÁªÂò¤µ¤ì¤¿¶Ê¤ò mserv ¤Î¥Ç¡¼¥¿¤ò¸µ¤Ë¹¹¿·¤·¤Þ¤·¤¿¡£"
 
-#: src/file.c:1341
+#: ../src/file.c:1392
 #, c-format
 msgid "The following track could not be updated"
 msgid_plural "The following %d tracks could not be updated"
-msgstr[0] "°Ê²¼¤Î¶Ê¤ò¹¹¿·¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤»¤ó¤Ç¤·¤¿"
-msgstr[1] "°Ê²¼¤Î%d¶Ê¤ò¹¹¿·¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤»¤ó¤Ç¤·¤¿"
+msgstr[0] "°Ê²¼¤Î%d¶Ê¤ò¹¹¿·¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤»¤ó¤Ç¤·¤¿"
 
 #. gint id,
 #. gboolean modal,
-#: src/file.c:1347
+#: ../src/file.c:1398
 msgid "Failed Track Update"
 msgstr "¶Ê¤Î¹¹¿·¤Ë¼ºÇÔ"
 
-#: src/file.c:1405
+#: ../src/file.c:1456
 #, c-format
 msgid "The following track has been updated"
 msgid_plural "The following %d tracks have been updated"
-msgstr[0] "°Ê²¼¤Î¶Ê¤ò¹¹¿·¤·¤Þ¤·¤¿"
-msgstr[1] "°Ê²¼¤Î%d¶Ê¤ò¹¹¿·¤·¤Þ¤·¤¿"
+msgstr[0] "°Ê²¼¤Î%d¶Ê¤ò¹¹¿·¤·¤Þ¤·¤¿"
 
 #. gint id,
 #. gboolean modal,
-#: src/file.c:1411
+#: ../src/file.c:1462
 msgid "Successful Track Update"
 msgstr "¶Ê¤Î¹¹¿·¤ò´°Î»"
 
-#: src/file.c:1470
+#: ../src/file.c:1521
 #, 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] "°Ê²¼¤Î¶Ê¤Ë¤Ä¤¤¤Æ¡¢mserv ¤«¤é¾ðÊó¤ò¼èÆÀ¤Ç¤­¤Þ¤»¤ó"
-msgstr[1] "°Ê²¼¤Î%d¶Ê¤Ë¤Ä¤¤¤Æ¡¢mserv ¤«¤é¾ðÊó¤ò¼èÆÀ¤Ç¤­¤Þ¤»¤ó"
+msgstr[0] "°Ê²¼¤Î%d¶Ê¤Ë¤Ä¤¤¤Æ¡¢mserv ¤«¤é¾ðÊó¤ò¼èÆÀ¤Ç¤­¤Þ¤»¤ó"
 
 #. gint id,
 #. gboolean modal,
-#: src/file.c:1476
+#: ../src/file.c:1527
 msgid "mserv data retrieval problem"
 msgstr "mserv ¤«¤é¤Î¥Ç¡¼¥¿¼èÆÀ¤ËÌäÂ꤬¤¢¤ê¤Þ¤¹"
 
-#: src/file.c:1565
+#: ../src/file.c:1616
 msgid "no local filename available, file on the iPod will be used instead"
 msgstr ""
 
-#: src/file.c:1571
+#: ../src/file.c:1622
 msgid "no local filename available and copy on iPod cannot be found"
 msgstr ""
 
-#: src/file.c:1575 src/file.c:1593
+#: ../src/file.c:1626 ../src/file.c:1644
 #, fuzzy
 msgid "no local filename available"
 msgstr "¥Õ¥¡¥¤¥ë̾¤¬¤ï¤«¤ê¤Þ¤»¤ó"
 
-#: src/file.c:1583
+#: ../src/file.c:1634
 msgid "local file could not be found, file on the iPod will be used instead"
 msgstr ""
 
-#: src/file.c:1589
+#: ../src/file.c:1640
 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
+#: ../src/file.c:1728
 #, fuzzy
 msgid "update failed (format no supported?)"
 msgstr "Âбþ¤·¤Æ¤¤¤Ê¤¤·Á¼°¤Ç¤¹"
 
-#: src/file.c:1734
+#: ../src/file.c:1813
 #, c-format
 msgid "Processing '%s'..."
 msgstr "'%s' ¤Î½èÍýÃæ..."
 
-#: src/file.c:1740
+#: ../src/file.c:1819
 #, 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
+#: ../src/file.c:1939 ../src/misc_track.c:1694 ../src/misc_track.c:1799
 #, c-format
 msgid ""
 "Podcast already present: '%s'\n"
@@ -2801,7 +3039,7 @@
 "Podcast ¤Ï¤¹¤Ç¤Ë¸ºß¤·¤Þ¤¹: '%s'\n"
 "\n"
 
-#: src/file.c:1913
+#: ../src/file.c:2004
 #, c-format
 msgid ""
 "Writing to video files not yet supported (%s).\n"
@@ -2810,35 +3048,35 @@
 "¥Ó¥Ç¥ª¥Õ¥¡¥¤¥ë¤Ø¤Î½ñ¤­¹þ¤ß¤Ï¤Þ¤À¤Ç¤­¤Þ¤»¤ó (%s).\n"
 "\n"
 
-#: src/file.c:1965 src/file.c:1979
+#: ../src/file.c:2056 ../src/file.c:2070
 #, c-format
 msgid "Couldn't change tags of file: %s\n"
 msgstr "¼¡¤Î¥Õ¥¡¥¤¥ë¤Î¥¿¥°¤òÊѹ¹¤Ç¤­¤Þ¤»¤ó: %s\n"
 
-#: src/file.c:2076
+#: ../src/file.c:2172
 #, c-format
 msgid "Could not open '%s' for reading and writing.\n"
 msgstr "¥Õ¥¡¥¤¥ë '%s' ¤ÎÆɤ߹þ¤ß¤ª¤è¤Ó½ñ¤­¹þ¤ß¤¬¤Ç¤­¤Þ¤»¤ó¡£\n"
 
-#: src/file.c:2083
+#: ../src/file.c:2179
 #, c-format
 msgid "Could not obtain lock on '%s'.\n"
 msgstr "'%s' ¤ò¥í¥Ã¥¯¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤»¤ó¤Ç¤·¤¿¡£\n"
 
 #. error!
-#: src/file.c:2100 src/file.c:2109 src/file.c:2120 src/file.c:2130
+#: ../src/file.c:2196 ../src/file.c:2205 ../src/file.c:2216 ../src/file.c:2226
 #, c-format
 msgid "Malformed line in '%s': %s\n"
 msgstr "'%s' ¤Ë¤ª¤«¤·¤Ê¹Ô¤¬¤¢¤ê¤Þ¤¹: %s\n"
 
 #. gint id,
 #. gboolean modal,
-#: src/file.c:2159
+#: ../src/file.c:2255
 msgid "Remove offline playcounts?"
 msgstr "¥ª¥Õ¥é¥¤¥ó¤Ç¤ÎºÆÀ¸²ó¿ô¤òºï½ü¤·¤Þ¤¹¤«"
 
 #. title
-#: src/file.c:2160
+#: ../src/file.c:2256
 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."
@@ -2847,12 +3085,12 @@
 "¤È¤½¤ì¤é¤Î¶Ê¤ÎºÆÀ¸²ó¿ô¤Ï¥Õ¥¡¥¤¥ë¤«¤éºï½ü¤µ¤ì¤Þ¤¹¡£'¥­¥ã¥ó¥»¥ë' ¤ò²¡¤»¤Ðºï½ü¤µ"
 "¤ì¤º»Ä¤ê¤Þ¤¹¡£"
 
-#: src/file.c:2177
+#: ../src/file.c:2273
 #, c-format
 msgid "Error writing to '%s'.\n"
 msgstr "'%s'¤Î½ñ¤­¹þ¤ßÃæ¤Ë¥¨¥é¡¼¤¬È¯À¸¤·¤Þ¤·¤¿¡£\n"
 
-#: src/file.c:2232 src/tools.c:269
+#: ../src/file.c:2330 ../src/tools.c:271
 #, c-format
 msgid ""
 "Normalization failed: file type not supported (%s).\n"
@@ -2861,7 +3099,7 @@
 "Ê¿¶Ñ²½¤Ë¼ºÇÔ: ¤³¤Î¥Õ¥¡¥¤¥ë·Á¼°¤Ï°·¤¨¤Þ¤»¤ó (%s).\n"
 "\n"
 
-#: src/file.c:2248 src/tools.c:286
+#: ../src/file.c:2346 ../src/tools.c:288
 #, c-format
 msgid ""
 "Normalization failed: file not available (%s).\n"
@@ -2870,86 +3108,198 @@
 "Ê¿¶Ñ²½¤Ë¼ºÇÔ: ¥Õ¥¡¥¤¥ë¤¬¼èÆÀ¤Ç¤­¤Þ¤»¤ó (%s).\n"
 "\n"
 
-#: src/file_export.c:182
+#: ../src/file_convert.c:316
+msgid "Summary status of conversion processes"
+msgstr ""
+
+#: ../src/file_convert.c:564
+msgid "active"
+msgstr ""
+
+#: ../src/file_convert.c:569
+msgid "inactive"
+msgstr ""
+
+#: ../src/file_convert.c:580
 #, c-format
+msgid "Active threads: %d. Scheduled tracks: %d."
+msgstr ""
+
+#: ../src/file_convert.c:1061
+#, fuzzy, c-format
+msgid "Original filename not available for '%s.'\n"
+msgstr ""
+"Ê¿¶Ñ²½¤Ë¼ºÇÔ: ¥Õ¥¡¥¤¥ë¤¬¼èÆÀ¤Ç¤­¤Þ¤»¤ó (%s).\n"
+"\n"
+
+#: ../src/file_convert.c:1076
+#, c-format
+msgid "Filename '%s' is no longer valid for '%s'.\n"
+msgstr ""
+
+#: ../src/file_convert.c:1127
+msgid "Ogg Vorbis"
+msgstr ""
+
+#: ../src/file_convert.c:1133
+msgid "FLAC"
+msgstr ""
+
+#: ../src/file_convert.c:1188
+#, c-format
+msgid ""
+"Files of type '%s' are not supported by the iPod. Please go to the "
+"Preferences to set up and turn on a suitable conversion script for '%s'.\n"
+"\n"
+msgstr ""
+
+#: ../src/file_convert.c:1274
+#, fuzzy
+msgid "No information available"
+msgstr "¥Õ¥¡¥¤¥ë̾¤¬¤ï¤«¤ê¤Þ¤»¤ó"
+
+#: ../src/file_convert.c:1313
+#, c-format
+msgid "Could not create '%s'. Filetype conversion will not work.\n"
+msgstr ""
+
+#: ../src/file_convert.c:1631 ../src/file_convert.c:3040
+#, c-format
+msgid ""
+"Transfer of '%s' failed. %s\n"
+"\n"
+msgstr ""
+
+#: ../src/file_convert.c:2035 ../src/file_convert.c:2313
+#, c-format
+msgid ""
+"Conversion of '%s' failed: '%s'.\n"
+"\n"
+msgstr ""
+
+#: ../src/file_convert.c:2050
+#, c-format
+msgid ""
+"Conversion of '%s' failed: '%s %s' returned exit status %d.\n"
+"\n"
+msgstr ""
+
+#: ../src/file_convert.c:2079
+#, c-format
+msgid ""
+"Conversion of '%s' failed: '%s %s' did not return filename extension as "
+"expected.\n"
+"\n"
+msgstr ""
+
+#: ../src/file_convert.c:2155
+#, c-format
+msgid ""
+"Covnersion of '%s' failed: Could not access original file '%s' (%s).\n"
+"\n"
+msgstr ""
+
+#: ../src/file_convert.c:2210
+#, c-format
+msgid ""
+"Conversion of '%s' failed: Could not create directory '%s'.\n"
+"\n"
+msgstr ""
+
+#: ../src/file_convert.c:2344
+#, c-format
+msgid ""
+"Conversion of '%s' failed: '%s' returned exit status %d.\n"
+"\n"
+msgstr ""
+
+#: ../src/file_convert.c:2383
+#, c-format
+msgid ""
+"Conversion of '%s' failed: could not stat the converted file '%s'.\n"
+"\n"
+msgstr ""
+
+#: ../src/file_export.c:182
+#, c-format
 msgid "Skipping existing file with same length: '%s'\n"
 msgstr "Ʊ¤¸Â礭¤µ¤Î¥Õ¥¡¥¤¥ë¤òÈô¤Ð¤·¤Þ¤¹: '%s'\n"
 
-#: src/file_export.c:190
+#: ../src/file_export.c:190
 #, c-format
 msgid "Overwriting existing file: '%s'\n"
 msgstr "¥Õ¥¡¥¤¥ë¤ò¾å½ñ¤­¤·¤Þ¤¹: '%s'\n"
 
-#: src/file_export.c:207
+#: ../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:209
+#: ../src/file_export.c:209
 #, c-format
 msgid "Error copying '%s' to '%s' (%s)\n"
 msgstr "'%s' ¤ò '%s' ¤Ë¥³¥Ô¡¼Ãæ¤Ë¥¨¥é¡¼È¯À¸: (%s)\n"
 
-#: src/file_export.c:217
+#: ../src/file_export.c:217
 #, c-format
 msgid "Unable to open '%s' for reading\n"
 msgstr "'%s' ¤òÆɤ߹þ¤ßÍѤ˳«¤¯¤³¤È¤¬¤Ç¤­¤Þ¤»¤ó\n"
 
-#: src/file_export.c:327
+#: ../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:395 src/file_itunesdb.c:1230 src/tools.c:359
+#: ../src/file_export.c:395 ../src/tools.c:361
 msgid "Information"
 msgstr "¾ðÊó"
 
-#: src/file_export.c:406 src/tools.c:371
+#: ../src/file_export.c:406 ../src/tools.c:373
 msgid "Press button to abort."
 msgstr "¥Ü¥¿¥ó¤ò²¡¤¹¤ÈÃæ»ß¤·¤Þ¤¹¡£"
 
-#: src/file_export.c:419
+#: ../src/file_export.c:419
 msgid "copying..."
 msgstr "¥³¥Ô¡¼Ãæ..."
 
-#: src/file_export.c:472
+#: ../src/file_export.c:476
 #, c-format
 msgid "Failed to write '%s-%s'\n"
 msgstr "Êݸ¤¬¤Ç¤­¤Þ¤»¤ó '%s-%s'\n"
 
-#: src/file_export.c:485
+#: ../src/file_export.c:489
 #, c-format
 msgid "Copied %d of %d track."
 msgid_plural "Copied %d of %d tracks."
 msgstr[0] "%2$d¶ÊÃæ %1$d¶Ê¤ò¥³¥Ô¡¼¤·¤Þ¤·¤¿¡£"
 
-#: src/file_export.c:501 src/file_itunesdb.c:1495 src/tools.c:517
+#: ../src/file_export.c:505 ../src/tools.c:519
 #, c-format
 msgid "%d%% (%d:%02d:%02d left)"
 msgstr "%d%% (»Ä¤ê %d:%02d:%02d)"
 
-#: src/file_export.c:510
+#: ../src/file_export.c:514
 msgid "Some tracks were not copied."
 msgstr "°ìÉô¤Î¶Ê¤¬¥³¥Ô¡¼¤µ¤ì¤Þ¤»¤ó¤Ç¤·¤¿¡£"
 
-#: src/file_export.c:575
+#: ../src/file_export.c:579
 msgid "Export from iPod database not possible in offline mode."
 msgstr "¥ª¥Õ¥é¥¤¥ó¥â¡¼¥É¤Ç¤Ï iPod ¥Ç¡¼¥¿¥Ù¡¼¥¹¤«¤é¤Î¥¨¥¯¥¹¥Ý¡¼¥È¤Ï¤Ç¤­¤Þ¤»¤ó¡£"
 
-#: src/file_export.c:583
+#: ../src/file_export.c:587
 msgid "Select Export Destination Directory"
 msgstr "¥Õ¥¡¥¤¥ë¤Î¥¨¥¯¥¹¥Ý¡¼¥ÈÀè¥Ç¥£¥ì¥¯¥È¥ê¤òÁªÂò¤·¤Æ¤¯¤À¤µ¤¤"
 
-#: src/file_export.c:732
+#: ../src/file_export.c:736
 msgid "Drag from iPod database not possible in offline mode."
 msgstr "¥ª¥Õ¥é¥¤¥ó¥â¡¼¥É¤Ç¤Ï iPod ¥Ç¡¼¥¿¥Ù¡¼¥¹¤«¤é¤Î¥É¥é¥Ã¥°Áàºî¤Ï¤Ç¤­¤Þ¤»¤ó¡£"
 
-#: src/file_export.c:766
+#: ../src/file_export.c:770
 msgid "The following tracks have to be copied to your harddisk"
 msgstr "°Ê²¼¤Î¶Ê¤¬¥Ï¡¼¥É¥Ç¥£¥¹¥¯¤Ë¥³¥Ô¡¼¤µ¤ì¤Þ¤·¤¿"
 
-#: src/file_export.c:811
+#: ../src/file_export.c:815
 msgid ""
 "Some tracks were not copied to your harddisk. Only the copied tracks will be "
 "included in the current drag and drop operation.\n"
@@ -2958,20 +3308,20 @@
 "°ìÉô¤Î¶Ê¤Ï¥Ï¡¼¥É¥Ç¥£¥¹¥¯¤Ë¥³¥Ô¡¼¤µ¤ì¤Þ¤»¤ó¤Ç¤·¤¿¡£¥³¥Ô¡¼¤µ¤ì¤¿¶Ê¤Î¤ß¤¬¡¢º£¤Î"
 "¥É¥é¥Ã¥°&¥É¥í¥Ã¥×Áàºî¤Ë´Þ¤Þ¤ì¤Æ¤¤¤Þ¤¹¡£\n"
 
-#: src/file_export.c:1006
+#: ../src/file_export.c:1010
 #, c-format
 msgid ""
 "No valid filename for: %s\n"
 "\n"
 msgstr "'%s' ¤Î¥Õ¥¡¥¤¥ë̾¤¬ÉÔÀµ¤Ç¤¹¡£\n"
 
-#: src/file_export.c:1022
+#: ../src/file_export.c:1026
 #, c-format
 msgid "Created playlist with one track."
 msgid_plural "Created playlist with %d tracks."
 msgstr[0] "¿·µ¬¥×¥ì¥¤¥ê¥¹¥È¤Ë %d¶ÊÅÐÏ¿¤·¤Þ¤·¤¿¡£"
 
-#: src/file_export.c:1027
+#: ../src/file_export.c:1031
 #, c-format
 msgid ""
 "Could not open '%s' for writing (%s).\n"
@@ -2980,29 +3330,29 @@
 "'%s' ¤ò½ñ¤­¹þ¤ßÍѤ˳«¤¯¤³¤È¤¬¤Ç¤­¤Þ¤»¤ó¡£(%s)\n"
 "\n"
 
-#: src/file_itunesdb.c:115
-#, c-format
-msgid "Matching MD5 checksum for file %d/%d"
+#: ../src/file_itunesdb.c:127
+#, fuzzy, c-format
+msgid "Matching SHA1 checksum for file %d/%d"
 msgstr "MD5 ¥Á¥§¥Ã¥¯¥µ¥à¤Î¾È¹çÃæ %d/%d"
 
-#: src/file_itunesdb.c:223
+#: ../src/file_itunesdb.c:234
 msgid "Could not open \"iTunesDB.ext\" for reading extended info.\n"
 msgstr "³ÈÄ¥¾ðÊó¤ò³ÊǼ¤·¤¿¥Õ¥¡¥¤¥ë \"iTunesDB.ext\" ¤ò³«¤±¤Þ¤»¤ó¡£\n"
 
-#: src/file_itunesdb.c:230
+#: ../src/file_itunesdb.c:241
 msgid "Could not create hash value from itunesdb\n"
 msgstr "itunesdb ¤«¤é¥Ï¥Ã¥·¥åÃͤòÆɤ߹þ¤á¤Þ¤»¤ó¤Ç¤·¤¿¡£\n"
 
-#: src/file_itunesdb.c:244
+#: ../src/file_itunesdb.c:255
 #, c-format
 msgid "Error while reading extended info: %s\n"
 msgstr "³ÈÄ¥¾ðÊó¥Õ¥¡¥¤¥ë¤ÎÆɤ߹þ¤ßÃæ¤Ë°Ê²¼¤Î¥¨¥é¡¼¤¬È¯À¸¤·¤Þ¤·¤¿: %s\n"
 
-#: src/file_itunesdb.c:261
-#, c-format
+#: ../src/file_itunesdb.c:272
+#, fuzzy, 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 "
+"gtkpod will try to match the information using SHA1 checksums. This may take "
 "a long time.\n"
 "\n"
 msgstr ""
@@ -3011,7 +3361,7 @@
 "¤Þ¤¹¡£\n"
 "\n"
 
-#: src/file_itunesdb.c:273
+#: ../src/file_itunesdb.c:284
 #, c-format
 msgid ""
 "%s:\n"
@@ -3020,7 +3370,7 @@
 "%s:\n"
 "\"itunesdb_hash=\" ¤¬½ñ¤«¤ì¤Æ¤¤¤ë¤Ù¤­²Õ½ê¤Ë°ã¤¦ÆâÍƤ¬½ñ¤«¤ì¤Æ¤¤¤Þ¤¹: \"%s\"\n"
 
-#: src/file_itunesdb.c:333
+#: ../src/file_itunesdb.c:344
 #, c-format
 msgid ""
 "%s:\n"
@@ -3029,12 +3379,13 @@
 "%s:\n"
 "½ñ¼°¥¨¥é¡¼: %s\n"
 
-#: src/file_itunesdb.c:377
+#: ../src/file_itunesdb.c:387
+#, fuzzy
 msgid ""
-"No MD5 checksums on individual tracks are available.\n"
+"No SHA1 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 "
+"(will provide SHA1 checksums) or avoid using the iPod with programs other "
 "than gtkpod.\n"
 "\n"
 msgstr ""
@@ -3045,7 +3396,7 @@
 "¤Ë¤·¤Æ¤¯¤À¤µ¤¤¡£\n"
 "\n"
 
-#: src/file_itunesdb.c:439
+#: ../src/file_itunesdb.c:451
 msgid ""
 "Extended info will not be used. If you have non-transferred tracks,\n"
 "these will be lost.\n"
@@ -3053,15 +3404,15 @@
 "³ÈÄ¥¾ðÊó¤Ï»ÈÍѤµ¤ì¤Þ¤»¤ó¡£iPodËÜÂΤˤޤÀžÁ÷¤·¤Æ¤¤¤Ê¤¤¶Ê¤Î¾ðÊó¤Ï\n"
 "½ªÎ»»þ¤Ë¼º¤ï¤ì¤Þ¤¹¡£\n"
 
-#: src/file_itunesdb.c:447
+#: ../src/file_itunesdb.c:459
 msgid "Offline iPod database successfully imported"
 msgstr "¥ª¥Õ¥é¥¤¥ó¤ÇiPod¥Ç¡¼¥¿¥Ù¡¼¥¹¤òÆɤ߹þ¤ß¤Þ¤·¤¿"
 
-#: src/file_itunesdb.c:450
+#: ../src/file_itunesdb.c:462
 msgid "Local database successfully imported"
 msgstr "¥í¡¼¥«¥ë¥Ç¡¼¥¿¥Ù¡¼¥¹¤òÆɤ߹þ¤ß¤Þ¤·¤¿"
 
-#: src/file_itunesdb.c:458
+#: ../src/file_itunesdb.c:470
 #, c-format
 msgid ""
 "Offline iPod database import failed: '%s'\n"
@@ -3070,7 +3421,7 @@
 "¥ª¥Õ¥é¥¤¥ó¤Ç¤ÎiPod¥Ç¡¼¥¿¥Ù¡¼¥¹¤ÎÆɤ߹þ¤ß¤Ë¼ºÇÔ¤·¤Þ¤·¤¿: '%s'\n"
 "\n"
 
-#: src/file_itunesdb.c:462
+#: ../src/file_itunesdb.c:474
 #, c-format
 msgid ""
 "Local database import failed: '%s'\n"
@@ -3079,7 +3430,7 @@
 "¥í¡¼¥«¥ë¥Ç¡¼¥¿¥Ù¡¼¥¹¤ÎÆɤ߹þ¤ß¤Ë¼ºÇÔ¤·¤Þ¤·¤¿: '%s'\n"
 "\n"
 
-#: src/file_itunesdb.c:469
+#: ../src/file_itunesdb.c:481
 msgid ""
 "Offline iPod database import failed: \n"
 "\n"
@@ -3087,7 +3438,7 @@
 "¥ª¥Õ¥é¥¤¥ó¤Ç¤ÎiPod¥Ç¡¼¥¿¥Ù¡¼¥¹¤ÎÆɤ߹þ¤ß¤Ë¼ºÇÔ¤·¤Þ¤·¤¿\n"
 "\n"
 
-#: src/file_itunesdb.c:472
+#: ../src/file_itunesdb.c:484
 msgid ""
 "Local database import failed: \n"
 "\n"
@@ -3095,7 +3446,7 @@
 "¥í¡¼¥«¥ë¥Ç¡¼¥¿¥Ù¡¼¥¹¤ÎÆɤ߹þ¤ß¤Ë¼ºÇÔ¤·¤Þ¤·¤¿: \n"
 "\n"
 
-#: src/file_itunesdb.c:479
+#: ../src/file_itunesdb.c:491
 #, c-format
 msgid ""
 "'%s' does not exist. Import aborted.\n"
@@ -3104,15 +3455,15 @@
 "'%s' ¤Ï¸«¤Ä¤«¤ê¤Þ¤»¤ó¡£Æɤ߹þ¤ß¤òÃæ»ß¤·¤Þ¤¹¡£\n"
 "\n"
 
-#: src/file_itunesdb.c:502
+#: ../src/file_itunesdb.c:514
 msgid "Extended info will not be used.\n"
 msgstr "³ÈÄ¥¾ðÊó¤Ï»ÈÍѤµ¤ì¤Þ¤»¤ó¡£\n"
 
-#: src/file_itunesdb.c:509
+#: ../src/file_itunesdb.c:521
 msgid "iPod Database Successfully Imported"
 msgstr "iPod ¤«¤é¥Ç¡¼¥¿¥Ù¡¼¥¹¤òÆɤ߹þ¤ß¤Þ¤·¤¿"
 
-#: src/file_itunesdb.c:516
+#: ../src/file_itunesdb.c:528
 #, c-format
 msgid ""
 "iPod Database Import Failed: '%s'\n"
@@ -3121,7 +3472,7 @@
 "iPod ¤«¤é¤Î¥Ç¡¼¥¿¥Ù¡¼¥¹¤ÎÆɤ߹þ¤ß¤Ë¼ºÇÔ¤·¤Þ¤·¤¿: '%s'\n"
 "\n"
 
-#: src/file_itunesdb.c:522
+#: ../src/file_itunesdb.c:534
 msgid ""
 "iPod Database Import Failed.\n"
 "\n"
@@ -3129,7 +3480,7 @@
 "iPod¤«¤é¤Î¥Ç¡¼¥¿¥Ù¡¼¥¹¤ÎÆɤ߹þ¤ß¤Ë¼ºÇÔ¤·¤Þ¤·¤¿¡£\n"
 "\n"
 
-#: src/file_itunesdb.c:531
+#: ../src/file_itunesdb.c:543
 #, fuzzy, c-format
 msgid ""
 "'%s' (or similar) does not exist. Import aborted.\n"
@@ -3138,7 +3489,7 @@
 "'%s' ¤Ï¸«¤Ä¤«¤ê¤Þ¤»¤ó¡£Æɤ߹þ¤ß¤òÃæ»ß¤·¤Þ¤¹¡£\n"
 "\n"
 
-#: src/file_itunesdb.c:817
+#: ../src/file_itunesdb.c:859
 #, c-format
 msgid ""
 "Could not find iPod directory structure at '%s'.\n"
@@ -3148,44 +3499,101 @@
 "Do you want to create the directory structure now?\n"
 msgstr ""
 
-#: src/file_itunesdb.c:1071
+#: ../src/file_itunesdb.c:1140
 #, c-format
 msgid "Could not open \"%s\" for writing extended info.\n"
 msgstr "'%s' ¤ò³«¤±¤Ê¤¤¤¿¤á¡¢³ÈÄ¥¾ðÊó¤òµ­Ï¿¤Ç¤­¤Þ¤»¤ó¡£\n"
 
-#: src/file_itunesdb.c:1086
+#: ../src/file_itunesdb.c:1155
 msgid "Aborted writing of extended info.\n"
 msgstr "³ÈÄ¥¾ðÊó¤Î½ñ¤­¹þ¤ß¤ÏÃæ»ß¤µ¤ì¤Þ¤·¤¿¡£\n"
 
-#: src/file_itunesdb.c:1241
+#: ../src/file_itunesdb.c:1356
+#, c-format
+msgid "%d%%"
+msgstr ""
+
+#: ../src/file_itunesdb.c:1370
+#, fuzzy, c-format
+msgid "%d%% (%d/%d  %d:%02d:%02d left)"
+msgstr "%d%% (»Ä¤ê %d:%02d:%02d)"
+
+#: ../src/file_itunesdb.c:1412
+msgid "Status: Deleting File"
+msgstr ""
+
+#: ../src/file_itunesdb.c:1473
+#, fuzzy, c-format
 msgid ""
-"Press button to abort.\n"
-"Export can be continued at a later time."
+"Could not remove the following file: '%s'\n"
+"\n"
 msgstr ""
-"¥Ü¥¿¥ó¤ò²¡¤¹¤ÈÃæÃǤ·¤Þ¤¹¡£\n"
-"¥Õ¥¡¥¤¥ë¤Î¥¨¥¯¥¹¥Ý¡¼¥È¤Ï¸å¤ÇºÆ³«¤¹¤ë»ö¤¬¤Ç¤­¤Þ¤¹¡£"
+"'%s' ¤ò½ñ¤­¹þ¤ßÍѤ˳«¤¯¤³¤È¤¬¤Ç¤­¤Þ¤»¤ó¡£(%s)\n"
+"\n"
 
-#: src/file_itunesdb.c:1310
-msgid "deleting..."
-msgstr "ºï½üÃæ..."
+#: ../src/file_itunesdb.c:1581
+#, fuzzy
+msgid ""
+"The following track could not be converted successfully:\n"
+"\n"
+msgid_plural ""
+"The following tracks could not be converted successfully:\n"
+"\n"
+msgstr[0] "°Ê²¼¤Î%d¶Ê¤ò¹¹¿·¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤»¤ó¤Ç¤·¤¿"
 
-#: src/file_itunesdb.c:1413
-msgid "preparing to copy..."
-msgstr "¥³¥Ô¡¼¤Î½àÈ÷Ãæ..."
+#: ../src/file_itunesdb.c:1591
+#, fuzzy
+msgid ""
+"The following track could not be transferred successfully:\n"
+"\n"
+msgid_plural ""
+"The following tracks could not be transferred successfully:\n"
+"\n"
+msgstr[0] "°Ê²¼¤Î%d¶Ê¤ò¹¹¿·¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤»¤ó¤Ç¤·¤¿"
 
-#: src/file_itunesdb.c:1480
-#, c-format
-msgid "Copied %d of %d new track."
-msgid_plural "Copied %d of %d new tracks."
-msgstr[0] "%2$d¶ÊÃæ %1$d¶Ê¤ò¥³¥Ô¡¼¤·¤Þ¤·¤¿¡£"
+#. ID
+#. modal,
+#. gint id,
+#. gboolean modal,
+#: ../src/file_itunesdb.c:1600 ../src/misc_confirm.c:70
+msgid "Warning"
+msgstr "·Ù¹ð"
 
-#: src/file_itunesdb.c:1506
-msgid "Some tracks were not written to iPod. Export aborted!"
-msgstr "°ìÉô¤Î¶Ê¤òiPod¤ËžÁ÷¤Ç¤­¤Þ¤»¤ó¤Ç¤·¤¿¡£¥¨¥¯¥¹¥Ý¡¼¥È¤òÃæ»ß¤·¤Þ¤¹!"
+#. title
+#: ../src/file_itunesdb.c:1601
+msgid ""
+"The iPod could not be ejected. Please fix the problems mentioned below and "
+"then eject the iPod again. Pressing 'OK' will re-schedule the failed tracks "
+"for conversion and transfer."
+msgstr ""
 
-#: src/file_itunesdb.c:1557
+#: ../src/file_itunesdb.c:1663
+msgid "Status: Copying track"
+msgstr ""
+
+#: ../src/file_itunesdb.c:1669
+msgid "Status: Waiting for conversion to complete"
+msgstr ""
+
+#: ../src/file_itunesdb.c:1673
+msgid "Status: Finished transfer"
+msgstr ""
+
+#: ../src/file_itunesdb.c:1714
 #, c-format
 msgid ""
+"One track could not be transferred because your iPod is full. Either delete "
+"some tracks or otherwise create space on the iPod before ejecting the iPod "
+"again."
+msgid_plural ""
+"%d tracks could not be transferred because your iPod is full. Either delete "
+"some tracks or otherwise create space on the iPod before ejecting the iPod "
+"again."
+msgstr[0] ""
+
+#: ../src/file_itunesdb.c:1792
+#, 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"
@@ -3200,7 +3608,7 @@
 "¤µ¤¤¡£¥­¥ã¥ó¥»¥ë¤·¤¿¾ì¹ç¤Ï¡¢´û¤Ë¤¢¤ë¥Ç¡¼¥¿¥Ù¡¼¥¹¤ò¼è¤ê¹þ¤ó¤Ç¤«¤éºÆ¤Ó¤³¤ÎÁàºî"
 "¤ò¹Ô¤¦¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£\n"
 
-#: src/file_itunesdb.c:1588
+#: ../src/file_itunesdb.c:1827
 msgid ""
 "iPod directory structure must be present before synching to the iPod can be "
 "performed.\n"
@@ -3208,207 +3616,251 @@
 "iPod ¤Ø¤ÎƱ´ü¤ò¹Ô¤¦¤¿¤á¤Ë¤Ï¡¢¤Þ¤º iPod ¤Î¥Ç¥£¥ì¥¯¥È¥ê¹½Â¤¤ò¤¢¤é¤«¤¸¤áºîÀ®¤·¤Æ"
 "¤ª¤¯É¬Íפ¬¤¢¤ê¤Þ¤¹¡£\n"
 
-#: src/file_itunesdb.c:1597
+#: ../src/file_itunesdb.c:1836
 msgid "Some tracks could not be deleted from the iPod. Export aborted!"
 msgstr "°ìÉô¤Î¶Ê¤òiPod¤«¤éºï½ü¤Ç¤­¤Þ¤»¤ó¤Ç¤·¤¿¡£¥¨¥¯¥¹¥Ý¡¼¥È¤òÃæÃǤ·¤Þ¤¹¡£"
 
-#: src/file_itunesdb.c:1613
+#: ../src/file_itunesdb.c:1854
 #, fuzzy
 msgid "Now writing database. Please wait..."
 msgstr "iTunesDB¤Î½ñ¤­¹þ¤ßÃæ¡£¤·¤Ð¤é¤¯¤ªÂÔ¤Á¤¯¤À¤µ¤¤..."
 
-#: src/file_itunesdb.c:1659
+#: ../src/file_itunesdb.c:1901
 #, c-format
 msgid "Extended information file not deleted: '%s'"
 msgstr "³ÈÄ¥¾ðÊó¥Õ¥¡¥¤¥ë¤òºï½ü¤Ç¤­¤Þ¤»¤ó: '%s'"
 
-#: src/file_itunesdb.c:1745
+#: ../src/file_itunesdb.c:1987
 #, fuzzy, c-format
 msgid "%s: Database saved"
 msgstr "iPod¥Ç¡¼¥¿¥Ù¡¼¥¹¤òÊݸ¤·¤Þ¤·¤¿"
 
-#: src/file_itunesdb.c:1749
+#: ../src/file_itunesdb.c:1991
 #, c-format
 msgid "%s: Changes saved"
 msgstr ""
 
-#: src/fileselection.c:127
+#: ../src/fileselection.c:128
 msgid "Successfully added files"
 msgstr "¥Õ¥¡¥¤¥ë¤ÎÄɲäËÀ®¸ù¤·¤Þ¤·¤¿"
 
-#: src/fileselection.c:129
+#: ../src/fileselection.c:130
 msgid "Some files were not added successfully"
 msgstr "°ìÉô¤Î¥Õ¥¡¥¤¥ë¤ÎÄɲä˼ºÇÔ¤·¤Þ¤·¤¿"
 
 #. Create the file chooser, and handle the response
-#: src/fileselection.c:157
+#: ../src/fileselection.c:160
 msgid "Add Files"
 msgstr "¥Õ¥¡¥¤¥ë¤òÄɲ乤ë"
 
 #. Create the file chooser, and handle the response
-#: src/fileselection.c:250
+#: ../src/fileselection.c:253
 msgid "Add Playlists"
 msgstr "¥×¥ì¥¤¥ê¥¹¥È¤òÄɲ乤ë"
 
 #. Create the file chooser, and handle the response
-#: src/fileselection.c:297
+#: ../src/fileselection.c:300
 msgid "Set Cover"
 msgstr "¥«¥Ð¡¼¥¢¡¼¥È¤òÀßÄê"
 
-#: src/fileselection.c:718
+#: ../src/fileselection.c:721
 msgid "Select directory to add recursively"
 msgstr "ºÆµ¢Åª¤ËÄɲ乤ë¥Ç¥£¥ì¥¯¥È¥ê¤òÁªÂò¤·¤Æ¤¯¤À¤µ¤¤"
 
-#: src/fileselection.c:989
+#: ../src/fileselection.c:992
 msgid "Ok"
 msgstr "OK"
 
-#: src/fileselection.c:998
+#: ../src/fileselection.c:1001
 msgid "Cancel"
 msgstr "¥­¥ã¥ó¥»¥ë"
 
-#: src/getopt.c:681
+#: ../src/flacfile.c:33
+#, fuzzy, c-format
+msgid "'%s' does not appear to be an FLAC audio file.\n"
+msgstr "'%s' ¤Ï mp4 ¥ª¡¼¥Ç¥£¥ª¥Õ¥¡¥¤¥ë¤È¤Ïǧ¼±¤Ç¤­¤Þ¤»¤ó¡£\n"
+
+#: ../src/flacfile.c:52
+#, fuzzy, c-format
+msgid "Error retrieving tags for '%s'.\n"
+msgstr "'%s'¤Î½ñ¤­¹þ¤ßÃæ¤Ë¥¨¥é¡¼¤¬È¯À¸¤·¤Þ¤·¤¿¡£\n"
+
+#: ../src/flacfile.c:119
+#, fuzzy, c-format
+msgid ""
+"Import of '%s' failed: FLAC not supported without the FLAC library. You must "
+"compile the gtkpod source together with the FLAC library.\n"
+msgstr ""
+"'%s'¤ÎÆɤ߹þ¤ß¤Ë¼ºÇÔ: m4a/m4p ¤Î¼è¤ê°·¤¤¤Ë¤Ï mp4v2 ¥é¥¤¥Ö¥é¥ê¤¬É¬ÍפǤ¹¡£"
+"mp4v2 ¥é¥¤¥Ö¥é¥ê¤ò»È¤Ã¤Æ gtkpod ¤òºÆÅÙ¥³¥ó¥Ñ¥¤¥ë¤·¤Æ¤¯¤À¤µ¤¤¡£\n"
+
+#: ../src/flacfile.c:125
+#, fuzzy, c-format
+msgid ""
+"FLAC metadata update for '%s' failed: FLAC not supported without the FLAC "
+"library. You must compile the gtkpod source together with the FLAC library.\n"
+msgstr ""
+"'%s' ¤Î m4a/m4p ¥á¥¿¥Ç¡¼¥¿¤Î¹¹¿·¤Ë¼ºÇÔ: m4a/m4p ¤Î¼è¤ê°·¤¤¤Ë¤Ï mp4v2 ¥é¥¤¥Ö¥é"
+"¥ê¤¬É¬ÍפǤ¹¡£mp4v2 ¥é¥¤¥Ö¥é¥ê¤ò»È¤Ã¤Æ gtkpod ¤òºÆÅÙ¥³¥ó¥Ñ¥¤¥ë¤·¤Æ¤¯¤À¤µ"
+"¤¤¡£\n"
+
+#: ../src/getopt.c:681
 #, c-format
 msgid "%s: option `%s' is ambiguous\n"
 msgstr "%s: »ØÄꤵ¤ì¤¿¥ª¥×¥·¥ç¥ó `%s' ¤Ç¤Ïµ­½Ò¤¬Û£Ëæ¤Ç¤¹\n"
 
-#: src/getopt.c:706
+#: ../src/getopt.c:706
 #, c-format
 msgid "%s: option `--%s' doesn't allow an argument\n"
 msgstr "%s: »ØÄꤵ¤ì¤¿¥ª¥×¥·¥ç¥ó `--%s' ¤Ï°ú¿ô¤ò¼è¤ê¤Þ¤»¤ó\n"
 
-#: src/getopt.c:711
+#: ../src/getopt.c:711
 #, c-format
 msgid "%s: option `%c%s' doesn't allow an argument\n"
 msgstr "%s: »ØÄꤵ¤ì¤¿¥ª¥×¥·¥ç¥ó `%c%s' ¤Ï°ú¿ô¤ò¼è¤ê¤Þ¤»¤ó\n"
 
-#: src/getopt.c:729 src/getopt.c:902
+#: ../src/getopt.c:729 ../src/getopt.c:902
 #, c-format
 msgid "%s: option `%s' requires an argument\n"
 msgstr "%s: »ØÄꤵ¤ì¤¿¥ª¥×¥·¥ç¥ó `%s' ¤Ë¤Ï°ú¿ô¤¬É¬ÍפǤ¹\n"
 
 #. --option
-#: src/getopt.c:758
+#: ../src/getopt.c:758
 #, c-format
 msgid "%s: unrecognized option `--%s'\n"
 msgstr "%s: ǧ¼±¤Ç¤­¤Ê¤¤¥ª¥×¥·¥ç¥ó `--%s' ¤Ç¤¹\n"
 
 #. +option or -option
-#: src/getopt.c:762
+#: ../src/getopt.c:762
 #, c-format
 msgid "%s: unrecognized option `%c%s'\n"
 msgstr "%s: ǧ¼±¤Ç¤­¤Ê¤¤¥ª¥×¥·¥ç¥ó `%c%s' ¤Ç¤¹\n"
 
 #. 1003.2 specifies the format of this message.
-#: src/getopt.c:788
+#: ../src/getopt.c:788
 #, c-format
 msgid "%s: illegal option -- %c\n"
 msgstr "%s: ¥ª¥×¥·¥ç¥ó¤¬°ã¤¤¤Þ¤¹ -- %c\n"
 
-#: src/getopt.c:791
+#: ../src/getopt.c:791
 #, c-format
 msgid "%s: invalid option -- %c\n"
 msgstr "%s: ÉÔÀµ¤Ê¥ª¥×¥·¥ç¥ó¤Ç¤¹ -- %c\n"
 
 #. 1003.2 specifies the format of this message.
-#: src/getopt.c:821 src/getopt.c:951
+#: ../src/getopt.c:821 ../src/getopt.c:951
 #, c-format
 msgid "%s: option requires an argument -- %c\n"
 msgstr "%s: »ØÄꤵ¤ì¤¿¥ª¥×¥·¥ç¥ó¤Ë¤Ï°ú¿ô¤¬É¬ÍפǤ¹ -- %c\n"
 
-#: src/getopt.c:868
+#: ../src/getopt.c:868
 #, c-format
 msgid "%s: option `-W %s' is ambiguous\n"
 msgstr "%s: »ØÄꤵ¤ì¤¿¥ª¥×¥·¥ç¥ó `-W %s' ¤Ç¤Ïµ­½Ò¤¬Û£Ëæ¤Ç¤¹\n"
 
-#: src/getopt.c:886
+#: ../src/getopt.c:886
 #, c-format
 msgid "%s: option `-W %s' doesn't allow an argument\n"
 msgstr "%s: »ØÄꤵ¤ì¤¿¥ª¥×¥·¥ç¥ó `-W %s' ¤Ï°ú¿ô¤ò¼è¤ê¤Þ¤»¤ó\n"
 
-#: src/info.c:383
+#: ../src/info.c:383
 msgid "n/c"
 msgstr ""
 
-#: src/info.c:388 src/info.c:835
+#: ../src/info.c:388 ../src/info.c:835
 msgid "offline"
 msgstr "¥ª¥Õ¥é¥¤¥ó"
 
-#: src/info.c:483
+#: ../src/info.c:483
 #, c-format
 msgid " P:%d T:%d/%d"
 msgstr ""
 
-#: src/info.c:777
+#: ../src/info.c:777
 msgid "B"
 msgstr ""
 
-#: src/info.c:777
+#: ../src/info.c:777
 msgid "kB"
 msgstr ""
 
-#: src/info.c:777
+#: ../src/info.c:777
 msgid "TB"
 msgstr ""
 
-#: src/info.c:820
+#: ../src/info.c:820
 #, c-format
 msgid " %s Free"
 msgstr "%s ¶õ¤­"
 
-#: src/info.c:825
+#: ../src/info.c:825
 #, c-format
 msgid " %s Pending"
 msgstr "%s ÉÔ­"
 
-#: src/info.c:830
+#: ../src/info.c:830
 msgid " disconnected"
 msgstr "̤Àܳ"
 
-#: src/info.c:881
+#: ../src/info.c:881
 #, fuzzy
 msgid "No database or playlist selected"
 msgstr "¥×¥ì¥¤¥ê¥¹¥È¤¬ÁªÂò¤µ¤ì¤Æ¤¤¤Þ¤»¤ó"
 
-#: src/info.c:886
+#: ../src/info.c:886
 msgid "No tracks selected"
 msgstr "¶Ê¤¬ÁªÂò¤µ¤ì¤Æ¤¤¤Þ¤»¤ó¡£"
 
-#: src/info.c:891
+#: ../src/info.c:891
 msgid "No playlist selected"
 msgstr "¥×¥ì¥¤¥ê¥¹¥È¤¬ÁªÂò¤µ¤ì¤Æ¤¤¤Þ¤»¤ó"
 
-#: src/info.c:896
+#: ../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"
+#. Strings used several times
+#: ../src/ipod_init.c:48
+msgid "Select or enter your model"
+msgstr ""
 
-#: src/md5.c:240
+#: ../src/ipod_init.c:79 ../src/repository.c:546 ../src/repository.c:2369
+#, fuzzy
+msgid "Select mountpoint"
+msgstr "iPod¤Î¥Þ¥¦¥ó¥È¾ì½ê(_P):"
+
+#: ../src/ipod_init.c:359
+#, fuzzy, c-format
+msgid "Error initialising iPod: %s\n"
+msgstr "'%s'¤Î½ñ¤­¹þ¤ßÃæ¤Ë¥¨¥é¡¼¤¬È¯À¸¤·¤Þ¤·¤¿¡£\n"
+
+#: ../src/ipod_init.c:366
+msgid "Error initialising iPod, unknown error\n"
+msgstr ""
+
+#: ../src/ipod_init.c:422
 #, c-format
-msgid "Could not open '%s' to calculate MD5 checksum: %s\n"
-msgstr "'%s' ¤ò³«¤±¤Ê¤¤¤¿¤á¡¢MD5 ¥Á¥§¥Ã¥¯¥µ¥à¤¬·×»»¤Ç¤­¤Þ¤»¤ó: %s\n"
+msgid "<b>Please select your iPod model at </b><i>%s</i>"
+msgstr ""
 
-#: src/misc.c:79
+#: ../src/misc.c:86
 #, c-format
 msgid ""
 "gtkpod Version %s: Cross-Platform Multi-Lingual Interface to Apple's iPod"
 "(tm)."
 msgstr ""
 
-#: src/misc.c:83
+#: ../src/misc.c:90
 msgid ""
-"(C) 2002 - 2005\n"
+"(C) 2002 - 2007\n"
 "Jorg Schuler (jcsjcs at users dot sourceforge dot net)\n"
 "Corey Donohoe (atmos at atmos dot org)\n"
 "\n"
 "\n"
 msgstr ""
 
-#: src/misc.c:89
+#: ../src/misc.c:96
 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 "
@@ -3442,118 +3894,118 @@
 "\n"
 "\n"
 
-#: src/misc.c:97
+#: ../src/misc.c:104
 msgid ""
 "Patches were supplied by the following people (list may be incomplete -- "
 "please contact me)\n"
 "\n"
 msgstr ""
 
-#: src/misc.c:99
+#: ../src/misc.c:106
 msgid "Ramesh Dharan: Multi-Edit (edit tags of several tracks in one run)\n"
 msgstr ""
 
-#: src/misc.c:101
+#: ../src/misc.c:108
 msgid "Hiroshi Kawashima: Japanese charset autodetecion feature\n"
 msgstr ""
 
-#: src/misc.c:103
+#: ../src/misc.c:110
 msgid "Adrian Ulrich: porting of playlist code from mktunes.pl to itunesdb.c\n"
 msgstr ""
 
-#: src/misc.c:105
+#: ../src/misc.c:112
 msgid ""
 "Walter Bell: correct handling of DND URIs with escaped characters and/or cr/"
 "newlines at the end\n"
 msgstr ""
 
-#: src/misc.c:107
+#: ../src/misc.c:114
 msgid "Sam Clegg: user defined filenames when exporting tracks from the iPod\n"
 msgstr ""
 
-#: src/misc.c:109
+#: ../src/misc.c:116
 msgid "Chris Cutler: automatic creation of various playlist types\n"
 msgstr ""
 
-#: src/misc.c:111
+#: ../src/misc.c:118
 msgid ""
 "Graeme Wilford: reading and writing of the 'Composer' ID3 tags, progress "
 "dialogue during sync\n"
 msgstr ""
 
-#: src/misc.c:113
+#: ../src/misc.c:120
 msgid ""
 "Edward Matteucci: debugging, special playlist creation, most of the volume "
 "normalizing code\n"
 msgstr ""
 
-#: src/misc.c:115
+#: ../src/misc.c:122
 msgid "Jens Lautenbach: some optical improvements\n"
 msgstr ""
 
-#: src/misc.c:117
+#: ../src/misc.c:124
 msgid "Alex Tribble: iPod eject patch\n"
 msgstr ""
 
-#: src/misc.c:119
+#: ../src/misc.c:126
 msgid "Yaroslav Halchenko: Orphaned and dangling tracks handling\n"
 msgstr ""
 
-#: src/misc.c:121
+#: ../src/misc.c:128
 msgid ""
 "Andrew Huntwork: Filename case sensitivity fix and various other bugfixes\n"
 msgstr ""
 
-#: src/misc.c:123
+#: ../src/misc.c:130
 msgid ""
 "Ero Carrera: Filename validation and quick sync when copying tracks from the "
 "iPod\n"
 msgstr ""
 
-#: src/misc.c:125
+#: ../src/misc.c:132
 msgid "Jens Taprogge: Support for LAME's replay gain tag to normalize volume\n"
 msgstr ""
 
-#: src/misc.c:127
+#: ../src/misc.c:134
 msgid "Armando Atienza: Support with external playcounts\n"
 msgstr ""
 
-#: src/misc.c:129
+#: ../src/misc.c:136
 msgid "D.L. Sharp: Support for m4b files (bookmarkable AAC files)\n"
 msgstr ""
 
-#: src/misc.c:131
+#: ../src/misc.c:138
 msgid "Jim Hall: Decent INSTALL file\n"
 msgstr ""
 
-#: src/misc.c:133
+#: ../src/misc.c:140
 msgid ""
 "Juergen Helmers, Markus Gaugusch: Conversion scripts to sync calendar/"
 "contacts to the iPod\n"
 msgstr ""
 
 #. J"urgen!
-#: src/misc.c:135
+#: ../src/misc.c:142
 msgid "Flavio Stanchina: bugfixes\n"
 msgstr ""
 
-#: src/misc.c:137
+#: ../src/misc.c:144
 msgid ""
 "Chris Micacchi: when sorting ignore 'the' and similar at the beginning of "
 "the title\n"
 msgstr ""
 
-#: src/misc.c:139
+#: ../src/misc.c:146
 msgid "Steve Jay: use statvfs() instead of df (better portability, faster)\n"
 msgstr ""
 
-#: src/misc.c:142
+#: ../src/misc.c:149
 msgid ""
 "Christoph Kunz: address compatibility issues when writing id3v2.4 type mp3 "
 "tags\n"
 msgstr ""
 
-#: src/misc.c:145
+#: ../src/misc.c:152
 msgid ""
 "James Liggett:\n"
 "     replacement of old GTK file selection dialogs with new GTK filechooser "
@@ -3561,135 +4013,149 @@
 "     refactored user preferences system.\n"
 msgstr ""
 
-#: src/misc.c:150
+#: ../src/misc.c:157
 msgid "Daniel Kercher: sync scripts for abook and webcalendar\n"
 msgstr ""
 
-#: src/misc.c:153
+#: ../src/misc.c:160
 msgid "Clinton Gormley: sync scripts for thunderbird\n"
 msgstr ""
 
-#: src/misc.c:156
+#: ../src/misc.c:163
 msgid "Sebastien Beridot: sync script for ldif addressbook format\n"
 msgstr ""
 
-#: src/misc.c:159
+#: ../src/misc.c:166
 msgid "Sebastian Scherer: sync script for kNotes\n"
 msgstr ""
 
-#: src/misc.c:162
+#: ../src/misc.c:169
 msgid "Nick Piper: sync script for Palm, type-ahead search\n"
 msgstr ""
 
-#: src/misc.c:165
+#: ../src/misc.c:172
 msgid "Uwe Hermann: help with support for iPod Video\n"
 msgstr ""
 
-#: src/misc.c:168
+#: ../src/misc.c:175
 msgid ""
 "Iain Benson: support for compilation tag in mp3 files and separate display "
 "of compilations in the sort tab.\n"
 msgstr ""
 
-#: src/misc.c:170
+#: ../src/misc.c:177
 msgid ""
 "Nicolas Chariot: icons of buttons\n"
 "\n"
 "\n"
 msgstr ""
 
-#: src/misc.c:174
+#: ../src/misc.c:181
 msgid "This program borrows code from the following projects:\n"
 msgstr ""
 
-#: src/misc.c:176
+#: ../src/misc.c:183
 msgid ""
 "    gnutools: (mktunes.pl, ported to C) reading and writing of iTunesDB "
 "(http://www.gnu.org/software/gnupod/)\n"
 msgstr ""
 
-#: src/misc.c:178
+#: ../src/misc.c:185
 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:180
+#: ../src/misc.c:187
 msgid "    mp3info:  mp3 playlength detection (http://ibiblio.org/mp3info/)\n"
 msgstr ""
 
-#: src/misc.c:182
+#: ../src/misc.c:189
 msgid ""
 "    xmms:     dirbrowser, mp3 playlength detection (http://www.xmms.org)\n"
 msgstr ""
 
-#: src/misc.c:185
+#: ../src/misc.c:192
 msgid ""
 "The GUI was created with the help of glade-2 (http://glade.gnome.org/).\n"
 msgstr ""
 
-#: src/misc.c:200
+#: ../src/misc.c:207
 msgid "French:   David Le Brun (david at dyn-ns dot net)\n"
 msgstr ""
 
-#: src/misc.c:202
+#: ../src/misc.c:209
 msgid "German:   Jorg Schuler (jcsjcs at users dot sourceforge dot net)\n"
 msgstr ""
 
-#: src/misc.c:204
+#: ../src/misc.c:211
 msgid "Hebrew: Assaf Gillat (gillata at gmail dot com)\n"
 msgstr ""
 
-#: src/misc.c:206
+#: ../src/misc.c:213
 msgid ""
 "Italian:  Edward Matteucci (edward_matteucc at users dot sourceforge dot "
 "net)\n"
 msgstr ""
 
-#: src/misc.c:208
+#: ../src/misc.c:215
 msgid "Japanese: Ayako Sano\n"
 msgstr ""
 
-#: src/misc.c:210
+#: ../src/misc.c:217
 msgid "Japanese: Kentaro Fukuchi (fukuchi at users dot sourceforge dot net)\n"
 msgstr ""
 
-#: src/misc.c:212
+#: ../src/misc.c:219
 msgid "Swedish: Stefan Asserhall (stefan asserhall at comhem dot se)\n"
 msgstr ""
 
-#: src/misc.c:936
+#: ../src/misc.c:975
 #, fuzzy, c-format
 msgid "Could not process '%s' (no filename available)"
 msgstr "¥Õ¥¡¥¤¥ë̾¤¬¤ï¤«¤ê¤Þ¤»¤ó"
 
-#: src/misc.c:1084
+#: ../src/misc.c:1129
 #, c-format
 msgid "Unknown token '%%%c' in template '%s'"
 msgstr "̤ÃΤΥȡ¼¥¯¥ó '%%%c' ¤¬¥Æ¥ó¥×¥ì¡¼¥È '%s' Ãæ¤Ë¤¢¤ê¤Þ¤¹"
 
-#: src/misc.c:1166
+#: ../src/misc.c:1212
 #, c-format
 msgid "Template ('%s') does not match file type '%s'\n"
 msgstr "¥Æ¥ó¥×¥ì¡¼¥È ('%s') ¤¬¥Õ¥¡¥¤¥ë·Á¼° '%s' ¤Ë¹ç¤¤¤Þ¤»¤ó¡£\n"
 
-#: src/misc.c:1247
+#: ../src/misc.c:1298
 #, c-format
 msgid "Error creating %s: %s\n"
 msgstr "'%s'¤ÎºîÀ®¤Ë¼ºÇÔ: %s\n"
 
-#. gint id,
-#. gboolean modal,
-#: src/misc_confirm.c:71
-msgid "Warning"
-msgstr "·Ù¹ð"
+#: ../src/misc.c:1777
+#, c-format
+msgid ""
+"Writing preferences file '%s' failed (%s).\n"
+"\n"
+msgstr ""
 
+#: ../src/misc.c:1779
+msgid "unspecified error"
+msgstr ""
+
+#: ../src/misc.c:1787
+#, c-format
+msgid ""
+"Writing preferences to the iPod (%s) failed: could not get path to Control "
+"Directory.\n"
+"\n"
+msgstr ""
+
 #. title
-#: src/misc_confirm.c:72
-msgid "The following has occured:"
+#: ../src/misc_confirm.c:71
+#, fuzzy
+msgid "The following has occurred:"
 msgstr "°Ê²¼¤ÎÌäÂ꤬ȯÀ¸¤·¤Þ¤·¤¿:"
 
-#: src/misc_confirm.c:123
+#: ../src/misc_confirm.c:122
 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 "
@@ -3701,16 +4167,13 @@
 msgstr[0] ""
 "°Ê²¼¤Î¶Ê¤ò iPod ¤«¤é´°Á´¤Ëºï½ü¤·¤Æ¤âËÜÅö¤Ë¤è¤í¤·¤¤¤Ç¤¹¤«? ³ç¸Ì¤ÎÃæ¤Î¿ô»ú¤Ï¡¢"
 "¤³¤Î¶Ê¤¬¤¤¤¯¤Ä¤Î¥×¥ì¥¤¥ê¥¹¥È¤ËÅÐÏ¿¤µ¤ì¤Æ¤¤¤ë¤«¤ò¼¨¤·¤Æ¤¤¤Þ¤¹¡£"
-msgstr[1] ""
-"°Ê²¼¤Î¶Ê¤ò iPod ¤«¤é´°Á´¤Ëºï½ü¤·¤Æ¤âËÜÅö¤Ë¤è¤í¤·¤¤¤Ç¤¹¤«? ³ç¸Ì¤ÎÃæ¤Î¿ô»ú¤Ï¡¢"
-"¤½¤ì¤¾¤ì¤Î¶Ê¤¬¤¤¤¯¤Ä¤Î¥×¥ì¥¤¥ê¥¹¥È¤ËÅÐÏ¿¤µ¤ì¤Æ¤¤¤ë¤«¤ò¼¨¤·¤Æ¤¤¤Þ¤¹¡£"
 
-#: src/misc_confirm.c:127
+#: ../src/misc_confirm.c:126
 msgid "Delete Track Completely from iPod?"
-msgid_plural "Delete Tracks Completey from iPod?"
+msgid_plural "Delete Tracks Completely from iPod?"
 msgstr[0] "iPod ¤«¤é´°Á´¤Ëºï½ü¤·¤Þ¤¹¤«?"
 
-#: src/misc_confirm.c:138 src/misc_confirm.c:179
+#: ../src/misc_confirm.c:137 ../src/misc_confirm.c:178
 #, c-format
 msgid ""
 "Are you sure you want to remove the following track from the playlist \"%s\"?"
@@ -3719,13 +4182,12 @@
 "\"?"
 msgstr[0] "°Ê²¼¤Î¶Ê¤ò¥×¥ì¥¤¥ê¥¹¥È \"%s\" ¤«¤éºï½ü¤·¤Æ¤â¤è¤í¤·¤¤¤Ç¤¹¤«?"
 
-#: src/misc_confirm.c:142 src/misc_confirm.c:183
+#: ../src/misc_confirm.c:141 ../src/misc_confirm.c:182
 msgid "Remove Track From Playlist?"
 msgid_plural "Remove Tracks From Playlist?"
-msgstr[0] "¤³¤Î¶Ê¤ò¥×¥ì¥¤¥ê¥¹¥È¤«¤éºï½ü¤·¤Þ¤¹¤«?"
-msgstr[1] "¤³¤ì¤é¤Î¶Ê¤ò¥×¥ì¥¤¥ê¥¹¥È¤«¤éºï½ü¤·¤Þ¤¹¤«?"
+msgstr[0] "¤³¤ì¤é¶Ê¤ò¥×¥ì¥¤¥ê¥¹¥È¤«¤éºï½ü¤·¤Þ¤¹¤«?"
 
-#: src/misc_confirm.c:164
+#: ../src/misc_confirm.c:163
 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 "
@@ -3737,17 +4199,13 @@
 msgstr[0] ""
 "°Ê²¼¤Î¶Ê¤ò¥Ï¡¼¥É¥Ç¥£¥¹¥¯¤«¤é´°Á´¤Ëºï½ü¤·¤Æ¤â¤è¤í¤·¤¤¤Ç¤¹¤«? ³ç¸Ì¤ÎÃæ¤Î¿ô»ú"
 "¤Ï¡¢¤³¤Î¶Ê¤¬¤¤¤¯¤Ä¤Î¥×¥ì¥¤¥ê¥¹¥È¤ËÅÐÏ¿¤µ¤ì¤Æ¤¤¤ë¤«¤ò¼¨¤·¤Æ¤¤¤Þ¤¹¡£"
-msgstr[1] ""
-"°Ê²¼¤Î¶Ê¤ò¥Ï¡¼¥É¥Ç¥£¥¹¥¯¤«¤é´°Á´¤Ëºï½ü¤·¤Æ¤â¤è¤í¤·¤¤¤Ç¤¹¤«? ³ç¸Ì¤ÎÃæ¤Î¿ô»ú"
-"¤Ï¡¢¤½¤ì¤¾¤ì¤Î¶Ê¤¬¤¤¤¯¤Ä¤Î¥×¥ì¥¤¥ê¥¹¥È¤ËÅÐÏ¿¤µ¤ì¤Æ¤¤¤ë¤«¤ò¼¨¤·¤Æ¤¤¤Þ¤¹¡£"
 
-#: src/misc_confirm.c:168
+#: ../src/misc_confirm.c:167
 msgid "Delete Track from Harddisk?"
 msgid_plural "Delete Tracks from Harddisk?"
-msgstr[0] "¤³¤Î¶Ê¤ò¥Ï¡¼¥É¥Ç¥£¥¹¥¯¤«¤éºï½ü¤·¤Þ¤¹¤«?"
-msgstr[1] "¤³¤ì¤é¤Î¶Ê¤ò¥Ï¡¼¥É¥Ç¥£¥¹¥¯¤«¤éºï½ü¤·¤Þ¤¹¤«?"
+msgstr[0] "¤³¤ì¤é¤Î¶Ê¤ò¥Ï¡¼¥É¥Ç¥£¥¹¥¯¤«¤éºï½ü¤·¤Þ¤¹¤«?"
 
-#: src/misc_confirm.c:193
+#: ../src/misc_confirm.c:192
 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 "
@@ -3758,90 +4216,82 @@
 "indicated in parentheses."
 msgstr[0] ""
 "°Ê²¼¤Î¶Ê¤ò¥í¡¼¥«¥ë¤Î¥Ç¡¼¥¿¥Ù¡¼¥¹¤«¤é´°Á´¤Ëºï½ü¤·¤Æ¤â¤è¤í¤·¤¤¤Ç¤¹¤«? ³ç¸Ì¤ÎÃæ"
-"¤Î¿ô»ú¤Ï¡¢¤³¤Î¶Ê¤¬¤¤¤¯¤Ä¤Î¥×¥ì¥¤¥ê¥¹¥È¤ËÅÐÏ¿¤µ¤ì¤Æ¤¤¤ë¤«¤ò¼¨¤·¤Æ¤¤¤Þ¤¹¡£"
-msgstr[1] ""
-"°Ê²¼¤Î¶Ê¤ò¥í¡¼¥«¥ë¤Î¥Ç¡¼¥¿¥Ù¡¼¥¹¤«¤é´°Á´¤Ëºï½ü¤·¤Æ¤â¤è¤í¤·¤¤¤Ç¤¹¤«? ³ç¸Ì¤ÎÃæ"
-"¤Î¿ô»ú¤Ï¡¢¤½¤ì¤¾¤ì¤Î¶Ê¤¬¤¤¤¯¤Ä¤Î¥×¥ì¥¤¥ê¥¹¥È¤ËÅÐÏ¿¤µ¤ì¤Æ¤¤¤ë¤«¤ò¼¨¤·¤Æ¤¤¤Þ"
-"¤¹¡£"
+"¤Î¿ô»ú¤Ï¡¢¤³¤ì¤é¤Î¶Ê¤¬¤¤¤¯¤Ä¤Î¥×¥ì¥¤¥ê¥¹¥È¤ËÅÐÏ¿¤µ¤ì¤Æ¤¤¤ë¤«¤ò¼¨¤·¤Æ¤¤¤Þ¤¹¡£"
 
-#: src/misc_confirm.c:197
+#: ../src/misc_confirm.c:196
 msgid "Remove Track from Local Database?"
 msgid_plural "Remove Tracks from Local Database?"
-msgstr[0] "¤³¤Î¶Ê¤ò¥í¡¼¥«¥ë¤Î¥Ç¡¼¥¿¥Ù¡¼¥¹¤«¤éºï½ü¤·¤Þ¤¹¤«?"
-msgstr[1] "¤³¤ì¤é¤Î¶Ê¤ò¥í¡¼¥«¥ë¤Î¥Ç¡¼¥¿¥Ù¡¼¥¹¤«¤éºï½ü¤·¤Þ¤¹¤«?"
+msgstr[0] "¤³¤ì¤é¤Î¶Ê¤ò¥í¡¼¥«¥ë¤Î¥Ç¡¼¥¿¥Ù¡¼¥¹¤«¤éºï½ü¤·¤Þ¤¹¤«?"
 
-#: src/misc_confirm.c:259
+#: ../src/misc_confirm.c:261
 #, 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¶Ê´°Á´¤Ëºï½ü¤·¤Þ¤·¤¿"
+msgstr[0] "iPod¤«¤é%d¶Ê´°Á´¤Ëºï½ü¤·¤Þ¤·¤¿"
 
-#: src/misc_confirm.c:265 src/misc_confirm.c:289
+#: ../src/misc_confirm.c:267 ../src/misc_confirm.c:291
 #, c-format
 msgid "Deleted %d track from playlist '%s'"
 msgid_plural "Deleted %d tracks from playlist '%s'"
 msgstr[0] "¥×¥ì¥¤¥ê¥¹¥È '%2$s' ¤«¤é %1$d ¶Êºï½ü¤·¤Þ¤·¤¿"
 
-#: src/misc_confirm.c:283
+#: ../src/misc_confirm.c:285
 #, c-format
 msgid "Deleted one track from harddisk"
 msgid_plural "Deleted %d tracks from harddisk"
-msgstr[0] "¥Ï¡¼¥É¥Ç¥£¥¹¥¯¤«¤é1¶Êºï½ü¤·¤Þ¤·¤¿"
-msgstr[1] "¥Ï¡¼¥É¥Ç¥£¥¹¥¯¤«¤é%d¶Êºï½ü¤·¤Þ¤·¤¿"
+msgstr[0] "¥Ï¡¼¥É¥Ç¥£¥¹¥¯¤«¤é%d¶Êºï½ü¤·¤Þ¤·¤¿"
 
-#: src/misc_confirm.c:295
+#: ../src/misc_confirm.c:297
 #, c-format
 msgid "Deleted track from local database"
 msgid_plural "Deleted %d tracks from local database"
-msgstr[0] "¥í¡¼¥«¥ë¥Ç¡¼¥¿¥Ù¡¼¥¹¤«¤é1¶Êºï½ü¤·¤Þ¤·¤¿"
-msgstr[1] "¥í¡¼¥«¥ë¥Ç¡¼¥¿¥Ù¡¼¥¹¤«¤é%d¶Êºï½ü¤·¤Þ¤·¤¿"
+msgstr[0] "¥í¡¼¥«¥ë¥Ç¡¼¥¿¥Ù¡¼¥¹¤«¤é%d¶Êºï½ü¤·¤Þ¤·¤¿"
 
-#: src/misc_confirm.c:438
+#: ../src/misc_confirm.c:442
 msgid "Cannot remove entry 'All'"
 msgstr "'¤¹¤Ù¤Æ' ¤Î¹àÌܤòºï½ü¤¹¤ë¤³¤È¤Ï¤Ç¤­¤Þ¤»¤ó"
 
-#: src/misc_confirm.c:532
+#: ../src/misc_confirm.c:536
 #, c-format
 msgid "Removed all %d tracks from the iPod"
 msgstr "Á´%d¶Ê¤ò iPod ¤«¤éºï½ü¤·¤Þ¤·¤¿"
 
-#: src/misc_confirm.c:537
+#: ../src/misc_confirm.c:541
 msgid "Removed all podcasts from the iPod"
 msgstr "¤¹¤Ù¤Æ¤Î Podcast ¤ò iPod ¤«¤éºï½ü¤·¤Þ¤·¤¿"
 
-#: src/misc_confirm.c:546 src/misc_confirm.c:620
+#: ../src/misc_confirm.c:550 ../src/misc_confirm.c:624
 #, c-format
 msgid "Deleted playlist '%s' including %d member track"
 msgid_plural "Deleted playlist '%s' including %d member tracks"
 msgstr[0] "¥×¥ì¥¤¥ê¥¹¥È '%s' (%d¶Ê) ¤òºï½ü¤·¤Þ¤·¤¿"
 
 #. first use playlist name
-#: src/misc_confirm.c:562 src/misc_confirm.c:636
+#: ../src/misc_confirm.c:566 ../src/misc_confirm.c:640
 #, c-format
 msgid "Deleted playlist '%s'"
 msgstr "¥×¥ì¥¤¥ê¥¹¥È '%s' ¤òºï½ü"
 
-#: src/misc_confirm.c:596
+#: ../src/misc_confirm.c:600
 #, 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¶Ê) ¤òºï½ü¤·¤Þ¤·¤¿"
 
-#: src/misc_confirm.c:613
+#: ../src/misc_confirm.c:617
 #, c-format
 msgid "Removed all %d tracks from the database"
 msgstr "¥Ç¡¼¥¿¥Ù¡¼¥¹¤«¤éÁ´%d¶Ê¤òºï½ü¤·¤Þ¤·¤¿"
 
-#: src/misc_confirm.c:691
+#: ../src/misc_confirm.c:695
 msgid "Are you sure you want to remove all tracks from your iPod?"
 msgstr "iPod ¤Î¤¹¤Ù¤Æ¤Î¶Ê¤òºï½ü¤·¤Æ¤âËÜÅö¤Ë¤è¤í¤·¤¤¤Ç¤¹¤«?"
 
-#: src/misc_confirm.c:696
+#: ../src/misc_confirm.c:700
 msgid "Are you sure you want to remove all podcasts from your iPod?"
 msgstr "¤¹¤Ù¤Æ¤Î Podcast ¤ò iPod ¤«¤éºï½ü¤·¤Æ¤âËÜÅö¤Ë¤è¤í¤·¤¤¤Ç¤¹¤«?"
 
-#: src/misc_confirm.c:704
+#: ../src/misc_confirm.c:708
 #, c-format
 msgid ""
 "Are you sure you want to delete playlist '%s' and the following track "
@@ -3856,12 +4306,12 @@
 "¤·¤¤¤Ç¤¹¤«? ³ç¸Ì¤ÎÃæ¤Î¿ô»ú¤Ï¡¢¤½¤ì¤¾¤ì¤Î¶Ê¤¬¤¤¤¯¤Ä¤Î¥×¥ì¥¤¥ê¥¹¥È¤ËÅÐÏ¿¤µ¤ì¤Æ"
 "¤¤¤ë¤«¤ò¼¨¤·¤Æ¤¤¤Þ¤¹¡£"
 
-#: src/misc_confirm.c:715 src/misc_confirm.c:770
+#: ../src/misc_confirm.c:719 ../src/misc_confirm.c:774
 #, c-format
 msgid "Are you sure you want to delete the playlist '%s'?"
 msgstr "¥×¥ì¥¤¥ê¥¹¥È '%s' ¤òËÜÅö¤Ëºï½ü¤·¤Æ¤â¤¤¤¤¤Ç¤¹¤«?"
 
-#: src/misc_confirm.c:741
+#: ../src/misc_confirm.c:745
 #, c-format
 msgid ""
 "Are you sure you want to delete playlist '%s' and remove the following track "
@@ -3876,11 +4326,11 @@
 "Åö¤Ë¤è¤í¤·¤¤¤Ç¤¹¤«? ³ç¸Ì¤ÎÃæ¤Î¿ô»ú¤Ï¡¢¤½¤ì¤¾¤ì¤Î¶Ê¤¬¤¤¤¯¤Ä¤Î¥×¥ì¥¤¥ê¥¹¥È¤ËÅÐ"
 "Ï¿¤µ¤ì¤Æ¤¤¤ë¤«¤ò¼¨¤·¤Æ¤¤¤Þ¤¹¡£"
 
-#: src/misc_confirm.c:749
+#: ../src/misc_confirm.c:753
 msgid "Are you sure you want to remove all tracks from the database?"
 msgstr "¥Ç¡¼¥¿¥Ù¡¼¥¹¤«¤é¤¹¤Ù¤Æ¤Î¶Ê¤òºï½ü¤·¤Æ¤âËÜÅö¤Ë¤è¤í¤·¤¤¤Ç¤¹¤«?"
 
-#: src/misc_confirm.c:758
+#: ../src/misc_confirm.c:762
 #, c-format
 msgid ""
 "Are you sure you want to delete playlist '%s' and remove the following track "
@@ -3895,7 +4345,7 @@
 "¤Ë¤è¤í¤·¤¤¤Ç¤¹¤«? ³ç¸Ì¤ÎÃæ¤Î¿ô»ú¤Ï¡¢¤½¤ì¤¾¤ì¤Î¶Ê¤¬¤¤¤¯¤Ä¤Î¥×¥ì¥¤¥ê¥¹¥È¤ËÅÐÏ¿"
 "¤µ¤ì¤Æ¤¤¤ë¤«¤ò¼¨¤·¤Æ¤¤¤Þ¤¹¡£"
 
-#: src/misc_confirm.c:859
+#: ../src/misc_confirm.c:841
 msgid ""
 "Data has been changed and not been saved.\n"
 "OK to exit gtkpod?"
@@ -3903,158 +4353,180 @@
 "Êѹ¹¤Î¤¢¤Ã¤¿¥Ç¡¼¥¿¤Ï¥»¡¼¥Ö¤µ¤ì¤Æ¤¤¤Þ¤»¤ó¡£\n"
 "ËÜÅö¤Ë½ªÎ»¤·¤Þ¤¹¤«?"
 
-#: src/misc_conversion.c:67
+#: ../src/misc_conversion.c:66
 msgid "File type"
 msgstr "¥Õ¥¡¥¤¥ë·Á¼°"
 
-#: src/misc_conversion.c:68
+#: ../src/misc_conversion.c:67
 msgid "PC File"
 msgstr "PC¥Õ¥¡¥¤¥ë"
 
-#: src/misc_conversion.c:69
+#: ../src/misc_conversion.c:68
 msgid "iPod File"
 msgstr "iPod ¥Õ¥¡¥¤¥ë"
 
-#: src/misc_conversion.c:70
+#: ../src/misc_conversion.c:69
 msgid "iPod ID"
 msgstr ""
 
 #. 10
-#: src/misc_conversion.c:71
+#: ../src/misc_conversion.c:70
 msgid "Track Nr (#)"
 msgstr "¥È¥é¥Ã¥¯No.(#)"
 
-#: src/misc_conversion.c:72
+#: ../src/misc_conversion.c:71
 msgid "Transferred"
 msgstr "žÁ÷ºÑ¤ß"
 
-#: src/misc_conversion.c:73
+#: ../src/misc_conversion.c:72
 msgid "File Size"
 msgstr "¥Õ¥¡¥¤¥ë¥µ¥¤¥º"
 
-#: src/misc_conversion.c:74
+#: ../src/misc_conversion.c:73
 msgid "Play Time"
 msgstr "±éÁÕ»þ´Ö"
 
 #. 20
-#: src/misc_conversion.c:81
+#: ../src/misc_conversion.c:80
 msgid "Date played"
 msgstr "ºÇ¸å¤Ë±éÁÕ¤·¤¿Æü"
 
-#: src/misc_conversion.c:83
+#: ../src/misc_conversion.c:82
 msgid "Volume"
 msgstr "²»ÎÌ"
 
-#: src/misc_conversion.c:84
+#: ../src/misc_conversion.c:83
 msgid "Soundcheck"
 msgstr "¥µ¥¦¥ó¥É¥Á¥§¥Ã¥¯"
 
 #. 25
-#: src/misc_conversion.c:86
+#: ../src/misc_conversion.c:85
 msgid "CD Nr"
 msgstr "CDÈÖ¹æ"
 
-#: src/misc_conversion.c:89
+#: ../src/misc_conversion.c:88
 msgid "Category"
 msgstr "¥«¥Æ¥´¥ê"
 
-#: src/misc_conversion.c:90
+#: ../src/misc_conversion.c:89
 msgid "Description"
 msgstr "ÀâÌÀ"
 
 #. 30
-#: src/misc_conversion.c:91
+#: ../src/misc_conversion.c:90
 msgid "Podcast URL"
 msgstr ""
 
-#: src/misc_conversion.c:92
+#: ../src/misc_conversion.c:91
 msgid "Podcast RSS"
 msgstr ""
 
-#: src/misc_conversion.c:93
+#: ../src/misc_conversion.c:92
 msgid "Subtitle"
 msgstr "¥µ¥Ö¥¿¥¤¥È¥ë"
 
-#: src/misc_conversion.c:94
+#: ../src/misc_conversion.c:93
 msgid "Date released"
 msgstr "¸ø³«Æü"
 
-#: src/misc_conversion.c:95
+#: ../src/misc_conversion.c:94
 msgid "Checked"
 msgstr "¥Á¥§¥Ã¥¯ºÑ¤ß"
 
 #. 35
-#: src/misc_conversion.c:96
+#: ../src/misc_conversion.c:95
 #, fuzzy
 msgid "Start time"
 msgstr "Á°²ó°Ê¹ß"
 
-#: src/misc_conversion.c:97
+#: ../src/misc_conversion.c:96
 #, fuzzy
 msgid "Stop time"
 msgstr "̾ȧ"
 
-#: src/misc_conversion.c:98
+#: ../src/misc_conversion.c:97
 msgid "Remember Playback Position"
 msgstr ""
 
-#: src/misc_conversion.c:99
+#: ../src/misc_conversion.c:98
 msgid "Skip when Shuffling"
 msgstr ""
 
-#: src/misc_conversion.c:100
+#: ../src/misc_conversion.c:99
 msgid "Artwork Path"
 msgstr ""
 
-#: src/misc_conversion.c:113
+#. 40
+#: ../src/misc_conversion.c:100
+msgid "Media Type"
+msgstr ""
+
+#: ../src/misc_conversion.c:102
+msgid "TV Episode"
+msgstr ""
+
+#: ../src/misc_conversion.c:103
+msgid "TV Network"
+msgstr ""
+
+#: ../src/misc_conversion.c:104
+msgid "Season Nr"
+msgstr ""
+
+#. 45
+#: ../src/misc_conversion.c:105
+msgid "Episode Nr"
+msgstr ""
+
+#: ../src/misc_conversion.c:118
 msgid "Name of file on PC, if available"
 msgstr "PC ¾å¤Ç¤Î¥Õ¥¡¥¤¥ë̾ (ÅÐÏ¿¤µ¤ì¤Æ¤¤¤ë¾ì¹ç)"
 
-#: src/misc_conversion.c:114
+#: ../src/misc_conversion.c:119
 msgid "Name of file on the iPod"
 msgstr "iPod ¾å¤Ç¤Î¥Õ¥¡¥¤¥ë̾"
 
 #. 10
-#: src/misc_conversion.c:116
+#: ../src/misc_conversion.c:121
 msgid "Track Nr. and total number of tracks on CD"
 msgstr "¶ÊÈֹ椪¤è¤Ó CD ¤ÎÁí¶Ê¿ô"
 
-#: src/misc_conversion.c:117
+#: ../src/misc_conversion.c:122
 msgid "Whether the file has already been transferred to the iPod or not"
 msgstr "¤³¤Î¥Õ¥¡¥¤¥ë¤¬ iPod ¤ËžÁ÷ºÑ¤ß¤«¤É¤¦¤«¤ò¼¨¤¹"
 
-#: src/misc_conversion.c:123
+#: ../src/misc_conversion.c:128
 msgid ""
 "Supposedly something that tells the iPod to increase or decrease the "
 "playback speed"
 msgstr "¤ª¤½¤é¤¯¡¢iPod ¤ËºÆÀ¸Â®ÅÙ¤ÎÊѹ¹¤òÅÁ¤¨¤ë¤¿¤á¤ÎÃÍ"
 
-#: src/misc_conversion.c:125
+#: ../src/misc_conversion.c:130
 msgid "Number of times the track has been played"
 msgstr "¶Ê¤¬±éÁÕ¤µ¤ì¤¿²ó¿ô"
 
-#: src/misc_conversion.c:126
+#: ../src/misc_conversion.c:131
 msgid "Star rating from 0 to 5"
 msgstr "ɾ²Á (0¤«¤é5)"
 
-#: src/misc_conversion.c:127
+#: ../src/misc_conversion.c:132
 msgid "Date and time track has been added"
 msgstr "ÅÐÏ¿¤µ¤ì¤¿¤È¤­¤ÎÆüÉդȻþ¹ï"
 
 #. 20
-#: src/misc_conversion.c:128
+#: ../src/misc_conversion.c:133
 msgid "Date and time track has last been played"
 msgstr "ºÇ¸å¤Ë±éÁÕ¤µ¤ì¤¿¤È¤­¤ÎÆüÉդȻþ¹ï"
 
-#: src/misc_conversion.c:129
+#: ../src/misc_conversion.c:134
 msgid "Date and time track has last been modified"
 msgstr "ºÇ¸å¤ËÊѹ¹¤µ¤ì¤¿¤È¤­¤ÎÆüÉդȻþ¹ï"
 
-#: src/misc_conversion.c:130
+#: ../src/misc_conversion.c:135
 msgid "Manual volume adjust"
 msgstr "²»Î̤ÎÄ´À°ÃÍ"
 
-#: src/misc_conversion.c:131
+#: ../src/misc_conversion.c:136
 msgid ""
 "Volume adjust in dB (replay gain) -- you need to activate 'soundcheck' on "
 "the iPod"
@@ -4063,82 +4535,83 @@
 "¤¢¤ê¤Þ¤¹"
 
 #. 25
-#: src/misc_conversion.c:134
+#: ../src/misc_conversion.c:139
 msgid "CD Nr. and total number of CDS in set"
 msgstr "CD ÈÖ¹æ¤È¡¢¥»¥Ã¥È¤Ë´Þ¤Þ¤ì¤ë CD ¤ÎÁíËç¿ô"
 
-#: src/misc_conversion.c:137
+#: ../src/misc_conversion.c:142
 msgid ""
 "The category (e.g. 'Technology' or 'Music') where the podcast was located."
 msgstr "Podcast ¤Î¥«¥Æ¥´¥ê (Îã: 'µ»½Ñ·Ï' ¤ä '²»³Ú')"
 
-#: src/misc_conversion.c:138
+#: ../src/misc_conversion.c:143
 msgid "Accessible by selecting the center button on the iPod."
 msgstr "iPod ¤Î¿¿Ãæ¤Î¥Ü¥¿¥ó¤ò²¡¤¹¤È¸«¤ë¤³¤È¤¬¤Ç¤­¤ë"
 
-#: src/misc_conversion.c:142
+#: ../src/misc_conversion.c:147
 msgid "Release date (for podcasts displayed next to the title on the iPod)"
 msgstr "¸ø³«Æü (Podcast ÍÑ¡£iPod ¾å¤Ç¥¿¥¤¥È¥ë¤Î²£¤Ëɽ¼¨¤µ¤ì¤ë)"
 
-#: src/misc_conversion.c:649
+#: ../src/misc_conversion.c:713
 #, c-format
 msgid "The URI '%s' is not an absolute URI using the file scheme"
 msgstr "»ØÄꤵ¤ì¤¿URI '%s' ¤Ï file ¥¹¥­¡¼¥à¤¬ÀßÄꤵ¤ì¤Æ¤¤¤Ê¤¤¡¢ÉÔ´°Á´¤ÊURI¤Ç¤¹"
 
-#: src/misc_conversion.c:659
+#: ../src/misc_conversion.c:723
 #, c-format
 msgid "The local file URI '%s' may not include a '#'"
 msgstr "¥í¡¼¥«¥ë¥Õ¥¡¥¤¥ë¤ò»Ø¤¹URI '%s' ¤Ë¤Ï '#' ¤Ï´Þ¤Þ¤ì¤Æ¤Ï¤Ê¤ê¤Þ¤»¤ó"
 
-#: src/misc_conversion.c:676
+#: ../src/misc_conversion.c:740
 #, c-format
 msgid "The URI '%s' is invalid"
 msgstr "»ØÄꤵ¤ì¤¿URI '%s' ¤ÏÉÔÀµ¤Ç¤¹"
 
-#: src/misc_conversion.c:688
+#: ../src/misc_conversion.c:752
 #, c-format
 msgid "The hostname of the URI '%s' is invalid"
 msgstr "»ØÄꤵ¤ì¤¿URI '%s' ¤Î¥Û¥¹¥È̾¤¬ÉÔÀµ¤Ç¤¹"
 
-#: src/misc_conversion.c:704
+#: ../src/misc_conversion.c:768
 #, 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:430
+#: ../src/misc_playlist.c:67 ../src/misc_playlist.c:94
+#: ../src/misc_playlist.c:429
 msgid "Please enter a name for the new playlist"
 msgstr "¿·¤·¤¤¥×¥ì¥¤¥ê¥¹¥È¤Î̾Á°¤òÆþÎϤ·¤Æ¤¯¤À¤µ¤¤"
 
-#: src/misc_playlist.c:155
+#: ../src/misc_playlist.c:154
 msgid "AR:"
 msgstr ""
 
-#: src/misc_playlist.c:158
+#: ../src/misc_playlist.c:157
 msgid "AL:"
 msgstr ""
 
-#: src/misc_playlist.c:161
+#: ../src/misc_playlist.c:160
 msgid "GE:"
 msgstr ""
 
-#: src/misc_playlist.c:164
+#: ../src/misc_playlist.c:163
 msgid "CO:"
 msgstr ""
 
-#: src/misc_playlist.c:167
+#: ../src/misc_playlist.c:166
 msgid "YE:"
 msgstr ""
 
-#: src/misc_playlist.c:195
+#: ../src/misc_playlist.c:194
 msgid "Unknown"
 msgstr "ÉÔÌÀ"
 
-#: src/misc_playlist.c:273
+#: ../src/misc_playlist.c:272
 #, c-format
 msgid "Random (%d)"
 msgstr "¥é¥ó¥À¥à (%d)"
 
-#: src/misc_playlist.c:298
+#: ../src/misc_playlist.c:297
 msgid ""
 "Auto Store of track view disabled.\n"
 "\n"
@@ -4146,79 +4619,79 @@
 "¶Ê½ç¤Î¼«Æ°Êݸ¤¬Ìµ¸ú¤Ë¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£\n"
 "\n"
 
-#: src/misc_playlist.c:357
+#: ../src/misc_playlist.c:356
 msgid "Not Listed"
 msgstr "¥ê¥¹¥È¤ËºÜ¤Ã¤Æ¤Ê¤¤¶Ê"
 
-#: src/misc_playlist.c:407
+#: ../src/misc_playlist.c:406
 #, 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:418
+#: ../src/misc_playlist.c:417
 msgid "No tracks available, playlist not created"
 msgstr "¶Ê¤¬¸«ÉÕ¤«¤é¤Ê¤¤¤Î¤Ç¡¢¥×¥ì¥¤¥ê¥¹¥È¤Ïºî¤ì¤Þ¤»¤ó"
 
-#: src/misc_playlist.c:544
+#: ../src/misc_playlist.c:543
 #, c-format
 msgid "Most Listened (%d)"
 msgstr "Îɤ¯Ä°¤¯¶Ê (%d)"
 
-#: src/misc_playlist.c:585
+#: ../src/misc_playlist.c:584
 msgid "Never Listened"
 msgstr "Ä°¤¤¤¿¤³¤È¤¬¤Ê¤¤¶Ê"
 
-#: src/misc_playlist.c:625
+#: ../src/misc_playlist.c:624
 #, c-format
 msgid "Best Rated (%d)"
 msgstr "ɾ²Á¤Î¹â¤¤¶Ê (%d)"
 
-#: src/misc_playlist.c:667
+#: ../src/misc_playlist.c:666
 msgid "Unrated tracks"
 msgstr "̤ɾ²Á¤Î¶Ê"
 
-#: src/misc_playlist.c:672
+#: ../src/misc_playlist.c:671
 #, c-format
 msgid "Rated %d"
 msgstr "ɾ²Á¤µ¤ì¤¿¶Ê (%d)"
 
-#: src/misc_playlist.c:715
+#: ../src/misc_playlist.c:714
 #, c-format
 msgid "Recent (%d)"
 msgstr "ºÇ¶áÄ°¤¤¤¿¶Ê (%d)"
 
-#: src/misc_playlist.c:754
+#: ../src/misc_playlist.c:753
 msgid "Last Time"
 msgstr "Á°²ó°Ê¹ß"
 
-#: src/misc_playlist.c:845
+#: ../src/misc_playlist.c:844
 msgid "Removal of dangling tracks with no files on PC was canceled."
 msgstr ""
 
-#: src/misc_playlist.c:855
+#: ../src/misc_playlist.c:854
 msgid "Handling of dangling tracks with files on PC was canceled."
 msgstr ""
 
-#: src/misc_playlist.c:883
+#: ../src/misc_playlist.c:882
 msgid "Dangling tracks with no files on PC were removed."
 msgstr ""
 
-#: src/misc_playlist.c:917
+#: ../src/misc_playlist.c:916
 #, c-format
 msgid "Processing '%s'"
 msgstr "'%s' ¤Î½èÍýÃæ"
 
-#: src/misc_playlist.c:941
+#: ../src/misc_playlist.c:943
 msgid "Dangling tracks with files on PC were handled."
 msgstr ""
 
-#: src/misc_playlist.c:974
+#: ../src/misc_playlist.c:976
 msgid "Track"
 msgstr "¶Ê"
 
-#: src/misc_playlist.c:1017
+#: ../src/misc_playlist.c:1019
 msgid ""
 "You did not import the existing iTunesDB. This is most likely incorrect and "
 "will result in the loss of the existing database.\n"
@@ -4228,19 +4701,19 @@
 "again.\n"
 msgstr ""
 
-#: src/misc_playlist.c:1031
+#: ../src/misc_playlist.c:1033
 msgid "Creating a tree of known files"
 msgstr ""
 
-#: src/misc_playlist.c:1075
+#: ../src/misc_playlist.c:1077
 msgid "Checking iPOD files against known files in DB"
 msgstr ""
 
-#: src/misc_playlist.c:1118
+#: ../src/misc_playlist.c:1120
 msgid "Orphaned"
 msgstr ""
 
-#: src/misc_playlist.c:1145
+#: ../src/misc_playlist.c:1147
 #, c-format
 msgid ""
 "The following orphaned file had already been added to the iPod again. It "
@@ -4249,12 +4722,12 @@
 "\n"
 msgstr ""
 
-#: src/misc_playlist.c:1173
+#: ../src/misc_playlist.c:1175
 #, c-format
 msgid "Found %d orphaned and %d dangling files. Processing..."
 msgstr ""
 
-#: src/misc_playlist.c:1197
+#: ../src/misc_playlist.c:1199
 #, c-format
 msgid ""
 "The following dangling track has a file on PC.\n"
@@ -4267,7 +4740,7 @@
 msgstr[0] ""
 msgstr[1] ""
 
-#: src/misc_playlist.c:1202
+#: ../src/misc_playlist.c:1204
 #, c-format
 msgid ""
 "The following dangling track doesn't have file on PC. \n"
@@ -4280,29 +4753,29 @@
 
 #. we want unique window for each
 #. gboolean modal,
-#: src/misc_playlist.c:1209
+#: ../src/misc_playlist.c:1211
 msgid "Dangling Tracks"
 msgstr ""
 
-#: src/misc_playlist.c:1232
+#: ../src/misc_playlist.c:1234
 #, 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:90 src/misc_track.c:364
+#: ../src/misc_track.c:89
 #, c-format
 msgid "Hashed %d of %d track."
 msgid_plural "Hashed %d of %d tracks."
 msgstr[0] "%2$d¶ÊÃæ %1$d¶Ê¤Î¥Ï¥Ã¥·¥å¤òÀ¸À®¤·¤Þ¤·¤¿¡£"
 
-#: src/misc_track.c:199
+#: ../src/misc_track.c:198
 #, 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:206
+#: ../src/misc_track.c:205
 #, c-format
 msgid ""
 "The following duplicate track has not been added to the master play list."
@@ -4313,66 +4786,77 @@
 
 #. gint id,
 #. gboolean modal,
-#: src/misc_track.c:213
+#: ../src/misc_track.c:212
 msgid "Duplicate detection"
 msgstr "½ÅÊ£¤Î¸¡½Ð"
 
-#: src/misc_track.c:904
+#: ../src/misc_track.c:1269
 msgid "Local Database"
 msgstr ""
 
 #. artwork is set
-#: src/misc_track.c:915
+#: ../src/misc_track.c:1280
 msgid "Embedded or filename was lost"
 msgstr ""
 
-#: src/misc_track.c:919
+#: ../src/misc_track.c:1284
 #, fuzzy
 msgid "Artwork not set"
 msgstr "¤¬ÀßÄꤵ¤ì¤Æ¤¤¤Ê¤¤"
 
-#: src/misc_track.c:1527
+#: ../src/misc_track.c:1737
+#, fuzzy, c-format
+msgid "Could not find source file for '%s'. Track not copied."
+msgstr "iPod ¾å¤Î '%s' ¤ËÁêÅö¤¹¤ë¥Õ¥¡¥¤¥ë¤¬¸«¤Ä¤«¤ê¤Þ¤»¤ó\n"
+
+#: ../src/misc_track.c:1973
 #, c-format
 msgid "drag and drop: ignored '%s'\n"
 msgstr "¥É¥é¥Ã¥°¥¢¥ó¥É¥É¥í¥Ã¥×: '%s'¤Ï̵»ë¤·¤Þ¤¹\n"
 
-#: src/mp3file.c:1276
+#: ../src/mp3file.c:1282
 #, fuzzy, c-format
 msgid "Error setting ID3 field: %s\n"
 msgstr "'%s'¤ÎºîÀ®¤Ë¼ºÇÔ: %s\n"
 
-#: src/mp3file.c:1300 src/mp3file.c:1373 src/mp3file.c:1522 src/mp3file.c:2160
+#: ../src/mp3file.c:1306 ../src/mp3file.c:1399 ../src/mp3file.c:1548
+#: ../src/mp3file.c:2186
 #, c-format
 msgid "ERROR while opening file: '%s' (%s).\n"
 msgstr "¥Õ¥¡¥¤¥ë '%s' ¤ò³«¤¯ºÝ¤Ë¥¨¥é¡¼¤¬È¯À¸¤·¤Þ¤·¤¿¡£ (%s)\n"
 
-#: src/mp3file.c:1593
+#: ../src/mp3file.c:1619
 #, fuzzy, c-format
 msgid "ERROR while writing tag to file: '%s' (%s).\n"
 msgstr "¥Õ¥¡¥¤¥ë '%s' ¤ò³«¤¯ºÝ¤Ë¥¨¥é¡¼¤¬È¯À¸¤·¤Þ¤·¤¿¡£ (%s)\n"
 
 #. Tracks with zero play length are ignored by iPod...
-#: src/mp3file.c:2326
+#: ../src/mp3file.c:2352
 #, c-format
 msgid "File \"%s\" has zero play length. Ignoring.\n"
 msgstr "¥Õ¥¡¥¤¥ë \"%s\" ¤ÏŤµ¤¬0¤Ê¤Î¤Ç̵»ë¤·¤Þ¤¹¡£\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"
+#: ../src/mp4file.c:227 ../src/mp4file.c:359
+#, fuzzy, c-format
+msgid "'%s' does not appear to be a mp4 audio or video file.\n"
 msgstr "'%s' ¤Ï mp4 ¥ª¡¼¥Ç¥£¥ª¥Õ¥¡¥¤¥ë¤È¤Ïǧ¼±¤Ç¤­¤Þ¤»¤ó¡£\n"
 
-#: src/mp4file.c:231 src/mp4file.c:352
+#: ../src/mp4file.c:237 ../src/mp4file.c:369
 #, c-format
 msgid "Could not open '%s' for reading, or file is not an mp4 file.\n"
 msgstr "'%s' ¤ÏÆɤ߹þ¤ß¤¬µö²Ä¤µ¤ì¤Æ¤¤¤Ê¤¤¤«¡¢mp4 ¥Õ¥¡¥¤¥ë¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó¡£\n"
 
-#: src/mp4file.c:472
+#: ../src/mp4file.c:478
 #, c-format
+msgid "'%s' does not appear to be a mp4 audio file.\n"
+msgstr "'%s' ¤Ï mp4 ¥ª¡¼¥Ç¥£¥ª¥Õ¥¡¥¤¥ë¤È¤Ïǧ¼±¤Ç¤­¤Þ¤»¤ó¡£\n"
+
+#: ../src/mp4file.c:489
+#, c-format
 msgid "Could not open '%s' for writing, or file is not an mp4 file.\n"
 msgstr "'%s' ¤Ï½ñ¤­¹þ¤ß¤¬µö²Ä¤µ¤ì¤Æ¤¤¤Ê¤¤¤«¡¢mp4 ¥Õ¥¡¥¤¥ë¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó¡£\n"
 
-#: src/mp4file.c:485
+#: ../src/mp4file.c:502
 #, fuzzy, c-format
 msgid ""
 "Import of '%s' failed: m4a/m4p/m4b not supported without the mp4v2 library. "
@@ -4381,7 +4865,7 @@
 "'%s'¤ÎÆɤ߹þ¤ß¤Ë¼ºÇÔ: m4a/m4p ¤Î¼è¤ê°·¤¤¤Ë¤Ï mp4v2 ¥é¥¤¥Ö¥é¥ê¤¬É¬ÍפǤ¹¡£"
 "mp4v2 ¥é¥¤¥Ö¥é¥ê¤ò»È¤Ã¤Æ gtkpod ¤òºÆÅÙ¥³¥ó¥Ñ¥¤¥ë¤·¤Æ¤¯¤À¤µ¤¤¡£\n"
 
-#: src/mp4file.c:491
+#: ../src/mp4file.c:508
 #, fuzzy, c-format
 msgid ""
 "m4a/m4p/m4b metadata update for '%s' failed: m4a/m4p/m4b not supported "
@@ -4392,7 +4876,7 @@
 "¥ê¤¬É¬ÍפǤ¹¡£mp4v2 ¥é¥¤¥Ö¥é¥ê¤ò»È¤Ã¤Æ gtkpod ¤òºÆÅÙ¥³¥ó¥Ñ¥¤¥ë¤·¤Æ¤¯¤À¤µ"
 "¤¤¡£\n"
 
-#: src/mp4file.c:497
+#: ../src/mp4file.c:514
 #, fuzzy, c-format
 msgid ""
 "m4a/m4p/m4b soundcheck update for '%s' failed: m4a/m4p/m4b not supported "
@@ -4403,159 +4887,216 @@
 "¥ê¤¬É¬ÍפǤ¹¡£mp4v2 ¥é¥¤¥Ö¥é¥ê¤ò»È¤Ã¤Æ gtkpod ¤òºÆÅÙ¥³¥ó¥Ñ¥¤¥ë¤·¤Æ¤¯¤À¤µ"
 "¤¤¡£\n"
 
-#: src/prefs.c:307
+#: ../src/oggfile.c:62 ../src/wavfile.c:107
 #, c-format
+msgid "Could not open '%s' for reading.\n"
+msgstr "¥Õ¥¡¥¤¥ë '%s' ¤òÆɤ߹þ¤â¤¦¤È¤·¤Þ¤·¤¿¤¬¡¢³«¤¯¤³¤È¤¬¤Ç¤­¤Þ¤»¤ó¡£\n"
+
+#: ../src/oggfile.c:73
+#, fuzzy, c-format
+msgid "'%s' does not appear to be an ogg audio file.\n"
+msgstr "'%s' ¤Ï mp4 ¥ª¡¼¥Ç¥£¥ª¥Õ¥¡¥¤¥ë¤È¤Ïǧ¼±¤Ç¤­¤Þ¤»¤ó¡£\n"
+
+#: ../src/oggfile.c:150
+#, fuzzy, c-format
+msgid ""
+"Import of '%s' failed: ogg not supported without the ogg library. You must "
+"compile the gtkpod source together with the ogg library.\n"
+msgstr ""
+"'%s'¤ÎÆɤ߹þ¤ß¤Ë¼ºÇÔ: m4a/m4p ¤Î¼è¤ê°·¤¤¤Ë¤Ï mp4v2 ¥é¥¤¥Ö¥é¥ê¤¬É¬ÍפǤ¹¡£"
+"mp4v2 ¥é¥¤¥Ö¥é¥ê¤ò»È¤Ã¤Æ gtkpod ¤òºÆÅÙ¥³¥ó¥Ñ¥¤¥ë¤·¤Æ¤¯¤À¤µ¤¤¡£\n"
+
+#: ../src/oggfile.c:156
+#, fuzzy, c-format
+msgid ""
+"ogg metadata update for '%s' failed: ogg not supported without the ogg "
+"library. You must compile the gtkpod source together with the ogg library.\n"
+msgstr ""
+"'%s' ¤Î m4a/m4p ¥á¥¿¥Ç¡¼¥¿¤Î¹¹¿·¤Ë¼ºÇÔ: m4a/m4p ¤Î¼è¤ê°·¤¤¤Ë¤Ï mp4v2 ¥é¥¤¥Ö¥é"
+"¥ê¤¬É¬ÍפǤ¹¡£mp4v2 ¥é¥¤¥Ö¥é¥ê¤ò»È¤Ã¤Æ gtkpod ¤òºÆÅÙ¥³¥ó¥Ñ¥¤¥ë¤·¤Æ¤¯¤À¤µ"
+"¤¤¡£\n"
+
+#: ../src/prefs.c:356
+#, c-format
 msgid "gtkpod version %s usage:\n"
 msgstr "gtkpod version %s »È¤¤Êý:\n"
 
-#: src/prefs.c:308
+#: ../src/prefs.c:357
 msgid "  -h, --help:   display this message\n"
 msgstr "  -h, --help:   ¤³¤Î¥Ø¥ë¥×¤òɽ¼¨¤·¤Þ¤¹\n"
 
-#: src/prefs.c:309
-msgid "  -p <filename>:increment playcount for file by one\n"
+#: ../src/prefs.c:358
+msgid "  -p <file>:    increment playcount for file by one\n"
 msgstr ""
 
-#: src/prefs.c:310
+#: ../src/prefs.c:359
+msgid "  --hash <file>:print gtkpod hash for file\n"
+msgstr ""
+
+#: ../src/prefs.c:360
 msgid "  -m path:      define the mountpoint of your iPod\n"
 msgstr "  -m path:      iPod¤Î¥Þ¥¦¥ó¥È¥Ý¥¤¥ó¥È¤ò»ØÄꤷ¤Þ¤¹\n"
 
-#: src/prefs.c:311
+#: ../src/prefs.c:361
 msgid "  --mountpoint: same as '-m'.\n"
 msgstr "  --mountpoint: '-m'¤ÈƱ¤¸\n"
 
-#: src/prefs.c:312
+#: ../src/prefs.c:362
 msgid "  -a:           import database automatically after start.\n"
 msgstr "  -a:           µ¯Æ°»þ¤Ë¥Ç¡¼¥¿¥Ù¡¼¥¹¤ò¼«Æ°Åª¤ËÆɤ߹þ¤ß¤Þ¤¹\n"
 
-#: src/prefs.c:313
+#: ../src/prefs.c:363
 msgid "  --auto:       same as '-a'.\n"
 msgstr "  --auto:       '-a'¤ÈƱ¤¸\n"
 
-#: src/prefs_window.c:119
+#: ../src/prefs.c:560
+#, c-format
+msgid "Couldn't create ~/.gtkpod\n"
+msgstr ""
+
+#: ../src/prefs_window.c:134
 msgid "Please select command for 'Play Now'"
 msgstr ""
 
-#: src/prefs_window.c:120
+#: ../src/prefs_window.c:135
 msgid "Please select command for 'Enqueue'"
 msgstr ""
 
-#: src/prefs_window.c:121
+#: ../src/prefs_window.c:136
 msgid "Please select the mp3gain executable"
 msgstr ""
 
-#: src/prefs_window.c:124
+#: ../src/prefs_window.c:137
+msgid "Please select the aacgain executable"
+msgstr ""
+
+#: ../src/prefs_window.c:138
 msgid "Select the mserv music root directory"
 msgstr ""
 
-#: src/prefs_window.c:125
+#: ../src/prefs_window.c:139
 msgid "Select the mserv trackinfo root directory"
 msgstr ""
 
-#: src/prefs_window.c:127
-msgid "Please select the aacgain executable"
+#: ../src/prefs_window.c:140
+msgid "Select the ogg/vorbis converter command"
 msgstr ""
 
-#: src/prefs_window.c:911 src/prefs_window.c:929
+#: ../src/prefs_window.c:141
+msgid "Select the flac converter command"
+msgstr ""
+
+#: ../src/prefs_window.c:142
+msgid "Select the m4a converter command."
+msgstr ""
+
+#: ../src/prefs_window.c:143
+msgid "Select the mp3 converter command."
+msgstr ""
+
+#: ../src/prefs_window.c:144
+msgid "Select the wav converter command."
+msgstr ""
+
+#: ../src/prefs_window.c:211 ../src/repository.c:662
+#, c-format
+msgid ""
+"<i>Have a look at the scripts provided in '%s'. If you write a new script or "
+"improve an existing one, please send it to jcsjcs at users.sourceforge.net "
+"for inclusion into the next release.</i>"
+msgstr ""
+
+#: ../src/prefs_window.c:986 ../src/prefs_window.c:1004
 msgid "Preferences not updated"
 msgstr "ÀßÄê¤Ï¹¹¿·¤µ¤ì¤Þ¤»¤ó"
 
-#: src/prefs_window.c:938
+#: ../src/prefs_window.c:1013
 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
+#: ../src/repository.c:573 ../src/repository.c:2395
 msgid "Set backup file"
 msgstr ""
 
-#: src/repository.c:615
+#: ../src/repository.c:612
 #, fuzzy
 msgid "Select directory for synchronization"
 msgstr "ºÆµ¢Åª¤ËÄɲ乤ë¥Ç¥£¥ì¥¯¥È¥ê¤òÁªÂò¤·¤Æ¤¯¤À¤µ¤¤"
 
-#: src/repository.c:641
+#: ../src/repository.c:638
 msgid "Please select command to sync contacts"
 msgstr ""
 
-#: src/repository.c:647
+#: ../src/repository.c:644
 msgid "Please select command to sync calendar"
 msgstr ""
 
-#: src/repository.c:653
+#: ../src/repository.c:650
 msgid "Please select command to sync notes"
 msgstr ""
 
-#: 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 ""
-
-#: src/repository.c:732
+#: ../src/repository.c:729
 #, fuzzy
 msgid "Smart playlist updated."
 msgstr "¥¹¥Þ¡¼¥È¥×¥ì¥¤¥ê¥¹¥È"
 
-#: src/repository.c:1193
+#: ../src/repository.c:1190
 #, fuzzy
 msgid "Podcasts Repository"
 msgstr "iPod¤«¤éºï½ü"
 
-#: src/repository.c:1197
+#: ../src/repository.c:1194
 #, fuzzy
 msgid "Local Repository"
 msgstr "iPod¤«¤éºï½ü"
 
-#: src/repository.c:1351
+#: ../src/repository.c:1348
 #, fuzzy
 msgid "Master Playlist"
 msgstr "...¥Þ¥¹¥¿¡¼¥×¥ì¥¤¥ê¥¹¥È"
 
-#: src/repository.c:1355
+#: ../src/repository.c:1352
 #, fuzzy
 msgid "Podcasts Playlist"
 msgstr "¥¹¥Þ¡¼¥È¥×¥ì¥¤¥ê¥¹¥È"
 
-#: src/repository.c:1363
+#: ../src/repository.c:1360
 #, fuzzy
 msgid "Regular Playlist"
 msgstr "¥¹¥Þ¡¼¥È¥×¥ì¥¤¥ê¥¹¥È"
 
-#: src/repository.c:2426
+#: ../src/repository.c:2423
 #, fuzzy
 msgid "Set local repository file"
 msgstr "iPod¤«¤éºï½ü"
 
-#: src/repository.c:2525
+#: ../src/repository.c:2522
 #, fuzzy
 msgid "New Repository"
 msgstr "iPod¤«¤éºï½ü"
 
-#: src/support.c:90 src/support.c:114
+#: ../src/sha1.c:186
+msgid "Hashed file is 0 bytes long\n"
+msgstr "¥Õ¥¡¥¤¥ë¤ÎÂ礭¤µ¤¬ 0 ¥Ð¥¤¥È¤Ç¤¹\n"
+
+#: ../src/sha1.c:239
 #, fuzzy, c-format
-msgid "Couldn't find pixmap file: %s"
-msgstr "¼¡¤Î¥Õ¥¡¥¤¥ë¤Î¥¿¥°¤òÊѹ¹¤Ç¤­¤Þ¤»¤ó: %s\n"
+msgid "Could not open '%s' to calculate SHA1 checksum: %s\n"
+msgstr "'%s' ¤ò³«¤±¤Ê¤¤¤¿¤á¡¢MD5 ¥Á¥§¥Ã¥¯¥µ¥à¤¬·×»»¤Ç¤­¤Þ¤»¤ó: %s\n"
 
-#: src/syncdir.c:237
+#: ../src/syncdir.c:237
 #, c-format
 msgid "Sync summary for %s/%s\n"
 msgstr ""
 
-#: src/syncdir.c:246
+#: ../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
+#: ../src/syncdir.c:255
 #, fuzzy
 msgid "The following track has been completely removed from the iPod:\n"
 msgid_plural ""
@@ -4563,93 +5104,93 @@
 msgstr[0] "°Ê²¼¤Î¶Ê¤ò¹¹¿·¤·¤Þ¤·¤¿"
 msgstr[1] "°Ê²¼¤Î%d¶Ê¤ò¹¹¿·¤·¤Þ¤·¤¿"
 
-#: src/syncdir.c:264
+#: ../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
+#: ../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
+#: ../src/syncdir.c:277
 msgid "Nothing was changed.\n"
 msgstr ""
 
-#: src/syncdir.c:282
+#: ../src/syncdir.c:282
 msgid "Sync summary"
 msgstr ""
 
-#: src/tools.c:119
+#: ../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"
+"Could not find '%s'.\n"
+"Please specifiy the exact path in the Tools section of the preference dialog "
+"or install the program if it is not installed on your system.\n"
 "\n"
 msgstr ""
 
-#: src/tools.c:204
+#: ../src/tools.c:204
 #, c-format
 msgid ""
 "Execution of '%s' failed.\n"
 "\n"
 msgstr ""
 
-#: src/tools.c:249
+#: ../src/tools.c:249
 #, c-format
 msgid ""
 "Did not normalize '%s'. Set mp3gain path in the Tools section of the "
 "preferences.\n"
 msgstr ""
 
-#: src/tools.c:259
+#: ../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:384
+#: ../src/tools.c:386
 msgid "Normalizing..."
 msgstr "Ê¿¶Ñ²½Ãæ..."
 
-#: src/tools.c:434
+#: ../src/tools.c:436
 #, c-format
 msgid "%s - %s"
 msgstr ""
 
-#: src/tools.c:460
+#: ../src/tools.c:462
 msgid "Aborting..."
 msgstr "Ãæ»ß½èÍýÃæ..."
 
-#: src/tools.c:464
+#: ../src/tools.c:466
 msgid "Will abort after current mp3gain process ends."
 msgstr "¸½ºß¼Â¹ÔÃæ¤Î mp3gain ¤¬½ªÎ»¼¡Âè¡¢½èÍý¤òÃæ»ß¤·¤Þ¤¹¡£"
 
-#: src/tools.c:490
+#: ../src/tools.c:492
 #, c-format
 msgid ""
 "'%s-%s' (%s) could not be normalized.\n"
 "\n"
 msgstr ""
 
-#: src/tools.c:529
+#: ../src/tools.c:531
 #, c-format
 msgid "Normalized %d of %d tracks."
 msgid_plural "Normalized %d of %d tracks."
 msgstr[0] "%2$d¶ÊÃæ %1$d¶Ê¤Î²»Î̤òÊ¿¶Ñ²½¤·¤Þ¤·¤¿¡£"
 
-#: src/tools.c:632
+#: ../src/tools.c:634
 msgid ""
 "Please specify the command to be called on the 'Tools' section of the "
 "preferences dialog.\n"
 msgstr ""
 
-#: src/tools.c:644
+#: ../src/tools.c:646
 #, c-format
 msgid ""
 "Could not find the command '%s'.\n"
@@ -4658,321 +5199,78 @@
 "\n"
 msgstr ""
 
-#: src/tools.c:685
+#: ../src/tools.c:687
 #, c-format
 msgid ""
 "'%s' returned the following output:\n"
 "%s\n"
 msgstr ""
 
-#: src/tools.c:752
+#: ../src/tools.c:754
 #, c-format
 msgid "No command set for '%s'"
 msgstr "'%s' ¤Î¤¿¤á¤Î¥³¥Þ¥ó¥É¤¬ÀßÄꤵ¤ì¤Æ¤¤¤Þ¤»¤ó"
 
-#: src/tools.c:772
+#: ../src/tools.c:774
 #, c-format
 msgid "Could not find command '%s' specified for '%s'"
 msgstr "'%s' ¤Î¤¿¤á¤Î¥³¥Þ¥ó¥É '%s' ¤¬¸«ÉÕ¤«¤ê¤Þ¤»¤ó"
 
-#: src/wavfile.c:107
+#: ../src/wavfile.c:181
 #, c-format
-msgid "Could not open '%s' for reading.\n"
-msgstr "¥Õ¥¡¥¤¥ë '%s' ¤òÆɤ߹þ¤â¤¦¤È¤·¤Þ¤·¤¿¤¬¡¢³«¤¯¤³¤È¤¬¤Ç¤­¤Þ¤»¤ó¡£\n"
-
-#: src/wavfile.c:181
-#, c-format
 msgid "%s does not appear to be a supported wav file.\n"
 msgstr ""
 
-#~ 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 ¤È¤¤¤¦¥¹¥¯¥ê¥×¥È¤ò»ÈÍѤ·"
-#~ "¤Æ¤¯¤À¤µ¤¤¡£"
+#~ msgid "<b>Import</b>"
+#~ msgstr "<b>¥¤¥ó¥Ý¡¼¥È</b>"
 
-#~ msgid "Handle mounting/unmounting of iPod drive"
-#~ msgstr "iPod¤Î¥Þ¥¦¥ó¥È/¥¢¥ó¥Þ¥¦¥ó¥È¤ò gtkpod ¤Ç¹Ô¤¦"
-
-#~ msgid "<b>Artwork</b>"
-#~ msgstr "<b>¥¢¡¼¥È¥ï¡¼¥¯</b>"
-
-#~ msgid "_Offline"
-#~ msgstr "¥ª¥Õ¥é¥¤¥ó(_O)"
-
 #, fuzzy
-#~ msgid "Edit Repository Properties"
-#~ msgstr "¥½¡¼¥È¤ÎÀßÄê"
+#~ msgid "Automatically import iTunesDBs on startup"
+#~ msgstr "µ¯Æ°»þ¤Ë¼«Æ°Åª¤Ë iTunesDB ¤òÆɤ߹þ¤à"
 
-#~ msgid "Currently no iPod database selected"
-#~ msgstr "iPod ¥Ç¡¼¥¿¥Ù¡¼¥¹¤¬ÁªÂò¤µ¤ì¤Æ¤¤¤Þ¤»¤ó"
-
-#~ msgid "No playlist selected."
-#~ msgstr "¥×¥ì¥¤¥ê¥¹¥È¤¬ÁªÂò¤µ¤ì¤Æ¤¤¤Þ¤»¤ó¡£"
-
-#~ msgid "Could not delete backup file: \"%s\"\n"
-#~ msgstr "¥Ð¥Ã¥¯¥¢¥Ã¥×¥Õ¥¡¥¤¥ë¤¬ºï½ü¤Ç¤­¤Þ¤»¤ó: \"%s\"\n"
-
-#~ msgid "No tracks selected."
-#~ msgstr "¶Ê¤¬ÁªÂò¤µ¤ì¤Æ¤¤¤Þ¤»¤ó¡£"
-
-#~ msgid "Problem creating iPod directory: '%s'."
-#~ msgstr "'%s' ¤Ë iPod ¤Î¥Ç¥£¥ì¥¯¥È¥ê¤òºîÀ®¤¹¤ëºÝ¤ËÌäÂ꤬ȯÀ¸¤·¤Þ¤·¤¿¡£"
-
-#~ msgid "Successfully created iPod directories in '%s'."
-#~ msgstr "'%s' ¤Ë iPod ¤Î¥Ç¥£¥ì¥¯¥È¥ê¤òºîÀ®¤·¤Þ¤·¤¿¡£"
-
-#~ msgid "Create iPod directories"
-#~ msgstr "iPod¤Î½é´üÀßÄê"
-
-#~ msgid "OK to create the following directories?"
-#~ msgstr "°Ê²¼¤Î¥Ç¥£¥ì¥¯¥È¥ê¤òºîÀ®¤·¤Æ¤â¤¤¤¤¤Ç¤¹¤«?"
-
-#~ 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 ¤è¤ê¥À¥¦¥ó¥í¡¼¥É¤·¤Æ¤¯¤À¤µ¤¤¡£"
-
-#~ 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"
-
-#~ msgid "  --offline:    same as '-o'.\n"
-#~ msgstr "  --offline:    '-o'¤ÈƱ¤¸\n"
-
-#~ msgid "Error while reading prefs: %s\n"
-#~ msgstr "ÀßÄê¥Õ¥¡¥¤¥ë¤Î°Ê²¼¤Î¹Ô¤Ë¸í¤ê¤¬¤¢¤ê¤Þ¤¹: %s\n"
-
-#~ msgid "Unable to open config file '%s' for reading\n"
-#~ msgstr "ÀßÄê¥Õ¥¡¥¤¥ë \"%s\" ¤ò³«¤±¤Þ¤»¤ó\n"
-
-#~ msgid "Unknown option: %s\n"
-#~ msgstr "ÉÔÌÀ¤Ê¥ª¥×¥·¥ç¥ó: %s\n"
-
-#~ msgid "Unable to open '%s' for writing\n"
-#~ msgstr "¥Õ¥¡¥¤¥ë \"%s\" ¤ò³«¤±¤Þ¤»¤ó\n"
-
-#~ msgid ""
-#~ " Preferences: Category nr (%d<%d?) or sorttab nr (%d<%d?) out of range.\n"
-#~ msgstr ""
-#~ " ÀßÄê: ¥«¥Æ¥´¥ê¡¼¤Î¿ô (%d<%d?) ¤«¡¢¥½¡¼¥È¥¿¥Ö¤Î¿ô (%d<%d?) ¤¬Â¿²á¤®¤Þ"
-#~ "¤¹¡£\n"
-
-#~ msgid "Unable to 'mkdir %s'\n"
-#~ msgstr "\"mkdir %s\" ¤ò¼Â¹Ô¤Ç¤­¤Þ¤»¤ó¤Ç¤·¤¿\n"
-
-#~ msgid "prefs_set_toolbar_style: illegal style '%d' ignored\n"
-#~ msgstr "prefs_set_toolbar_style: ÉÔÀµ¤Ê¥¹¥¿¥¤¥ë '%d' ¤Ï̵»ë¤µ¤ì¤Þ¤·¤¿\n"
-
-#~ msgid "prefs_set_pm_sort: illegal type '%d' ignored\n"
-#~ msgstr "prefs_set_pm_sort: ÉÔÀµ¤Ê·¿ '%d' ¤Ï̵»ë¤µ¤ì¤Þ¤·¤¿\n"
-
-#~ msgid "'%s': no arguments (%%...) allowed.\n"
-#~ msgstr "'%s': °ú¿ô (%%...) ¤Ï»È¤¨¤Þ¤»¤ó¡£\n"
-
-#~ msgid "'%s': only '%%[%s]' allowed.\n"
-#~ msgstr "'%s': '%%%s' ¤Ï°ì¤Ä¤Þ¤Ç¤·¤«»È¤¨¤Þ¤»¤ó¡£\n"
-
-#~ msgid "_Read iTunesDB"
-#~ msgstr "iTunesDB¤òÆɤ߹þ¤à(_R)"
-
-#~ msgid "Synchronize _iTunesDB"
-#~ msgstr "iTunesDB¤ò¹¹¿·¤¹¤ë(_i)"
-
-#~ msgid "Edit"
-#~ msgstr "ÊÔ½¸"
-
-#~ msgid "Read Existing Database from Disk/iPod"
-#~ msgstr "iPod¤Þ¤¿¤Ï¥Ç¥£¥¹¥¯¤«¤é¥Ç¡¼¥¿¥Ù¡¼¥¹¤òÆɤ߹þ¤ß¤Þ¤¹"
-
-#~ msgid "Read"
-#~ msgstr "Æɤ߹þ¤ß"
-
-#~ msgid "Write Changes to Disk/iPod"
-#~ msgstr "¤³¤ì¤Þ¤Ç¤ÎÊѹ¹ÅÀ¤òiPod¤Þ¤¿¤Ï¥Ç¥£¥¹¥¯¤Ë½ñ¤­¹þ¤ß¤Þ¤¹"
-
-#~ msgid "Sync"
-#~ msgstr "¹¹¿·"
-
 #, fuzzy
-#~ msgid "Update Tracks"
-#~ msgstr "̤ɾ²Á¤Î¶Ê"
+#~ msgid "Couldn't find pixmap file: %s"
+#~ msgstr "¼¡¤Î¥Õ¥¡¥¤¥ë¤Î¥¿¥°¤òÊѹ¹¤Ç¤­¤Þ¤»¤ó: %s\n"
 
-#~ msgid "Normalize"
-#~ msgstr "²»Î̤ÎÊ¿¶Ñ²½"
+#~ msgid "Stop Display Update"
+#~ msgstr "ɽ¼¨¤Î¹¹¿·¤ò»ß¤á¤ë"
 
-#~ msgid "Update Podcasts"
-#~ msgstr "Podcast ¤Î¹¹¿·"
+#~ msgid "Stop"
+#~ msgstr "̾ȧ"
 
-#~ msgid "Podcasts Preferences"
-#~ msgstr "Podcast ¤ÎÀßÄê"
-
-#~ msgid "file not found"
-#~ msgstr "¥Õ¥¡¥¤¥ë¤¬¸«¤Ä¤«¤ê¤Þ¤»¤ó"
-
-#~ msgid "Unmounting of '%s' (%s) unsuccessful."
-#~ msgstr "''%s' (%s) ¤Î¥¢¥ó¥Þ¥¦¥ó¥È¤Ë¼ºÇÔ¤·¤¿¤·¤¿¡£"
-
-#~ msgid "Unmounting of '%s' unsuccessful."
-#~ msgstr "''%s' ¤Î¥¢¥ó¥Þ¥¦¥ó¥È¤Ë¼ºÇÔ¤·¤¿¤·¤¿¡£"
-
-#~ msgid "Update"
-#~ msgstr "¹¹¿·"
-
-#~ msgid "Sync Dirs"
-#~ msgstr "¥Ç¥£¥ì¥¯¥È¥ê¤ÎƱ´ü"
-
-#~ msgid "Sync dirs of selected entry in which sort tab?"
-#~ msgstr "¤É¤Î¥½¡¼¥È¥¿¥Ö¤ÇÁªÂò¤µ¤ì¤¿¥Ç¥£¥ì¥¯¥È¥ê¤ò¹¹¿·¤·¤Þ¤¹¤«¡©"
-
-#~ msgid "Syncing directory '%s'"
-#~ msgstr "¥Ç¥£¥ì¥¯¥È¥ê '%s' ¤ÎƱ´ü½èÍýÃæ"
-
-#~ msgid "Syncing completed. No files deleted."
-#~ msgstr "Ʊ´ü½èÍý¤¬½ªÎ»¤·¤Þ¤·¤¿¡£ºï½ü¤µ¤ì¤¿¥Õ¥¡¥¤¥ë¤Ï¤¢¤ê¤Þ¤»¤ó¡£"
-
-#~ msgid "Never delete any files when syncing"
-#~ msgstr "Ʊ´ü½èÍý¤Ç¥Õ¥¡¥¤¥ë¤òºï½ü¤·¤Ê¤¤"
-
-#~ msgid "Syncing completed."
-#~ msgstr "Ʊ´ü½èÍý¤¬½ªÎ»¤·¤Þ¤·¤¿¡£"
-
-#~ msgid "Syncing aborted"
-#~ msgstr "Ʊ´ü½èÍý¤ÏÃæÃǤµ¤ì¤Þ¤·¤¿¡£"
-
-#~ msgid "No tracks in selection"
-#~ msgstr "¶Ê¤¬ÁªÂò¤µ¤ì¤Æ¤¤¤Þ¤»¤ó"
-
-#~ msgid "'%s' is not a directory. Ignored.\n"
-#~ msgstr "'%s' ¤Ï¥Ç¥£¥ì¥¯¥È¥ê¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó¡£Ìµ»ë¤·¤Þ¤¹¡£\n"
-
 #~ 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"
+#~ "Temporarily disable sorting when changing playlist\n"
+#~ "or tab entry (faster!)"
 #~ msgstr ""
-#~ "¥Ç¥£¥ì¥¯¥È¥ê̾¤¬µ­Ï¿¤µ¤ì¤Æ¤¤¤Þ¤»¤ó¡£¥Õ¥¡¥¤¥ë¤ò¥¤¥ó¥Ý¡¼¥È¤·¤¿»þ¤Ë¡¢ÀßÄê¥á"
-#~ "¥Ë¥å¡¼¤Î¡Ö¥¨¥¯¥¹¥Ý¡¼¥È¡×Íó¤ÎÃæ¤Ë¤¢¤ë¡¢¡Ö³ÈÄ¥¾ðÊó¤ò½ñ¤­¹þ¤à¡×¤È¤¤¤¦¹àÌܤò"
-#~ "¥Á¥§¥Ã¥¯¤·¤Æ¤ª¤¤¤Æ¤¯¤À¤µ¤¤¡£\n"
-#~ "\n"
-#~ "¥Ç¥£¥ì¥¯¥È¥ê¤ÎƱ´ü¤òº£¹Ô¤¦¤¿¤á¤Ë¤Ï¡¢ÀßÄê¥á¥Ë¥å¡¼¤Î¡Ö¥¤¥ó¥Ý¡¼¥È¡×Íó¤ÎÃæ¤Ë¤¢"
-#~ "¤ë¡¢¡Ö½ÅÊ£¤Î¸¡½Ð¡×¤ò¥ª¥ó¤Ë¤·¤Æ¡¢ºÆ¤ÓƱ´ü½èÍý¤ò¹Ô¤Ã¤Æ¤¯¤À¤µ¤¤¡£\n"
+#~ "¥×¥ì¥¤¥ê¥¹¥È¤ä¥½¡¼¥È¥¿¥Ö¤òÊѹ¹¤·¤¿»þ¤Î¼«Æ°Ê¤ٴ¹¤¨¤ò\n"
+#~ "ÍÞÀ©¤¹¤ë (Æ°ºî¤¬Â®¤¯¤Ê¤ë)"
 
-#~ msgid "No valid directories have been found. Sync aborted.\n"
-#~ msgstr "Àµ¤·¤¤¥Ç¥£¥ì¥¯¥È¥ê¤¬¸«ÉÕ¤«¤ê¤Þ¤»¤ó¡£Æ±´ü½èÍý¤òÃæ»ß¤·¤Þ¤¹¡£\n"
-
 #~ msgid ""
-#~ "The (former) contents of the following directories will be removed from "
-#~ "the database:\n"
-#~ "\n"
+#~ "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 ""
-#~ "°Ê²¼¤Î¥Ç¥£¥ì¥¯¥È¥ê¤Ë´Þ¤Þ¤ì¤ëÆâÍƤϡ¢¥Ç¡¼¥¿¥Ù¡¼¥¹¤«¤éºï½ü¤µ¤ì¤Þ¤¹:\n"
-#~ "\n"
+#~ "ÁªÂò¤òÊѹ¹¤·¤¿»þ¤Ë¡¢¶Ê¤Î¥ê¥¹¥È¤ò¹¹¿·¤·½ª¤ï¤ë¤Þ¤ÇÅÓÃæ·Ð²á¤òɽ¼¨¤·¤Þ¤»¤ó¡£¹¹"
+#~ "¿·¤Î¥¹¥Ô¡¼¥É¤Ï®¤¯¤Ê¤ê¤Þ¤¹¤¬¡¢¤½¤ì¤¬½ª¤ï¤ë¤Þ¤Ç¤Ï²¿¤â¤¹¤ë»ö¤¬¤Ç¤­¤Ê¤¯¤Ê¤ê¤Þ"
+#~ "¤¹¡£¤³¤ÎÀßÄê¤òÍ­¸ú¤Ë¤·¤¿¾ì¹ç¡¢Ê¤ٴ¹¤¨¤Ï°ì»þŪ¤Ë¤Ç¤­¤Ê¤¯¤Ê¤ê¤Þ¤¹ (¾å¤ÎÀßÄê"
+#~ "¤ò»²¾È)¡£"
 
 #~ msgid ""
-#~ "The following directories will be synchronized:\n"
-#~ "\n"
+#~ "Block display when changing playlist or tab\n"
+#~ " entry (faster!)"
 #~ msgstr ""
-#~ "°Ê²¼¤Î¥Ç¥£¥ì¥¯¥È¥ê¤òƱ´ü¤µ¤»¤Þ¤¹:\n"
-#~ "\n"
+#~ "¥×¥ì¥¤¥ê¥¹¥È¤ä¥½¡¼¥È¥¿¥Ö¤òÊѹ¹¤·¤¿»þ¤ËÅÓÃæ·Ð²á¤Î\n"
+#~ "ɽ¼¨¤òÍÞÀ©¤¹¤ë(Æ°ºî¤¬Â®¤¯¤Ê¤ë)"
 
-#~ msgid "Synchronize directories"
-#~ msgstr "¥Ç¥£¥ì¥¯¥È¥ê¤ÎƱ´ü"
+#~ msgid "deleting..."
+#~ msgstr "ºï½üÃæ..."
 
-#~ msgid "Syncing contacts, calendar and notes..."
-#~ msgstr "¥¢¥É¥ì¥¹Ä¢¡¦¥«¥ì¥ó¥À¡¼¡¦¥Î¡¼¥È¤ÎƱ´üÃæ..."
+#~ msgid "preparing to copy..."
+#~ msgstr "¥³¥Ô¡¼¤Î½àÈ÷Ãæ..."
 
-#~ msgid "_Synchronize Directories"
-#~ msgstr "¥Ç¥£¥ì¥¯¥È¥ê¤òƱ´ü¤µ¤»¤ë(_S)"
+#~ msgid "Copied %d of %d new track."
+#~ msgid_plural "Copied %d of %d new tracks."
+#~ msgstr[0] "%2$d¶ÊÃæ %1$d¶Ê¤ò¥³¥Ô¡¼¤·¤Þ¤·¤¿¡£"
 
-#~ msgid ""
-#~ "Where you mounted your iPod's filesystem. Usually '/mnt/ipod/' or similar."
-#~ msgstr ""
-#~ "iPod¤Î¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤ò¥Þ¥¦¥ó¥È¤·¤¿¾ì½ê¡£Î㤨¤Ð '/mnt/ipod/' ¤Ê¤É¡£"
-
-#~ 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 "Delete tracks that have been removed"
-#~ msgstr "Ʊ´ü¸µ¤Çºï½ü¤µ¤ì¤¿¶Ê¤ò¾Ãµî¤¹¤ë"
-
-#~ msgid "Confirm before removing tracks"
-#~ msgstr "¶Ê¤òºï½ü¤¹¤ëÁ°¤Ë³Îǧ¤¹¤ë"
-
-#~ msgid ""
-#~ "Before removing tracks completely when\n"
-#~ "synchronizing directories"
-#~ msgstr "¥Ç¥£¥ì¥¯¥È¥ê¤ÎƱ´ü¤ò¹Ô¤¦ºÝ¤Ë¶Ê¤òºï½ü¤¹¤ë»þ"
-
-#, fuzzy
-#~ msgid "Add"
-#~ msgstr "ÅÐÏ¿Æü"
-
-#, fuzzy
-#~ msgid "Delete"
-#~ msgstr "ºï½ü¤µ¤ì¤¿¶Ê"
-
-#, fuzzy
-#~ msgid "<b>File options</b>"
-#~ msgstr "<b>ºï½ü¤Î³Îǧ</b>"
-
-#, fuzzy
-#~ msgid " days old"
-#~ msgstr "Æü"
-
-#, fuzzy
-#~ msgid "Delete once copied to iPod"
-#~ msgstr "iPod¤«¤é1¶Ê´°Á´¤Ëºï½ü¤·¤Þ¤·¤¿"
-
-#, fuzzy
-#~ msgid "Create podcast logfile at:"
-#~ msgstr "¥×¥ì¥¤¥ê¥¹¥È¤òºîÀ®"
-
-#, fuzzy
-#~ msgid "<b>iPod options</b>"
-#~ msgstr "<b>¥Ä¡¼¥ë¥Á¥Ã¥×</b>"
-
-#, fuzzy
-#~ msgid "Automatically sync to iPod"
-#~ msgstr "¼«Æ°Åª¤ËÁªÂò..."
-
-#, fuzzy
-#~ msgid "Delete from iPod when "
-#~ msgstr "iPod¤«¤éºï½ü"
-
-#, fuzzy
-#~ msgid "Delete from iPod if podcast has been played"
-#~ msgstr "ºÇ¸å¤Ë±éÁÕ¤µ¤ì¤¿¤È¤­¤ÎÆüÉդȻþ¹ï"
-
-#, fuzzy
-#~ msgid "Abort selected"
-#~ msgstr "¶Ê¤¬ÁªÂò¤µ¤ì¤Æ¤¤¤Þ¤»¤ó"
+#~ msgid "Some tracks were not written to iPod. Export aborted!"
+#~ msgstr "°ìÉô¤Î¶Ê¤òiPod¤ËžÁ÷¤Ç¤­¤Þ¤»¤ó¤Ç¤·¤¿¡£¥¨¥¯¥¹¥Ý¡¼¥È¤òÃæ»ß¤·¤Þ¤¹!"

Deleted: gtkpod/trunk/po/sv.gmo
===================================================================
(Binary files differ)

Modified: gtkpod/trunk/po/sv.po
===================================================================
--- gtkpod/trunk/po/sv.po	2007-06-27 20:59:02 UTC (rev 193)
+++ gtkpod/trunk/po/sv.po	2007-06-27 21:27:12 UTC (rev 194)
@@ -6,759 +6,792 @@
 msgstr ""
 "Project-Id-Version: sv\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2006-09-24 23:08+0900\n"
-"PO-Revision-Date: 2006-05-25 17:17+0200\n"
+"POT-Creation-Date: 2007-06-14 22:57+0900\n"
+"PO-Revision-Date: 2006-09-25 21:47+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.2\n"
+"X-Generator: KBabel 1.11.4\n"
 
-#: gtkpod.glade:7
-msgid "gtkpod"
+#: ../data/gtkpod.desktop.in.h:1
+#, fuzzy
+msgid "GtkPod"
 msgstr "gtkpod"
 
-#: gtkpod.glade:40
-msgid "_File"
-msgstr "_Arkiv"
+#: ../data/gtkpod.desktop.in.h:2
+msgid "Manage music and video on an Apple iPod"
+msgstr ""
 
-#: gtkpod.glade:49
-msgid "_Load iPod(s)"
-msgstr "_Ladda iPod"
+#: ../data/gtkpod.desktop.in.h:3
+msgid "iPod Manager"
+msgstr ""
 
-#: gtkpod.glade:69
-msgid "_Save Changes"
-msgstr "_Spara ändringar"
+#: ../data/gtkpod.glade.h:1
+msgid " "
+msgstr " "
 
-#: gtkpod.glade:90
-msgid "Add _Files"
-msgstr "Lägg till _filer"
+#: ../data/gtkpod.glade.h:2
+msgid "    "
+msgstr "    "
 
-#: gtkpod.glade:111
-msgid "Add _Directory"
-msgstr "Lägg till _katalog"
+#: ../data/gtkpod.glade.h:3
+msgid "     "
+msgstr "     "
 
-#: gtkpod.glade:132
-msgid "Add _Playlist"
-msgstr "Lägg till _spellista"
+#: ../data/gtkpod.glade.h:4
+msgid "      "
+msgstr "      "
 
-#: gtkpod.glade:159
-msgid "_Update Tracks from File"
-msgstr "_Uppdatera spår från fil"
+#: ../data/gtkpod.glade.h:5
+msgid "   Sort by:"
+msgstr "   Sortera enligt:"
 
-#: 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"
+#: ../data/gtkpod.glade.h:6
+msgid " <= cts <= "
+msgstr " <= antal <= "
 
-#: 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"
+#: ../data/gtkpod.glade.h:7
+msgid " Logic: "
+msgstr " Logiskt: "
 
-#: 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"
+#: ../data/gtkpod.glade.h:9
+#, no-c-format
+msgid "%A"
+msgstr "%A"
 
-#: gtkpod.glade:211
-msgid "Update _mserv Data from File"
-msgstr "Uppdatera _mserv data från fil"
+#: ../data/gtkpod.glade.h:10
+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:263
-msgid "_Synchronize Playlist"
-msgstr "_Synkronisera spellista"
+#: ../data/gtkpod.glade.h:11
+msgid "'aacgain' executable:"
+msgstr "Körbart program 'aacgain':"
 
-#: gtkpod.glade:290
-msgid "_Export Tracks from Database"
-msgstr "_Exportera spår från databasen"
+#: ../data/gtkpod.glade.h:12
+msgid "'mp3gain' executable:"
+msgstr "Körbart program 'mp3gain':"
 
-#: gtkpod.glade:342
-msgid "Create _Playlist File"
-msgstr "Skapa sp_ellistefil"
+#: ../data/gtkpod.glade.h:13
+msgid "(Checked)"
+msgstr "(Kontrollerad)"
 
-#: gtkpod.glade:400
-msgid "_Create iPod's Directories"
-msgstr "Skapa iPod-ka_taloger"
+#: ../data/gtkpod.glade.h:14
+msgid "...as icons"
+msgstr "...som ikoner"
 
-#: 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)"
+#: ../data/gtkpod.glade.h:15
+msgid "...as text"
+msgstr "...som text"
 
-#: gtkpod.glade:422
-msgid "_Check iPod's Files"
-msgstr "K_ontrollera iPod-filer"
+#: ../data/gtkpod.glade.h:16
+msgid "...both as icons and text"
+msgstr "...både som ikoner och text"
 
-#: gtkpod.glade:450 gtkpod.glade:12687
-msgid "_Edit"
-msgstr "_Redigera"
+#: ../data/gtkpod.glade.h:17
+msgid "...entry 'All' in sort tab..."
+msgstr "...raden 'Alla' i sorteringsflikar"
 
-#: gtkpod.glade:459 src/context_menus.c:480
-msgid "Edit Track Details"
-msgstr "Redigera detaljinformation om spår"
+#: ../data/gtkpod.glade.h:18
+msgid "...master playlist"
+msgstr "...huvudspellista"
 
-#: gtkpod.glade:480
-msgid "Tracks in Selected _Playlist"
-msgstr "Spår i markerad _spellista"
+#: ../data/gtkpod.glade.h:20
+#, no-c-format
+msgid "../%A.jpg"
+msgstr "../%A.jpg"
 
-#: gtkpod.glade:489
-msgid "Tracks in Selected Tab _Entry"
-msgstr "Spår i markerad _flikrad"
+#: ../data/gtkpod.glade.h:21
+msgid "0"
+msgstr "0"
 
-#: gtkpod.glade:511 src/context_menus.c:407
-msgid "Edit Smart Playlist"
-msgstr "Redigera smart spellista"
+#: ../data/gtkpod.glade.h:22
+msgid "1"
+msgstr "1"
 
-#: gtkpod.glade:520
-msgid "_Delete"
-msgstr "_Ta bort"
+#: ../data/gtkpod.glade.h:23
+msgid "2"
+msgstr "2"
 
-#: gtkpod.glade:541
-msgid "Selected playlist"
-msgstr "Markerade spellista"
+#: ../data/gtkpod.glade.h:24
+msgid "3"
+msgstr "3"
 
-#: gtkpod.glade:550
-msgid "Selected playlist including tracks from iPod"
-msgstr "Markerade spellistan som innehåller spår från iPod"
+#: ../data/gtkpod.glade.h:25
+msgid "4"
+msgstr "4"
 
-#: gtkpod.glade:559
-msgid "Selected playlist including tracks from database"
-msgstr "Markerade spellistan som innehåller spår från databasen"
+#: ../data/gtkpod.glade.h:26
+msgid "5"
+msgstr "5"
 
-#: gtkpod.glade:568
-msgid "Selected playlist including tracks from harddisk"
-msgstr "Markerade spellistan som innehåller spår från hårddisken"
+#: ../data/gtkpod.glade.h:27
+msgid ":"
+msgstr ":"
 
-#: gtkpod.glade:583
-msgid "Selected filter tab entry from playlist"
-msgstr "Markerade filterflikrad från spellistan"
+#: ../data/gtkpod.glade.h:28
+msgid "<"
+msgstr ""
 
-#: gtkpod.glade:592
-msgid "Selected filter tab entry from iPod"
-msgstr "Markerade filterflikrad från iPod"
+#: ../data/gtkpod.glade.h:29
+#, fuzzy
+msgid "<b>Account Information</b>"
+msgstr "<b>Bekräfta borttagning</b>"
 
-#: gtkpod.glade:601
-msgid "Selected filter tab entry from database"
-msgstr "Markerade filterflikrad från databasen"
+#: ../data/gtkpod.glade.h:30
+msgid "<b>Adding/Updating/Syncing</b>"
+msgstr "<b>Tillägg, uppdatering, synkronisering</b>"
 
-#: gtkpod.glade:610
-msgid "Selected filter tab entry from harddisk"
-msgstr "Markerade filterflikrad från hårddisken"
+#: ../data/gtkpod.glade.h:31
+#, fuzzy
+msgid "<b>Audioscrobbler</b>"
+msgstr "<b>Verktygsrad</b>"
 
-#: gtkpod.glade:625
-msgid "Selected tracks from playlist"
-msgstr "Markerade spår från spellistan"
+#: ../data/gtkpod.glade.h:32
+msgid "<b>Auto-Generated Playlists</b>"
+msgstr "<b>Automatiskt skapade spellistor</b>"
 
-#: gtkpod.glade:634
-msgid "Selected tracks from iPod"
-msgstr "Markerade spår från iPod"
+#: ../data/gtkpod.glade.h:33
+msgid "<b>Automatically select...</b>"
+msgstr "<b>Välj automatiskt...</b>"
 
-#: gtkpod.glade:643
-msgid "Selected tracks from database"
-msgstr "Markerade spår från databasen"
+#: ../data/gtkpod.glade.h:34
+msgid "<b>Calendar/Contacts/Notes</b>"
+msgstr "<b>Kalender, kontakter och anteckningar</b>"
 
-#: gtkpod.glade:652
-msgid "Selected tracks from harddisk"
-msgstr "Markerade spår från hårddisken"
+#: ../data/gtkpod.glade.h:35
+msgid "<b>Coverart</b>"
+msgstr "<b>Omslag</b>"
 
-#: gtkpod.glade:671
-msgid "_Create Playlists"
-msgstr "_Skapa spellistor"
+#: ../data/gtkpod.glade.h:36
+msgid "<b>Delete Confirmation</b>"
+msgstr "<b>Bekräfta borttagning</b>"
 
-#: gtkpod.glade:692
-msgid "Empty Playlist"
-msgstr "Tom spellista"
+#: ../data/gtkpod.glade.h:37
+msgid "<b>Displayed Track Attributes</b>"
+msgstr "<b>Visade spåregenskaper</b>"
 
-#: gtkpod.glade:701 gtkpod.glade:7379 src/misc_playlist.c:97
-#: src/repository.c:1359
-msgid "Smart Playlist"
-msgstr "Smart spellista"
+#: ../data/gtkpod.glade.h:38
+msgid "<b>Examples</b>"
+msgstr "<b>Exempel</b>"
 
-#: gtkpod.glade:716
-msgid "Random Playlist from Displayed Tracks"
-msgstr "Slumpmässig spellista från visade spår"
+#: ../data/gtkpod.glade.h:39
+msgid "<b>Ignore Frequent Words</b>"
+msgstr "<b>Ignorera vanliga ord</b>"
 
-#: gtkpod.glade:725
-msgid "Containing Displayed Tracks"
-msgstr "Som innehåller visade spår"
+#: ../data/gtkpod.glade.h:40
+msgid "<b>Misc</b>"
+msgstr "<b>Diverse</b>"
 
-#: gtkpod.glade:734
-msgid "Containing Selected Tracks"
-msgstr "Som innehåller markerade spår"
+#: ../data/gtkpod.glade.h:41
+msgid "<b>Mountpoint and individual repository/playlist options</b>"
+msgstr "<b>Alternativ för monteringspunkt, enskilda arkiv och spellistor</b>"
 
-#: gtkpod.glade:743
-msgid "One for each Artist"
-msgstr "En för varje artist"
+#: ../data/gtkpod.glade.h:42
+#, fuzzy
+msgid "<b>On-the-fly Conversion</b>"
+msgstr "<b>Bekräfta borttagning</b>"
 
-#: gtkpod.glade:752
-msgid "One for each Album"
-msgstr "En för varje album"
+#: ../data/gtkpod.glade.h:43
+msgid "<b>Play</b>"
+msgstr "<b>Spela</b>"
 
-#: gtkpod.glade:761
-msgid "One for each Genre"
-msgstr "En för varje genre"
+#: ../data/gtkpod.glade.h:44
+msgid "<b>Playlists</b>"
+msgstr "<b>Spellistor</b>"
 
-#: gtkpod.glade:770
-msgid "One for each Composer"
-msgstr "En för varje kompositör"
+#: ../data/gtkpod.glade.h:45
+msgid "<b>Please select mountpoint and your iPod model</b>"
+msgstr "<b>Välj monteringsplats och iPod-modell</b>"
 
-#: gtkpod.glade:779
-msgid "One for each Year"
-msgstr "En för varje år"
+#: ../data/gtkpod.glade.h:46
+msgid "<b>Repositories</b>"
+msgstr "<b>Arkiv</b>"
 
-#: gtkpod.glade:788
-msgid "One for each Rating"
-msgstr "En för varje betyg"
+#: ../data/gtkpod.glade.h:47
+msgid "<b>Sort Order</b>"
+msgstr "<b>Sorteringsordning</b>"
 
-#: gtkpod.glade:797
-msgid "Best Rated Tracks"
-msgstr "Spår med bäst betyg"
+#: ../data/gtkpod.glade.h:48
+msgid "<b>Sort Tabs</b>"
+msgstr "<b>Sorteringsflikar</b>"
 
-#: gtkpod.glade:806
-msgid "Tracks Most Often Listened To"
-msgstr "Spår som oftast lyssnats på"
+#: ../data/gtkpod.glade.h:49
+msgid "<b>Sync</b>"
+msgstr "<b>Synkronisera</b>"
 
-#: gtkpod.glade:815
-msgid "Most Recently Played Tracks"
-msgstr "Spår som nyligen spelats"
+#: ../data/gtkpod.glade.h:50
+msgid "<b>Synchronization</b>"
+msgstr "<b>Synkronisering</b>"
 
-#: gtkpod.glade:824
-msgid "All Tracks Played Since Last Time"
-msgstr "Alla spår som spelats sedan sist"
+#: ../data/gtkpod.glade.h:51
+msgid "<b>Tag Reading</b>"
+msgstr "<b>Taggläsning</b>"
 
-#: gtkpod.glade:833
-msgid "All Tracks Never Listened To"
-msgstr "Alla spår som aldrig lyssnats på"
+#: ../data/gtkpod.glade.h:52
+msgid "<b>Toolbar</b>"
+msgstr "<b>Verktygsrad</b>"
 
-#: gtkpod.glade:842
-msgid "All Tracks not Listed in any Playlist"
-msgstr "Alla spår som inte finns i någon spellista"
+#: ../data/gtkpod.glade.h:53
+msgid "<b>Tooltips</b>"
+msgstr "<b>Verktygstips</b>"
 
-#: gtkpod.glade:861
-msgid "_Sorting"
-msgstr "S_ortera"
+#: ../data/gtkpod.glade.h:54
+msgid "<b>Track Editing</b>"
+msgstr "<b>Spårredigering</b>"
 
-#: gtkpod.glade:883
-msgid "Randomize Current Playlist"
-msgstr "Gör nuvarande spellista slumpmässig"
+#: ../data/gtkpod.glade.h:55
+msgid "<b>Volume Normalization</b>"
+msgstr "<b>Normalisering av volym</b>"
 
-#: gtkpod.glade:892
-msgid "_Save Displayed Track Order"
-msgstr "Spara _visad spårordning"
+#: ../data/gtkpod.glade.h:56
+msgid "<b>mserv</b>"
+msgstr "<b>mServ</b>"
 
-#: gtkpod.glade:920
-msgid "Edit Repository/iPod Options"
-msgstr "Redigera arkiv- och iPodalternativ"
+#: ../data/gtkpod.glade.h:57
+msgid ">"
+msgstr ""
 
-#: gtkpod.glade:941
-msgid "Edit _Preferences"
-msgstr "Redigera in_ställningar"
+#: ../data/gtkpod.glade.h:58
+msgid "About gtkpod"
+msgstr "Om gtkpod"
 
-#: gtkpod.glade:967
-msgid "_View"
-msgstr "_Visa"
+#: ../data/gtkpod.glade.h:59
+msgid "Add Directories Recursively"
+msgstr "Lägg till kataloger rekursivt"
 
-#: gtkpod.glade:976
-msgid "_Toolbar"
-msgstr "_Verktygsrad"
+#: ../data/gtkpod.glade.h:60
+msgid "Add Files or Directories"
+msgstr "Lägg till filer eller kataloger"
 
-#: gtkpod.glade:986
-msgid "_Tooltips"
-msgstr "Verktygs_tips"
+#: ../data/gtkpod.glade.h:61
+msgid "Add _Directory"
+msgstr "Lägg till _katalog"
 
-#: gtkpod.glade:996
-msgid "_Info Window"
-msgstr "_Informationsfönster"
+#: ../data/gtkpod.glade.h:62
+msgid "Add _Files"
+msgstr "Lägg till _filer"
 
-#: gtkpod.glade:1007
-msgid "_More Sort Tabs"
-msgstr "_Fler sorteringsflikar"
+#: ../data/gtkpod.glade.h:63
+msgid "Add _Playlist"
+msgstr "Lägg till _spellista"
 
-#: gtkpod.glade:1028
-msgid "_Less Sort Tabs"
-msgstr "Färre _sorteringsflikar"
+#: ../data/gtkpod.glade.h:64
+msgid "Add coverart from file using the following template"
+msgstr "Lägg till omslag från fil med följande mall"
 
-#: gtkpod.glade:1049
-msgid "_Arrange Sort Tabs"
-msgstr "_Ordna sorteringsflikar"
+#: ../data/gtkpod.glade.h:65
+msgid "Add directories recursively"
+msgstr "Lägg till kataloger rekursivt"
 
-#: gtkpod.glade:1062 gtkpod.glade:13297
-msgid "_Tools"
-msgstr "Verk_tyg"
+#: ../data/gtkpod.glade.h:66
+msgid "Add new repository/iPod"
+msgstr "Lägg till nytt arkiv eller iPod"
 
-#: gtkpod.glade:1071
-msgid "_Play Now"
-msgstr "S_pela nu"
+#: ../data/gtkpod.glade.h:67
+msgid "Add playlist from file"
+msgstr "Lägg till spellista från fil"
 
-#: gtkpod.glade:1123
-msgid "_Enqueue"
-msgstr "_Köa"
+#: ../data/gtkpod.glade.h:68 ../src/display_sorttabs.c:3232
+#: ../src/display_tracks.c:1996
+msgid "Added"
+msgstr "Tillagd"
 
-#: gtkpod.glade:1181
-msgid "_Normalize Volume"
-msgstr "_Normalisera volym"
+#: ../data/gtkpod.glade.h:69
+msgid "Advanced Sorting Options"
+msgstr "Avancerade sorteringsalternativ"
 
-#: gtkpod.glade:1217
-msgid "_Displayed Tracks"
-msgstr "_Visade spår"
+#. 0
+#: ../data/gtkpod.glade.h:70 ../src/display_sorttabs.c:2954
+#: ../src/display_spl.c:84 ../src/misc_conversion.c:60
+msgid "Album"
+msgstr "Album"
 
-#: gtkpod.glade:1226
-msgid "_All Tracks"
-msgstr "_Alla spår"
+#: ../data/gtkpod.glade.h:71
+#, fuzzy
+msgid "Album Art"
+msgstr "Album"
 
-#: gtkpod.glade:1235
-msgid "_Newly Added Tracks"
-msgstr "_Nytillagda spår"
+#: ../data/gtkpod.glade.h:72
+msgid "All (AND)"
+msgstr "Alla (och)"
 
-#: gtkpod.glade:1254
-msgid "Synchronise Contacts, Calendar and Notes"
-msgstr "Synkronisera kontakter, kalender och anteckningar"
+#: ../data/gtkpod.glade.h:73
+msgid "All Tracks Never Listened To"
+msgstr "Alla spår som aldrig lyssnats på"
 
-#: gtkpod.glade:1255
-msgid "Synchronize All"
-msgstr "Synkronisera allt"
+#: ../data/gtkpod.glade.h:74
+msgid "All Tracks Played Since Last Time"
+msgstr "Alla spår som spelats sedan sist"
 
-#: gtkpod.glade:1264
-msgid "Synchronize Contacts"
-msgstr "Synkronisera kontakter"
+#: ../data/gtkpod.glade.h:75
+msgid "All Tracks not Listed in any Playlist"
+msgstr "Alla spår som inte finns i någon spellista"
 
-#: gtkpod.glade:1273
-msgid "Synchronize Calendar"
-msgstr "Synkronisera kalender"
+#: ../data/gtkpod.glade.h:76
+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:1282
-msgid "Synchronize Notes"
-msgstr "Synkronisera anteckningar"
+#: ../data/gtkpod.glade.h:77
+msgid "Always write ID3v2.4 tags (only applies to MP3)"
+msgstr "Skriv alltid ID3v2.4-taggar (gäller bara MP3)"
 
-#: gtkpod.glade:1295
-msgid "_Help"
-msgstr "_Hjälp"
+#: ../data/gtkpod.glade.h:78
+msgid "Any (OR)"
+msgstr "NÃ¥gon (eller)"
 
-#: gtkpod.glade:1304
-msgid "_About"
-msgstr "_Om"
+#: ../data/gtkpod.glade.h:79 ../src/display_sorttabs.c:2951
+#: ../src/display_spl.c:85 ../src/misc_conversion.c:61
+msgid "Artist"
+msgstr "Artist"
 
-#: gtkpod.glade:1344
+#: ../data/gtkpod.glade.h:80
 msgid ""
-"Try to load contents of all connected iPods. For each iPod a separate "
-"repository must be set up."
+"As a last resort set the following tags to the\n"
+"filename if they are (still) empty:"
 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."
+"Om följande taggar (fortfarande) är tomma,\n"
+"lagra filnamnet i dem som en sista utväg:"
 
-#: gtkpod.glade:1345
-msgid "Load iPod(s)"
-msgstr "Ladda iPod"
+#: ../data/gtkpod.glade.h:82
+msgid "Ascending"
+msgstr "Stigande"
 
-#: gtkpod.glade:1362
-msgid "Write all changes made to the disk and the iPod(s)."
-msgstr "Skriv alla ändringar gjorda på disk och iPod."
+#: ../data/gtkpod.glade.h:83
+msgid ""
+"Audio/Video\n"
+"Audio\n"
+"Video\n"
+"Podcast\n"
+"Video Podcast\n"
+"Audiobook\n"
+"Music Video\n"
+"TV Show\n"
+"TV Show & Music Video\n"
+msgstr ""
 
-#: gtkpod.glade:1363 src/context_menus.c:507
-msgid "Save Changes"
-msgstr "Spara ändringar"
+#: ../data/gtkpod.glade.h:93
+msgid "Auto Store"
+msgstr "Lagra automatiskt"
 
-#: gtkpod.glade:1380
-msgid "Add Files or Directories"
-msgstr "Lägg till filer eller kataloger"
+#: ../data/gtkpod.glade.h:94
+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:1381
-msgid "Files"
-msgstr "Filer"
+#: ../data/gtkpod.glade.h:95
+msgid "Before removing playlists or tracks from a playlist"
+msgstr "Innan spellistor eller spår tas bort från en spellista"
 
-#: gtkpod.glade:1398
-msgid "Add Directories Recursively"
-msgstr "Lägg till kataloger rekursivt"
+#: ../data/gtkpod.glade.h:96
+msgid "Before removing tracks from the harddisk"
+msgstr "Innan spår tas bort från hårddisken"
 
-#: gtkpod.glade:1399
-msgid "Dirs"
-msgstr "Kataloger"
+#: ../data/gtkpod.glade.h:97
+msgid "Before removing tracks from the iPod"
+msgstr "Innan spår tas bort från iPod"
 
-#: gtkpod.glade:1416
-msgid "Add playlist from file"
-msgstr "Lägg till spellista från fil"
+#: ../data/gtkpod.glade.h:98
+msgid "Before removing tracks from the local database"
+msgstr "Innan spår tas bort från den lokala databasen"
 
-#: gtkpod.glade:1417 src/display_spl.c:105
-msgid "Playlist"
-msgstr "Spellista"
+#: ../data/gtkpod.glade.h:99
+msgid "Best Rated Tracks"
+msgstr "Spår med bäst betyg"
 
-#: gtkpod.glade:1434
-msgid "Create New Playlist"
-msgstr "Skapa ny spellista"
+#: ../data/gtkpod.glade.h:100
+msgid "Browse"
+msgstr "Bläddra"
 
-#: gtkpod.glade:1435
-msgid "New PL"
-msgstr "Ny spellista"
+#: ../data/gtkpod.glade.h:101
+#, fuzzy
+msgid "Cache directory:"
+msgstr "Lägg till _katalog"
 
-#: gtkpod.glade:1451
-msgid "Stop Display Update"
-msgstr "Stoppa uppdatering av skärmen"
+#: ../data/gtkpod.glade.h:102
+msgid "Calendar"
+msgstr "Kalender"
 
-#: gtkpod.glade:1452
-msgid "Stop"
-msgstr "Stoppa"
+#: ../data/gtkpod.glade.h:103
+msgid "Calendar sync command:"
+msgstr "Synkroniseringskommando för kalender:"
 
-#: gtkpod.glade:1625
-msgid "About gtkpod"
-msgstr "Om gtkpod"
+#: ../data/gtkpod.glade.h:104
+msgid "Call automatically when synchronizing iTunesDB"
+msgstr "Anropa automatiskt vid synkronisering av iTunes databas"
 
-#: gtkpod.glade:1752
-msgid "Credits"
-msgstr "Tack till"
+#: ../data/gtkpod.glade.h:105
+msgid "Category: "
+msgstr "Kategori: "
 
-#: gtkpod.glade:1810
-msgid "Translators"
-msgstr "Översättare"
+#: ../data/gtkpod.glade.h:106
+msgid ""
+"Change all tracks\n"
+"simultaneously"
+msgstr ""
+"Ändra alla spår\n"
+"samtidigt"
 
-#: gtkpod.glade:1868
-msgid "special_sorttab -- Don't translate!"
-msgstr "special_sorttab -- Don't translate!"
+#: ../data/gtkpod.glade.h:108
+msgid "Check for existing files when copying from iPod."
+msgstr "Titta efter befintliga filer vid kopiering från iPod."
 
-#: gtkpod.glade:1903
-msgid " Logic: "
-msgstr " Logiskt: "
+#: ../data/gtkpod.glade.h:109
+msgid "Command for 'Enqueue':"
+msgstr "Kommando för 'Köa':"
 
-#: gtkpod.glade:1929
-msgid "Any (OR)"
-msgstr "NÃ¥gon (eller)"
+#: ../data/gtkpod.glade.h:110
+msgid "Command for 'Play now':"
+msgstr "Kommando för 'Spela nu':"
 
-#: gtkpod.glade:1948
-msgid "All (AND)"
-msgstr "Alla (och)"
+#. 5
+#: ../data/gtkpod.glade.h:111 ../src/display_spl.c:97
+#: ../src/misc_conversion.c:65
+msgid "Composer"
+msgstr "Kompositör"
 
-#: gtkpod.glade:2001
-msgid "0"
-msgstr "0"
+#: ../data/gtkpod.glade.h:112
+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:2020
-msgid "1"
-msgstr "1"
+#: ../data/gtkpod.glade.h:113
+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:2039
-msgid "2"
-msgstr "2"
+#: ../data/gtkpod.glade.h:115
+msgid "Confirm lists of directories"
+msgstr "Bekräfta lista med kataloger"
 
-#: gtkpod.glade:2058
-msgid "3"
-msgstr "3"
+#: ../data/gtkpod.glade.h:116
+msgid "Contacts sync command:"
+msgstr "Synkroniseringskommando för kontakter:"
 
-#: gtkpod.glade:2077
-msgid "4"
-msgstr "4"
+#: ../data/gtkpod.glade.h:117
+msgid "Containing Displayed Tracks"
+msgstr "Som innehåller visade spår"
 
-#: gtkpod.glade:2096
-msgid "5"
-msgstr "5"
+#: ../data/gtkpod.glade.h:118
+msgid "Containing Selected Tracks"
+msgstr "Som innehåller markerade spår"
 
-#: gtkpod.glade:2135
-msgid "Select '0' for no lower limit."
-msgstr "Välj '0' för ingen undre gräns."
+#: ../data/gtkpod.glade.h:119
+msgid "Conversion Progress Display"
+msgstr ""
 
-#: gtkpod.glade:2156
-msgid " <= cts <= "
-msgstr " <= antal <= "
+#: ../data/gtkpod.glade.h:120
+msgid "Cover"
+msgstr "Omslag"
 
-#: gtkpod.glade:2181
-msgid "Select '-1' for no upper limit."
-msgstr "Välj '-1' för ingen övre gräns."
+#: ../data/gtkpod.glade.h:121
+msgid "Create New Playlist"
+msgstr "Skapa ny spellista"
 
-#: 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."
+#: ../data/gtkpod.glade.h:122
+msgid "Create Repository"
+msgstr "Skapa arkiv"
 
-#: gtkpod.glade:2270 gtkpod.glade:2347 gtkpod.glade:2517 gtkpod.glade:2696
-msgid "Calendar"
-msgstr "Kalender"
+#: ../data/gtkpod.glade.h:123
+msgid "Create _Playlist File"
+msgstr "Skapa sp_ellistefil"
 
-#: gtkpod.glade:2372
-msgid "Specify interval"
-msgstr "Ange intervall"
+#: ../data/gtkpod.glade.h:124
+msgid "Credits"
+msgstr "Tack till"
 
-#: gtkpod.glade:2374 src/display_spl.c:98 src/misc_conversion.c:78
-msgid "Playcount"
-msgstr "Spelningsantal"
+#: ../data/gtkpod.glade.h:125
+msgid "Currently only rating is supported."
+msgstr "För närvarande stöds bara ett betyg"
 
-#: gtkpod.glade:2397 src/display_spl.c:101 src/misc_conversion.c:79
-msgid "Rating"
-msgstr "Betyg"
+#: ../data/gtkpod.glade.h:126
+msgid "Delete repository"
+msgstr "Ta bort arkiv"
 
-#: gtkpod.glade:2420 src/display_songs.c:1951
-msgid "Played"
-msgstr "Spelad"
+#: ../data/gtkpod.glade.h:127
+#, fuzzy
+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:2443 src/display_songs.c:1954
-msgid "Modified"
-msgstr "Ändrad"
+#: ../data/gtkpod.glade.h:129
+msgid "Deleted tracks"
+msgstr "Borttagna spår"
 
-#: gtkpod.glade:2542 src/display_songs.c:1957 src/display_sorttabs.c:3218
-msgid "Added"
-msgstr "Tillagd"
+#: ../data/gtkpod.glade.h:130
+msgid "Descending"
+msgstr "Fallande"
 
-#: gtkpod.glade:2587
-msgid "Display tracks that match the criteria entered above."
-msgstr "Visa spår som uppfyller ovan inskrivna villkor."
+#: ../data/gtkpod.glade.h:131
+msgid "Details"
+msgstr "Detaljinformation"
 
-#: gtkpod.glade:2630 gtkpod.glade:12009
-msgid "_Display"
-msgstr "_Visa"
+#: ../data/gtkpod.glade.h:133
+#, no-c-format
+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:2666
+#: ../data/gtkpod.glade.h:135
+#, no-c-format
 msgid ""
-"Automatically start displaying tracks that match the criteria entered above. "
-"If not selected, you must press 'Display' to start displaying."
+"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 ""
-"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."
+"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:2668
-msgid "Start display automatically"
-msgstr "Börja visa automatiskt"
+#: ../data/gtkpod.glade.h:137
+#, no-c-format
+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:2743
-msgid "Sorttab: "
-msgstr "Sorteringsflik: "
+#: ../data/gtkpod.glade.h:138
+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:2787
-msgid "     "
-msgstr "     "
+#: ../data/gtkpod.glade.h:139
+msgid "Dirs"
+msgstr "Kataloger"
 
-#: gtkpod.glade:2813
-msgid "Category: "
-msgstr "Kategori: "
+#: ../data/gtkpod.glade.h:140
+msgid "Display a list of tracks that could actually be updated."
+msgstr "Visa en lista med spår som skulle kunna uppdateras."
 
-#: gtkpod.glade:2894
-msgid "Please specify a time interval"
-msgstr "Ange ett tidsintervall"
+#: ../data/gtkpod.glade.h:141
+msgid "Display a list of tracks that could not be updated."
+msgstr "Visa en lista med spår som inte kunde uppdateras."
 
-#: gtkpod.glade:2943
-msgid "Lower Margin"
-msgstr "Under gräns"
+#: ../data/gtkpod.glade.h:142
+msgid "Display conversion log"
+msgstr ""
 
-#: gtkpod.glade:2994 gtkpod.glade:3208
-msgid "Time:"
-msgstr "Tid:"
+#: ../data/gtkpod.glade.h:143
+msgid "Display info about detected duplicates"
+msgstr "Visa information om detekterade duplikat"
 
-#: gtkpod.glade:3037 gtkpod.glade:3251
-msgid ":"
-msgstr ":"
+#: ../data/gtkpod.glade.h:144
+msgid "Display info about non-updated tracks"
+msgstr "Visa information om spår som inte uppdaterats"
 
-#: gtkpod.glade:3114
-msgid "No lower margin"
-msgstr "Ingen undre gräns"
+#: ../data/gtkpod.glade.h:145
+msgid "Display info about updated tracks"
+msgstr "Visa information om uppdaterade spår"
 
-#: gtkpod.glade:3157
-msgid "Upper margin"
-msgstr "Övre gräns"
+#: ../data/gtkpod.glade.h:146
+msgid "Display messages and warnings at startup"
+msgstr "Visa meddelanden och varningar vid start"
 
-#: gtkpod.glade:3328
-msgid "No upper margin"
-msgstr "Ingen övre gräns"
+#: ../data/gtkpod.glade.h:147
+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:3426
-msgid "Sorting Options"
-msgstr "Sorteringsalternativ"
+#: ../data/gtkpod.glade.h:148
+msgid "Display toolbar..."
+msgstr "Visa verktygsrad..."
 
-#: gtkpod.glade:3458
-msgid "<b>Sort Order</b>"
-msgstr "<b>Sorteringsordning</b>"
+#: ../data/gtkpod.glade.h:149
+msgid "Display tooltips in main window"
+msgstr "Visa verktygstips i huvudfönstret"
 
-#: gtkpod.glade:3489 gtkpod.glade:4762 gtkpod.glade:11638 gtkpod.glade:12134
-#: gtkpod.glade:12249
-msgid "    "
-msgstr "    "
+#: ../data/gtkpod.glade.h:150
+msgid "Display tooltips in prefs window"
+msgstr "Visa verktygstips i inställningsfönstret"
 
-#: gtkpod.glade:3521
+#: ../data/gtkpod.glade.h:151
+msgid "Display tracks that match the criteria entered above."
+msgstr "Visa spår som uppfyller ovan inskrivna villkor."
+
+#: ../data/gtkpod.glade.h:152
 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."
+"Displayed\n"
+"Tracks"
 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."
+"Visade\n"
+"spår"
 
-#: gtkpod.glade:3905
-msgid "Ascending"
-msgstr "Stigande"
+#: ../data/gtkpod.glade.h:154
+msgid "Don't allow file duplication"
+msgstr "Tillåt inte duplicerade filer"
 
-#: gtkpod.glade:3953
-msgid "Descending"
-msgstr "Fallande"
+#: ../data/gtkpod.glade.h:155
+msgid "Don't automatically sync on startup"
+msgstr "Synkronisera inte automatiskt vid start"
 
-#: 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."
+#: ../data/gtkpod.glade.h:156
+msgid "Download Cover"
 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."
+#: ../data/gtkpod.glade.h:157
+#, fuzzy
+msgid "Duplicate Recognition is based on a (modified) sha1 hash over the file."
 msgstr ""
-"Om markerat är sorteringen skiftlägeskänslig. Observera att "
-"skiftlägeskänslig sortering inte fungerar bra med de flesta teckenkodningar."
+"Igenkänning av duplikat är baserat på filens (modifierade) MD5-checksumma."
 
-#: gtkpod.glade:4685
-msgid "Sorting case sensitive"
-msgstr "Skiftlägeskänslig sortering"
+#: ../data/gtkpod.glade.h:158
+msgid "Edit Repository/iPod Options"
+msgstr "Redigera arkiv- och iPodalternativ"
 
-#: gtkpod.glade:4731
-msgid "<b>Ignore Frequent Words</b>"
-msgstr "<b>Ignorera vanliga ord</b>"
+#: ../data/gtkpod.glade.h:159 ../src/context_menus.c:659
+msgid "Edit Smart Playlist"
+msgstr "Redigera smart spellista"
 
-#: 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:"
+#: ../data/gtkpod.glade.h:160 ../src/context_menus.c:746
+msgid "Edit Track Details"
+msgstr "Redigera detaljinformation om spår"
 
-#: gtkpod.glade:5106
-msgid "gtkpod Info"
-msgstr "Information om gtkpod"
+#: ../data/gtkpod.glade.h:161
+msgid "Edit _Preferences"
+msgstr "Redigera in_ställningar"
 
-#: gtkpod.glade:5427 gtkpod.glade:5514 gtkpod.glade:5543 gtkpod.glade:6261
-#: gtkpod.glade:6406
-msgid "      "
-msgstr "      "
+#: ../data/gtkpod.glade.h:162
+msgid "Effective free space"
+msgstr "Verkligt ledigt utrymme"
 
-#: gtkpod.glade:5832
-msgid "Number of tracks"
-msgstr "Antal spår"
+#: ../data/gtkpod.glade.h:163
+msgid "Empty Playlist"
+msgstr "Tom spellista"
 
-#: gtkpod.glade:5862
-msgid "Play time"
-msgstr "Speltid"
+#: ../data/gtkpod.glade.h:164
+msgid "Exclude file mask(s)"
+msgstr "Filmask(er) att utesluta"
 
-#: gtkpod.glade:5893
+#: ../data/gtkpod.glade.h:165
 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
+#: ../data/gtkpod.glade.h:166
 msgid "File size (deleted)"
 msgstr "Filstorlek (borttagna)"
 
-#: gtkpod.glade:6013
-msgid "Non-transferred tracks"
-msgstr "Spår som inte överförts"
-
-#: gtkpod.glade:6043
+#: ../data/gtkpod.glade.h:167
 msgid "File size (non-transferred)"
 msgstr "Filstorlek (inte överförda)"
 
-#: gtkpod.glade:6073
-msgid "Effective free space"
-msgstr "Verkligt ledigt utrymme"
+#: ../data/gtkpod.glade.h:168
+msgid "Filename Format: "
+msgstr "Filnamnsformat: "
 
-#: gtkpod.glade:6103
+#: ../data/gtkpod.glade.h:169
+msgid "Files"
+msgstr "Filer"
+
+#: ../data/gtkpod.glade.h:170
+#, fuzzy
 msgid ""
-"Total\n"
-"(iPod)"
+"Find orphan files (files with no track info in DB) and dangling tracks "
+"(tracks with no corresponding files on iPod)"
 msgstr ""
-"Totalt\n"
-"(iPod)"
+"Hitta övergivna filer (filer utan någon spårinformation i databasen) och "
+"saknade spår (spår utan motsvarande filer på iPod)"
 
-#: gtkpod.glade:6135
-msgid ""
-"Selected\n"
-"Playlist"
+#: ../data/gtkpod.glade.h:171
+#, fuzzy
+msgid "First try <i>folder.jpg</i>, then <i><artist>.jpg</i>"
 msgstr ""
-"Markerad\n"
-"spellista"
+"Försök först med <i>katalog.jpg</i>, därefter med <i>&lt;artist&gt;.jpg</i>"
 
-#: gtkpod.glade:6167
-msgid ""
-"Displayed\n"
-"Tracks"
+#: ../data/gtkpod.glade.h:172
+msgid "Flac with :"
 msgstr ""
-"Visade\n"
-"spår"
 
-#: gtkpod.glade:6199
+#: ../data/gtkpod.glade.h:174
+#, no-c-format
 msgid ""
-"Selected\n"
-"Tracks"
+"For example, 'xmms %s' will clear xmms' current playlist, add the selected "
+"tracks and start playing."
 msgstr ""
-"Markerade\n"
-"spår"
+"Till exempel rensas XMM:s nuvarande spellista, de markerade spåren läggs "
+"till och uppspelning startar med 'xmms %s'."
 
-#: gtkpod.glade:6231
+#: ../data/gtkpod.glade.h:176
+#, no-c-format
 msgid ""
-"Total\n"
-"(local)"
+"For example, 'xmms -e %s' will append (enqueue) the selected tracks to xmms' "
+"current playlist."
 msgstr ""
-"Totalt\n"
-"(lokalt)"
+"Till exempel läggs de markerade spåren till sist i XMM:s nuvarande spellista "
+"(köas) med 'xmms -e %s'."
 
-#: gtkpod.glade:6651
-msgid "label21"
-msgstr "etikett21"
+#: ../data/gtkpod.glade.h:177 ../src/display_sorttabs.c:2957
+#: ../src/display_spl.c:89 ../src/misc_conversion.c:63
+msgid "Genre"
+msgstr "Genre"
 
-#: gtkpod.glade:6746
-msgid "Never show this dialogue again"
-msgstr "Visa aldrig den här dialogrutan igen"
+#: ../data/gtkpod.glade.h:178
+msgid "Group artists on compilation CDs"
+msgstr "Gruppera artister på samlingsskivor"
 
-#: gtkpod.glade:6791 gtkpod.glade:7135
-msgid "window1"
-msgstr "fönster1"
+#: ../data/gtkpod.glade.h:179
+#, fuzzy
+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:6850
-msgid "_M3U"
-msgstr "_M3U"
+#: ../data/gtkpod.glade.h:180 ../src/context_menus.c:682
+#: ../src/context_menus.c:700 ../src/context_menus.c:824
+msgid "I'm sure"
+msgstr "Jag är säker"
 
-#: gtkpod.glade:6869
-msgid "_PLS"
-msgstr "_PLS"
-
-#: gtkpod.glade:6907
+#: ../data/gtkpod.glade.h:181
 msgid ""
 "If available, the local copy of the track is referenced in the playlist. "
 "Otherwise the file on the iPod is used."
@@ -766,212 +799,198 @@
 "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"
+#: ../data/gtkpod.glade.h:182
+msgid "If both options are selected, embedded APIC data takes precedence."
+msgstr "Om båda alternativ är markerade, ges förtur åt inbäddad APIC-data."
 
-#: gtkpod.glade:6927
+#: ../data/gtkpod.glade.h:183
 msgid ""
-"The local copy of the track is referenced in the playlist. If the track is "
-"not available locally, an error message is displayed."
+"If checked, sorting will be case sensitive. Please note that case sensitive "
+"sorting will not work well with most charsets."
 msgstr ""
-"Spellistan hänvisar till den lokala kopian av spåret. Om spåret inte är "
-"tillgängligt lokalt, visas ett felmeddelande."
+"Om markerat är sorteringen skiftlägeskänslig. Observera att "
+"skiftlägeskänslig sortering inte fungerar bra med de flesta teckenkodningar."
 
-#: gtkpod.glade:6929
-msgid "_Local"
-msgstr "_Lokal"
+#: ../data/gtkpod.glade.h:184
+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:6948
-msgid "The track on the iPod is referenced in the playlist file."
-msgstr "Spellistan hänvisar till spåret på iPod."
+#: ../data/gtkpod.glade.h:185
+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:6950
-msgid "_iPod"
-msgstr "_iPod"
+#: ../data/gtkpod.glade.h:186
+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:6983
-msgid "Playlist type:"
-msgstr "Typ av spellista:"
+#: ../data/gtkpod.glade.h:187
+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:7012
-msgid "Source:"
-msgstr "Källa:"
-
-#: gtkpod.glade:7055
-msgid "Template for info field: "
-msgstr "Mall för informationsfält:"
-
-#: gtkpod.glade:7080
+#: ../data/gtkpod.glade.h:188
 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 '%': %%."
+"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 ""
-"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 '%': %%."
+"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:7111 gtkpod.glade:7355
-msgid "gtkpod options"
-msgstr "Inställningar för gtkpod"
+#: ../data/gtkpod.glade.h:189
+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:7173
-msgid "Filename Format: "
-msgstr "Filnamnsformat: "
-
-#: gtkpod.glade:7198
+#: ../data/gtkpod.glade.h:190
 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 '%': %%."
+"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 ""
-"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 '%': %%."
+"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:7203
-msgid " "
-msgstr " "
+#: ../data/gtkpod.glade.h:191
+msgid "Initialize iPod"
+msgstr "Initiera iPod"
 
-#: gtkpod.glade:7225
+#: ../data/gtkpod.glade.h:192
 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."
+"Insert before\n"
+"Insert after"
 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."
+"Infoga innan\n"
+"Infoga efter"
 
-#: gtkpod.glade:7227
-msgid ""
-"Use selected charset (Preferences/'Adding/Updating/ Syncing')\n"
-"for this filename."
+#: ../data/gtkpod.glade.h:194
+msgid "Keeps all compilation CDs grouped together in the artists sort tab."
 msgstr ""
-"Använd vald teckenkodning för detta filnamn\n"
-"(Inställningar/'Tillägg, uppdatering, synkronisering')."
+"Behåller alla samlingsskivor grupperade tillsammans i sorteringsfliken för "
+"artister"
 
-#: 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."
+#: ../data/gtkpod.glade.h:195
+msgid "Live _updating"
+msgstr "_Uppdatering under tiden"
+
+#: ../data/gtkpod.glade.h:196
+msgid "Load iPod(s)"
+msgstr "Ladda iPod"
+
+#: ../data/gtkpod.glade.h:197
+msgid "Lower Margin"
+msgstr "Under gräns"
+
+#: ../data/gtkpod.glade.h:198
+msgid "M4A with :"
 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."
+#: ../data/gtkpod.glade.h:199
+msgid "MP3 with :"
+msgstr ""
 
-#: gtkpod.glade:7423
-msgid "Playlist name:"
-msgstr "Spellistans namn:"
-
-#: gtkpod.glade:7492
+#: ../data/gtkpod.glade.h:200
 msgid "Match al_l of the following"
 msgstr "Matcha a_lla följande"
 
-#: gtkpod.glade:7511
+#: ../data/gtkpod.glade.h:201
 msgid "Match an_y of the following"
 msgstr "Matcha _någon av följande"
 
-#: gtkpod.glade:7531
-msgid "_Ignore rules"
-msgstr "_Ignorera regler"
+#: ../data/gtkpod.glade.h:202
+msgid "Match only _checked tracks"
+msgstr "Matcha bara _kryssmarkerade spår"
 
-#: gtkpod.glade:7601
-msgid "Rules"
-msgstr "Regler"
+#: ../data/gtkpod.glade.h:203
+msgid "Maximum number of background threads:"
+msgstr ""
 
-#: gtkpod.glade:7638
-msgid "_Limit to"
-msgstr "_Begränsa till"
+#: ../data/gtkpod.glade.h:204
+msgid "Maximum size of cache directory (in GB):"
+msgstr ""
 
-#: gtkpod.glade:7689
-msgid "   Sort by:"
-msgstr "   Sortera enligt:"
+#: ../data/gtkpod.glade.h:205
+msgid "Model:"
+msgstr "Modell:"
 
-#: gtkpod.glade:7741
-msgid "Match only _checked tracks"
-msgstr "Matcha bara _kryssmarkerade spår"
+#: ../data/gtkpod.glade.h:206 ../src/display_tracks.c:1993
+msgid "Modified"
+msgstr "Ändrad"
 
-#: gtkpod.glade:7773
-msgid "Live _updating"
-msgstr "_Uppdatering under tiden"
+#: ../data/gtkpod.glade.h:207
+msgid "Most Recently Played Tracks"
+msgstr "Spår som nyligen spelats"
 
-#: gtkpod.glade:7864
-msgid "Preferences"
-msgstr "Inställningar"
+#: ../data/gtkpod.glade.h:208
+msgid "Music Root:"
+msgstr "Musikrot:"
 
-#: gtkpod.glade:7927
-msgid "<b>Mountpoint and individual repository/playlist options</b>"
-msgstr "<b>Alternativ för monteringspunkt, enskilda arkiv och spellistor</b>"
+#: ../data/gtkpod.glade.h:209
+msgid ""
+"Music files can have images embedded in the APIC tag. Currently this is only "
+"supported for MP3 files."
+msgstr ""
+"Musikfiler kan ha inbäddade bilder i APIC-taggen. För närvarande stöds det "
+"bara för MP3-filer."
 
-#: gtkpod.glade:7990
-msgid "Set mountpoint or edit repository options"
-msgstr "Ange monteringspunkt eller redigera arkivalternativ"
+#: ../data/gtkpod.glade.h:210
+msgid "Never show this dialogue again"
+msgstr "Visa aldrig den här dialogrutan igen"
 
-#: gtkpod.glade:8037
-msgid "<b>Import</b>"
-msgstr "<b>Importera</b>"
+#: ../data/gtkpod.glade.h:211
+msgid "New PL"
+msgstr "Ny spellista"
 
-#: gtkpod.glade:8108
-#, fuzzy
-msgid "Automatically import iTunesDBs on startup"
-msgstr "Importera automatiskt iTunes databas vid start"
+#: ../data/gtkpod.glade.h:212
+msgid "No lower margin"
+msgstr "Ingen undre gräns"
 
-#: gtkpod.glade:8154
-msgid "<b>Adding/Updating/Syncing</b>"
-msgstr "<b>Tillägg, uppdatering, synkronisering</b>"
+#: ../data/gtkpod.glade.h:213
+msgid "No upper margin"
+msgstr "Ingen övre gräns"
 
-#: gtkpod.glade:8226
-msgid "Exclude file mask(s)"
-msgstr ""
+#: ../data/gtkpod.glade.h:214
+msgid "Non-transferred tracks"
+msgstr "Spår som inte överförts"
 
-#: gtkpod.glade:8251
-msgid "Semicolon seperated list of file exclusion masks, e.g. '*.mp3'"
-msgstr ""
+#: ../data/gtkpod.glade.h:215
+msgid "None"
+msgstr "Ingen"
 
-#: gtkpod.glade:8285
-msgid "_Encoding (ID3, files):"
-msgstr "_Teckenkodning (ID3, filer):"
-
-#: gtkpod.glade:8320
+#: ../data/gtkpod.glade.h:216
 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."
+"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 ""
-"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."
+"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:8357
+#: ../data/gtkpod.glade.h:217
 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 "
@@ -989,88 +1008,27 @@
 "importerats innan version 0.51 har ingen teckenkodning lagrad. Istället "
 "används då teckensnittet som anges ovan."
 
-#: gtkpod.glade:8359
+#: ../data/gtkpod.glade.h:218
 msgid ""
-"Use selected encoding also when updating \n"
-"or syncing tracks"
+"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 ""
-"Använd också vald kodning vid uppdatering\n"
-"eller synkronisering av spår"
+"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: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
+#: ../data/gtkpod.glade.h:219
 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 "
@@ -1088,429 +1046,452 @@
 "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"
+#: ../data/gtkpod.glade.h:222
+msgid "Notes sync command:"
+msgstr "Synkroniseringskommando för anteckningar:"
 
-#: 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 "
+#: ../data/gtkpod.glade.h:223
+msgid "Number of playlists"
+msgstr "Antal spellistor"
 
-#: 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"
+#: ../data/gtkpod.glade.h:224
+msgid "Number of tracks"
+msgstr "Antal spår"
 
-#: gtkpod.glade:8756 gtkpod.glade:17800
+#: ../data/gtkpod.glade.h:225
+msgid "Number of tracks in generated playlists:"
+msgstr "Antal spår i skapade spellistor:"
+
+#: ../data/gtkpod.glade.h:226
 msgid ""
-"Will show a list of tracks removed and a list of tracks newly added or "
-"updated."
+"Number of tracks in the generated playlists 'Most Often Listened', 'Best "
+"Rated' and 'Most Recently Played'. Choose '0' for 'no limit'."
 msgstr ""
-"Visar en lista med borttagna spår och en lista med spår som är nytillagda "
-"eller uppdaterade."
+"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:8758 gtkpod.glade:17802
-msgid "Show summary of sync result"
-msgstr "Visa sammanfattning av synkroniseringsresultat"
+#: ../data/gtkpod.glade.h:227
+msgid "Ogg with :"
+msgstr ""
 
-#: gtkpod.glade:8819
-msgid "<b>Sync</b>"
-msgstr "<b>Synkronisera</b>"
+#: ../data/gtkpod.glade.h:228
+msgid "On startup automatically sync with playlist directories"
+msgstr "Synkronisera automatiskt med spellistekataloger vid start"
 
-#: 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)."
+#: ../data/gtkpod.glade.h:229
+msgid "On startup automatically sync with the following directory"
+msgstr "Synkronisera automatiskt med följande katalog vid start"
 
-#: 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."
+#: ../data/gtkpod.glade.h:230
+msgid "On startup automatically update (Live Playlist)"
+msgstr "Uppdatera automatiskt vid start (levande spellista)"
 
-#: gtkpod.glade:8921 gtkpod.glade:14688
-msgid "_General"
-msgstr "_Allmänt"
+#: ../data/gtkpod.glade.h:231
+msgid "One for each Album"
+msgstr "En för varje album"
 
-#: gtkpod.glade:8957
-msgid "<b>Tag Reading</b>"
-msgstr "<b>Taggläsning</b>"
+#: ../data/gtkpod.glade.h:232
+msgid "One for each Artist"
+msgstr "En för varje artist"
 
-#: 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)"
+#: ../data/gtkpod.glade.h:233
+msgid "One for each Composer"
+msgstr "En för varje kompositör"
 
-#: 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'."
+#: ../data/gtkpod.glade.h:234
+msgid "One for each Genre"
+msgstr "En för varje genre"
 
-#: gtkpod.glade:9041
-msgid "Use this template to parse filename for tag information:"
-msgstr "Använd mallen för att tolka filnamnet som tagginformation:"
+#: ../data/gtkpod.glade.h:235
+msgid "One for each Rating"
+msgstr "En för varje betyg"
 
-#: gtkpod.glade:9118
+#: ../data/gtkpod.glade.h:236
+msgid "One for each Year"
+msgstr "En för varje år"
+
+#: ../data/gtkpod.glade.h:237
 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:"
+#: ../data/gtkpod.glade.h:238
+msgid "Password:"
 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"
+#: ../data/gtkpod.glade.h:239
+msgid "Path:"
+msgstr "Sökväg:"
 
-#: gtkpod.glade:9209 src/display_sorttabs.c:2948 src/display_spl.c:89
-#: src/misc_conversion.c:64
-msgid "Genre"
-msgstr "Genre"
+#: ../data/gtkpod.glade.h:240
+msgid "Play time"
+msgstr "Speltid"
 
-#. 0
-#: gtkpod.glade:9231 src/display_sorttabs.c:2945 src/display_spl.c:84
-#: src/misc_conversion.c:61
-msgid "Album"
-msgstr "Album"
+#: ../data/gtkpod.glade.h:241 ../src/display_spl.c:98
+#: ../src/misc_conversion.c:77
+msgid "Playcount"
+msgstr "Spelningsantal"
 
-#. 5
-#: gtkpod.glade:9253 src/display_spl.c:97 src/misc_conversion.c:66
-msgid "Composer"
-msgstr "Kompositör"
+#: ../data/gtkpod.glade.h:242 ../src/display_tracks.c:1990
+msgid "Played"
+msgstr "Spelad"
 
-#: gtkpod.glade:9275 src/display_sorttabs.c:2954 src/display_spl.c:83
-#: src/misc_conversion.c:63
-msgid "Title"
-msgstr "Titel"
+#: ../data/gtkpod.glade.h:243 ../src/display_spl.c:105
+msgid "Playlist"
+msgstr "Spellista"
 
-#: gtkpod.glade:9330
-#, fuzzy
-msgid "<b>Coverart</b>"
-msgstr "<b>Importera</b>"
+#: ../data/gtkpod.glade.h:244
+msgid "Playlist name:"
+msgstr "Spellistans namn:"
 
-#: gtkpod.glade:9392
+#: ../data/gtkpod.glade.h:245
+msgid "Playlist type:"
+msgstr "Typ av spellista:"
+
+#: ../data/gtkpod.glade.h:246 ../src/display_playlists.c:2176
+msgid "Playlists"
+msgstr "Spellistor"
+
+#: ../data/gtkpod.glade.h:247
+msgid "Please refer to the notice below."
+msgstr "Se anmärkningen nedan."
+
+#: ../data/gtkpod.glade.h:248
+msgid "Please specify a time interval"
+msgstr "Ange ett tidsintervall"
+
+#: ../data/gtkpod.glade.h:249
+msgid "Preferences"
+msgstr "Inställningar"
+
+#: ../data/gtkpod.glade.h:250
 msgid ""
-"Music files can have images embedded in the APIC tag. Currently this is only "
-"supported for MP3 files."
+"Press button to abort.\n"
+"Export can be continued at a later time."
 msgstr ""
+"Tryck på knappen för att avbryta.\n"
+"Exporten kan fortsättas vid ett senare tillfälle."
 
-#: gtkpod.glade:9394
-msgid "Read coverart from embedded APIC data"
+#: ../data/gtkpod.glade.h:252
+msgid "Previous"
 msgstr ""
 
-#: gtkpod.glade:9415
+#: ../data/gtkpod.glade.h:253
 #, fuzzy
-msgid "Add coverart from file using the following template"
-msgstr "Lägg till omslag från fil med följande mall"
+msgid "Progress Information"
+msgstr "Information"
 
-#: 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 '%': %%."
+#: ../data/gtkpod.glade.h:254
+msgid "Random Playlist from Displayed Tracks"
+msgstr "Slumpmässig spellista från visade spår"
 
-#: gtkpod.glade:9492
-msgid "<b>Examples</b>"
-msgstr "<b>Exempel</b>"
+#: ../data/gtkpod.glade.h:255
+msgid "Randomize Current Playlist"
+msgstr "Gör nuvarande spellista slumpmässig"
 
-#: gtkpod.glade:9526
-msgid "folder.jpg"
-msgstr "katalog.jpg"
+#: ../data/gtkpod.glade.h:256 ../src/display_spl.c:101
+#: ../src/misc_conversion.c:78
+msgid "Rating"
+msgstr "Betyg"
 
-#: gtkpod.glade:9554
-msgid "folder"
-msgstr "katalog"
+#: ../data/gtkpod.glade.h:257
+msgid "Read coverart from embedded APIC data"
+msgstr "Läs omslagsbild från inbäddad APIC-data"
 
-#: gtkpod.glade:9582
-msgid "../%A.jpg"
-msgstr "../%A.jpg"
+#: ../data/gtkpod.glade.h:258
+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:9610
-msgid "%A"
-msgstr "%A"
+#: ../data/gtkpod.glade.h:259
+msgid "Remove Cover Art"
+msgstr "Ta bort omslagsbild"
 
-#: gtkpod.glade:9638
-msgid "Use <i>folder.jpg</i> as cover art."
-msgstr "Använd <i>katalog.jpg</i> som omslagsbild."
+#: ../data/gtkpod.glade.h:260
+msgid "Repository Options"
+msgstr "Arkivalternativ"
 
-#: gtkpod.glade:9666
-msgid "Use <i>folder.jpg</i>, <i>folder.png</i>..."
-msgstr "Använd <i>katalog.jpg</i>, <i>katalog.png</i>..."
+#: ../data/gtkpod.glade.h:261
+msgid "Repository name:"
+msgstr "Arkivnamn:"
 
-#: 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"
+#: ../data/gtkpod.glade.h:262
+msgid "Repository type:"
+msgstr "Arkivtyp:"
 
-#: 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>..."
+#: ../data/gtkpod.glade.h:263
+msgid "Root directory of mserv database (trackinfo root)."
+msgstr "Rotkatalog för mserv databasen (rot för spårinformation)."
 
-#: gtkpod.glade:9750
-msgid "folder.jpg;%a.jpg"
-msgstr "katalog.jpg;%a.jpg"
+#: ../data/gtkpod.glade.h:264
+msgid "Rules"
+msgstr "Regler"
 
-#: gtkpod.glade:9778
-msgid "First try <i>folder.jpg</i>, then <i>&lt;artist&gt;.jpg</i>"
+#: ../data/gtkpod.glade.h:265 ../src/context_menus.c:808
+msgid "Save Changes"
+msgstr "Spara ändringar"
+
+#: ../data/gtkpod.glade.h:266
+#, fuzzy
+msgid "Scrobble Tracks?"
+msgstr "Markerade s_pår"
+
+#: ../data/gtkpod.glade.h:267
+msgid "Select '-1' for no upper limit."
+msgstr "Välj '-1' för ingen övre gräns."
+
+#: ../data/gtkpod.glade.h:268
+msgid "Select '0' for no lower limit."
+msgstr "Välj '0' för ingen undre gräns."
+
+#: ../data/gtkpod.glade.h:269
+msgid ""
+"Selected\n"
+"Playlist"
 msgstr ""
-"Försök först med <i>katalog.jpg</i>, därefter med <i>&lt;artist&gt;.jpg</i>"
+"Markerad\n"
+"spellista"
 
-#: gtkpod.glade:9835
-msgid "If both options are selected, embedded APIC data takes precedence."
+#: ../data/gtkpod.glade.h:271
+msgid ""
+"Selected\n"
+"Tracks"
 msgstr ""
+"Markerade\n"
+"spår"
 
-#: gtkpod.glade:9887
-msgid "<b>mserv</b>"
-msgstr "<b>mServ</b>"
+#: ../data/gtkpod.glade.h:273
+msgid "Selected Tab _Entry"
+msgstr "Markerad _flikrad"
 
-#: gtkpod.glade:9949 gtkpod.glade:10175
-msgid "Currently only rating is supported."
-msgstr "För närvarande stöds bara ett betyg"
+#: ../data/gtkpod.glade.h:274
+msgid "Selected _Playlist"
+msgstr "Markerad _spellista"
 
-#: gtkpod.glade:9951
-msgid "Use mserv database to fill additional information"
-msgstr "Använd mserv databas för att fylla i ytterligare information"
+#: ../data/gtkpod.glade.h:275
+msgid "Selected _Tracks"
+msgstr "Markerade s_pår"
 
-#: gtkpod.glade:9979
-msgid "Music Root:"
-msgstr "Musikrot:"
+#: ../data/gtkpod.glade.h:276
+msgid "Selected filter tab entry from database"
+msgstr "Markerade filterflikrad från databasen"
 
-#: 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."
+#: ../data/gtkpod.glade.h:277
+msgid "Selected filter tab entry from harddisk"
+msgstr "Markerade filterflikrad från hårddisken"
 
-#: gtkpod.glade:10029
-msgid "mserv Root:"
-msgstr "Rot för mserv:"
+#: ../data/gtkpod.glade.h:278
+msgid "Selected filter tab entry from iPod"
+msgstr "Markerade filterflikrad från iPod"
 
-#: gtkpod.glade:10057
-msgid "Root directory of mserv database (trackinfo root)."
-msgstr "Rotkatalog för mserv databasen (rot för spårinformation)."
+#: ../data/gtkpod.glade.h:279
+msgid "Selected filter tab entry from playlist"
+msgstr "Markerade filterflikrad från spellistan"
 
-#: gtkpod.glade:10079
-msgid "Username:"
-msgstr "Användarnamn:"
+#: ../data/gtkpod.glade.h:280
+msgid "Selected playlist"
+msgstr "Markerade spellista"
 
-#: gtkpod.glade:10107
-msgid "Username to be used for mserv database lookup."
-msgstr "Användarnamn att använda vid uppslagning i mserv databasen."
+#: ../data/gtkpod.glade.h:281
+msgid "Selected playlist including tracks from database"
+msgstr "Markerade spellistan som innehåller spår från 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"
+#: ../data/gtkpod.glade.h:282
+msgid "Selected playlist including tracks from harddisk"
+msgstr "Markerade spellistan som innehåller spår från hårddisken"
 
-#: gtkpod.glade:10177
-msgid "Show information about problems when accessing mserv"
-msgstr "Visa information om problem vid användning av mserv"
+#: ../data/gtkpod.glade.h:283
+msgid "Selected playlist including tracks from iPod"
+msgstr "Markerade spellistan som innehåller spår från iPod"
 
-#: gtkpod.glade:10223
-msgid "_Track Info"
-msgstr "_Spårinformation"
+#: ../data/gtkpod.glade.h:284
+msgid "Selected tracks from database"
+msgstr "Markerade spår från databasen"
 
-#: gtkpod.glade:10273
-msgid "<b>Displayed Track Attributes</b>"
-msgstr "<b>Visade spåregenskaper</b>"
+#: ../data/gtkpod.glade.h:285
+msgid "Selected tracks from harddisk"
+msgstr "Markerade spår från hårddisken"
 
-#: gtkpod.glade:11083
-msgid "<b>Sort Tabs</b>"
-msgstr "<b>Sorteringsflikar</b>"
+#: ../data/gtkpod.glade.h:286
+msgid "Selected tracks from iPod"
+msgstr "Markerade spår från iPod"
 
-#: 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"
+#: ../data/gtkpod.glade.h:287
+msgid "Selected tracks from playlist"
+msgstr "Markerade spår från spellistan"
 
-#: gtkpod.glade:11147
-msgid "Group artists on compilation CDs"
-msgstr "Gruppera artister på samlingsskivor"
+#: ../data/gtkpod.glade.h:288
+#, fuzzy
+msgid "Semicolon separated list of file exclusion masks, e.g. '*.mp3'"
+msgstr "Lista med filmasker att utesluta åtskilda med semikolon, t.ex. '*.mp3'"
 
-#: gtkpod.glade:11172
-msgid "_Number of sort tabs:"
-msgstr "A_ntal sorteringsflikar:"
+#: ../data/gtkpod.glade.h:289
+#, fuzzy
+msgid "Set Cover Art from File"
+msgstr "Ange omslagsbild"
 
-#: gtkpod.glade:11252
-msgid "<b>Automatically select...</b>"
-msgstr "<b>Välj automatiskt...</b>"
+#: ../data/gtkpod.glade.h:290
+#, fuzzy
+msgid "Set Cover Art from Web"
+msgstr "Ange omslagsbild"
 
-#: gtkpod.glade:11314
+#: ../data/gtkpod.glade.h:291
+msgid "Set mountpoint or edit repository options"
+msgstr "Ange monteringspunkt eller redigera arkivalternativ"
+
+#: ../data/gtkpod.glade.h:292
+msgid "Set options for Calendar/Contacts/Notes"
+msgstr "Ange alternativ för kalender, kontakter och anteckningar"
+
+#: ../data/gtkpod.glade.h:293
 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."
+"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 ""
-"Om du inte väljer huvudspellistan automatiskt, går den ursprungliga importen "
-"av databasen mycket snabbare eftersom skärmen inte behöver uppdateras."
+"Ställ in det här till 'aacgain -q -k' för att använda funktionen "
+"'Normalisera volym' i menyn Verktyg. Om det är inställt, beräknas saknad "
+"normaliseringsdata för .m4a- och .m4b-filer och skrivs i musikfilerna med "
+"detta kommando."
 
-#: gtkpod.glade:11316
-msgid "...master playlist"
-msgstr "...huvudspellista"
+#: ../data/gtkpod.glade.h:294
+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 ""
+"Ställ in det här till 'mp3gain -q -k' för att använda funktionen "
+"'Normalisera volym' i menyn Verktyg. Om det är inställt, beräknas saknad "
+"normaliseringsdata för mp3-filer och skrivs i musikfilerna med detta "
+"kommando."
 
-#: gtkpod.glade:11336
-msgid "...entry 'All' in sort tab..."
-msgstr "...raden 'Alla' i sorteringsflikar"
+#: ../data/gtkpod.glade.h:295
+msgid "Set this to your last.fm password"
+msgstr ""
 
-#: gtkpod.glade:11421
-msgid "<b>Tooltips</b>"
-msgstr "<b>Verktygstips</b>"
+#: ../data/gtkpod.glade.h:296
+msgid "Set this to your last.fm username"
+msgstr ""
 
-#: gtkpod.glade:11484
-msgid "Display tooltips in main window"
-msgstr "Visa verktygstips i huvudfönstret"
+#: ../data/gtkpod.glade.h:297
+msgid ""
+"Set to 0 to effectively disable caching (a maximum of one track will be "
+"cached at a time)."
+msgstr ""
 
-#: gtkpod.glade:11504
-msgid "Display tooltips in prefs window"
-msgstr "Visa verktygstips i inställningsfönstret"
+#: ../data/gtkpod.glade.h:298
+msgid ""
+"Set to 0 to use as many background threads as CPUs are available on your "
+"system."
+msgstr ""
 
-#: gtkpod.glade:11550
-msgid "<b>Toolbar</b>"
-msgstr "<b>Verktygsrad</b>"
+#: ../data/gtkpod.glade.h:299
+msgid "Show information about problems when accessing mserv"
+msgstr "Visa information om problem vid användning av mserv"
 
-#: gtkpod.glade:11613
-msgid "Display toolbar..."
-msgstr "Visa verktygsrad..."
+#: ../data/gtkpod.glade.h:300
+msgid "Show summary of sync result"
+msgstr "Visa sammanfattning av synkroniseringsresultat"
 
-#: gtkpod.glade:11670
-msgid "...as icons"
-msgstr "...som ikoner"
+#: ../data/gtkpod.glade.h:301 ../src/misc_playlist.c:96
+#: ../src/repository.c:1356
+msgid "Smart Playlist"
+msgstr "Smart spellista"
 
-#: gtkpod.glade:11690
-msgid "...as text"
-msgstr "...som text"
+#: ../data/gtkpod.glade.h:302
+msgid "Sort tracks according to: "
+msgstr "Sortera spår enligt: "
 
-#: gtkpod.glade:11711
-msgid "...both as icons and text"
-msgstr "...både som ikoner och text"
+#: ../data/gtkpod.glade.h:303
+msgid "Sorting Options"
+msgstr "Sorteringsalternativ"
 
-#: gtkpod.glade:11772
-msgid "<b>Misc</b>"
-msgstr "<b>Diverse</b>"
+#: ../data/gtkpod.glade.h:304
+msgid "Sorting case sensitive"
+msgstr "Skiftlägeskänslig sortering"
 
-#: 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."
+#: ../data/gtkpod.glade.h:305
+msgid "Sorttab: "
+msgstr "Sorteringsflik: "
 
-#: 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)"
+#: ../data/gtkpod.glade.h:306
+msgid "Sorttabs"
+msgstr "Sorteringsflikar"
 
-#: 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)."
+#: ../data/gtkpod.glade.h:307
+msgid "Source:"
+msgstr "Källa:"
 
-#: gtkpod.glade:11858
+#: ../data/gtkpod.glade.h:309
+#, no-c-format
 msgid ""
-"Block display when changing playlist or tab\n"
-" entry (faster!)"
+"Specify exact path including command line options. '%i' will be replaced "
+"with the mount point of the iPod."
 msgstr ""
-"Blockera skärmen när spellistor\n"
-"eller flikar ändras (snabbare)"
+"Ange fullständig sökväg inklusive kommandoradsväljare. '%i' ersätts med "
+"monteringspunkten för iPod."
 
-#: 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."
+#: ../data/gtkpod.glade.h:310
+msgid "Specify interval"
+msgstr "Ange intervall"
 
-#: gtkpod.glade:11880
-msgid "Display messages and warnings at startup"
-msgstr "Visa meddelanden och varningar vid start"
+#: ../data/gtkpod.glade.h:311
+msgid "Start display automatically"
+msgstr "Börja visa automatiskt"
 
-#: gtkpod.glade:11942
-msgid "Advanced Sorting Options"
-msgstr "Avancerade sorteringsalternativ"
+#: ../data/gtkpod.glade.h:312
+msgid "Synchronise Contacts, Calendar and Notes"
+msgstr "Synkronisera kontakter, kalender och anteckningar"
 
-#: gtkpod.glade:12045
-msgid "<b>Track Editing</b>"
-msgstr "<b>Spårredigering</b>"
+#: ../data/gtkpod.glade.h:313
+msgid "Synchronize All"
+msgstr "Synkronisera allt"
 
-#: gtkpod.glade:12107
+#: ../data/gtkpod.glade.h:314
+msgid "Synchronize Calendar"
+msgstr "Synkronisera kalender"
+
+#: ../data/gtkpod.glade.h:315
+msgid "Synchronize Contacts"
+msgstr "Synkronisera kontakter"
+
+#: ../data/gtkpod.glade.h:316
+msgid "Synchronize Notes"
+msgstr "Synkronisera anteckningar"
+
+#: ../data/gtkpod.glade.h:317
+msgid "Template for info field: "
+msgstr "Mall för informationsfält:"
+
+#: ../data/gtkpod.glade.h:318
 msgid ""
-"The tags are written to the files on your harddrive and on the ipod (if "
-"available)."
+"The local copy of the track is referenced in the playlist. If the track is "
+"not available locally, an error message is displayed."
 msgstr ""
-"Taggarna skrivs till filer på din hårddisk och på iPod (om tillgänglig)."
+"Spellistan hänvisar till den lokala kopian av spåret. Om spåret inte är "
+"tillgängligt lokalt, visas ett felmeddelande."
 
-#: 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
+#: ../data/gtkpod.glade.h:319
 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."
+"The output of the background conversion scripts is copied below. Each page "
+"of the notebook corresponds to one background thread."
 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
+#: ../data/gtkpod.glade.h:320
+#, fuzzy
 msgid ""
-"Use selected encoding (on the 'General' page)\n"
-"when writing tags"
+"The tags are written to the files on your harddrive and on the iPod (if "
+"available)."
 msgstr ""
-"Använd vald teckenkodning (från sidan 'Allmänt')\n"
-"vid skrivning av taggar"
+"Taggarna skrivs till filer på din hårddisk och på iPod (om tillgänglig)."
 
-#: gtkpod.glade:12187
+#: ../data/gtkpod.glade.h:321
+msgid "The track on the iPod is referenced in the playlist file."
+msgstr "Spellistan hänvisar till spåret på iPod."
+
+#: ../data/gtkpod.glade.h:322
+msgid "This is the same option as in 'Edit/Delete Confirmation'"
+msgstr "Det här är samma alternativ som i 'Redigera/Bekräfta "
+
+#: ../data/gtkpod.glade.h:323
 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 "
@@ -1524,321 +1505,475 @@
 "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)"
+#: ../data/gtkpod.glade.h:324
+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:12222
+#: ../data/gtkpod.glade.h:325
+msgid "Time:"
+msgstr "Tid:"
+
+#: ../data/gtkpod.glade.h:326 ../src/display_sorttabs.c:2963
+#: ../src/display_spl.c:83 ../src/misc_conversion.c:62
+msgid "Title"
+msgstr "Titel"
+
+#: ../data/gtkpod.glade.h:327
 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."
+"Total\n"
+"(iPod)"
 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."
+"Totalt\n"
+"(iPod)"
 
-#: gtkpod.glade:12224
-msgid "Use 'Multi-Edit' for tracks selections"
-msgstr "Använd 'Redigera flera' för markerade spår"
+#: ../data/gtkpod.glade.h:329
+msgid ""
+"Total\n"
+"(local)"
+msgstr ""
+"Totalt\n"
+"(lokalt)"
 
-#: gtkpod.glade:12274
+#: ../data/gtkpod.glade.h:331
+msgid "Tracks"
+msgstr "Spår"
+
+#: ../data/gtkpod.glade.h:332
+msgid "Tracks Most Often Listened To"
+msgstr "Spår som oftast lyssnats på"
+
+#: ../data/gtkpod.glade.h:333
 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)."
+"Tracks can be transferred in the background as soon as they are added to an "
+"iPod repository. Otherwise they will be transferred when ejecting the "
+"contents of the iPod completely unchanged until then."
 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"
+#: ../data/gtkpod.glade.h:334
+msgid "Tracks in Selected Tab _Entry"
+msgstr "Spår i markerad _flikrad"
 
-#: gtkpod.glade:12329
-msgid "<b>Auto-Generated Playlists</b>"
-msgstr "<b>Automatiskt skapade spellistor</b>"
+#: ../data/gtkpod.glade.h:335
+msgid "Tracks in Selected _Playlist"
+msgstr "Spår i markerad _spellista"
 
-#: gtkpod.glade:12397
-msgid "Number of tracks in generated playlists:"
-msgstr "Antal spår i skapade spellistor:"
+#: ../data/gtkpod.glade.h:336
+msgid "Transfer tracks to the iPod in the background"
+msgstr ""
 
-#: gtkpod.glade:12422
+#: ../data/gtkpod.glade.h:337
+msgid "Translators"
+msgstr "Översättare"
+
+#: ../data/gtkpod.glade.h:338
 msgid ""
-"Number of tracks in the generated playlists 'Most Often Listened', 'Best "
-"Rated' and 'Most Recently Played'. Choose '0' for 'no limit'."
+"Try to load contents of all connected iPods. For each iPod a separate "
+"repository must be set up."
 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'."
+"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: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\""
+#: ../data/gtkpod.glade.h:339
+msgid "Update _mserv Data from File"
+msgstr "Uppdatera _mserv data från fil"
 
-#: gtkpod.glade:12497
-msgid "<b>Delete Confirmation</b>"
-msgstr "<b>Bekräfta borttagning</b>"
+#: ../data/gtkpod.glade.h:340
+msgid "Update/Sync all playlists now"
+msgstr "Uppdatera och synkronisera alla spellistor nu"
 
-#: gtkpod.glade:12560
-msgid "Before removing playlists or tracks from a playlist"
-msgstr "Innan spellistor eller spår tas bort från en spellista"
+#: ../data/gtkpod.glade.h:341
+msgid "Update/Sync playlist now"
+msgstr "Uppdatera och synkronisera spellista nu"
 
-#: gtkpod.glade:12580
-msgid "Before removing tracks from the iPod"
-msgstr "Innan spår tas bort från iPod"
+#: ../data/gtkpod.glade.h:342
+msgid "Upper margin"
+msgstr "Övre gräns"
 
-#: gtkpod.glade:12600
-msgid "Before removing tracks from the harddisk"
-msgstr "Innan spår tas bort från hårddisken"
+#: ../data/gtkpod.glade.h:343
+msgid "Use 'Multi-Edit' also for title field"
+msgstr "Använd också 'Redigera flera' för titelfältet"
 
-#: gtkpod.glade:12620
-msgid "Before removing tracks from the local database"
-msgstr "Innan spår tas bort från den lokala databasen"
+#: ../data/gtkpod.glade.h:344
+msgid "Use 'Multi-Edit' for tracks selections"
+msgstr "Använd 'Redigera flera' för markerade spår"
 
-#: gtkpod.glade:12640
+#: ../data/gtkpod.glade.h:345
+#, fuzzy
+msgid "Use <i><Album>.jpg</i> in the parent directory"
+msgstr "Använd <i>&lt;Album&gt;.jpg</i> i överliggande katalog"
+
+#: ../data/gtkpod.glade.h:346
+#, fuzzy
+msgid "Use <i><Album>.jpg</i>, <i><Album>.png</i>..."
+msgstr "Använd <i>&lt;Album&gt;.jpg</i>, <i>&lt;Album&gt;.png</i>..."
+
+#: ../data/gtkpod.glade.h:347
+msgid "Use <i>folder.jpg</i> as cover art."
+msgstr "Använd <i>katalog.jpg</i> som omslagsbild."
+
+#: ../data/gtkpod.glade.h:348
+msgid "Use <i>folder.jpg</i>, <i>folder.png</i>..."
+msgstr "Använd <i>katalog.jpg</i>, <i>katalog.png</i>..."
+
+#: ../data/gtkpod.glade.h:349
+msgid "Use mserv database to fill additional information"
+msgstr "Använd mserv databas för att fylla i ytterligare information"
+
+#: ../data/gtkpod.glade.h:350
 msgid ""
-"Confirm before removing tracks from the iPod or repository\n"
-"when syncing playlists"
+"Use selected charset (Preferences/'Adding/Updating/ Syncing')\n"
+"for this filename."
 msgstr ""
-"Bekräfta innan spår tas bort från iPod eller arkiv\n"
-"vid synkronisering av spellistor"
+"Använd vald teckenkodning för detta filnamn\n"
+"(Inställningar/'Tillägg, uppdatering, synkronisering')."
 
-#: gtkpod.glade:12723
-msgid "<b>Play</b>"
-msgstr "<b>Spela</b>"
+#: ../data/gtkpod.glade.h:352
+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:12788
-msgid "Command for 'Play now':"
-msgstr "Kommando för 'Spela nu':"
+#: ../data/gtkpod.glade.h:354
+#, fuzzy
+msgid "Use selected encoding also when updating or syncing tracks"
+msgstr ""
+"Använd också vald kodning vid uppdatering\n"
+"eller synkronisering av spår"
 
-#: gtkpod.glade:12816
-msgid "Command for 'Enqueue':"
-msgstr "Kommando för 'Köa':"
+#: ../data/gtkpod.glade.h:355
+msgid "Use this template to parse filename for tag information:"
+msgstr "Använd mallen för att tolka filnamnet som tagginformation:"
 
-#: gtkpod.glade:12844
+#: ../data/gtkpod.glade.h:356
+msgid "Username to be used for mserv database lookup."
+msgstr "Användarnamn att använda vid uppslagning i mserv databasen."
+
+#: ../data/gtkpod.glade.h:357
+msgid "Username:"
+msgstr "Användarnamn:"
+
+#: ../data/gtkpod.glade.h:358
 msgid ""
-"For example, 'xmms %s' will clear xmms' current playlist, add the selected "
-"tracks and start playing."
+"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 ""
-"Till exempel rensas XMM:s nuvarande spellista, de markerade spåren läggs "
-"till och uppspelning startar med 'xmms %s'."
+"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:12866
+#: ../data/gtkpod.glade.h:359
+msgid "WAV with :"
+msgstr ""
+
+#: ../data/gtkpod.glade.h:360
 msgid ""
-"For example, 'xmms -e %s' will append (enqueue) the selected tracks to xmms' "
-"current playlist."
+"When adding dirs/files, update information of\n"
+"existing tracks with identical filenames"
 msgstr ""
-"Till exempel läggs de markerade spåren till sist i XMM:s nuvarande spellista "
-"(köas) med 'xmms -e %s'."
+"När kataloger och filer läggs till, uppdatera information\n"
+"om befintliga spår med identiska filnamn"
 
-#: gtkpod.glade:12953
-msgid "<b>Volume Normalization</b>"
-msgstr "<b>Normalisering av volym</b>"
+#: ../data/gtkpod.glade.h:362
+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:13018
-msgid "'mp3gain' executable:"
-msgstr "Körbart program 'mp3gain':"
+#: ../data/gtkpod.glade.h:363
+msgid "When syncing playlists"
+msgstr "Vid synkronisering av spellistor"
 
-#: gtkpod.glade:13046
+#: ../data/gtkpod.glade.h:364
 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."
+"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:13087
+#: ../data/gtkpod.glade.h:365
+msgid "Write ID3 tags to disk when modified in gtkpod"
+msgstr "Skriv ID3-taggar till disk när de ändrats i gtkpod"
+
+#: ../data/gtkpod.glade.h:366
+msgid "Write all changes made to the disk and the iPod(s)."
+msgstr "Skriv alla ändringar gjorda på disk och iPod."
+
+#: ../data/gtkpod.glade.h:367
 #, fuzzy
-msgid "'aacgain' executable:"
-msgstr "Körbart program 'mp3gain':"
+msgid ""
+"Write extended information (PC filenames, SHA1 hashes,\n"
+"encoding...). Recommended."
+msgstr ""
+"Skriv utökad information (PC-filnamn, MD5-\n"
+"checksummor, teckenkodning). Rekommenderas."
 
-#: gtkpod.glade:13115
+#: ../data/gtkpod.glade.h:369
 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."
+"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:13183
-msgid "<b>Calendar/Contacts/Notes</b>"
-msgstr "<b>Kalender, kontakter och anteckningar</b>"
+#: ../data/gtkpod.glade.h:370
+msgid "_About"
+msgstr "_Om"
 
-#: gtkpod.glade:13246
-msgid "Set options for Calendar/Contacts/Notes"
-msgstr "Ange alternativ för kalender, kontakter och anteckningar"
+#: ../data/gtkpod.glade.h:371
+msgid "_All Tracks"
+msgstr "_Alla spår"
 
-#: gtkpod.glade:13381
-msgid "Details"
-msgstr "Detaljinformation"
+#: ../data/gtkpod.glade.h:372
+msgid "_Arrange Sort Tabs"
+msgstr "_Ordna sorteringsflikar"
 
-#: gtkpod.glade:13449
-msgid "Cover"
-msgstr "Omslag"
+#: ../data/gtkpod.glade.h:373
+msgid "_Check iPod's Files"
+msgstr "K_ontrollera iPod-filer"
 
-#: gtkpod.glade:13538
-msgid "Set Cover Art"
-msgstr "Ange omslagsbild"
+#: ../data/gtkpod.glade.h:374
+msgid "_Conversion Log"
+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."
+#: ../data/gtkpod.glade.h:375
+msgid "_Create Playlists"
+msgstr "_Skapa spellistor"
+
+#: ../data/gtkpod.glade.h:376
+msgid "_Create iPod's Directories"
+msgstr "Skapa iPod-ka_taloger"
+
+#: ../data/gtkpod.glade.h:377
+msgid "_Delete"
+msgstr "_Ta bort"
+
+#: ../data/gtkpod.glade.h:378
+msgid "_Display"
+msgstr "_Visa"
+
+#: ../data/gtkpod.glade.h:379
+msgid "_Displayed Tracks"
+msgstr "_Visade spår"
+
+#: ../data/gtkpod.glade.h:380
+msgid "_Edit"
+msgstr "_Redigera"
+
+#: ../data/gtkpod.glade.h:381
+msgid "_Encoding (ID3, files):"
+msgstr "_Teckenkodning (ID3, filer):"
+
+#: ../data/gtkpod.glade.h:382
+msgid "_Enqueue"
+msgstr "_Köa"
+
+#: ../data/gtkpod.glade.h:383
+msgid "_Export Tracks from Database"
+msgstr "_Exportera spår från databasen"
+
+#: ../data/gtkpod.glade.h:384
+msgid "_File"
+msgstr "_Arkiv"
+
+#: ../data/gtkpod.glade.h:385
+msgid "_Find New"
 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"
+#: ../data/gtkpod.glade.h:386
+msgid "_General"
+msgstr "_Allmänt"
+
+#: ../data/gtkpod.glade.h:387
+msgid "_Help"
+msgstr "_Hjälp"
+
+#: ../data/gtkpod.glade.h:388
+msgid "_Ignore rules"
+msgstr "_Ignorera regler"
+
+#: ../data/gtkpod.glade.h:389
+msgid "_Info Window"
+msgstr "_Informationsfönster"
+
+#: ../data/gtkpod.glade.h:390
+msgid "_Last.FM"
 msgstr ""
-"Ändra alla spår\n"
-"samtidigt"
 
-#: gtkpod.glade:13713
-msgid "Remove Cover Art"
-msgstr "Ta bort omslagsbild"
+#: ../data/gtkpod.glade.h:391
+msgid "_Less Sort Tabs"
+msgstr "Färre _sorteringsflikar"
 
-#: gtkpod.glade:14646
-#, fuzzy
-msgid "(Checked)"
-msgstr "Kontrollerad"
+#: ../data/gtkpod.glade.h:392
+msgid "_Limit to"
+msgstr "_Begränsa till"
 
-#: gtkpod.glade:15088
-msgid "_Podcasts"
-msgstr "_Podradiosändningar"
+#: ../data/gtkpod.glade.h:393
+msgid "_Load iPod(s)"
+msgstr "_Ladda iPod"
 
-#: gtkpod.glade:16127
+#: ../data/gtkpod.glade.h:394
+msgid "_Local"
+msgstr "_Lokal"
+
+#: ../data/gtkpod.glade.h:395
+msgid "_M3U"
+msgstr "_M3U"
+
+#: ../data/gtkpod.glade.h:396
+msgid "_More Sort Tabs"
+msgstr "_Fler sorteringsflikar"
+
+#: ../data/gtkpod.glade.h:397
+msgid "_Newly Added Tracks"
+msgstr "_Nytillagda spår"
+
+#: ../data/gtkpod.glade.h:398
+msgid "_Normalize Volume"
+msgstr "_Normalisera volym"
+
+#: ../data/gtkpod.glade.h:399
+msgid "_Number of sort tabs:"
+msgstr "A_ntal sorteringsflikar:"
+
+#: ../data/gtkpod.glade.h:400
 msgid "_Other"
 msgstr "Ö_vriga"
 
-#: gtkpod.glade:16425
-msgid "_Undo All"
-msgstr "Ã…_ngra alla"
+#: ../data/gtkpod.glade.h:401
+msgid "_PLS"
+msgstr "_PLS"
 
-#: gtkpod.glade:16499
-msgid "_Undo Track"
-msgstr "Å_ngra spår"
+#: ../data/gtkpod.glade.h:402
+msgid "_Play Now"
+msgstr "S_pela nu"
 
-#: gtkpod.glade:16546
-msgid "Repository Options"
-msgstr "Arkivalternativ"
+#: ../data/gtkpod.glade.h:403
+msgid "_Podcasts"
+msgstr "_Podradiosändningar"
 
-#: gtkpod.glade:16667
-msgid "Add new repository/iPod"
-msgstr "Lägg till nytt arkiv eller iPod"
+#: ../data/gtkpod.glade.h:404
+msgid "_Prefer Local"
+msgstr "_Föredra lokal"
 
-#: gtkpod.glade:16736 gtkpod.glade:18163 gtkpod.glade:18659
-msgid "iPod mountpoint:"
-msgstr "iPod monteringspunkt:"
+#: ../data/gtkpod.glade.h:405
+msgid "_Save Changes"
+msgstr "_Spara ändringar"
 
-#: gtkpod.glade:16764 gtkpod.glade:18135
-msgid "iTunesDB backup:"
-msgstr "Säkerhetskopia av iTunes databas:"
+#: ../data/gtkpod.glade.h:406
+msgid "_Save Displayed Track Order"
+msgstr "Spara _visad spårordning"
 
-#: gtkpod.glade:16792 gtkpod.glade:18107 gtkpod.glade:18730 gtkpod.glade:18922
-msgid "Model:"
-msgstr "Modell:"
+#: ../data/gtkpod.glade.h:407
+msgid "_Sorting"
+msgstr "S_ortera"
 
-#: gtkpod.glade:16820 gtkpod.glade:18079
-msgid "Path:"
-msgstr "Sökväg:"
+#: ../data/gtkpod.glade.h:408
+#, fuzzy
+msgid "_Synchronize Playlist with Dir(s)"
+msgstr "Synkronisera spellista med katalog(er)"
 
-#: gtkpod.glade:16848
-msgid "<b>Synchronization</b>"
-msgstr "<b>Synkronisering</b>"
+#: ../data/gtkpod.glade.h:409
+msgid "_Toolbar"
+msgstr "_Verktygsrad"
 
-#: gtkpod.glade:16906
-msgid "Contacts sync command:"
-msgstr "Synkroniseringskommando för kontakter:"
+#: ../data/gtkpod.glade.h:410
+msgid "_Tools"
+msgstr "Verk_tyg"
 
-#: gtkpod.glade:16934
-msgid "Calendar sync command:"
-msgstr "Synkroniseringskommando för kalender:"
+#: ../data/gtkpod.glade.h:411
+msgid "_Tooltips"
+msgstr "Verktygs_tips"
 
-#: gtkpod.glade:16962
-msgid "Notes sync command:"
-msgstr "Synkroniseringskommando för anteckningar:"
+#: ../data/gtkpod.glade.h:412
+msgid "_Track Info"
+msgstr "_Spårinformation"
 
-#: gtkpod.glade:16991
-msgid "Call automatically when synchronizing iTunesDB"
-msgstr "Anropa automatiskt vid synkronisering av iTunes databas"
+#: ../data/gtkpod.glade.h:413
+msgid "_Undo All"
+msgstr "Ã…_ngra alla"
 
-#: 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."
+#: ../data/gtkpod.glade.h:414
+msgid "_Undo Track"
+msgstr "Å_ngra spår"
 
-#: gtkpod.glade:17294
-msgid "Update/Sync all playlists now"
-msgstr "Uppdatera och synkronisera alla spellistor nu"
+#: ../data/gtkpod.glade.h:415
+msgid "_Update Tracks from File"
+msgstr "_Uppdatera spår från fil"
 
-#: gtkpod.glade:17314
-msgid "Delete repository"
-msgstr "Ta bort arkiv"
+#: ../data/gtkpod.glade.h:416
+#, fuzzy
+msgid "_Video"
+msgstr "_Visa"
 
-#: 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"
+#: ../data/gtkpod.glade.h:417
+msgid "_View"
+msgstr "_Visa"
 
-#: gtkpod.glade:17390
-msgid "<b>Repositories</b>"
-msgstr "<b>Arkiv</b>"
+#: ../data/gtkpod.glade.h:418
+msgid "_iPod"
+msgstr "_iPod"
 
-#: gtkpod.glade:17587
+#: ../data/gtkpod.glade.h:420
+#, no-c-format
 msgid ""
-"Directories to sync with are determined from the filenames of the tracks in "
-"the playlist."
+"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 ""
-"Kataloger att synkronisera avgörs från filnamnen hos spåren i spellistan."
+"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:17589
-msgid "On startup automatically sync with playlist directories"
-msgstr "Synkronisera automatiskt med spellistekataloger vid start"
+#: ../data/gtkpod.glade.h:421
+msgid "folder"
+msgstr "katalog"
 
-#: gtkpod.glade:17608
-msgid "On startup automatically sync with the following directory"
-msgstr "Synkronisera automatiskt med följande katalog vid start"
+#: ../data/gtkpod.glade.h:422
+msgid "folder.jpg"
+msgstr "katalog.jpg"
 
-#: gtkpod.glade:17702
-msgid "Don't automatically sync on startup"
-msgstr "Synkronisera inte automatiskt vid start"
+#: ../data/gtkpod.glade.h:424
+#, no-c-format
+msgid "folder.jpg;%a.jpg"
+msgstr "katalog.jpg;%a.jpg"
 
-#: gtkpod.glade:17848
-msgid "On startup automatically update (Live Playlist)"
-msgstr "Uppdatera automatiskt vid start (levande spellista)"
+#: ../data/gtkpod.glade.h:425
+msgid "gtkpod"
+msgstr "gtkpod"
 
-#: gtkpod.glade:17878
-msgid "Update/Sync playlist now"
-msgstr "Uppdatera och synkronisera spellista nu"
+#: ../data/gtkpod.glade.h:426
+msgid "gtkpod Info"
+msgstr "Information om gtkpod"
 
-#: gtkpod.glade:17925
-msgid "<b>Playlists</b>"
-msgstr "<b>Spellistor</b>"
-
-#: gtkpod.glade:18042
-msgid "Create Repository"
-msgstr "Skapa arkiv"
-
-#: gtkpod.glade:18320
+#: ../data/gtkpod.glade.h:427
 msgid ""
-"Insert before\n"
-"Insert after"
+"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 ""
-"Infoga innan\n"
-"Infoga efter"
+"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:18358
-msgid "Repository type:"
-msgstr "Arkivtyp:"
+#: ../data/gtkpod.glade.h:428
+msgid "gtkpod options"
+msgstr "Inställningar för gtkpod"
 
-#: gtkpod.glade:18386
+#. These are the items for the 'Repository type' combo in the 'Create Repository' dialog. Keep the three items in order!
+#: ../data/gtkpod.glade.h:430
 msgid ""
 "iPod\n"
 "Local Repository (Standard)\n"
@@ -1848,442 +1983,524 @@
 "Lokalt arkiv (standard)\n"
 "Lokalt arkiv (podradiosändningar)\n"
 
-#: gtkpod.glade:18407
-msgid "Repository name:"
-msgstr "Arkivnamn:"
+#: ../data/gtkpod.glade.h:434
+msgid "iPod mountpoint:"
+msgstr "iPod monteringspunkt:"
 
-#: gtkpod.glade:18543 gtkpod.glade:18806
-msgid "Initialize iPod"
-msgstr ""
+#: ../data/gtkpod.glade.h:435
+msgid "iTunesDB backup:"
+msgstr "Säkerhetskopia av iTunes databas:"
 
-#: gtkpod.glade:18613
-msgid "<b>Please select mountpoint and your iPod model</b>"
-msgstr ""
+#: ../data/gtkpod.glade.h:436
+#, fuzzy
+msgid "label"
+msgstr "etikett21"
 
-#: src/charset.c:53
+#: ../data/gtkpod.glade.h:437
+msgid "mserv Root:"
+msgstr "Rot för mserv:"
+
+#: ../data/gtkpod.glade.h:438
+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."
+
+#: ../data/gtkpod.glade.h:439 ../src/details.c:1175
+msgid "n/a"
+msgstr "ej tillgänglig"
+
+#: ../data/gtkpod.glade.h:440
+msgid "special_sorttab -- Don't translate!"
+msgstr "special_sorttab -- Don't translate!"
+
+#: ../src/charset.c:53
 msgid "Arabic (IBM-864)"
 msgstr "Arabisk (IBM-864)"
 
-#: src/charset.c:54
+#: ../src/charset.c:54
 msgid "Arabic (ISO-8859-6)"
 msgstr "Arabisk (ISO-8859-6)"
 
-#: src/charset.c:55
+#: ../src/charset.c:55
 msgid "Arabic (Windows-1256)"
 msgstr "Arabisk (Windows-1256)"
 
-#: src/charset.c:56
+#: ../src/charset.c:56
 msgid "Baltic (ISO-8859-13)"
 msgstr "Baltisk (ISO-8859-13)"
 
-#: src/charset.c:57
+#: ../src/charset.c:57
 msgid "Baltic (ISO-8859-4)"
 msgstr "Baltisk (ISO-8859-4)"
 
-#: src/charset.c:58
+#: ../src/charset.c:58
 msgid "Baltic (Windows-1257)"
 msgstr "Baltisk (Windows-1257)"
 
-#: src/charset.c:59
+#: ../src/charset.c:59
 msgid "Celtic (ISO-8859-14)"
 msgstr "Keltisk (ISO-8859-14)"
 
-#: src/charset.c:60
+#: ../src/charset.c:60
 msgid "Central European (IBM-852)"
 msgstr "Centraleuropeisk (IBM-852)"
 
-#: src/charset.c:61
+#: ../src/charset.c:61
 msgid "Central European (ISO-8859-2)"
 msgstr "Centraleuropeisk (ISO-8859-2)"
 
-#: src/charset.c:62
+#: ../src/charset.c:62
 msgid "Central European (Windows-1250)"
 msgstr "Centraleuropeisk (Windows-1250)"
 
-#: src/charset.c:63
+#: ../src/charset.c:63
 msgid "Chinese Simplified (GB18030)"
 msgstr "Förenklad kinesisk (GB18030)"
 
-#: src/charset.c:64
+#: ../src/charset.c:64
 msgid "Chinese Simplified (GB2312)"
 msgstr "Förenklad kinesisk (GB2312)"
 
-#: src/charset.c:65
+#: ../src/charset.c:65
 msgid "Chinese Traditional (Big5)"
 msgstr "Traditionell kinesisk (Big5)"
 
-#: src/charset.c:66
+#: ../src/charset.c:66
 msgid "Chinese Traditional (Big5-HKSCS)"
 msgstr "Traditionell kinesisk (Big5-HKSCS)"
 
-#: src/charset.c:67
+#: ../src/charset.c:67
 msgid "Cyrillic (IBM-855)"
 msgstr "Kyrillisk (IBM-855)"
 
-#: src/charset.c:68
+#: ../src/charset.c:68
 msgid "Cyrillic (ISO-8859-5)"
 msgstr "Kyrillisk (ISO-8859-5)"
 
-#: src/charset.c:69
+#: ../src/charset.c:69
 msgid "Cyrillic (ISO-IR-111)"
 msgstr "Kyrillisk (ISO-IR-111)"
 
-#: src/charset.c:70
+#: ../src/charset.c:70
 msgid "Cyrillic (KOI8-R)"
 msgstr "Kyrillisk (KOI8-R)"
 
-#: src/charset.c:71
+#: ../src/charset.c:71
 msgid "Cyrillic (Windows-1251)"
 msgstr "Kyrillisk (Windows-1251)"
 
-#: src/charset.c:72
+#: ../src/charset.c:72
 msgid "Cyrillic/Russian (CP-866)"
 msgstr "Kyrillisk/Rysk (CP-866)"
 
-#: src/charset.c:73
+#: ../src/charset.c:73
 msgid "Cyrillic/Ukrainian (KOI8-U)"
 msgstr "Kyrillisk/Ukrainsk (KOI8-U)"
 
-#: src/charset.c:74
+#: ../src/charset.c:74
 msgid "English (US-ASCII)"
 msgstr "Engelsk (US-ASCII)"
 
-#: src/charset.c:75
+#: ../src/charset.c:75
 msgid "Greek (ISO-8859-7)"
 msgstr "Grekisk (ISO-8859-7)"
 
-#: src/charset.c:76
+#: ../src/charset.c:76
 msgid "Greek (Windows-1253)"
 msgstr "Grekisk (Windows-1253)"
 
-#: src/charset.c:77
+#: ../src/charset.c:77
 msgid "Hebrew (IBM-862)"
 msgstr "Hebreisk (IBM-862)"
 
-#: src/charset.c:78
+#: ../src/charset.c:78
 msgid "Hebrew (Windows-1255)"
 msgstr "Hebreisk (Windows-1255)"
 
-#: src/charset.c:79
+#: ../src/charset.c:79
 msgid "Japanese (automatic detection)"
 msgstr "Japansk (automatisk detektering)"
 
-#: src/charset.c:80
+#: ../src/charset.c:80
 msgid "Japanese (EUC-JP)"
 msgstr "Japansk (EUC-JP)"
 
-#: src/charset.c:81
+#: ../src/charset.c:81
 msgid "Japanese (ISO-2022-JP)"
 msgstr "Japansk (ISO-2022-JP)"
 
-#: src/charset.c:82
+#: ../src/charset.c:82
 msgid "Japanese (Shift_JIS)"
 msgstr "Japansk (Shift_JIS)"
 
-#: src/charset.c:83
+#: ../src/charset.c:83
 msgid "Korean (EUC-KR)"
 msgstr "Koreansk (EUC-KR)"
 
-#: src/charset.c:84
+#: ../src/charset.c:84
 msgid "Nordic (ISO-8859-10)"
 msgstr "Nordisk (ISO-8859-10)"
 
-#: src/charset.c:85
+#: ../src/charset.c:85
 msgid "South European (ISO-8859-3)"
 msgstr "Sydeuropeisk (ISO-8859-3)"
 
-#: src/charset.c:86
+#: ../src/charset.c:86
 msgid "Thai (TIS-620)"
 msgstr "Thailändsk (TIS-620)"
 
-#: src/charset.c:87
+#: ../src/charset.c:87
 msgid "Turkish (IBM-857)"
 msgstr "Turkisk (IBM-857)"
 
-#: src/charset.c:88
+#: ../src/charset.c:88
 msgid "Turkish (ISO-8859-9)"
 msgstr "Turkisk (ISO-8859-9)"
 
-#: src/charset.c:89
+#: ../src/charset.c:89
 msgid "Turkish (Windows-1254)"
 msgstr "Turkisk (Windows-1254)"
 
-#: src/charset.c:90
+#: ../src/charset.c:90
 msgid "Unicode (UTF-7)"
 msgstr "Unicode (UTF-7)"
 
-#: src/charset.c:91
+#: ../src/charset.c:91
 msgid "Unicode (UTF-8)"
 msgstr "Unicode (UTF-8)"
 
-#: src/charset.c:92
+#: ../src/charset.c:92
 msgid "Unicode (UTF-16BE)"
 msgstr "Unicode (UTF-16BE)"
 
-#: src/charset.c:93
+#: ../src/charset.c:93
 msgid "Unicode (UTF-16LE)"
 msgstr "Unicode (UTF-16LE)"
 
-#: src/charset.c:94
+#: ../src/charset.c:94
 msgid "Unicode (UTF-32BE)"
 msgstr "Unicode (UTF-32BE)"
 
-#: src/charset.c:95
+#: ../src/charset.c:95
 msgid "Unicode (UTF-32LE)"
 msgstr "Unicode (UTF-32LE)"
 
-#: src/charset.c:96
+#: ../src/charset.c:96
 msgid "Vietnamese (VISCII)"
 msgstr "Vietnamesisk (VISCII)"
 
-#: src/charset.c:97
+#: ../src/charset.c:97
 msgid "Vietnamese (Windows-1258)"
 msgstr "Vietnamesisk (Windows-1258)"
 
-#: src/charset.c:98
+#: ../src/charset.c:98
 msgid "Visual Hebrew (ISO-8859-8)"
 msgstr "Visuell Hebreisk (ISO-8859-8)"
 
-#: src/charset.c:99
+#: ../src/charset.c:99
 msgid "Western (IBM-850)"
 msgstr "Västlig (IBM-850)"
 
-#: src/charset.c:100
+#: ../src/charset.c:100
 msgid "Western (ISO-8859-1)"
 msgstr "Västlig (ISO-8859-1)"
 
-#: src/charset.c:101
+#: ../src/charset.c:101
 msgid "Western (ISO-8859-15)"
 msgstr "Västlig (ISO-8859-15)"
 
-#: src/charset.c:102
+#: ../src/charset.c:102
 msgid "Western (Windows-1252)"
 msgstr "Västlig (Windows-1252)"
 
 #. sanity!
 #. check for "System Charset" and return NULL
-#: src/charset.c:160 src/charset.c:170 src/charset.c:223
+#: ../src/charset.c:160 ../src/charset.c:170 ../src/charset.c:223
 msgid "System Charset"
 msgstr "Systemets kodning"
 
 #. we are not the first instance of gtkpod -- the socket is
 #. already being used, so we pass
-#: src/clientserver.c:215
+#: ../src/clientserver.c:214
 msgid ""
 "Another instance of gtkpod was detected. Playcount server not started.\n"
 msgstr ""
 "En annan instans av gtkpod detekterades. Spelningsservern startades inte.\n"
 
-#: src/confirmation.c:376
+#: ../src/confirmation.c:377
 msgid "Confirmation Dialogue"
 msgstr "Bekräftelsedialogruta"
 
-#: src/context_menus.c:367 src/tools.c:852
+#: ../src/context_menus.c:359
+#, c-format
+msgid "Copied \"%s\" playlist to %s"
+msgstr ""
+
+#: ../src/context_menus.c:398
+#, fuzzy, c-format
+msgid "Copied %d track to '%s'"
+msgid_plural "Copied %d tracks to '%s'"
+msgstr[0] "Kopierade %d av %d spår."
+msgstr[1] "Kopierade %d av %d spår."
+
+#: ../src/context_menus.c:426
+#, c-format
+msgid "Copied '%s' playlist to '%s' in '%s'"
+msgstr ""
+
+#: ../src/context_menus.c:459
+#, fuzzy, c-format
+msgid "Copied %d track to '%s' in '%s'"
+msgid_plural "Copied %d tracks to %s in '%s'"
+msgstr[0] "Tog bort %d spår från spellistan '%s'"
+msgstr[1] "Tog bort %d spår från spellistan '%s'"
+
+#: ../src/context_menus.c:619 ../src/tools.c:854
 msgid "Play Now"
 msgstr "Spela nu"
 
-#: src/context_menus.c:373 src/tools.c:865
+#: ../src/context_menus.c:625 ../src/tools.c:867
 msgid "Enqueue"
 msgstr "Köa"
 
-#: src/context_menus.c:379
+#: ../src/context_menus.c:631
 msgid "Copy Tracks to Filesystem"
 msgstr "Kopiera spår till filsystem"
 
-#: src/context_menus.c:386 src/file_export.c:1081
+#: ../src/context_menus.c:638 ../src/file_export.c:1085
 msgid "Create Playlist File"
 msgstr "Skapa spellistefil"
 
-#: src/context_menus.c:393
+#: ../src/context_menus.c:645
 msgid "Create new Playlist"
 msgstr "Skapa ny spellista"
 
-#: src/context_menus.c:400
+#: ../src/context_menus.c:652
 msgid "Update Tracks from File"
 msgstr "Uppdatera spår från fil"
 
-#: src/context_menus.c:414
+#: ../src/context_menus.c:666
 msgid "Sync Playlist with Dir(s)"
 msgstr "Synkronisera spellista med katalog(er)"
 
-#: src/context_menus.c:424
+#: ../src/context_menus.c:676
 msgid "Remove All Tracks from iPod"
 msgstr "Ta bort alla spår från iPod"
 
-#: src/context_menus.c:442
+#: ../src/context_menus.c:694
 msgid "Remove All Podcasts from iPod"
 msgstr "Ta bort alla podradiosändningar från iPod"
 
-#: src/context_menus.c:457
+#: ../src/context_menus.c:709
 msgid "Delete Including Tracks"
 msgstr "Ta bort inklusive spår"
 
-#: src/context_menus.c:465
+#: ../src/context_menus.c:717
 msgid "Delete But Keep Tracks"
 msgstr "Ta bort men behåll spår"
 
-#: src/context_menus.c:473
+#: ../src/context_menus.c:725
 msgid "Edit iPod Properties"
 msgstr "Redigera iPod-egenskaper"
 
-#: src/context_menus.c:493
+#: ../src/context_menus.c:732
+#, fuzzy
+msgid "Edit Repository Properties"
+msgstr "Redigera iPod-egenskaper"
+
+#: ../src/context_menus.c:739
+msgid "Edit Playlist Properties"
+msgstr "Redigera spellisteegenskaper"
+
+#: ../src/context_menus.c:767
+msgid "View Full Size Artwork"
+msgstr ""
+
+#: ../src/context_menus.c:774
+#, fuzzy
+msgid "Select Cover From File"
+msgstr "Ta bort från iPod"
+
+#: ../src/context_menus.c:781
+msgid "Find Cover on Web"
+msgstr ""
+
+#: ../src/context_menus.c:794
 msgid "Load iPod"
 msgstr "Ladda iPod"
 
-#: src/context_menus.c:500
+#: ../src/context_menus.c:801
 msgid "Eject iPod"
 msgstr "Mata ut iPod"
 
-#: src/context_menus.c:517
+#: ../src/context_menus.c:818
 msgid "Remove All Tracks from Database"
 msgstr "Ta bort alla spår från databasen"
 
-#: src/context_menus.c:532
+#: ../src/context_menus.c:833
 msgid "Delete Including Tracks (Harddisk)"
 msgstr "Ta bort inklusive spår (hårddisk)"
 
-#: src/context_menus.c:540
+#: ../src/context_menus.c:841
 msgid "Delete Including Tracks (Database)"
 msgstr "Ta bort inklusive spår (databas)"
 
-#: src/context_menus.c:548
+#: ../src/context_menus.c:849
 msgid "Delete From iPod"
 msgstr "Ta bort från iPod"
 
-#: src/context_menus.c:556
+#: ../src/context_menus.c:857
 msgid "Delete From Playlist"
 msgstr "Ta bort från spellista"
 
-#: src/context_menus.c:564
+#: ../src/context_menus.c:865
 msgid "Delete From Harddisk"
 msgstr "Ta bort från hårddisk"
 
-#: src/context_menus.c:572
+#: ../src/context_menus.c:873
 msgid "Delete From Database"
 msgstr "Ta bort från databas"
 
-#: src/context_menus.c:580
+#: ../src/context_menus.c:881
 msgid "Alphabetize"
 msgstr "Sortera alfabetiskt"
 
-#: src/context_menus.c:596
-msgid "Edit Playlist Properties"
-msgstr "Redigera spellisteegenskaper"
+#: ../src/context_menus.c:949 ../src/context_menus.c:998
+#, fuzzy
+msgid "Copy selected playlist to..."
+msgstr "Markerade spellista"
 
-#: src/date_parser.l:269
+#: ../src/context_menus.c:1051
+#, fuzzy
+msgid "Copy selected track(s) to..."
+msgstr "Borttagna spår"
+
+#: ../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:1182
+#: ../src/details.c:700
+#, c-format
+msgid "%s (image data corrupted or unreadable)"
+msgstr ""
+
+#: ../src/details.c:1246
 msgid "<b>n/a</b>"
 msgstr "<b>ej tillgänglig</b>"
 
-#: src/display.c:891
+#: ../src/display.c:647
 msgid "Edit selected entry of which sort tab?"
 msgstr "Redigera markerad rad för vilken sorts flik?"
 
 #. no entry selected
-#: src/display.c:898 src/misc_confirm.c:431 src/misc_track.c:1613
+#: ../src/display.c:654 ../src/misc_confirm.c:435 ../src/misc_track.c:2059
 msgid "No entry selected."
 msgstr "Ingen rad markerad."
 
-#: src/display.c:1057 src/display.c:1384 src/display.c:1440 src/display.c:1494
-#: src/display.c:1549 src/display.c:1810
+#: ../src/display.c:813 ../src/display.c:1133 ../src/display.c:1189
+#: ../src/display.c:1243 ../src/display.c:1298 ../src/display.c:1559
 #, c-format
 msgid "No entry selected in Sort Tab %d"
 msgstr "Ingen rad markerad i sorteringsflik %d"
 
-#: src/display.c:1096
+#: ../src/display.c:852
 msgid "Remove entry of which sort tab from database?"
 msgstr "Ta bort rad för vilken sorts flik från databasen?"
 
-#: src/display.c:1104
+#: ../src/display.c:860
 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:1126
+#: ../src/display.c:882
 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:1156
+#: ../src/display.c:912
 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:1183 src/display.c:1221
+#: ../src/display.c:939 ../src/display.c:977
 #, c-format
 msgid ""
 "iPod at '%s' is not loaded.\n"
 "Please load it first."
 msgstr ""
+"iPod på '%s' har inte laddats.\n"
+"Ladda den först."
 
-#: src/display.c:1265 src/display.c:1292
+#: ../src/display.c:1014 ../src/display.c:1041
 msgid "Update selected entry of which sort tab?"
 msgstr "Uppdatera markerad rad för vilken sorts flik?"
 
-#: src/display.c:1378
+#: ../src/display.c:1127
 msgid "Export selected entry of which sort tab?"
 msgstr "Exportera markerad rad för vilken sorts flik?"
 
-#: src/display.c:1434
+#: ../src/display.c:1183
 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:1488
+#: ../src/display.c:1237
 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:1543
+#: ../src/display.c:1292
 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:1800
+#: ../src/display.c:1549
 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:355
-#, fuzzy, c-format
+#: ../src/display_coverart.c:1714
+msgid "Failed to remove the album from the album hash store."
+msgstr ""
+
+#: ../src/display_itdb.c:376
+#, c-format
 msgid "Failed to set cover art: '%s'\n"
-msgstr "Misslyckades ange omslagsbild: '%s'"
+msgstr "Misslyckades ange omslagsbild: '%s'\n"
 
-#: 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
+#: ../src/display_itdb.c:851 ../src/display_itdb.c:984
 msgid "Local"
 msgstr "Lokal"
 
 #. add podcast playlist
-#: src/display_itdb.c:852 src/display_itdb.c:963 src/display_itdb.c:991
+#: ../src/display_itdb.c:859 ../src/display_itdb.c:982
+#: ../src/display_itdb.c:1010
 msgid "Podcasts"
 msgstr "Podradiosändningar"
 
-#: src/display_itdb.c:1050
+#: ../src/display_itdb.c:868 ../src/display_itdb.c:986
+#: ../src/repository.c:1186
+msgid "iPod"
+msgstr "iPod"
+
+#: ../src/display_itdb.c:1069
 #, 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:496 src/display_playlists.c:538
+#: ../src/display_playlists.c:500 ../src/display_playlists.c:542
 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:565 src/display_songs.c:287
+#: ../src/display_playlists.c:569 ../src/display_tracks.c:286
 #, 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:851
+#: ../src/display_playlists.c:849 ../src/display_playlists.c:861
 msgid "Can't reorder sorted treeview."
 msgstr "Kan inte ordna om sorterad trädvy."
 
-#: src/display_playlists.c:944
+#: ../src/display_playlists.c:938
 #, c-format
 msgid ""
 "This DND type (%d) is not (yet) supported. If you feel implementing this "
@@ -2294,350 +2511,394 @@
 "vore användbart att implementera, kontakta gärna upphovsmannen.\n"
 "\n"
 
-#: 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: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 ""
-"Kan inte göra spårvyn osorterad, beroende på ett fel i GTK-biblioteket du "
-"använder (%d.%d.%d < 2.5.4). Så snart du sorterat spårvyn kan du inte gå "
-"tillbaka till det osorterade tillståndet.\n"
-"\n"
-
-#: src/display_songs.c:1923
-msgid "Rtng"
-msgstr "Betyg"
-
-#: 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 "Överfört"
-
-#: src/display_songs.c:1939
-msgid "Cmpl"
-msgstr "Komp."
-
-#: src/display_songs.c:1945 src/display_spl.c:94
-msgid "Time"
-msgstr "Tid"
-
-#: src/display_songs.c:1948
-msgid "Plycnt"
-msgstr "Speln."
-
-#: src/display_songs.c:1960
-msgid "Released"
-msgstr "Utgiven"
-
-#: 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:1966
-msgid "Vol."
-msgstr "Vol."
-
-#: src/display_songs.c:1969
-msgid "Sndchk."
-msgstr "Ljudkontr."
-
-#: src/display_sorttabs.c:456
+#: ../src/display_sorttabs.c:473
 msgid "'Played' condition ignored because of error."
 msgstr "Tillståndet 'Spelad' ignoreras på grund av fel."
 
-#: src/display_sorttabs.c:459
+#: ../src/display_sorttabs.c:476
 msgid "'Modified' condition ignored because of error."
 msgstr "Tillståndet 'Ändrad' ignoreras på grund av fel."
 
-#: src/display_sorttabs.c:462
+#: ../src/display_sorttabs.c:479
 msgid "'Added' condition ignored because of error."
 msgstr "Tillståndet 'Tillagd' ignoreras på grund av fel."
 
-#: src/display_sorttabs.c:1582 src/misc_conversion.c:60
+#: ../src/display_sorttabs.c:1563 ../src/misc_conversion.c:59
 msgid "All"
 msgstr "Alla"
 
-#: src/display_sorttabs.c:1608
+#: ../src/display_sorttabs.c:1589
 msgid "Compilations"
 msgstr "Samlingar"
 
-#: src/display_sorttabs.c:2951
+#: ../src/display_sorttabs.c:2960
 msgid "Comp."
 msgstr "Komp."
 
-#: src/display_sorttabs.c:2960
+#: ../src/display_sorttabs.c:2966 ../src/display_spl.c:88
+#: ../src/display_tracks.c:2002 ../src/misc_conversion.c:84
+msgid "Year"
+msgstr "Ã…r"
+
+#: ../src/display_sorttabs.c:2969
 msgid "Special"
 msgstr "Special"
 
-#: src/display_sorttabs.c:3216
+#: ../src/display_sorttabs.c:3230
 msgid "Last Played"
 msgstr "Senast spelad"
 
-#: src/display_sorttabs.c:3217
+#: ../src/display_sorttabs.c:3231
 msgid "Last Modified"
 msgstr "Senast ändrad"
 
-#: src/display_spl.c:64
+#: ../src/display_spl.c:64
 msgid "days"
 msgstr "dagar"
 
-#: src/display_spl.c:65
+#: ../src/display_spl.c:65
 msgid "weeks"
 msgstr "veckor"
 
-#: src/display_spl.c:66
+#: ../src/display_spl.c:66
 msgid "months"
 msgstr "månader"
 
-#: src/display_spl.c:73
+#: ../src/display_spl.c:73
 msgid "kbps"
 msgstr "kbps"
 
-#: src/display_spl.c:74
+#: ../src/display_spl.c:74
 msgid "Hz"
 msgstr "Hz"
 
-#: src/display_spl.c:75 src/display_spl.c:160 src/info.c:777
+#: ../src/display_spl.c:75 ../src/display_spl.c:179 ../src/info.c:777
 msgid "MB"
 msgstr "Mibyte"
 
-#: src/display_spl.c:76
+#: ../src/display_spl.c:76
 msgid "secs"
 msgstr "sekunder"
 
-#: src/display_spl.c:86 src/misc_conversion.c:75
+#: ../src/display_spl.c:86 ../src/misc_conversion.c:74
 msgid "Bitrate"
 msgstr "Bithastighet"
 
 #. 15
-#: src/display_spl.c:87 src/misc_conversion.c:76
+#: ../src/display_spl.c:87 ../src/misc_conversion.c:75
 msgid "Samplerate"
 msgstr "Samplingsfrekvens"
 
-#: src/display_spl.c:90
+#: ../src/display_spl.c:90
 msgid "Kind"
 msgstr "Sort"
 
-#: src/display_spl.c:91 src/misc_conversion.c:82
+#: ../src/display_spl.c:91 ../src/misc_conversion.c:81
 msgid "Date modified"
 msgstr "Ändringsdatum"
 
-#: src/display_spl.c:92
+#: ../src/display_spl.c:92
 msgid "Track number"
 msgstr "Spårnummer"
 
-#: src/display_spl.c:93
+#: ../src/display_spl.c:93
 msgid "Size"
 msgstr "Storlek"
 
-#: src/display_spl.c:95 src/misc_conversion.c:65
+#: ../src/display_spl.c:94 ../src/display_tracks.c:1984
+msgid "Time"
+msgstr "Tid"
+
+#: ../src/display_spl.c:95 ../src/misc_conversion.c:64
 msgid "Comment"
 msgstr "Kommentar"
 
-#: src/display_spl.c:96 src/misc_conversion.c:80
+#: ../src/display_spl.c:96 ../src/misc_conversion.c:79
 msgid "Date added"
 msgstr "Tillagd datum"
 
-#: src/display_spl.c:99
+#: ../src/display_spl.c:99
 msgid "Last played"
 msgstr "Senast spelad"
 
-#: src/display_spl.c:100
+#: ../src/display_spl.c:100
 msgid "Disc number"
 msgstr "Skivnummer"
 
-#: src/display_spl.c:102 src/misc_conversion.c:88
+#: ../src/display_spl.c:102 ../src/misc_conversion.c:87
 msgid "Compilation"
 msgstr "Samling"
 
-#: src/display_spl.c:103 src/misc_conversion.c:77
+#: ../src/display_spl.c:103 ../src/misc_conversion.c:76
 msgid "BPM"
 msgstr "Taktslag per minut"
 
-#: src/display_spl.c:104 src/misc_conversion.c:87
+#: ../src/display_spl.c:104 ../src/misc_conversion.c:86
 msgid "Grouping"
 msgstr "Gruppering"
 
-#: src/display_spl.c:111
+#: ../src/display_spl.c:106
+msgid "Video Kind"
+msgstr ""
+
+#: ../src/display_spl.c:107 ../src/display_spl.c:210 ../src/display_spl.c:219
+#: ../src/misc_conversion.c:101
+msgid "TV Show"
+msgstr ""
+
+#: ../src/display_spl.c:108
+#, fuzzy
+msgid "Season number"
+msgstr "Skivnummer"
+
+#: ../src/display_spl.c:109
+msgid "Skip count"
+msgstr ""
+
+#: ../src/display_spl.c:110
+#, fuzzy
+msgid "Last skipped"
+msgstr "Senast spelad"
+
+#: ../src/display_spl.c:111
+#, fuzzy
+msgid "Album artist"
+msgstr "artist"
+
+#: ../src/display_spl.c:117
 msgid "contains"
 msgstr "innehåller"
 
-#: src/display_spl.c:112
+#: ../src/display_spl.c:118
 msgid "does not contain"
 msgstr "innehåller inte"
 
-#: src/display_spl.c:113 src/display_spl.c:122 src/display_spl.c:132
-#: src/display_spl.c:151
+#: ../src/display_spl.c:119 ../src/display_spl.c:128 ../src/display_spl.c:138
+#: ../src/display_spl.c:157 ../src/display_spl.c:164
 msgid "is"
 msgstr "är"
 
-#: src/display_spl.c:114 src/display_spl.c:123 src/display_spl.c:133
-#: src/display_spl.c:152
+#: ../src/display_spl.c:120 ../src/display_spl.c:129 ../src/display_spl.c:139
+#: ../src/display_spl.c:158 ../src/display_spl.c:165
 msgid "is not"
 msgstr "är inte"
 
-#: src/display_spl.c:115
+#: ../src/display_spl.c:121
 msgid "starts with"
 msgstr "börjar med"
 
-#: src/display_spl.c:116
+#: ../src/display_spl.c:122
 msgid "ends with"
 msgstr "slutar med"
 
-#: src/display_spl.c:124
+#: ../src/display_spl.c:130
 msgid "is greater than"
 msgstr "är större än"
 
-#: src/display_spl.c:125
+#: ../src/display_spl.c:131
 msgid "is less than"
 msgstr "är mindre än"
 
-#: src/display_spl.c:126 src/display_spl.c:138
+#: ../src/display_spl.c:132 ../src/display_spl.c:144
 msgid "is in the range"
 msgstr "är i intervallet"
 
-#: src/display_spl.c:134
+#: ../src/display_spl.c:140
 msgid "is after"
 msgstr "är efter"
 
-#: src/display_spl.c:135
+#: ../src/display_spl.c:141
 msgid "is before"
 msgstr "är före"
 
-#: src/display_spl.c:136
+#: ../src/display_spl.c:142
 msgid "in the last"
 msgstr "i sista"
 
-#: src/display_spl.c:137
+#: ../src/display_spl.c:143
 msgid "not in the last"
 msgstr "inte i sista"
 
-#: src/display_spl.c:144
+#: ../src/display_spl.c:150
 msgid "is set"
 msgstr "är satt"
 
-#: src/display_spl.c:145
+#: ../src/display_spl.c:151
 msgid "is not set"
 msgstr "är inte satt"
 
-#: src/display_spl.c:159
+#: ../src/display_spl.c:171
+#, fuzzy
+msgid "Not supported"
+msgstr "Inte listad"
+
+#: ../src/display_spl.c:178
 msgid "minutes"
 msgstr "minuter"
 
-#: src/display_spl.c:161
+#: ../src/display_spl.c:180
 msgid "tracks"
 msgstr "spår"
 
-#: src/display_spl.c:162
+#: ../src/display_spl.c:181
 msgid "hours"
 msgstr "timmar"
 
-#: src/display_spl.c:163 src/info.c:777
+#: ../src/display_spl.c:182 ../src/info.c:777
 msgid "GB"
 msgstr "Gibyte"
 
-#: src/display_spl.c:170
+#: ../src/display_spl.c:189
 msgid "random order"
 msgstr "slumpmässig ordning"
 
-#: src/display_spl.c:171
+#: ../src/display_spl.c:190
 msgid "title"
 msgstr "titel"
 
-#: src/display_spl.c:172
+#: ../src/display_spl.c:191
 msgid "album"
 msgstr "album"
 
-#: src/display_spl.c:173
+#: ../src/display_spl.c:192
 msgid "artist"
 msgstr "artist"
 
-#: src/display_spl.c:174
+#: ../src/display_spl.c:193
 msgid "genre"
 msgstr "genre"
 
-#: src/display_spl.c:175
+#: ../src/display_spl.c:194
 msgid "most recently added"
 msgstr "senast tillagd"
 
-#: src/display_spl.c:176
+#: ../src/display_spl.c:195
 msgid "least recently added"
 msgstr "tidigast tillagd"
 
-#: src/display_spl.c:177
+#: ../src/display_spl.c:196
 msgid "most often played"
 msgstr "mest spelad"
 
-#: src/display_spl.c:178
+#: ../src/display_spl.c:197
 msgid "least often played"
 msgstr "minst spelad"
 
-#: src/display_spl.c:179
+#: ../src/display_spl.c:198
 msgid "most recently played"
 msgstr "senast spelad"
 
-#: src/display_spl.c:180
+#: ../src/display_spl.c:199
 msgid "least recently played"
 msgstr "tidigast spelad"
 
-#: src/display_spl.c:181
+#: ../src/display_spl.c:200
 msgid "highest rating"
 msgstr "högst betyg"
 
-#: src/display_spl.c:182
+#: ../src/display_spl.c:201
 msgid "lowest rating"
 msgstr "lägst betyg"
 
-#: src/display_spl.c:1047 src/display_spl.c:1062
+#: ../src/display_spl.c:208 ../src/display_spl.c:217
+#, fuzzy
+msgid "Movie"
+msgstr "Ändrad"
+
+#: ../src/display_spl.c:209 ../src/display_spl.c:218
+#, fuzzy
+msgid "Music Video"
+msgstr "Musikrot:"
+
+#: ../src/display_spl.c:1162 ../src/display_spl.c:1177
 msgid "to"
 msgstr "till"
 
-#: src/display_spl.c:1279
+#: ../src/display_spl.c:1455
 msgid "-"
 msgstr "-"
 
-#: src/display_spl.c:1294
+#: ../src/display_spl.c:1470
 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
+#: ../src/display_spl.c:1689 ../src/misc_playlist.c:66
+#: ../src/misc_playlist.c:68 ../src/misc_playlist.c:93
+#: ../src/misc_playlist.c:95 ../src/misc_playlist.c:428
+#: ../src/misc_playlist.c:430
 msgid "New Playlist"
 msgstr "Ny spellista"
 
-#: src/file.c:230
+#: ../src/display_tracks.c:281
 #, 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_tracks.c:1717
+#, 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 ""
+"Kan inte göra spårvyn osorterad, beroende på ett fel i GTK-biblioteket du "
+"använder (%d.%d.%d < 2.5.4). Så snart du sorterat spårvyn kan du inte gå "
+"tillbaka till det osorterade tillståndet.\n"
+"\n"
+
+#: ../src/display_tracks.c:1962
+msgid "Rtng"
+msgstr "Betyg"
+
+#: ../src/display_tracks.c:1965
+msgid "#"
+msgstr "#"
+
+#: ../src/display_tracks.c:1968
+msgid "CD"
+msgstr "Cd"
+
+#: ../src/display_tracks.c:1971
+msgid "ID"
+msgstr "Id"
+
+#: ../src/display_tracks.c:1974
+msgid "Trnsfrd"
+msgstr "Överfört"
+
+#: ../src/display_tracks.c:1978
+msgid "Cmpl"
+msgstr "Komp."
+
+#: ../src/display_tracks.c:1987
+msgid "Plycnt"
+msgstr "Speln."
+
+#: ../src/display_tracks.c:1999
+msgid "Released"
+msgstr "Utgiven"
+
+#: ../src/display_tracks.c:2005
+msgid "Vol."
+msgstr "Vol."
+
+#: ../src/display_tracks.c:2008
+msgid "Sndchk."
+msgstr "Ljudkontr."
+
+#: ../src/file.c:236
+#, c-format
+msgid ""
 "'%s' is a directory, not a playlist file.\n"
 "\n"
 msgstr ""
 "'%s' är en katalog, inte en spellistefil.\n"
 "\n"
 
-#: src/file.c:258
+#: ../src/file.c:266
 #, c-format
 msgid ""
 "'%s' is a not a known playlist file.\n"
@@ -2646,7 +2907,7 @@
 "'%s' är inte en känd spellistefil.\n"
 "\n"
 
-#: src/file.c:275
+#: ../src/file.c:283
 #, c-format
 msgid ""
 "Cannot open '%s' for reading.\n"
@@ -2655,54 +2916,54 @@
 "Kan inte öppna '%s' för läsning.\n"
 "\n"
 
-#: src/file.c:359
+#: ../src/file.c:369
 #, c-format
 msgid "Skipping '%s' because it is a directory.\n"
 msgstr "Hoppar över '%s' eftersom det är en katalog.\n"
 
-#: src/file.c:364
+#: ../src/file.c:374
 #, 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:619
+#: ../src/file.c:629
 #, c-format
 msgid "Unknown token '%s' in template '%s'\n"
 msgstr "Okänd beteckning '%s' i mallen '%s'\n"
 
-#: src/file.c:871
+#: ../src/file.c:890
 #, c-format
 msgid "Local filename not valid (%s)"
 msgstr "Lokalt filnamn inte giltigt (%s)"
 
-#: src/file.c:930
+#: ../src/file.c:949
 #, 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:939
+#: ../src/file.c:958
 #, 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:947
+#: ../src/file.c:966
 #, 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:1055
+#: ../src/file.c:1090
 #, 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:1118
+#: ../src/file.c:1169
 #, 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:1211
+#: ../src/file.c:1262
 #, c-format
 msgid ""
 "The following track could not be processed (filetype is known but analysis "
@@ -2711,33 +2972,33 @@
 "Följande spår kunde inte behandlas (filtypen känd, men analys misslyckades): "
 "'%s'\n"
 
-#: src/file.c:1241 src/file.c:1295
+#: ../src/file.c:1292 ../src/file.c:1346
 msgid "Nothing to update"
 msgstr "Ingenting att uppdatera"
 
-#: src/file.c:1262
+#: ../src/file.c:1313
 #, c-format
 msgid "Updating %s"
 msgstr "Uppdaterar %s"
 
-#: src/file.c:1276
+#: ../src/file.c:1327
 msgid "Updated selected tracks with info from file."
 msgstr "Uppdaterar markerade spår med information från fil."
 
-#: src/file.c:1310
+#: ../src/file.c:1361
 #, c-format
 msgid "Retrieving mserv data %s"
 msgstr "Hämtar data från mserv %s"
 
-#: src/file.c:1315
+#: ../src/file.c:1366
 msgid "no filename available"
 msgstr "inget filnamn tillgängligt"
 
-#: src/file.c:1320
+#: ../src/file.c:1371
 msgid "Updated selected tracks with data from mserv."
 msgstr "Uppdaterar markerade spår med data från mserv."
 
-#: src/file.c:1341
+#: ../src/file.c:1392
 #, c-format
 msgid "The following track could not be updated"
 msgid_plural "The following %d tracks could not be updated"
@@ -2746,11 +3007,11 @@
 
 #. gint id,
 #. gboolean modal,
-#: src/file.c:1347
+#: ../src/file.c:1398
 msgid "Failed Track Update"
 msgstr "Uppdatering av spår misslyckades"
 
-#: src/file.c:1405
+#: ../src/file.c:1456
 #, c-format
 msgid "The following track has been updated"
 msgid_plural "The following %d tracks have been updated"
@@ -2759,11 +3020,11 @@
 
 #. gint id,
 #. gboolean modal,
-#: src/file.c:1411
+#: ../src/file.c:1462
 msgid "Successful Track Update"
 msgstr "Uppdatering av spår lyckades"
 
-#: src/file.c:1470
+#: ../src/file.c:1521
 #, c-format
 msgid "No mserv information could be retrieved for the following track"
 msgid_plural ""
@@ -2773,46 +3034,46 @@
 
 #. gint id,
 #. gboolean modal,
-#: src/file.c:1476
+#: ../src/file.c:1527
 msgid "mserv data retrieval problem"
 msgstr "Problem att hämta data från mserv"
 
-#: src/file.c:1565
+#: ../src/file.c:1616
 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:1571
+#: ../src/file.c:1622
 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:1575 src/file.c:1593
+#: ../src/file.c:1626 ../src/file.c:1644
 msgid "no local filename available"
 msgstr "inget lokalt filnamn tillgängligt"
 
-#: src/file.c:1583
+#: ../src/file.c:1634
 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
+#: ../src/file.c:1640
 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
+#: ../src/file.c:1728
 msgid "update failed (format no supported?)"
 msgstr "uppdatering misslyckades (formatet stöds kanske inte)"
 
-#: src/file.c:1734
+#: ../src/file.c:1813
 #, c-format
 msgid "Processing '%s'..."
 msgstr "Behandlar '%s'..."
 
-#: src/file.c:1740
+#: ../src/file.c:1819
 #, c-format
 msgid "File skipped. match exclude masks: '%s'\n"
-msgstr ""
+msgstr "Filen hoppades över. Den passar med masker att undanta: '%s'\n"
 
-#: src/file.c:1852 src/misc_track.c:1299 src/misc_track.c:1355
+#: ../src/file.c:1939 ../src/misc_track.c:1694 ../src/misc_track.c:1799
 #, c-format
 msgid ""
 "Podcast already present: '%s'\n"
@@ -2821,7 +3082,7 @@
 "Podradiosändning finns redan: '%s'\n"
 "\n"
 
-#: src/file.c:1913
+#: ../src/file.c:2004
 #, c-format
 msgid ""
 "Writing to video files not yet supported (%s).\n"
@@ -2830,35 +3091,35 @@
 "Att skriva till videofiler stöds inte än (%s).\n"
 "\n"
 
-#: src/file.c:1965 src/file.c:1979
+#: ../src/file.c:2056 ../src/file.c:2070
 #, c-format
 msgid "Couldn't change tags of file: %s\n"
 msgstr "Kunde inte ändra taggar för filen: %s\n"
 
-#: src/file.c:2076
+#: ../src/file.c:2172
 #, 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:2083
+#: ../src/file.c:2179
 #, c-format
 msgid "Could not obtain lock on '%s'.\n"
 msgstr "Kunde inte låsa '%s'.\n"
 
 #. error!
-#: src/file.c:2100 src/file.c:2109 src/file.c:2120 src/file.c:2130
+#: ../src/file.c:2196 ../src/file.c:2205 ../src/file.c:2216 ../src/file.c:2226
 #, c-format
 msgid "Malformed line in '%s': %s\n"
 msgstr "Felaktig rad i '%s': %s\n"
 
 #. gint id,
 #. gboolean modal,
-#: src/file.c:2159
+#: ../src/file.c:2255
 msgid "Remove offline playcounts?"
 msgstr "Ta bort nerkopplade spelningsantal?"
 
 #. title
-#: src/file.c:2160
+#: ../src/file.c:2256
 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."
@@ -2867,12 +3128,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:2177
+#: ../src/file.c:2273
 #, c-format
 msgid "Error writing to '%s'.\n"
 msgstr "Fel vid skrivning till '%s'.\n"
 
-#: src/file.c:2232 src/tools.c:269
+#: ../src/file.c:2330 ../src/tools.c:271
 #, c-format
 msgid ""
 "Normalization failed: file type not supported (%s).\n"
@@ -2881,7 +3142,7 @@
 "Normalisering misslyckades: Filtypen stöds inte (%s).\n"
 "\n"
 
-#: src/file.c:2248 src/tools.c:286
+#: ../src/file.c:2346 ../src/tools.c:288
 #, c-format
 msgid ""
 "Normalization failed: file not available (%s).\n"
@@ -2890,87 +3151,203 @@
 "Normalisering misslyckades: Filen inte tillgänglig (%s).\n"
 "\n"
 
-#: src/file_export.c:182
+#: ../src/file_convert.c:316
+msgid "Summary status of conversion processes"
+msgstr ""
+
+#: ../src/file_convert.c:564
+msgid "active"
+msgstr ""
+
+#: ../src/file_convert.c:569
+msgid "inactive"
+msgstr ""
+
+#: ../src/file_convert.c:580
 #, c-format
+msgid "Active threads: %d. Scheduled tracks: %d."
+msgstr ""
+
+#: ../src/file_convert.c:1061
+#, fuzzy, c-format
+msgid "Original filename not available for '%s.'\n"
+msgstr ""
+"Normalisering misslyckades: Filen inte tillgänglig (%s).\n"
+"\n"
+
+#: ../src/file_convert.c:1076
+#, c-format
+msgid "Filename '%s' is no longer valid for '%s'.\n"
+msgstr ""
+
+#: ../src/file_convert.c:1127
+msgid "Ogg Vorbis"
+msgstr ""
+
+#: ../src/file_convert.c:1133
+msgid "FLAC"
+msgstr ""
+
+#: ../src/file_convert.c:1188
+#, c-format
+msgid ""
+"Files of type '%s' are not supported by the iPod. Please go to the "
+"Preferences to set up and turn on a suitable conversion script for '%s'.\n"
+"\n"
+msgstr ""
+
+#: ../src/file_convert.c:1274
+#, fuzzy
+msgid "No information available"
+msgstr "inget filnamn tillgängligt"
+
+#: ../src/file_convert.c:1313
+#, c-format
+msgid "Could not create '%s'. Filetype conversion will not work.\n"
+msgstr ""
+
+#: ../src/file_convert.c:1631 ../src/file_convert.c:3040
+#, fuzzy, c-format
+msgid ""
+"Transfer of '%s' failed. %s\n"
+"\n"
+msgstr ""
+"Körning av '%s' misslyckades.\n"
+"\n"
+
+#: ../src/file_convert.c:2035 ../src/file_convert.c:2313
+#, fuzzy, c-format
+msgid ""
+"Conversion of '%s' failed: '%s'.\n"
+"\n"
+msgstr ""
+"Körning av '%s' misslyckades.\n"
+"\n"
+
+#: ../src/file_convert.c:2050
+#, c-format
+msgid ""
+"Conversion of '%s' failed: '%s %s' returned exit status %d.\n"
+"\n"
+msgstr ""
+
+#: ../src/file_convert.c:2079
+#, c-format
+msgid ""
+"Conversion of '%s' failed: '%s %s' did not return filename extension as "
+"expected.\n"
+"\n"
+msgstr ""
+
+#: ../src/file_convert.c:2155
+#, c-format
+msgid ""
+"Covnersion of '%s' failed: Could not access original file '%s' (%s).\n"
+"\n"
+msgstr ""
+
+#: ../src/file_convert.c:2210
+#, c-format
+msgid ""
+"Conversion of '%s' failed: Could not create directory '%s'.\n"
+"\n"
+msgstr ""
+
+#: ../src/file_convert.c:2344
+#, c-format
+msgid ""
+"Conversion of '%s' failed: '%s' returned exit status %d.\n"
+"\n"
+msgstr ""
+
+#: ../src/file_convert.c:2383
+#, c-format
+msgid ""
+"Conversion of '%s' failed: could not stat the converted file '%s'.\n"
+"\n"
+msgstr ""
+
+#: ../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:190
+#: ../src/file_export.c:190
 #, c-format
 msgid "Overwriting existing file: '%s'\n"
 msgstr "Skriver över befintlig fil: '%s'\n"
 
-#: src/file_export.c:207
+#: ../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:209
+#: ../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:217
+#: ../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:327
+#: ../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:395 src/file_itunesdb.c:1230 src/tools.c:359
+#: ../src/file_export.c:395 ../src/tools.c:361
 msgid "Information"
 msgstr "Information"
 
-#: src/file_export.c:406 src/tools.c:371
+#: ../src/file_export.c:406 ../src/tools.c:373
 msgid "Press button to abort."
 msgstr "Tryck på knappen för att avbryta."
 
-#: src/file_export.c:419
+#: ../src/file_export.c:419
 msgid "copying..."
 msgstr "kopierar..."
 
-#: src/file_export.c:472
+#: ../src/file_export.c:476
 #, c-format
 msgid "Failed to write '%s-%s'\n"
 msgstr "Misslyckades skriva '%s-%s'\n"
 
-#: src/file_export.c:485
+#: ../src/file_export.c:489
 #, 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:501 src/file_itunesdb.c:1495 src/tools.c:517
+#: ../src/file_export.c:505 ../src/tools.c:519
 #, c-format
 msgid "%d%% (%d:%02d:%02d left)"
 msgstr "%d%% (%d:%02d:%02d kvar)"
 
-#: src/file_export.c:510
+#: ../src/file_export.c:514
 msgid "Some tracks were not copied."
 msgstr "Några spår kopierades inte."
 
-#: src/file_export.c:575
+#: ../src/file_export.c:579
 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:583
+#: ../src/file_export.c:587
 msgid "Select Export Destination Directory"
 msgstr "Välj målkatalog för export"
 
-#: src/file_export.c:732
+#: ../src/file_export.c:736
 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:766
+#: ../src/file_export.c:770
 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:811
+#: ../src/file_export.c:815
 msgid ""
 "Some tracks were not copied to your harddisk. Only the copied tracks will be "
 "included in the current drag and drop operation.\n"
@@ -2980,7 +3357,7 @@
 "kommer att ingå i den nuvarande drag och släpp åtgärden.\n"
 "\n"
 
-#: src/file_export.c:1006
+#: ../src/file_export.c:1010
 #, c-format
 msgid ""
 "No valid filename for: %s\n"
@@ -2989,14 +3366,14 @@
 "Inget giltigt filnamn för: %s\n"
 "\n"
 
-#: src/file_export.c:1022
+#: ../src/file_export.c:1026
 #, 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:1027
+#: ../src/file_export.c:1031
 #, c-format
 msgid ""
 "Could not open '%s' for writing (%s).\n"
@@ -3005,29 +3382,29 @@
 "Kunde inte öppna '%s' för skrivning (%s).\n"
 "\n"
 
-#: src/file_itunesdb.c:115
-#, c-format
-msgid "Matching MD5 checksum for file %d/%d"
+#: ../src/file_itunesdb.c:127
+#, fuzzy, c-format
+msgid "Matching SHA1 checksum for file %d/%d"
 msgstr "Matchande MD5-checksumma för filen %d/%d"
 
-#: src/file_itunesdb.c:223
+#: ../src/file_itunesdb.c:234
 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:230
+#: ../src/file_itunesdb.c:241
 msgid "Could not create hash value from itunesdb\n"
 msgstr "Kunde inte skapa checksumma från itunesdb\n"
 
-#: src/file_itunesdb.c:244
+#: ../src/file_itunesdb.c:255
 #, 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:261
-#, c-format
+#: ../src/file_itunesdb.c:272
+#, fuzzy, 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 "
+"gtkpod will try to match the information using SHA1 checksums. This may take "
 "a long time.\n"
 "\n"
 msgstr ""
@@ -3037,7 +3414,7 @@
 "Det kan ta lång tid.\n"
 "\n"
 
-#: src/file_itunesdb.c:273
+#: ../src/file_itunesdb.c:284
 #, c-format
 msgid ""
 "%s:\n"
@@ -3046,7 +3423,7 @@
 "%s:\n"
 "Förväntande \"itunesdb_hash=\", men hittade \"%s\"\n"
 
-#: src/file_itunesdb.c:333
+#: ../src/file_itunesdb.c:344
 #, c-format
 msgid ""
 "%s:\n"
@@ -3055,12 +3432,13 @@
 "%s:\n"
 "Formatfel: %s\n"
 
-#: src/file_itunesdb.c:377
+#: ../src/file_itunesdb.c:387
+#, fuzzy
 msgid ""
-"No MD5 checksums on individual tracks are available.\n"
+"No SHA1 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 "
+"(will provide SHA1 checksums) or avoid using the iPod with programs other "
 "than gtkpod.\n"
 "\n"
 msgstr ""
@@ -3071,7 +3449,7 @@
 "med andra program än gtkpod.\n"
 "\n"
 
-#: src/file_itunesdb.c:439
+#: ../src/file_itunesdb.c:451
 msgid ""
 "Extended info will not be used. If you have non-transferred tracks,\n"
 "these will be lost.\n"
@@ -3079,15 +3457,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:447
+#: ../src/file_itunesdb.c:459
 msgid "Offline iPod database successfully imported"
 msgstr "Nerkopplad iPod-databas importerad med lyckat resultat"
 
-#: src/file_itunesdb.c:450
+#: ../src/file_itunesdb.c:462
 msgid "Local database successfully imported"
 msgstr "Lokal databas importerad med lyckat resultat"
 
-#: src/file_itunesdb.c:458
+#: ../src/file_itunesdb.c:470
 #, c-format
 msgid ""
 "Offline iPod database import failed: '%s'\n"
@@ -3096,7 +3474,7 @@
 "Import av nerkopplad iPod-databas misslyckades: '%s'\n"
 "\n"
 
-#: src/file_itunesdb.c:462
+#: ../src/file_itunesdb.c:474
 #, c-format
 msgid ""
 "Local database import failed: '%s'\n"
@@ -3105,7 +3483,7 @@
 "Import av lokal databas misslyckades: '%s'\n"
 "\n"
 
-#: src/file_itunesdb.c:469
+#: ../src/file_itunesdb.c:481
 msgid ""
 "Offline iPod database import failed: \n"
 "\n"
@@ -3113,7 +3491,7 @@
 "Import av nerkopplad iPod-databas misslyckades: \n"
 "\n"
 
-#: src/file_itunesdb.c:472
+#: ../src/file_itunesdb.c:484
 msgid ""
 "Local database import failed: \n"
 "\n"
@@ -3121,7 +3499,7 @@
 "Import av lokal databas misslyckades: \n"
 "\n"
 
-#: src/file_itunesdb.c:479
+#: ../src/file_itunesdb.c:491
 #, c-format
 msgid ""
 "'%s' does not exist. Import aborted.\n"
@@ -3130,15 +3508,15 @@
 "'%s' finns inte. Import avbruten.\n"
 "\n"
 
-#: src/file_itunesdb.c:502
+#: ../src/file_itunesdb.c:514
 msgid "Extended info will not be used.\n"
 msgstr "Utökad information kommer inte att användas.\n"
 
-#: src/file_itunesdb.c:509
+#: ../src/file_itunesdb.c:521
 msgid "iPod Database Successfully Imported"
 msgstr "iPod-databasen importerad med lyckat resultat"
 
-#: src/file_itunesdb.c:516
+#: ../src/file_itunesdb.c:528
 #, c-format
 msgid ""
 "iPod Database Import Failed: '%s'\n"
@@ -3147,7 +3525,7 @@
 "Import av iPod-databasen misslyckades: '%s'\n"
 "\n"
 
-#: src/file_itunesdb.c:522
+#: ../src/file_itunesdb.c:534
 msgid ""
 "iPod Database Import Failed.\n"
 "\n"
@@ -3155,7 +3533,7 @@
 "Import av iPod-databasen misslyckades.\n"
 "\n"
 
-#: src/file_itunesdb.c:531
+#: ../src/file_itunesdb.c:543
 #, c-format
 msgid ""
 "'%s' (or similar) does not exist. Import aborted.\n"
@@ -3164,7 +3542,7 @@
 "'%s' (eller liknande) finns inte. Import avbruten.\n"
 "\n"
 
-#: src/file_itunesdb.c:817
+#: ../src/file_itunesdb.c:859
 #, c-format
 msgid ""
 "Could not find iPod directory structure at '%s'.\n"
@@ -3173,46 +3551,110 @@
 "\n"
 "Do you want to create the directory structure now?\n"
 msgstr ""
+"Kunde inte hitta iPod-katalogstrykturen på '%s'.\n"
+"Om du är säker på att din iPod är riktigt monterad på %s', kan gtkpod skapa "
+"katalogstrukturen åt dig.\n"
+"\n"
+"Vill du skapa katalogstrukturen nu?\n"
 
-#: src/file_itunesdb.c:1071
+#: ../src/file_itunesdb.c:1140
 #, 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:1086
+#: ../src/file_itunesdb.c:1155
 msgid "Aborted writing of extended info.\n"
 msgstr "Avbröt skrivning av utökad information.\n"
 
-#: src/file_itunesdb.c:1241
+#: ../src/file_itunesdb.c:1356
+#, c-format
+msgid "%d%%"
+msgstr ""
+
+#: ../src/file_itunesdb.c:1370
+#, fuzzy, c-format
+msgid "%d%% (%d/%d  %d:%02d:%02d left)"
+msgstr "%d%% (%d:%02d:%02d kvar)"
+
+#: ../src/file_itunesdb.c:1412
+msgid "Status: Deleting File"
+msgstr ""
+
+#: ../src/file_itunesdb.c:1473
+#, fuzzy, c-format
 msgid ""
-"Press button to abort.\n"
-"Export can be continued at a later time."
+"Could not remove the following file: '%s'\n"
+"\n"
 msgstr ""
-"Tryck på knappen för att avbryta.\n"
-"Exporten kan fortsättas vid ett senare tillfälle."
+"Kunde inte öppna '%s' för skrivning (%s).\n"
+"\n"
 
-#: src/file_itunesdb.c:1310
-msgid "deleting..."
-msgstr "tar bort..."
+#: ../src/file_itunesdb.c:1581
+#, fuzzy
+msgid ""
+"The following track could not be converted successfully:\n"
+"\n"
+msgid_plural ""
+"The following tracks could not be converted successfully:\n"
+"\n"
+msgstr[0] "Följande spår kunde inte uppdateras"
+msgstr[1] "Följande %d spår kunde inte uppdateras"
 
-#: src/file_itunesdb.c:1413
-msgid "preparing to copy..."
-msgstr "förbereder kopiering..."
+#: ../src/file_itunesdb.c:1591
+#, fuzzy
+msgid ""
+"The following track could not be transferred successfully:\n"
+"\n"
+msgid_plural ""
+"The following tracks could not be transferred successfully:\n"
+"\n"
+msgstr[0] "Följande spår kunde inte uppdateras"
+msgstr[1] "Följande %d spår kunde inte uppdateras"
 
-#: 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."
+#. ID
+#. modal,
+#. gint id,
+#. gboolean modal,
+#: ../src/file_itunesdb.c:1600 ../src/misc_confirm.c:70
+msgid "Warning"
+msgstr "Varning"
 
-#: 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."
+#. title
+#: ../src/file_itunesdb.c:1601
+msgid ""
+"The iPod could not be ejected. Please fix the problems mentioned below and "
+"then eject the iPod again. Pressing 'OK' will re-schedule the failed tracks "
+"for conversion and transfer."
+msgstr ""
 
-#: src/file_itunesdb.c:1557
+#: ../src/file_itunesdb.c:1663
+msgid "Status: Copying track"
+msgstr ""
+
+#: ../src/file_itunesdb.c:1669
+msgid "Status: Waiting for conversion to complete"
+msgstr ""
+
+#: ../src/file_itunesdb.c:1673
+msgid "Status: Finished transfer"
+msgstr ""
+
+#: ../src/file_itunesdb.c:1714
 #, c-format
 msgid ""
+"One track could not be transferred because your iPod is full. Either delete "
+"some tracks or otherwise create space on the iPod before ejecting the iPod "
+"again."
+msgid_plural ""
+"%d tracks could not be transferred because your iPod is full. Either delete "
+"some tracks or otherwise create space on the iPod before ejecting the iPod "
+"again."
+msgstr[0] ""
+msgstr[1] ""
+
+#: ../src/file_itunesdb.c:1792
+#, 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"
@@ -3227,7 +3669,7 @@
 "lagringen. Om du avbryter, kan du importera befintlig databas innan du "
 "använder den här funktionen igen.\n"
 
-#: src/file_itunesdb.c:1588
+#: ../src/file_itunesdb.c:1827
 msgid ""
 "iPod directory structure must be present before synching to the iPod can be "
 "performed.\n"
@@ -3235,190 +3677,231 @@
 "Katalogstrukturen i iPod måste finnas innan synkronisering av iPod kan "
 "utföras.\n"
 
-#: src/file_itunesdb.c:1597
+#: ../src/file_itunesdb.c:1836
 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:1613
+#: ../src/file_itunesdb.c:1854
 msgid "Now writing database. Please wait..."
 msgstr "Skriver nu databas. Vänta..."
 
-#: src/file_itunesdb.c:1659
+#: ../src/file_itunesdb.c:1901
 #, c-format
 msgid "Extended information file not deleted: '%s'"
 msgstr "Filen med utökad information inte borttagen: '%s'"
 
-#: src/file_itunesdb.c:1745
+#: ../src/file_itunesdb.c:1987
 #, c-format
 msgid "%s: Database saved"
 msgstr "%s: Databas sparad"
 
-#: src/file_itunesdb.c:1749
+#: ../src/file_itunesdb.c:1991
 #, c-format
 msgid "%s: Changes saved"
 msgstr "%s: Ändringar sparade"
 
-#: src/fileselection.c:127
+#: ../src/fileselection.c:128
 msgid "Successfully added files"
 msgstr "Filer tillagda med lyckat resultat"
 
-#: src/fileselection.c:129
+#: ../src/fileselection.c:130
 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:157
+#: ../src/fileselection.c:160
 msgid "Add Files"
 msgstr "Lägg till filer"
 
 #. Create the file chooser, and handle the response
-#: src/fileselection.c:250
+#: ../src/fileselection.c:253
 msgid "Add Playlists"
 msgstr "Lägg till spellistor"
 
 #. Create the file chooser, and handle the response
-#: src/fileselection.c:297
+#: ../src/fileselection.c:300
 msgid "Set Cover"
 msgstr "Ange omslag"
 
-#: src/fileselection.c:718
+#: ../src/fileselection.c:721
 msgid "Select directory to add recursively"
 msgstr "Markera katalog att lägga till rekursivt"
 
-#: src/fileselection.c:989
+#: ../src/fileselection.c:992
 msgid "Ok"
 msgstr "Ok"
 
-#: src/fileselection.c:998
+#: ../src/fileselection.c:1001
 msgid "Cancel"
 msgstr "Avbryt"
 
-#: src/getopt.c:681
+#: ../src/flacfile.c:33
+#, fuzzy, c-format
+msgid "'%s' does not appear to be an FLAC audio file.\n"
+msgstr "'%s' verkar inte vara en mp4-ljudfil.\n"
+
+#: ../src/flacfile.c:52
+#, fuzzy, c-format
+msgid "Error retrieving tags for '%s'.\n"
+msgstr "Fel vid skrivning till '%s'.\n"
+
+#: ../src/flacfile.c:119
+#, fuzzy, c-format
+msgid ""
+"Import of '%s' failed: FLAC not supported without the FLAC library. You must "
+"compile the gtkpod source together with the FLAC library.\n"
+msgstr ""
+"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/flacfile.c:125
+#, fuzzy, c-format
+msgid ""
+"FLAC metadata update for '%s' failed: FLAC not supported without the FLAC "
+"library. You must compile the gtkpod source together with the FLAC 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/getopt.c:681
 #, c-format
 msgid "%s: option `%s' is ambiguous\n"
 msgstr "%s: väljaren '%s' är tvetydig\n"
 
-#: src/getopt.c:706
+#: ../src/getopt.c:706
 #, c-format
 msgid "%s: option `--%s' doesn't allow an argument\n"
 msgstr "%s: väljaren `--%s' tillåter inte något argument\n"
 
-#: src/getopt.c:711
+#: ../src/getopt.c:711
 #, c-format
 msgid "%s: option `%c%s' doesn't allow an argument\n"
 msgstr "%s: väljaren `%c%s' tillåter inte något argument\n"
 
-#: src/getopt.c:729 src/getopt.c:902
+#: ../src/getopt.c:729 ../src/getopt.c:902
 #, c-format
 msgid "%s: option `%s' requires an argument\n"
 msgstr "%s: väljaren `%s' kräver ett argument\n"
 
 #. --option
-#: src/getopt.c:758
+#: ../src/getopt.c:758
 #, c-format
 msgid "%s: unrecognized option `--%s'\n"
 msgstr "%s: väljaren '--%s' känns inte igen\n"
 
 #. +option or -option
-#: src/getopt.c:762
+#: ../src/getopt.c:762
 #, c-format
 msgid "%s: unrecognized option `%c%s'\n"
 msgstr "%s: väljaren '%c%s' känns inte igen\n"
 
 #. 1003.2 specifies the format of this message.
-#: src/getopt.c:788
+#: ../src/getopt.c:788
 #, c-format
 msgid "%s: illegal option -- %c\n"
 msgstr "%s: felaktig väljare --%c\n"
 
-#: src/getopt.c:791
+#: ../src/getopt.c:791
 #, c-format
 msgid "%s: invalid option -- %c\n"
 msgstr "%s: ogiltig väljare -- %c\n"
 
 #. 1003.2 specifies the format of this message.
-#: src/getopt.c:821 src/getopt.c:951
+#: ../src/getopt.c:821 ../src/getopt.c:951
 #, c-format
 msgid "%s: option requires an argument -- %c\n"
 msgstr "%s: väljaren kräver ett argument --%c\n"
 
-#: src/getopt.c:868
+#: ../src/getopt.c:868
 #, c-format
 msgid "%s: option `-W %s' is ambiguous\n"
 msgstr "%s: väljaren `-W %s' är tvetydig\n"
 
-#: src/getopt.c:886
+#: ../src/getopt.c:886
 #, c-format
 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:383
+#: ../src/info.c:383
 msgid "n/c"
 msgstr "okänt"
 
-#: src/info.c:388 src/info.c:835
+#: ../src/info.c:388 ../src/info.c:835
 msgid "offline"
 msgstr "nerkopplad"
 
-#: src/info.c:483
+#: ../src/info.c:483
 #, c-format
 msgid " P:%d T:%d/%d"
 msgstr " L:%d S:%d/%d"
 
-#: src/info.c:777
+#: ../src/info.c:777
 msgid "B"
 msgstr "byte"
 
-#: src/info.c:777
+#: ../src/info.c:777
 msgid "kB"
 msgstr "Kibyte"
 
-#: src/info.c:777
+#: ../src/info.c:777
 msgid "TB"
 msgstr "Tibyte"
 
-#: src/info.c:820
+#: ../src/info.c:820
 #, c-format
 msgid " %s Free"
 msgstr " %s fritt"
 
-#: src/info.c:825
+#: ../src/info.c:825
 #, c-format
 msgid " %s Pending"
 msgstr " %s återstår"
 
-#: src/info.c:830
+#: ../src/info.c:830
 msgid " disconnected"
 msgstr " nerkopplad"
 
-#: src/info.c:881
-#, fuzzy
+#: ../src/info.c:881
 msgid "No database or playlist selected"
-msgstr "Ingen spellista markerad"
+msgstr "Ingen databas eller spellista markerad"
 
-#: src/info.c:886
+#: ../src/info.c:886
 msgid "No tracks selected"
 msgstr "Inga spår markerade"
 
-#: src/info.c:891
+#: ../src/info.c:891
 msgid "No playlist selected"
 msgstr "Ingen spellista markerad"
 
-#: src/info.c:896
-#, fuzzy
+#: ../src/info.c:896
 msgid "No iPod or iPod playlist selected"
-msgstr "Ingen spellista markerad"
+msgstr "Ingen iPod eller iPod-spellista markerad"
 
-#: src/md5.c:187
-msgid "Hashed file is 0 bytes long\n"
-msgstr "Filen med checksumma har storleken 0 byte\n"
+#. Strings used several times
+#: ../src/ipod_init.c:48
+msgid "Select or enter your model"
+msgstr ""
 
-#: 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/ipod_init.c:79 ../src/repository.c:546 ../src/repository.c:2369
+msgid "Select mountpoint"
+msgstr "Markera monteringspunkt"
 
-#: src/misc.c:79
+#: ../src/ipod_init.c:359
+#, fuzzy, c-format
+msgid "Error initialising iPod: %s\n"
+msgstr "Fel vid skrivning till '%s'.\n"
+
+#: ../src/ipod_init.c:366
+msgid "Error initialising iPod, unknown error\n"
+msgstr ""
+
+#: ../src/ipod_init.c:422
+#, fuzzy, c-format
+msgid "<b>Please select your iPod model at </b><i>%s</i>"
+msgstr "<b>Välj monteringsplats och iPod-modell</b>"
+
+#: ../src/misc.c:86
 #, c-format
 msgid ""
 "gtkpod Version %s: Cross-Platform Multi-Lingual Interface to Apple's iPod"
@@ -3427,9 +3910,10 @@
 "gtkpod version %s: Plattformsoberoende flerspråkigt gränssnitt för Apples "
 "iPodâ„¢."
 
-#: src/misc.c:83
+#: ../src/misc.c:90
+#, fuzzy
 msgid ""
-"(C) 2002 - 2005\n"
+"(C) 2002 - 2007\n"
 "Jorg Schuler (jcsjcs at users dot sourceforge dot net)\n"
 "Corey Donohoe (atmos at atmos dot org)\n"
 "\n"
@@ -3441,7 +3925,7 @@
 "\n"
 "\n"
 
-#: src/misc.c:89
+#: ../src/misc.c:96
 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 "
@@ -3475,7 +3959,7 @@
 "\n"
 "\n"
 
-#: src/misc.c:97
+#: ../src/misc.c:104
 msgid ""
 "Patches were supplied by the following people (list may be incomplete -- "
 "please contact me)\n"
@@ -3485,24 +3969,24 @@
 "ofullständig: kontakta mig då gärna)\n"
 "\n"
 
-#: src/misc.c:99
+#: ../src/misc.c:106
 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:101
+#: ../src/misc.c:108
 msgid "Hiroshi Kawashima: Japanese charset autodetecion feature\n"
 msgstr ""
 "Hiroshi Kawashima: Funktion för automatisk detektering av japansk "
 "teckenkodning\n"
 
-#: src/misc.c:103
+#: ../src/misc.c:110
 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:105
+#: ../src/misc.c:112
 msgid ""
 "Walter Bell: correct handling of DND URIs with escaped characters and/or cr/"
 "newlines at the end\n"
@@ -3510,15 +3994,15 @@
 "Walter Bell: riktig hantering av drag och släpp information med "
 "specialtecken och/eller returtecken/nyrader i slutet\n"
 
-#: src/misc.c:107
+#: ../src/misc.c:114
 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:109
+#: ../src/misc.c:116
 msgid "Chris Cutler: automatic creation of various playlist types\n"
 msgstr "Chris Cutler: skapa olika sorters spellistor automatiskt\n"
 
-#: src/misc.c:111
+#: ../src/misc.c:118
 msgid ""
 "Graeme Wilford: reading and writing of the 'Composer' ID3 tags, progress "
 "dialogue during sync\n"
@@ -3526,7 +4010,7 @@
 "Graeme Wilford: läsning och skrivning av ID3-taggar för 'Kompositör', "
 "förloppsdialog under synkronisering\n"
 
-#: src/misc.c:113
+#: ../src/misc.c:120
 msgid ""
 "Edward Matteucci: debugging, special playlist creation, most of the volume "
 "normalizing code\n"
@@ -3534,26 +4018,26 @@
 "Edward Matteucci: felsökning, skapa speciella spellistor, den största delen "
 "av koden för volymnormalisering\n"
 
-#: src/misc.c:115
+#: ../src/misc.c:122
 msgid "Jens Lautenbach: some optical improvements\n"
 msgstr "Jens Lautenbach: några visuella förbättringar\n"
 
-#: src/misc.c:117
+#: ../src/misc.c:124
 msgid "Alex Tribble: iPod eject patch\n"
 msgstr "Alex Tribble: programfix för att mata ut iPod\n"
 
-#: src/misc.c:119
+#: ../src/misc.c:126
 msgid "Yaroslav Halchenko: Orphaned and dangling tracks handling\n"
 msgstr "Yaroslav Halchenko: hantering av övergivna filer och saknade spår\n"
 
-#: src/misc.c:121
+#: ../src/misc.c:128
 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:123
+#: ../src/misc.c:130
 msgid ""
 "Ero Carrera: Filename validation and quick sync when copying tracks from the "
 "iPod\n"
@@ -3561,25 +4045,25 @@
 "Ero Carrera: validering av filnamn och snabbsynkronisering när spår kopieras "
 "från iPod\n"
 
-#: src/misc.c:125
+#: ../src/misc.c:132
 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:127
+#: ../src/misc.c:134
 msgid "Armando Atienza: Support with external playcounts\n"
 msgstr "Armando Atienza: stöd med externa spelningsantal\n"
 
-#: src/misc.c:129
+#: ../src/misc.c:136
 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:131
+#: ../src/misc.c:138
 msgid "Jim Hall: Decent INSTALL file\n"
 msgstr "Jim Hall: hygglig INSTALL-fil\n"
 
-#: src/misc.c:133
+#: ../src/misc.c:140
 msgid ""
 "Juergen Helmers, Markus Gaugusch: Conversion scripts to sync calendar/"
 "contacts to the iPod\n"
@@ -3588,23 +4072,23 @@
 "kalender och kontakter i iPod\n"
 
 #. J"urgen!
-#: src/misc.c:135
+#: ../src/misc.c:142
 msgid "Flavio Stanchina: bugfixes\n"
 msgstr "Flavio Stanchina: felrättningar\n"
 
-#: src/misc.c:137
+#: ../src/misc.c:144
 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:139
+#: ../src/misc.c:146
 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:142
+#: ../src/misc.c:149
 msgid ""
 "Christoph Kunz: address compatibility issues when writing id3v2.4 type mp3 "
 "tags\n"
@@ -3612,43 +4096,43 @@
 "Christoph Kunz: hantering av kompatibilitetsfrågor när MP3-taggar av typ "
 "id3v2.4 skrivs\n"
 
-#: src/misc.c:145
-#, fuzzy
+#: ../src/misc.c:152
 msgid ""
 "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"
+"James Ligget:\n"
+"     ersättning av gamla GTK dialogrutor för filmarkering med nya GTK "
+"dialogrutor för filval, omgjort system för användarinställningar.\n"
 
-#: src/misc.c:150
+#: ../src/misc.c:157
 msgid "Daniel Kercher: sync scripts for abook and webcalendar\n"
 msgstr "Daniel Kercher: synkroniseringsskript för abook och webbkalender\n"
 
-#: src/misc.c:153
+#: ../src/misc.c:160
 msgid "Clinton Gormley: sync scripts for thunderbird\n"
 msgstr "Clinton Gormley: synkroniseringsskript för thunderbird\n"
 
-#: src/misc.c:156
+#: ../src/misc.c:163
 msgid "Sebastien Beridot: sync script for ldif addressbook format\n"
 msgstr "Sebastien Beridot: synkroniseringsskript för LDIF-adressboksformat\n"
 
-#: src/misc.c:159
+#: ../src/misc.c:166
 msgid "Sebastian Scherer: sync script for kNotes\n"
 msgstr "Sebastian Scherer: synkroniseringsskript för Knotes\n"
 
-#: src/misc.c:162
+#: ../src/misc.c:169
 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:165
+#: ../src/misc.c:172
 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:168
+#: ../src/misc.c:175
 msgid ""
 "Iain Benson: support for compilation tag in mp3 files and separate display "
 "of compilations in the sort tab.\n"
@@ -3656,7 +4140,7 @@
 "Iain Benson: stöd för samlingstaggen i mp3-filer och separat visning av "
 "samlingar i sorteringsfliken.\n"
 
-#: src/misc.c:170
+#: ../src/misc.c:177
 msgid ""
 "Nicolas Chariot: icons of buttons\n"
 "\n"
@@ -3666,11 +4150,11 @@
 "\n"
 "\n"
 
-#: src/misc.c:174
+#: ../src/misc.c:181
 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:176
+#: ../src/misc.c:183
 msgid ""
 "    gnutools: (mktunes.pl, ported to C) reading and writing of iTunesDB "
 "(http://www.gnu.org/software/gnupod/)\n"
@@ -3678,7 +4162,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:178
+#: ../src/misc.c:185
 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"
@@ -3686,40 +4170,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:180
+#: ../src/misc.c:187
 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:182
+#: ../src/misc.c:189
 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:185
+#: ../src/misc.c:192
 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:200
+#: ../src/misc.c:207
 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:202
+#: ../src/misc.c:209
 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:204
+#: ../src/misc.c:211
 msgid "Hebrew: Assaf Gillat (gillata at gmail dot com)\n"
 msgstr "Hebreiska: Assaf Gillat (gillata snabela gmail punkt com)\n"
 
-#: src/misc.c:206
+#: ../src/misc.c:213
 msgid ""
 "Italian:  Edward Matteucci (edward_matteucc at users dot sourceforge dot "
 "net)\n"
@@ -3727,52 +4211,68 @@
 "Italienska:  Edward Matteucci (edward_matteucc snabela users punkt "
 "sourceforge punkt net)\n"
 
-#: src/misc.c:208
+#: ../src/misc.c:215
 msgid "Japanese: Ayako Sano\n"
 msgstr "Japanska: Ayako Sano\n"
 
-#: src/misc.c:210
+#: ../src/misc.c:217
 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:212
+#: ../src/misc.c:219
 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:936
-#, fuzzy, c-format
+#: ../src/misc.c:975
+#, c-format
 msgid "Could not process '%s' (no filename available)"
-msgstr "inget lokalt filnamn tillgängligt"
+msgstr "Kunde inte behandla '%s' (inget filnamn tillgängligt)"
 
-#: src/misc.c:1084
+#: ../src/misc.c:1129
 #, c-format
 msgid "Unknown token '%%%c' in template '%s'"
 msgstr "Okänd beteckning '%%%c' i mallen '%s'"
 
-#: src/misc.c:1166
+#: ../src/misc.c:1212
 #, 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:1247
+#: ../src/misc.c:1298
 #, c-format
 msgid "Error creating %s: %s\n"
 msgstr "Fel när %s skulle skapas: %s\n"
 
-#. gint id,
-#. gboolean modal,
-#: src/misc_confirm.c:71
-msgid "Warning"
-msgstr "Varning"
+#: ../src/misc.c:1777
+#, fuzzy, c-format
+msgid ""
+"Writing preferences file '%s' failed (%s).\n"
+"\n"
+msgstr ""
+"Körning av '%s' misslyckades.\n"
+"\n"
 
+#: ../src/misc.c:1779
+msgid "unspecified error"
+msgstr ""
+
+#: ../src/misc.c:1787
+#, c-format
+msgid ""
+"Writing preferences to the iPod (%s) failed: could not get path to Control "
+"Directory.\n"
+"\n"
+msgstr ""
+
 #. title
-#: src/misc_confirm.c:72
-msgid "The following has occured:"
+#: ../src/misc_confirm.c:71
+#, fuzzy
+msgid "The following has occurred:"
 msgstr "Följande har inträffat:"
 
-#: src/misc_confirm.c:123
+#: ../src/misc_confirm.c:122
 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 "
@@ -3788,13 +4288,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:127
+#: ../src/misc_confirm.c:126
 msgid "Delete Track Completely from iPod?"
-msgid_plural "Delete Tracks Completey from iPod?"
+msgid_plural "Delete Tracks Completely 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:179
+#: ../src/misc_confirm.c:137 ../src/misc_confirm.c:178
 #, c-format
 msgid ""
 "Are you sure you want to remove the following track from the playlist \"%s\"?"
@@ -3806,13 +4306,13 @@
 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:183
+#: ../src/misc_confirm.c:141 ../src/misc_confirm.c:182
 msgid "Remove Track From Playlist?"
 msgid_plural "Remove Tracks From Playlist?"
 msgstr[0] "Ta bort spår från spellista?"
 msgstr[1] "Ta bort spår från spellista?"
 
-#: src/misc_confirm.c:164
+#: ../src/misc_confirm.c:163
 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 "
@@ -3828,13 +4328,13 @@
 "Är du säker på att du vill ta bort följande spår helt från hårddisken? Antal "
 "spellistor som spåret finns i anges inom parentes."
 
-#: src/misc_confirm.c:168
+#: ../src/misc_confirm.c:167
 msgid "Delete Track from Harddisk?"
 msgid_plural "Delete Tracks from Harddisk?"
 msgstr[0] "Ta bort spår från hårddisk?"
 msgstr[1] "Ta bort spår från hårddisk?"
 
-#: src/misc_confirm.c:193
+#: ../src/misc_confirm.c:192
 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 "
@@ -3850,54 +4350,54 @@
 "Ä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:197
+#: ../src/misc_confirm.c:196
 msgid "Remove Track from Local Database?"
 msgid_plural "Remove Tracks from Local Database?"
 msgstr[0] "Ta bort spår från lokal databas?"
 msgstr[1] "Ta bort spår från lokal databas?"
 
-#: src/misc_confirm.c:259
+#: ../src/misc_confirm.c:261
 #, c-format
 msgid "Deleted one track completely from iPod"
 msgid_plural "Deleted %d tracks completely from iPod"
 msgstr[0] "Tog bort ett spår helt från iPod"
 msgstr[1] "Tog bort %d spår helt från iPod"
 
-#: src/misc_confirm.c:265 src/misc_confirm.c:289
+#: ../src/misc_confirm.c:267 ../src/misc_confirm.c:291
 #, c-format
 msgid "Deleted %d track from playlist '%s'"
 msgid_plural "Deleted %d tracks from playlist '%s'"
 msgstr[0] "Tog bort %d spår från spellistan '%s'"
 msgstr[1] "Tog bort %d spår från spellistan '%s'"
 
-#: src/misc_confirm.c:283
+#: ../src/misc_confirm.c:285
 #, c-format
 msgid "Deleted one track from harddisk"
 msgid_plural "Deleted %d tracks from harddisk"
 msgstr[0] "Tog bort ett spår från hårddisken"
 msgstr[1] "Tog bort %d spår från hårddisken"
 
-#: src/misc_confirm.c:295
+#: ../src/misc_confirm.c:297
 #, c-format
 msgid "Deleted track from local database"
 msgid_plural "Deleted %d tracks from local database"
 msgstr[0] "Tog bort spår från den lokala databasen"
 msgstr[1] "Tog bort %d spår från den lokala databasen"
 
-#: src/misc_confirm.c:438
+#: ../src/misc_confirm.c:442
 msgid "Cannot remove entry 'All'"
 msgstr "Kan inte ta bort raden 'Alla'"
 
-#: src/misc_confirm.c:532
+#: ../src/misc_confirm.c:536
 #, c-format
 msgid "Removed all %d tracks from the iPod"
 msgstr "Tog bort alla %d spår från iPod"
 
-#: src/misc_confirm.c:537
+#: ../src/misc_confirm.c:541
 msgid "Removed all podcasts from the iPod"
 msgstr "Tog bort alla podradiosändningar från iPod"
 
-#: src/misc_confirm.c:546 src/misc_confirm.c:620
+#: ../src/misc_confirm.c:550 ../src/misc_confirm.c:624
 #, c-format
 msgid "Deleted playlist '%s' including %d member track"
 msgid_plural "Deleted playlist '%s' including %d member tracks"
@@ -3905,32 +4405,32 @@
 msgstr[1] "Tog bort spellistan '%s' inklusive %d ingående spår"
 
 #. first use playlist name
-#: src/misc_confirm.c:562 src/misc_confirm.c:636
+#: ../src/misc_confirm.c:566 ../src/misc_confirm.c:640
 #, c-format
 msgid "Deleted playlist '%s'"
 msgstr "Tog bort spellistan '%s'"
 
-#: src/misc_confirm.c:596
+#: ../src/misc_confirm.c:600
 #, 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:613
+#: ../src/misc_confirm.c:617
 #, c-format
 msgid "Removed all %d tracks from the database"
 msgstr "Tog bort alla %d spår från databasen"
 
-#: src/misc_confirm.c:691
+#: ../src/misc_confirm.c:695
 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:696
+#: ../src/misc_confirm.c:700
 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:704
+#: ../src/misc_confirm.c:708
 #, c-format
 msgid ""
 "Are you sure you want to delete playlist '%s' and the following track "
@@ -3947,12 +4447,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:715 src/misc_confirm.c:770
+#: ../src/misc_confirm.c:719 ../src/misc_confirm.c:774
 #, 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:741
+#: ../src/misc_confirm.c:745
 #, c-format
 msgid ""
 "Are you sure you want to delete playlist '%s' and remove the following track "
@@ -3969,11 +4469,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:749
+#: ../src/misc_confirm.c:753
 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:758
+#: ../src/misc_confirm.c:762
 #, c-format
 msgid ""
 "Are you sure you want to delete playlist '%s' and remove the following track "
@@ -3990,7 +4490,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:859
+#: ../src/misc_confirm.c:841
 msgid ""
 "Data has been changed and not been saved.\n"
 "OK to exit gtkpod?"
@@ -3998,127 +4498,147 @@
 "Data har ändrats och inte sparats.\n"
 "Ok att avsluta gtkpod?"
 
-#: src/misc_conversion.c:67
+#: ../src/misc_conversion.c:66
 msgid "File type"
 msgstr "Filtyp"
 
-#: src/misc_conversion.c:68
+#: ../src/misc_conversion.c:67
 msgid "PC File"
 msgstr "PC-fil"
 
-#: src/misc_conversion.c:69
+#: ../src/misc_conversion.c:68
 msgid "iPod File"
 msgstr "iPod-fil"
 
-#: src/misc_conversion.c:70
+#: ../src/misc_conversion.c:69
 msgid "iPod ID"
 msgstr "iPod-id"
 
 #. 10
-#: src/misc_conversion.c:71
+#: ../src/misc_conversion.c:70
 msgid "Track Nr (#)"
 msgstr "Spårnummer (#)"
 
-#: src/misc_conversion.c:72
+#: ../src/misc_conversion.c:71
 msgid "Transferred"
 msgstr "Överförd"
 
-#: src/misc_conversion.c:73
+#: ../src/misc_conversion.c:72
 msgid "File Size"
 msgstr "Filstorlek"
 
-#: src/misc_conversion.c:74
+#: ../src/misc_conversion.c:73
 msgid "Play Time"
 msgstr "Spelningstid"
 
 #. 20
-#: src/misc_conversion.c:81
+#: ../src/misc_conversion.c:80
 msgid "Date played"
 msgstr "Senast spelad"
 
-#: src/misc_conversion.c:83
+#: ../src/misc_conversion.c:82
 msgid "Volume"
 msgstr "Volym"
 
-#: src/misc_conversion.c:84
+#: ../src/misc_conversion.c:83
 msgid "Soundcheck"
 msgstr "Ljudkontroll"
 
 #. 25
-#: src/misc_conversion.c:86
+#: ../src/misc_conversion.c:85
 msgid "CD Nr"
 msgstr "Cd-nummer"
 
-#: src/misc_conversion.c:89
+#: ../src/misc_conversion.c:88
 msgid "Category"
 msgstr "Kategori"
 
-#: src/misc_conversion.c:90
+#: ../src/misc_conversion.c:89
 msgid "Description"
 msgstr "Beskrivning"
 
 #. 30
-#: src/misc_conversion.c:91
+#: ../src/misc_conversion.c:90
 msgid "Podcast URL"
 msgstr "Podradio webbadress"
 
-#: src/misc_conversion.c:92
+#: ../src/misc_conversion.c:91
 msgid "Podcast RSS"
 msgstr "Podradio RSS"
 
-#: src/misc_conversion.c:93
+#: ../src/misc_conversion.c:92
 msgid "Subtitle"
 msgstr "Underrubrik"
 
-#: src/misc_conversion.c:94
+#: ../src/misc_conversion.c:93
 msgid "Date released"
 msgstr "Utgivningsdatum"
 
-#: src/misc_conversion.c:95
+#: ../src/misc_conversion.c:94
 msgid "Checked"
 msgstr "Kontrollerad"
 
 #. 35
-#: src/misc_conversion.c:96
-#, fuzzy
+#: ../src/misc_conversion.c:95
 msgid "Start time"
-msgstr "Sista gången"
+msgstr "Starttid"
 
-#: src/misc_conversion.c:97
-#, fuzzy
+#: ../src/misc_conversion.c:96
 msgid "Stop time"
-msgstr "Stoppa"
+msgstr "Sluttid"
 
-#: src/misc_conversion.c:98
+#: ../src/misc_conversion.c:97
 msgid "Remember Playback Position"
-msgstr ""
+msgstr "Kom ihåg uppspelningsposition"
 
-#: src/misc_conversion.c:99
+#: ../src/misc_conversion.c:98
 msgid "Skip when Shuffling"
-msgstr ""
+msgstr "Hoppa över vid blandning"
 
-#: src/misc_conversion.c:100
+#: ../src/misc_conversion.c:99
 msgid "Artwork Path"
+msgstr "Sökväg till omslagsbilder"
+
+#. 40
+#: ../src/misc_conversion.c:100
+msgid "Media Type"
 msgstr ""
 
-#: src/misc_conversion.c:113
+#: ../src/misc_conversion.c:102
+msgid "TV Episode"
+msgstr ""
+
+#: ../src/misc_conversion.c:103
+msgid "TV Network"
+msgstr ""
+
+#: ../src/misc_conversion.c:104
+msgid "Season Nr"
+msgstr ""
+
+#. 45
+#: ../src/misc_conversion.c:105
+msgid "Episode Nr"
+msgstr ""
+
+#: ../src/misc_conversion.c:118
 msgid "Name of file on PC, if available"
 msgstr "Filens namn på PC:n, om tillgängligt"
 
-#: src/misc_conversion.c:114
+#: ../src/misc_conversion.c:119
 msgid "Name of file on the iPod"
 msgstr "Filens namn på iPod"
 
 #. 10
-#: src/misc_conversion.c:116
+#: ../src/misc_conversion.c:121
 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:117
+#: ../src/misc_conversion.c:122
 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:123
+#: ../src/misc_conversion.c:128
 msgid ""
 "Supposedly something that tells the iPod to increase or decrease the "
 "playback speed"
@@ -4126,32 +4646,32 @@
 "Antagligen något som talar om för iPod att öka eller minska "
 "uppspelningshastigheten"
 
-#: src/misc_conversion.c:125
+#: ../src/misc_conversion.c:130
 msgid "Number of times the track has been played"
 msgstr "Antal gånger spåret har spelats"
 
-#: src/misc_conversion.c:126
+#: ../src/misc_conversion.c:131
 msgid "Star rating from 0 to 5"
 msgstr "Betyg med stjärnor från 0 till 5"
 
-#: src/misc_conversion.c:127
+#: ../src/misc_conversion.c:132
 msgid "Date and time track has been added"
 msgstr "Datum och tid då spåret lades till"
 
 #. 20
-#: src/misc_conversion.c:128
+#: ../src/misc_conversion.c:133
 msgid "Date and time track has last been played"
 msgstr "Datum och tid då spåret senast spelades"
 
-#: src/misc_conversion.c:129
+#: ../src/misc_conversion.c:134
 msgid "Date and time track has last been modified"
 msgstr "Datum och tid då spåret senast ändrades"
 
-#: src/misc_conversion.c:130
+#: ../src/misc_conversion.c:135
 msgid "Manual volume adjust"
 msgstr "Manuell volymjustering"
 
-#: src/misc_conversion.c:131
+#: ../src/misc_conversion.c:136
 msgid ""
 "Volume adjust in dB (replay gain) -- you need to activate 'soundcheck' on "
 "the iPod"
@@ -4159,83 +4679,84 @@
 "Volymjustering i dB (spelningsnivå): Du måste aktivera 'ljudkontroll' på iPod"
 
 #. 25
-#: src/misc_conversion.c:134
+#: ../src/misc_conversion.c:139
 msgid "CD Nr. and total number of CDS in set"
 msgstr "Cd-nummer och totalt antal cd i albumet"
 
-#: src/misc_conversion.c:137
+#: ../src/misc_conversion.c:142
 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:138
+#: ../src/misc_conversion.c:143
 msgid "Accessible by selecting the center button on the iPod."
 msgstr "Kan kommas åt genom att trycka på iPod-mittenknappen."
 
-#: src/misc_conversion.c:142
+#: ../src/misc_conversion.c:147
 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:649
+#: ../src/misc_conversion.c:713
 #, 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:659
+#: ../src/misc_conversion.c:723
 #, 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:676
+#: ../src/misc_conversion.c:740
 #, c-format
 msgid "The URI '%s' is invalid"
 msgstr "Webbadressen '%s' är ogiltig"
 
-#: src/misc_conversion.c:688
+#: ../src/misc_conversion.c:752
 #, c-format
 msgid "The hostname of the URI '%s' is invalid"
 msgstr "Värddator för webbadressen '%s' är ogiltig"
 
-#: src/misc_conversion.c:704
+#: ../src/misc_conversion.c:768
 #, 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:430
+#: ../src/misc_playlist.c:67 ../src/misc_playlist.c:94
+#: ../src/misc_playlist.c:429
 msgid "Please enter a name for the new playlist"
 msgstr "Skriv in ett namn på den nya spellistan"
 
-#: src/misc_playlist.c:155
+#: ../src/misc_playlist.c:154
 msgid "AR:"
 msgstr "AR:"
 
-#: src/misc_playlist.c:158
+#: ../src/misc_playlist.c:157
 msgid "AL:"
 msgstr "AL:"
 
-#: src/misc_playlist.c:161
+#: ../src/misc_playlist.c:160
 msgid "GE:"
 msgstr "GE:"
 
-#: src/misc_playlist.c:164
+#: ../src/misc_playlist.c:163
 msgid "CO:"
 msgstr "KO:"
 
-#: src/misc_playlist.c:167
+#: ../src/misc_playlist.c:166
 msgid "YE:"
 msgstr "Ã…R:"
 
-#: src/misc_playlist.c:195
+#: ../src/misc_playlist.c:194
 msgid "Unknown"
 msgstr "Okänd"
 
-#: src/misc_playlist.c:273
+#: ../src/misc_playlist.c:272
 #, c-format
 msgid "Random (%d)"
 msgstr "Slumpmässig (%d)"
 
-#: src/misc_playlist.c:298
+#: ../src/misc_playlist.c:297
 msgid ""
 "Auto Store of track view disabled.\n"
 "\n"
@@ -4243,11 +4764,11 @@
 "Automatisk lagring av spårvy inaktiverad.\n"
 "\n"
 
-#: src/misc_playlist.c:357
+#: ../src/misc_playlist.c:356
 msgid "Not Listed"
 msgstr "Inte listad"
 
-#: src/misc_playlist.c:407
+#: ../src/misc_playlist.c:406
 #, c-format
 msgid "Created playlist '%s' with %d track."
 msgid_plural "Created playlist '%s' with %d tracks."
@@ -4255,68 +4776,68 @@
 msgstr[1] "Skapade spellistan '%s' med %d spår."
 
 #. n==0
-#: src/misc_playlist.c:418
+#: ../src/misc_playlist.c:417
 msgid "No tracks available, playlist not created"
 msgstr "Inga spår tillgängliga, spellistan skapades inte"
 
-#: src/misc_playlist.c:544
+#: ../src/misc_playlist.c:543
 #, c-format
 msgid "Most Listened (%d)"
 msgstr "Oftast lyssnade på (%d)"
 
-#: src/misc_playlist.c:585
+#: ../src/misc_playlist.c:584
 msgid "Never Listened"
 msgstr "Aldrig lyssnade på"
 
-#: src/misc_playlist.c:625
+#: ../src/misc_playlist.c:624
 #, c-format
 msgid "Best Rated (%d)"
 msgstr "Med bäst betyg (%d)"
 
-#: src/misc_playlist.c:667
+#: ../src/misc_playlist.c:666
 msgid "Unrated tracks"
 msgstr "Spår utan betyg"
 
-#: src/misc_playlist.c:672
+#: ../src/misc_playlist.c:671
 #, c-format
 msgid "Rated %d"
 msgstr "Betyg %d"
 
-#: src/misc_playlist.c:715
+#: ../src/misc_playlist.c:714
 #, c-format
 msgid "Recent (%d)"
 msgstr "Senaste (%d)"
 
-#: src/misc_playlist.c:754
+#: ../src/misc_playlist.c:753
 msgid "Last Time"
 msgstr "Sista gången"
 
-#: src/misc_playlist.c:845
+#: ../src/misc_playlist.c:844
 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:855
+#: ../src/misc_playlist.c:854
 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:883
+#: ../src/misc_playlist.c:882
 msgid "Dangling tracks with no files on PC were removed."
 msgstr "Spår med saknade filer utan filer på PC:n har tagits bort."
 
-#: src/misc_playlist.c:917
+#: ../src/misc_playlist.c:916
 #, c-format
 msgid "Processing '%s'"
 msgstr "Behandlar '%s'"
 
-#: src/misc_playlist.c:941
+#: ../src/misc_playlist.c:943
 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:974
+#: ../src/misc_playlist.c:976
 msgid "Track"
 msgstr "Spår"
 
-#: src/misc_playlist.c:1017
+#: ../src/misc_playlist.c:1019
 msgid ""
 "You did not import the existing iTunesDB. This is most likely incorrect and "
 "will result in the loss of the existing database.\n"
@@ -4332,19 +4853,19 @@
 "du avbryter, kan du importera befintlig databas innan du använder den här "
 "funktionen igen.\n"
 
-#: src/misc_playlist.c:1031
+#: ../src/misc_playlist.c:1033
 msgid "Creating a tree of known files"
 msgstr "Skapar träd med kända filer"
 
-#: src/misc_playlist.c:1075
+#: ../src/misc_playlist.c:1077
 msgid "Checking iPOD files against known files in DB"
 msgstr "Kontrollerar iPod-filer med kända filer i databasen"
 
-#: src/misc_playlist.c:1118
+#: ../src/misc_playlist.c:1120
 msgid "Orphaned"
 msgstr "Övergivna"
 
-#: src/misc_playlist.c:1145
+#: ../src/misc_playlist.c:1147
 #, c-format
 msgid ""
 "The following orphaned file had already been added to the iPod again. It "
@@ -4357,12 +4878,12 @@
 "%s\n"
 "\n"
 
-#: src/misc_playlist.c:1173
+#: ../src/misc_playlist.c:1175
 #, 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:1197
+#: ../src/misc_playlist.c:1199
 #, c-format
 msgid ""
 "The following dangling track has a file on PC.\n"
@@ -4381,7 +4902,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:1202
+#: ../src/misc_playlist.c:1204
 #, c-format
 msgid ""
 "The following dangling track doesn't have file on PC. \n"
@@ -4398,31 +4919,31 @@
 
 #. we want unique window for each
 #. gboolean modal,
-#: src/misc_playlist.c:1209
+#: ../src/misc_playlist.c:1211
 msgid "Dangling Tracks"
 msgstr "Spår med saknade filer"
 
-#: src/misc_playlist.c:1232
+#: ../src/misc_playlist.c:1234
 #, 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:90 src/misc_track.c:364
+#: ../src/misc_track.c:89
 #, 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:199
+#: ../src/misc_track.c:198
 #, 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:206
+#: ../src/misc_track.c:205
 #, c-format
 msgid ""
 "The following duplicate track has not been added to the master play list."
@@ -4434,66 +4955,76 @@
 
 #. gint id,
 #. gboolean modal,
-#: src/misc_track.c:213
+#: ../src/misc_track.c:212
 msgid "Duplicate detection"
 msgstr "Detektering av duplikat"
 
-#: src/misc_track.c:904
+#: ../src/misc_track.c:1269
 msgid "Local Database"
 msgstr "Lokal databas"
 
 #. artwork is set
-#: src/misc_track.c:915
+#: ../src/misc_track.c:1280
 msgid "Embedded or filename was lost"
-msgstr ""
+msgstr "Inbäddad eller förlorat filnamn"
 
-#: src/misc_track.c:919
-#, fuzzy
+#: ../src/misc_track.c:1284
 msgid "Artwork not set"
-msgstr "är inte satt"
+msgstr "Omslagsbild inte angiven"
 
-#: src/misc_track.c:1527
+#: ../src/misc_track.c:1737
+#, fuzzy, c-format
+msgid "Could not find source file for '%s'. Track not copied."
+msgstr "Kunde hitta fil för '%s' på iPod\n"
+
+#: ../src/misc_track.c:1973
 #, c-format
 msgid "drag and drop: ignored '%s'\n"
 msgstr "drag och släpp: ignorerade '%s'\n"
 
-#: src/mp3file.c:1276
+#: ../src/mp3file.c:1282
 #, c-format
 msgid "Error setting ID3 field: %s\n"
 msgstr "Fel när ID3-fält skulle ändras: %s\n"
 
-#: src/mp3file.c:1300 src/mp3file.c:1373 src/mp3file.c:1522 src/mp3file.c:2160
+#: ../src/mp3file.c:1306 ../src/mp3file.c:1399 ../src/mp3file.c:1548
+#: ../src/mp3file.c:2186
 #, c-format
 msgid "ERROR while opening file: '%s' (%s).\n"
 msgstr "FEL när filen skulle öppnas: '%s' (%s).\n"
 
-#: src/mp3file.c:1593
+#: ../src/mp3file.c:1619
 #, c-format
 msgid "ERROR while writing tag to file: '%s' (%s).\n"
 msgstr "FEL när tagg skulle skrivas till filen: '%s' (%s).\n"
 
 #. Tracks with zero play length are ignored by iPod...
-#: src/mp3file.c:2326
+#: ../src/mp3file.c:2352
 #, c-format
 msgid "File \"%s\" has zero play length. Ignoring.\n"
 msgstr "Filen \"%s\" har spelningslängden noll. Ignoreras.\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"
+#: ../src/mp4file.c:227 ../src/mp4file.c:359
+#, fuzzy, c-format
+msgid "'%s' does not appear to be a mp4 audio or video file.\n"
 msgstr "'%s' verkar inte vara en mp4-ljudfil.\n"
 
-#: src/mp4file.c:231 src/mp4file.c:352
+#: ../src/mp4file.c:237 ../src/mp4file.c:369
 #, 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:472
+#: ../src/mp4file.c:478
 #, 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:489
+#, 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:485
+#: ../src/mp4file.c:502
 #, c-format
 msgid ""
 "Import of '%s' failed: m4a/m4p/m4b not supported without the mp4v2 library. "
@@ -4502,7 +5033,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:491
+#: ../src/mp4file.c:508
 #, c-format
 msgid ""
 "m4a/m4p/m4b metadata update for '%s' failed: m4a/m4p/m4b not supported "
@@ -4513,8 +5044,8 @@
 "inte utan biblioteket mp4v2. Du måste kompilera källkoden för gtkpod "
 "tillsammans med biblioteket mp4v2.\n"
 
-#: src/mp4file.c:497
-#, fuzzy, c-format
+#: ../src/mp4file.c:514
+#, 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 "
@@ -4524,238 +5055,295 @@
 "inte utan biblioteket mp4v2. Du måste kompilera källkoden för gtkpod "
 "tillsammans med biblioteket mp4v2.\n"
 
-#: src/prefs.c:307
+#: ../src/oggfile.c:62 ../src/wavfile.c:107
 #, c-format
+msgid "Could not open '%s' for reading.\n"
+msgstr "Kunde inte öppna '%s' för läsning.\n"
+
+#: ../src/oggfile.c:73
+#, fuzzy, c-format
+msgid "'%s' does not appear to be an ogg audio file.\n"
+msgstr "'%s' verkar inte vara en mp4-ljudfil.\n"
+
+#: ../src/oggfile.c:150
+#, fuzzy, c-format
+msgid ""
+"Import of '%s' failed: ogg not supported without the ogg library. You must "
+"compile the gtkpod source together with the ogg library.\n"
+msgstr ""
+"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/oggfile.c:156
+#, fuzzy, c-format
+msgid ""
+"ogg metadata update for '%s' failed: ogg not supported without the ogg "
+"library. You must compile the gtkpod source together with the ogg 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:356
+#, c-format
 msgid "gtkpod version %s usage:\n"
 msgstr "Användning av gtkpod version %s:\n"
 
-#: src/prefs.c:308
+#: ../src/prefs.c:357
 msgid "  -h, --help:   display this message\n"
 msgstr "  -h, --help:   visa det här meddelandet\n"
 
-#: src/prefs.c:309
-msgid "  -p <filename>:increment playcount for file by one\n"
+#: ../src/prefs.c:358
+#, fuzzy
+msgid "  -p <file>:    increment playcount for file by one\n"
 msgstr "  -p <filnamn>: öka spelningsantalet för filen med ett\n"
 
-#: src/prefs.c:310
+#: ../src/prefs.c:359
+msgid "  --hash <file>:print gtkpod hash for file\n"
+msgstr ""
+
+#: ../src/prefs.c:360
 msgid "  -m path:      define the mountpoint of your iPod\n"
 msgstr "  -m sökväg:  definiera monteringspunkt för iPod\n"
 
-#: src/prefs.c:311
+#: ../src/prefs.c:361
 msgid "  --mountpoint: same as '-m'.\n"
 msgstr "  --mountpoint: samma som '-m'.\n"
 
-#: src/prefs.c:312
+#: ../src/prefs.c:362
 msgid "  -a:           import database automatically after start.\n"
 msgstr "  -a:           importera databas automatiskt efter start.\n"
 
-#: src/prefs.c:313
+#: ../src/prefs.c:363
 msgid "  --auto:       same as '-a'.\n"
 msgstr "  --auto:       samma som '-a'.\n"
 
-#: src/prefs_window.c:119
+#: ../src/prefs.c:560
+#, c-format
+msgid "Couldn't create ~/.gtkpod\n"
+msgstr ""
+
+#: ../src/prefs_window.c:134
 msgid "Please select command for 'Play Now'"
 msgstr "Välj kommando för 'Spela nu'"
 
-#: src/prefs_window.c:120
+#: ../src/prefs_window.c:135
 msgid "Please select command for 'Enqueue'"
 msgstr "Välj kommando för 'Köa'"
 
-#: src/prefs_window.c:121
+#: ../src/prefs_window.c:136
 msgid "Please select the mp3gain executable"
 msgstr "Välj körbart program mp3gain"
 
-#: src/prefs_window.c:124
+#: ../src/prefs_window.c:137
+msgid "Please select the aacgain executable"
+msgstr "Välj körbart program accgain"
+
+#: ../src/prefs_window.c:138
 msgid "Select the mserv music root directory"
 msgstr "Välj mserv rotkatalog för musik"
 
-#: src/prefs_window.c:125
+#: ../src/prefs_window.c:139
 msgid "Select the mserv trackinfo root directory"
 msgstr "Välj mserv rotkatalog för spårinformation"
 
-#: src/prefs_window.c:127
-#, fuzzy
-msgid "Please select the aacgain executable"
-msgstr "Välj körbart program mp3gain"
+#: ../src/prefs_window.c:140
+msgid "Select the ogg/vorbis converter command"
+msgstr ""
 
-#: src/prefs_window.c:911 src/prefs_window.c:929
+#: ../src/prefs_window.c:141
+msgid "Select the flac converter command"
+msgstr ""
+
+#: ../src/prefs_window.c:142
+msgid "Select the m4a converter command."
+msgstr ""
+
+#: ../src/prefs_window.c:143
+msgid "Select the mp3 converter command."
+msgstr ""
+
+#: ../src/prefs_window.c:144
+msgid "Select the wav converter command."
+msgstr ""
+
+#: ../src/prefs_window.c:211 ../src/repository.c:662
+#, fuzzy, c-format
+msgid ""
+"<i>Have a look at the scripts provided in '%s'. If you write a new script or "
+"improve an existing one, please send it to jcsjcs at users.sourceforge.net "
+"for inclusion into the next release.</i>"
+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>"
+
+#: ../src/prefs_window.c:986 ../src/prefs_window.c:1004
 msgid "Preferences not updated"
 msgstr "Inställningarna har inte uppdaterats"
 
-#: src/prefs_window.c:938
+#: ../src/prefs_window.c:1013
 msgid "Preferences applied"
 msgstr "Inställningar ändrade"
 
-#: src/repository.c:549 src/repository.c:2372
-msgid "Select mountpoint"
-msgstr "Markera monteringspunkt"
-
-#: src/repository.c:576 src/repository.c:2398
+#: ../src/repository.c:573 ../src/repository.c:2395
 msgid "Set backup file"
 msgstr "Ange fil för säkerhetskopia"
 
-#: src/repository.c:615
+#: ../src/repository.c:612
 msgid "Select directory for synchronization"
 msgstr "Markera katalog för synkronisering"
 
-#: src/repository.c:641
+#: ../src/repository.c:638
 msgid "Please select command to sync contacts"
 msgstr "Välj kommando för att synkronisera kontakter"
 
-#: src/repository.c:647
+#: ../src/repository.c:644
 msgid "Please select command to sync calendar"
 msgstr "Välj kommando för att synkronisera kalender"
 
-#: src/repository.c:653
+#: ../src/repository.c:650
 msgid "Please select command to sync notes"
 msgstr "Välj kommando för att synkronisera anteckningar"
 
-#: 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>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/repository.c:732
+#: ../src/repository.c:729
 msgid "Smart playlist updated."
 msgstr "Smart spellista uppdaterad."
 
-#: src/repository.c:1193
+#: ../src/repository.c:1190
 msgid "Podcasts Repository"
 msgstr "Podsändningsarkiv"
 
-#: src/repository.c:1197
+#: ../src/repository.c:1194
 msgid "Local Repository"
 msgstr "Lokalt arkiv"
 
-#: src/repository.c:1351
+#: ../src/repository.c:1348
 msgid "Master Playlist"
 msgstr "Huvudspellista"
 
-#: src/repository.c:1355
+#: ../src/repository.c:1352
 msgid "Podcasts Playlist"
 msgstr "Podsändningsspellista"
 
-#: src/repository.c:1363
+#: ../src/repository.c:1360
 msgid "Regular Playlist"
 msgstr "Vanlig spellista"
 
-#: src/repository.c:2426
+#: ../src/repository.c:2423
 msgid "Set local repository file"
 msgstr "Ange lokal arkivfil"
 
-#: src/repository.c:2525
+#: ../src/repository.c:2522
 msgid "New Repository"
 msgstr "Nytt arkiv"
 
-#: src/support.c:90 src/support.c:114
-#, c-format
-msgid "Couldn't find pixmap file: %s"
-msgstr "Kunde inte hitta bildpunktsavbildningsfil: %s"
+#: ../src/sha1.c:186
+msgid "Hashed file is 0 bytes long\n"
+msgstr "Filen med checksumma har storleken 0 byte\n"
 
-#: src/syncdir.c:237
+#: ../src/sha1.c:239
+#, fuzzy, c-format
+msgid "Could not open '%s' to calculate SHA1 checksum: %s\n"
+msgstr "Kunde inte öppna '%s' för att beräkna MD5-checksumma: %s\n"
+
+#: ../src/syncdir.c:237
 #, c-format
 msgid "Sync summary for %s/%s\n"
 msgstr "Sammanfattning av synkronisering för %s/%s\n"
 
-#: src/syncdir.c:246
+#: ../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/syncdir.c:255
+#: ../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/syncdir.c:264
+#: ../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/syncdir.c:271
+#: ../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/syncdir.c:277
+#: ../src/syncdir.c:277
 msgid "Nothing was changed.\n"
 msgstr "Ingenting har ändrats.\n"
 
-#: src/syncdir.c:282
+#: ../src/syncdir.c:282
 msgid "Sync summary"
 msgstr "Sammanfattning av synkronisering"
 
-#: src/tools.c:119
+#: ../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"
+"Could not find '%s'.\n"
+"Please specifiy the exact path in the Tools section of the preference dialog "
+"or install the program if it is not installed on your system.\n"
 "\n"
 msgstr ""
-"Kunde inte hitta kommandot '%s'.\n"
+"Kunde inte hitta '%s'.\n"
 "\n"
-"Kontrollera inställningarna under 'Verktyg' i inställningsdialogrutan.\n"
+"Ange exakt sökväg under 'Verktyg' i inställningsdialogrutan eller installera "
+"programmet om det inte är installerat på systemet.\n"
 "\n"
 
-#: src/tools.c:204
-#, fuzzy, c-format
+#: ../src/tools.c:204
+#, c-format
 msgid ""
 "Execution of '%s' failed.\n"
 "\n"
-msgstr "Körning av mp3gain ('%s') misslyckades."
+msgstr ""
+"Körning av '%s' misslyckades.\n"
+"\n"
 
-#: src/tools.c:249
-#, fuzzy, c-format
+#: ../src/tools.c:249
+#, c-format
 msgid ""
 "Did not normalize '%s'. Set mp3gain 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"
+"Normaliserade inte '%s'. Ställ in sökväg till mp3gain under Verktyg i "
+"inställningsdialogrutan.\n"
 
-#: src/tools.c:259
-#, fuzzy, c-format
+#: ../src/tools.c:259
+#, 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"
+"Normaliserade inte '%s'. Ställ in sökväg till accgain under Verktyg i "
+"inställningsdialogrutan.\n"
 
-#: src/tools.c:384
+#: ../src/tools.c:386
 msgid "Normalizing..."
 msgstr "Normaliserar..."
 
-#: src/tools.c:434
+#: ../src/tools.c:436
 #, c-format
 msgid "%s - %s"
 msgstr "%s - %s"
 
-#: src/tools.c:460
+#: ../src/tools.c:462
 msgid "Aborting..."
 msgstr "Avbryter..."
 
-#: src/tools.c:464
+#: ../src/tools.c:466
 msgid "Will abort after current mp3gain process ends."
 msgstr "Avbryter efter aktuell mp3gain process slutar."
 
-#: src/tools.c:490
+#: ../src/tools.c:492
 #, c-format
 msgid ""
 "'%s-%s' (%s) could not be normalized.\n"
@@ -4764,21 +5352,21 @@
 "'%s-%s' (%s) kunde inte normaliseras.\n"
 "\n"
 
-#: src/tools.c:529
+#: ../src/tools.c:531
 #, 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:632
+#: ../src/tools.c:634
 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:644
+#: ../src/tools.c:646
 #, c-format
 msgid ""
 "Could not find the command '%s'.\n"
@@ -4791,7 +5379,7 @@
 "Kontrollera inställningarna under 'Verktyg' i inställningsdialogrutan.\n"
 "\n"
 
-#: src/tools.c:685
+#: ../src/tools.c:687
 #, c-format
 msgid ""
 "'%s' returned the following output:\n"
@@ -4800,192 +5388,89 @@
 "'%s' returnerade följande utmatning.\n"
 "%s\n"
 
-#: src/tools.c:752
+#: ../src/tools.c:754
 #, c-format
 msgid "No command set for '%s'"
 msgstr "Inget kommando angivet för '%s'"
 
-#: src/tools.c:772
+#: ../src/tools.c:774
 #, c-format
 msgid "Could not find command '%s' specified for '%s'"
 msgstr "Kunde inte hitta kommandot '%s' som angavs för '%s'"
 
-#: src/wavfile.c:107
+#: ../src/wavfile.c:181
 #, c-format
-msgid "Could not open '%s' for reading.\n"
-msgstr "Kunde inte öppna '%s' för läsning.\n"
-
-#: src/wavfile.c:181
-#, c-format
 msgid "%s does not appear to be a supported wav file.\n"
 msgstr "%s verkar inte vara en wav-fil som stöds.\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 ""
-#~ "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."
+#, fuzzy
+#~ msgid "label21"
+#~ msgstr "etikett21"
 
-#~ msgid "Handle mounting/unmounting of iPod drive"
-#~ msgstr "Hantera montering och avmontering av iPod-enheten"
+#~ msgid "window1"
+#~ msgstr "fönster1"
 
-#~ msgid "<b>Artwork</b>"
-#~ msgstr "<b>Omslag</b>"
+#~ msgid "<b>Import</b>"
+#~ msgstr "<b>Importera</b>"
 
-#~ msgid "_Offline"
-#~ msgstr "_Nerkopplad"
+#~ msgid "Automatically import iTunesDBs on startup"
+#~ msgstr "Importera automatiskt iTunes databaser vid start"
 
-#~ 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."
+#~ msgid "Couldn't find pixmap file: %s"
+#~ msgstr "Kunde inte hitta bildpunktsavbildningsfil: %s"
 
-#~ 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."
+#~ msgid "_Synchronize Playlist"
+#~ msgstr "_Synkronisera spellista"
 
-#~ msgid "Edit Repository Properties"
-#~ msgstr "Redigera arkivegenskaper"
+#~ msgid "Stop Display Update"
+#~ msgstr "Stoppa uppdatering av skärmen"
 
-#~ msgid "Currently no iPod database selected"
-#~ msgstr "För närvarande är ingen iPod-databas markerad"
+#~ msgid "Stop"
+#~ msgstr "Stoppa"
 
-#~ msgid "No playlist selected."
-#~ msgstr "Ingen spellista markerad."
-
-#~ msgid "Could not delete backup file: \"%s\"\n"
-#~ msgstr "Kunde inte ta bort säkerhetskopieringsfil: \"%s\"\n"
-
-#~ msgid "No tracks selected."
-#~ msgstr "Inga spår markerade."
-
-#~ msgid "Problem creating iPod directory: '%s'."
-#~ msgstr "Problem att skapa iPod-katalog: '%s'."
-
-#~ msgid "Successfully created iPod directories in '%s'."
-#~ msgstr "Skapade iPod-kataloger i '%s' med lyckat resultat."
-
-#~ msgid "Create iPod directories"
-#~ msgstr "Skapa iPod-kataloger"
-
-#~ msgid "OK to create the following directories?"
-#~ msgstr "Ok att skapa följande kataloger?"
-
 #~ 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."
+#~ "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 ""
-#~ "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."
+#~ "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."
 
 #~ 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"
+#~ "Temporarily disable sorting when changing playlist\n"
+#~ "or tab entry (faster!)"
 #~ 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"
+#~ "Inaktivera sortering tillfälligt när spellistor\n"
+#~ "eller flikar ändras (snabbare)"
 
-#~ msgid "  --offline:    same as '-o'.\n"
-#~ msgstr "  --offline:    samma som '-o'.\n"
-
-#~ msgid "Error while reading prefs: %s\n"
-#~ msgstr "Fel vid läsning av inställningar: %s\n"
-
-#~ msgid "Unable to open config file '%s' for reading\n"
-#~ msgstr "Kan inte öppna inställningsfilen '%s' för läsning\n"
-
-#~ msgid "Unknown option: %s\n"
-#~ msgstr "Okänd väljare: %s\n"
-
-#~ msgid "# delete confirmation\n"
-#~ msgstr "# bekräfta borttagning\n"
-
-#~ msgid "# sort tab: select 'All', last selected page (=category)\n"
-#~ msgstr "# sorteringsflik: välja 'Alla', senast valda sida (=kategori)\n"
-
-#~ msgid "# autoselect master playlist?\n"
-#~ msgstr "# välj automatiskt huvudspellista?\n"
-
-#~ msgid "# title=0, artist, album, genre, composer\n"
-#~ msgstr "# titel=0, artist, album, genre, kompositör\n"
-
-#~ msgid "# track_nr=5, ipod_id, pc_path, transferred\n"
-#~ msgstr "# spårnummer=5, iPod-id, PC-sökväg, överförda\n"
-
-#~ msgid "# autoset: set empty tag to filename?\n"
-#~ msgstr "# välj automatiskt: ange filnamn i tom tagg?\n"
-
 #~ msgid ""
-#~ "# position of sliders (paned): playlists, above tracks,\n"
-#~ "# between sort tabs, and in statusbar.\n"
+#~ "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 ""
-#~ "# position för skjutreglage (i rutor): spellistor, ovanför spår,\n"
-#~ "# mellan sorteringsflikar, och i statusraden.\n"
+#~ "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)."
 
 #~ msgid ""
-#~ "# window sizes: main window, confirmation scrolled,\n"
-#~ "#               confirmation non-scrolled, dirbrowser, prefs\n"
+#~ "Block display when changing playlist or tab\n"
+#~ " entry (faster!)"
 #~ msgstr ""
-#~ "# fönsterstorlekar: huvudfönster, bekräftelse med rullningslist,\n"
-#~ "#   bekräftelse utan rullningslist, katalogbläddrare, inställningar\n"
+#~ "Blockera skärmen när spellistor\n"
+#~ "eller flikar ändras (snabbare)"
 
-#~ msgid "Unable to open '%s' for writing\n"
-#~ msgstr "Kan inte öppna '%s' för skrivning\n"
+#~ msgid "deleting..."
+#~ msgstr "tar bort..."
 
-#~ 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"
+#~ msgid "preparing to copy..."
+#~ msgstr "förbereder kopiering..."
 
-#~ msgid "Unable to 'mkdir %s'\n"
-#~ msgstr "Kan inte skapa katalogen '%s'\n"
+#~ 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."
 
-#~ msgid "prefs_set_toolbar_style: illegal style '%d' ignored\n"
-#~ msgstr "prefs_set_toolbar_style: felaktig stil '%d' ignoreras\n"
-
-#~ msgid "prefs_set_pm_sort: illegal type '%d' ignored\n"
-#~ msgstr "prefs_set_pm_sort: felaktig typ '%d' ignoreras\n"
-
-#~ msgid "'%s': no arguments (%%...) allowed.\n"
-#~ msgstr "'%s': inga argument (%%...) tillåts.\n"
-
-#~ msgid "'%s': only '%%[%s]' allowed.\n"
-#~ msgstr "'%s': bara '%%[%s]' tillåts.\n"
+#~ msgid "Some tracks were not written to iPod. Export aborted!"
+#~ msgstr "Vissa spår skrevs inte till iPod. Export avbruten."

Modified: gtkpod/trunk/scripts/Makefile.am
===================================================================
--- gtkpod/trunk/scripts/Makefile.am	2007-06-27 20:59:02 UTC (rev 193)
+++ gtkpod/trunk/scripts/Makefile.am	2007-06-27 21:27:12 UTC (rev 194)
@@ -19,8 +19,17 @@
 	sync-tomboy.sh \
 	sync-webcalendar.sh \
 	ldif2vcf.sh \
-	mab2vcard
+	mab2vcard \
+	convert-ogg2mp3.sh \
+	convert-ogg2m4a.sh \
+	convert-flac2mp3.sh \
+        convert-flac2m4a.sh \
+        convert-m4a2mp3.sh \
+        convert-mp32m4a.sh \
+        convert-ogg2mp3.sh \
+        convert-ogg2m4a.sh \
+        convert-wav2mp3.sh \
+        convert-wav2m4a.sh
 
-# these scripts will go in the distribution. Actually, if they are to
-# be installed, they should go into the .tar.gz-file automatically...
+# these scripts will of course also go in the distribution tarball.
 EXTRA_DIST=$(script_SCRIPTS)

Modified: gtkpod/trunk/scripts/Makefile.in
===================================================================
--- gtkpod/trunk/scripts/Makefile.in	2007-06-27 20:59:02 UTC (rev 193)
+++ gtkpod/trunk/scripts/Makefile.in	2007-06-27 21:27:12 UTC (rev 194)
@@ -37,6 +37,7 @@
 POST_UNINSTALL = :
 host_triplet = @host@
 ACLOCAL = @ACLOCAL@
+ALL_LINGUAS = @ALL_LINGUAS@
 AMDEP_FALSE = @AMDEP_FALSE@
 AMDEP_TRUE = @AMDEP_TRUE@
 AMTAR = @AMTAR@
@@ -51,6 +52,8 @@
 CFLAGS = @CFLAGS@
 CPP = @CPP@
 CPPFLAGS = @CPPFLAGS@
+CURL_CFLAGS = @CURL_CFLAGS@
+CURL_LIBS = @CURL_LIBS@
 CYGPATH_W = @CYGPATH_W@
 DATADIRNAME = @DATADIRNAME@
 DEFS = @DEFS@
@@ -63,13 +66,47 @@
 GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
 GMOFILES = @GMOFILES@
 GMSGFMT = @GMSGFMT@
+GNOME_VFS_CFLAGS = @GNOME_VFS_CFLAGS@
+GNOME_VFS_LIBS = @GNOME_VFS_LIBS@
 GREP = @GREP@
+HAL_CFLAGS = @HAL_CFLAGS@
+HAL_LIBS = @HAL_LIBS@
+HAVE_GNOME_VFS_FALSE = @HAVE_GNOME_VFS_FALSE@
+HAVE_GNOME_VFS_TRUE = @HAVE_GNOME_VFS_TRUE@
+HAVE_HAL_FALSE = @HAVE_HAL_FALSE@
+HAVE_HAL_TRUE = @HAVE_HAL_TRUE@
 INSTALL_DATA = @INSTALL_DATA@
 INSTALL_PROGRAM = @INSTALL_PROGRAM@
 INSTALL_SCRIPT = @INSTALL_SCRIPT@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
 INSTOBJEXT = @INSTOBJEXT@
 INTLLIBS = @INTLLIBS@
+INTLTOOL_CAVES_RULE = @INTLTOOL_CAVES_RULE@
+INTLTOOL_DESKTOP_RULE = @INTLTOOL_DESKTOP_RULE@
+INTLTOOL_DIRECTORY_RULE = @INTLTOOL_DIRECTORY_RULE@
+INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@
+INTLTOOL_ICONV = @INTLTOOL_ICONV@
+INTLTOOL_KBD_RULE = @INTLTOOL_KBD_RULE@
+INTLTOOL_KEYS_RULE = @INTLTOOL_KEYS_RULE@
+INTLTOOL_MERGE = @INTLTOOL_MERGE@
+INTLTOOL_MSGFMT = @INTLTOOL_MSGFMT@
+INTLTOOL_MSGMERGE = @INTLTOOL_MSGMERGE@
+INTLTOOL_OAF_RULE = @INTLTOOL_OAF_RULE@
+INTLTOOL_PERL = @INTLTOOL_PERL@
+INTLTOOL_PONG_RULE = @INTLTOOL_PONG_RULE@
+INTLTOOL_PROP_RULE = @INTLTOOL_PROP_RULE@
+INTLTOOL_SCHEMAS_RULE = @INTLTOOL_SCHEMAS_RULE@
+INTLTOOL_SERVER_RULE = @INTLTOOL_SERVER_RULE@
+INTLTOOL_SERVICE_RULE = @INTLTOOL_SERVICE_RULE@
+INTLTOOL_SHEET_RULE = @INTLTOOL_SHEET_RULE@
+INTLTOOL_SOUNDLIST_RULE = @INTLTOOL_SOUNDLIST_RULE@
+INTLTOOL_THEME_RULE = @INTLTOOL_THEME_RULE@
+INTLTOOL_UI_RULE = @INTLTOOL_UI_RULE@
+INTLTOOL_UPDATE = @INTLTOOL_UPDATE@
+INTLTOOL_XAM_RULE = @INTLTOOL_XAM_RULE@
+INTLTOOL_XGETTEXT = @INTLTOOL_XGETTEXT@
+INTLTOOL_XML_NOMERGE_RULE = @INTLTOOL_XML_NOMERGE_RULE@
+INTLTOOL_XML_RULE = @INTLTOOL_XML_RULE@
 LDFLAGS = @LDFLAGS@
 LEX = @LEX@
 LEXLIB = @LEXLIB@
@@ -167,11 +204,20 @@
 	sync-tomboy.sh \
 	sync-webcalendar.sh \
 	ldif2vcf.sh \
-	mab2vcard
+	mab2vcard \
+	convert-ogg2mp3.sh \
+	convert-ogg2m4a.sh \
+	convert-flac2mp3.sh \
+        convert-flac2m4a.sh \
+        convert-m4a2mp3.sh \
+        convert-mp32m4a.sh \
+        convert-ogg2mp3.sh \
+        convert-ogg2m4a.sh \
+        convert-wav2mp3.sh \
+        convert-wav2m4a.sh
 
 
-# these scripts will go in the distribution. Actually, if they are to
-# be installed, they should go into the .tar.gz-file automatically...
+# these scripts will of course also go in the distribution tarball.
 EXTRA_DIST = $(script_SCRIPTS)
 subdir = scripts
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4

Copied: gtkpod/trunk/scripts/convert-flac2m4a.sh (from rev 193, gtkpod/branches/upstream/current/scripts/convert-flac2m4a.sh)
===================================================================
--- gtkpod/trunk/scripts/convert-flac2m4a.sh	                        (rev 0)
+++ gtkpod/trunk/scripts/convert-flac2m4a.sh	2007-06-27 21:27:12 UTC (rev 194)
@@ -0,0 +1,98 @@
+#!/bin/sh
+# Simple script that converts a flac file into an m4a file
+#
+# USAGE:
+#
+# convert-flac2m4a.sh [options] flacfile
+#
+#       -x      Print converted filename extension and exit
+#       -f      Set converted filename
+# 	-a	Artist tag
+#	-A 	Album tag
+#	-T	Track tag
+#	-t	Title tag
+#	-g	Genre tag
+#	-y	Year tag
+#	-c	Comment tag
+#
+# STDOUT's last line is the converted filename.
+# Return Codes:
+#   0 ok
+#   1 input file not found
+#   2 output file cannot be created
+#   3 cannot get info
+#   4 cannot exec decoding
+#   5 cannot exec encoding
+#   6 conversion failed
+#   7 unknown option
+
+# Constants
+extension="m4a"
+
+# Get parameters
+while getopts a:A:T:t:g:c:y:f:x opt ; do
+	case "$opt" in
+	        x)      echo "$extension"; exit 0 ;;
+	        f)      outfile="$OPTARG" ;;
+		a)	artist="$OPTARG" ;;
+		A)	album="$OPTARG" ;;
+		T)	track="$OPTARG" ;;
+		t)	title="$OPTARG" ;;
+		g)	genre="$OPTARG" ;;
+		y)	year="$OPTARG" ;;
+		c)	comment="$OPTARG" ;;
+	        ?)      exit 7 ;;
+	esac
+done
+shift $(($OPTIND - 1))
+infile="$1"
+
+if [ "$outfile" = "" ]; then
+    # Build output file
+    outfile=`basename "$infile"`
+    outfile=${outfile%%.flac}
+    outfile="/tmp/$outfile.$extension"
+fi
+
+# Default values
+[ -z "$comment" ] && comment="Encoded for gtkpod with faac"
+
+#echo "Converting \"$infile\" into \"$outfile\""
+
+# Checking input file
+if [ "$infile" = "" ]; then
+    exit 1
+fi
+if [ ! -f "$infile" ]; then
+    exit 1
+fi
+
+# Checking output file
+touch "$outfile"
+if [ "x$?" != "x0" ]; then
+    exit 2
+fi
+
+# Check for the existence of flac
+flac=`which flac`
+if [ -z "$flac" ]; then
+    exit 4
+fi
+
+# Check for the existence of faac
+faac=`which faac`
+if [ -z "$faac" ]; then
+    exit 5
+fi
+
+# Launch command
+exec "$flac" -d -c -- "$infile" | "$faac" -o "$outfile" -q 150 -c 22000 -w --artist "$artist" --title "$title" --year "$year" --album "$album" --track "$track" --genre "$genre" --comment "$comment" -
+
+# Check result
+if [ "x$?" != "x0" ]; then
+    exit 6
+fi
+
+# Seems to be ok: display filename for gtkpod
+echo $outfile
+exit 0

Copied: gtkpod/trunk/scripts/convert-flac2mp3.sh (from rev 193, gtkpod/branches/upstream/current/scripts/convert-flac2mp3.sh)
===================================================================
--- gtkpod/trunk/scripts/convert-flac2mp3.sh	                        (rev 0)
+++ gtkpod/trunk/scripts/convert-flac2mp3.sh	2007-06-27 21:27:12 UTC (rev 194)
@@ -0,0 +1,115 @@
+#!/bin/sh
+# Simple script that converts a flac file into an mp3 file
+#
+# USAGE:
+#
+# convert-flac2mp3.sh [options] flacfile
+#
+#       -x      Print converted filename extension and exit
+#       -f      Set converted filename
+# 	-a	Artist tag
+#	-A 	Album tag
+#	-T	Track tag
+#	-t	Title tag
+#	-g	Genre tag
+#	-y	Year tag
+#	-c	Comment tag
+#
+# STDOUT's last line is the converted filename.
+# Return Codes:
+#   0 ok
+#   1 input file not found
+#   2 output file cannot be created
+#   3 cannot get info
+#   4 cannot exec decoding
+#   5 cannot exec encoding
+#   6 conversion failed
+#   7 unknown option
+
+# Constants
+extension="mp3"
+
+# Get parameters
+while getopts a:A:T:t:g:c:y:f:x opt ; do
+	case "$opt" in
+	        x)      echo "$extension"; exit 0 ;;
+	        f)      outfile="$OPTARG" ;;
+		a)	artist="$OPTARG" ;;
+		A)	album="$OPTARG" ;;
+		T)	track="$OPTARG" ;;
+		t)	title="$OPTARG" ;;
+		g)	genre="$OPTARG" ;;
+		y)	year="$OPTARG" ;;
+		c)	comment="$OPTARG" ;;
+	        ?)      exit 7 ;;
+	esac
+done
+shift $(($OPTIND - 1))
+infile="$1"
+
+if [ "$outfile" = "" ]; then
+    # Build output file
+    outfile=`basename "$infile"`
+    outfile=${outfile%%.flac}
+    outfile="/tmp/$outfile.$extension"
+fi
+
+# Default values
+[ -z "$comment" ] && comment="Encoded for gtkpod with lame"
+
+#echo "Converting \"$infile\" into \"$outfile\""
+
+# Checking input file
+if [ "$infile" = "" ]; then
+    exit 1
+fi
+if [ ! -f "$infile" ]; then
+    exit 1
+fi
+
+# Checking output file
+touch "$outfile"
+if [ "x$?" != "x0" ]; then
+    exit 2
+fi
+
+# Check for the existence of flac
+flac=`which flac`
+if [ -z "$flac" ]; then
+    exit 4
+fi
+
+# Check for the existence of lame
+lame=`which lame`
+if [ -z "$lame" ]; then
+    exit 5
+fi
+
+# Check if the genre is one which lame supports
+if [ -n "$genre" ] && `$lame --genre-list | grep -qi "\b$genre\b"`; then
+    genreopt="--tg \"$genre\""
+else
+    # check for id3v2
+    id3v2=`which id3v2`
+    if [ -n "$id3v2" ]; then
+        useid3v2=1
+    fi
+fi
+
+# Launch command
+exec "$flac" -d -c -- "$infile" | "$lame" --preset standard --add-id3v2 --tt "$title" --ta "$artist" --tl "$album" --ty "$year" --tc "$comment" --tn "$track" "$genreopt" - "$outfile"
+
+# Check result
+if [ "x$?" != "x0" ]; then
+    exit 6
+fi
+
+# Try to set the genre with id3v2 if needed.  This may fail as older versions of
+# id3v2 did not support genre strings in place of numeric genre id's
+if [ -n "$useid3v2" ]; then
+    $id3v2 -g "$genre" "$mp3file" || :
+fi
+
+# Seems to be ok: display filename for gtkpod
+echo $outfile
+exit 0

Copied: gtkpod/trunk/scripts/convert-m4a2mp3.sh (from rev 193, gtkpod/branches/upstream/current/scripts/convert-m4a2mp3.sh)
===================================================================
--- gtkpod/trunk/scripts/convert-m4a2mp3.sh	                        (rev 0)
+++ gtkpod/trunk/scripts/convert-m4a2mp3.sh	2007-06-27 21:27:12 UTC (rev 194)
@@ -0,0 +1,97 @@
+#!/bin/sh
+# Simple script that converts an m4a file into an mp3 file
+#
+# USAGE:
+#
+# convert-m4a2mp3.sh [options] m4afile
+#
+#       -x      Print converted filename extension and exit
+#       -f      Set converted filename
+# 	-a	Artist tag
+#	-A 	Album tag
+#	-T	Track tag
+#	-t	Title tag
+#	-g	Genre tag
+#	-y	Year tag
+#	-c	Comment tag
+#
+# STDOUT's last line is the converted filename.
+# Return Codes:
+#   0 ok
+#   1 input file not found
+#   2 output file cannot be created
+#   3 cannot get info
+#   4 cannot exec decoding
+#   5 cannot exec encoding
+#   6 conversion failed
+#   7 unknown option
+
+# Constants
+extension="mp3"
+
+# Get parameters
+while getopts a:A:T:t:g:c:y:f:x opt ; do
+	case "$opt" in
+	        x)      echo "$extension"; exit 0 ;;
+	        f)      outfile="$OPTARG" ;;
+		a)	artist="$OPTARG" ;;
+		A)	album="$OPTARG" ;;
+		T)	track="$OPTARG" ;;
+		t)	title="$OPTARG" ;;
+		g)	genre="$OPTARG" ;;
+		y)	year="$OPTARG" ;;
+		c)	comment="$OPTARG" ;;
+	        ?)      exit 7 ;;
+	esac
+done
+shift $(($OPTIND - 1))
+infile="$1"
+
+if [ "$outfile" = "" ]; then
+    # Build output file
+    outfile=`basename "$infile"`
+    outfile=${outfile%%.flac}
+    outfile="/tmp/$outfile.$extension"
+fi
+
+# Default values
+[ -z "$comment" ] && comment="Encoded for gtkpod with lame"
+
+#echo "Converting \"$infile\" into \"$outfile\""
+
+# Checking input file
+if [ "$infile" = "" ]; then
+    exit 1
+fi
+if [ ! -f "$infile" ]; then
+    exit 1
+fi
+
+# Checking output file
+touch "$outfile"
+if [ "x$?" != "x0" ]; then
+    exit 2
+fi
+
+# Check for the existence of faad
+faac=`which faad`
+if [ -z "$faad" ]; then
+    exit 4
+fi
+
+# Check for the existence of lame
+lame=`which lame`
+if [ -z "$lame" ]; then
+    exit 5
+fi
+
+# Launch command
+exec "$faad" -o - "$infile" | "$lame" --preset standard --add-id3v2 --tt "$title" --ta "$artist" --tl "$album" --ty "$year" --tc "$comment" --tn "$track" --tg "$genre" - "$outfile"
+
+# Check result
+if [ "x$?" != "x0" ]; then
+    exit 6
+fi
+# Seems to be ok: display filename for gtkpod
+echo $outfile
+exit 0

Copied: gtkpod/trunk/scripts/convert-mp32m4a.sh (from rev 193, gtkpod/branches/upstream/current/scripts/convert-mp32m4a.sh)
===================================================================
--- gtkpod/trunk/scripts/convert-mp32m4a.sh	                        (rev 0)
+++ gtkpod/trunk/scripts/convert-mp32m4a.sh	2007-06-27 21:27:12 UTC (rev 194)
@@ -0,0 +1,97 @@
+#!/bin/sh
+# Simple script that converts an mp3 file into an m4a file
+#
+# USAGE:
+#
+# convert-mp32m4a.sh [options] mp3file
+#
+#       -x      Print converted filename extension and exit
+#       -f      Set converted filename
+# 	-a	Artist tag
+#	-A 	Album tag
+#	-T	Track tag
+#	-t	Title tag
+#	-g	Genre tag
+#	-y	Year tag
+#	-c	Comment tag
+#
+# STDOUT's last line is the converted filename.
+# Return Codes:
+#   0 ok
+#   1 input file not found
+#   2 output file cannot be created
+#   3 cannot get info
+#   4 cannot exec decoding
+#   5 cannot exec encoding
+#   6 conversion failed
+#   7 unknown option
+
+# Constants
+extension="m4a"
+
+# Get parameters
+while getopts a:A:T:t:g:c:y:f:x opt ; do
+	case "$opt" in
+	        x)      echo "$extension"; exit 0 ;;
+	        f)      outfile="$OPTARG" ;;
+		a)	artist="$OPTARG" ;;
+		A)	album="$OPTARG" ;;
+		T)	track="$OPTARG" ;;
+		t)	title="$OPTARG" ;;
+		g)	genre="$OPTARG" ;;
+		y)	year="$OPTARG" ;;
+		c)	comment="$OPTARG" ;;
+	        ?)      exit 7 ;;
+	esac
+done
+shift $(($OPTIND - 1))
+infile="$1"
+
+if [ "$outfile" = "" ]; then
+    # Build output file
+    outfile=`basename "$infile"`
+    outfile=${outfile%%.flac}
+    outfile="/tmp/$outfile.$extension"
+fi
+
+# Default values
+[ -z "$comment" ] && comment="Encoded for gtkpod with faac"
+
+#echo "Converting \"$infile\" into \"$outfile\""
+
+# Checking input file
+if [ "$infile" = "" ]; then
+    exit 1
+fi
+if [ ! -f "$infile" ]; then
+    exit 1
+fi
+
+# Checking output file
+touch "$outfile"
+if [ "x$?" != "x0" ]; then
+    exit 2
+fi
+
+# Check for the existence of lame
+lame=`which lame`
+if [ -z "$lame" ]; then
+    exit 4
+fi
+
+# Check for the existence of faac
+faac=`which faac`
+if [ -z "$faac" ]; then
+    exit 5
+fi
+
+# Launch command
+exec "$lame" --decode "$infile" - | "$faac" -o "$outfile" -q 150 -c 22000 -w --artist "$artist" --title "$title" --year "$year" --album "$album" --track "$track" --genre "$genre" --comment "$comment" -
+
+# Check result
+if [ "x$?" != "x0" ]; then
+    exit 6
+fi
+# Seems to be ok: display filename for gtkpod
+echo $outfile
+exit 0

Copied: gtkpod/trunk/scripts/convert-ogg2m4a.sh (from rev 193, gtkpod/branches/upstream/current/scripts/convert-ogg2m4a.sh)
===================================================================
--- gtkpod/trunk/scripts/convert-ogg2m4a.sh	                        (rev 0)
+++ gtkpod/trunk/scripts/convert-ogg2m4a.sh	2007-06-27 21:27:12 UTC (rev 194)
@@ -0,0 +1,97 @@
+#!/bin/sh
+# Simple script that converts a ogg file into an m4a file
+#
+# USAGE:
+#
+# convert-ogg2m4a.sh [options] oggfile
+#
+#       -x      Print converted filename extension and exit
+#       -f      Set converted filename
+# 	-a	Artist tag
+#	-A 	Album tag
+#	-T	Track tag
+#	-t	Title tag
+#	-g	Genre tag
+#	-y	Year tag
+#	-c	Comment tag
+#
+# STDOUT's last line is the converted filename.
+# Return Codes:
+#   0 ok
+#   1 input file not found
+#   2 output file cannot be created
+#   3 cannot get info
+#   4 cannot exec decoding
+#   5 cannot exec encoding
+#   6 conversion failed
+#   7 unknown option
+
+# Constants
+extension="m4a"
+
+# Get parameters
+while getopts a:A:T:t:g:c:y:f:x opt ; do
+	case "$opt" in
+	        x)      echo "$extension"; exit 0 ;;
+	        f)      outfile="$OPTARG" ;;
+		a)	artist="$OPTARG" ;;
+		A)	album="$OPTARG" ;;
+		T)	track="$OPTARG" ;;
+		t)	title="$OPTARG" ;;
+		g)	genre="$OPTARG" ;;
+		y)	year="$OPTARG" ;;
+		c)	comment="$OPTARG" ;;
+	        ?)      exit 7 ;;
+	esac
+done
+shift $(($OPTIND - 1))
+infile="$1"
+
+if [ "$outfile" = "" ]; then
+    # Build output file
+    outfile=`basename "$infile"`
+    outfile=${outfile%%.flac}
+    outfile="/tmp/$outfile.$extension"
+fi
+
+# Default values
+[ -z "$comment" ] && comment="Encoded for gtkpod with faac"
+
+#echo "Converting \"$infile\" into \"$outfile\""
+
+# Checking input file
+if [ "$infile" = "" ]; then
+    exit 1
+fi
+if [ ! -f "$infile" ]; then
+    exit 1
+fi
+
+# Checking output file
+touch "$outfile"
+if [ "x$?" != "x0" ]; then
+    exit 2
+fi
+
+# Check for the existence of oggdec
+oggdec=`which oggdec`
+if [ -z "$oggdec" ]; then
+    exit 4
+fi
+
+# Check for the existence of faac
+faac=`which faac`
+if [ -z "$faac" ]; then
+    exit 5
+fi
+
+# Launch command
+exec "$oggdec" --output - -- "$infile" | "$faac" -o "$outfile" -q 150 -c 22000 -w --artist "$artist" --title "$title" --year "$year" --album "$album" --track "$track" --genre "$genre" --comment "$comment" -
+
+# Check result
+if [ "x$?" != "x0" ]; then
+    exit 6
+fi
+# Seems to be ok: display filename for gtkpod
+echo $outfile
+exit 0

Copied: gtkpod/trunk/scripts/convert-ogg2mp3.sh (from rev 193, gtkpod/branches/upstream/current/scripts/convert-ogg2mp3.sh)
===================================================================
--- gtkpod/trunk/scripts/convert-ogg2mp3.sh	                        (rev 0)
+++ gtkpod/trunk/scripts/convert-ogg2mp3.sh	2007-06-27 21:27:12 UTC (rev 194)
@@ -0,0 +1,115 @@
+#!/bin/sh
+# Simple script that converts a ogg file into an mp3 file
+#
+# USAGE:
+#
+# convert-ogg2mp3.sh [options] oggfile
+#
+#       -x      Print converted filename extension and exit
+#       -f      Set converted filename
+# 	-a	Artist tag
+#	-A 	Album tag
+#	-T	Track tag
+#	-t	Title tag
+#	-g	Genre tag
+#	-y	Year tag
+#	-c	Comment tag
+#
+# STDOUT's last line is the converted filename.
+# Return Codes:
+#   0 ok
+#   1 input file not found
+#   2 output file cannot be created
+#   3 cannot get info
+#   4 cannot exec decoding
+#   5 cannot exec encoding
+#   6 conversion failed
+#   7 unknown option
+
+# Constants
+extension="mp3"
+
+# Get parameters
+while getopts a:A:T:t:g:c:y:f:x opt ; do
+	case "$opt" in
+	        x)      echo "$extension"; exit 0 ;;
+	        f)      outfile="$OPTARG" ;;
+		a)	artist="$OPTARG" ;;
+		A)	album="$OPTARG" ;;
+		T)	track="$OPTARG" ;;
+		t)	title="$OPTARG" ;;
+		g)	genre="$OPTARG" ;;
+		y)	year="$OPTARG" ;;
+		c)	comment="$OPTARG" ;;
+	        ?)      exit 7 ;;
+	esac
+done
+shift $(($OPTIND - 1))
+infile="$1"
+
+if [ "$outfile" = "" ]; then
+    # Build output file
+    outfile=`basename "$infile"`
+    outfile=${outfile%%.flac}
+    outfile="/tmp/$outfile.$extension"
+fi
+
+# Default values
+[ -z "$comment" ] && comment="Encoded for gtkpod with lame"
+
+#echo "Converting \"$infile\" into \"$outfile\""
+
+# Checking input file
+if [ "$infile" = "" ]; then
+    exit 1
+fi
+if [ ! -f "$infile" ]; then
+    exit 1
+fi
+
+# Checking output file
+touch "$outfile"
+if [ "x$?" != "x0" ]; then
+    exit 2
+fi
+
+# Check for the existence of oggdec
+oggdec=`which oggdec`
+if [ -z "$oggdec" ]; then
+    exit 4
+fi
+
+# Check for the existence of lame
+lame=`which lame`
+if [ -z "$lame" ]; then
+    exit 5
+fi
+
+# Check if the genre is one which lame supports
+if [ -n "$genre" ] && `$lame --genre-list | grep -qi "\b$genre\b"`; then
+    genreopt="--tg \"$genre\""
+else
+    # check for id3v2
+    id3v2=`which id3v2`
+    if [ -n "$id3v2" ]; then
+        useid3v2=1
+    fi
+fi
+
+# Launch command
+exec "$oggdec" --output - -- "$infile" | "$lame" --preset standard --add-id3v2 --tt "$title" --ta "$artist" --tl "$album" --ty "$year" --tc "$comment" --tn "$track" "$genreopt" - "$outfile"
+
+# Check result
+if [ "x$?" != "x0" ]; then
+    exit 6
+fi
+
+# Try to set the genre with id3v2 if needed.  This may fail as older versions of
+# id3v2 did not support genre strings in place of numeric genre id's
+if [ -n "$useid3v2" ]; then
+    $id3v2 -g "$genre" "$outfile" || :
+fi
+
+# Seems to be ok: display filename for gtkpod
+echo $outfile
+exit 0

Copied: gtkpod/trunk/scripts/convert-wav2m4a.sh (from rev 193, gtkpod/branches/upstream/current/scripts/convert-wav2m4a.sh)
===================================================================
--- gtkpod/trunk/scripts/convert-wav2m4a.sh	                        (rev 0)
+++ gtkpod/trunk/scripts/convert-wav2m4a.sh	2007-06-27 21:27:12 UTC (rev 194)
@@ -0,0 +1,91 @@
+#!/bin/sh
+# Simple script that converts a wav file into an m4a file
+#
+# USAGE:
+#
+# convert-wav2m4a.sh [options] wavfile
+#
+#       -x      Print converted filename extension and exit
+#       -f      Set converted filename
+# 	-a	Artist tag
+#	-A 	Album tag
+#	-T	Track tag
+#	-t	Title tag
+#	-g	Genre tag
+#	-y	Year tag
+#	-c	Comment tag
+#
+# STDOUT's last line is the converted filename.
+# Return Codes:
+#   0 ok
+#   1 input file not found
+#   2 output file cannot be created
+#   3 cannot get info
+#   4 cannot exec decoding
+#   5 cannot exec encoding
+#   6 conversion failed
+#   7 unknown option
+
+# Constants
+extension="m4a"
+
+# Get parameters
+while getopts a:A:T:t:g:c:y:f:x opt ; do
+	case "$opt" in
+	        x)      echo "$extension"; exit 0 ;;
+	        f)      outfile="$OPTARG" ;;
+		a)	artist="$OPTARG" ;;
+		A)	album="$OPTARG" ;;
+		T)	track="$OPTARG" ;;
+		t)	title="$OPTARG" ;;
+		g)	genre="$OPTARG" ;;
+		y)	year="$OPTARG" ;;
+		c)	comment="$OPTARG" ;;
+	        ?)      exit 7 ;;
+	esac
+done
+shift $(($OPTIND - 1))
+infile="$1"
+
+if [ "$outfile" = "" ]; then
+    # Build output file
+    outfile=`basename "$infile"`
+    outfile=${outfile%%.flac}
+    outfile="/tmp/$outfile.$extension"
+fi
+
+# Default values
+[ -z "$comment" ] && comment="Encoded for gtkpod with faac"
+
+#echo "Converting \"$infile\" into \"$outfile\""
+
+# Checking input file
+if [ "$infile" = "" ]; then
+    exit 1
+fi
+if [ ! -f "$infile" ]; then
+    exit 1
+fi
+
+# Checking output file
+touch "$outfile"
+if [ "x$?" != "x0" ]; then
+    exit 2
+fi
+
+# Check for the existence of faac
+faac=`which faac`
+if [ -z "$faac" ]; then
+    exit 5
+fi
+
+# Launch command
+"$faac" -o "$outfile" -q 150 -c 22000 -w --artist "$artist" --title "$title" --year "$year" --album "$album" --track "$track" --genre "$genre" --comment "$comment" "$infile"
+
+# Check result
+if [ "x$?" != "x0" ]; then
+    exit 6
+fi
+# Seems to be ok: display filename for gtkpod
+echo $outfile
+exit 0

Copied: gtkpod/trunk/scripts/convert-wav2mp3.sh (from rev 193, gtkpod/branches/upstream/current/scripts/convert-wav2mp3.sh)
===================================================================
--- gtkpod/trunk/scripts/convert-wav2mp3.sh	                        (rev 0)
+++ gtkpod/trunk/scripts/convert-wav2mp3.sh	2007-06-27 21:27:12 UTC (rev 194)
@@ -0,0 +1,109 @@
+#!/bin/sh
+# Simple script that converts a wav file into an mp3 file
+#
+# USAGE:
+#
+# convert-wav2mp3.sh [options] wavfile
+#
+#       -x      Print converted filename extension and exit
+#       -f      Set converted filename
+# 	-a	Artist tag
+#	-A 	Album tag
+#	-T	Track tag
+#	-t	Title tag
+#	-g	Genre tag
+#	-y	Year tag
+#	-c	Comment tag
+#
+# STDOUT's last line is the converted filename.
+# Return Codes:
+#   0 ok
+#   1 input file not found
+#   2 output file cannot be created
+#   3 cannot get info
+#   4 cannot exec decoding
+#   5 cannot exec encoding
+#   6 conversion failed
+#   7 unknown option
+
+# Constants
+extension="mp3"
+
+# Get parameters
+while getopts a:A:T:t:g:c:y:f:x opt ; do
+	case "$opt" in
+	        x)      echo "$extension"; exit 0 ;;
+	        f)      outfile="$OPTARG" ;;
+		a)	artist="$OPTARG" ;;
+		A)	album="$OPTARG" ;;
+		T)	track="$OPTARG" ;;
+		t)	title="$OPTARG" ;;
+		g)	genre="$OPTARG" ;;
+		y)	year="$OPTARG" ;;
+		c)	comment="$OPTARG" ;;
+	        ?)      exit 7 ;;
+	esac
+done
+shift $(($OPTIND - 1))
+infile="$1"
+
+if [ "$outfile" = "" ]; then
+    # Build output file
+    outfile=`basename "$infile"`
+    outfile=${outfile%%.flac}
+    outfile="/tmp/$outfile.$extension"
+fi
+
+# Default values
+[ -z "$comment" ] && comment="Encoded for gtkpod with lame"
+
+#echo "Converting \"$infile\" into \"$outfile\""
+
+# Checking input file
+if [ "$infile" = "" ]; then
+    exit 1
+fi
+if [ ! -f "$infile" ]; then
+    exit 1
+fi
+
+# Checking output file
+touch "$outfile"
+if [ "x$?" != "x0" ]; then
+    exit 2
+fi
+
+# Check for the existence of lame
+lame=`which lame`
+if [ -z "$lame" ]; then
+    exit 5
+fi
+
+# Check if the genre is one which lame supports
+if [ -n "$genre" ] && `$lame --genre-list | grep -qi "\b$genre\b"`; then
+    genreopt="--tg \"$genre\""
+else
+    # check for id3v2
+    id3v2=`which id3v2`
+    if [ -n "$id3v2" ]; then
+        useid3v2=1
+    fi
+fi
+
+# Launch command
+"$lame" --preset standard --add-id3v2 --tt "$title" --ta "$artist" --tl "$album" --ty "$year" --tc "$comment" --tn "$track" "$genreopt" "$infile" "$outfile"
+
+# Check result
+if [ "x$?" != "x0" ]; then
+    exit 6
+fi
+
+# Try to set the genre with id3v2 if needed.  This may fail as older versions of
+# id3v2 did not support genre strings in place of numeric genre id's
+if [ -n "$useid3v2" ]; then
+    $id3v2 -g "$genre" "$outfile" || :
+fi
+
+# Seems to be ok: display filename for gtkpod
+echo $outfile
+exit 0

Modified: gtkpod/trunk/scripts/mab2vcard
===================================================================
--- gtkpod/trunk/scripts/mab2vcard	2007-06-27 20:59:02 UTC (rev 193)
+++ gtkpod/trunk/scripts/mab2vcard	2007-06-27 21:27:12 UTC (rev 194)
@@ -135,7 +135,7 @@
 
 #use Data::Dumper;
 my $progname = $0; $progname =~ s at .*/@@g;
-my $version = q{ $Revision: 1.2 $ }; $version =~ s/^[^0-9]+([0-9.]+).*$/$1/;
+my $version = q{ $Revision: 695 $ }; $version =~ s/^[^0-9]+([0-9.]+).*$/$1/;
 
 my (%key_table, %val_table, %row_hash);
 my ($total, $skipped) = (0, 0);

Modified: gtkpod/trunk/scripts/sync-abook.sh
===================================================================
--- gtkpod/trunk/scripts/sync-abook.sh	2007-06-27 20:59:02 UTC (rev 193)
+++ gtkpod/trunk/scripts/sync-abook.sh	2007-06-27 21:27:12 UTC (rev 194)
@@ -10,7 +10,7 @@
 # with the following defaults: 
 
 IPOD_MOUNT='/media/ipod'				# mount point of ipod
-DATAFILE='/home/daniel/.abook/addressbook'	# the abook db
+DATAFILE='~/.abook/addressbook'	                # the abook db
 ENCODING_FROM=UTF-8                             # encoding used by abook
 ENCODING=ISO-8859-15                            # encoding used by ipod
 
@@ -38,6 +38,10 @@
 # 2005/06/15 (Jorg Schuler <jcsjcs at users dot sourceforge dot net>):
 # Received original script from Daniel Kercher and added character
 # conversion and command line options.
+#
+# 2007/05/31 (Jorg Schuler <jcsjcs at users dot sourceforge dot net>):
+# Set a more reasonable default datafile.
+#
 
 # overwrite default settings with optional command line arguments
 while getopts i:d:e:f: option; do

Modified: gtkpod/trunk/scripts/sync-evocalendar.sh
===================================================================
--- gtkpod/trunk/scripts/sync-evocalendar.sh	2007-06-27 20:59:02 UTC (rev 193)
+++ gtkpod/trunk/scripts/sync-evocalendar.sh	2007-06-27 21:27:12 UTC (rev 194)
@@ -6,11 +6,15 @@
 # 
 # sync-evocalendar.sh [-i <ipod mountpoint>] [-e <encoding>]
 #           ...       [-c <evolution calendar file>] [-t <evolution tasks file>]
+#           ...       [-f <ical filter script>]
 #
 # with the following defaults: 
 
 IPOD_MOUNT=/media/ipod                          # mountpoint of ipod
 
+#the path to a script that will be passed the ical information from STDIN and filter, if needed
+#FILTER_SCRIPT=
+
 #get all the local evolution calendars
 CALFILES=`find ~/.evolution/calendar/local/ -name "calendar.ics"`
 
@@ -19,7 +23,7 @@
 
 ENCODING=ISO-8859-15                          # encoding used by ipod
 
-# Unless called with "-e=none" this script requires "iconv" available
+# 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):
@@ -61,7 +65,7 @@
 # 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")
+# 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
@@ -78,7 +82,8 @@
         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>]"
+        f) FILTER=$OPTARG;;
+		\?) echo "Usage: `basename $0` [-i <ipod mountpoint>] [-c <evolution calendar file>] [-t <evolution tasks file>] [-f <filter script>] [-e <encoding>]"
 	    exit 1;;
     esac
 done
@@ -91,6 +96,11 @@
     RECODE="iconv -f UTF-8 -t $ENCODING"
 fi
 
+if [ $FILTER_SCRIPT ]; then
+	FILTER=$FILTER_SCRIPT
+else
+	FILTER="cat"
+fi
 
 # check if CALFILES exist
 for i in $CALFILES; do
@@ -110,8 +120,8 @@
 
 echo $CALFILES
 echo $TASKFILES
-sleep 30
+
 # remove all empty lines and recode if necessary
 echo -n "Syncing iPod ... [Calendar] "
-	cat $CALFILES $TASKFILES | grep -v '^[[:space:]]$\|^$' | $RECODE > $IPOD_MOUNT/Calendars/evolution
+	cat $CALFILES $TASKFILES | grep -v '^[[:space:]]$\|^$' | $FILTER |  $RECODE > $IPOD_MOUNT/Calendars/evolution
 echo "done!"

Modified: gtkpod/trunk/scripts/sync-evolution.sh
===================================================================
--- gtkpod/trunk/scripts/sync-evolution.sh	2007-06-27 20:59:02 UTC (rev 193)
+++ gtkpod/trunk/scripts/sync-evolution.sh	2007-06-27 21:27:12 UTC (rev 194)
@@ -45,6 +45,9 @@
 #
 # 2004/12/15 (Jorg Schuler <jcsjcs at users dot sourceforge dot net>):
 # Split evolution support into a new file.
+#
+# 2007/04/02 (Jorg Schuler <jcsjcs at users dot sourceforge dot net>):
+# Allow syncing of contacts containing pictures. Thanks to Lars Friedrichs.
 
 
 # overwrite default settings with optional command line arguments
@@ -88,5 +91,5 @@
 # remove all empty lines and recode if necessary
 echo -n "Syncing iPod ... [Contacts] "
 # Redirect STDERR to avoid the "FIXME : wait for completion unimplemented" warning
-evolution-addressbook-export 2>&1 | grep -v '^[[:space:]]$\|^$' | $RECODE > $IPOD_MOUNT/Contacts/evolution
+evolution-addressbook-export 2>&1 | grep -v '^[[:space:]]$\|^$' | $RECODE | sed -e "s/PHOTO;ENCODING=b;TYPE=\"X-EVOLUTION-UNKNOWN\"/PHOTO;BASE64/g" > $IPOD_MOUNT/Contacts/evolution
 echo "done!"

Modified: gtkpod/trunk/scripts/sync-kaddressbook.sh
===================================================================
--- gtkpod/trunk/scripts/sync-kaddressbook.sh	2007-06-27 20:59:02 UTC (rev 193)
+++ gtkpod/trunk/scripts/sync-kaddressbook.sh	2007-06-27 21:27:12 UTC (rev 194)
@@ -13,7 +13,7 @@
 DATAFILE=~/.kde/share/apps/kabc/std.vcf       # vcard file
 ENCODING=ISO-8859-15                          # encoding used by ipod
 
-# Unless called with "-e=none" this script requires "iconv" available
+# 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):
@@ -50,7 +50,7 @@
 # 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")
+# 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

Modified: gtkpod/trunk/scripts/sync-korganizer.sh
===================================================================
--- gtkpod/trunk/scripts/sync-korganizer.sh	2007-06-27 20:59:02 UTC (rev 193)
+++ gtkpod/trunk/scripts/sync-korganizer.sh	2007-06-27 21:27:12 UTC (rev 194)
@@ -13,7 +13,7 @@
 DATAFILE=~/.kde/share/apps/korganizer/std.ics # calendar data file
 ENCODING=ISO-8859-15                          # encoding used by ipod
 
-# Unless called with "-e=none" this script requires "iconv" available
+# 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):
@@ -50,7 +50,7 @@
 # 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")
+# 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

Modified: gtkpod/trunk/scripts/sync-notes.sh
===================================================================
--- gtkpod/trunk/scripts/sync-notes.sh	2007-06-27 20:59:02 UTC (rev 193)
+++ gtkpod/trunk/scripts/sync-notes.sh	2007-06-27 21:27:12 UTC (rev 194)
@@ -4,14 +4,14 @@
 
 # Usage:
 # 
-# sync-notes.sh [-i <ipod mountpoint>] [-p <path to folder containing notes (~/ipod_notes by default)>]
+# sync-notes.sh [-i <ipod mountpoint>] [-d <path to folder containing notes (~/ipod_notes by default)>]
 #           ...        [-e <encoding>]
 #
 # with the following defaults: 
 
-IPOD_MOUNT=/media/ipod                          # mountpoint of ipod
-NOTESPATH=~/Desktop/Notizen		  # path to folder containing notes
-ENCODING=ISO-8859-15                          # encoding used by ipod
+IPOD_MOUNT=/media/ipod            # mountpoint of ipod
+NOTESPATH=~/Desktop/notes         # 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/
@@ -50,7 +50,7 @@
 # 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")
+# 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
@@ -70,7 +70,13 @@
 # 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
+#
+# 2007/05/31 (Jorg Schuler <jcsjcs at users dot sourceforge dot net>):
+# Corrections By Oliver Sherouse <oliver.sherouse AT gmail DOT com>
+# (replaced some arithmetic expressions), fixed "-e=none", correctly
+# indicate "-d" in 'usage' instead of "-p")
 
+
 # overwrite default settings with optional command line arguments
 while getopts i:d:e: option; do
     case $option in
@@ -122,8 +128,8 @@
 find -type f |
 (
   read FILE
-  while [ "$?" == "0" ]; do
-	((++I))
+  while [ "$?" = "0" ]; do
+	I=`expr $I + 1`
 	mkdir -p "$IPOD_MOUNT/Notes/`dirname "$FILE"`/"
 	cat "$FILE" | $RECODE > "$IPOD_MOUNT/Notes/$FILE"
 	read FILE

Modified: gtkpod/trunk/scripts/sync-tomboy.sh
===================================================================
--- gtkpod/trunk/scripts/sync-tomboy.sh	2007-06-27 20:59:02 UTC (rev 193)
+++ gtkpod/trunk/scripts/sync-tomboy.sh	2007-06-27 21:27:12 UTC (rev 194)
@@ -6,14 +6,14 @@
 
 # Usage:
 # 
-# sync-notes.sh [-i <ipod mountpoint>] [-p <path to folder containing notes (~/ipod_notes by default)>]
+# sync-notes.sh [-i <ipod mountpoint>] [-d <path to folder containing notes (~/ipod_notes by default)>]
 #           ...        [-e <encoding>]
 #
 # with the following defaults: 
 
-IPOD_MOUNT=/media/disk-1                          # mountpoint of ipod
+IPOD_MOUNT=/media/ipod                    # mountpoint of ipod
 NOTESPATH=~/.tomboy			  # path to folder containing notes
-ENCODING=ISO-8859-15                          # encoding used by ipod
+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/
@@ -72,6 +72,11 @@
 # 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
+#
+# 2007/05/31 (Jorg Schuler <jcsjcs at users dot sourceforge dot net>):
+# Corrections By Oliver Sherouse <oliver.sherouse AT gmail DOT com>
+# (replaced some arithmetic expressions, improved conversion, correctly
+# indicate "-d" in 'usage' instead of "-p")
 
 # overwrite default settings with optional command line arguments
 while getopts i:d:e: option; do
@@ -124,8 +129,8 @@
 ls *.note |
 (
   read FILE
-  while [ "$?" == "0" ]; do
-	((++I))
+  while [ "$?" = "0" ]; do
+	I=`expr $I + 1`
 
 	# Get the starting and ending lines for the data
 	LIMITS=`cat $FILE | grep -n  note-content | cut -d ":" -f 1 | tr "\n" " "`
@@ -138,10 +143,10 @@
 	
 	# Get the Lines with the useful data
 	DATA=`cat "$FILE" | cut -d "
-" -f $((START+2))-$END`
+" -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
+	for i in "<\/note-content>" "<\/text>" "<link:broken>" "<\/link:broken>" "<link:internal>" "<\/link:internal>" "<link:external>" "<\/link:external>" "<\/list>" "<list>" "<\/list-item>" "<list-item dir=\"ltr\">"; do
 		DATA=`printf "$DATA" | sed "s/$i//g"`
 	done
 

Modified: gtkpod/trunk/scripts/sync-webcalendar.sh
===================================================================
--- gtkpod/trunk/scripts/sync-webcalendar.sh	2007-06-27 20:59:02 UTC (rev 193)
+++ gtkpod/trunk/scripts/sync-webcalendar.sh	2007-06-27 21:27:12 UTC (rev 194)
@@ -3,16 +3,20 @@
 # sync ipod with webcalendar
 
 # Usage:
-# 
-# sync-webcalendar.sh [-i <ipod mountpoint>] [-d <webcalendar uri>]
 #
-# with the following defaults: 
+# sync-webcalendar.sh [-i <ipod mountpoint>] [-d <webcalendar uri>] [-c <calendar name>]
+#
+# with the following defaults:
 
-IPOD_MOUNT='/media/ipod'				# mount point of ipod
-DATAFILE='https://native.intern.net/projekte/webcalendar/publish.php/daniel.ics'	# uri for webcalendar
+# mount point of ipod
+IPOD_MOUNT='/media/ipod'
+# uri for webcalendar (example)
+DATAFILE='https://somewhere.local/calendar.ics'
+# calendar name
+CALENDAR='webcalendar'
+# special options for wget
+WGET_OPTIONS='--no-check-certificate'
 
-WGET_OPTIONS='--no-check-certificate'							# special options for wget
-
 # About the encoding used by the iPod (by Jorg Schuler):
 #
 # For some reason the encoding used for the contact files and
@@ -31,21 +35,29 @@
 # Japanese           SHIFT-JIS
 
 # Changelog
+#
+# 2007/02/01 (Giray Devlet <giray at devlet.cc>): Multi Calendar Support
+#
 # 2005/06/15 (Jorg Schuler <jcsjcs at users dot sourceforge dot net>):
 # Received original script from Daniel Kercher and added command line
 # options
+#
+# 2007/05/31 (Jorg Schuler <jcsjcs at users dot sourceforge dot net>):
+# Set a more reasonable default datafile.
+#
 # FIXME: some way to convert the character set
 
 # overwrite default settings with optional command line arguments
-while getopts i:d: option; do
+while getopts i:d:c: option; do
     case $option in
         i) IPOD_MOUNT=$OPTARG;;
         d) DATAFILE=$OPTARG;;
-        \?) echo "Usage: `basename $0` [-i <ipod mountpoint>] [-d <webcalendar uri>]"
-	    exit 1;;
+        c) CALENDAR=$OPTARG;;
+        \?) echo "Usage: `basename $0` [-i <ipod mountpoint>] [-d <webcalendar uri>] [-c <calendar_name>]"
+            exit 1;;
     esac
 done
 
-echo -n "Syncing webcalendar to iPod... "
-wget -q $WGET_OPTIONS -O ${IPOD_MOUNT}/Calendars/webcalendar.ics $DATAFILE
+echo -n "Syncing Web Calendar \"${CALENDAR}\" to iPod... "
+wget -q $WGET_OPTIONS -O ${IPOD_MOUNT}/Calendars/${CALENDAR}.ics $DATAFILE
 echo "done!"

Modified: gtkpod/trunk/src/Makefile.am
===================================================================
--- gtkpod/trunk/src/Makefile.am	2007-06-27 20:59:02 UTC (rev 193)
+++ gtkpod/trunk/src/Makefile.am	2007-06-27 21:27:12 UTC (rev 194)
@@ -11,50 +11,46 @@
 
 bin_PROGRAMS = gtkpod
 
-BUILT_SOURCES = \
-        ../pixmaps/gtkpod.glade \
-        ../pixmaps/gtkpod.gladep
-
-../pixmaps/gtkpod.glade:
-	ln -s ../gtkpod.glade ../pixmaps/gtkpod.glade
-
-../pixmaps/gtkpod.gladep:
-	ln -s ../gtkpod.gladep ../pixmaps/gtkpod.gladep
-
 ## I'm using %option outfile="lex.yy.c" in the parser files,
 ## so this should be portable
 LEX_OUTPUT_ROOT = lex.yy
 
 
 gtkpod_SOURCES = \
+    autodetection.c autodetection.h \
     charset.c charset.h \
     clientserver.c clientserver.h \
     confirmation.c confirmation.h \
     context_menus.c context_menus.h \
     date_parser.l date_parser2.l date_parser.h \
     details.c details.h \
+    display_coverart.c display_coverart.h \
     display.c display_playlists.c display_sorttabs.c \
     display.h display_private.h \
     display_itdb.c display_itdb.h \
-    display_songs.c display_spl.c \
+    display_spl.c display_tracks.c \
+    fetchcover.c fetchcover.h \
     file.c file.h file_export.c \
+    file_convert.c file_convert.h \
     file_itunesdb.c \
     fileselection.h fileselection.c \
+    flacfile.c flacfile.h \
     info.c info.h \
     ipod_init.c ipod_init.h \
     itdb.h \
     main.c \
-    md5.c md5.h \
     misc.c misc.h \
     misc_confirm.c misc_conversion.c misc_input.c \
     misc_playlist.c \
     misc_track.c misc_track.h \
     mp3file.c mp3file.h \
     mp4file.c mp4file.h \
+    oggfile.c oggfile.h \
     podcast.c podcast.h \
     prefs.c prefs.h \
     prefs_window.c prefs_window.h \
     repository.c repository.h \
+    sha1.c sha1.h \
     syncdir.c syncdir.h \
     tools.c tools.h \
     wavfile.c wavfile.h
@@ -62,3 +58,5 @@
 gtkpod_LDADD = @PACKAGE_LIBS@ $(INTLLIBS) @LIBOBJS@
 
 EXTRA_DIST = getopt.h
+
+CLEANFILES = date_parser.c date_parser2.c

Modified: gtkpod/trunk/src/Makefile.in
===================================================================
--- gtkpod/trunk/src/Makefile.in	2007-06-27 20:59:02 UTC (rev 193)
+++ gtkpod/trunk/src/Makefile.in	2007-06-27 21:27:12 UTC (rev 194)
@@ -37,6 +37,7 @@
 POST_UNINSTALL = :
 host_triplet = @host@
 ACLOCAL = @ACLOCAL@
+ALL_LINGUAS = @ALL_LINGUAS@
 AMDEP_FALSE = @AMDEP_FALSE@
 AMDEP_TRUE = @AMDEP_TRUE@
 AMTAR = @AMTAR@
@@ -51,6 +52,8 @@
 CFLAGS = @CFLAGS@
 CPP = @CPP@
 CPPFLAGS = @CPPFLAGS@
+CURL_CFLAGS = @CURL_CFLAGS@
+CURL_LIBS = @CURL_LIBS@
 CYGPATH_W = @CYGPATH_W@
 DATADIRNAME = @DATADIRNAME@
 DEFS = @DEFS@
@@ -63,13 +66,47 @@
 GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
 GMOFILES = @GMOFILES@
 GMSGFMT = @GMSGFMT@
+GNOME_VFS_CFLAGS = @GNOME_VFS_CFLAGS@
+GNOME_VFS_LIBS = @GNOME_VFS_LIBS@
 GREP = @GREP@
+HAL_CFLAGS = @HAL_CFLAGS@
+HAL_LIBS = @HAL_LIBS@
+HAVE_GNOME_VFS_FALSE = @HAVE_GNOME_VFS_FALSE@
+HAVE_GNOME_VFS_TRUE = @HAVE_GNOME_VFS_TRUE@
+HAVE_HAL_FALSE = @HAVE_HAL_FALSE@
+HAVE_HAL_TRUE = @HAVE_HAL_TRUE@
 INSTALL_DATA = @INSTALL_DATA@
 INSTALL_PROGRAM = @INSTALL_PROGRAM@
 INSTALL_SCRIPT = @INSTALL_SCRIPT@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
 INSTOBJEXT = @INSTOBJEXT@
 INTLLIBS = @INTLLIBS@
+INTLTOOL_CAVES_RULE = @INTLTOOL_CAVES_RULE@
+INTLTOOL_DESKTOP_RULE = @INTLTOOL_DESKTOP_RULE@
+INTLTOOL_DIRECTORY_RULE = @INTLTOOL_DIRECTORY_RULE@
+INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@
+INTLTOOL_ICONV = @INTLTOOL_ICONV@
+INTLTOOL_KBD_RULE = @INTLTOOL_KBD_RULE@
+INTLTOOL_KEYS_RULE = @INTLTOOL_KEYS_RULE@
+INTLTOOL_MERGE = @INTLTOOL_MERGE@
+INTLTOOL_MSGFMT = @INTLTOOL_MSGFMT@
+INTLTOOL_MSGMERGE = @INTLTOOL_MSGMERGE@
+INTLTOOL_OAF_RULE = @INTLTOOL_OAF_RULE@
+INTLTOOL_PERL = @INTLTOOL_PERL@
+INTLTOOL_PONG_RULE = @INTLTOOL_PONG_RULE@
+INTLTOOL_PROP_RULE = @INTLTOOL_PROP_RULE@
+INTLTOOL_SCHEMAS_RULE = @INTLTOOL_SCHEMAS_RULE@
+INTLTOOL_SERVER_RULE = @INTLTOOL_SERVER_RULE@
+INTLTOOL_SERVICE_RULE = @INTLTOOL_SERVICE_RULE@
+INTLTOOL_SHEET_RULE = @INTLTOOL_SHEET_RULE@
+INTLTOOL_SOUNDLIST_RULE = @INTLTOOL_SOUNDLIST_RULE@
+INTLTOOL_THEME_RULE = @INTLTOOL_THEME_RULE@
+INTLTOOL_UI_RULE = @INTLTOOL_UI_RULE@
+INTLTOOL_UPDATE = @INTLTOOL_UPDATE@
+INTLTOOL_XAM_RULE = @INTLTOOL_XAM_RULE@
+INTLTOOL_XGETTEXT = @INTLTOOL_XGETTEXT@
+INTLTOOL_XML_NOMERGE_RULE = @INTLTOOL_XML_NOMERGE_RULE@
+INTLTOOL_XML_RULE = @INTLTOOL_XML_RULE@
 LDFLAGS = @LDFLAGS@
 LEX = @LEX@
 LEXLIB = @LEXLIB@
@@ -161,40 +198,41 @@
 
 bin_PROGRAMS = gtkpod
 
-BUILT_SOURCES = \
-        ../pixmaps/gtkpod.glade \
-        ../pixmaps/gtkpod.gladep
-
-
 gtkpod_SOURCES = \
+    autodetection.c autodetection.h \
     charset.c charset.h \
     clientserver.c clientserver.h \
     confirmation.c confirmation.h \
     context_menus.c context_menus.h \
     date_parser.l date_parser2.l date_parser.h \
     details.c details.h \
+    display_coverart.c display_coverart.h \
     display.c display_playlists.c display_sorttabs.c \
     display.h display_private.h \
     display_itdb.c display_itdb.h \
-    display_songs.c display_spl.c \
+    display_spl.c display_tracks.c \
+    fetchcover.c fetchcover.h \
     file.c file.h file_export.c \
+    file_convert.c file_convert.h \
     file_itunesdb.c \
     fileselection.h fileselection.c \
+    flacfile.c flacfile.h \
     info.c info.h \
     ipod_init.c ipod_init.h \
     itdb.h \
     main.c \
-    md5.c md5.h \
     misc.c misc.h \
     misc_confirm.c misc_conversion.c misc_input.c \
     misc_playlist.c \
     misc_track.c misc_track.h \
     mp3file.c mp3file.h \
     mp4file.c mp4file.h \
+    oggfile.c oggfile.h \
     podcast.c podcast.h \
     prefs.c prefs.h \
     prefs_window.c prefs_window.h \
     repository.c repository.h \
+    sha1.c sha1.h \
     syncdir.c syncdir.h \
     tools.c tools.h \
     wavfile.c wavfile.h
@@ -203,6 +241,8 @@
 gtkpod_LDADD = @PACKAGE_LIBS@ $(INTLLIBS) @LIBOBJS@
 
 EXTRA_DIST = getopt.h
+
+CLEANFILES = date_parser.c date_parser2.c
 subdir = src
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
@@ -211,20 +251,23 @@
 bin_PROGRAMS = gtkpod$(EXEEXT)
 PROGRAMS = $(bin_PROGRAMS)
 
-am_gtkpod_OBJECTS = charset.$(OBJEXT) clientserver.$(OBJEXT) \
-	confirmation.$(OBJEXT) context_menus.$(OBJEXT) \
-	date_parser.$(OBJEXT) date_parser2.$(OBJEXT) details.$(OBJEXT) \
-	display.$(OBJEXT) display_playlists.$(OBJEXT) \
-	display_sorttabs.$(OBJEXT) display_itdb.$(OBJEXT) \
-	display_songs.$(OBJEXT) display_spl.$(OBJEXT) file.$(OBJEXT) \
-	file_export.$(OBJEXT) file_itunesdb.$(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) \
+am_gtkpod_OBJECTS = autodetection.$(OBJEXT) charset.$(OBJEXT) \
+	clientserver.$(OBJEXT) confirmation.$(OBJEXT) \
+	context_menus.$(OBJEXT) date_parser.$(OBJEXT) \
+	date_parser2.$(OBJEXT) details.$(OBJEXT) \
+	display_coverart.$(OBJEXT) display.$(OBJEXT) \
+	display_playlists.$(OBJEXT) display_sorttabs.$(OBJEXT) \
+	display_itdb.$(OBJEXT) display_spl.$(OBJEXT) \
+	display_tracks.$(OBJEXT) fetchcover.$(OBJEXT) file.$(OBJEXT) \
+	file_export.$(OBJEXT) file_convert.$(OBJEXT) \
+	file_itunesdb.$(OBJEXT) fileselection.$(OBJEXT) \
+	flacfile.$(OBJEXT) info.$(OBJEXT) ipod_init.$(OBJEXT) \
+	main.$(OBJEXT) misc.$(OBJEXT) misc_confirm.$(OBJEXT) \
+	misc_conversion.$(OBJEXT) misc_input.$(OBJEXT) \
+	misc_playlist.$(OBJEXT) misc_track.$(OBJEXT) mp3file.$(OBJEXT) \
+	mp4file.$(OBJEXT) oggfile.$(OBJEXT) podcast.$(OBJEXT) \
+	prefs.$(OBJEXT) prefs_window.$(OBJEXT) repository.$(OBJEXT) \
+	sha1.$(OBJEXT) syncdir.$(OBJEXT) tools.$(OBJEXT) \
 	wavfile.$(OBJEXT)
 gtkpod_OBJECTS = $(am_gtkpod_OBJECTS)
 gtkpod_DEPENDENCIES = @LIBOBJS@
@@ -234,30 +277,37 @@
 depcomp = $(SHELL) $(top_srcdir)/depcomp
 am__depfiles_maybe = depfiles
 @AMDEP_TRUE at DEP_FILES = $(DEPDIR)/getopt.Po $(DEPDIR)/getopt1.Po \
- at AMDEP_TRUE@	./$(DEPDIR)/charset.Po ./$(DEPDIR)/clientserver.Po \
+ at AMDEP_TRUE@	./$(DEPDIR)/autodetection.Po ./$(DEPDIR)/charset.Po \
+ at AMDEP_TRUE@	./$(DEPDIR)/clientserver.Po \
 @AMDEP_TRUE@	./$(DEPDIR)/confirmation.Po \
 @AMDEP_TRUE@	./$(DEPDIR)/context_menus.Po \
 @AMDEP_TRUE@	./$(DEPDIR)/date_parser.Po \
 @AMDEP_TRUE@	./$(DEPDIR)/date_parser2.Po ./$(DEPDIR)/details.Po \
- at AMDEP_TRUE@	./$(DEPDIR)/display.Po ./$(DEPDIR)/display_itdb.Po \
+ at AMDEP_TRUE@	./$(DEPDIR)/display.Po \
+ at AMDEP_TRUE@	./$(DEPDIR)/display_coverart.Po \
+ at AMDEP_TRUE@	./$(DEPDIR)/display_itdb.Po \
 @AMDEP_TRUE@	./$(DEPDIR)/display_playlists.Po \
- at AMDEP_TRUE@	./$(DEPDIR)/display_songs.Po \
 @AMDEP_TRUE@	./$(DEPDIR)/display_sorttabs.Po \
- at AMDEP_TRUE@	./$(DEPDIR)/display_spl.Po ./$(DEPDIR)/file.Po \
+ at AMDEP_TRUE@	./$(DEPDIR)/display_spl.Po \
+ at AMDEP_TRUE@	./$(DEPDIR)/display_tracks.Po \
+ at AMDEP_TRUE@	./$(DEPDIR)/fetchcover.Po ./$(DEPDIR)/file.Po \
+ at AMDEP_TRUE@	./$(DEPDIR)/file_convert.Po \
 @AMDEP_TRUE@	./$(DEPDIR)/file_export.Po \
 @AMDEP_TRUE@	./$(DEPDIR)/file_itunesdb.Po \
- at AMDEP_TRUE@	./$(DEPDIR)/fileselection.Po ./$(DEPDIR)/info.Po \
+ at AMDEP_TRUE@	./$(DEPDIR)/fileselection.Po \
+ at AMDEP_TRUE@	./$(DEPDIR)/flacfile.Po ./$(DEPDIR)/info.Po \
 @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 \
+ at AMDEP_TRUE@	./$(DEPDIR)/misc.Po ./$(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 \
- at AMDEP_TRUE@	./$(DEPDIR)/mp4file.Po ./$(DEPDIR)/podcast.Po \
- at AMDEP_TRUE@	./$(DEPDIR)/prefs.Po ./$(DEPDIR)/prefs_window.Po \
- at AMDEP_TRUE@	./$(DEPDIR)/repository.Po ./$(DEPDIR)/syncdir.Po \
- at AMDEP_TRUE@	./$(DEPDIR)/tools.Po ./$(DEPDIR)/wavfile.Po
+ at AMDEP_TRUE@	./$(DEPDIR)/mp4file.Po ./$(DEPDIR)/oggfile.Po \
+ at AMDEP_TRUE@	./$(DEPDIR)/podcast.Po ./$(DEPDIR)/prefs.Po \
+ at AMDEP_TRUE@	./$(DEPDIR)/prefs_window.Po \
+ at AMDEP_TRUE@	./$(DEPDIR)/repository.Po ./$(DEPDIR)/sha1.Po \
+ at AMDEP_TRUE@	./$(DEPDIR)/syncdir.Po ./$(DEPDIR)/tools.Po \
+ at AMDEP_TRUE@	./$(DEPDIR)/wavfile.Po
 COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
 	$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
 CCLD = $(CC)
@@ -269,8 +319,7 @@
 	date_parser2.c getopt.c getopt1.c
 SOURCES = $(gtkpod_SOURCES)
 
-all: $(BUILT_SOURCES)
-	$(MAKE) $(AM_MAKEFLAGS) all-am
+all: all-am
 
 .SUFFIXES:
 .SUFFIXES: .c .l .o .obj
@@ -315,6 +364,7 @@
 
 @AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/getopt.Po at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/getopt1.Po at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/autodetection.Po at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/charset.Po at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/clientserver.Po at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/confirmation.Po at am__quote@
@@ -323,19 +373,22 @@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/date_parser2.Po at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/details.Po at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/display.Po at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/display_coverart.Po at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/display_itdb.Po at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/display_playlists.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/display_songs.Po at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/display_sorttabs.Po at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/display_spl.Po at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/display_tracks.Po at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/fetchcover.Po at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/file.Po at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/file_convert.Po at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/file_export.Po at am__quote@
 @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@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/flacfile.Po at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/info.Po at am__quote@
 @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@
- at 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@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/misc_confirm.Po at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/misc_conversion.Po at am__quote@
@@ -344,10 +397,12 @@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/misc_track.Po at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/mp3file.Po at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/mp4file.Po at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/oggfile.Po at am__quote@
 @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@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/repository.Po at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/sha1.Po at am__quote@
 @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@
@@ -464,14 +519,12 @@
 	  fi; \
 	done
 check-am: all-am
-check: $(BUILT_SOURCES)
-	$(MAKE) $(AM_MAKEFLAGS) check-am
+check: check-am
 all-am: Makefile $(PROGRAMS)
 
 installdirs:
 	$(mkinstalldirs) $(DESTDIR)$(bindir)
-install: $(BUILT_SOURCES)
-	$(MAKE) $(AM_MAKEFLAGS) install-am
+install: install-am
 install-exec: install-exec-am
 install-data: install-data-am
 uninstall: uninstall-am
@@ -488,6 +541,7 @@
 mostlyclean-generic:
 
 clean-generic:
+	-test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
 
 distclean-generic:
 	-rm -f $(CONFIG_CLEAN_FILES)
@@ -497,7 +551,6 @@
 	@echo "it deletes files that may require special tools to rebuild."
 	-rm -f date_parser2.c
 	-rm -f date_parser.c
-	-test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES)
 clean: clean-am
 
 clean-am: clean-binPROGRAMS clean-generic mostlyclean-am
@@ -556,12 +609,6 @@
 	mostlyclean-generic pdf pdf-am ps ps-am tags uninstall \
 	uninstall-am uninstall-binPROGRAMS uninstall-info-am
 
-
-../pixmaps/gtkpod.glade:
-	ln -s ../gtkpod.glade ../pixmaps/gtkpod.glade
-
-../pixmaps/gtkpod.gladep:
-	ln -s ../gtkpod.gladep ../pixmaps/gtkpod.gladep
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
 .NOEXPORT:

Copied: gtkpod/trunk/src/autodetection.c (from rev 193, gtkpod/branches/upstream/current/src/autodetection.c)
===================================================================
--- gtkpod/trunk/src/autodetection.c	                        (rev 0)
+++ gtkpod/trunk/src/autodetection.c	2007-06-27 21:27:12 UTC (rev 194)
@@ -0,0 +1,446 @@
+/*
+|  Copyright (C) 2007 Jorg Schuler <jcsjcs at users.sourceforge.net>
+|  Part of the gtkpod project.
+|
+|  URL: http://gtkpod.sourceforge.net/
+|  URL: http://www.gtkpod.org
+|
+|  This program is free software; you can redistribute it and/or modify
+|  it under the terms of the GNU General Public License as published by
+|  the Free Software Foundation; either version 2 of the License, or
+|  (at your option) any later version.
+|
+|  This program is distributed in the hope that it will be useful,
+|  but WITHOUT ANY WARRANTY; without even the implied warranty of
+|  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+|  GNU General Public License for more details.
+|
+|  You should have received a copy of the GNU General Public License
+|  along with this program; if not, write to the Free Software
+|  Foundation, Inc., 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: autodetection.c 1565 2007-06-20 04:46:34Z tmzullinger $
+*/
+
+
+#include "autodetection.h"
+#include "config.h"
+#include "misc.h"
+#include "prefs.h"
+#include <stdio.h>
+#include <string.h>
+
+
+
+#ifdef HAVE_GNOME_VFS
+#include <libgnomevfs/gnome-vfs.h>
+#endif
+#ifdef HAVE_HAL
+#include <libhal.h>
+#include <dbus/dbus.h>
+#endif
+
+#undef DEBUG_AUTO
+#ifdef DEBUG_AUTO
+#   define _TO_STR(x) #x
+#   define TO_STR(x) _TO_STR(x)
+#   define debug(...) do { fprintf(stderr,  __FILE__ ":" TO_STR(__LINE__) ":" __VA_ARGS__); } while(0)
+#else
+#   define debug(...)
+#endif
+
+
+
+/* Find out if an itdb uses the mountpoint @mountpoint and return that
+   itdb */
+static iTunesDB *ad_find_repository_with_mountpoint (const gchar *mountpoint)
+{
+    GList *gl;
+    gchar *mp;
+    gint lenmp;
+    iTunesDB *result = NULL;
+    struct itdbs_head *itdbs;
+
+    g_return_val_if_fail (mountpoint, NULL);
+
+    itdbs = gp_get_itdbs_head (gtkpod_window);
+    g_return_val_if_fail (itdbs, NULL);
+
+    /* eliminate trailing dir separators ('/') */
+    mp = g_strdup (mountpoint);
+    lenmp = strlen (mountpoint);
+    if ((lenmp > 0) && (mp[lenmp-1] == G_DIR_SEPARATOR))
+    {
+	mp[lenmp-1] = 0;
+    }
+
+    for (gl=itdbs->itdbs; gl; gl=gl->next)
+    {
+	iTunesDB *itdb = gl->data;
+	g_return_val_if_fail (itdb, NULL);
+
+	if (itdb->usertype & GP_ITDB_TYPE_IPOD)
+	{
+	    gchar *imp = get_itdb_prefs_string (itdb, KEY_MOUNTPOINT);
+	    if (imp)
+	    {
+		gint comp;
+		gint lenimp = strlen (imp);
+
+		/* eliminate trailing dir separators ('/') */
+		if ((lenimp > 0) && (imp[lenimp-1] == G_DIR_SEPARATOR))
+		{
+		    imp[lenmp-1] = 0;
+		}
+
+		comp = strcmp (mp, imp);
+
+		g_free (imp);
+
+		if (comp == 0)
+		{
+		    result = itdb;
+		    break;
+		}
+	    }
+	}
+    }
+
+    g_free (mp);
+
+    return result;
+}
+
+
+
+
+#ifdef HAVE_GNOME_VFS
+typedef struct _AutoDetect AutoDetect;
+
+static gboolean ad_timeout_cb (gpointer data);
+
+
+struct _AutoDetect
+{
+    GMutex *mutex;              /* shared lock */
+    GList *new_ipod_uris;       /* list of new mounts */
+    guint timeout_id;
+};    
+
+static AutoDetect *autodetect;
+
+
+#ifdef HAVE_HAL
+/* from rb-ipod-source.c (rhythmbox ipod plugin) */
+static gboolean
+hal_udi_is_ipod (const char *udi)
+{
+	LibHalContext *ctx;
+	DBusConnection *conn;
+	char *parent_udi;
+	char *parent_name;
+	gboolean result;
+	DBusError error;
+	gboolean inited = FALSE;
+
+	result = FALSE;
+	dbus_error_init (&error);
+
+	conn = NULL;
+	parent_udi = NULL;
+	parent_name = NULL;
+
+	ctx = libhal_ctx_new ();
+	if (ctx == NULL) {
+		/* FIXME: should we return an error somehow so that we can
+		 * fall back to a check for iTunesDB presence instead ?
+		 */
+		debug ("cannot connect to HAL");
+		goto end;
+	}
+	conn = dbus_bus_get (DBUS_BUS_SYSTEM, &error);
+	if (conn == NULL || dbus_error_is_set (&error))
+		goto end;
+
+	libhal_ctx_set_dbus_connection (ctx, conn);
+	if (!libhal_ctx_init (ctx, &error) || dbus_error_is_set (&error))
+		goto end;
+
+	inited = TRUE;
+	parent_udi = libhal_device_get_property_string (ctx, udi,
+			"info.parent", &error);
+	if (parent_udi == NULL || dbus_error_is_set (&error))
+		goto end;
+
+	parent_name = libhal_device_get_property_string (ctx, parent_udi,
+			"storage.model", &error);
+	if (parent_name == NULL || dbus_error_is_set (&error))
+		goto end;
+
+	if (strcmp (parent_name, "iPod") == 0)
+		result = TRUE;
+
+end:
+	g_free (parent_udi);
+	g_free (parent_name);
+
+	if (dbus_error_is_set (&error)) {
+		debug ("Error: %s\n", error.message);
+		dbus_error_free (&error);
+		dbus_error_init (&error);
+	}
+
+	if (ctx) {
+		if (inited)
+			libhal_ctx_shutdown (ctx, &error);
+		libhal_ctx_free(ctx);
+	}
+
+	dbus_error_free (&error);
+
+	return result;
+}
+#endif
+
+
+/* adapted from rb-ipod-source.c (rhythmbox ipod plugin) */
+static gchar *ad_get_itunes_dir (GnomeVFSVolume *volume)
+{
+    gchar *mount_point_uri;
+    gchar *result = NULL;
+
+    mount_point_uri = gnome_vfs_volume_get_activation_uri (volume);
+    if (mount_point_uri)
+    {
+	gchar *mount_point;
+	mount_point = g_filename_from_uri (mount_point_uri, NULL, NULL);
+	if (mount_point)
+	{
+	    result = itdb_get_itunes_dir (mount_point);
+	    g_free (mount_point);
+	}
+	g_free (mount_point_uri);
+    }
+    return result;
+}
+
+
+/* adapted from rb-ipod-source.c (rhythmbox ipod plugin) */
+static gboolean ad_volume_has_ipod_dir (GnomeVFSVolume *volume)
+{
+    gchar *itunes_dir;
+    gboolean result = FALSE;
+
+    itunes_dir = ad_get_itunes_dir (volume);
+
+    if (itunes_dir)
+    {
+	result = g_file_test (itunes_dir, G_FILE_TEST_EXISTS);
+    }
+
+    g_free (itunes_dir);
+
+    return result;
+}
+
+/* adapted from rb-ipod-source.c (rhythmbox ipod plugin) */
+static gboolean ad_volume_is_ipod (GnomeVFSVolume *volume)
+{
+#ifdef HAVE_HAL
+    gchar *udi;
+#endif
+    if (gnome_vfs_volume_get_volume_type (volume) != GNOME_VFS_VOLUME_TYPE_MOUNTPOINT)
+    {
+	return FALSE;
+    }
+
+#ifdef HAVE_HAL
+    udi = gnome_vfs_volume_get_hal_udi (volume);
+    if (udi != NULL)
+    {
+	gboolean result;
+
+	result = hal_udi_is_ipod (udi);
+	g_free (udi);
+	if (result == FALSE)
+	{
+	    return FALSE;
+	}
+    }
+#endif
+
+    return ad_volume_has_ipod_dir (volume);
+}
+
+
+
+static void ad_volume_mounted_cb (GnomeVFSVolumeMonitor *vfsvolumemonitor,
+				  GnomeVFSVolume *volume,
+				  AutoDetect *ad)
+{
+    g_return_if_fail (volume && ad);
+
+    if (ad_volume_is_ipod (volume))
+    {
+	gchar *uri;
+
+	uri = gnome_vfs_volume_get_activation_uri (volume);
+
+	debug ("mounted iPod: '%s'\n", uri);
+
+	g_mutex_lock (ad->mutex);
+	ad->new_ipod_uris = g_list_prepend (ad->new_ipod_uris, uri);
+	g_mutex_unlock (ad->mutex);
+    }
+}
+
+
+void autodetection_init ()
+{
+    if (autodetect == NULL)
+    {
+	GList *volumes, *gl;
+
+	if (!gnome_vfs_init ())
+	{
+	    gtkpod_warning (_("Could not initialize GnomeVFS\n"));
+	    g_return_if_reached ();
+	}
+
+	autodetect = g_new0 (AutoDetect, 1);
+	autodetect->mutex = g_mutex_new ();
+
+	/* Check if an iPod is already mounted and add it to the list */
+	volumes = gnome_vfs_volume_monitor_get_mounted_volumes (
+	    gnome_vfs_get_volume_monitor ());
+
+	for (gl=volumes; gl; gl=gl->next)
+	{
+	    GnomeVFSVolume *volume = gl->data;
+	    g_return_if_fail (volume);
+	    ad_volume_mounted_cb (NULL, volume, autodetect);
+	    gnome_vfs_volume_unref (volume);
+	}
+	g_list_free (volumes);
+
+	g_signal_connect (G_OBJECT (gnome_vfs_get_volume_monitor ()),
+			  "volume-mounted",
+			  G_CALLBACK (ad_volume_mounted_cb),
+			  autodetect);
+
+	/* start timeout function for the monitor */
+	autodetect->timeout_id = g_timeout_add (100,   /* every 100 ms */
+						ad_timeout_cb,
+						autodetect);
+    }
+}
+
+
+static gboolean ad_timeout_cb (gpointer data)
+{
+    AutoDetect *ad = data;
+    g_return_val_if_fail (ad, FALSE);
+
+
+    /* Don't interfere with a blocked display -- try again later */
+    if (!widgets_blocked)
+    {
+	gdk_threads_enter ();
+	g_mutex_lock (ad->mutex);
+
+	while (ad->new_ipod_uris)
+	{
+	    iTunesDB *itdb, *loaded_itdb = NULL;
+	    gchar *mountpoint;
+	    struct itdbs_head *itdbs;
+	    GList *gl = ad->new_ipod_uris;
+	    gchar *mount_uri = gl->data;
+
+	    ad->new_ipod_uris = g_list_delete_link (ad->new_ipod_uris, gl);
+
+	    g_mutex_unlock (ad->mutex);
+
+	    g_return_val_if_fail (mount_uri, (gdk_threads_leave(), release_widgets(), TRUE));
+
+	    mountpoint = g_filename_from_uri (mount_uri, NULL, NULL);
+	    g_free (mount_uri);
+	    debug ("Mounted iPod at '%s'\n", mountpoint);
+
+	    itdb = ad_find_repository_with_mountpoint (mountpoint);
+
+	    itdbs = gp_get_itdbs_head (gtkpod_window);
+	    g_return_val_if_fail (itdbs, (gdk_threads_leave(), release_widgets(), TRUE));
+
+	    block_widgets ();
+
+	    if (itdb)
+	    {
+		ExtraiTunesDBData *eitdb = itdb->userdata;
+		g_return_val_if_fail (eitdb,(gdk_threads_leave(), release_widgets(), TRUE));
+
+		debug ("...used by itdb %p\n", itdb);
+
+		if (!eitdb->itdb_imported)
+		{
+		    loaded_itdb = gp_load_ipod (itdb);
+		    loaded_itdb->usertype |= GP_ITDB_TYPE_AUTOMATIC;
+		    set_itdb_prefs_int (loaded_itdb, "type", loaded_itdb->usertype);
+		}
+		else
+		{
+		    gtkpod_warning (_("Newly mounted iPod at '%s' appearss to be already loaded!\n\n"));
+		}
+		debug ("...OK (used)\n");
+	    }
+	    else
+	    {   /* Set up new itdb (which we'll add to the end of the list) */
+		iTunesDB *new_itdb;
+		gint index = g_list_length (itdbs->itdbs);
+		debug ("...not used by any itdb.\n");
+		set_itdb_index_prefs_string (index,
+					     KEY_MOUNTPOINT, mountpoint);
+		set_itdb_index_prefs_string (index,
+					     "name", _("New iPod"));
+		set_itdb_index_prefs_int (index,
+					  "type", GP_ITDB_TYPE_IPOD |
+					          GP_ITDB_TYPE_AUTOMATIC);
+		new_itdb = setup_itdb_n (index);
+		g_return_val_if_fail (new_itdb,
+				      (gdk_threads_leave(), release_widgets(), TRUE));
+		/* add to display */
+		gp_itdb_add (new_itdb, -1);
+		/* load prefs from iPod */
+		loaded_itdb = gp_load_ipod (new_itdb);
+		if (!loaded_itdb)
+		{   /* remove itdb and all associated keys again */
+		    remove_itdb_prefs (itdb);
+		    gp_itdb_remove (new_itdb);
+		    gp_itdb_free (new_itdb);
+		}
+		debug ("...OK (new)\n");
+	    }
+
+	    release_widgets ();
+
+	    g_free (mountpoint);
+
+	    g_mutex_lock (ad->mutex);
+	}
+	g_mutex_unlock (ad->mutex);
+	gdk_threads_leave();
+    }
+
+    return TRUE;
+}
+
+#else
+/* No GNOME_VFS support */
+
+void autodetection_init ()
+{
+}
+#endif

Copied: gtkpod/trunk/src/autodetection.h (from rev 193, gtkpod/branches/upstream/current/src/autodetection.h)
===================================================================
--- gtkpod/trunk/src/autodetection.h	                        (rev 0)
+++ gtkpod/trunk/src/autodetection.h	2007-06-27 21:27:12 UTC (rev 194)
@@ -0,0 +1,33 @@
+/*
+|  Copyright (C) 2007 Jorg Schuler <jcsjcs at users.sourceforge.net>
+|  Part of the gtkpod project.
+|
+|  URL: http://gtkpod.sourceforge.net/
+|  URL: http://www.gtkpod.org
+|
+|  This program is free software; you can redistribute it and/or modify
+|  it under the terms of the GNU General Public License as published by
+|  the Free Software Foundation; either version 2 of the License, or
+|  (at your option) any later version.
+|
+|  This program is distributed in the hope that it will be useful,
+|  but WITHOUT ANY WARRANTY; without even the implied warranty of
+|  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+|  GNU General Public License for more details.
+|
+|  You should have received a copy of the GNU General Public License
+|  along with this program; if not, write to the Free Software
+|  Foundation, Inc., 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: autodetection.h 1070 2007-05-11 15:41:53Z jcsjcs $
+*/
+
+#ifndef AUTODETECTION_H
+#include "config.h"
+void autodetection_init ();
+
+#endif

Modified: gtkpod/trunk/src/charset.c
===================================================================
--- gtkpod/trunk/src/charset.c	2007-06-27 20:59:02 UTC (rev 193)
+++ gtkpod/trunk/src/charset.c	2007-06-27 21:27:12 UTC (rev 194)
@@ -24,7 +24,7 @@
 | 
 |  This product is not supported/written/published by Apple!
 |
-|  $Id: charset.c,v 1.29 2006/06/25 06:36:28 freethinkerjim Exp $
+|  $Id: charset.c 955 2007-01-16 10:15:27Z jcsjcs $
 */
 
 #ifdef HAVE_CONFIG_H
@@ -267,38 +267,46 @@
    Hiroshi Kawashima */
 static const gchar *charset_check_k_code (const gchar *p2)
 {
-    guchar *p = (guchar *)p2;
+    static const char* charsets[] = {
+	    "UTF-8",
+	    "EUC-JP",
+	    "CP932",
+	    "ISO-2022-JP",
+	    NULL
+    };
+    int i;
+    gchar *ret;
+    gssize len;
 
-    while (p && *p && (*p != '\n'))
-    {
-	if ((p[0] == 0x1b) &&
-	    p[1] && (p[1] == 0x24) &&
-	    p[2] && (p[2] == 0x42))	    return ("ISO-2022-JP");
-	if ((p[0] == 0x1b) &&
-	    p[1] && (p[1] == 0x24) &&
-	    p[2] && (p[2] == 0x40))	    return ("ISO-2022-JP");
-	if (((p[0] >= 0x81) && (p[0] <= 0x9f)) ||
-	    (p[0] >= 0xe0)) 	            return ("Shift_JIS");
-	if ((p[0] >= 0xa1) && (p[0] <= 0xfe) && p[1] &&
-	    (((p[1] >= 0x21) && (p[1] <= 0x7e)) ||
-	     ((p[1] >= 0xa1) && (p[1] <= 0xfe))))
-	                                    return ("EUC-JP");
-	++p;
+    if (p2 == NULL) return NULL;
+ 
+    len = strlen ((gchar*)p2);
+    for (i=0; charsets[i]; i++) {
+      ret = g_convert ((gchar*)p2,            /* string to convert */
+		       len,                  /* length of string  */
+		       "UTF-8",              /* to_codeset        */
+		       charsets[i],          /* from_codeset      */
+		       NULL,                 /* *bytes_read       */
+		       NULL,                 /* *bytes_written    */
+		       NULL);                /* GError **error    */
+      if (ret != NULL) {
+        g_free(ret);
+        return charsets[i];
+      }
     }
     return (NULL);
 }
 
-/* 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 gchar *p)
+/* same as check_k_code, but defaults to "UTF-8" if no match is found */
+static const gchar *charset_check_k_code_with_default (const guchar *p)
 {
     const gchar *result=NULL;
 
     if (p)       result = charset_check_k_code (p);
-    if (!result) result = "EUC-JP";
+    if (!result) result = "UTF-8";
     return result;
 }
 
-
 /* return the charset actually used for the "auto detection"
  * feature. So far only Japanese Auto Detecion is implemented */
 static gchar *charset_check_auto (const gchar *str)

Modified: gtkpod/trunk/src/charset.h
===================================================================
--- gtkpod/trunk/src/charset.h	2007-06-27 20:59:02 UTC (rev 193)
+++ gtkpod/trunk/src/charset.h	2007-06-27 21:27:12 UTC (rev 194)
@@ -24,7 +24,7 @@
 | 
 |  This product is not supported/written/published by Apple!
 |
-|  $Id: charset.h,v 1.15 2005/06/17 13:30:02 jcsjcs Exp $
+|  $Id: charset.h 589 2005-06-17 13:30:05Z jcsjcs $
 */
 
 #ifndef __CHARSET_H__

Modified: gtkpod/trunk/src/clientserver.c
===================================================================
--- gtkpod/trunk/src/clientserver.c	2007-06-27 20:59:02 UTC (rev 193)
+++ gtkpod/trunk/src/clientserver.c	2007-06-27 21:27:12 UTC (rev 194)
@@ -1,5 +1,4 @@
-/* Time-stamp: <2005-06-17 22:25:30 jcs>
-|
+/*
 |  Copyright (C) 2002-2005 Jorg Schuler <jcsjcs at users sourceforge net>
 |  Part of the gtkpod project.
 | 
@@ -24,12 +23,12 @@
 |
 |  This product is not supported/written/published by Apple!
 |
-|  $Id: clientserver.c,v 1.11 2005/06/17 13:30:02 jcsjcs Exp $
+|  $Id: clientserver.c 1023 2007-04-07 04:43:15Z jcsjcs $
 */
 
 #include "config.h"
 #include "clientserver.h"
-#include "md5.h"
+#include "sha1.h"
 #include "misc.h"
 #include "display_itdb.h"
 #include "prefs.h"
@@ -135,13 +134,13 @@
 	    {
 		if (flock (fd, LOCK_EX) == 0)
 		{
-		    gchar *md5 = md5_hash_on_filename (file, TRUE);
+		    gchar *sha1 = sha1_hash_on_filename (file, TRUE);
 		    write (fd, SOCKET_PLYC, strlen (SOCKET_PLYC));
-		    if (md5) write (fd, md5, strlen (md5));
+		    if (sha1) write (fd, sha1, strlen (sha1));
 		    write (fd, " ", 1);
 		    write (fd, file, strlen (file));
 		    write (fd, "\n", 1);
-		    g_free (md5);
+		    g_free (sha1);
 		}
 		else
 		{
@@ -270,7 +269,7 @@
    running instance of gtkpod and transfer the filename, or write the
    name to ~/.gtkpod/offline_playcounts.
    Return value: TRUE on success, FALSE if a non-recoverable error
-   occured */
+   occurred */
 gboolean client_playcount (gchar *file)
 {
     if (socket_used ())
@@ -310,4 +309,15 @@
 }
 
 
+/* print out the "sha1" hash of a filename <file> */
+gboolean print_sha1_hash (gchar *file)
+{
+    if (file && *file)
+    {
+	gchar *hash = sha1_hash_on_filename (file, TRUE);
+	if (hash) fprintf (stdout, "%s\n", hash);
+	g_free (hash);
+    }
+    return TRUE;
+}
 

Modified: gtkpod/trunk/src/clientserver.h
===================================================================
--- gtkpod/trunk/src/clientserver.h	2007-06-27 20:59:02 UTC (rev 193)
+++ gtkpod/trunk/src/clientserver.h	2007-06-27 21:27:12 UTC (rev 194)
@@ -24,7 +24,7 @@
 |
 |  This product is not supported/written/published by Apple!
 |
-|  $Id: clientserver.h,v 1.6 2005/06/17 13:30:02 jcsjcs Exp $
+|  $Id: clientserver.h 933 2006-11-24 06:48:25Z jcsjcs $
 */
 
 #ifndef CLIENTSERVERH_INCLUDED
@@ -43,6 +43,7 @@
 void server_setup (void);
 void server_shutdown (void);
 gboolean client_playcount (gchar *file);
+gboolean print_sha1_hash (gchar *file);
 #ifndef HAVE_FLOCK
 #include <unistd.h>
 #include <fcntl.h>

Modified: gtkpod/trunk/src/confirmation.c
===================================================================
--- gtkpod/trunk/src/confirmation.c	2007-06-27 20:59:02 UTC (rev 193)
+++ gtkpod/trunk/src/confirmation.c	2007-06-27 21:27:12 UTC (rev 194)
@@ -1,4 +1,4 @@
-/* Time-stamp: <2006-05-14 19:17:48 jcs>
+/* Time-stamp: <2007-02-23 00:04:30 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.28 2006/06/09 00:58:41 freethinkerjim Exp $
+|  $Id: confirmation.c 995 2007-02-22 15:05:53Z jcsjcs $
 */
 
 #ifdef HAVE_CONFIG_H
@@ -77,12 +77,13 @@
 		prefs_set_int("size_conf.x", defx);
 		prefs_set_int("size_conf.y", defy);
 	}
+
 	gtk_widget_destroy (cd->window);
+	g_free (cd->option1_key);
+	g_free (cd->option2_key);
+	g_free (cd->confirm_again_key);
+
 	g_hash_table_remove (id_hash, id);
-  
-  g_free(cd->option1_key);
-  g_free(cd->option2_key);
-  g_free(cd->confirm_again_key);
     }
 }
 

Modified: gtkpod/trunk/src/confirmation.h
===================================================================
--- gtkpod/trunk/src/confirmation.h	2007-06-27 20:59:02 UTC (rev 193)
+++ gtkpod/trunk/src/confirmation.h	2007-06-27 21:27:12 UTC (rev 194)
@@ -1,5 +1,5 @@
 /*
-|  Copyright (C) 2002-2003 Jorg Schuler <jcsjcs at users.sourceforge.net>
+|  Copyright (C) 2002-2007 Jorg Schuler <jcsjcs at users.sourceforge.net>
 |  Part of the gtkpod project.
 |
 |  URL: http://gtkpod.sourceforge.net/
@@ -22,7 +22,7 @@
 |
 |  This product is not supported/written/published by Apple!
 |
-|  $Id: confirmation.h,v 1.14 2006/05/14 15:58:54 jcsjcs Exp $
+|  $Id: confirmation.h 1065 2007-05-06 14:16:17Z jcsjcs $
 */
 
 #ifndef __CONFIRMATION_H__
@@ -70,7 +70,8 @@
     CONF_ID_GTKPOD_WARNING,
     CONF_ID_DANGLING0,
     CONF_ID_DANGLING1,
-    CONF_ID_SYNC_SUMMARY
+    CONF_ID_SYNC_SUMMARY,
+    CONF_ID_TRANSFER
 } CONF_ID;
 
 void CONF_NULL_HANDLER (gpointer d1, gpointer d2);

Modified: gtkpod/trunk/src/context_menus.c
===================================================================
--- gtkpod/trunk/src/context_menus.c	2007-06-27 20:59:02 UTC (rev 193)
+++ gtkpod/trunk/src/context_menus.c	2007-06-27 21:27:12 UTC (rev 194)
@@ -1,7 +1,6 @@
-/* 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>
+|  Copyright (C) 2003-2007 Jorg Schuler <jcsjcs at users sourceforge net>
 |  Part of the gtkpod project.
 | 
 |  URL: http://www.gtkpod.org/
@@ -25,7 +24,7 @@
 | 
 |  This product is not supported/written/published by Apple!
 |
-|  $Id: context_menus.c,v 1.66 2006/06/29 11:46:16 jcsjcs Exp $
+|  $Id: context_menus.c 1071 2007-05-13 17:08:23Z phantom_sf $
 */
 
 #ifdef HAVE_CONFIG_H
@@ -33,8 +32,10 @@
 #endif
 
 #include "itdb.h"
+#include "info.h"
 #include "details.h"
 #include "display.h"
+#include "display_itdb.h"
 #include "file.h"
 #include "misc.h"
 #include "misc_track.h"
@@ -42,6 +43,7 @@
 #include "tools.h"
 #include "repository.h"
 #include "syncdir.h"
+#include "display_coverart.h"
 
 #define LOCALDEBUG 0
 
@@ -55,7 +57,8 @@
     CM_PL = 0,
     CM_ST,
     CM_TM,
-    CM_NUM
+    CM_NUM,
+    CM_CAD
 } CM_type;
 
 
@@ -77,7 +80,6 @@
 	gchar *mp;
 	Track *tr = gl->data;
 	g_return_if_fail (tr);
-
 	g_object_get (tr->itdb->device, "mount-point", &mp, NULL);
 	printf ("mountpoint: %s\n", mp);
 	g_free (mp);
@@ -166,6 +168,18 @@
 }
 
 /*
+ * display the dialog with the full size cd artwork cover
+ * @mi - the menu item selected
+ * @data - Ignored, should be NULL
+ */
+static void
+display_track_artwork(GtkMenuItem *mi, gpointer data)
+{
+	if (selected_tracks)
+		coverart_display_big_artwork (selected_tracks);
+}
+
+/*
  * update_entries - update the entries currently selected
  * @mi - the menu item selected
  * @data - Ignored, should be NULL
@@ -314,6 +328,169 @@
 
 
 
+
+/* ------------------------------------------------------------
+
+      Copying selected item(s) to target destination
+
+   ------------------------------------------------------------ */
+
+
+/*
+ * Copy the selected playlist to a specified itdb.
+ */
+void
+copy_playlist_to_target_itdb (Playlist     *pl,
+			      iTunesDB     *t_itdb)
+{
+    Playlist	*pl_n;
+    GList	*addtracks = NULL;
+    g_return_if_fail (pl);
+    g_return_if_fail (t_itdb);
+    if (pl->itdb != t_itdb)
+    {
+	addtracks = export_trackglist_when_necessary (pl->itdb,
+						      t_itdb,
+						      pl->members);
+	if (addtracks || !pl->members)
+	{
+	    pl_n = gp_playlist_add_new(t_itdb, pl->name, FALSE, -1);
+	    add_trackglist_to_playlist (pl_n, addtracks);
+	    gtkpod_statusbar_message (_("Copied \"%s\" playlist to %s"),
+				      pl->name, (itdb_playlist_mpl (t_itdb))->name);
+	}
+	g_list_free (addtracks);
+	addtracks = NULL;
+    }
+    else
+    {
+	pl_n = itdb_playlist_duplicate (pl);
+	g_return_if_fail (pl_n);
+	gp_playlist_add (t_itdb, pl_n, -1);
+    }
+}
+
+
+/*
+ * Copy selected tracks to a specified itdb.
+ */
+void
+copy_tracks_to_target_itdb (GList        *tracks,
+			    iTunesDB     *t_itdb)
+{
+    GList       *addtracks = NULL;
+    Track	*first = tracks->data;
+    Playlist    *mpl;
+    gint        n;
+
+    g_return_if_fail(tracks);
+    g_return_if_fail(t_itdb);
+
+    mpl = itdb_playlist_mpl (t_itdb);
+    g_return_if_fail(mpl);
+
+    addtracks = export_trackglist_when_necessary (first->itdb, t_itdb, tracks);
+
+    if (addtracks)
+    {
+	add_trackglist_to_playlist (mpl, addtracks);
+	n = g_list_length (addtracks);
+	gtkpod_statusbar_message (ngettext ("Copied %d track to '%s'",
+					    "Copied %d tracks to '%s'", n),
+				  n, mpl->name);
+	g_list_free (addtracks);
+	addtracks = NULL;
+    }
+}
+
+
+void
+copy_playlist_to_target_playlist (Playlist     *pl,
+				  Playlist     *t_pl)
+{
+    GList	*addtracks = NULL;
+    Playlist    *t_mpl;
+
+    g_return_if_fail (pl);
+    g_return_if_fail (t_pl);
+
+    t_mpl = itdb_playlist_mpl (t_pl->itdb);
+    g_return_if_fail(t_mpl);
+
+    addtracks = export_trackglist_when_necessary (pl->itdb,
+						  t_pl->itdb,
+						  pl->members);
+    if (addtracks || !pl->members)
+    {
+	add_trackglist_to_playlist (t_pl, addtracks);
+	gtkpod_statusbar_message (_("Copied '%s' playlist to '%s' in '%s'"),
+				  pl->name, t_pl->name, t_mpl->name);
+	g_list_free(addtracks);
+	addtracks = NULL;
+    }
+}
+
+
+
+void
+copy_tracks_to_target_playlist (GList        *tracks,
+				Playlist     *t_pl)
+{
+    GList	*addtracks = NULL;
+    Track	*first;
+    Playlist    *mpl;
+    gint        n;
+
+    g_return_if_fail (tracks);
+    g_return_if_fail (t_pl);
+    g_return_if_fail (t_pl->itdb);
+
+    mpl = itdb_playlist_mpl (t_pl->itdb);
+    g_return_if_fail(mpl);
+
+    if (tracks)
+    {
+	first = tracks->data;
+	g_return_if_fail (first);
+	addtracks = export_trackglist_when_necessary (first->itdb, t_pl->itdb, tracks);
+	add_trackglist_to_playlist (t_pl, addtracks);
+    }
+    n = g_list_length (addtracks);
+    gtkpod_statusbar_message (ngettext ("Copied %d track to '%s' in '%s'",
+					"Copied %d tracks to %s in '%s'", n),
+			      n, t_pl->name, mpl->name);
+    g_list_free (addtracks);
+    addtracks = NULL;
+}
+
+
+
+static void copy_selected_to_target_itdb (GtkMenuItem *mi, gpointer *userdata)
+{
+    iTunesDB *t_itdb = *userdata;
+    g_return_if_fail (t_itdb);
+    if (selected_playlist)
+	copy_playlist_to_target_itdb (selected_playlist, t_itdb);
+    else if (selected_entry)
+	copy_tracks_to_target_itdb (selected_entry->members, t_itdb);
+    else if (selected_tracks)
+	copy_tracks_to_target_itdb (selected_tracks, t_itdb);
+}
+
+
+static void copy_selected_to_target_playlist (GtkMenuItem *mi, gpointer *userdata)
+{
+    Playlist *t_pl = *userdata;
+    g_return_if_fail (t_pl);
+    if (selected_playlist)
+	copy_playlist_to_target_playlist (selected_playlist, t_pl);
+    else if (selected_entry)
+	copy_tracks_to_target_playlist (selected_entry->members, t_pl);
+    else if (selected_tracks)
+	copy_tracks_to_target_playlist (selected_tracks, t_pl);
+}
+
+
 /* Attach a menu item to your context menu */
 /* @m - the GtkMenu we're attaching to
  * @str - a gchar* with the menu label
@@ -321,7 +498,11 @@
  * @func - the callback for when the item is selected (or NULL)
  * @mi - the GtkWidget we're gonna hook into the menu
  */
-GtkWidget *hookup_mi (GtkWidget *m, gchar *str, gchar *stock, GCallback func, gpointer userdata)
+GtkWidget *hookup_mi (GtkWidget *m,
+		      const gchar *str,
+		      const gchar *stock,
+		      GCallback func,
+		      gpointer userdata)
 {
     GtkWidget *mi;
 
@@ -362,6 +543,77 @@
 }
 
 
+static GtkWidget *add_copy_selected_to_target_itdb (GtkWidget *menu,
+						    const gchar *title)
+{
+    GtkWidget *mi;
+    GtkWidget *sub;
+    GtkWidget *pl_mi;
+    GtkWidget *pl_sub;
+    GList *itdbs;
+    GList *db;
+    struct itdbs_head *itdbs_head;
+    iTunesDB *itdb;
+    gchar *stock_id = NULL;
+    Playlist *pl;
+
+  
+    g_return_val_if_fail (gtkpod_window, NULL);
+    itdbs_head = g_object_get_data (G_OBJECT (gtkpod_window),
+                                    "itdbs_head");
+
+    mi = hookup_mi (menu, title,
+		    GTK_STOCK_COPY,
+		    NULL, NULL);
+    sub = gtk_menu_new ();
+    gtk_widget_show (sub);
+    gtk_menu_item_set_submenu (GTK_MENU_ITEM (mi), sub);
+
+    for (itdbs=itdbs_head->itdbs; itdbs; itdbs=itdbs->next)
+	    {
+		itdb = itdbs->data;
+		ExtraiTunesDBData *eitdb=itdb->userdata;
+		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;
+		    }
+		}
+		pl_mi = hookup_mi (sub, _(itdb_playlist_mpl(itdb)->name),
+				   stock_id, NULL, NULL);
+		pl_sub = gtk_menu_new ();
+		gtk_widget_show (pl_sub);
+		gtk_menu_item_set_submenu (GTK_MENU_ITEM (pl_mi), pl_sub);
+		hookup_mi (pl_sub, _(itdb_playlist_mpl(itdb)->name),
+			   stock_id, G_CALLBACK(copy_selected_to_target_itdb), &itdbs->data);
+		add_separator(pl_sub);
+		for (db=itdb->playlists; db; db=db->next)
+		{
+			pl=db->data;
+			if (!itdb_playlist_is_mpl (pl))
+			{
+				if (pl->is_spl)
+					stock_id = GTK_STOCK_PROPERTIES;
+				else
+					stock_id = GTK_STOCK_JUSTIFY_LEFT;
+				hookup_mi(pl_sub, _(pl->name), stock_id, 
+				G_CALLBACK(copy_selected_to_target_playlist) , &db->data);
+			}
+		}
+	    }
+    return mi;
+}
+
+
 static GtkWidget *add_play_now (GtkWidget *menu)
 {
     return hookup_mi (menu, _("Play Now"), GTK_STOCK_CDROM,
@@ -475,6 +727,20 @@
 		      G_CALLBACK (edit_properties), NULL);
 }
 
+static GtkWidget *add_edit_repository_properties (GtkWidget *menu)
+{
+    return hookup_mi (menu,  _("Edit Repository Properties"),
+		      GTK_STOCK_PREFERENCES,
+		      G_CALLBACK (edit_properties), NULL);
+}
+
+static GtkWidget *add_edit_playlist_properties (GtkWidget *menu)
+{
+    return hookup_mi (menu,  _("Edit Playlist Properties"),
+		      GTK_STOCK_PREFERENCES,
+		      G_CALLBACK (edit_properties), NULL);
+}
+
 static GtkWidget *add_edit_track_details (GtkWidget *menu)
 {
     return hookup_mi (menu,  _("Edit Track Details"),
@@ -482,6 +748,41 @@
 		      G_CALLBACK (edit_details_entries), NULL);
 }
 
+static GtkWidget *add_display_big_coverart (GtkWidget *menu)
+{
+    const gchar *icon;
+/* gets defined in gtk+ V2.8, but we only require V2.6 */
+#ifndef GTK_STOCK_FULLSCREEN
+#define GTK_STOCK_FULLSCREEN "gtk-fullscreen"
+#endif
+    if (gtk_check_version (2,8,0) == NULL)
+    {
+	icon = GTK_STOCK_FULLSCREEN;
+    }
+    else
+    {
+	icon = NULL;
+    }
+
+    return hookup_mi (menu,  _("View Full Size Artwork"),
+		      icon,
+		      G_CALLBACK (display_track_artwork), NULL);	
+}
+
+static GtkWidget *add_get_cover_from_file (GtkWidget *menu)
+{
+		return hookup_mi (menu, _("Select Cover From File"),
+					GTK_STOCK_FLOPPY,
+					G_CALLBACK (coverart_set_cover_from_file), NULL);
+}
+
+static GtkWidget *add_get_cover_from_web (GtkWidget *menu)
+{
+	return hookup_mi (menu, _("Find Cover on Web"),
+					GTK_STOCK_NETWORK,
+					G_CALLBACK (coverart_set_cover_from_web), NULL);
+}
+
 static GtkWidget *add_check_ipod_files (GtkWidget *menu)
 {
     /* FIXME */
@@ -591,14 +892,7 @@
 }
 #endif
 
-static GtkWidget *add_edit_playlist_properties (GtkWidget *menu)
-{
-    return hookup_mi (menu,  _("Edit Playlist Properties"),
-		      GTK_STOCK_PREFERENCES,
-		      G_CALLBACK (edit_properties), NULL);
-}
 
-
 void create_context_menu (CM_type type)
 {
     static GtkWidget *menu = NULL;
@@ -651,13 +945,15 @@
 			add_delete_including_tracks (menu);
 			add_delete_but_keep_tracks (menu);
 		    }
+		    add_copy_selected_to_target_itdb (menu,
+						      _("Copy selected playlist to..."));
 		    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)
+		    if (itdb_playlist_is_mpl (pl))
 		    {
 			add_edit_ipod_properties (menu);
 		    }
@@ -698,13 +994,22 @@
 		    add_delete_including_tracks_harddisk (menu);
 		    add_delete_but_keep_tracks (menu);
 		}
+		add_copy_selected_to_target_itdb (menu,
+						  _("Copy selected playlist to..."));
 		add_separator (menu);
 		add_edit_track_details (menu);
 		if (pl->is_spl)
 		{
 		    add_edit_smart_playlist (menu);
 		}
-		add_edit_playlist_properties (menu);
+		if (itdb_playlist_is_mpl (pl))
+		{
+		    add_edit_repository_properties (menu);
+		}
+		else
+		{
+		    add_edit_playlist_properties (menu);
+		}
 		add_save_changes (menu);
 	    }
 	    break;
@@ -742,6 +1047,8 @@
 		    add_delete_from_playlist (menu);
 		}
 	    }
+	    add_copy_selected_to_target_itdb (menu,
+					      _("Copy selected track(s) to..."));
 	    add_separator (menu);
 	    add_edit_track_details (menu);
 #if LOCALDEBUG
@@ -753,6 +1060,12 @@
 	    }
 #endif
 	    break;
+	case CM_CAD:
+			add_get_cover_from_file (menu);
+			add_get_cover_from_web (menu);
+			add_display_big_coverart (menu);
+			add_edit_track_details (menu);
+			break;
 	case CM_NUM:
 	    g_return_if_reached ();
 	}
@@ -790,7 +1103,36 @@
 	create_context_menu (CM_TM);
     }
 }
+
 /**
+ * cad_context_menu_init - initialize the right click menu for coverart display 
+ */
+void
+cad_context_menu_init(void)
+{
+    if (widgets_blocked) return;
+    
+    selected_entry = NULL; 
+    selected_playlist = NULL;
+    selected_tracks = NULL;
+    active_itdb = gp_get_selected_itdb ();
+    entry_inst = -1;
+    
+     if (selected_tracks) g_list_free (selected_tracks);
+    	selected_tracks = g_list_copy (coverart_get_displayed_tracks());
+    /*
+    int i;
+    for (i = 0; i < g_list_length(selected_tracks); ++i)
+    {
+    	Track *track;
+    	track = g_list_nth_data (selected_tracks, i);
+    	printf ("context_menu_init - Artist:%s  Album:%s  Title:%s\n", track->artist, track->album, track->title);
+    }
+    */
+    if(selected_tracks)
+			create_context_menu (CM_CAD);
+}
+/**
  * pm_context_menu_init - initialize the right click menu for playlists 
  */
 void

Modified: gtkpod/trunk/src/context_menus.h
===================================================================
--- gtkpod/trunk/src/context_menus.h	2007-06-27 20:59:02 UTC (rev 193)
+++ gtkpod/trunk/src/context_menus.h	2007-06-27 21:27:12 UTC (rev 194)
@@ -22,7 +22,7 @@
 | 
 |  This product is not supported/written/published by Apple!
 |
-|  $Id: context_menus.h,v 1.5 2004/01/17 09:37:48 jcsjcs Exp $
+|  $Id: context_menus.h 1036 2007-04-15 13:27:42Z jcsjcs $
 */
 #ifndef CONTEXT_MENUS_H
 #define CONTEXT_MENUS_H
@@ -32,5 +32,6 @@
 void tm_context_menu_init(void);
 void st_context_menu_init(gint inst);
 void pm_context_menu_init(void);
+void cad_context_menu_init(void);
 
 #endif

Modified: gtkpod/trunk/src/date_parser.c
===================================================================
--- gtkpod/trunk/src/date_parser.c	2007-06-27 20:59:02 UTC (rev 193)
+++ gtkpod/trunk/src/date_parser.c	2007-06-27 21:27:12 UTC (rev 194)
@@ -9,7 +9,7 @@
 #define FLEX_SCANNER
 #define YY_FLEX_MAJOR_VERSION 2
 #define YY_FLEX_MINOR_VERSION 5
-#define YY_FLEX_SUBMINOR_VERSION 31
+#define YY_FLEX_SUBMINOR_VERSION 33
 #if YY_FLEX_SUBMINOR_VERSION > 0
 #define FLEX_BETA
 #endif
@@ -31,7 +31,15 @@
 
 /* C99 systems have <inttypes.h>. Non-C99 systems may or may not. */
 
-#if defined __STDC_VERSION__ && __STDC_VERSION__ >= 199901L
+#if __STDC_VERSION__ >= 199901L
+
+/* C99 says to define __STDC_LIMIT_MACROS before including stdint.h,
+ * if you want the limit (max/min) macros for int types. 
+ */
+#ifndef __STDC_LIMIT_MACROS
+#define __STDC_LIMIT_MACROS 1
+#endif
+
 #include <inttypes.h>
 typedef int8_t flex_int8_t;
 typedef uint8_t flex_uint8_t;
@@ -135,6 +143,10 @@
 #define YY_BUF_SIZE 16384
 #endif
 
+/* The state buf must be large enough to hold one state per character in the main buffer.
+ */
+#define YY_STATE_BUF_SIZE   ((YY_BUF_SIZE + 2) * sizeof(yy_state_type))
+
 #ifndef YY_TYPEDEF_YY_BUFFER_STATE
 #define YY_TYPEDEF_YY_BUFFER_STATE
 typedef struct yy_buffer_state *YY_BUFFER_STATE;
@@ -268,7 +280,7 @@
 
 /* Points to current character in buffer. */
 static char *yy_c_buf_p = (char *) 0;
-static int yy_init = 1;		/* whether we need to initialize */
+static int yy_init = 0;		/* whether we need to initialize */
 static int yy_start = 0;	/* start state number */
 
 /* Flag which is used to allow lexdpwrap()'s to do buffer switches
@@ -324,7 +336,7 @@
 
 /* Begin user sect3 */
 
-#define lexdpwrap(n) 1
+#define lexdpwrap() 1
 #define YY_SKIP_YYWRAP
 
 typedef unsigned char YY_CHAR;
@@ -456,7 +468,7 @@
 char *lexdptext;
 #line 1 "date_parser.l"
 /* -*- mode: c -*-
-| Time-stamp: <2005-04-29 12:13:19 jcs>
+| Time-stamp: <2007-01-19 01:52:29 jcs>
 |
 |  Copyright (C) 2002-2003 Jorg Schuler <jcsjcs at users.sourceforge.net>
 |  Part of the gtkpod project.
@@ -549,7 +561,7 @@
 /* e.g. +8:54.23           */
 /* e.g. 5d6m3s             */
 /* e.g. -3M5d              */
-#line 553 "date_parser.c"
+#line 565 "date_parser.c"
 
 #define INITIAL 0
 
@@ -565,6 +577,8 @@
 #define YY_EXTRA_TYPE void *
 #endif
 
+static int yy_init_globals (void );
+
 /* Macros after this point can all be overridden by user definitions in
  * section 1.
  */
@@ -701,11 +715,11 @@
 #line 116 "date_parser.l"
 
 
-#line 705 "date_parser.c"
+#line 719 "date_parser.c"
 
-	if ( (yy_init) )
+	if ( !(yy_init) )
 		{
-		(yy_init) = 0;
+		(yy_init) = 1;
 
 #ifdef YY_USER_INIT
 		YY_USER_INIT;
@@ -974,7 +988,7 @@
 #line 273 "date_parser.l"
 ECHO;
 	YY_BREAK
-#line 978 "date_parser.c"
+#line 992 "date_parser.c"
 case YY_STATE_EOF(INITIAL):
 	yyterminate();
 
@@ -1160,7 +1174,7 @@
 
 	else
 		{
-			size_t num_to_read =
+			int num_to_read =
 			YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
 
 		while ( num_to_read <= 0 )
@@ -1205,7 +1219,7 @@
 
 		/* Read in more data. */
 		YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
-			(yy_n_chars), num_to_read );
+			(yy_n_chars), (size_t) num_to_read );
 
 		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
 		}
@@ -1669,16 +1683,16 @@
 
 /** Setup the input buffer state to scan a string. The next call to lexdplex() will
  * scan from a @e copy of @a str.
- * @param str a NUL-terminated string to scan
+ * @param yystr a NUL-terminated string to scan
  * 
  * @return the newly allocated buffer state object.
  * @note If you want to scan bytes that may contain NUL values, then use
  *       lexdp_scan_bytes() instead.
  */
-YY_BUFFER_STATE lexdp_scan_string (yyconst char * yy_str )
+YY_BUFFER_STATE lexdp_scan_string (yyconst char * yystr )
 {
     
-	return lexdp_scan_bytes(yy_str,strlen(yy_str) );
+	return lexdp_scan_bytes(yystr,strlen(yystr) );
 }
 
 /** Setup the input buffer state to scan the given bytes. The next call to lexdplex() will
@@ -1688,7 +1702,7 @@
  * 
  * @return the newly allocated buffer state object.
  */
-YY_BUFFER_STATE lexdp_scan_bytes  (yyconst char * bytes, int  len )
+YY_BUFFER_STATE lexdp_scan_bytes  (yyconst char * yybytes, int  _yybytes_len )
 {
 	YY_BUFFER_STATE b;
 	char *buf;
@@ -1696,15 +1710,15 @@
 	int i;
     
 	/* Get memory for full buffer, including space for trailing EOB's. */
-	n = len + 2;
+	n = _yybytes_len + 2;
 	buf = (char *) lexdpalloc(n  );
 	if ( ! buf )
 		YY_FATAL_ERROR( "out of dynamic memory in lexdp_scan_bytes()" );
 
-	for ( i = 0; i < len; ++i )
-		buf[i] = bytes[i];
+	for ( i = 0; i < _yybytes_len; ++i )
+		buf[i] = yybytes[i];
 
-	buf[len] = buf[len+1] = YY_END_OF_BUFFER_CHAR;
+	buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR;
 
 	b = lexdp_scan_buffer(buf,n );
 	if ( ! b )
@@ -1825,6 +1839,34 @@
         lexdp_flex_debug = bdebug ;
 }
 
+static int yy_init_globals (void)
+{
+        /* Initialization is the same as for the non-reentrant scanner.
+     * This function is called from lexdplex_destroy(), so don't allocate here.
+     */
+
+    (yy_buffer_stack) = 0;
+    (yy_buffer_stack_top) = 0;
+    (yy_buffer_stack_max) = 0;
+    (yy_c_buf_p) = (char *) 0;
+    (yy_init) = 0;
+    (yy_start) = 0;
+
+/* Defined in main.c */
+#ifdef YY_STDINIT
+    lexdpin = stdin;
+    lexdpout = stdout;
+#else
+    lexdpin = (FILE *) 0;
+    lexdpout = (FILE *) 0;
+#endif
+
+    /* For future reference: Set errno on error, since we are called by
+     * lexdplex_init()
+     */
+    return 0;
+}
+
 /* lexdplex_destroy is for both reentrant and non-reentrant scanners. */
 int lexdplex_destroy  (void)
 {
@@ -1840,6 +1882,10 @@
 	lexdpfree((yy_buffer_stack) );
 	(yy_buffer_stack) = NULL;
 
+    /* Reset the globals. This is important in a non-reentrant scanner so the next time
+     * lexdplex() is called, initialization will occur. */
+    yy_init_globals( );
+
     return 0;
 }
 
@@ -1851,7 +1897,7 @@
 static void yy_flex_strncpy (char* s1, yyconst char * s2, int n )
 {
 	register int i;
-    	for ( i = 0; i < n; ++i )
+	for ( i = 0; i < n; ++i )
 		s1[i] = s2[i];
 }
 #endif
@@ -1860,7 +1906,7 @@
 static int yy_flex_strlen (yyconst char * s )
 {
 	register int n;
-    	for ( n = 0; s[n]; ++n )
+	for ( n = 0; s[n]; ++n )
 		;
 
 	return n;
@@ -1891,18 +1937,6 @@
 
 #define YYTABLES_NAME "yytables"
 
-#undef YY_NEW_FILE
-#undef YY_FLUSH_BUFFER
-#undef yy_set_bol
-#undef yy_new_buffer
-#undef yy_set_interactive
-#undef yytext_ptr
-#undef YY_DO_BEFORE_ACTION
-
-#ifdef YY_DECL_IS_OURS
-#undef YY_DECL_IS_OURS
-#undef YY_DECL
-#endif
 #line 273 "date_parser.l"
 
 
@@ -2065,8 +2099,8 @@
  *
  * Return value:
  *
- * TRUE:  no error occured
- * FALSE: error occured
+ * TRUE:  no error occurred
+ * FALSE: error occurred
  */
 gboolean dp_parse (gchar *dp_str, time_t *result,
 		   gboolean lower_margin, gboolean strict)
@@ -2078,7 +2112,7 @@
     parsed_time = FALSE;
     /* did not yet parse any relative time string */
     reltime = DP_INF;
-    /* no error occured (yet) */
+    /* no error occurred (yet) */
     dp_error = FALSE;
     /* set parameters */
     lower = lower_margin;

Modified: gtkpod/trunk/src/date_parser.h
===================================================================
--- gtkpod/trunk/src/date_parser.h	2007-06-27 20:59:02 UTC (rev 193)
+++ gtkpod/trunk/src/date_parser.h	2007-06-27 21:27:12 UTC (rev 194)
@@ -23,7 +23,7 @@
 | 
 |  This product is not supported/written/published by Apple!
 |
-|  $Id: date_parser.h,v 1.5 2003/09/23 19:57:14 samc Exp $
+|  $Id: date_parser.h 270 2003-09-23 19:57:15Z samc $
 */
 
 #ifndef __DATE_PARSER_H__

Modified: gtkpod/trunk/src/date_parser.l
===================================================================
--- gtkpod/trunk/src/date_parser.l	2007-06-27 20:59:02 UTC (rev 193)
+++ gtkpod/trunk/src/date_parser.l	2007-06-27 21:27:12 UTC (rev 194)
@@ -1,5 +1,5 @@
 /* -*- mode: c -*-
-| Time-stamp: <2005-04-29 12:13:19 jcs>
+| Time-stamp: <2007-01-19 01:52:29 jcs>
 |
 |  Copyright (C) 2002-2003 Jorg Schuler <jcsjcs at users.sourceforge.net>
 |  Part of the gtkpod project.
@@ -430,8 +430,8 @@
  *
  * Return value:
  *
- * TRUE:  no error occured
- * FALSE: error occured
+ * TRUE:  no error occurred
+ * FALSE: error occurred
  */
 gboolean dp_parse (gchar *dp_str, time_t *result,
 		   gboolean lower_margin, gboolean strict)
@@ -443,7 +443,7 @@
     parsed_time = FALSE;
     /* did not yet parse any relative time string */
     reltime = DP_INF;
-    /* no error occured (yet) */
+    /* no error occurred (yet) */
     dp_error = FALSE;
     /* set parameters */
     lower = lower_margin;

Modified: gtkpod/trunk/src/date_parser2.c
===================================================================
--- gtkpod/trunk/src/date_parser2.c	2007-06-27 20:59:02 UTC (rev 193)
+++ gtkpod/trunk/src/date_parser2.c	2007-06-27 21:27:12 UTC (rev 194)
@@ -9,7 +9,7 @@
 #define FLEX_SCANNER
 #define YY_FLEX_MAJOR_VERSION 2
 #define YY_FLEX_MINOR_VERSION 5
-#define YY_FLEX_SUBMINOR_VERSION 31
+#define YY_FLEX_SUBMINOR_VERSION 33
 #if YY_FLEX_SUBMINOR_VERSION > 0
 #define FLEX_BETA
 #endif
@@ -31,7 +31,15 @@
 
 /* C99 systems have <inttypes.h>. Non-C99 systems may or may not. */
 
-#if defined __STDC_VERSION__ && __STDC_VERSION__ >= 199901L
+#if __STDC_VERSION__ >= 199901L
+
+/* C99 says to define __STDC_LIMIT_MACROS before including stdint.h,
+ * if you want the limit (max/min) macros for int types. 
+ */
+#ifndef __STDC_LIMIT_MACROS
+#define __STDC_LIMIT_MACROS 1
+#endif
+
 #include <inttypes.h>
 typedef int8_t flex_int8_t;
 typedef uint8_t flex_uint8_t;
@@ -135,6 +143,10 @@
 #define YY_BUF_SIZE 16384
 #endif
 
+/* The state buf must be large enough to hold one state per character in the main buffer.
+ */
+#define YY_STATE_BUF_SIZE   ((YY_BUF_SIZE + 2) * sizeof(yy_state_type))
+
 #ifndef YY_TYPEDEF_YY_BUFFER_STATE
 #define YY_TYPEDEF_YY_BUFFER_STATE
 typedef struct yy_buffer_state *YY_BUFFER_STATE;
@@ -268,7 +280,7 @@
 
 /* Points to current character in buffer. */
 static char *yy_c_buf_p = (char *) 0;
-static int yy_init = 1;		/* whether we need to initialize */
+static int yy_init = 0;		/* whether we need to initialize */
 static int yy_start = 0;	/* start state number */
 
 /* Flag which is used to allow lexdp2wrap()'s to do buffer switches
@@ -324,7 +336,7 @@
 
 /* Begin user sect3 */
 
-#define lexdp2wrap(n) 1
+#define lexdp2wrap() 1
 #define YY_SKIP_YYWRAP
 
 typedef unsigned char YY_CHAR;
@@ -461,9 +473,8 @@
 char *lexdp2text;
 #line 1 "date_parser2.l"
 /* -*- mode: c -*-
-|  Time-stamp: <2005-04-29 12:13:18 jcs>
 |
-|  Copyright (C) 2002-2003 Jorg Schuler <jcsjcs at users.sourceforge.net>
+|  Copyright (C) 2002-2007 Jorg Schuler <jcsjcs at users.sourceforge.net>
 |  Part of the gtkpod project.
 | 
 |  URL: http://gtkpod.sourceforge.net/
@@ -486,13 +497,13 @@
 | 
 |  This product is not supported/written/published by Apple!
 */
-#line 29 "date_parser2.l"
+#line 28 "date_parser2.l"
 #include <stdlib.h>
 #include <string.h>
 #include "date_parser.h"
 #include "misc.h"
 #include "itdb.h"
-/* Will be set to TRUE if error occured */
+/* Will be set to TRUE if error occurred */
     static gboolean dp_error;
 /* Will be set to TRUE if construct (< date, = date...) was not
    recognized */
@@ -536,7 +547,7 @@
    scripts may be lexyy.c or similar. To make the code portable again
    (hopefully), I also define "LEX_OUTPUT_ROOT = lex.yy" in
    Makefile.am */
-#line 540 "date_parser2.c"
+#line 551 "date_parser2.c"
 
 #define INITIAL 0
 
@@ -552,6 +563,8 @@
 #define YY_EXTRA_TYPE void *
 #endif
 
+static int yy_init_globals (void );
+
 /* Macros after this point can all be overridden by user definitions in
  * section 1.
  */
@@ -688,14 +701,14 @@
 	register char *yy_cp, *yy_bp;
 	register int yy_act;
     
-#line 88 "date_parser2.l"
+#line 87 "date_parser2.l"
 
 
-#line 695 "date_parser2.c"
+#line 708 "date_parser2.c"
 
-	if ( (yy_init) )
+	if ( !(yy_init) )
 		{
-		(yy_init) = 0;
+		(yy_init) = 1;
 
 #ifdef YY_USER_INIT
 		YY_USER_INIT;
@@ -781,7 +794,7 @@
 (yy_c_buf_p) = yy_cp -= 1;
 YY_DO_BEFORE_ACTION; /* set up lexdp2text again */
 YY_RULE_SETUP
-#line 90 "date_parser2.l"
+#line 89 "date_parser2.l"
 {
     gchar *strp;
 #if DP_DEBUG
@@ -799,7 +812,7 @@
 (yy_c_buf_p) = yy_cp -= 1;
 YY_DO_BEFORE_ACTION; /* set up lexdp2text again */
 YY_RULE_SETUP
-#line 101 "date_parser2.l"
+#line 100 "date_parser2.l"
 {
     gchar *strp;
 #if DP_DEBUG
@@ -817,7 +830,7 @@
 (yy_c_buf_p) = yy_cp -= 1;
 YY_DO_BEFORE_ACTION; /* set up lexdp2text again */
 YY_RULE_SETUP
-#line 112 "date_parser2.l"
+#line 111 "date_parser2.l"
 {
     gchar *strp;
 #if DP_DEBUG
@@ -840,7 +853,7 @@
 (yy_c_buf_p) = yy_cp -= 1;
 YY_DO_BEFORE_ACTION; /* set up lexdp2text again */
 YY_RULE_SETUP
-#line 128 "date_parser2.l"
+#line 127 "date_parser2.l"
 {
     dp_ll (lexdp2text);
 }
@@ -851,7 +864,7 @@
 (yy_c_buf_p) = yy_cp -= 1;
 YY_DO_BEFORE_ACTION; /* set up lexdp2text again */
 YY_RULE_SETUP
-#line 132 "date_parser2.l"
+#line 131 "date_parser2.l"
 {
     dp_ll (lexdp2text);
 }
@@ -862,7 +875,7 @@
 (yy_c_buf_p) = yy_cp -= 1;
 YY_DO_BEFORE_ACTION; /* set up lexdp2text again */
 YY_RULE_SETUP
-#line 136 "date_parser2.l"
+#line 135 "date_parser2.l"
 {
     dp_LL (lexdp2text);
 }
@@ -873,7 +886,7 @@
 (yy_c_buf_p) = yy_cp -= 1;
 YY_DO_BEFORE_ACTION; /* set up lexdp2text again */
 YY_RULE_SETUP
-#line 140 "date_parser2.l"
+#line 139 "date_parser2.l"
 {
     dp_LL (lexdp2text);
 }
@@ -881,12 +894,12 @@
 case 8:
 /* rule 8 can match eol */
 YY_RULE_SETUP
-#line 144 "date_parser2.l"
+#line 143 "date_parser2.l"
 /* ignore */
 	YY_BREAK
 case 9:
 YY_RULE_SETUP
-#line 146 "date_parser2.l"
+#line 145 "date_parser2.l"
 {
     dp_error = TRUE;
     dp_construct_error = TRUE;
@@ -894,10 +907,10 @@
 	YY_BREAK
 case 10:
 YY_RULE_SETUP
-#line 151 "date_parser2.l"
+#line 150 "date_parser2.l"
 ECHO;
 	YY_BREAK
-#line 901 "date_parser2.c"
+#line 914 "date_parser2.c"
 case YY_STATE_EOF(INITIAL):
 	yyterminate();
 
@@ -1083,7 +1096,7 @@
 
 	else
 		{
-			size_t num_to_read =
+			int num_to_read =
 			YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
 
 		while ( num_to_read <= 0 )
@@ -1128,7 +1141,7 @@
 
 		/* Read in more data. */
 		YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
-			(yy_n_chars), num_to_read );
+			(yy_n_chars), (size_t) num_to_read );
 
 		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
 		}
@@ -1595,16 +1608,16 @@
 
 /** Setup the input buffer state to scan a string. The next call to lexdp2lex() will
  * scan from a @e copy of @a str.
- * @param str a NUL-terminated string to scan
+ * @param yystr a NUL-terminated string to scan
  * 
  * @return the newly allocated buffer state object.
  * @note If you want to scan bytes that may contain NUL values, then use
  *       lexdp2_scan_bytes() instead.
  */
-YY_BUFFER_STATE lexdp2_scan_string (yyconst char * yy_str )
+YY_BUFFER_STATE lexdp2_scan_string (yyconst char * yystr )
 {
     
-	return lexdp2_scan_bytes(yy_str,strlen(yy_str) );
+	return lexdp2_scan_bytes(yystr,strlen(yystr) );
 }
 
 /** Setup the input buffer state to scan the given bytes. The next call to lexdp2lex() will
@@ -1614,7 +1627,7 @@
  * 
  * @return the newly allocated buffer state object.
  */
-YY_BUFFER_STATE lexdp2_scan_bytes  (yyconst char * bytes, int  len )
+YY_BUFFER_STATE lexdp2_scan_bytes  (yyconst char * yybytes, int  _yybytes_len )
 {
 	YY_BUFFER_STATE b;
 	char *buf;
@@ -1622,15 +1635,15 @@
 	int i;
     
 	/* Get memory for full buffer, including space for trailing EOB's. */
-	n = len + 2;
+	n = _yybytes_len + 2;
 	buf = (char *) lexdp2alloc(n  );
 	if ( ! buf )
 		YY_FATAL_ERROR( "out of dynamic memory in lexdp2_scan_bytes()" );
 
-	for ( i = 0; i < len; ++i )
-		buf[i] = bytes[i];
+	for ( i = 0; i < _yybytes_len; ++i )
+		buf[i] = yybytes[i];
 
-	buf[len] = buf[len+1] = YY_END_OF_BUFFER_CHAR;
+	buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR;
 
 	b = lexdp2_scan_buffer(buf,n );
 	if ( ! b )
@@ -1751,6 +1764,34 @@
         lexdp2_flex_debug = bdebug ;
 }
 
+static int yy_init_globals (void)
+{
+        /* Initialization is the same as for the non-reentrant scanner.
+     * This function is called from lexdp2lex_destroy(), so don't allocate here.
+     */
+
+    (yy_buffer_stack) = 0;
+    (yy_buffer_stack_top) = 0;
+    (yy_buffer_stack_max) = 0;
+    (yy_c_buf_p) = (char *) 0;
+    (yy_init) = 0;
+    (yy_start) = 0;
+
+/* Defined in main.c */
+#ifdef YY_STDINIT
+    lexdp2in = stdin;
+    lexdp2out = stdout;
+#else
+    lexdp2in = (FILE *) 0;
+    lexdp2out = (FILE *) 0;
+#endif
+
+    /* For future reference: Set errno on error, since we are called by
+     * lexdp2lex_init()
+     */
+    return 0;
+}
+
 /* lexdp2lex_destroy is for both reentrant and non-reentrant scanners. */
 int lexdp2lex_destroy  (void)
 {
@@ -1766,6 +1807,10 @@
 	lexdp2free((yy_buffer_stack) );
 	(yy_buffer_stack) = NULL;
 
+    /* Reset the globals. This is important in a non-reentrant scanner so the next time
+     * lexdp2lex() is called, initialization will occur. */
+    yy_init_globals( );
+
     return 0;
 }
 
@@ -1777,7 +1822,7 @@
 static void yy_flex_strncpy (char* s1, yyconst char * s2, int n )
 {
 	register int i;
-    	for ( i = 0; i < n; ++i )
+	for ( i = 0; i < n; ++i )
 		s1[i] = s2[i];
 }
 #endif
@@ -1786,7 +1831,7 @@
 static int yy_flex_strlen (yyconst char * s )
 {
 	register int n;
-    	for ( n = 0; s[n]; ++n )
+	for ( n = 0; s[n]; ++n )
 		;
 
 	return n;
@@ -1817,23 +1862,11 @@
 
 #define YYTABLES_NAME "yytables"
 
-#undef YY_NEW_FILE
-#undef YY_FLUSH_BUFFER
-#undef yy_set_bol
-#undef yy_new_buffer
-#undef yy_set_interactive
-#undef yytext_ptr
-#undef YY_DO_BEFORE_ACTION
+#line 150 "date_parser2.l"
 
-#ifdef YY_DECL_IS_OURS
-#undef YY_DECL_IS_OURS
-#undef YY_DECL
-#endif
-#line 151 "date_parser2.l"
 
 
 
-
 /* pattern " < < " */
 static void dp_ll (gchar *str)
 {
@@ -1884,7 +1917,7 @@
     gchar *str = g_strdup_printf ("%s\n", ti->int_str);
     /* set string to parse */
     dp_strp = str;
-    /* no error occured (yet) */
+    /* no error occurred (yet) */
     dp_error = FALSE;
     dp_construct_error = FALSE;
     /* set interval type to normal */
@@ -1899,18 +1932,18 @@
 	gtkpod_warning ("Date parser: did not recognize construct:\n   '%s'\n",
 			ti->int_str);
     if (dp_error)
-    {   /* error occured -> invalidate TimeInfo */
+    {   /* error occurred -> invalidate TimeInfo */
 	ti->valid = FALSE;
 	ti->lower = 0;
 	ti->upper = 0;
     }
     else
-    {   /* no error occured -> set the information accordingly */
+    {   /* no error occurred -> set the information accordingly */
 	ti->valid = TRUE;
 	if (dp_int_type & INT_NO_LOWER) ti->lower = 0;
-	else   	ti->lower = itdb_time_host_to_mac (lower_stamp);
+	else   	ti->lower = lower_stamp;
 	if (dp_int_type & INT_NO_UPPER) ti->upper = -1; /* -1 = 2^32-1 */
-	else    ti->upper = itdb_time_host_to_mac (upper_stamp);
+	else    ti->upper = upper_stamp;
     }
 #if DP_DEBUG
     printf ("valid: %d, int_type: %d, lower: %u, upper: %u\n",

Modified: gtkpod/trunk/src/date_parser2.l
===================================================================
--- gtkpod/trunk/src/date_parser2.l	2007-06-27 20:59:02 UTC (rev 193)
+++ gtkpod/trunk/src/date_parser2.l	2007-06-27 21:27:12 UTC (rev 194)
@@ -1,7 +1,6 @@
 /* -*- mode: c -*-
-|  Time-stamp: <2005-04-29 12:13:18 jcs>
 |
-|  Copyright (C) 2002-2003 Jorg Schuler <jcsjcs at users.sourceforge.net>
+|  Copyright (C) 2002-2007 Jorg Schuler <jcsjcs at users.sourceforge.net>
 |  Part of the gtkpod project.
 | 
 |  URL: http://gtkpod.sourceforge.net/
@@ -31,7 +30,7 @@
 #include "date_parser.h"
 #include "misc.h"
 #include "itdb.h"
-/* Will be set to TRUE if error occured */
+/* Will be set to TRUE if error occurred */
     static gboolean dp_error;
 /* Will be set to TRUE if construct (< date, = date...) was not
    recognized */
@@ -201,7 +200,7 @@
     gchar *str = g_strdup_printf ("%s\n", ti->int_str);
     /* set string to parse */
     dp_strp = str;
-    /* no error occured (yet) */
+    /* no error occurred (yet) */
     dp_error = FALSE;
     dp_construct_error = FALSE;
     /* set interval type to normal */
@@ -216,18 +215,18 @@
 	gtkpod_warning ("Date parser: did not recognize construct:\n   '%s'\n",
 			ti->int_str);
     if (dp_error)
-    {   /* error occured -> invalidate TimeInfo */
+    {   /* error occurred -> invalidate TimeInfo */
 	ti->valid = FALSE;
 	ti->lower = 0;
 	ti->upper = 0;
     }
     else
-    {   /* no error occured -> set the information accordingly */
+    {   /* no error occurred -> set the information accordingly */
 	ti->valid = TRUE;
 	if (dp_int_type & INT_NO_LOWER) ti->lower = 0;
-	else   	ti->lower = itdb_time_host_to_mac (lower_stamp);
+	else   	ti->lower = lower_stamp;
 	if (dp_int_type & INT_NO_UPPER) ti->upper = -1; /* -1 = 2^32-1 */
-	else    ti->upper = itdb_time_host_to_mac (upper_stamp);
+	else    ti->upper = upper_stamp;
     }
 #if DP_DEBUG
     printf ("valid: %d, int_type: %d, lower: %u, upper: %u\n",

Modified: gtkpod/trunk/src/details.c
===================================================================
--- gtkpod/trunk/src/details.c	2007-06-27 20:59:02 UTC (rev 193)
+++ gtkpod/trunk/src/details.c	2007-06-27 21:27:12 UTC (rev 194)
@@ -1,6 +1,5 @@
-/* Time-stamp: <2006-09-21 23:31:59 jcs>
-|
-|  Copyright (C) 2002-2005 Jorg Schuler <jcsjcs at users sourceforge net>
+/*
+|  Copyright (C) 2002-2007 Jorg Schuler <jcsjcs at users sourceforge net>
 |  Part of the gtkpod project.
 | 
 |  URL: http://www.gtkpod.org/
@@ -24,7 +23,7 @@
 | 
 |  This product is not supported/written/published by Apple!
 |
-|  $Id: details.c,v 1.16 2006/09/21 15:03:13 jcsjcs Exp $
+|  $Id: details.c 1590 2007-06-25 20:49:55Z phantom_sf $
 */
 
 /* This file provides functions for the details window */
@@ -34,9 +33,12 @@
 #include "details.h"
 #include "fileselection.h"
 #include "misc.h"
+#include "fetchcover.h"
+#include "display_coverart.h"
 #include "misc_track.h"
 #include "prefs.h"
 #include <string.h>
+#include <glib/gstdio.h>
 
 /*
 void details_close (void);
@@ -48,30 +50,47 @@
 /* List with all detail windows */
 static GList *details = NULL;
 
-struct _Detail
-{
-    GladeXML *xml;      /* XML info                           */
-    GtkWidget *window;  /* pointer to details window          */
-    iTunesDB *itdb;     /* pointer to the original itdb       */
-    GList *orig_tracks; /* tracks displayed in details window */
-    GList *tracks;      /* tracks displayed in details window */
-    Track *track;       /* currently displayed track          */
-    gboolean changed;   /* at lease one track was changed     */
-
-};
-
-typedef struct _Detail Detail;
-
-
 /* string constants for preferences */
 static const gchar *DETAILS_WINDOW_DEFX="details_window_defx";
 static const gchar *DETAILS_WINDOW_DEFY="details_window_defy";
 static const gchar *DETAILS_WINDOW_NOTEBOOK_PAGE="details_window_notebook_page";
 
+/* enum types */
+typedef enum
+{
+    DETAILS_MEDIATYPE_AUDIO_VIDEO = 0,
+    DETAILS_MEDIATYPE_AUDIO,
+    DETAILS_MEDIATYPE_MOVIE,
+    DETAILS_MEDIATYPE_PODCAST,
+    DETAILS_MEDIATYPE_VIDEO_PODCAST,
+    DETAILS_MEDIATYPE_AUDIOBOOK,
+    DETAILS_MEDIATYPE_MUSICVIDEO,
+    DETAILS_MEDIATYPE_TVSHOW,
+    DETAILS_MEDIATYPE_MUSICVIDEO_TVSHOW
+} DETAILS_MEDIATYPE;
 
+typedef struct
+{
+    guint32 id;
+    const gchar *str;
+} ComboEntry;
+
+/* strings for mediatype combobox */
+static const ComboEntry mediatype_comboentries[] =
+{
+    { 0,                                               N_("Audio/Video") },
+    { ITDB_MEDIATYPE_AUDIO,                            N_("Audio") },
+    { ITDB_MEDIATYPE_MOVIE,                            N_("Video") },
+    { ITDB_MEDIATYPE_PODCAST,                          N_("Podcast") },
+    { ITDB_MEDIATYPE_PODCAST|ITDB_MEDIATYPE_MOVIE,     N_("Video Podcast") },
+    { ITDB_MEDIATYPE_AUDIOBOOK,                        N_("Audiobook") },
+    { ITDB_MEDIATYPE_MUSICVIDEO,                       N_("Music Video") },
+    { ITDB_MEDIATYPE_TVSHOW,                           N_("TV Show") },
+    { ITDB_MEDIATYPE_TVSHOW|ITDB_MEDIATYPE_MUSICVIDEO, N_("TV Show & Music Video") },
+    { 0,                                               NULL }
+};
+
 /* Declarations */
-static void details_update_buttons (Detail *detail);
-static void details_update_thumbnail (Detail *detail);
 static void details_set_track (Detail *detail, Track *track);
 static void details_free (Detail *detail);
 static void details_get_item (Detail *detail, T_item item,
@@ -104,7 +123,7 @@
 
 
 /* Query the state of the writethrough checkbox */
-static gboolean details_writethrough (Detail *detail)
+gboolean details_writethrough (Detail *detail)
 {
     GtkWidget *w;
 
@@ -171,6 +190,22 @@
 }
 
 
+static void details_combobox_changed (GtkComboBox *combobox,
+					 Detail *detail)
+{
+    T_item item;
+
+    g_return_if_fail (combobox);
+
+    item = GPOINTER_TO_INT (g_object_get_data (G_OBJECT (combobox),
+					       "details_item"));
+    
+    g_return_if_fail ((item > 0) && (item < T_ITEM_NUM));
+
+    details_get_item (detail, item, FALSE);
+}
+
+
 static void details_writethrough_toggled (GtkCheckButton *button,
 					  Detail *detail)
 {
@@ -324,6 +359,7 @@
 {
     GList *gl, *gl_orig;
     gboolean changed = FALSE;
+    GList *changed_tracks = NULL;
 
     g_return_if_fail (detail);
 
@@ -356,8 +392,18 @@
 
 	    if (tr_changed)
 	    {
+		tr_orig->time_modified = time (NULL);
 		pm_track_changed (tr_orig);
 	    }
+
+	    if (prefs_get_int("id3_write"))
+	    {
+		/* add tracks to a list because write_tags_to_file()
+		   can remove newly created duplicates which is not a
+		   good idea from within a for() loop over tracks */
+		changed_tracks = g_list_prepend (changed_tracks, tr_orig);
+	    }
+
 	    changed |= tr_changed;
 	    etr->tchanged = FALSE;
 	}
@@ -366,7 +412,24 @@
     detail->changed = FALSE;
 
     if (changed)
+    {
 	data_changed (detail->itdb);
+    }
+    
+    if (prefs_get_int("id3_write"))
+    {
+	if (changed_tracks)
+	{
+	    for (gl=changed_tracks; gl; gl=gl->next)
+	    {
+		Track *tr = gl->data;
+		write_tags_to_file (tr);
+		/* display possible duplicates that have been removed */
+	    }
+	    gp_duplicate_remove (NULL, NULL);
+	}
+    }
+    g_list_free (changed_tracks);
 
     details_update_headline (detail);
 
@@ -464,11 +527,11 @@
 /****** Copy artwork data if filaname has changed ****** */
 static gboolean details_copy_artwork (Track *frtrack, Track *totrack)
 {
-    gboolean changed = FALSE;
-    ExtraTrackData *fretr, *toetr;
+		gboolean changed = FALSE;
+  	ExtraTrackData *fretr, *toetr;
 
-    g_return_val_if_fail (frtrack, FALSE);
-    g_return_val_if_fail (totrack, FALSE);
+  	g_return_val_if_fail (frtrack, FALSE);
+  	g_return_val_if_fail (totrack, FALSE);
 
     fretr = frtrack->userdata;
     toetr = totrack->userdata;
@@ -478,26 +541,33 @@
 
     g_return_val_if_fail (fretr->thumb_path_locale, FALSE);
     g_return_val_if_fail (toetr->thumb_path_locale, FALSE);
-
-    if (strcmp (fretr->thumb_path_locale, toetr->thumb_path_locale) != 0)
-    {
-	itdb_artwork_free (totrack->artwork);
-	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;
-    }
+	
+	if (strcmp (fretr->thumb_path_locale, toetr->thumb_path_locale) != 0
+			|| fretr->tartwork_changed == TRUE)
+  {
+		itdb_artwork_free (totrack->artwork);
+		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);
     }
+    
+    /* Since no data changes affect the coverart display.
+     * Need to force a change by calling set covers directly.
+     */
+     force_update_covers ();
+    
     return changed;
 }
 
@@ -549,7 +619,56 @@
 }
 
 
+/****** comboentries helper functions ******/
 
+/* Get index from ID (returns -1 if ID could not be found) */
+static gint comboentry_index_from_id (const ComboEntry centries[],
+				      guint32 id)
+{
+    gint i;
+
+    g_return_val_if_fail (centries, -1);
+
+    for (i=0; centries[i].str; ++i)
+    {
+	if (centries[i].id == id)  return i;
+    }
+    return -1;
+}
+
+
+/* initialize a combobox with the corresponding entry strings */
+static void details_setup_combobox (GtkWidget *cb,
+				    const ComboEntry centries[])
+{
+    const ComboEntry *ce = centries;
+    GtkCellRenderer *cell;
+    GtkListStore *store;
+
+    g_return_if_fail (cb);
+    g_return_if_fail (centries);
+
+    /* clear any renderers that may have been set */
+    gtk_cell_layout_clear (GTK_CELL_LAYOUT (cb));
+    /* set new model */
+    store = gtk_list_store_new (1, G_TYPE_STRING);
+    gtk_combo_box_set_model (GTK_COMBO_BOX (cb), GTK_TREE_MODEL (store));
+    g_object_unref (store);
+
+    cell = gtk_cell_renderer_text_new ();
+    gtk_cell_layout_pack_start (GTK_CELL_LAYOUT (cb), cell, TRUE);
+    gtk_cell_layout_set_attributes (GTK_CELL_LAYOUT (cb), cell,
+				    "text", 0,
+				    NULL);
+
+    while (ce->str != NULL)
+    {
+	gtk_combo_box_append_text (GTK_COMBO_BOX (cb), _(ce->str));
+	++ce;
+    }
+}
+
+
 /****** Setup of widgets ******/
 static void details_setup_widget (Detail *detail, T_item item)
 {
@@ -616,6 +735,18 @@
     case T_TIME_PLAYED:
     case T_TIME_MODIFIED:
     case T_TIME_RELEASED:
+    case T_TV_SHOW:
+    case T_TV_EPISODE:
+    case T_TV_NETWORK:
+    case T_SEASON_NR:
+    case T_EPISODE_NR:
+    case T_ALBUMARTIST:
+    case T_SORT_ARTIST:
+    case T_SORT_TITLE:
+    case T_SORT_ALBUM:
+    case T_SORT_ALBUMARTIST:
+    case T_SORT_COMPOSER:
+    case T_SORT_TVSHOW:
 	buf = g_strdup_printf ("details_entry_%d", item);
 	w = gtkpod_xml_get_widget (detail->xml, buf);
 	g_signal_connect (w, "activate",
@@ -646,6 +777,14 @@
 			  G_CALLBACK (details_text_changed),
 			  detail);
 	break;
+    case T_MEDIA_TYPE:
+	buf = g_strdup_printf ("details_combobox_%d", item);
+	w = gtkpod_xml_get_widget (detail->xml, buf);
+	details_setup_combobox (w, mediatype_comboentries);
+	g_signal_connect (w, "changed",
+			  G_CALLBACK (details_combobox_changed),
+			  detail);
+	break;
     case T_ALL:
     case T_ITEM_NUM:
 	/* cannot happen because of assertion above */
@@ -667,7 +806,7 @@
     GtkTextBuffer *tb;
     GtkWidget *w = NULL;
     gchar *text;
-    gchar *entry, *checkbutton, *textview;
+    gchar *entry, *checkbutton, *textview, *combobox;
 
     g_return_if_fail (detail);
     g_return_if_fail ((item > 0) && (item < T_ITEM_NUM));
@@ -675,12 +814,19 @@
     entry = g_strdup_printf ("details_entry_%d", item);
     checkbutton = g_strdup_printf ("details_checkbutton_%d", item);
     textview = g_strdup_printf ("details_textview_%d", item);
+    combobox = g_strdup_printf ("details_combobox_%d", item);
 
     if (track != NULL)
     {
 	track->itdb = detail->itdb;
 	text = track_get_text (track, item);
 	track->itdb = NULL;
+	if ((item == T_THUMB_PATH) && (!detail->artwork_ok))
+	{
+	    gchar *new_text = g_strdup_printf (_("%s (image data corrupted or unreadable)"), text);
+	    g_free (text);
+	    text = new_text;
+	}
     }
     else
     {
@@ -721,6 +867,18 @@
     case T_TIME_PLAYED:
     case T_TIME_MODIFIED:
     case T_TIME_RELEASED:
+    case T_TV_SHOW:
+    case T_TV_EPISODE:
+    case T_TV_NETWORK:
+    case T_SEASON_NR:
+    case T_EPISODE_NR:
+    case T_ALBUMARTIST:
+    case T_SORT_ARTIST:
+    case T_SORT_TITLE:
+    case T_SORT_ALBUM:
+    case T_SORT_ALBUMARTIST:
+    case T_SORT_COMPOSER:
+    case T_SORT_TVSHOW:
 	w = gtkpod_xml_get_widget (detail->xml, entry);
 	g_signal_handlers_block_by_func (w, details_text_changed, detail);
 	gtk_entry_set_text (GTK_ENTRY (w), text);
@@ -792,6 +950,23 @@
 					      FALSE);
 	}
 	break;
+    case T_MEDIA_TYPE:
+	if ((w = gtkpod_xml_get_widget (detail->xml, combobox)))
+	{
+	    gint index = -1;
+	    if (track)
+	    {
+		index = comboentry_index_from_id (mediatype_comboentries,
+						  track->mediatype);
+		if (index == -1)
+		{
+		    gtkpod_warning (_("Please report unknown mediatype %x\n"),
+				    track->mediatype);
+		}
+	    }
+	    gtk_combo_box_set_active (GTK_COMBO_BOX (w), index);
+	}
+	break;
     case T_ALL:
     case T_ITEM_NUM:
 	/* cannot happen because of assertion above */
@@ -801,6 +976,7 @@
     g_free (entry);
     g_free (checkbutton);
     g_free (textview);
+    g_free (combobox);
     g_free (text);
 }
 
@@ -814,7 +990,7 @@
 			      gboolean assumechanged)
 {
     GtkWidget *w = NULL;
-    gchar *entry, *checkbutton, *textview;
+    gchar *entry, *checkbutton, *textview, *combobox;
     gboolean changed = FALSE;
     ExtraTrackData *etr;
     Track *track;
@@ -830,6 +1006,7 @@
     entry = g_strdup_printf ("details_entry_%d", item);
     checkbutton = g_strdup_printf ("details_checkbutton_%d", item);
     textview = g_strdup_printf ("details_textview_%d", item);
+    combobox = g_strdup_printf ("details_combobox_%d", item);
 
     switch (item)
     {
@@ -861,6 +1038,18 @@
     case T_STARTTIME:
     case T_STOPTIME:
     case T_SOUNDCHECK:
+    case T_TV_SHOW:
+    case T_TV_EPISODE:
+    case T_TV_NETWORK:
+    case T_SEASON_NR:
+    case T_EPISODE_NR:
+    case T_ALBUMARTIST:
+    case T_SORT_ARTIST:
+    case T_SORT_TITLE:
+    case T_SORT_ALBUM:
+    case T_SORT_ALBUMARTIST:
+    case T_SORT_COMPOSER:
+    case T_SORT_TVSHOW:
 	if ((w = gtkpod_xml_get_widget (detail->xml, entry)))
 	{
 	    const gchar *text;
@@ -976,6 +1165,23 @@
 	    }
 	}
 	break;
+    case T_MEDIA_TYPE:
+	if ((w = gtkpod_xml_get_widget (detail->xml, combobox)))
+	{
+	    gint active;
+	    active = gtk_combo_box_get_active (GTK_COMBO_BOX (w));
+	    if (active != -1)
+	    {
+		guint32 new_mediatype = mediatype_comboentries[active].id;
+
+		if (track->mediatype != new_mediatype)
+		{
+		    track->mediatype = new_mediatype;
+		    changed = TRUE;
+		}
+	    }
+	}
+	break;
     case T_TRANSFERRED:
     case T_PC_PATH:
     case T_IPOD_PATH:
@@ -1020,13 +1226,14 @@
     g_free (entry);
     g_free (checkbutton);
     g_free (textview);
+    g_free (combobox);
 
     details_update_buttons (detail);
 }
 
 
 /* Render the Apply button insensitive as long as no changes were done */
-static void details_update_buttons (Detail *detail)
+void details_update_buttons (Detail *detail)
 {
     GtkWidget *w;
     gchar *buf;
@@ -1123,7 +1330,7 @@
 }
 
 /* Update the displayed thumbnail */
-static void details_update_thumbnail (Detail *detail)
+void details_update_thumbnail (Detail *detail)
 {
     Thumb *thumb;
     GtkImage *img;
@@ -1137,6 +1344,7 @@
 
     if (detail->track)
     {
+	detail->artwork_ok = TRUE;
 	/* Get large cover */
 	thumb = itdb_artwork_get_thumb_by_type (detail->track->artwork,
 						ITDB_THUMB_COVER_LARGE);
@@ -1150,6 +1358,12 @@
 		gtk_image_set_from_pixbuf (img, pixbuf);
 		gdk_pixbuf_unref (pixbuf);
 	    }
+	    else
+	    {
+		gtk_image_set_from_stock (img, GTK_STOCK_DIALOG_WARNING,
+					  GTK_ICON_SIZE_DIALOG);
+		detail->artwork_ok = FALSE;
+	    }
 	}
 	details_set_item (detail,  detail->track, T_THUMB_PATH);
     }
@@ -1185,7 +1399,6 @@
     g_free (buf);
 }
 
-
 /* Set the display to @track */
 static void details_set_track (Detail *detail, Track *track)
 {
@@ -1195,6 +1408,9 @@
 
     detail->track = track;
 
+    /* Set thumbnail */
+    details_update_thumbnail (detail);
+
     for (item=1; item<T_ITEM_NUM; ++item)
     {
 	details_set_item (detail, track, item);
@@ -1202,9 +1418,6 @@
 
     details_update_headline (detail);
 
-    /* Set thumbnail */
-    details_update_thumbnail (detail);
-
     details_update_buttons (detail);
 }
 
@@ -1250,6 +1463,7 @@
 	etr_dup = tr_dup->userdata;
 	g_return_if_fail (etr_dup);
 	etr_dup->tchanged = FALSE;
+	etr_dup->tartwork_changed = FALSE;
 	detail->tracks = g_list_prepend (detail->tracks, tr_dup);
     }
 
@@ -1300,7 +1514,7 @@
 {
     g_return_if_fail (detail);
 
-    /* FIXME: how do we free the detail->xml? */
+    g_object_unref (detail->xml);
 
     if (detail->window)
     {
@@ -1381,6 +1595,11 @@
 		      G_CALLBACK (details_button_set_artwork_clicked),
 		      detail);
 
+		w = gtkpod_xml_get_widget (detail->xml, "details_button_fetch_cover");
+    g_signal_connect (w, "clicked",
+    			G_CALLBACK (on_fetchcover_fetch_button),
+          detail);
+		
     w = gtkpod_xml_get_widget (detail->xml, "details_button_remove_artwork");
     g_signal_connect (w, "clicked",
 		      G_CALLBACK (details_button_remove_artwork_clicked),
@@ -1418,17 +1637,16 @@
 		      G_CALLBACK (details_writethrough_toggled),
 		      detail);
 
-
-
     g_signal_connect (detail->window, "delete_event",
 		      G_CALLBACK (details_delete_event), detail);
 
+
     details_set_tracks (detail, selected_tracks);
 
     /* set notebook page */
     w = gtkpod_xml_get_widget (detail->xml, "details_notebook");
     page = prefs_get_int (DETAILS_WINDOW_NOTEBOOK_PAGE);
-    if ((page >= 0) && (page < 3))
+    if ((page >= 0) && (page <= 3))
 	gtk_notebook_set_current_page (GTK_NOTEBOOK (w), page);
 
     /* set default size */
@@ -1467,3 +1685,9 @@
 	details_remove_track_intern (detail, track);
     }
 }
+
+/* Returns the detail struct currently selected in details */
+Detail *details_get_selected_detail ()
+{
+        return details->data;
+}

Modified: gtkpod/trunk/src/details.h
===================================================================
--- gtkpod/trunk/src/details.h	2007-06-27 20:59:02 UTC (rev 193)
+++ gtkpod/trunk/src/details.h	2007-06-27 21:27:12 UTC (rev 194)
@@ -24,7 +24,7 @@
 | 
 |  This product is not supported/written/published by Apple!
 |
-|  $Id: details.h,v 1.4 2005/12/09 15:59:12 jcsjcs Exp $
+|  $Id: details.h 1036 2007-04-15 13:27:42Z jcsjcs $
 */
 
 #ifndef __DETAILS_H__
@@ -36,9 +36,29 @@
  
 #include <gtk/gtk.h>
 #include "itdb.h"
+#include <glade/glade.h>
 
+struct _Detail
+{
+    GladeXML *xml;      /* XML info                           */
+    GtkWidget *window;  /* pointer to details window          */
+    iTunesDB *itdb;     /* pointer to the original itdb       */
+    GList *orig_tracks; /* tracks displayed in details window */
+    GList *tracks;      /* tracks displayed in details window */
+    Track *track;       /* currently displayed track          */
+    gboolean artwork_ok;/* artwork can be displayed or not    */
+    gboolean changed;   /* at lease one track was changed     */
+
+};
+
+typedef struct _Detail Detail;
+
 /* details window */
 void details_edit (GList *selected_tracks);
 void details_update_default_sizes (void);
 void details_remove_track (Track *track);
+gboolean details_writethrough (Detail *detail);
+void details_update_thumbnail (Detail *detail);
+void details_update_buttons (Detail *detail);
+Detail *details_get_selected_detail ();
 #endif

Modified: gtkpod/trunk/src/display.c
===================================================================
--- gtkpod/trunk/src/display.c	2007-06-27 20:59:02 UTC (rev 193)
+++ gtkpod/trunk/src/display.c	2007-06-27 21:27:12 UTC (rev 194)
@@ -1,4 +1,4 @@
-/* Time-stamp: <2006-06-25 00:22:56 jcs>
+/* Time-stamp: <2007-04-23 22:24:05 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.c,v 1.149 2006/06/24 15:39:22 jcsjcs Exp $
+|  $Id: display.c 1053 2007-04-23 15:33:31Z jcsjcs $
 */
 
 #ifdef HAVE_CONFIG_H
@@ -35,6 +35,7 @@
 #include "display_private.h"
 #include "info.h"
 #include "ipod_init.h"
+#include "file_convert.h"
 #include "misc.h"
 #include "misc_track.h"
 #include "prefs.h"
@@ -48,13 +49,9 @@
 
 GtkWidget *gtkpod_window = NULL;
 
-/* used for stopping of display refresh */
-gint stop_add = SORT_TAB_MAX;
-
 /* Create the listviews etc */
 void display_create (void)
 {
-    GtkWidget *stop_button;
     gint defx, defy;
     GtkTooltips *main_tooltips;
 
@@ -80,9 +77,6 @@
     st_create_tabs ();
     st_set_default_sizes ();
     pm_create_treeview ();
-    /* Hide the "stop_button" */
-    stop_button = gtkpod_xml_get_widget (main_window_xml, "stop_button");
-    if (stop_button) gtk_widget_hide (stop_button);
     /* Hide/Show the toolbar */
     display_show_hide_toolbar ();
     /* Hide/Show tooltips */
@@ -96,6 +90,10 @@
     gtkpod_statusbar_init ();
     gtkpod_tracks_statusbar_init ();
     gtkpod_space_statusbar_init ();
+
+    /* Initialize the coverart display */
+    coverart_init_display ();
+
     /* set the menu item for the info window correctly */
     /* CAREFUL: must be done after calling ..._space_statusbar_init() */
     display_set_info_window_menu ();
@@ -135,7 +133,7 @@
 
     pm_set_selected_playlist (cur_pl);
     /* add playlists back to model (without selecting) */
-    pm_add_all_playlists ();
+    pm_add_all_itdbs ();
 }
 
 
@@ -432,15 +430,16 @@
     /* x,y size of main window */
     if (gtkpod_window)
     {
-			gtk_window_get_size (GTK_WINDOW (gtkpod_window), &x, &y);
-			prefs_set_int("size_gtkpod.x", x);
-			prefs_set_int("size_gtkpod.y", 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 ();
     prefs_window_update_default_sizes ();
     info_update_default_sizes ();
     details_update_default_sizes ();
+    file_convert_update_default_sizes ();
 }
 
 
@@ -500,253 +499,10 @@
 
 /* ------------------------------------------------------------
 
-           Functions for stopping display update
+           Functions for treeview autoscroll (during DND)
 
    ------------------------------------------------------------ */
 
-enum {
-    BR_BLOCK,
-    BR_RELEASE,
-    BR_ADD,
-    BR_CALL,
-};
-
-
-#if DEBUG_CB_INIT
-static gchar *act_to_str (gint action)
-{
-    switch (action)
-    {
-    case BR_BLOCK: return ("BLOCK");
-    case BR_RELEASE: return ("RELEASE");
-    case BR_ADD: return ("ADD");
-    case BR_CALL: return ("CALL");
-    }
-    return "\"\"";
-}
-#endif
-
-/* called by block_selection() and release_selection */
-static void block_release_selection (gint inst, gint action,
-				     br_callback brc,
-				     gpointer user_data1,
-				     gpointer user_data2)
-{
-    static gint count_st[SORT_TAB_MAX];
-    static gint count_pl = 0;
-    static GtkWidget *stop_button = NULL;
-    /* instance that has a pending callback */
-    static gint level = SORT_TAB_MAX; /* no level -> no registered callback */
-    static br_callback r_brc;
-    static gpointer r_user_data1;
-    static gpointer r_user_data2;
-    static guint timeout_id = 0;
-    gint i;
-
-#if DEBUG_CB_INIT
-    printf ("block_release_selection: inst: %d, action: %s, callback: %p\n  user1: %p, user2: %d\n", inst, act_to_str (action), brc, user_data1, (guint)user_data2);
-    printf ("  enter: level: %d, count_pl: %d, cst0: %d, cst1: %d\n",
-	    level, count_pl, count_st[0], count_st[1]);
-#endif
-
-    /* lookup stop_button */
-    if (stop_button == NULL)
-    {
-	stop_button = gtkpod_xml_get_widget (main_window_xml, "stop_button");
-	if (stop_button == NULL)
-	    g_warning ("Programming error: stop_button not found\n");
-    }
-
-    switch (action)
-    {
-    case BR_BLOCK:
-	if (count_pl == 0)
-	{
-	    block_widgets ();
-	    if (stop_button) gtk_widget_show (stop_button);
-	}
-	++count_pl;
-	for (i=0; (i<=inst) && (i<SORT_TAB_MAX); ++i)
-	{
-	    ++count_st[i];
-	}
-	break;
-    case BR_RELEASE:
-	for (i=0; (i<=inst) && (i<SORT_TAB_MAX); ++i)
-	{
-	    --count_st[i];
-	    if ((count_st[i] == 0) && (stop_add == i))
-		stop_add = SORT_TAB_MAX;
-	}
-	--count_pl;
-	if (count_pl == 0)
-	{
-	    if (stop_button) gtk_widget_hide (stop_button);
-	    stop_add = SORT_TAB_MAX;
-	    release_widgets ();
-	}
-	/* check if we have to call a callback */
-	if (level < SORT_TAB_MAX)
-	{
-	    /* don't call it directly -- let's first return to the
-	       calling function */
-/* 	    if (timeout_id == 0) */
-/* 	    { */
-/* 		timeout_id =  */
-/* 		    gtk_idle_add_priority (G_PRIORITY_HIGH_IDLE, */
-/* 					   selection_callback_timeout, */
-/* 					   NULL); */
-/* 	    } */
-	    /* remove timeout function just to be sure */
-	    if (timeout_id)
-	    {
-		gtk_timeout_remove (timeout_id);
-		timeout_id = 0;
-	    }
-	    if (((level == -1) && (count_pl == 0)) ||
-		((level >= 0) && (count_st[level] == 0)))
-	    {
-		level = SORT_TAB_MAX;
-		r_brc (r_user_data1, r_user_data2);
-	    }
-	}
-	break;
-    case BR_ADD:
-/*	printf("adding: inst: %d, level: %d, brc: %p, data1: %p, data2: %p\n",
-	inst, level, brc, user_data1, user_data2);*/
-	if (((inst == -1) && (count_pl == 0)) ||
-	    ((inst >= 0) && (count_st[inst] == 0)))
-	{ /* OK, we could just call the desired function because there
-	    is nothing to be stopped. However, due to a bug or a
-            inevitability of gtk+, if we interrupt the selection
-	    process with a gtk_main_iteration() call the button
-	    release event will be "discarded". Therefore we register
-	    the call here and have it activated with a timeout
-	    function. */
-	    /* We overwrite an older callback of the same level or
-	     * higher  */
-	    if (inst <= level)
-	    {
-		level = inst;
-		r_brc = brc;
-		r_user_data1 = user_data1;
-		r_user_data2 = user_data2;
-		if (timeout_id == 0)
-		{
-		    timeout_id =
-			gtk_idle_add_priority (G_PRIORITY_HIGH_IDLE,
-					       selection_callback_timeout,
-					       NULL);
-		}
-	    }
-	}
-	else
-	{
-	    if (inst <= level)
-	    {   /* Once the functions have stopped, down to the
-		specified level/instance, the desired function is
-		called (about 15 lines up: r_brc (...)) */
-		/* We need to emit a stop_add signal */
-		stop_add = inst;
-		/* and safe the callback data */
-		level = inst;
-		r_brc = brc;
-		r_user_data1 = user_data1;
-		r_user_data2 = user_data2;
-		/* don't let a timeout snatch away this callback
-		 * before all functions have stopped */
-		if (timeout_id)
-		{
-		    gtk_timeout_remove (timeout_id);
-		    timeout_id = 0;
-		}
-	    }
-	}
-	break;
-    case BR_CALL:
-	if (timeout_id)
-	{
-	    gtk_timeout_remove (timeout_id);
-	    timeout_id = 0;
-	}
-	if (level == SORT_TAB_MAX) break;  /* hmm... what happened to
-					      our callback? */
-	if (((level == -1) && (count_pl == 0)) ||
-	    ((level >= 0) && (count_st[level] == 0)))
-	{ /* Let's call the callback function */
-		level = SORT_TAB_MAX;
-		r_brc (r_user_data1, r_user_data2);
-	}
-	else
-	{ /* This is strange and should not happen -- let's forget
-	   * about the callback */
-	    level = SORT_TAB_MAX;
-	}
-	break;
-    default:
-	g_warning ("Programming error: unknown BR_...: %d\n", action);
-	break;
-    }
-#if DEBUG_CB_INIT
-    printf ("   exit: level: %d, count_pl: %d, cst0: %d, cst1: %d\n",
-	    level, count_pl, count_st[0], count_st[1]);
-#endif
-}
-
-/* Will block the possibility to select another playlist / sort tab
-   page / tab entry. Will also block the widgets and activate the
-   "stop button" that can be pressed to stop the update
-   process. "inst" is the sort tab instance up to which the selections
-   should be blocked. "-1" corresponds to the playlist view */
-void block_selection (gint inst)
-{
-    block_release_selection (inst, BR_BLOCK, NULL, NULL, NULL);
-}
-
-/* Makes selection possible again */
-void release_selection (gint inst)
-{
-    block_release_selection (inst, BR_RELEASE, NULL, NULL, NULL);
-}
-
-
-/* Stops the display updates down to instance "inst". "-1" is the
- * playlist view */
-void display_stop_update (gint inst)
-{
-    stop_add = inst;
-}
-
-/* registers @brc to be called as soon as all functions down to
-   instance @inst have been stopped */
-void add_selection_callback (gint inst, br_callback brc,
-				    gpointer user_data1, gpointer user_data2)
-{
-    block_release_selection (inst, BR_ADD, brc, user_data1, user_data2);
-}
-
-/* Called as a high priority timeout to initiate the callback of @brc
-   in the last function */
-gboolean selection_callback_timeout (gpointer data)
-{
-    block_release_selection (0, BR_CALL, NULL, NULL, NULL);
-    return FALSE;
-}
-
-
-
-/* Put all treeviews into the unsorted state (@enable=FALSE) or back
-   to the sorted state (@enable=TRUE) */
-/* Indicates that we begin adding playlists from iTunesDB.
-   This is a good time to stop sorting display. */
-void display_enable_disable_view_sort (gboolean enable)
-{
-    st_enable_disable_view_sort (0, enable);
-/*    tm_enable_disable_view_sort (enable);*/
-}
-
-
-
 static void _remove_scroll_row_timeout (GtkWidget *widget)
 {
     g_return_if_fail (widget);
@@ -1243,13 +999,6 @@
 
 
 void
-on_stop_button_clicked                 (GtkButton       *button,
-					gpointer         user_data)
-{
-    display_stop_update (-1);
-}
-
-void
 on_update_playlist_activate (GtkMenuItem     *menuitem,
 			     gpointer         user_data)
 {
@@ -1880,6 +1629,22 @@
 }
 
 void
+on_conversion_log1_activate               (GtkMenuItem     *menuitem,
+					   gpointer         user_data)
+{
+    gboolean state;
+
+    state = gtk_check_menu_item_get_active (GTK_CHECK_MENU_ITEM (menuitem));
+
+    if (state != prefs_get_int (FILE_CONVERT_DISPLAY_LOG))
+    {
+	prefs_set_int (FILE_CONVERT_DISPLAY_LOG, state);
+	file_convert_prefs_changed ();
+    }
+}
+
+
+void
 on_sync_all_activate                   (GtkMenuItem     *menuitem,
                                         gpointer         user_data)
 {

Modified: gtkpod/trunk/src/display.h
===================================================================
--- gtkpod/trunk/src/display.h	2007-06-27 20:59:02 UTC (rev 193)
+++ gtkpod/trunk/src/display.h	2007-06-27 21:27:12 UTC (rev 194)
@@ -1,6 +1,5 @@
-/* Time-stamp: <2006-09-21 23:12:28 jcs>
-|
-|  Copyright (C) 2002-2005 Jorg Schuler <jcsjcs at users sourceforge net>
+/*
+|  Copyright (C) 2002-2007 Jorg Schuler <jcsjcs at users sourceforge net>
 |  Part of the gtkpod project.
 | 
 |  URL: http://www.gtkpod.org/
@@ -24,7 +23,7 @@
 | 
 |  This product is not supported/written/published by Apple!
 |
-|  $Id: display.h,v 1.116 2006/09/21 15:03:13 jcsjcs Exp $
+|  $Id: display.h 1570 2007-06-21 15:27:11Z jcsjcs $
 */
 
 #ifndef __DISPLAY_H__
@@ -38,6 +37,7 @@
 #include <glade/glade.h>
 #include "itdb.h"
 #include "display_itdb.h"
+#include "display_coverart.h"
 
 /* Main XML glade file */
 GladeXML *main_window_xml;
@@ -87,12 +87,6 @@
 /* max. number of stars */
 #define RATING_MAX 5
 
-/* time between display refreshs in ms */
-#define REFRESH_MS 200
-/* initial count number between display refreshs -- will be
-   re-calculated to match the time interval specified above */
-#define REFRESH_INIT_COUNT 5
-
 /* struct for each entry in sort tab */
 typedef struct {
   gchar *name;
@@ -105,8 +99,8 @@
 typedef struct {
     gchar *int_str;   /* copy of string specified in the sort tab */
     gboolean valid;   /* is current string valid? */
-    guint32 lower;    /* MAC timestamp for lower limit */
-    guint32 upper;    /* MAC timestamp for upper limit ("-1": no limit) */
+    time_t lower;     /* timestamp for lower limit */
+    time_t upper;     /* timestamp for upper limit ("-1": no limit) */
     GtkWidget *entry; /* pointer to GtkEntry in sort tab */
     GtkWidget *active;/* pointer to toggle button */
 } TimeInfo;
@@ -144,12 +138,6 @@
 } ST_item;
 
 /* Column numbers in track model */
-/* Note: the toggle buttons for tag_autoset and display_col
- * in the prefs_window are
- * named after the numbers (Title: tag_autoset0, Artist: tag_autoset1
- * etc.). Since the labels to the buttons are set in prefs_window.c
- * when creating the window, you only need to name the buttons in the
- * intended order using glade-2. There is no need to label them. */
 /* Note: add corresponding entries to T_item and TM_to_T() as well 
  * (below and in misc_conversion.c). 
  * IMPORTANT: Do not change the order -- always add new entries at the
@@ -190,6 +178,19 @@
   TM_COLUMN_SUBTITLE,
   TM_COLUMN_TIME_RELEASED,
   TM_COLUMN_THUMB_PATH,
+  TM_COLUMN_MEDIA_TYPE,       /* 35 */
+  TM_COLUMN_TV_SHOW,
+  TM_COLUMN_TV_EPISODE,
+  TM_COLUMN_TV_NETWORK,
+  TM_COLUMN_SEASON_NR,
+  TM_COLUMN_EPISODE_NR,       /* 40 */
+  TM_COLUMN_ALBUMARTIST,
+  TM_COLUMN_SORT_ARTIST,
+  TM_COLUMN_SORT_TITLE,
+  TM_COLUMN_SORT_ALBUM,
+  TM_COLUMN_SORT_ALBUMARTIST, /* 45 */
+  TM_COLUMN_SORT_COMPOSER,
+  TM_COLUMN_SORT_TVSHOW,
   TM_NUM_COLUMNS
 } TM_item;
 
@@ -242,6 +243,19 @@
     T_REMEMBER_PLAYBACK_POSITION,
     T_SKIP_WHEN_SHUFFLING,
     T_THUMB_PATH,   /* 40 */
+    T_MEDIA_TYPE,
+    T_TV_SHOW,
+    T_TV_EPISODE,
+    T_TV_NETWORK,
+    T_SEASON_NR,    /* 45 */
+    T_EPISODE_NR,
+    T_ALBUMARTIST,
+    T_SORT_ARTIST,
+    T_SORT_TITLE,
+    T_SORT_ALBUM,   /* 50 */
+    T_SORT_ALBUMARTIST,
+    T_SORT_COMPOSER,
+    T_SORT_TVSHOW,
     T_ITEM_NUM,
 } T_item;
 
@@ -251,7 +265,8 @@
 
 /* "Column numbers" in playlist model */
 enum  {
-  PM_COLUMN_PLAYLIST = 0,
+  PM_COLUMN_ITDB = 0,
+  PM_COLUMN_PLAYLIST,
   PM_NUM_COLUMNS
 };
 
@@ -276,12 +291,11 @@
 void display_reset (gint inst);
 GList *display_get_selection (guint32 inst);
 GList *display_get_selected_members (gint inst);
-void display_enable_disable_view_sort (gboolean enable);
 void display_remove_autoscroll_row_timeout (GtkWidget *widget);
 void display_install_autoscroll_row_timeout (GtkWidget *widget);
 
-Playlist* pm_get_selected_playlist(void);
-GtkTreePath *pm_get_path (Playlist *pl);
+Playlist* pm_get_selected_playlist (void);
+gint pm_get_position_for_itdb (iTunesDB *itdb);
 void pm_remove_playlist (Playlist *playlist, gboolean select);
 void pm_add_playlist (Playlist *playlist, gint position);
 void pm_add_itdb (iTunesDB *itdb, gint pos);
@@ -289,7 +303,7 @@
 void pm_unselect_playlist (Playlist *playlist);
 void pm_remove_track (Playlist *playlist, Track *track);
 void pm_add_track (Playlist *playlist, Track *track, gboolean display);
-void pm_name_changed (Playlist *playlist);
+void pm_itdb_name_changed (iTunesDB *itdb);
 void pm_track_changed (Track *track);
 void pm_sort (GtkSortType order);
 void pm_stop_editing (gboolean cancel);
@@ -299,7 +313,7 @@
 			   Playlist *playlist);
 
 void st_stop_editing (gint inst, gboolean cancel);
-void st_page_selected (GtkNotebook *notebook, guint page);
+gboolean st_set_selection (Itdb_Track *track);
 void st_redisplay (guint32 inst);
 void st_sort (GtkSortType order);
 void st_remove_entry (TabEntry *entry, guint32 inst);
@@ -313,11 +327,8 @@
 void sp_go (guint32 inst);
 void sp_conditions_changed (guint32 inst);
 
-TimeInfo *sp_update_date_interval_from_string (guint32 inst,
-					       T_item item,
-					       gboolean force_update);
 void tm_add_track_to_track_model (Track *track, GtkTreeIter *into_iter);
-guint tm_get_nr_of_tracks(void);
+gint tm_get_nr_of_tracks(void);
 void tm_rows_reordered(void);
 gboolean tm_add_filelist (gchar *data, GtkTreePath *path,
 			  GtkTreeViewDropPosition pos);
@@ -337,7 +348,6 @@
 void display_set_default_sizes (void);
 void display_show_hide_tooltips (void);
 void display_set_info_window_menu (void);
-void display_stop_update (gint inst);
 
 void spl_edit (Playlist *spl);
 void spl_edit_new (iTunesDB *itdb, gchar *name, gint32 pos);

Copied: gtkpod/trunk/src/display_coverart.c (from rev 193, gtkpod/branches/upstream/current/src/display_coverart.c)
===================================================================
--- gtkpod/trunk/src/display_coverart.c	                        (rev 0)
+++ gtkpod/trunk/src/display_coverart.c	2007-06-27 21:27:12 UTC (rev 194)
@@ -0,0 +1,1967 @@
+/*
+|  Copyright (C) 2002-2007 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: display_coverart.c 1579 2007-06-23 03:54:37Z jcsjcs $
+*/
+
+#ifdef HAVE_CONFIG_H
+#  include <config.h>
+#endif
+
+#include "display_private.h"
+#include "display.h"
+#include "itdb.h"
+#include "prefs.h"
+#include "display_coverart.h"
+#include "context_menus.h"
+#include "details.h"
+#include "fileselection.h"
+#include "fetchcover.h"
+
+/* Declarations */
+static void free_album (Album_Item *album);
+static void free_CDWidget ();
+static gint compare_album_keys (gchar *a, gchar *b);
+static void set_display_dimensions ();
+static GdkPixbuf *draw_blank_cdimage ();
+static void set_highlight (Cover_Item *cover, gboolean ismain);
+static void raise_cdimages (GPtrArray *cdcovers);
+/*static void scroll_covers (gint direction);*/
+static void remove_track_from_album (Album_Item *album, Track *track, gchar *key, gint index, GList *keylistitem);
+static void on_cover_display_button_clicked (GtkWidget *widget, gpointer data);
+static gint on_main_cover_image_clicked (GnomeCanvasItem *canvasitem, GdkEvent *event, gpointer data);
+static void on_cover_display_slider_value_changed (GtkRange *range, gpointer user_data);
+static void set_cover_dimensions (Cover_Item *cover, int cover_index);
+static void coverart_sort_images (GtkSortType order);
+static void prepare_canvas ();
+static void set_slider_range (gint index);
+static void set_covers (gboolean force_imgupdate);
+static void set_cover_item (gint ndex, Cover_Item *cover, gchar *key, gboolean force_imgupdate);
+
+/* Prefs keys */
+const gchar *KEY_DISPLAY_COVERART="display_coverart";
+
+/* The structure that holds values used throughout all the functions */
+static CD_Widget *cdwidget = NULL;
+/* The backing hash for the albums and it associated key list */
+static GHashTable *album_hash;
+static GList *album_key_list;
+/* Dimensions used for the canvas */
+static gint WIDTH;
+static gint HEIGHT;
+static gint DEFAULT_WIDTH;
+static gint DEFAULT_HEIGHT;
+/* Dimensions used for the smaller 8 cd cover images */
+static gdouble SMALL_IMG_WIDTH;
+static gdouble SMALL_IMG_HEIGHT;
+/* Dimensions used for the main cd cover image */
+static gdouble BIG_IMG_WIDTH;
+static gdouble BIG_IMG_HEIGHT;
+/* Path of the png file used for albums without cd covers */
+static gchar *DEFAULT_FILE;
+/* Path of the png file used for the highlighting of cd covers */
+static gchar *HIGHLIGHT_FILE;
+/* Path of the png file used for the display of the main cd cover */
+static gchar *HIGHLIGHT_FILE_MAIN;
+/* signal handler id for the components */
+static gulong slide_signal_id;
+static gulong rbutton_signal_id;
+static gulong lbutton_signal_id;
+static gulong window_signal_id;
+static gulong contentpanel_signal_id;
+
+#if 0
+static void debug_albums ()
+{
+	gint i;
+	Cover_Item *cover;
+	Album_Item *album;
+	gchar *key;
+	
+	printf("Album list\n");
+	for(i = 0; i < g_list_length(album_key_list); ++i)
+	{
+		key = g_list_nth_data(album_key_list, i);
+		if (key == NULL)
+			printf("Album key is null\n");
+		else
+		{
+			album  = g_hash_table_lookup (album_hash, key);
+			printf("Index = %d -> Album Details: Artist = %s, Album = %s, No. Tracks = %d\n", i, album->artist, album->albumname, g_list_length (album->tracks));
+		}
+	}
+	
+	printf("Cover List\n");
+	for(i = 0; i < IMG_TOTAL; ++i)
+  {
+  	cover = g_ptr_array_index(cdwidget->cdcovers, i);
+  	if (cover->album == NULL)
+  		printf("Cover album is null\n");
+  	else
+  		printf("Cover Details: Artist = %s, Album = %s\n", cover->album->artist, cover->album->albumname);
+  }
+}
+#endif
+
+/**
+ * 
+ * destroy the CD Widget and free everything currently
+ * in memory.
+ * 
+ */
+ static void free_CDWidget()
+ {
+ 	gint i;
+ 	g_signal_handler_disconnect (cdwidget->leftbutton, lbutton_signal_id);
+ 	g_signal_handler_disconnect (cdwidget->rightbutton, rbutton_signal_id);
+ 	g_signal_handler_disconnect (cdwidget->cdslider, slide_signal_id);
+ 	g_signal_handler_disconnect (cdwidget->contentpanel, contentpanel_signal_id);
+ 	g_signal_handler_disconnect (gtkpod_window, window_signal_id);
+
+ 	/* Components not freed as they are part of the glade xml file */
+ 	cdwidget->leftbutton = NULL;
+ 	cdwidget->rightbutton = NULL;
+ 	cdwidget->cdslider = NULL;
+ 	cdwidget->contentpanel = NULL;
+ 	cdwidget->canvasbox = NULL;
+	cdwidget->controlbox = NULL;
+		
+	/* native variables rather than references so should be destroyed when freed */
+ 	cdwidget->first_imgindex = 0;
+ 	cdwidget->block_display_change = FALSE;
+
+	Cover_Item *cover;
+	for(i = 0; i < IMG_TOTAL; ++i)
+  {
+  	cover = g_ptr_array_index(cdwidget->cdcovers, i);
+  	/* Nullify pointer to album reference. Will be freed below */
+  	cover->album = NULL;
+  }
+  	
+ 	g_ptr_array_free (cdwidget->cdcovers, TRUE);
+ 		
+ 	/* Destroying canvas should destroy the background and cvrtext */
+ 	cdwidget->bground = NULL;
+ 	cdwidget->cvrtext = NULL;
+ 	gtk_widget_destroy (GTK_WIDGET(cdwidget->canvas));
+	
+	/* Remove all null tracks before any sorting should take place */	
+ 	album_key_list = g_list_remove_all (album_key_list, NULL);
+ 		
+ 	g_hash_table_foreach_remove(album_hash, (GHRFunc) gtk_true, NULL);
+	g_hash_table_destroy (album_hash);
+	g_list_free (album_key_list);
+		
+	g_free (cdwidget);
+	cdwidget = NULL;
+}
+ 
+/**
+ * draw_blank_cdimage:
+ *
+ * creates a blank "black" pixbuf cd image to represent the
+ * display when the playlist has no tracks in it.
+ * 
+ * Returns:
+ * pixbuf of blank pixbuf
+ */
+static GdkPixbuf *draw_blank_cdimage ()
+{	
+	gdouble width = 4;
+	gdouble height = 4;
+	gint pixel_offset, rowstride, x, y;
+	guchar *drawbuf;
+
+	drawbuf = g_malloc ((gint) (width * 16) * (gint) height);
+	
+	/* drawing buffer length multiplied by 4
+	 * due to 1 width per R, G, B & ALPHA
+	 */
+	rowstride = width * 4;
+			
+  for(y = 0; y < height; ++y)
+  {
+  	for(x = 0; x < width; ++x)
+  	{
+  		pixel_offset = (y * rowstride) + (x * 4);
+  		drawbuf[pixel_offset] = 0;
+  		drawbuf[pixel_offset + 1] = 0;
+  		drawbuf[pixel_offset + 2] = 0;
+  		drawbuf[pixel_offset + 3] = 255;
+  	}
+  }
+  return gdk_pixbuf_new_from_data(drawbuf,
+  									GDK_COLORSPACE_RGB,
+  									TRUE,
+  									8,
+  									width,
+  									height,
+  									rowstride,
+  									(GdkPixbufDestroyNotify) g_free, NULL);
+}
+
+/**
+ * set_highlight:
+ *
+ * Sets the highlighted image to the cover to give shine 
+ * and a reflection.
+ * 
+ * @cover: A Cover_Item object which the higlighted is added to.
+ *  
+ */
+static void set_highlight (Cover_Item *cover, gboolean ismain)
+{
+    GdkPixbuf *image;
+    GError *error = NULL;
+    GdkPixbuf *scaled;
+
+		if(ismain)
+			image = gdk_pixbuf_new_from_file(HIGHLIGHT_FILE_MAIN, &error);
+		else
+    	image = gdk_pixbuf_new_from_file(HIGHLIGHT_FILE, &error);
+    
+    if(error != NULL)
+    {	
+	printf("Error occurred loading file - \nCode: %d\nMessage: %s\n", error->code, error->message); 
+	g_return_if_fail (image);
+    }
+
+    scaled = gdk_pixbuf_scale_simple(image, cover->img_width, ((cover->img_height * 2) + 6), GDK_INTERP_NEAREST);
+    gdk_pixbuf_unref (image);
+		
+    gnome_canvas_item_set (cover->highlight,
+			   "pixbuf", scaled,
+			   NULL);
+    gdk_pixbuf_unref (scaled);
+
+    gnome_canvas_item_hide (cover->highlight);				
+}
+
+/**
+ * raise_cdimages:
+ *
+ * Ensures that once all the canvas items have been created on the
+ * main canvas, they are have the correct Z-order, ie. main cd image
+ * is at the top and fully visible.
+ * 
+ * @cdcovers: array of pointers to the cd cover objects
+ *  
+ */
+static void raise_cdimages (GPtrArray *cdcovers)
+{
+	Cover_Item *cover;
+	gint i, maxindex;
+	
+	maxindex = IMG_TOTAL - 1;
+	
+	for(i = 0; i < maxindex / 2; ++i)
+	{
+		cover = g_ptr_array_index(cdcovers, i);
+		gnome_canvas_item_raise_to_top(cover->cdcvrgrp);
+		
+		cover = g_ptr_array_index(cdcovers, maxindex - i);
+		gnome_canvas_item_raise_to_top(cover->cdcvrgrp);
+	}	
+	cover = g_ptr_array_index(cdcovers, IMG_MAIN);
+	gnome_canvas_item_raise_to_top(cover->cdcvrgrp);
+	
+	gnome_canvas_item_raise_to_top(GNOME_CANVAS_ITEM(cdwidget->cvrtext));
+}
+
+/**
+ * 
+ * force_update_covers:
+ * 
+ * Call the resetting of the covers and override the cached images so that they
+ * are loaded with the latest files existing on the filesystem.
+ * 
+ */
+void force_update_covers ()
+{
+	set_covers (TRUE);
+}
+
+/**
+ * set_covers:
+ *
+ * Internal function responsible for the resetting of the artwork
+ * covers in response to some kind of change in selection, eg. new
+ * selection in sort tab, button click etc...
+ * 
+ * @force_imgupdate: forces the resetting of the cached images so that the
+ * values are reread from the tracks and updated. Used sparingly.
+ */
+static void set_covers (gboolean force_imgupdate)
+{ 
+  gint i, dataindex;
+  gchar *key;
+  Cover_Item *cover;
+
+  if (cdwidget && cdwidget->cdcovers)
+  {
+    for(i = 0; i < IMG_TOTAL; ++i)
+    {
+		cover = g_ptr_array_index(cdwidget->cdcovers, i);
+		dataindex = cdwidget->first_imgindex + i;
+
+		/* Get the key from the key list appropriate to the index
+		 * provided by the first image index property
+		 */
+		key = g_list_nth_data (album_key_list, dataindex);
+		
+		set_cover_item (i, cover, key, force_imgupdate);	
+    }
+  }
+}
+
+/**
+ * set_cover_item:
+ *
+ * Internal function called  by set_covers to reset an artwork cover.
+ * 
+ */
+static void set_cover_item (gint index, Cover_Item *cover, gchar *key, gboolean force_imgupdate)
+{
+	GdkPixbuf *reflection;
+	GdkPixbuf *scaled;
+	Album_Item *album;
+  
+	if (key == NULL)
+	{
+		GdkPixbuf *imgbuf;
+		album = NULL;
+	 	imgbuf = draw_blank_cdimage ();
+	 	
+	 	/* Hide the highlight */
+	 	gnome_canvas_item_hide (cover->highlight);
+	 	
+	 	/* Set the cover */
+	 	scaled = gdk_pixbuf_scale_simple (imgbuf, cover->img_width, cover->img_height, GDK_INTERP_NEAREST);
+	  gnome_canvas_item_set (cover->cdimage,
+			 		"pixbuf", scaled,
+			 		NULL);
+	  
+	  /* Set the reflection to blank too */
+	 reflection = gdk_pixbuf_flip (scaled, FALSE);
+	 gnome_canvas_item_set (cover->cdreflection,
+		  "pixbuf", reflection,
+		  NULL);
+	 
+	 	if (index == IMG_MAIN)
+		{
+	 		/* Set the text to blank */
+	 		gnome_canvas_item_set (GNOME_CANVAS_ITEM (cdwidget->cvrtext),
+				   	"text", "No Artist",
+				   	"fill_color", "black",
+				   	"justification", GTK_JUSTIFY_CENTER,
+				   	NULL);
+		}
+		
+		gdk_pixbuf_unref (reflection);		   
+		gdk_pixbuf_unref (scaled);
+		gdk_pixbuf_unref (imgbuf);
+		
+		return;
+	}
+	
+	/* Key is not null */
+	
+	/* Find the Album Item appropriate to the key */
+	album  = g_hash_table_lookup (album_hash, key);
+	cover->album = album;
+	
+	Track *track;
+	if (force_imgupdate)
+	{
+		gdk_pixbuf_unref (album->albumart);
+		album->albumart = NULL;
+	}
+	
+	if (album->albumart == NULL)
+	{
+		track = g_list_nth_data (album->tracks, 0);
+		album->albumart = coverart_get_track_thumb (track, track->itdb->device);
+	}
+	
+	/* Display the highlight */
+	gnome_canvas_item_show (cover->highlight);	
+	
+	/* Set the Cover */
+	scaled = gdk_pixbuf_scale_simple (album->albumart, cover->img_width, cover->img_height, GDK_INTERP_NEAREST);
+	gnome_canvas_item_set (cover->cdimage,
+	 		"pixbuf", scaled,
+	 		NULL);
+	    		
+	 /* flip image vertically to create reflection */
+	reflection = gdk_pixbuf_flip (scaled, FALSE);
+	gnome_canvas_item_set (cover->cdreflection,
+		  "pixbuf", reflection,
+		  NULL);
+	    	
+	gdk_pixbuf_unref (reflection);
+	gdk_pixbuf_unref (scaled);
+	
+	/* Set the text if the index is the central image cover */
+	if (index == IMG_MAIN)
+	{
+		gchar *text;
+		text = g_strconcat (album->artist, "\n", album->albumname, NULL);
+		gnome_canvas_item_set (GNOME_CANVAS_ITEM (cdwidget->cvrtext),
+				 "text", text,
+				 "fill_color", "white",
+				 "justification", GTK_JUSTIFY_CENTER,
+				 NULL);
+		g_free (text);
+		
+		/*
+		int i;
+		Track *track;
+		for (i = 0; i < g_list_length(album->tracks); ++i)
+		{
+			track = g_list_nth_data (album->tracks, i);
+			printf ("Track artist:%s album:%s  title:%s\n", track->artist, track->album, track->title);
+		}
+		*/
+	}
+}
+
+/**
+ * on_cover_display_slider_value_changed:
+ *
+ * Call handler used for cycling the cover images with the slider.
+ * 
+ * @range: GTKHScale object used as the slider
+ * @user_data: any data needed by the function (not required) 
+ *  
+ */
+static void on_cover_display_slider_value_changed (GtkRange *range, gpointer user_data)
+{
+  gint index, displaytotal;
+	
+	if (cdwidget->block_display_change)
+		return;
+		
+	index = gtk_range_get_value (range);
+	displaytotal = g_list_length(album_key_list);
+  
+  if (displaytotal <= 0)
+  	return;
+    
+  /* Use the index value from the slider for the main image index */
+  cdwidget->first_imgindex = index;
+  
+  if (cdwidget->first_imgindex > (displaytotal - IMG_MAIN))
+  	cdwidget->first_imgindex = displaytotal - IMG_MAIN;
+	
+  set_covers (FALSE);
+}
+
+/**
+ * on_cover_display_button_clicked:
+ *
+ * Call handler for the left and right buttons. Cause the images to
+ * be cycled in the direction indicated by the button.
+ * 
+ * @widget: button which emitted the signal
+ * @data: any data needed by the function (not required) 
+ *  
+ */ 
+static void on_cover_display_button_clicked (GtkWidget *widget, gpointer data)
+{
+	GtkButton *button;
+	const gchar *label;
+	gint displaytotal;
+  
+  button = GTK_BUTTON(widget);
+  label = gtk_button_get_label(button);
+    
+  if(g_str_equal(label, (gchar *) ">"))
+  	cdwidget->first_imgindex++;
+  else
+   	cdwidget->first_imgindex--;
+   	
+  displaytotal = g_list_length(album_key_list) - 8;
+  
+  if (displaytotal <= 0)
+  	return;
+  
+  /* Use the index value from the slider for the main image index */
+  if (cdwidget->first_imgindex < 0)
+  	cdwidget->first_imgindex = 0;
+  else if (cdwidget->first_imgindex > (displaytotal - 1))
+  	cdwidget->first_imgindex = displaytotal - 1;
+      	
+	/* Change the value of the slider to do the work of scrolling the covers */
+	gtk_range_set_value (GTK_RANGE (cdwidget->cdslider), cdwidget->first_imgindex);
+
+	/* debug_albums(); */
+}
+
+/**
+ * on_main_cover_image_clicked:
+ *
+ * Call handler used for displaying the tracks associated with
+ * the main displayed album cover.
+ * 
+ * @GnomeCanvas: main cd cover image canvas
+ * @event: event object used to determine the event type
+ * @data: any data needed by the function (not required) 
+ *  
+ */
+static gint on_main_cover_image_clicked (GnomeCanvasItem *canvasitem, GdkEvent *event, gpointer data)
+{
+	Cover_Item *cover;
+	guint mbutton;
+	
+	if(event->type != GDK_BUTTON_PRESS)
+		return FALSE;
+		
+	mbutton = event->button.button;
+	
+	if (mbutton == 1)
+	{
+		Track *track;
+		Album_Item *album;
+		/* Left mouse button clicked so find all tracks with displayed cover */
+		cover = g_ptr_array_index(cdwidget->cdcovers, IMG_MAIN);
+		/* Stop redisplay of the artwork as its already
+		 * in the correct location
+		 */
+		coverart_block_change (TRUE);
+	
+		/* Select the correct track in the sorttabs */
+		album = cover->album;
+		g_return_val_if_fail (album, FALSE);
+		
+		/* Clear the tracks listed in the display */
+		tm_remove_all_tracks ();
+		
+		GList *tracks = album->tracks;
+		while (tracks)
+		{
+			track = (Track *) tracks->data;
+			tm_add_track_to_track_model (track, NULL);
+			tracks = tracks->next;
+		}
+		
+		/* Turn the display change back on */
+		coverart_block_change (FALSE);
+	}
+	else if ((mbutton == 3) && (event->button.state & GDK_SHIFT_MASK))
+	{
+		/* Right mouse button clicked and shift pressed.
+		 * Go straight to edit details window
+		 */
+		 GList *tracks = coverart_get_displayed_tracks();
+		details_edit (tracks);
+	}
+	else if (mbutton == 3)
+	{
+		/* Right mouse button clicked on its own so display
+		 * popup menu
+		 */
+		 /*int i;
+		 GList *tracks = coverart_get_displayed_tracks();
+		 for (i = 0; i < g_list_length(tracks); ++i)
+    {
+    	Track *track;
+    	track = g_list_nth_data (tracks, i);
+    	printf ("display_coverart-main_image_clicked - Artist:%s  Album:%s  Title:%s\n", track->artist, track->album, track->title);
+    }*/
+		cad_context_menu_init ();
+	}
+	
+	return FALSE;
+}
+
+/**
+ * coverart_clear_images:
+ *
+ * reset the cd cover images to default blank pixbufs and
+ * nullify the covers' pointers to any tracks.
+ * 
+ */
+void coverart_clear_images ()
+{
+	gint i;
+	Cover_Item *cover = NULL;
+	GdkPixbuf *buf;
+	
+	buf = draw_blank_cdimage ();
+	
+	for (i = 0; i < IMG_TOTAL; i++)
+	{
+	  GdkPixbuf *buf2;
+		/* Reset the pixbuf */
+		cover = g_ptr_array_index(cdwidget->cdcovers, i);
+		cover->album = NULL;
+		buf2 = gdk_pixbuf_scale_simple(buf, cover->img_width, cover->img_height, GDK_INTERP_NEAREST);
+		gnome_canvas_item_set(cover->cdimage, "pixbuf", buf2, NULL);
+		gnome_canvas_item_set(cover->cdreflection, "pixbuf", buf2, NULL);
+		gnome_canvas_item_hide (cover->highlight);
+		
+		gdk_pixbuf_unref (buf2);
+		
+		/* Reset track list too */
+		cover->album = NULL;
+		
+		if (i == IMG_MAIN)
+		{
+			/* Set the text to display details of the main image */
+		    gnome_canvas_item_set (GNOME_CANVAS_ITEM (cdwidget->cvrtext),
+					   "text", "No Artist",
+					   "fill_color", "black",
+					   NULL);
+		}
+	}
+	gdk_pixbuf_unref(buf);
+}
+
+/**
+ * coverart_get_track_thumb:
+ *
+ * Retrieve the artwork pixbuf from the given track.
+ * 
+ * @track: Track from where the pixbuf is obtained.
+ * 
+ * Returns:
+ * pixbuf referenced by the provided track or the pixbuf of the
+ * default file if track has no cover art.
+ */
+GdkPixbuf *coverart_get_track_thumb (Track *track, Itdb_Device *device)
+{
+	GdkPixbuf *pixbuf = NULL;	
+	Thumb *thumb;
+	ExtraTrackData *etd;
+
+	etd = track->userdata;
+	g_return_val_if_fail (etd, NULL);
+
+	thumb = itdb_artwork_get_thumb_by_type (track->artwork,
+						ITDB_THUMB_COVER_LARGE);
+	if (thumb)
+	{
+	    pixbuf = itdb_thumb_get_gdk_pixbuf (device, thumb);
+	}
+	
+	if (pixbuf ==  NULL)
+	{
+	 	/* Could not get a viable thumbnail so get default pixbuf */
+	 	pixbuf = coverart_get_default_track_thumb ();
+	}
+	
+	return pixbuf;
+}
+
+/**
+ * coverart_get_displayed_tracks:
+ *
+ * Get all tracks suggested by the displayed album cover.
+ * 
+ * Returns:
+ * GList containing references to all the displayed covered tracks
+ */
+GList *coverart_get_displayed_tracks (void)
+{
+	Cover_Item *cover;
+
+	cover = g_ptr_array_index(cdwidget->cdcovers, IMG_MAIN);
+	g_return_val_if_fail (cover->album, NULL);
+	return cover->album->tracks;
+}
+
+/**
+ * coverart_display_big_artwork:
+ * 
+ * Display a big version of the artwork in a dialog
+ * 
+ */
+void coverart_display_big_artwork ()
+{
+	GtkWidget *dialog;
+	Cover_Item *cover;
+	GdkPixbuf *imgbuf;
+	
+	cover = g_ptr_array_index(cdwidget->cdcovers, IMG_MAIN);
+	g_return_if_fail (cover);
+	
+	if (cover->album == NULL)
+		return;
+	
+	/* Set the dialog title */
+	gchar *text = g_strconcat (cover->album->artist, ": ", cover->album->albumname, NULL);
+	dialog = gtk_dialog_new_with_buttons (	text,
+																																	GTK_WINDOW (gtkpod_xml_get_widget (main_window_xml, "gtkpod")),
+																																	GTK_DIALOG_MODAL | GTK_DIALOG_DESTROY_WITH_PARENT,
+																																	GTK_STOCK_CLOSE,
+																																	GTK_RESPONSE_CLOSE,
+																																	NULL);
+	
+	g_free (text);
+	
+	if (cover->album->albumart != NULL)
+		imgbuf = cover->album->albumart;
+	else
+	{
+		Track *track;
+		track = g_list_nth_data (cover->album->tracks, 0);
+		imgbuf = coverart_get_track_thumb (track, track->itdb->device);
+	}
+		
+	gint pixheight = gdk_pixbuf_get_height (imgbuf);
+	gint pixwidth = gdk_pixbuf_get_width (imgbuf);
+	
+	gtk_window_resize ( GTK_WINDOW(dialog), pixwidth, pixheight + 40);
+	
+	GnomeCanvas *canvas;
+	canvas = GNOME_CANVAS (gnome_canvas_new());
+	gtk_widget_set_size_request ( GTK_WIDGET(canvas),
+																									pixwidth,
+																									pixheight);
+	gnome_canvas_set_scroll_region (	canvas,
+																													0.0, 0.0, 
+																													pixwidth,
+																													pixheight);
+	GnomeCanvasItem *canvasitem;											
+	canvasitem = gnome_canvas_item_new(	gnome_canvas_root(canvas),
+																																		GNOME_TYPE_CANVAS_PIXBUF, NULL);
+	
+	/* Apply the image to the canvas */
+	gnome_canvas_item_set (	canvasitem,
+																						"pixbuf", imgbuf);
+
+	gtk_container_add (GTK_CONTAINER (GTK_DIALOG(dialog)->vbox), GTK_WIDGET(canvas));
+	
+	/* Unreference pixbuf if it is not pointing to
+	 * the album's artwork
+	 */
+	if (cover->album->albumart == NULL)
+		gdk_pixbuf_unref (imgbuf);
+	
+	/* Display the dialog and block everything else until the
+	 * dialog is closed.
+	 */
+	gtk_widget_show_all (dialog);
+	gtk_dialog_run (GTK_DIALOG(dialog));
+	
+	/* Destroy the dialog as no longer required */
+	gtk_widget_destroy (GTK_WIDGET (dialog));
+}
+
+/**
+ * coverart_get_default_track_thumb:
+ *
+ * Retrieve the artwork pixbuf from the default image file.
+ * 
+ * Returns:
+ * pixbuf of the default file for tracks with no cover art.
+ */
+GdkPixbuf *coverart_get_default_track_thumb (void)
+{
+	GdkPixbuf *pixbuf = NULL;
+	GError *error = NULL;
+	
+	pixbuf = gdk_pixbuf_new_from_file(DEFAULT_FILE, &error);
+	if (error != NULL)
+	{
+			printf("Error occurred loading the default file - \nCode: %d\nMessage: %s\n", error->code, error->message);
+			g_return_val_if_fail(pixbuf, NULL);
+	}
+
+	return pixbuf;
+}
+
+/**
+ * coverart_init:
+ *
+ * Initialises the image file used if an album has no cover. This
+ * needs to be loaded early as it uses the path of the binary
+ * to determine where to load the file from, in the same way as
+ * main() determines where to load the glade file from.
+ *
+ * @progpath: path of the gtkpod binary being loaded.
+ *  
+ */
+void coverart_init (gchar *progpath)
+{
+	gchar *progname;
+	
+	progname = g_find_program_in_path (progpath);
+
+  if (progname)
+  {
+  	static const gchar *SEPsrcSEPgtkpod = G_DIR_SEPARATOR_S "src" G_DIR_SEPARATOR_S "gtkpod";
+
+    if (!g_path_is_absolute (progname))
+    {
+	  	gchar *cur_dir = g_get_current_dir ();
+	  	gchar *prog_absolute;
+
+	  	if (g_str_has_prefix (progname, "." G_DIR_SEPARATOR_S))
+	     	prog_absolute = g_build_filename (cur_dir, progname+2, NULL);
+	  	else
+	     	prog_absolute = g_build_filename (cur_dir, progname, NULL);
+	  		
+	  	g_free (progname);
+	  	g_free (cur_dir);
+	  	progname = prog_absolute;
+  	}
+
+    if (g_str_has_suffix (progname, SEPsrcSEPgtkpod))
+    {
+	  	gchar *suffix = g_strrstr (progname, SEPsrcSEPgtkpod);
+
+	  	if (suffix)
+	  	{
+	     	*suffix = 0;
+	     	DEFAULT_FILE = g_build_filename (progname, "data", "default-cover.png", NULL);
+	     	HIGHLIGHT_FILE = g_build_filename (progname, "data", "cdshine.png", NULL);
+	     	HIGHLIGHT_FILE_MAIN = g_build_filename (progname, "data", "cdshine_main.png", NULL);
+	  	}
+  	}
+    
+    g_free (progname);
+    if (DEFAULT_FILE && !g_file_test (DEFAULT_FILE, G_FILE_TEST_EXISTS))
+    {
+	  	g_free (DEFAULT_FILE);
+	  	DEFAULT_FILE = NULL;
+    }
+    
+    if (HIGHLIGHT_FILE && !g_file_test (HIGHLIGHT_FILE, G_FILE_TEST_EXISTS))
+    {
+	  	g_free (HIGHLIGHT_FILE);
+	  	HIGHLIGHT_FILE = NULL;
+    }
+    
+    if (HIGHLIGHT_FILE_MAIN && !g_file_test (HIGHLIGHT_FILE_MAIN, G_FILE_TEST_EXISTS))
+    {
+	  	g_free (HIGHLIGHT_FILE_MAIN);
+	  	HIGHLIGHT_FILE_MAIN = NULL;
+    }
+  }
+  
+  if (!DEFAULT_FILE)
+  {
+      DEFAULT_FILE = g_build_filename (PACKAGE_DATA_DIR, PACKAGE, "data", "default-cover.png", NULL);
+  }
+  if (!HIGHLIGHT_FILE)
+  {
+      HIGHLIGHT_FILE = g_build_filename (PACKAGE_DATA_DIR, PACKAGE, "data", "cdshine.png", NULL);
+  }
+  if (!HIGHLIGHT_FILE_MAIN)
+  {
+      HIGHLIGHT_FILE_MAIN = g_build_filename (PACKAGE_DATA_DIR, PACKAGE, "data", "cdshine_main.png", NULL);
+  }
+}
+
+/**
+ * on_cover_up_button_clicked:
+ *
+ * callback for the cover_up_button. Shows all the cover_art widgets
+ * when clicked.
+ *
+ * @widget, data unused standard parameters
+ *  
+ */
+void on_cover_up_button_clicked (GtkWidget *widget, gpointer data)
+{
+	prefs_set_int (KEY_DISPLAY_COVERART, TRUE);
+	
+	if (cdwidget == NULL)
+		coverart_set_images (TRUE);
+		
+	gtk_widget_show_all (cdwidget->contentpanel);
+	gtk_widget_show (GTK_WIDGET(cdwidget->cdslider));
+	gtk_widget_show (GTK_WIDGET(cdwidget->leftbutton));
+	gtk_widget_show (GTK_WIDGET(cdwidget->rightbutton));
+	
+	gtk_widget_hide (widget);
+	
+	GtkWidget *downbutton = gtkpod_xml_get_widget (main_window_xml, "cover_down_button");
+	gtk_widget_show (downbutton);
+}
+
+/**
+ * on_cover_down_button_clicked:
+ *
+ * callback for the cover_down_button. Hides all the cover_art widgets
+ * when clicked.
+ *
+ * @widget, data unused standard parameters
+ *  
+ */
+void on_cover_down_button_clicked (GtkWidget *widget, gpointer data)
+{
+	prefs_set_int (KEY_DISPLAY_COVERART, FALSE);
+	
+	gtk_widget_hide_all (cdwidget->contentpanel);
+	gtk_widget_hide (GTK_WIDGET(cdwidget->cdslider));
+	gtk_widget_hide (GTK_WIDGET(cdwidget->leftbutton));
+	gtk_widget_hide (GTK_WIDGET(cdwidget->rightbutton));
+	
+	if (cdwidget != NULL)
+	{
+		/* dispose of existing CD Widget */
+		free_CDWidget();
+	}
+	gtk_widget_hide (widget);
+	
+	GtkWidget *upbutton = gtkpod_xml_get_widget (main_window_xml, "cover_up_button");
+	gtk_widget_show (upbutton);
+}
+
+/**
+ * on_paned0_button_release_event:
+ *
+ * Callback fired when a button release event occurs on
+ * paned0. Only worthwhile things are carried out when
+ * the position of paned0 has changed, ie. the bar was moved.
+ * Moving the bar will scale the cover images appropriately.
+ * 
+ * @widget: gtkpod app window
+ * @event: gdk event button
+ * @data: any user data passed to the function
+ * 
+ * Returns:
+ * boolean indicating whether other handlers should be run.
+ */
+gboolean on_paned0_button_release_event (GtkWidget *widget, GdkEventButton *event, gpointer data)
+{
+		if ( ! prefs_get_int (KEY_DISPLAY_COVERART))
+		return FALSE;
+		
+	gint width, i;
+	Cover_Item *cover;
+	
+	width = gtk_paned_get_position (GTK_PANED(widget));
+	if ((width >= DEFAULT_WIDTH) && (width != WIDTH))
+	{
+		WIDTH = width;
+		gnome_canvas_item_set (GNOME_CANVAS_ITEM(cdwidget->cvrtext), 
+				       "x", (gdouble) WIDTH / 2,
+				       NULL);
+		
+		for(i = 0; i < IMG_TOTAL; ++i)
+  	{
+  		cover = g_ptr_array_index(cdwidget->cdcovers, i);
+  		set_cover_dimensions (cover, i);
+  		if(i == IMG_MAIN)
+				set_highlight (cover, FALSE);
+			else
+				set_highlight (cover, TRUE);
+  	}
+		
+		set_covers (FALSE);
+		
+	}
+		
+	return FALSE;
+}
+
+static gboolean on_contentpanel_scroll_wheel_turned (GtkWidget *widget, GdkEventScroll *event, gpointer user_data)
+{
+	gint displaytotal;
+	
+	if (event->direction == GDK_SCROLL_DOWN)
+		cdwidget->first_imgindex++;
+  else
+   	cdwidget->first_imgindex--;
+   	
+  displaytotal = g_list_length(album_key_list) - 8;
+  
+  if (displaytotal <= 0)
+  	return TRUE;
+  
+  /* Use the index value from the slider for the main image index */
+  if (cdwidget->first_imgindex < 0)
+  	cdwidget->first_imgindex = 0;
+  else if (cdwidget->first_imgindex > (displaytotal - 1))
+  	cdwidget->first_imgindex = displaytotal - 1;
+      	
+	/* Change the value of the slider to do the work of scrolling the covers */
+	gtk_range_set_value (GTK_RANGE (cdwidget->cdslider), cdwidget->first_imgindex);
+	
+	return TRUE;	
+}
+      
+/**
+ * gtkpod_window_configure_callback:
+ *
+ * Callback for the gtkpod app window. When the window
+ * is resized the background of the cdwidget is given a size
+ * of the same size. Ensure the background is always black
+ * and no overlapping internal components occur.
+ * 
+ * @widget: gtkpod app window
+ * @event: gdk configure event
+ * @data: any user data passed to the function
+ * 
+ * Returns:
+ * boolean indicating whether other handlers should be run.
+ */
+static gboolean gtkpod_window_configure_callback (GtkWidget *widget, GdkEventConfigure *event, gpointer data)
+{
+	if (cdwidget == NULL)
+		return FALSE;
+		
+	gnome_canvas_item_set (cdwidget->bground, 
+			       "x1",(double) 0, 
+			       "y1",(double) 0,
+			       "x2",(double) event->width,
+			       "y2",(double) event->height,
+			       NULL);
+	gnome_canvas_item_request_update (cdwidget->bground);
+				
+	return FALSE;
+}
+
+/**
+ * set_display_dimensions:
+ *
+ * Initialises the display component width and height.
+ * Sets the podpane's paned position value too.
+ */
+static void set_display_dimensions ()
+{
+	GtkWidget *podpane;
+		  		
+	g_object_get (gtkpod_window,
+								"default_height", &HEIGHT,
+								NULL);
+		
+	HEIGHT = HEIGHT / 2.5;
+	DEFAULT_HEIGHT = HEIGHT;
+	
+	podpane = gtkpod_xml_get_widget (main_window_xml, "paned0");	
+	g_return_if_fail (podpane);
+
+	WIDTH = HEIGHT;	
+	gtk_paned_set_position (GTK_PANED(podpane), WIDTH);
+	DEFAULT_WIDTH = WIDTH;
+}
+
+/**
+ * set_cover_dimensions:
+ *
+ * Utility function for set all the x, y, width and height
+ * dimensions applicable to a single cover widget
+ * 
+ * @cover: cover widget for which dimensions are to be set
+ * @cover_index: index of the widget. Used to determine whether
+ * 												cover is the main cover or not
+ */
+static void set_cover_dimensions (Cover_Item *cover, int cover_index)
+{
+	gdouble x = 0, y = 0, img_width = 0, img_height = 0;
+	
+	SMALL_IMG_WIDTH = WIDTH / 3;
+	SMALL_IMG_HEIGHT = HEIGHT / 3;
+	BIG_IMG_WIDTH = WIDTH / 2;
+	BIG_IMG_HEIGHT = HEIGHT / 2;
+	
+	img_width = SMALL_IMG_WIDTH;
+	img_height = SMALL_IMG_HEIGHT;
+		
+		/* Set the x location of the cover image */
+		switch(cover_index) {
+			case 0:
+				x = BORDER;
+				break;
+			case 1:
+				x = BORDER * 1.6;
+				break;
+			case 2:
+				x = BORDER * 2.2;
+				break;
+			case 3:
+				x = BORDER * 2.8;
+				break;
+			case IMG_MAIN:
+				/* The Main Image CD Cover Image */
+				x = (WIDTH - BIG_IMG_WIDTH) / 2;
+				img_width = BIG_IMG_WIDTH;
+				break;
+			case 5:
+				x = WIDTH - (SMALL_IMG_WIDTH + (BORDER * 2.8));
+				break;
+			case 6:
+				x = WIDTH - (SMALL_IMG_WIDTH + (BORDER * 2.2));
+				break;
+			case 7:
+				x = WIDTH - (SMALL_IMG_WIDTH + (BORDER * 1.6));
+				break;
+			case 8:
+				x =	WIDTH - (SMALL_IMG_WIDTH + BORDER);
+				break;
+		}
+		
+		/* Set the y location of the cover image */		
+		switch(cover_index) {
+			case 0:
+			case 8:
+				y = BORDER;
+				break;
+			case 1:
+			case 7:
+				y = BORDER * 3;
+				break;
+			case 2:
+			case 6:
+				y = BORDER * 5;
+				break;
+			case 3:
+			case 5:
+				y = BORDER * 7;
+				break;
+			case IMG_MAIN:
+				/* The Main Image CD Cover Image */
+				y = HEIGHT - (BIG_IMG_HEIGHT + (BORDER * 4));
+				img_height = BIG_IMG_HEIGHT;	
+		}
+		
+		cover->img_x = x;
+		cover->img_y = y;
+		cover->img_height = img_height;
+		cover->img_width = img_width;
+		
+		gnome_canvas_item_set (cover->cdcvrgrp,
+				       "x", (gdouble) cover->img_x,
+				       "y", (gdouble) cover->img_y,
+				       NULL);
+		
+		gnome_canvas_item_set (cover->cdreflection,
+				       "y", (gdouble) (cover->img_height + 4),
+				       NULL);
+}
+
+/**
+ * 
+ * set_scale_range:
+ * 
+ * Set the scale range - maximum value should be display
+ * track list length - (8 NULL images + 1 as index value), 
+ * ie. the ones either end of the list.
+ * 
+ */
+static void set_slider_range (gint index)
+{
+	gint slider_ubound = g_list_length (album_key_list) - IMG_TOTAL;
+	if(slider_ubound < 1)
+	{
+		/* If only one album cover is displayed then slider_ubbound returns
+		 * 0 and causes a slider assertion error. Avoid this by disabling the
+		 * slider, which makes sense because only one cover is displayed.
+		 */
+		slider_ubound = 1;
+		gtk_widget_set_sensitive (GTK_WIDGET(cdwidget->cdslider), FALSE); 
+		gtk_widget_set_sensitive (GTK_WIDGET(cdwidget->leftbutton), FALSE); 
+		gtk_widget_set_sensitive (GTK_WIDGET(cdwidget->rightbutton), FALSE); 
+	}
+	else
+	{
+	 	gtk_widget_set_sensitive (GTK_WIDGET(cdwidget->cdslider), TRUE);
+	 	gtk_widget_set_sensitive (GTK_WIDGET(cdwidget->leftbutton), TRUE); 
+		gtk_widget_set_sensitive (GTK_WIDGET(cdwidget->rightbutton), TRUE);
+	}
+	
+	gtk_range_set_range (GTK_RANGE (cdwidget->cdslider), 0, slider_ubound);
+	if (index >= 0 && index <= slider_ubound)
+		gtk_range_set_value (GTK_RANGE (cdwidget->cdslider), index);
+	else
+		gtk_range_set_value (GTK_RANGE (cdwidget->cdslider), 0);
+}
+
+/**
+ * prepare_canvas:
+ *
+ * Initialise the canvas and prepare the 9 cover items, along
+ * with shadow and correct positions/dimensions.
+ */
+static void prepare_canvas ()
+{
+	gint i;
+	Cover_Item *cover;
+	
+	gtk_widget_set_size_request(GTK_WIDGET(cdwidget->canvasbox), WIDTH, HEIGHT);
+	/* create a new canvas */
+	cdwidget->canvas = GNOME_CANVAS(gnome_canvas_new_aa());
+	g_return_if_fail (cdwidget->canvas);
+	
+	/* set the size and scroll region of the canvas */
+	gtk_widget_set_size_request(GTK_WIDGET(cdwidget->canvas), WIDTH, HEIGHT);
+	gnome_canvas_set_center_scroll_region (cdwidget->canvas, FALSE);
+	
+	cdwidget->bground = gnome_canvas_item_new(gnome_canvas_root(cdwidget->canvas),
+			    gnome_canvas_rect_get_type(),
+			    "x1",(double) 0, 
+			    "y1",(double) 0,
+			    "x2",(double) WIDTH,
+			    "y2",(double) HEIGHT,
+			    "fill_color", "black",
+			    NULL);
+			    
+	gnome_canvas_item_lower_to_bottom(cdwidget->bground);
+	
+	cdwidget->cdcovers = g_ptr_array_sized_new (IMG_TOTAL);
+	for(i = 0; i < IMG_TOTAL; ++i)
+	{
+		cover = g_new0(Cover_Item, 1);
+		
+		cover->cdcvrgrp = gnome_canvas_item_new(gnome_canvas_root(cdwidget->canvas),
+												gnome_canvas_group_get_type(),
+												NULL);
+												
+		cover->cdimage = gnome_canvas_item_new((GnomeCanvasGroup *) cover->cdcvrgrp,
+										GNOME_TYPE_CANVAS_PIXBUF,
+										NULL);
+		
+		cover->cdreflection = gnome_canvas_item_new((GnomeCanvasGroup *) cover->cdcvrgrp,
+										GNOME_TYPE_CANVAS_PIXBUF,
+										NULL);
+	
+		set_cover_dimensions (cover, i);
+		
+		cover->highlight = gnome_canvas_item_new((GnomeCanvasGroup *) cover->cdcvrgrp,
+																						GNOME_TYPE_CANVAS_PIXBUF,
+	    	   																	NULL);		
+		
+		if(i == IMG_MAIN)
+		{
+			set_highlight (cover, TRUE);
+		
+			/* set up some callback events on the main scaled image */
+			g_signal_connect(GTK_OBJECT(cover->cdimage), "event", GTK_SIGNAL_FUNC(on_main_cover_image_clicked), NULL);
+		
+			cdwidget->cvrtext = GNOME_CANVAS_TEXT(gnome_canvas_item_new(gnome_canvas_root(cdwidget->canvas),
+										GNOME_TYPE_CANVAS_TEXT,
+										"text", "No Artist",
+										"x", (gdouble) WIDTH / 2,
+										"y", (gdouble) cover->img_y + cover ->img_height,
+										"justification", GTK_JUSTIFY_CENTER,
+  									"anchor", GTK_ANCHOR_NORTH,
+  									"fill_color", "black",
+  									"font", "-*-clean-medium-r-normal-*-12-*-*-*-*-*-*",
+										NULL));
+		}
+		else
+			set_highlight (cover, FALSE);
+		
+		g_ptr_array_add(cdwidget->cdcovers, cover);
+		cover = NULL;
+	}
+	
+	raise_cdimages (cdwidget->cdcovers);
+}
+
+/**
+ * 
+ * free_album:
+ * 
+ * Destroy an album struct once no longer needed.
+ * 
+ */ 
+static void free_album (Album_Item *album)
+{
+	if (album != NULL)
+	{
+		if (album->tracks)
+		{
+			g_list_free (album->tracks);
+		}
+		
+		g_free (album->albumname);
+		g_free (album->artist);
+		
+		if (album->albumart)
+			gdk_pixbuf_unref (album->albumart);
+	}
+}
+
+/**
+ * coverart_init_display:
+ *
+ * Initialise the boxes and canvases of the coverart_display.
+ *  
+ */
+void coverart_init_display ()
+{
+	/* Alway initialise these buttons whether the coverart is displayed or not as these are the
+	 * up/down buttons on the display window and should be properly initialised
+	 */
+	GtkWidget *upbutton = gtkpod_xml_get_widget (main_window_xml, "cover_up_button");
+	GtkWidget *downbutton = gtkpod_xml_get_widget (main_window_xml, "cover_down_button");
+	GtkWidget *lbutton = gtkpod_xml_get_widget (main_window_xml, "cover_display_leftbutton");
+	GtkWidget *rbutton = gtkpod_xml_get_widget (main_window_xml, "cover_display_rightbutton");
+	GtkWidget *slider = gtkpod_xml_get_widget (main_window_xml, "cover_display_scaler");
+		
+	/* show/hide coverart display -- default to show */
+	if (prefs_get_int (KEY_DISPLAY_COVERART))
+	{
+		gtk_widget_hide (upbutton);
+		gtk_widget_show (downbutton);
+		gtk_widget_show (lbutton);
+		gtk_widget_show (rbutton);
+		gtk_widget_show (slider);
+		if (cdwidget != NULL)
+			gtk_widget_show_all (cdwidget->contentpanel);
+	}
+	else
+	{
+		gtk_widget_show (upbutton);
+		gtk_widget_hide (downbutton);
+		gtk_widget_hide (lbutton);
+		gtk_widget_hide (rbutton);
+		gtk_widget_hide (slider);
+		if (cdwidget != NULL)
+			gtk_widget_hide_all (cdwidget->contentpanel);
+		return;
+	}
+			
+	cdwidget = g_new0(CD_Widget, 1);
+	
+	cdwidget->canvasbox = gtkpod_xml_get_widget (main_window_xml, "cover_display_canvasbox"); 
+	cdwidget->contentpanel = gtkpod_xml_get_widget (main_window_xml, "cover_display_window");
+	cdwidget->controlbox = gtkpod_xml_get_widget (main_window_xml, "cover_display_controlbox");
+	cdwidget->leftbutton = GTK_BUTTON (gtkpod_xml_get_widget (main_window_xml, "cover_display_leftbutton"));
+	cdwidget->rightbutton = GTK_BUTTON (gtkpod_xml_get_widget (main_window_xml, "cover_display_rightbutton"));
+	cdwidget->cdslider = GTK_HSCALE (gtkpod_xml_get_widget (main_window_xml, "cover_display_scaler"));
+  
+	g_return_if_fail (cdwidget->contentpanel);
+	g_return_if_fail (cdwidget->canvasbox);
+	g_return_if_fail (cdwidget->controlbox);
+	g_return_if_fail (cdwidget->leftbutton);
+	g_return_if_fail (cdwidget->rightbutton);
+	g_return_if_fail (cdwidget->cdslider);
+  
+  /* Initialise the album has backing store */
+  album_hash = g_hash_table_new_full ( g_str_hash,
+  																																			g_str_equal,
+  																																			(GDestroyNotify) g_free,
+  																																			(GDestroyNotify) free_album);
+	album_key_list = NULL;
+  
+	set_display_dimensions ();
+	
+	prepare_canvas ();
+	
+	gtk_box_pack_start_defaults (GTK_BOX(cdwidget->canvasbox), GTK_WIDGET(cdwidget->canvas));
+			
+	contentpanel_signal_id = g_signal_connect (G_OBJECT(cdwidget->contentpanel), "scroll-event",
+					G_CALLBACK(on_contentpanel_scroll_wheel_turned), NULL);
+					
+	lbutton_signal_id = g_signal_connect (G_OBJECT(cdwidget->leftbutton), "clicked",
+		      G_CALLBACK(on_cover_display_button_clicked), NULL);
+		      
+	rbutton_signal_id = g_signal_connect (G_OBJECT(cdwidget->rightbutton), "clicked",
+		      G_CALLBACK(on_cover_display_button_clicked), NULL);	
+	
+	slide_signal_id = g_signal_connect (G_OBJECT(cdwidget->cdslider), "value-changed",
+		      G_CALLBACK(on_cover_display_slider_value_changed), NULL);
+	
+	window_signal_id = g_signal_connect (gtkpod_window, "configure_event", 
+  		G_CALLBACK (gtkpod_window_configure_callback), NULL);
+  
+  gtk_widget_show_all (cdwidget->contentpanel);
+  		
+	coverart_block_change (FALSE);
+}
+
+/**
+ * coverart_select_cover
+ * 
+ * When a track / album is selected, the artwork cover
+ * is selected in the display
+ * 
+ * @track: chosen track
+ * 
+ */
+void coverart_select_cover (Track *track)
+{
+  gint displaytotal, index;
+	
+	/* Only select covers if the display is visible */
+	if (! prefs_get_int (KEY_DISPLAY_COVERART) || cdwidget == NULL)
+		return;
+		
+	/* Only select covers if fire display change is enabled */
+	if (cdwidget->block_display_change)
+		return;
+			
+	displaytotal = g_list_length(album_key_list);
+  if (displaytotal <= 0)
+  	return;
+  	
+  gchar *trk_key;
+  trk_key = g_strconcat (track->artist, "_", track->album, NULL);
+ 	
+ 	/* Determine the index of the found track */
+ 	GList *key = g_list_find_custom (album_key_list, trk_key, (GCompareFunc) compare_album_keys);
+ 	g_return_if_fail (key);
+ 	index = g_list_position (album_key_list, key);
+ 	g_free (trk_key);
+ 	 
+ 	/* Use the index value for the main image index */
+  cdwidget->first_imgindex = index - IMG_MAIN;
+  if (cdwidget->first_imgindex < 0)
+  	cdwidget->first_imgindex = 0;
+  else if((cdwidget->first_imgindex + IMG_TOTAL) >= displaytotal)
+  	cdwidget->first_imgindex = displaytotal - IMG_TOTAL;
+      
+  set_covers (FALSE);
+  
+  /* Set the index value of the slider but avoid causing an infinite
+   * cover selection by blocking the event
+   */
+  g_signal_handler_block (cdwidget->cdslider, slide_signal_id);
+	gtk_range_set_value (GTK_RANGE (cdwidget->cdslider), index);
+	g_signal_handler_unblock (cdwidget->cdslider, slide_signal_id);
+ }
+
+/**
+ * compare_album_keys:
+ * 
+ * Comparison function for comparing keys in
+ * the key list to sort them into alphabetical order.
+ * Could use g_ascii_strcasecmp directly but the NULL
+ * strings cause assertion errors.
+ * 
+ * @a: first album key to compare
+ * @b: second album key to compare
+ * 
+ */
+ static gint compare_album_keys (gchar *a, gchar *b)
+ {
+ 	if (a == NULL) return -1;
+ 	if (b == NULL) return -1;
+ 	
+ 	return g_ascii_strcasecmp (a, b);	
+ 	
+ }
+ 
+/**
+ * coverart_sort_images:
+ * 
+ * When the alphabetize function is initiated this will
+ * sort the covers in the same way. Used at any point to
+ * sort the covers BUT must be called after an initial coverart_set_images
+ * as the latter initialises the album_key_list list 
+ * 
+ * @order: order type
+ * 
+ */
+static void coverart_sort_images (GtkSortType order)
+{
+ 	if (order == SORT_NONE)
+ 	{
+ 		/* No sorting means original order so this should have been called after a coverart_set_images (TRUE)
+ 		 * when the TRUE means the tracks were freshly established from the playlist and the hash and key_list
+ 		 * recreated.
+ 		 */
+ 		return;
+ 	}
+ 	else
+ 	{
+ 		album_key_list = g_list_sort (album_key_list, (GCompareFunc) compare_album_keys);
+ 	}
+ 	
+ 	if (order == GTK_SORT_DESCENDING)
+ 	{
+ 		album_key_list = g_list_reverse (album_key_list);		
+ 	}
+ }
+
+/**
+ * 
+ * Convenience function that will only allow set images to be
+ * called if the track that was affected was in the list of displaytracks
+ * used by the coverart display. So if a whole album is deleted then this
+ * will only reset the display if the first track in the album is deleted.
+ * 
+ * @track: affected track
+ */
+void coverart_track_changed (Track *track, gint signal)
+{
+	GList *keypos;
+	gchar *trk_key;
+	Album_Item *album;
+	gint index;
+	gboolean findremove;
+	/*
+	 * Scenarios:
+	 * a) A track is being deleted that is not in the display
+	 * b) A track is being deleted that is in the display
+	 * c) A track has changed is some way so maybe the coverart
+	 * d) A track has been created and its artist and album are already in the displaylist
+	 * e) A track has been created and its artist and album are not in the displaylist
+	 */
+
+	trk_key = g_strconcat (track->artist, "_", track->album, NULL); 	
+ 	/* Determine the index of the found album */
+ 	keypos = g_list_find_custom (album_key_list, trk_key, (GCompareFunc) compare_album_keys);
+	
+	switch (signal)
+	{
+		case COVERART_REMOVE_SIGNAL:				
+			g_return_if_fail (keypos);
+			g_free (trk_key);
+			
+			/* Reassign trk_key to the ky from the list */
+ 			trk_key = keypos->data;
+ 			index = g_list_position (album_key_list, keypos);
+ 	
+			album = g_hash_table_lookup (album_hash, trk_key);
+			
+ 			/* Remove the track from the album item */
+ 			remove_track_from_album (album, track, trk_key, index, keypos);
+ 			 
+ 			/* Check if album is being displayed by checking the index */
+			if (index >= cdwidget->first_imgindex && index <= (cdwidget->first_imgindex + IMG_TOTAL))
+ 			{	
+				/* reset the covers and should reset to original position but without the index */
+				set_covers (FALSE);
+ 			}
+ 			
+ 			/* Size of key list may have changed so reset the slider 
+ 			 * to appropriate range and index.
+ 			 */
+ 			set_slider_range (index - IMG_MAIN);
+			break;
+		case COVERART_CREATE_SIGNAL:
+			/* Check whether an album item has already been created in connection
+			 * with the track's artist and album
+			 */
+			album = g_hash_table_lookup (album_hash, trk_key);
+			if (album == NULL)
+			{
+				/* Album item not found so create a new one and populate */
+				album = g_new0 (Album_Item, 1);
+				album->albumart = NULL;
+				album->albumname = g_strdup (track->album);
+				album->artist = g_strdup (track->artist);
+				album->tracks = NULL;
+				album->tracks = g_list_append (album->tracks, track);
+				
+				/* Insert the new Album Item into the hash */
+				g_hash_table_insert (album_hash, trk_key, album);
+				
+				/* Add the key to the list for sorting and other functions */
+				/* But first ... */
+				/* Remove all null tracks before any sorting should take place */	
+ 				album_key_list = g_list_remove_all (album_key_list, NULL);
+ 			
+				if (prefs_get_int("st_sort") == SORT_ASCENDING)
+				{
+					album_key_list = g_list_insert_sorted (album_key_list, trk_key, (GCompareFunc) compare_album_keys);
+				}
+				else if (prefs_get_int("st_sort") == SORT_DESCENDING)
+				{
+					/* Already in descending order so reverse into ascending order */
+					album_key_list = g_list_reverse (album_key_list);
+					/* Insert the track */
+					album_key_list = g_list_insert_sorted (album_key_list, trk_key, (GCompareFunc) compare_album_keys);
+					/* Reverse again */
+					album_key_list = g_list_reverse (album_key_list);
+				}
+				else
+				{
+					/* NO SORT */
+					album_key_list = g_list_append (album_key_list, trk_key);
+				}
+			
+				/* Readd in the null tracks */
+				/* Add 4 null tracks to the end of the track list for padding */
+				gint i;
+				for (i = 0; i < IMG_MAIN; ++i)
+					album_key_list = g_list_append (album_key_list, NULL);
+	
+				/* Add 4 null tracks to the start of the track list for padding */
+				for (i = 0; i < IMG_MAIN; ++i)
+					album_key_list = g_list_prepend (album_key_list, NULL);
+		
+				set_covers (FALSE);
+			}
+			else
+			{
+				/* Album Item found in the album hash so append the track to
+				 * the end of the track list
+				 */
+				 album->tracks = g_list_append (album->tracks, track);
+			}
+			
+			/* Set the slider to the newly inserted track.
+			 * In fact sets image_index to 4 albums previous
+			 * to newly inserted album to ensure this album is
+			 * the main middle one.
+			 */
+			keypos = g_list_find_custom (album_key_list, trk_key, (GCompareFunc) compare_album_keys);
+			index = g_list_position (album_key_list, keypos);
+ 			set_slider_range (index - IMG_MAIN);
+ 				
+			break;
+		case COVERART_CHANGE_SIGNAL:
+			/* A track is declaring itself as changed so what to do? */
+			findremove = FALSE;
+			if (keypos == NULL)
+			{
+				/* The track could not be found according to the key!
+				 * The ONLY way this could happen is if the user changed the
+				 * artist or album of the track. Well it should be rare but the only
+				 * way to remove it from its "old" album item is to search each one
+				 */
+				 findremove = TRUE;
+			}
+			else
+			{
+			/* Track has a valid key so can get the album back.
+			 * Either has happened:
+			 * a) Artist/Album key has been changed so the track is being moved to another existing album
+			 * b) Some other change has occurred that is irrelevant to this code.
+			 */
+			 
+			 /* To determine if a) is the case need to determine whether track exists in the 
+			  * album items track list. If it does then b) is true and nothing more is required.
+			  */
+			  album = g_hash_table_lookup (album_hash, trk_key);
+			  g_return_if_fail (album);
+			  
+			  index = g_list_index (album->tracks, track);
+			  if (index != -1)
+			  {
+			  	/* Track exists in the album list so ignore the change and return */
+			  	return;
+			  }
+			  else
+			  {
+			  	/* Track does not exist in the album list so the artist/album key has definitely changed */
+			  	findremove = TRUE;
+			  }
+			}
+			
+			if (findremove)
+			{
+				/* It has been determined that the track has had its key changed
+				 * and thus a search must be performed to find the "original" album
+				 * that the track belonged to, remove it then add the track to the new
+				 * album.
+				 */
+			  GList *klist;
+				gchar *key;
+				klist = g_list_first (album_key_list);
+				while (klist != NULL)
+				{
+					key = (gchar *) klist->data;
+					index = g_list_index (album_key_list, key); 
+					if (key != NULL)
+					{
+						album = g_hash_table_lookup (album_hash, key);
+						
+						gint album_trk_index;
+						album_trk_index = g_list_index (album->tracks, track);
+						if (album_trk_index != -1)
+						{
+							/* The track is in this album so remove it in preparation for readding
+						 	* under the new album key
+						 	*/
+					 		remove_track_from_album (album, track, key, index, klist);
+ 							set_covers(FALSE);
+					 		/* Found the album and removed so no need to continue the loop */
+					 		break;
+						}
+					}
+					klist = klist->next;
+				}
+				
+				/* Create a new album item or find existing album to house the "brand new" track */
+				coverart_track_changed (track, COVERART_CREATE_SIGNAL);
+			}
+			
+	}
+}
+
+/**
+ * 
+ * remove_track_from_album:
+ * 
+ * Removes track from an album item and removes the latter
+ * if it no longer has any tracks in it.
+ * 
+ * @album: album to be checked for removal.
+ * @track: track to be removed from the Album_Item
+ * @key: string concatentation of the artist_album of track. Key for hash
+ * @index: position of the key in the album key list
+ * @keylistitem: the actual GList item in the album key list
+ */
+ static void remove_track_from_album (Album_Item *album, Track *track, gchar *key, gint index, GList *keylistitem)
+ {
+	/* Use the index value to determine if the cover is being displayed */
+ 	if (index >= cdwidget->first_imgindex && index <= (cdwidget->first_imgindex + IMG_TOTAL))
+ 	{
+ 		/* Cover is being displayed so need to do some clearing up */
+		coverart_clear_images ();
+ 	}
+ 			
+ 	album->tracks = g_list_remove (album->tracks, track);
+ 	if (g_list_length (album->tracks) == 0)
+ 	{
+ 		/* No more tracks related to this album item so delete it */
+ 		gboolean delstatus = g_hash_table_remove (album_hash, key);
+ 		if (! delstatus)
+ 			gtkpod_warning (_("Failed to remove the album from the album hash store."));
+ 		/*else
+ 			printf("Successfully removed album\n");
+ 		*/
+ 		album_key_list = g_list_remove_link (album_key_list, keylistitem);
+ 	
+ 		if (index < (cdwidget->first_imgindex + IMG_MAIN) && index > IMG_MAIN)
+ 		{
+ 			/* index of track is less than visible cover's indexes so subtract 1 from
+ 			 * first img index. Will mean that when deleteing album item then
+ 		 	 * set covers will be called at the correct position.
+ 		 	 * 
+ 		 	 * However, index must be greater than IMG_MAIN else a NULL track will
+ 		 	 * become the IMG_MAIN tracks displayed.
+ 		 	 */
+ 			cdwidget->first_imgindex--;
+ 		}
+ 	}
+ }
+
+/**
+ * coverart_set_images:
+ *
+ * Takes a list of tracks and sets the 9 image cover display.
+ *
+ * @clear_track_list: flag indicating whether to clear the displaytracks list or not
+ *  
+ */
+void coverart_set_images (gboolean clear_track_list)
+{
+	gint i;
+	GList *tracks;
+	Track *track;
+	Album_Item *album;
+	Playlist *playlist;
+
+	if ( ! prefs_get_int (KEY_DISPLAY_COVERART))
+		return;
+		
+	/* initialize display if not already done */
+	if (!cdwidget)  coverart_init_display ();
+
+	/* Ensure that the setting of images hasnt been turned off
+	 * due to being in the middle of a selection operation
+	 */
+	if (cdwidget->block_display_change)
+		return;
+
+	/* Reset the display back to black, black and more black */
+	coverart_clear_images ();
+	
+	if (clear_track_list)
+	{
+		/* Find the selected playlist */
+		playlist = pm_get_selected_playlist ();
+		if (playlist == NULL)
+			return;
+		
+		tracks = playlist->members;
+		/* Free up the hash table and the key list */
+		g_hash_table_foreach_remove(album_hash, (GHRFunc) gtk_true, NULL);
+				
+		g_list_free (album_key_list);
+    
+    album_key_list = NULL;;
+    
+		if (tracks == NULL)
+			return;
+		
+		gchar *album_key;
+		while (tracks)
+		{
+			track = tracks->data;
+			
+			album_key = g_strconcat (track->artist, "_", track->album, NULL);
+			/* Check whether an album item has already been created in connection
+			 * with the track's artist and album
+			 */
+			album = g_hash_table_lookup (album_hash, album_key);
+			if (album == NULL)
+			{
+				/* Album item not found so create a new one and populate */
+				album = g_new0 (Album_Item, 1);
+				album->albumart = NULL;
+				album->albumname = g_strdup (track->album);
+				album->artist = g_strdup (track->artist);
+				album->tracks = NULL;
+				album->tracks = g_list_append (album->tracks, track);
+				
+				/* Insert the new Album Item into the hash */
+				g_hash_table_insert (album_hash, album_key, album);
+				/* Add the key to the list for sorting and other functions */
+				album_key_list = g_list_append (album_key_list, g_strdup(album_key));
+			}
+			else
+			{
+				/* Album Item found in the album hash so append the track to
+				 * the end of the track list
+				 */
+				 album->tracks = g_list_append (album->tracks, track);
+			}
+			
+			tracks = tracks->next;
+		}
+		
+		cdwidget->first_imgindex = 0;
+	}
+		
+	/* Remove all null tracks before any sorting should take place */	
+ 	album_key_list = g_list_remove_all (album_key_list, NULL);
+ 		
+	/* Sort the tracks to the order set in the preference */
+	coverart_sort_images (prefs_get_int("st_sort"));
+	
+	/* Add 4 null tracks to the end of the track list for padding */
+	for (i = 0; i < IMG_MAIN; ++i)
+		album_key_list = g_list_append (album_key_list, NULL);
+	
+	/* Add 4 null tracks to the start of the track list for padding */
+	for (i = 0; i < IMG_MAIN; ++i)
+		album_key_list = g_list_prepend (album_key_list, NULL);
+		
+	set_covers (FALSE);
+	
+	set_slider_range (cdwidget->first_imgindex);
+	
+	/*
+	printf("######### ORIGINAL LINE UP ########\n");
+	debug_albums ();
+	printf("######### END OF ORIGINAL LINE UP #######\n");
+	*/
+}
+
+/**
+ * coverart_block_change:
+ *
+ * Select covers events can be switched off when automatic
+ * selections of tracks are taking place.
+ *
+ * @val: indicating whether to block or unblock select cover events
+ *  
+ */
+void coverart_block_change (gboolean val)
+{
+  if (GTK_WIDGET_REALIZED(gtkpod_window))
+  {
+      if (val)
+      {
+	  GdkCursor *cursor = gdk_cursor_new (GDK_WATCH);
+	  gdk_window_set_cursor (gtkpod_window->window, cursor);
+	  gdk_cursor_unref (cursor);
+      }
+      else
+	  gdk_window_set_cursor (gtkpod_window->window, NULL);
+  }
+
+  if (cdwidget != NULL)
+      cdwidget->block_display_change = val;
+}
+
+/**
+ * coverart_set_cover_from_file:
+ *
+ * Add a cover to the displayed track by setting it from a
+ * picture file.
+ *
+ */
+void coverart_set_cover_from_file ()
+{
+	gchar *filename;
+	Track *track;
+	Cover_Item *cover;
+	GList *tracks;
+	
+  filename = fileselection_get_cover_filename ();
+
+	if (filename)
+  {
+  	cover = g_ptr_array_index(cdwidget->cdcovers, IMG_MAIN);
+		tracks = cover->album->tracks;
+		
+		while (tracks)
+		{
+			track = tracks->data;
+		
+ 			if (gp_track_set_thumbnails (track, filename))
+ 				data_changed (track->itdb);
+ 				
+ 			tracks = tracks->next;
+		}
+		/* Nullify so that the album art is picked up from the tracks again */
+		gdk_pixbuf_unref (cover->album->albumart);
+		cover->album->albumart = NULL;
+  }
+    
+  g_free (filename);
+  
+  set_covers (FALSE);
+}
+
+/**
+ * coverart_set_cover_from_web:
+ *
+ * Find a cover on tinternet and apply it as the cover
+ * of the main displayed album
+ *
+ */
+void coverart_set_cover_from_web ()
+{
+	GList *tracks;
+	Cover_Item *cover;
+	
+	cover = g_ptr_array_index(cdwidget->cdcovers, IMG_MAIN);
+	tracks = cover->album->tracks;
+	
+	/*
+	int i;
+	for (i = 0; i < g_list_length (tracks); ++i)
+	{
+		Track *trk = g_list_nth_data(tracks, i);
+		printf ("Track: %s-%s\n", trk->artist, trk->album);
+	}
+	*/
+	
+	/* Nullify and free the album art pixbuf so that it will pick it up
+	 * from the art assigned to the tracks
+	 */
+	 if (cover->album->albumart)
+	 {
+		gdk_pixbuf_unref (cover->album->albumart);
+		cover->album->albumart = NULL;
+	 }
+	 
+	on_coverart_context_menu_click (tracks);
+	
+	set_covers (FALSE);
+}

Copied: gtkpod/trunk/src/display_coverart.h (from rev 193, gtkpod/branches/upstream/current/src/display_coverart.h)
===================================================================
--- gtkpod/trunk/src/display_coverart.h	                        (rev 0)
+++ gtkpod/trunk/src/display_coverart.h	2007-06-27 21:27:12 UTC (rev 194)
@@ -0,0 +1,67 @@
+#ifndef __DISPLAY_COVERART_H__
+#define __DISPLAY_COVERART_H__
+
+#include <gtk/gtk.h>
+#include <libgnomecanvas/libgnomecanvas.h>
+
+#define IMG_MAIN 4
+#define IMG_NEXT 1
+#define IMG_PREV 2
+#define IMG_TOTAL 9
+#define BORDER 10
+
+#define COVERART_REMOVE_SIGNAL 1
+#define COVERART_CREATE_SIGNAL 2
+#define COVERART_CHANGE_SIGNAL 3
+
+typedef struct {
+	GList *tracks;
+	gchar *albumname;
+	gchar *artist;
+	GdkPixbuf *albumart;
+} Album_Item;
+
+typedef struct {
+	Album_Item *album;
+	gdouble img_x;
+	gdouble img_y;
+	gdouble img_width;
+	gdouble img_height;
+	GnomeCanvasItem *cdcvrgrp;
+	GnomeCanvasItem *cdimage;
+	GnomeCanvasItem *cdreflection;
+	GnomeCanvasItem *highlight;
+} Cover_Item;
+
+typedef struct {
+	GtkWidget *contentpanel;
+	GtkWidget *canvasbox;
+	GtkWidget *controlbox;
+	GnomeCanvas *canvas;
+	GnomeCanvasItem *bground;
+	GnomeCanvasText *cvrtext;
+	GtkButton *leftbutton;
+	GtkHScale *cdslider;
+	GtkButton *rightbutton;
+	GPtrArray *cdcovers;
+	gint first_imgindex;
+	gboolean block_display_change;
+} CD_Widget;
+
+extern const gchar *DISPLAY_COVER_SHOW;
+
+void coverart_display_big_artwork ();
+GList *coverart_get_displayed_tracks (void);
+GdkPixbuf *coverart_get_default_track_thumb (void);
+void coverart_init (gchar *progpath);
+void force_update_covers ();
+void coverart_select_cover (Itdb_Track *track);
+void coverart_set_images (gboolean clear_track_list);
+void coverart_track_changed (Track *track, gint signal);
+void coverart_clear_images ();
+void coverart_block_change (gboolean val);
+void coverart_init_display ();
+GdkPixbuf *coverart_get_track_thumb (Track *track, Itdb_Device *device);
+void coverart_set_cover_from_file ();
+void coverart_set_cover_from_web ();
+#endif

Modified: gtkpod/trunk/src/display_itdb.c
===================================================================
--- gtkpod/trunk/src/display_itdb.c	2007-06-27 20:59:02 UTC (rev 193)
+++ gtkpod/trunk/src/display_itdb.c	2007-06-27 21:27:12 UTC (rev 194)
@@ -1,6 +1,5 @@
-/* Time-stamp: <2006-09-21 23:56:52 jcs>
-|
-|  Copyright (C) 2002-2005 Jorg Schuler <jcsjcs at users sourceforge net>
+/*
+|  Copyright (C) 2002-2007 Jorg Schuler <jcsjcs at users sourceforge net>
 |  Part of the gtkpod project.
 | 
 |  URL: http://www.gtkpod.org/
@@ -24,7 +23,7 @@
 |
 |  This product is not supported/written/published by Apple!
 |
-|  $Id: display_itdb.c,v 1.58 2006/09/21 15:03:13 jcsjcs Exp $
+|  $Id: display_itdb.c 1570 2007-06-21 15:27:11Z jcsjcs $
 */
 
 #ifdef HAVE_CONFIG_H
@@ -38,8 +37,9 @@
 #include "details.h"
 #include "display_itdb.h"
 #include "display.h"
-#include "md5.h"
+#include "sha1.h"
 #include "file.h"
+#include "file_convert.h"
 #include "misc.h"
 #include "misc_track.h"
 #include "info.h"
@@ -63,7 +63,8 @@
 {
     if (eitdb)
     {
-	md5_free_eitdb (eitdb);
+	sha1_free_eitdb (eitdb);
+	gp_itdb_pc_path_hash_destroy (eitdb);
 	g_free (eitdb);
     }
 }
@@ -106,7 +107,7 @@
 	g_free (etrack->year_str);
 	g_free (etrack->pc_path_utf8);
 	g_free (etrack->hostname);
-	g_free (etrack->md5_hash);
+	g_free (etrack->sha1_hash);
 	g_free (etrack->charset);
 	g_free (etrack);
     }
@@ -124,11 +125,14 @@
 	etr_dup->year_str = g_strdup (etr->year_str);
 	etr_dup->pc_path_locale = g_strdup (etr->pc_path_locale);
 	etr_dup->pc_path_utf8 = g_strdup (etr->pc_path_utf8);
+	etr_dup->converted_file = g_strdup (etr->converted_file);
 	etr_dup->thumb_path_locale = g_strdup (etr->thumb_path_locale);
 	etr_dup->thumb_path_utf8 = g_strdup (etr->thumb_path_utf8);
 	etr_dup->hostname = g_strdup (etr->hostname);
-	etr_dup->md5_hash = g_strdup (etr->md5_hash);
+	etr_dup->sha1_hash = g_strdup (etr->sha1_hash);
 	etr_dup->charset = g_strdup (etr->charset);
+	/* clear the pc_path_hashed flag */
+	etr_dup->pc_path_hashed = FALSE;
     }
     return etr_dup;
 }
@@ -150,6 +154,10 @@
     {
 	space_set_ipod_itdb (NULL);
     }
+
+    /* cancel all pending conversions */
+    file_convert_cancel_itdb (itdb);
+
     itdb_free (itdb);
 }
 
@@ -169,12 +177,13 @@
 	    (ItdbUserDataDuplicateFunc)gp_itdb_extra_duplicate;
 	eitdb->data_changed = FALSE;
 	eitdb->itdb_imported = FALSE;
+	gp_itdb_pc_path_hash_init (eitdb);
     }
 }
 
 
 /* Validate a complete @itdb (including tracks and playlists),
- * i.e. add the Extra*Data and validate the track entries */
+ * i.e. add the Extra*Data */
 void gp_itdb_add_extra_full (iTunesDB *itdb)
 {
     GList *gl;
@@ -262,7 +271,7 @@
 Track *gp_track_add (iTunesDB *itdb, Track *track)
 {
     Track *result=NULL;
-    Track *oldtrack = md5_track_exists_insert (itdb, track);
+    Track *oldtrack = sha1_track_exists_insert (itdb, track);
 
     if(oldtrack)
     {
@@ -274,12 +283,16 @@
     {
 	/* Make sure all strings are initialised -- that way we don't
 	   have to worry about it when we are handling the strings */
-	/* exception: md5_hash, hostname, charset: these may be NULL. */
+	/* exception: sha1_hash, hostname, charset: these may be NULL. */
 	gp_track_validate_entries (track);
 	itdb_track_add (itdb, track, -1);
+	/* add to filename hash */
+	gp_itdb_pc_path_hash_add_track (track);
+	/* add to background conversion if necessary */
+	file_convert_add_track (track);
 	result = track;
+	data_changed (itdb);
     }
-    data_changed (itdb);
     return result;
 }
 
@@ -290,10 +303,12 @@
    playlist -- see gp_playlist_remove_track for details */
 void gp_track_remove (Track *track)
 {
-    /* currently only the details window may be accessing the tracks */
-    details_remove_track (track);
-    /* remove from database */
-    itdb_track_remove (track);
+    /* call gp_track_unlink() and itdb_track_free() instead of
+       itdb_track_remove() so we don't have to maintain two remove
+       functions separately. If something needs to be done before
+       removing the track do it in gp_track_unlink */
+    gp_track_unlink (track);
+    itdb_track_free (track);
 }
 
 
@@ -303,8 +318,14 @@
    playlist -- see gp_playlist_remove_track for details */
 void gp_track_unlink (Track *track)
 {
-    /* currently only the details window may be accessing the tracks */
+    /* the details window may be accessing the tracks */
     details_remove_track (track);
+    /* cancel pending conversions */
+    file_convert_cancel_track (track);
+    /* remove from SHA1 hash */
+    sha1_track_remove (track);
+    /* remove from pc_path_hash */
+    gp_itdb_pc_path_hash_remove_track (track);
     /* remove from database */
     itdb_track_unlink (track);
 }
@@ -441,7 +462,6 @@
     Playlist *old_pl, *mpl;
     GList *old_link;
     gchar *old_pl_name = NULL;
-    GtkTreePath *path;
     gint pos = -1; /* default: add to the end */
 
     g_return_if_fail (old_itdb);
@@ -464,20 +484,11 @@
     }
 
     /* get position of @old_itdb */
-    mpl = itdb_playlist_mpl (old_itdb);
-    g_return_if_fail (mpl);
-    path = pm_get_path (mpl);
-    if (path)
-    {
-	gint *indices = gtk_tree_path_get_indices (path);
-	if (indices)
-	    pos = indices[0];
-	gtk_tree_path_free (path);
-    }
+    pos = pm_get_position_for_itdb (old_itdb);
 
     /* remove @old_itdb (all playlists are removed if the MPL is
        removed and add @new_itdb at its place */
-    pm_remove_playlist (mpl, FALSE);
+    pm_remove_playlist (itdb_playlist_mpl (old_itdb), FALSE);
 
     /* replace old_itdb with new_itdb */
     new_eitdb->itdbs_head = itdbs_head;
@@ -597,7 +608,7 @@
    No action is taken if "track" is not in the playlist.
    If "plitem" == NULL, remove from master playlist.
    If the track is removed from the MPL, it's also removed
-   from memory completely (i.e. from the tracklist and md5 hash).
+   from memory completely (i.e. from the tracklist and sha1 hash).
    Depending on @deleteaction, the track is either marked for deletion
    on the ipod/hard disk or just removed from the database
  */
@@ -617,10 +628,8 @@
     case DELETE_ACTION_IPOD:
     case DELETE_ACTION_LOCAL:
     case DELETE_ACTION_DATABASE:
-	/* remove from MPL in these cases (unless we are removing
-	   podcasts) */
-	if (!(plitem && itdb_playlist_is_podcasts (plitem)))
-	    plitem = NULL;
+	/* remove from MPL in these cases */
+	plitem = NULL;
 	break;
     case DELETE_ACTION_PLAYLIST:
 	/* cannot remove from MPL */
@@ -641,6 +650,8 @@
     /* remove track from playlist */
     itdb_playlist_remove_track (plitem, track);
 
+#if 0
+    /* podcasts are no longer treated differently from other playlists */
     /* if we removed a podcasts, remove it from memory as well, unless
        it's present in the MPL (this happens if this podcast was on
        the iPod as podcast as well as standard track) */
@@ -662,6 +673,7 @@
 	    gp_track_set_flags_default (track);
 	}
     }
+#endif
 
     if (itdb_playlist_is_mpl (plitem))
     { /* if it's the MPL, we remove the track permanently */
@@ -685,7 +697,6 @@
 
     if (remove_track)
     {
-	md5_track_remove (track);
 	if (itdb->usertype & GP_ITDB_TYPE_IPOD)
 	{
 	    switch (deleteaction)
@@ -766,7 +777,7 @@
 
 /* Make sure all strings are initialised -- that way we don't
    have to worry about it when we are handling the strings.
-   exception: md5_hash, hostname and charset: these may be NULL. */
+   exception: sha1_hash, hostname and charset: these may be NULL. */
 void gp_track_validate_entries (Track *track)
 {
     ExtraTrackData *etr;
@@ -789,6 +800,16 @@
     if (!track->podcastrss)      track->podcastrss = g_strdup ("");
     if (!track->subtitle)        track->subtitle = g_strdup ("");
     if (!track->ipod_path)       track->ipod_path = g_strdup ("");
+    if (!track->tvshow)          track->tvshow = g_strdup("");
+    if (!track->tvepisode)       track->tvepisode = g_strdup("");
+    if (!track->tvnetwork)       track->tvnetwork = g_strdup("");
+    if (!track->albumartist)     track->albumartist = g_strdup ("");
+    if (!track->sort_artist)     track->sort_artist = g_strdup ("");
+    if (!track->sort_title)      track->sort_title = g_strdup ("");
+    if (!track->sort_album)      track->sort_album = g_strdup ("");
+    if (!track->sort_albumartist)track->sort_albumartist = g_strdup ("");
+    if (!track->sort_composer)   track->sort_composer = g_strdup ("");
+    if (!track->sort_tvshow)     track->sort_tvshow = g_strdup ("");
     if (!etr->pc_path_utf8)      etr->pc_path_utf8 = g_strdup ("");
     if (!etr->pc_path_locale)    etr->pc_path_locale = g_strdup ("");
     if (!etr->thumb_path_utf8)   etr->thumb_path_utf8 = g_strdup ("");
@@ -826,32 +847,37 @@
     {
 	/* databases have not been set up previously -- take care of
 	   this */
-	gchar *mountpoint, *filename;
+#ifndef HAVE_GNOME_VFS
+	gchar *mountpoint;
+#endif
+	gchar *filename;
 
-	/* 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);
-
 	/* 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);
+	prefs_set_int ("itdb_0_type", GP_ITDB_TYPE_LOCAL);
+	prefs_set_string ("itdb_0_name", _("Local"));
+	prefs_set_string ("itdb_0_filename", filename);
 	g_free (filename);
 
 	/* Podcasts database */
 	filename = g_build_filename (cfgdir, "podcasts.itdb", NULL);
-	prefs_set_int ("itdb_2_type",
+	prefs_set_int ("itdb_1_type",
 		       GP_ITDB_TYPE_PODCASTS|GP_ITDB_TYPE_LOCAL);
-	prefs_set_string ("itdb_2_name", _("Podcasts"));
+	prefs_set_string ("itdb_1_name", _("Podcasts"));
+	prefs_set_string ("itdb_1_filename", filename);
+	g_free (filename);
+
+#ifndef HAVE_GNOME_VFS
+	/* iPod database -- only set up if autodetection is not active */
+	mountpoint = prefs_get_string ("initial_mountpoint");
+	filename = g_build_filename (cfgdir, "iTunesDB", NULL);
+	prefs_set_int ("itdb_2_type", GP_ITDB_TYPE_IPOD);
+	prefs_set_string ("itdb_2_name", _("iPod"));
 	prefs_set_string ("itdb_2_filename", filename);
+	prefs_set_string ("itdb_2_mountpoint", mountpoint);
+	g_free (mountpoint);
 	g_free (filename);
+#endif
     }
 
 
@@ -1016,15 +1042,15 @@
 }
 
 
-/* Increase playcount of filename <file> by <num>. If md5 is activated,
-   use md5 to find the track. Otherwise use the filename. If @md5 is
+/* Increase playcount of filename <file> by <num>. If sha1 is activated,
+   use sha1 to find the track. Otherwise use the filename. If @sha1 is
    set, this value is used directly to look up the track in the
    database (instead of calculating it from the file).
 
    Return value:
    TRUE: OK (playcount increased in GP_ITDB_TYPE_IPOD)
    FALSE: file could not be found in the GP_ITDB_TYPE_IPOD */
-gboolean gp_increase_playcount (gchar *md5, gchar *file, gint num)
+gboolean gp_increase_playcount (gchar *sha1, gchar *file, gint num)
 {
     gboolean result = FALSE;
     Track *track = NULL;
@@ -1037,8 +1063,8 @@
 	iTunesDB *itdb = gl->data;
 	g_return_val_if_fail (itdb, FALSE);
 
-	if (md5) track = md5_md5_exists (itdb, md5);
-	else     track = md5_file_exists (itdb, file, TRUE);
+	if (sha1) track = sha1_sha1_exists (itdb, sha1);
+	else     track = sha1_file_exists (itdb, file, TRUE);
 	if (!track)	  track = gp_track_by_filename (itdb, file);
 	if (track)
 	{

Modified: gtkpod/trunk/src/display_itdb.h
===================================================================
--- gtkpod/trunk/src/display_itdb.h	2007-06-27 20:59:02 UTC (rev 193)
+++ gtkpod/trunk/src/display_itdb.h	2007-06-27 21:27:12 UTC (rev 194)
@@ -1,6 +1,5 @@
-/* Time-stamp: <2006-09-18 15:27:12 jcs>
-|
-|  Copyright (C) 2002-2005 Jorg Schuler <jcsjcs at users sourceforge net>
+/*
+|  Copyright (C) 2002-2007 Jorg Schuler <jcsjcs at users sourceforge net>
 |  Part of the gtkpod project.
 | 
 |  URL: http://www.gtkpod.org/
@@ -24,7 +23,7 @@
 | 
 |  This product is not supported/written/published by Apple!
 |
-|  $Id: display_itdb.h,v 1.35 2006/09/18 07:10:44 jcsjcs Exp $
+|  $Id: display_itdb.h 1590 2007-06-25 20:49:55Z phantom_sf $
 */
 
 #ifndef __DISPLAY_ITDB_H__
@@ -36,6 +35,7 @@
 
 #include <gtk/gtk.h>
 #include "itdb.h"
+#include "file_convert.h"
 
 struct itdbs_head
 {
@@ -44,16 +44,17 @@
 
 typedef struct
 {
-    struct itdbs_head *itdbs_head; /* pointer to the master itdbs_head */
-    GHashTable *md5hash;           /* md5 hash information             */
+    struct itdbs_head *itdbs_head; /* pointer to the master itdbs_head     */
+    GHashTable *sha1hash;          /* sha1 hash information                */
+    GHashTable *pc_path_hash;      /* hash with local filenames            */
     GList *pending_deletion;       /* tracks marked for removal from
-				      media                            */
+				      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              */
+				      (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,26 +64,36 @@
 
 typedef struct
 {
-  gint32  oldsize;        /* used when updating tracks: size on iPod */
-  gchar   *year_str;      /* year as string -- always identical to year */
-  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) */
-  gboolean tchanged;      /* temporary use, e.g. in detail.c         */
+  gchar   *year_str;        /* year as string -- always identical to year  */
+  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                */
+  gboolean pc_path_hashed;  /* for programming error detection (see
+			       gp_itdb_local_path_hash_add_track()         */
+  gchar   *converted_file;  /* if converted file exists: name in utf8      */
+  gint32  orig_filesize;    /* size of original file (if converted)        */
+  FileConvertStatus conversion_status; /* current status of conversion     */
+  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   *sha1_hash;       /* sha1 hash of file (or NULL)                 */
+  gchar   *charset;         /* charset used for ID3 tags                   */
+  gint32  sortindex;        /* used for stable sorting (current order)     */
+  gboolean tchanged;        /* temporary use, e.g. in detail.c             */
+  gboolean tartwork_changed;			/* temporary use for artwork, eg. in detail.c          */
+  guint64 local_itdb_id;    /* when using DND from local to iPod:
+			       original itdb                               */
+  guint64 local_track_dbid; /* when using DND from local to iPod:
+			       original track                              */
 } ExtraTrackData;
 
 /* types for iTunesDB */
 typedef enum
 {
     GP_ITDB_TYPE_LOCAL = 1<<0,    /* local browsing, normal music */
-    GP_ITDB_TYPE_IPOD  = 1<<1,    /* iPod */
-    GP_ITDB_TYPE_PODCASTS = 1<<2, /* local browsing, podcasts */
+    GP_ITDB_TYPE_IPOD  = 1<<1,    /* iPod                         */
+    GP_ITDB_TYPE_PODCASTS = 1<<2, /* local browsing, podcasts     */
+    GP_ITDB_TYPE_AUTOMATIC = 1<<3,/* repository was automounted   */
 } GpItdbType;
 
 /* Delete actions */
@@ -146,7 +157,7 @@
 
 void gp_playlist_add_extra (Playlist *pl);
 
-gboolean gp_increase_playcount (gchar *md5, gchar *file, gint num);
+gboolean gp_increase_playcount (gchar *sha1, gchar *file, gint num);
 iTunesDB *gp_get_selected_itdb (void);
 iTunesDB *gp_get_ipod_itdb (void);
 iTunesDB *gp_get_podcast_itdb (void);

Modified: gtkpod/trunk/src/display_playlists.c
===================================================================
--- gtkpod/trunk/src/display_playlists.c	2007-06-27 20:59:02 UTC (rev 193)
+++ gtkpod/trunk/src/display_playlists.c	2007-06-27 21:27:12 UTC (rev 194)
@@ -1,5 +1,4 @@
-/* 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 +23,7 @@
 | 
 |  This product is not supported/written/published by Apple!
 |
-|  $Id: display_playlists.c,v 1.92 2006/06/27 16:29:43 jcsjcs Exp $
+|  $Id: display_playlists.c 1589 2007-06-25 14:23:59Z jcsjcs $
 */
 
 #ifdef HAVE_CONFIG_H
@@ -66,7 +65,12 @@
 };
 
 
-void pm_rows_reordered (void);
+static void pm_rows_reordered (void);
+static GtkTreePath *pm_get_path_for_itdb (iTunesDB *itdb);
+static GtkTreePath *pm_get_path_for_playlist (Playlist *pl);
+static gint pm_get_position_for_playlist (Playlist *pl);
+static gboolean pm_get_iter_for_itdb (iTunesDB *itdb, GtkTreeIter *iter);
+static gboolean pm_get_iter_for_playlist (Playlist *pl, GtkTreeIter *iter);
 
 
 
@@ -182,6 +186,8 @@
     GdkAtom target;
     guint info;
     Playlist *pl_d;
+    iTunesDB *itdb;
+    ExtraiTunesDBData *eitdb;
 
     g_return_val_if_fail (widget, FALSE);
     g_return_val_if_fail (GTK_IS_TREE_VIEW (widget), FALSE);
@@ -206,17 +212,29 @@
 
     if(gtk_tree_model_get_iter (model, &iter_d, path))
     {
-	gtk_tree_model_get (model, &iter_d, 0, &pl_d, -1);
+	gtk_tree_model_get (model, &iter_d, PM_COLUMN_PLAYLIST, &pl_d, -1);
     }
     g_return_val_if_fail (pl_d, FALSE);
+    itdb = pl_d->itdb;
+    g_return_val_if_fail (itdb, FALSE);
+    eitdb = itdb->userdata;
+    g_return_val_if_fail (eitdb, FALSE);
 
     target = gtk_drag_dest_find_target (widget, dc, NULL);
 
+    /* no drop possible if repository is not loaded */
+    if (!eitdb->itdb_imported)
+    {
+	gtk_tree_path_free (path);
+	gdk_drag_status (dc, 0, time);
+	return FALSE;
+    }
+
     /* no drop possible if no valid target can be found */
     if (target == GDK_NONE)
     {
+	gtk_tree_path_free (path);
 	gdk_drag_status (dc, 0, time);
-	gtk_tree_path_free (path);
 	return FALSE;
     }
 
@@ -225,8 +243,8 @@
     {   /* MPL */
 	if (pos == GTK_TREE_VIEW_DROP_BEFORE)
 	{
+	    gtk_tree_path_free (path);
 	    gdk_drag_status (dc, 0, time);
-	    gtk_tree_path_free (path);
 	    return FALSE;
 	}
     }
@@ -235,8 +253,8 @@
     if (!gtk_target_list_find (
 	    gtk_drag_dest_get_target_list (widget), target, &info))
     {
+	gtk_tree_path_free (path);
 	gdk_drag_status (dc, 0, time);
-	gtk_tree_path_free (path);
 	return FALSE;
     }
 
@@ -255,8 +273,8 @@
 	    if ((pos == GTK_TREE_VIEW_DROP_INTO_OR_BEFORE) ||
 		(pos == GTK_TREE_VIEW_DROP_INTO_OR_AFTER))
 	    {
+		gtk_tree_path_free (path);
 		gdk_drag_status (dc, 0, time);
-		gtk_tree_path_free (path);
 		return FALSE;
 	    }
 	}
@@ -295,7 +313,7 @@
     g_return_if_fail (data);
 
     /* get current playlist */
-    gtk_tree_model_get(tm, iter, PM_COLUMN_PLAYLIST, &pl, -1); 
+    gtk_tree_model_get (tm, iter, PM_COLUMN_PLAYLIST, &pl, -1); 
     g_return_if_fail (pl);
 
     for (gl=pl->members; gl; gl=gl->next)
@@ -330,7 +348,7 @@
     g_return_if_fail (data);
 
     /* get current playlist */
-    gtk_tree_model_get(tm, iter, PM_COLUMN_PLAYLIST, &pl, -1); 
+    gtk_tree_model_get (tm, iter, PM_COLUMN_PLAYLIST, &pl, -1); 
     g_return_if_fail (pl);
 
     for (gl=pl->members; gl; gl=gl->next)
@@ -578,7 +596,7 @@
 				   gpointer         user_data)
 {
     GtkTreeIter iter_d, iter_s;
-    GtkTreePath *path_d=NULL, *path_s;
+    GtkTreePath *path_d=NULL;
     GtkTreePath *path_m;
     GtkTreeModel *model;
     GtkTreeViewDropPosition pos = 0;
@@ -614,7 +632,7 @@
 	g_object_set_data (G_OBJECT (widget), "drag_data_by_motion_pos", NULL);
 	if(gtk_tree_model_get_iter (model, &iter_d, path_m))
 	{
-	    gtk_tree_model_get (model, &iter_d, 0, &pl, -1);
+	    gtk_tree_model_get (model, &iter_d, PM_COLUMN_PLAYLIST, &pl, -1);
 	}
 	gtk_tree_path_free (path_m);
 
@@ -673,27 +691,17 @@
     }
     g_return_if_fail (path_d);
 
-    if(gtk_tree_model_get_iter(model, &iter_d, path_d))
+    if(gtk_tree_model_get_iter (model, &iter_d, path_d))
     {
-	gtk_tree_model_get(model, &iter_d, 0, &pl, -1);
+	gtk_tree_model_get (model, &iter_d, PM_COLUMN_PLAYLIST, &pl, -1);
     }
-    g_return_if_fail (pl);
-
-    /* get position of current path */
-    if (gtk_tree_path_get_depth (path_d) == 1)
-    {   /* MPL */
-	position = 0;
-    }
-    else
-    {
-	gint *indices = gtk_tree_path_get_indices (path_d);
-	/* need to add 1 because MPL is one level higher and not
-	   counted */
-	position = indices[1] + 1;
-    }
     gtk_tree_path_free (path_d);
     path_d = NULL;
 
+    g_return_if_fail (pl);
+
+    position = pm_get_position_for_playlist (pl);
+
 /*  printf("position: %d\n", position); */
     switch (info)
     {
@@ -846,26 +854,28 @@
 		gtk_drag_finish (dc, TRUE, FALSE, time);
 		break;
 	    case GDK_ACTION_MOVE:
-		if (prefs_get_int("pm_sort") != SORT_NONE)
-		{
-		    gtkpod_statusbar_message (_("Can't reorder sorted treeview."));
-		    gtk_drag_finish (dc, FALSE, FALSE, time);
-		    return;
-		}
-		path_s = pm_get_path (pl_s);
-		g_return_if_fail (path_s);
-		g_return_if_fail (gtk_tree_model_get_iter (
-				      model, &iter_s, path_s));
-		gtk_tree_path_free (path_s);
+		pm_get_iter_for_playlist (pl_s, &iter_s);
 		switch (pos)
 		{
 		case GTK_TREE_VIEW_DROP_BEFORE:
+		    if (prefs_get_int("pm_sort") != SORT_NONE)
+		    {
+			gtkpod_statusbar_message (_("Can't reorder sorted treeview."));
+			gtk_drag_finish (dc, FALSE, FALSE, time);
+			return;
+		    }
 		    gtk_tree_store_move_before (GTK_TREE_STORE (model),
 						&iter_s, &iter_d);
 		    pm_rows_reordered ();
 		    gtk_drag_finish (dc, TRUE, FALSE, time);
 		    break;
 		case GTK_TREE_VIEW_DROP_AFTER:
+		    if (prefs_get_int("pm_sort") != SORT_NONE)
+		    {
+			gtkpod_statusbar_message (_("Can't reorder sorted treeview."));
+			gtk_drag_finish (dc, FALSE, FALSE, time);
+			return;
+		    }
 		    gtk_tree_store_move_after (GTK_TREE_STORE (model),
 					       &iter_s, &iter_d);
 		    pm_rows_reordered ();
@@ -875,7 +885,7 @@
 		    pl_d = pl;
 		    if (pl_d != pl_s)
 			add_trackglist_to_playlist (pl_d, pl_s->members);
-		    gtk_drag_finish (dc, TRUE, TRUE, time);
+		    gtk_drag_finish (dc, TRUE, FALSE, time);
 		    break;
 		}
 		break;
@@ -883,8 +893,6 @@
 		gtk_drag_finish (dc, FALSE, FALSE, time);
 		g_return_if_reached ();
 	    }
-	    pm_rows_reordered ();
-	    return;
 	}
 	else
 	{   /*handle DND between two itdbs */
@@ -945,6 +953,9 @@
 	gtk_drag_finish (dc, FALSE, FALSE, time);
 	break;
     }
+
+    /* display if any duplicates were skipped */
+    gp_duplicate_remove (NULL, NULL);
 }
 
 
@@ -992,6 +1003,105 @@
 
 
 /* ---------------------------------------------------------------- */
+/* Section for playlist display helper functions                    */
+/* ---------------------------------------------------------------- */
+
+
+/* Find the iter that represents the repository @itdb
+ *
+ * Return TRUE if the repository could be found. In that case @itdb_iter
+ * will be set to the corresponding iter. The value of @itdb_iter is
+ * undefined when the repository couldn't be found, in which case FALSE
+ * is returned. */
+static gboolean pm_get_iter_for_itdb (iTunesDB *itdb, GtkTreeIter *itdb_iter)
+{
+    GtkTreeModel *model;
+
+    g_return_val_if_fail (playlist_treeview, FALSE);
+    g_return_val_if_fail (itdb, FALSE);
+    g_return_val_if_fail (itdb_iter, FALSE);
+
+    model = GTK_TREE_MODEL (gtk_tree_view_get_model (playlist_treeview));
+
+    if (gtk_tree_model_get_iter_first (model, itdb_iter))
+    {
+	do
+	{
+	    iTunesDB *itdb_model;
+	    gtk_tree_model_get (model, itdb_iter,
+				PM_COLUMN_ITDB, &itdb_model,
+				-1);
+	    g_return_val_if_fail (itdb_model, FALSE);
+	    if (itdb == itdb_model)
+	    {
+		return TRUE;
+	    }
+	} while (gtk_tree_model_iter_next (model, itdb_iter));
+    }
+    return FALSE;
+}
+
+
+/* Find the iter that contains Playlist @playlist
+ *
+ * Return TRUE if the playlist could be found. In that case @pl_iter
+ * will be set to the corresponding iter. The value of @pl_iter is
+ * undefined when the playlist couldn't be found, in which case FALSE
+ * is returned. */
+static gboolean pm_get_iter_for_playlist (Playlist *playlist, GtkTreeIter *pl_iter)
+{
+    GtkTreeIter itdb_iter;
+
+    g_return_val_if_fail (playlist_treeview, FALSE);
+    g_return_val_if_fail (playlist, FALSE);
+    g_return_val_if_fail (pl_iter, FALSE);
+
+    /* First get the iter with the itdb in it */
+
+    if (pm_get_iter_for_itdb (playlist->itdb, &itdb_iter))
+    {
+	GtkTreeModel *model;
+	Playlist *pl;
+
+	model = GTK_TREE_MODEL (gtk_tree_view_get_model (playlist_treeview));
+
+	/* Check if this is already the right iter */
+	gtk_tree_model_get (model, &itdb_iter,
+			    PM_COLUMN_PLAYLIST, &pl,
+			    -1);
+	g_return_val_if_fail (pl, FALSE);
+	if (pl == playlist)
+	{
+	    *pl_iter = itdb_iter;
+	    return TRUE;
+	}
+
+	/* no -- go down one hirarchy and try all other iters */
+	if (!gtk_tree_model_iter_children (model, pl_iter, &itdb_iter))
+	{   /* This indicates screwed up programming so we better cry
+	       out */
+	    g_return_val_if_reached (FALSE);
+	}
+
+	do
+	{
+	    gtk_tree_model_get (model, pl_iter,
+				PM_COLUMN_PLAYLIST, &pl,
+				-1);
+	    g_return_val_if_fail (pl, FALSE);
+	    if (pl == playlist)
+	    {
+		return TRUE;
+	    }
+	} while (gtk_tree_model_iter_next (model, pl_iter));
+    }
+    return FALSE;
+}
+
+
+
+
+/* ---------------------------------------------------------------- */
 /* Section for playlist display                                     */
 /* ---------------------------------------------------------------- */
 
@@ -1010,6 +1120,10 @@
 	    if ((playlist == current_playlist) ||
 		itdb_playlist_is_mpl (current_playlist))
 	    {
+	    	if (prefs_get_int (KEY_DISPLAY_COVERART))
+	    {
+	  		coverart_track_changed (track, COVERART_REMOVE_SIGNAL);
+	    }
 		st_remove_track (track, 0);
 	    }
 	}
@@ -1024,37 +1138,32 @@
     if (playlist == current_playlist)
     {
 	st_add_track (track, TRUE, display, 0); /* Add to first sort tab */
+    
+    	/* As with add_track above, only add to the playlist if it is the current one */
+    	if (prefs_get_int (KEY_DISPLAY_COVERART))
+	    {
+  			coverart_track_changed (track, COVERART_CREATE_SIGNAL);
+	    }
     }
 }
 
-/* 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)
-{
-  Playlist *playlist=NULL;
-
-  gtk_tree_model_get (model, iter, PM_COLUMN_PLAYLIST, &playlist, -1);
-  if(playlist == (Playlist *)data) {
-    gtk_tree_model_row_changed (model, path, iter);
-    return TRUE;
-  }
-  return FALSE;
-}
-
-
 /* One of the playlist names has changed (this happens when the
    iTunesDB is read */
-void pm_name_changed (Playlist *pl)
+void pm_itdb_name_changed (iTunesDB *itdb)
 {
-  GtkTreeModel *model = gtk_tree_view_get_model (playlist_treeview);
+  GtkTreeIter iter;
 
-  g_return_if_fail (pl);
-  g_return_if_fail (model);
+  g_return_if_fail (itdb);
 
-  gtk_tree_model_foreach (model, sr_model_playlist_name_changed, pl);
+  if (pm_get_iter_for_itdb (itdb, &iter))
+  {
+      GtkTreeModel *model;
+      GtkTreePath *path;
+      model = GTK_TREE_MODEL (gtk_tree_view_get_model (playlist_treeview));
+      path = gtk_tree_model_get_path (model, &iter);
+      gtk_tree_model_row_changed (model, path, &iter);
+      gtk_tree_path_free (path);
+  }
 }
 
 
@@ -1064,12 +1173,15 @@
 void pm_track_changed (Track *track)
 {
   if (!current_playlist) return;
+  
+  if (prefs_get_int (KEY_DISPLAY_COVERART))
+  	coverart_track_changed (track, COVERART_CHANGE_SIGNAL);
+  
   /* Check if track is member of current playlist */
   if (g_list_find (current_playlist->members, track))
       st_track_changed (track, FALSE, 0);
 }
 
-
 /* Add playlist to the playlist model */
 /* If @position = -1: append to end */
 /* If @position >=0: insert at that position (count starts with MPL as
@@ -1081,6 +1193,7 @@
   GtkTreeIter iter;
   GtkTreeModel *model;
   GtkTreeSelection *selection;
+  iTunesDB *itdb;
 
   g_return_if_fail (playlist_treeview);
   g_return_if_fail (playlist);
@@ -1091,36 +1204,28 @@
   if (itdb_playlist_is_mpl (playlist))
   {   /* MPLs are always added top-level */
       mpl = NULL;
+      itdb = playlist->itdb;
   }
   else
   {   /* We need to find the iter with the mpl in it */
-      if (gtk_tree_model_get_iter_first (model, &mpl_iter))
+      if (pm_get_iter_for_itdb (playlist->itdb, &mpl_iter))
       {
-	  do
-	  {
-	      Playlist *pl;
-	      gtk_tree_model_get (model, &mpl_iter,
-				  PM_COLUMN_PLAYLIST, &pl, -1);
-	      g_return_if_fail (pl);
-	      if (pl->itdb == playlist->itdb)
-	      {
-		  mpl = &mpl_iter;
-	      }
-	  } while ((mpl == NULL) &&
-		   gtk_tree_model_iter_next (model, &mpl_iter));
+	  mpl = &mpl_iter;
       }
-      if (!mpl)
+      else
       {
 	  g_warning ("Programming error: need to add mpl before adding normal playlists.\n");
       }
       /* reduce position by one because the MPL is not included in the
 	 tree model's count */
       --pos;
+      itdb = NULL;
   }
 
   gtk_tree_store_insert (GTK_TREE_STORE (model), &iter, mpl, pos);
 
   gtk_tree_store_set (GTK_TREE_STORE (model), &iter,
+		      PM_COLUMN_ITDB, itdb,
 		      PM_COLUMN_PLAYLIST, playlist,
 		      -1);
 
@@ -1146,22 +1251,6 @@
 
 
 
-    /* former inline function: used by pm_remove_playlist() */
-    static gboolean pm_delete_playlist_fe (GtkTreeModel *model,
-					   GtkTreePath *path,
-					   GtkTreeIter *iter,
-					   gpointer data)
-	{
-	    Playlist *playlist=NULL;
-	    
-	    gtk_tree_model_get (model, iter, PM_COLUMN_PLAYLIST, &playlist, -1);
-	    if(playlist == (Playlist *)data) {
-		gtk_tree_store_remove (GTK_TREE_STORE (model), iter);
-		return TRUE;
-	    }
-	    return FALSE;
-	}
-
 /* Remove "playlist" from the display model. 
    "select": TRUE: a new playlist is selected
              FALSE: no selection is taking place
@@ -1170,7 +1259,7 @@
 {
     GtkTreeModel *model;
     gboolean have_iter = FALSE;
-    GtkTreeIter i;
+    GtkTreeIter select_iter, delete_iter;
     GtkTreeSelection *ts = NULL;
 
   g_return_if_fail (playlist);
@@ -1192,10 +1281,10 @@
   if (select && (current_playlist == playlist))
   {   /* We are about to delete the currently selected
 	 playlist. Try to select the next. */
-      if (gtk_tree_selection_get_selected (ts, NULL, &i))
+      if (gtk_tree_selection_get_selected (ts, NULL, &select_iter))
       {
-	  GtkTreePath *path = gtk_tree_model_get_path (model, &i);
-	  if(gtk_tree_model_iter_next (model, &i))
+	  GtkTreePath *path = gtk_tree_model_get_path (model, &select_iter);
+	  if(gtk_tree_model_iter_next (model, &select_iter))
 	  {
 	      have_iter = TRUE;
 	  }
@@ -1203,7 +1292,7 @@
 	  {   /* no next iter -- try previous iter */
 	      if (gtk_tree_path_prev (path))
 	      {   /* OK -- make iter from it */
-		  gtk_tree_model_get_iter (model, &i, path);
+		  gtk_tree_model_get_iter (model, &select_iter, path);
 		  have_iter = TRUE;
 	      }
 	  }
@@ -1211,10 +1300,13 @@
       }
   }
 
-  /* find the pl and delete it */
-  gtk_tree_model_foreach (model, pm_delete_playlist_fe, playlist);
+  if (pm_get_iter_for_playlist (playlist, &delete_iter))
+  {
+      gtk_tree_store_remove (GTK_TREE_STORE (model), &delete_iter);
+  }
+
   /* select our new iter !!! */
-  if (have_iter && select)   gtk_tree_selection_select_iter(ts, &i);
+  if (have_iter && select)   gtk_tree_selection_select_iter(ts, &select_iter);
 }
 
 
@@ -1249,81 +1341,43 @@
 }
 
 
-    /* former inline function: used by pm_select_playlist */
-    static gboolean pm_select_playlist_fe (GtkTreeModel *model,
-					   GtkTreePath *path,
-					   GtkTreeIter *iter,
-					   gpointer data)
-	{
-	    Playlist *playlist=NULL;
-
-	    gtk_tree_model_get (model, iter,
-				PM_COLUMN_PLAYLIST, &playlist, -1);
-	    if(playlist == data)
-	    {
-		GtkTreeSelection *ts = gtk_tree_view_get_selection (
-		    playlist_treeview);
-		gtk_tree_selection_select_iter (ts, iter);
-		return TRUE;
-	    }
-	    return FALSE;
-	}
-
 /* Select specified playlist */
 void pm_select_playlist (Playlist *playlist)
 {
-    GtkTreeModel *model;
+    GtkTreeIter iter;
 
     g_return_if_fail (playlist_treeview);
     g_return_if_fail (playlist);
-    model = gtk_tree_view_get_model (playlist_treeview);
-    g_return_if_fail (model);
 
-    /* find the pl and select it */
-    gtk_tree_model_foreach (model, pm_select_playlist_fe,
-			    playlist);
+    if (pm_get_iter_for_playlist (playlist, &iter))
+    {
+	GtkTreeSelection *ts;
+	ts = gtk_tree_view_get_selection (playlist_treeview);
+	gtk_tree_selection_select_iter (ts, &iter);
+    }
 }
 
 
-    /* former inline function: used by pm_unselect_playlist */
-    static gboolean pm_unselect_playlist_fe (GtkTreeModel *model,
-					     GtkTreePath *path,
-					     GtkTreeIter *iter,
-					     gpointer data)
-	{
-	    Playlist *playlist=NULL;
-
-	    gtk_tree_model_get (model, iter,
-				PM_COLUMN_PLAYLIST, &playlist, -1);
-	    if(playlist == data)
-	    {
-		GtkTreeSelection *ts = gtk_tree_view_get_selection (
-		    playlist_treeview);
-		gtk_tree_selection_unselect_iter (ts, iter);
-		return TRUE;
-	    }
-	    return FALSE;
-	}
-
 /* Unselect specified playlist */
 void pm_unselect_playlist (Playlist *playlist)
 {
-    GtkTreeModel *model;
+    GtkTreeIter iter;
 
     g_return_if_fail (playlist_treeview);
     g_return_if_fail (playlist);
-    model = gtk_tree_view_get_model (playlist_treeview);
-    g_return_if_fail (model);
 
-    /* find the pl and unselect it */
-    gtk_tree_model_foreach (model, pm_unselect_playlist_fe,
-			    playlist);
+    if (pm_get_iter_for_playlist (playlist, &iter))
+    {
+	GtkTreeSelection *ts;
+	ts = gtk_tree_view_get_selection (playlist_treeview);
+	gtk_tree_selection_unselect_iter (ts, &iter);
+    }
 }
 
 
-static void pm_selection_changed_cb (gpointer user_data1, gpointer user_data2)
+static void pm_selection_changed_cb (GtkTreeSelection *selection,
+				     gpointer user_data2)
 {
-  GtkTreeSelection *selection = (GtkTreeSelection *)user_data1;
   GtkTreeModel *model;
   GtkTreeIter  iter;
   Playlist *new_playlist = NULL;
@@ -1335,6 +1389,11 @@
 	  time.tv_sec % 3600, time.tv_usec);
 #endif
 
+	/* Avoid track selection errors on coverart while enacting a change
+	 * in playlist
+	 */
+	 coverart_block_change (TRUE);
+  
   if (gtk_tree_selection_get_selected (selection, &model, &iter) == FALSE)
   {  /* no selection -> reset sort tabs */
       st_init (-1, 0);
@@ -1365,50 +1424,27 @@
 	  itdb_spl_update (new_playlist);
       if (new_playlist->members)
       {
-	  GTimeVal time;
-	  float max_count = REFRESH_INIT_COUNT;
-	  gint count = max_count - 1;
-	  float ms;
 	  GList *gl;
 
-	  if (!prefs_get_int("block_display"))
-	  {
-	      block_selection (-1);
-	      g_get_current_time (&time);
-	  }
 	  st_enable_disable_view_sort (0, FALSE);
 	  for (gl=new_playlist->members; gl; gl=gl->next)
 	  { /* add all tracks to sort tab 0 */
 	      Track *track = gl->data;
-	      if (stop_add == -1)  break;
 	      st_add_track (track, FALSE, TRUE, 0);
-	      --count;
-	      if ((count < 0) && !prefs_get_int("block_display"))
-	      {
-		  gtkpod_tracks_statusbar_update();
-		  while (gtk_events_pending ())       gtk_main_iteration ();
-		  ms = get_ms_since (&time, TRUE);
-		  /* first time takes significantly longer, so we adjust
-		     the max_count */
-		  if (max_count == REFRESH_INIT_COUNT) max_count *= 2.5;
-		  /* average the new and the old max_count */
-		  max_count *= (1 + 2 * REFRESH_MS / ms) / 3;
-		  count = max_count - 1;
-#if DEBUG_TIMING
-		  printf("pm_s_c ms: %f mc: %f\n", ms, max_count);
-#endif
-	      }
 	  }
 	  st_enable_disable_view_sort (0, TRUE);
-	  if (stop_add != -1) st_add_track (NULL, TRUE, TRUE, 0);
-	  if (!prefs_get_int("block_display"))
-	  {
-	      while (gtk_events_pending ())	      gtk_main_iteration ();
-	      release_selection (-1);
-	  }
+	  st_add_track (NULL, TRUE, TRUE, 0);
       }
       gtkpod_tracks_statusbar_update();
   }
+  
+  /* Reallow the coverart selection update */
+  coverart_block_change (FALSE);
+  /* Set the coverart display based on the selected playlist */
+  coverart_set_images(TRUE);
+	 
+  space_data_update ();
+    
 #if DEBUG_TIMING
   g_get_current_time (&time);
   printf ("pm_selection_changed_cb exit:  %ld.%06ld sec\n",
@@ -1420,16 +1456,11 @@
 
 /* Callback function called when the selection
    of the playlist view has changed */
-/* Instead of handling the selection directly, we add a
-   "callback". Currently running display updates will be stopped
-   before the pm_selection_changed_cb is actually called */
 static void pm_selection_changed (GtkTreeSelection *selection,
 				  gpointer user_data)
 {
-    space_data_update ();
     if (!pm_selection_blocked)
-	add_selection_callback (-1, pm_selection_changed_cb,
-				(gpointer)selection, user_data);
+	pm_selection_changed_cb (selection, user_data);
 }
 
 
@@ -1476,16 +1507,16 @@
 
     for (gl_pl=itdb->playlists; gl_pl; gl_pl=gl_pl->next)
     {
-	Playlist *pl = gl_pl->data;
-	g_return_if_fail (pl);
-	if (itdb_playlist_is_mpl (pl))     pm_add_playlist (pl, pos);
-	else                               pm_add_playlist (pl, -1);
+			Playlist *pl = gl_pl->data;
+			g_return_if_fail (pl);
+			if (itdb_playlist_is_mpl (pl))     pm_add_playlist (pl, pos);
+			else                               pm_add_playlist (pl, -1);
     }
 }
 
 
 /* Helper function: add all playlists to playlist model */
-void pm_add_all_playlists (void)
+void pm_add_all_itdbs (void)
 {
     GList *gl_itdb;    
     struct itdbs_head *itdbs_head;
@@ -1503,50 +1534,99 @@
 }
 
 
-/* Return path of playlist @pl. After use the return value must be
- * freed by calling gtk_tree_path_free() */
-GtkTreePath *pm_get_path (Playlist *pl)
+/* Return GtkTreePath for playlist @playlist. The returned path must be
+   freed using gtk_tree_path_free() after it is no needed any more */
+static GtkTreePath *pm_get_path_for_playlist (Playlist *playlist)
 {
-    struct userdata
+    GtkTreeIter iter;
+
+    g_return_val_if_fail (playlist_treeview, NULL);
+    g_return_val_if_fail (playlist, NULL);
+
+    if (pm_get_iter_for_playlist (playlist, &iter))
     {
-	Playlist *pl;
-	GtkTreePath *path;
-    };
-    GtkTreeModel *model;
-    struct userdata userdata;
-    gboolean pm_get_path_fe (GtkTreeModel *model,
-				    GtkTreePath *path,
-				    GtkTreeIter *iter,
-				    gpointer data)
-	{
-	    struct userdata *ud = data;
-	    Playlist *pl;
+	GtkTreeModel *model;
+	model = gtk_tree_view_get_model (playlist_treeview);
+	return gtk_tree_model_get_path (model, &iter);
+    }
+    return NULL;
+}
 
-	    gtk_tree_model_get (model, iter,
-				PM_COLUMN_PLAYLIST, &pl, -1);
-	    if(pl == ud->pl)
-	    {
-		ud->path = gtk_tree_model_get_path (model, iter);
-		return TRUE;
-	    }
-	    return FALSE;
-	}
+
+/* Return GtkTreePath for repository @itdb. The returned path must be
+   freed using gtk_tree_path_free() after it is no needed any more */
+GtkTreePath *pm_get_path_for_itdb (iTunesDB *itdb)
+{
+    GtkTreeIter iter;
+
     g_return_val_if_fail (playlist_treeview, NULL);
-    g_return_val_if_fail (pl, NULL);
-    model = gtk_tree_view_get_model (playlist_treeview);
-    g_return_val_if_fail (model, NULL);
+    g_return_val_if_fail (itdb, NULL);
 
-    userdata.pl = pl;
-    userdata.path = NULL;
+    if (pm_get_iter_for_itdb (itdb, &iter))
+    {
+	GtkTreeModel *model;
+	model = gtk_tree_view_get_model (playlist_treeview);
+	return gtk_tree_model_get_path (model, &iter);
+    }
+    return NULL;
+}
 
-    /* find the pl and fill in path */
-    gtk_tree_model_foreach (model, pm_get_path_fe, &userdata);
 
-    return userdata.path;
+/* Return position of repository @itdb */
+gint pm_get_position_for_itdb (iTunesDB *itdb)
+{
+    GtkTreePath *path;
+    gint position = -1;
+
+    g_return_val_if_fail (playlist_treeview, -1);
+    g_return_val_if_fail (itdb, -1);
+
+    path = pm_get_path_for_itdb (itdb);
+
+    if (path)
+    {
+	gint *indices = gtk_tree_path_get_indices (path);
+	if (indices)
+	{
+	    position = indices[0];
+	}
+	gtk_tree_path_free (path);
+    }
+    return position;
 }
 
 
+/* Return position of repository @itdb */
+static gint pm_get_position_for_playlist (Playlist *playlist)
+{
+    GtkTreePath *path;
+    gint position = -1;
 
+    g_return_val_if_fail (playlist_treeview, -1);
+    g_return_val_if_fail (playlist, -1);
+
+    path = pm_get_path_for_playlist (playlist);
+
+    if (path)
+    {
+	/* get position of current path */
+	if (gtk_tree_path_get_depth (path) == 1)
+	{   /* MPL */
+	    position = 0;
+	}
+	else
+	{
+	    gint *indices = gtk_tree_path_get_indices (path);
+	    /* need to add 1 because MPL is one level higher and not
+	       counted */
+	    position = indices[1] + 1;
+	}
+	gtk_tree_path_free (path);
+    }
+    return position;
+}
+
+
 /* "unsort" the playlist view without causing the sort tabs to be
    touched. */
 static void pm_unsort ()
@@ -1563,7 +1643,7 @@
     pm_set_selected_playlist (cur_pl);
 
     /* add playlists back to model (without selecting) */
-    pm_add_all_playlists ();
+    pm_add_all_itdbs ();
 
     pm_selection_blocked = FALSE;
     /* reset sort counter */
@@ -2036,6 +2116,10 @@
 					       e->x, e->y, NULL);
 	if (cell_nr == 0)
 	{
+	    /* don't accept clicks while widgets are blocked -- this
+	       might cause a crash (e.g. when we click the 'Eject
+	       iPod' symbol while we are ejecting it already) */
+	    if (widgets_blocked) return FALSE;
 	    /* */
 	    model= gtk_tree_view_get_model (GTK_TREE_VIEW (w));
 	    gtk_tree_view_get_path_at_pos (GTK_TREE_VIEW(w),
@@ -2167,7 +2251,7 @@
   gtk_container_add (GTK_CONTAINER (playlist_window), tree);
 
   /* create model */
-  model =   gtk_tree_store_new (PM_NUM_COLUMNS, G_TYPE_POINTER);
+  model =   gtk_tree_store_new (PM_NUM_COLUMNS, G_TYPE_POINTER, G_TYPE_POINTER);
 
   /* set tree model */
   gtk_tree_view_set_model (playlist_treeview, GTK_TREE_MODEL (model));
@@ -2184,7 +2268,7 @@
 		       pm_drag_types, TGNR (pm_drag_types),
 		       GDK_ACTION_COPY|GDK_ACTION_MOVE);
   gtk_drag_dest_set (GTK_WIDGET (playlist_treeview),
-		     GTK_DEST_DEFAULT_MOTION | GTK_DEST_DEFAULT_HIGHLIGHT,
+		     GTK_DEST_DEFAULT_HIGHLIGHT,
 		     pm_drop_types, TGNR (pm_drop_types),
 		     GDK_ACTION_COPY|GDK_ACTION_MOVE);
 

Modified: gtkpod/trunk/src/display_private.h
===================================================================
--- gtkpod/trunk/src/display_private.h	2007-06-27 20:59:02 UTC (rev 193)
+++ gtkpod/trunk/src/display_private.h	2007-06-27 21:27:12 UTC (rev 194)
@@ -1,4 +1,4 @@
-/* Time-stamp: <2005-11-19 15:41:48 jcs>
+/* Time-stamp: <2007-03-19 23:11:13 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_private.h,v 1.23 2005/11/19 07:29:46 jcsjcs Exp $
+|  $Id: display_private.h 1009 2007-03-19 14:46:08Z jcsjcs $
 */
 
 #ifndef __DISPLAY_PRIVATE_H__
@@ -36,6 +36,7 @@
 
 #include "display.h"
 #include "misc.h"
+#include "display_coverart.h"
 
 /* tree sort cannot be unsorted by choosing the default sort
  * column. Set to 1 if it's broken, 0 if it's not broken */
@@ -55,19 +56,11 @@
 /* print info when adding tracks */
 #define DEBUG_ADD_TRACK 0
 
-/* used for stopping of display refresh */
-typedef void (*br_callback)(gpointer user_data1, gpointer user_data2);
-void block_selection (gint inst);
-void release_selection (gint inst);
-void add_selection_callback (gint inst, br_callback brc, gpointer user_data1, gpointer user_data2);
-gboolean selection_callback_timeout (gpointer data);
-extern gint stop_add;
-
 /* used for display organization */
 void pm_create_treeview (void);
 void pm_set_selected_playlist(Playlist *pl);
 void pm_remove_all_playlists (gboolean clear_sort);
-void pm_add_all_playlists (void);
+void pm_add_all_itdbs (void);
 void tm_create_treeview (void);
 void tm_track_changed (Track *track);
 void tm_remove_track (Track *track);
@@ -78,7 +71,6 @@
 void st_create_tabs (void);
 void st_remove_track (Track *track, guint32 inst);
 void st_init (ST_CAT_item new_category, guint32 inst);
-void st_create_notebook (gint inst);
 void st_cleanup (void);
 void st_set_default_sizes (void);
 void st_update_default_sizes (void);

Deleted: gtkpod/trunk/src/display_songs.c
===================================================================
--- gtkpod/trunk/src/display_songs.c	2007-06-27 20:59:02 UTC (rev 193)
+++ gtkpod/trunk/src/display_songs.c	2007-06-27 21:27:12 UTC (rev 194)
@@ -1,2451 +0,0 @@
-/* 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.
-|
-|  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: 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 <sys/stat.h>
-#include <sys/types.h>
-#include <unistd.h>
-
-#include "prefs.h"
-#include "display_private.h"
-#include "display_itdb.h"
-#include "itdb.h"
-#include "info.h"
-#include "misc.h"
-#include "misc_track.h"
-#include "file.h"
-#include "context_menus.h"
-
-/* pointer to the treeview for the track display */
-static GtkTreeView *track_treeview = NULL;
-/* array with pointers to the columns used in the track display */
-static GtkTreeViewColumn *tm_columns[TM_NUM_COLUMNS];
-/* column in which track pointer is stored */
-static const gint READOUT_COL = 0;
-
-/* compare function to be used for string comparisons */
-static gint (*string_compare_func) (const gchar *str1, const gchar *str2) = compare_string;
-
-static GtkTreeViewColumn *tm_add_column (TM_item tm_item, gint position);
-static TM_item tm_lookup_col_id (GtkTreeViewColumn *column);
-
-/* Drag and drop definitions */
-static GtkTargetEntry tm_drag_types [] = {
-    { DND_GTKPOD_TM_PATHLIST_TYPE, 0, DND_GTKPOD_TM_PATHLIST },
-    { DND_GTKPOD_TRACKLIST_TYPE, 0, DND_GTKPOD_TRACKLIST },
-    { "text/uri-list", 0, DND_TEXT_URI_LIST },
-    { "text/plain", 0, DND_TEXT_PLAIN },
-    { "STRING", 0, DND_TEXT_PLAIN }
-};
-static GtkTargetEntry tm_drop_types [] = {
-    { DND_GTKPOD_TM_PATHLIST_TYPE, 0, DND_GTKPOD_TM_PATHLIST },
-    { "text/uri-list", 0, DND_TEXT_URI_LIST },
-    { "text/plain", 0, DND_TEXT_PLAIN },
-    { "STRING", 0, DND_TEXT_PLAIN }
-};
-
-/* prefs strings */
-const gchar *TM_PREFS_SEARCH_COLUMN = "tm_prefs_search_column";
-
-
-/* ---------------------------------------------------------------- */
-/* Section for track display                                        */
-/* DND -- Drag And Drop                                             */
-/* ---------------------------------------------------------------- */
-
-
-/* Move the paths listed in @data before or after (according to @pos)
-   @path. Used for DND */
-static gboolean tm_move_pathlist (gchar *data,
-				  GtkTreePath *path,
-				  GtkTreeViewDropPosition pos)
-{
-    GtkTreeIter to_iter;
-    GtkTreeIter *from_iter;
-    GtkTreeModel *model;
-    GList *iterlist = NULL;
-    GList *link;
-    gchar **paths, **pathp;
-
-    g_return_val_if_fail (data, FALSE);
-    g_return_val_if_fail (*data, FALSE);
-
-    model = gtk_tree_view_get_model (track_treeview);
-    g_return_val_if_fail (model, FALSE);
-
-    g_return_val_if_fail (gtk_tree_model_get_iter (model, &to_iter, path),
-			  FALSE);
-
-    /* split the path list into individual strings */
-    paths = g_strsplit (data, "\n", -1);
-    pathp = paths;
-    /* Convert the list of paths into a list of iters */
-    while (*pathp)
-    {
-	from_iter = g_malloc (sizeof (GtkTreeIter));
-	if ((strlen (*pathp) > 0) &&
-	    gtk_tree_model_get_iter_from_string (model, from_iter, *pathp))
-	{
-	    iterlist = g_list_append (iterlist, from_iter);
-	}
-	++pathp;
-    }
-    g_strfreev (paths);
-    /* Move the iters in iterlist before or after @to_iter */
-    switch (pos)
-    {
-    case GTK_TREE_VIEW_DROP_INTO_OR_AFTER:
-    case GTK_TREE_VIEW_DROP_AFTER:
-	for (link = g_list_last (iterlist); link; link = link->prev)
-	{
-	    from_iter = (GtkTreeIter *)link->data;
-	    gtk_list_store_move_after (GTK_LIST_STORE (model),
-				       from_iter, &to_iter);
-	}
-	break;
-    case GTK_TREE_VIEW_DROP_INTO_OR_BEFORE:
-    case GTK_TREE_VIEW_DROP_BEFORE:
-	for (link = g_list_first (iterlist); link; link = link->next)
-	{
-	    from_iter = (GtkTreeIter *)link->data;
-	    gtk_list_store_move_before (GTK_LIST_STORE (model),
-					from_iter, &to_iter);
-	}
-	break;
-    }
-
-    /* free iterlist */
-    for (link = iterlist; link; link = link->next)
-	g_free (link->data);
-    g_list_free (iterlist);
-
-    tm_rows_reordered ();
-    return TRUE;
-}
-
-
-/*
- * utility function for appending ipod track ids for track view (DND)
- */
-static void
-on_tm_dnd_get_track_foreach(GtkTreeModel *tm, GtkTreePath *tp,
-			    GtkTreeIter *i, gpointer data)
-{
-    Track *tr;
-    GString *tracklist = (GString *)data;
-
-    g_return_if_fail (tracklist);
-
-    gtk_tree_model_get(tm, i, READOUT_COL, &tr, -1);
-    g_return_if_fail (tr);
-
-    g_string_append_printf (tracklist, "%p\n", tr);
-}
-
-
-/*
- * utility function for appending path for track view (DND)
- */
-static void
-on_tm_dnd_get_path_foreach(GtkTreeModel *tm, GtkTreePath *tp,
-			   GtkTreeIter *iter, gpointer data)
-{
-    GString *filelist = (GString *)data;
-    gchar *ps = gtk_tree_path_to_string (tp);
-    g_string_append_printf (filelist, "%s\n", ps);
-    g_free (ps);
-}
-
-/*
- * utility function for appending file for track view (DND)
- */
-static void
-on_tm_dnd_get_file_foreach(GtkTreeModel *tm, GtkTreePath *tp,
-			   GtkTreeIter *iter, gpointer data)
-{
-    Track *track;
-    GString *filelist = (GString *)data;
-    gchar *name;
-
-    gtk_tree_model_get(tm, iter, READOUT_COL, &track, -1);
-    name = get_file_name_from_source (track, SOURCE_PREFER_LOCAL);
-    if (name)
-    {
-	g_string_append_printf (filelist, "file:%s\n", name);
-	g_free (name);
-    }
-}
-
-/*
- * utility function for appending file-uri for track view (DND)
- */
-static void
-on_tm_dnd_get_uri_foreach(GtkTreeModel *tm, GtkTreePath *tp,
-			  GtkTreeIter *iter, gpointer data)
-{
-    Track *track;
-    GString *filelist = (GString *)data;
-    gchar *name;
-
-    gtk_tree_model_get(tm, iter, READOUT_COL, &track, -1);
-    name = get_file_name_from_source (track, SOURCE_PREFER_LOCAL);
-    if (name)
-    {
-	gchar *uri = g_filename_to_uri (name, NULL, NULL);
-	if (uri)
-	{
-	    g_string_append_printf (filelist, "%s\n", uri);
-	    g_free (uri);
-	}
-	g_free (name);
-    }
-}
-
-static void tm_drag_begin (GtkWidget *widget,
-			   GdkDragContext *dc,
-			   gpointer user_data)
-{
-/*     puts ("tm_drag_begin"); */
-}
-
-
-/* remove dragged playlist after successful MOVE */
-static void tm_drag_data_delete (GtkWidget *widget,
-			   GdkDragContext *dc,
-			   gpointer user_data)
-{
-    GtkTreeSelection *ts;
-    Playlist *pl = pm_get_selected_playlist ();
-    gint num;
-
-/*     puts ("tm_drag_data_delete"); */
-
-    g_return_if_fail (widget);
-    ts = gtk_tree_view_get_selection (GTK_TREE_VIEW(widget));
-    g_return_if_fail (ts);
-    /* number of selected tracks */
-    num = gtk_tree_selection_count_selected_rows (ts);
-    if (num == 0) return;
-
-    /* Check if we really have to delete the tracks */
-    if (!itdb_playlist_is_mpl (pl))
-    {	/* get list of selected tracks */
-	GString *reply = g_string_sized_new (2000);
-	gchar *str;
-	Track *track;
-
-	gtk_tree_selection_selected_foreach(ts,
-					    on_tm_dnd_get_track_foreach,
-					    reply);
-	str = reply->str;
-	while(parse_tracks_from_string(&str, &track))
-	{
-	    gp_playlist_remove_track (pl, track, DELETE_ACTION_PLAYLIST);
-	}
-	g_string_free (reply, TRUE);
-
-	gtkpod_statusbar_message (ngettext ("Moved one track",
-					    "Moved %d tracks", num), num);
-    }
-    else
-    {
-	gtkpod_statusbar_message (ngettext ("Copied one track",
-					    "Copied %d tracks", num), num);
-    }
-}
-
-
-
-static void tm_drag_end (GtkWidget *widget,
-			 GdkDragContext *dc,
-			 gpointer user_data)
-{
-/*     puts ("tm_drag_end"); */
-    display_remove_autoscroll_row_timeout (widget);
-    gtkpod_tracks_statusbar_update ();
-}
-
-
-static gboolean tm_drag_drop (GtkWidget *widget,
-			      GdkDragContext *dc,
-			      gint x,
-			      gint y,
-			      guint time,
-			      gpointer user_data)
-{
-    GdkAtom target;
-
-/*     puts ("tm_drag_data_drop"); */
-
-    display_remove_autoscroll_row_timeout (widget);
-
-    target = gtk_drag_dest_find_target (widget, dc, NULL);
-
-    if (target != GDK_NONE)
-    {
-	gtk_drag_get_data (widget, dc, target, time);
-	return TRUE;
-    }
-    return FALSE;
-}
-
-static void tm_drag_leave (GtkWidget *widget,
-			   GdkDragContext *dc,
-			   guint time,
-			   gpointer user_data)
-{
-/*     puts ("tm_drag_leave"); */
-    display_remove_autoscroll_row_timeout (widget);
-}
-
-
-
-static gboolean tm_drag_motion (GtkWidget *widget,
-				GdkDragContext *dc,
-				gint x,
-				gint y,
-				guint time,
-				gpointer user_data)
-{
-    GtkTreeView *treeview;
-    GdkAtom target;
-    GtkTreePath *path = NULL;
-    GtkTreeViewDropPosition pos;
-
-/*     printf ("drag_motion  suggested: %d actions: %d\n", */
-/*  	    dc->suggested_action, dc->actions); */
-
-/*     printf ("x: %d y: %d\n", x, y); */
-
-    g_return_val_if_fail (GTK_IS_TREE_VIEW (widget), FALSE);
-
-    treeview = GTK_TREE_VIEW (widget);
-
-    display_install_autoscroll_row_timeout (widget);
-
-    /* optically set destination row if available */
-    if (gtk_tree_view_get_dest_row_at_pos (GTK_TREE_VIEW (widget),
-					   x, y, &path, &pos))
-    {
-	/* drops are only allowed before and after -- not onto
-	   existing paths */
-	switch (pos)
-	{
-	case GTK_TREE_VIEW_DROP_INTO_OR_AFTER:
-	case GTK_TREE_VIEW_DROP_AFTER:
-	    gtk_tree_view_set_drag_dest_row (GTK_TREE_VIEW (widget), path,
-					     GTK_TREE_VIEW_DROP_AFTER);
-	    break;
-	case GTK_TREE_VIEW_DROP_INTO_OR_BEFORE:
-	case GTK_TREE_VIEW_DROP_BEFORE:
-	    gtk_tree_view_set_drag_dest_row (GTK_TREE_VIEW (widget), path,
-					     GTK_TREE_VIEW_DROP_BEFORE);
-	    break;
-	}
-
- 	gtk_tree_path_free (path);
- 	path = NULL;
-    }
-    else
-    {
-	path = gtk_tree_path_new_first ();
-	gtk_tree_view_set_drag_dest_row (GTK_TREE_VIEW (widget), path,
-					 GTK_TREE_VIEW_DROP_BEFORE);
-	gtk_tree_path_free (path);
-	path = NULL;
-    }
-
-
-
-    if (pm_get_selected_playlist () == NULL)
-    {   /* no drop possible if no playlist is selected */
-	gdk_drag_status (dc, 0, time);
-	return FALSE;
-    }
-
-    target = gtk_drag_dest_find_target (widget, dc, NULL);
-
-    /* no drop possible if no valid target can be found */
-    if (target == GDK_NONE)
-    {
-	gdk_drag_status (dc, 0, time);
-	return FALSE;
-    }
-
-    if (widget == gtk_drag_get_source_widget (dc))
-    {   /* drag is within the same widget */
-	gint column;
-	GtkSortType order;
-	GtkTreeModel *model = gtk_tree_view_get_model(GTK_TREE_VIEW(widget));
-	g_return_val_if_fail (model, FALSE);
-	if(gtk_tree_sortable_get_sort_column_id (
-	       GTK_TREE_SORTABLE (model), &column, &order))
-	{   /* don't allow move because the model is sorted */
-	    gdk_drag_status (dc, 0, time);
-	    return FALSE;
-	}
-	else
-	{   /* only allow moves within the same widget */
-	    gdk_drag_status (dc, GDK_ACTION_MOVE, time);
-	}
-    }
-    else
-    {  /* whatever the source suggests */
-	gdk_drag_status (dc, dc->suggested_action, time);
-    }
-
-    return TRUE;
-}
-
-
-static void tm_drag_data_get (GtkWidget       *widget,
-			      GdkDragContext  *context,
-			      GtkSelectionData *data,
-			      guint            info,
-			      guint            time,
-			      gpointer         user_data)
-{
-    GtkTreeSelection *ts = NULL;
-    GString *reply = g_string_sized_new (2000);
-
-/*     printf("tm drag get info: %d\n", info); */
-    if((data) && (ts = gtk_tree_view_get_selection(GTK_TREE_VIEW(widget))))
-    {
-	switch (info)
-	{
-	case DND_GTKPOD_TRACKLIST:
-	    gtk_tree_selection_selected_foreach(ts,
-				    on_tm_dnd_get_track_foreach, reply);
-	    break;
-	case DND_GTKPOD_TM_PATHLIST:
-	    gtk_tree_selection_selected_foreach(ts,
-				    on_tm_dnd_get_path_foreach, reply);
-	    break;
-	case DND_TEXT_URI_LIST:
-	    gtk_tree_selection_selected_foreach(ts,
-				    on_tm_dnd_get_uri_foreach, reply);
-	    break;
-	case DND_TEXT_PLAIN:
-	    gtk_tree_selection_selected_foreach(ts,
-				    on_tm_dnd_get_file_foreach, reply);
-	    break;
-	default:
-	    g_warning ("Programming error: tm_drag_data_get received unknown info type (%d)\n", info);
-	    break;
-	}
-    }
-    gtk_selection_data_set(data, data->target, 8, reply->str, reply->len);
-    g_string_free (reply, TRUE);
-}
-
-static void tm_drag_data_received (GtkWidget       *widget,
-				   GdkDragContext  *dc,
-				   gint             x,
-				   gint             y,
-				   GtkSelectionData *data,
-				   guint            info,
-				   guint            time,
-				   gpointer         user_data)
-{
-    GtkTreePath *path = NULL;
-    GtkTreeModel *model = NULL;
-    GtkTreeViewDropPosition pos = 0;
-    gboolean result = FALSE;
-
-    /* printf ("sm drop received info: %d\n", info); */
-
-    /* sometimes we get empty dnd data, ignore */
-    if(widgets_blocked || (!dc) ||
-       (!data) || (data->length < 0)) return;
-    /* yet another check, i think it's an 8 bit per byte check */
-    if(data->format != 8) return;
-
-    display_remove_autoscroll_row_timeout (widget);
-
-    model = gtk_tree_view_get_model (GTK_TREE_VIEW (widget));
-    g_return_if_fail (model);
-    if (!gtk_tree_view_get_dest_row_at_pos (GTK_TREE_VIEW (widget),
-					    x, y, &path, &pos))
-    {
-	gint py;
-	gdk_window_get_pointer (
-	    gtk_tree_view_get_bin_window (GTK_TREE_VIEW (widget)),
-	    NULL, &py, NULL);
-	if (py < 5)
-	{
-	    /* initialize with first displayed and drop before */
-	    GtkTreeIter iter;
-	    if (gtk_tree_model_get_iter_first (model, &iter))
-	    {
-		path = gtk_tree_model_get_path (model, &iter);
-		pos = GTK_TREE_VIEW_DROP_BEFORE;
-	    }
-	}
-	else
-	{   /* initialize with last path if available and drop after */
-	    GtkTreeIter iter;
-	    if (gtk_tree_model_get_iter_first (model, &iter))
-	    {
-		GtkTreeIter last_valid_iter;
-		do
-		{
-		    last_valid_iter = iter;
-		} while (gtk_tree_model_iter_next (model, &iter));
-		path = gtk_tree_model_get_path (model, &last_valid_iter);
-		pos = GTK_TREE_VIEW_DROP_AFTER;
-	    }
-	}
-    }
-
-    if (path)
-    {   /* map position onto BEFORE or AFTER */
-	switch (pos)
-	{
-	case GTK_TREE_VIEW_DROP_INTO_OR_AFTER:
-	case GTK_TREE_VIEW_DROP_AFTER:
-	    pos = GTK_TREE_VIEW_DROP_AFTER;
-	    break;
-	case GTK_TREE_VIEW_DROP_INTO_OR_BEFORE:
-	case GTK_TREE_VIEW_DROP_BEFORE:
-	    pos = GTK_TREE_VIEW_DROP_BEFORE;
-	    break;
-	}
-    }
-
-    switch (info)
-    {
-    case DND_GTKPOD_TM_PATHLIST:
-	g_return_if_fail (path);
-	result = tm_move_pathlist (data->data, path, pos);
-	dc->action = GDK_ACTION_MOVE;
-	gtk_drag_finish (dc, TRUE, FALSE, time);
-	break;
-    case DND_TEXT_PLAIN:
-	result = tm_add_filelist (data->data, path, pos);
-	dc->action = dc->suggested_action;
-	if (dc->action == GDK_ACTION_MOVE)
-	    gtk_drag_finish (dc, TRUE, TRUE, time);
-	else
-	    gtk_drag_finish (dc, TRUE, FALSE, time);
-	break;
-    case DND_TEXT_URI_LIST:
-	result = tm_add_filelist (data->data, path, pos);
-	dc->action = dc->suggested_action;
-	if (dc->action == GDK_ACTION_MOVE)
-	    gtk_drag_finish (dc, TRUE, TRUE, time);
-	else
-	    gtk_drag_finish (dc, TRUE, FALSE, time);
-	break;
-    default:
-	dc->action = 0;
-	gtk_drag_finish (dc, FALSE, FALSE, time);
-/* 	puts ("tm_drag_data_received(): should not be reached"); */
-	break;
-    }
-    if (path) gtk_tree_path_free(path);
-}
-
-/* ---------------------------------------------------------------- */
-/* Section for track display                                        */
-/* other callbacks                                                  */
-/* ---------------------------------------------------------------- */
-
-static gboolean
-on_track_treeview_key_release_event     (GtkWidget       *widget,
-					GdkEventKey     *event,
-					gpointer         user_data)
-{
-    guint mods;
-    mods = event->state;
-
-    if(!widgets_blocked && (mods & GDK_CONTROL_MASK))
-    {
-	switch(event->keyval)
-	{
-/* 	    case GDK_u: */
-/* 		gp_do_selected_tracks (update_tracks); */
-/* 		break; */
-	    default:
-		break;
-	}
-    }
-    return FALSE;
-}
-
-/* ---------------------------------------------------------------- */
-/* Section for track display                                        */
-/* ---------------------------------------------------------------- */
-
-/* Append track to the track model (or write into @into_iter if != 0) */
-void tm_add_track_to_track_model (Track *track, GtkTreeIter *into_iter)
-{
-    GtkTreeIter iter;
-    GtkTreeModel *model = gtk_tree_view_get_model (track_treeview);
-
-    g_return_if_fail (model != NULL);
-
-    if (into_iter)
-	iter = *into_iter;
-    else
-	gtk_list_store_append (GTK_LIST_STORE (model), &iter);
-
-    gtk_list_store_set (GTK_LIST_STORE (model), &iter,
-			READOUT_COL, track, -1);
-}
-
-
-
-/* Used by remove_track() to remove track from model by calling
-   gtk_tree_model_foreach ().
-   Entry is deleted if data == track */
-static gboolean tm_delete_track (GtkTreeModel *model,
-				GtkTreePath *path,
-				GtkTreeIter *iter,
-				gpointer data)
-{
-  Track *track;
-
-  gtk_tree_model_get (model, iter, READOUT_COL, &track, -1);
-  if(track == (Track *)data)
-  {
-      GtkTreeSelection *selection = gtk_tree_view_get_selection
-	  (track_treeview);
-/*       printf("unselect...\n"); */
-      gtk_tree_selection_unselect_iter (selection, iter);
-/*       printf("...unselect done\n"); */
-      gtk_list_store_remove (GTK_LIST_STORE (model), iter);
-      return TRUE;
-  }
-  return FALSE;
-}
-
-
-/* Remove track from the display model */
-void tm_remove_track (Track *track)
-{
-  GtkTreeModel *model = gtk_tree_view_get_model (track_treeview);
-  if (model != NULL)
-    gtk_tree_model_foreach (model, tm_delete_track, track);
-}
-
-
-/* Remove all tracks from the display model */
-void tm_remove_all_tracks ()
-{
-  GtkTreeModel *model = gtk_tree_view_get_model (track_treeview);
-  GtkTreeIter iter;
-
-  while (gtk_tree_model_get_iter_first (model, &iter))
-  {
-      gtk_list_store_remove (GTK_LIST_STORE (model), &iter);
-  }
-  tm_store_col_order ();
-  tm_update_default_sizes ();
-}
-
-/* find out at which position column @tm_item is displayed */
-/* static gint tm_get_col_position (TM_item tm_item) */
-/* { */
-/*     gint i; */
-/*     GtkTreeViewColumn *col; */
-
-/*     if (!track_treeview) return -1; */
-
-/*     for (i=0; i<TM_NUM_COLUMNS_PREFS; ++i) */
-/*     { */
-/* 	col = gtk_tree_view_get_column (track_treeview, i); */
-/* 	if (col->sort_column_id == tm_item) return i; */
-/*     } */
-/*     return -1; */
-/* } */
-
-
-/* store the order of the track view columns */
-void tm_store_col_order (void)
-{
-    gint i;
-    GtkTreeViewColumn *col;
-
-    for (i=0; i<TM_NUM_COLUMNS; ++i)
-    {
-	col = gtk_tree_view_get_column (track_treeview, i);
-	prefs_set_int_index("col_order", i, col->sort_column_id);
-    }
-}
-
-
-/* Used by tm_track_changed() to find the track that
-   changed name. If found, emit a "row changed" signal */
-static gboolean tm_model_track_changed (GtkTreeModel *model,
-				       GtkTreePath *path,
-				       GtkTreeIter *iter,
-				       gpointer data)
-{
-  Track *track;
-
-  gtk_tree_model_get (model, iter, READOUT_COL, &track, -1);
-  if(track == (Track *)data) {
-    gtk_tree_model_row_changed (model, path, iter);
-    return TRUE;
-  }
-  return FALSE;
-}
-
-
-/* One of the tracks has changed (this happens when the
-   iTunesDB is read and some IDs are renumbered */
-void tm_track_changed (Track *track)
-{
-  GtkTreeModel *model = gtk_tree_view_get_model (track_treeview);
-  /*  printf("tm_track_changed enter\n");*/
-  if (model != NULL)
-    gtk_tree_model_foreach (model, tm_model_track_changed, track);
-  /*  printf("tm_track_changed exit\n");*/
-}
-
-
-
-#if ((GTK_MAJOR_VERSION == 2) && (GTK_MINOR_VERSION < 2))
-/* gtk_tree_selection_get_selected_rows() was introduced in 2.2 */
-struct gtsgsr
-{
-    GtkTreeModel **model;
-    GList        **list;
-};
-
-void  gtssf  (GtkTreeModel *model,
-	      GtkTreePath *path,
-	      GtkTreeIter *iter,
-	      gpointer data)
-{
-    struct gtsgsr *gts = data;
-    *gts->model = model;
-    *gts->list = g_list_append (*gts->list, gtk_tree_path_copy (path));
-}
-
-GList *gtk_tree_selection_get_selected_rows (GtkTreeSelection *selection,
-                                             GtkTreeModel     **model)
-{
-    struct gtsgsr gts;
-    GList *list = NULL;
-
-    gts.model = model;
-    gts.list = &list;
-
-    gtk_tree_selection_selected_foreach (selection, gtssf, &gts);
-    return list;
-}
-#endif
-
-
-/* Called when editable cell is being edited. Stores new data to the
-   track list. ID3 tags in the corresponding files are updated as
-   well, if activated in the pref settings */
-static void
-tm_cell_edited (GtkCellRendererText *renderer,
-		const gchar         *path_string,
-		const gchar         *new_text,
-		gpointer             data)
-{
-  GtkTreeModel *model;
-  GtkTreeSelection *selection;
-  TM_item column;
-  gboolean multi_edit;
-  gint sel_rows_num;
-  GList *row_list, *row_node, *first;
-
-
-  column = (TM_item) g_object_get_data(G_OBJECT(renderer), "column");
-  multi_edit = prefs_get_int("multi_edit");
-  if (column == TM_COLUMN_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);
-
-/*   printf("tm_cell_edited: column: %d\n", column); */
-
-  sel_rows_num = g_list_length (row_list);
-
-  /* block widgets and update display if multi-edit is active */
-  if (multi_edit && (sel_rows_num > 1)) block_widgets ();
-
-  first = g_list_first (row_list);
-
-  for (row_node = first;
-       row_node && (multi_edit || (row_node == first));
-       row_node = g_list_next(row_node))
-  {
-     Track *track;
-     ExtraTrackData *etr;
-     gboolean changed;
-     GtkTreeIter iter;
-     gchar *str;
-
-     gtk_tree_model_get_iter(model, &iter, (GtkTreePath *) row_node->data);
-     gtk_tree_model_get(model, &iter, READOUT_COL, &track, -1);
-     g_return_if_fail (track);
-     etr = track->userdata;
-     g_return_if_fail (etr);
-
-
-     changed = FALSE;
-
-     switch(column)
-     {
-     case TM_COLUMN_TITLE:
-     case TM_COLUMN_ALBUM:
-     case TM_COLUMN_ARTIST:
-     case TM_COLUMN_GENRE:
-     case TM_COLUMN_COMPOSER:
-     case TM_COLUMN_COMMENT:
-     case TM_COLUMN_FILETYPE:
-     case TM_COLUMN_GROUPING:
-     case TM_COLUMN_CATEGORY:
-     case TM_COLUMN_DESCRIPTION:
-     case TM_COLUMN_PODCASTURL:
-     case TM_COLUMN_PODCASTRSS:
-     case TM_COLUMN_SUBTITLE:
-     case TM_COLUMN_TRACK_NR:
-     case TM_COLUMN_TRACKLEN:
-     case TM_COLUMN_CD_NR:
-     case TM_COLUMN_YEAR:
-     case TM_COLUMN_PLAYCOUNT:
-     case TM_COLUMN_RATING:
-     case TM_COLUMN_TIME_ADDED:
-     case TM_COLUMN_TIME_PLAYED:
-     case TM_COLUMN_TIME_MODIFIED:
-     case TM_COLUMN_TIME_RELEASED:
-     case TM_COLUMN_VOLUME:
-     case TM_COLUMN_SOUNDCHECK:
-     case TM_COLUMN_BITRATE:
-     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)
-	 {
-	 case TM_COLUMN_TRACK_NR:
-	 case TM_COLUMN_CD_NR:
-	 case TM_COLUMN_TRACKLEN:
-	 case TM_COLUMN_TIME_ADDED:
-	 case TM_COLUMN_TIME_PLAYED:
-	 case TM_COLUMN_TIME_MODIFIED:
-	 case TM_COLUMN_TIME_RELEASED:
-	     str = track_get_text (track, TM_to_T (column));
-	     g_object_set (G_OBJECT (renderer), "text", str, NULL);
-	     g_free (str);
-	     break;
-	 default:
-	     break;
-	 }
-	 break;
-     default:
-        g_warning ("Programming error: tm_cell_edited: unknown track cell (%d) edited\n", column);
-        break;
-     }
-/*      printf ("  changed: %d\n", changed); */
-     if (changed)
-     {
-        track->time_modified = itdb_time_get_mac_time ();
-        pm_track_changed (track);    /* notify playlist model... */
-        data_changed (track->itdb); /* indicate that data has changed */
-
-        if (prefs_get_int("id3_write"))
-        {
-	    /* T_item tag_id;*/
-           /* should we update all ID3 tags or just the one
-              changed? -- obsoleted in 0.71*/
-/*           if (prefs_get_id3_writeall ()) tag_id = T_ALL;
-	     else                           tag_id = TM_to_T (column);*/
-           write_tags_to_file (track);
-           /* display possible duplicates that have been removed */
-           gp_duplicate_remove (NULL, NULL);
-        }
-     }
-     while (widgets_blocked && gtk_events_pending ())  gtk_main_iteration ();
-  }
-
-  if (multi_edit && (sel_rows_num > 1)) release_widgets ();
-
-  g_list_foreach(row_list, (GFunc) gtk_tree_path_free, NULL);
-  g_list_free(row_list);
-}
-
-
-/* The track data is stored in a separate list (static GList *tracks)
-   and only pointers to the corresponding Track 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 tm_cell_data_func (GtkTreeViewColumn *tree_column,
-			       GtkCellRenderer   *renderer,
-			       GtkTreeModel      *model,
-			       GtkTreeIter       *iter,
-			       gpointer           data)
-{
-  Track *track;
-  ExtraTrackData *etr;
-  iTunesDB *itdb;
-  TM_item column;
-  gchar *text;
-
-  column = (TM_item)g_object_get_data (G_OBJECT (renderer), "column");
-
-  g_return_if_fail ((column >= 0) && (column < TM_NUM_COLUMNS));
-
-  gtk_tree_model_get (model, iter, READOUT_COL, &track, -1);
-  g_return_if_fail (track);
-  etr = track->userdata;
-  g_return_if_fail (etr);
-  itdb = track->itdb;
-  g_return_if_fail (itdb);
-
-  text = track_get_text (track, TM_to_T (column));
-
-  switch (column)
-  {
-  case TM_COLUMN_TITLE:
-  case TM_COLUMN_ARTIST:
-  case TM_COLUMN_ALBUM:
-  case TM_COLUMN_GENRE:
-  case TM_COLUMN_COMPOSER:
-  case TM_COLUMN_COMMENT:
-  case TM_COLUMN_FILETYPE:
-  case TM_COLUMN_GROUPING:
-  case TM_COLUMN_CATEGORY:
-  case TM_COLUMN_DESCRIPTION:
-  case TM_COLUMN_PODCASTURL:
-  case TM_COLUMN_PODCASTRSS:
-  case TM_COLUMN_SUBTITLE:
-  case TM_COLUMN_TIME_PLAYED:
-  case TM_COLUMN_TIME_MODIFIED:
-  case TM_COLUMN_TIME_ADDED:
-  case TM_COLUMN_TIME_RELEASED:
-      g_object_set (G_OBJECT (renderer),
-		    "text", text,
-		    "editable", TRUE,
-		    "xalign", 0.0, NULL);
-      break;
-  case TM_COLUMN_TRACK_NR:
-  case TM_COLUMN_CD_NR:
-  case TM_COLUMN_BITRATE:
-  case TM_COLUMN_SAMPLERATE:
-  case TM_COLUMN_BPM:
-  case TM_COLUMN_PLAYCOUNT:
-  case TM_COLUMN_YEAR:
-  case TM_COLUMN_RATING:
-  case TM_COLUMN_VOLUME:
-  case TM_COLUMN_SOUNDCHECK:
-  case TM_COLUMN_TRACKLEN:
-      g_object_set (G_OBJECT (renderer),
-		    "text", text,
-		    "editable", TRUE,
-		    "xalign", 1.0, NULL);
-      break;
-  case TM_COLUMN_IPOD_ID:
-  case TM_COLUMN_SIZE:
-      g_object_set (G_OBJECT (renderer),
-		    "text", text,
-		    "editable", FALSE,
-		    "xalign", 1.0, NULL);
-      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,
-		    "xalign", 0.0, NULL);
-      break;
-  case TM_COLUMN_TRANSFERRED:
-      g_object_set (G_OBJECT (renderer),
-		    "active", track->transferred,
-		    "activatable", FALSE, NULL);
-      break;
-  case TM_COLUMN_COMPILATION:
-      g_object_set (G_OBJECT (renderer),
-		    "active", track->compilation,
-		    "activatable", TRUE, NULL);
-      break;
-  case TM_NUM_COLUMNS:
-      break;
-  }
-  g_free (text);
-}
-
-
-
-/* Called when a toggle cell is being changed. Stores new data to the
-   track list. */
-static void
-tm_cell_toggled (GtkCellRendererToggle *renderer,
-		 gchar *arg1,
-		 gpointer user_data)
-{
-  GtkTreeModel *model;
-  GtkTreeSelection *selection;
-  TM_item column;
-  gboolean multi_edit;
-  gint sel_rows_num;
-  GList *row_list, *row_node, *first;
-  gboolean active;
-
-  column = (TM_item) g_object_get_data(G_OBJECT(renderer), "column");
-  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);
-
-/*  printf("tm_cell_toggled: column: %d, arg1: %p\n", column, arg1); */
-
-  sel_rows_num = g_list_length (row_list);
-
-  /* block widgets and update display if multi-edit is active */
-  if (multi_edit && (sel_rows_num > 1)) block_widgets ();
-
-  first = g_list_first (row_list);
-
-  /* active will show the old state -- before the toggle */
-  g_object_get (G_OBJECT (renderer), "active", &active, NULL);
-
-  for (row_node = first;
-       row_node && (multi_edit || (row_node == first));
-       row_node = g_list_next(row_node))
-  {
-     Track *track;
-     gboolean changed;
-     GtkTreeIter iter;
-
-     gtk_tree_model_get_iter(model, &iter, (GtkTreePath *) row_node->data);
-     gtk_tree_model_get(model, &iter, READOUT_COL, &track, -1);
-     changed = FALSE;
-
-     switch(column)
-     {
-     case TM_COLUMN_TITLE:
-	 if ((active && (track->checked == 0)) ||
-	     (!active && (track->checked == 1)))
-	     changed = TRUE;
-	 if (active) track->checked = 1;
-	 else        track->checked = 0;
-	 break;
-     case TM_COLUMN_COMPILATION:
-	 if ((!active && (track->compilation == 0)) ||
-	     (active && (track->compilation == 1)))
-	     changed = TRUE;
-	 if (!active) track->compilation = 1;
-	 else        track->compilation = 0;
-        break;
-     default:
-        g_warning ("Programming error: tm_cell_toggled: unknown track cell (%d) edited\n", column);
-        break;
-     }
-/*      printf ("  changed: %d\n", changed); */
-     if (changed)
-     {
-        track->time_modified = itdb_time_get_mac_time ();
-/*        pm_track_changed (track);  notify playlist model... -- not
- *        necessary here because only the track model is affected */
-        data_changed (track->itdb);  /* indicate that data has changed */
-        
-        /* If the changed column is the compilation flag update the file
-           if required */
-        if (column == TM_COLUMN_COMPILATION)
-           if (prefs_get_int("id3_write"))
-              write_tags_to_file (track);
-        
-     }
-     while (widgets_blocked && gtk_events_pending ())  gtk_main_iteration ();
-  }
-
-  if (multi_edit && (sel_rows_num > 1)) release_widgets ();
-
-  g_list_foreach(row_list, (GFunc) gtk_tree_path_free, NULL);
-  g_list_free(row_list);
-}
-
-
-
-/* The track data is stored in a separate list (static GList *tracks)
-   and only pointers to the corresponding Track 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 tm_cell_data_func_toggle (GtkTreeViewColumn *tree_column,
-				      GtkCellRenderer   *renderer,
-				      GtkTreeModel      *model,
-				      GtkTreeIter       *iter,
-				      gpointer           data)
-{
-  Track *track;
-  TM_item column;
-
-  column = (TM_item)g_object_get_data (G_OBJECT (renderer), "column");
-  gtk_tree_model_get (model, iter, READOUT_COL, &track, -1);
-
-  switch (column)
-  {
-  case TM_COLUMN_TITLE:
-      g_object_set (G_OBJECT (renderer),
-		    "active", !track->checked,
-		    "activatable", TRUE, NULL);
-      break;
-  default:
-      g_warning ("Programming error: unknown column in tm_cell_data_func_toggle: %d\n", column);
-      break;
-  }
-}
-
-/**
- * tm_get_nr_of_tracks - get the number of tracks displayed
- * currently in the track model Returns - the number of tracks displayed
- * currently
- */
-guint
-tm_get_nr_of_tracks(void)
-{
-    GtkTreeIter i;
-    guint result = 0;
-    gboolean valid = FALSE;
-    GtkTreeModel *tm = NULL;
-
-    if((tm = gtk_tree_view_get_model(GTK_TREE_VIEW(track_treeview))))
-    {
-	if((valid = gtk_tree_model_get_iter_first(GTK_TREE_MODEL(tm),&i)))
-	{
-	    result++;
-	    while((valid = gtk_tree_model_iter_next(tm,&i)))
-		result++;
-	}
-    }
-    return(result);
-
-}
-
-
-static gint comp_int (gconstpointer a, gconstpointer b)
-{
-    return (GPOINTER_TO_INT(a)-(GPOINTER_TO_INT(b)));
-}
-
-
-/**
- * Reorder tracks in playlist to match order of tracks displayed in track
- * view. Only the subset of tracks currently displayed is reordered.
- * data_changed() is called when necessary.
- */
-void
-tm_rows_reordered (void)
-{
-    Playlist *current_pl;
-
-    g_return_if_fail (track_treeview);
-    current_pl = pm_get_selected_playlist ();
-
-    if(current_pl)
-    {
-	GtkTreeModel *tm = NULL;
-	GtkTreeIter i;
-	GList *new_list = NULL, *old_pos_l = NULL;
-	gboolean valid = FALSE;
-	GList *nlp, *olp;
-	gboolean changed = FALSE;
-	iTunesDB *itdb = NULL;
-
-	tm = gtk_tree_view_get_model (track_treeview);
-	g_return_if_fail (tm);
-
-	valid = gtk_tree_model_get_iter_first (tm,&i);
-	while (valid)
-	{
-	    Track *new_track;
-	    gint old_position;
-
-	    gtk_tree_model_get (tm, &i, READOUT_COL, &new_track, -1);
-	    g_return_if_fail (new_track);
-
-	    if (!itdb) itdb = new_track->itdb;
-	    new_list = g_list_append (new_list, new_track);
-	    /* what position was this track in before? */
-	    old_position = g_list_index (current_pl->members, new_track);
-	    /* check if we already used this position before (can
-	       happen if track has been added to playlist more than
-	       once */
-	    while ((old_position != -1) &&
-		   g_list_find (old_pos_l, GINT_TO_POINTER(old_position)))
-	    {  /* find next occurence */
-		GList *link;
-		gint next;
-		link = g_list_nth (current_pl->members, old_position + 1);
-		next = g_list_index (link, new_track);
-		if (next == -1)   old_position = -1;
-		else              old_position += (1+next);
-	    }
-	    /* we make a sorted list of the old positions */
-	    old_pos_l = g_list_insert_sorted (old_pos_l,
-					      GINT_TO_POINTER(old_position),
-					      comp_int);
-	    valid = gtk_tree_model_iter_next (tm, &i);
-	}
-	nlp = new_list;
-	olp = old_pos_l;
-	while (nlp && olp)
-	{
-	    GList *old_link;
-	    guint position = GPOINTER_TO_INT(olp->data);
-
-	    /* if position == -1 one of the tracks in the track view
-	       could not be found in the selected playlist -> stop! */
-	    if (position == -1)
-	    {
-		g_warning ("Programming error: tm_rows_reordered_callback: track in track view was not in selected playlist\n");
-		g_return_if_reached ();
-	    }
-	    old_link = g_list_nth (current_pl->members, position);
-	    /* replace old track with new track */
-	    if (old_link->data != nlp->data)
-	    {
-		old_link->data = nlp->data;
-		changed = TRUE;
-	    }
-	    /* next */
-	    nlp = nlp->next;
-	    olp = olp->next;
-	}
-	g_list_free (new_list);
-	g_list_free (old_pos_l);
-	/* if we changed data, mark data as changed and adopt order in
-	   sort tabs */
-	if (changed)
-	{
-	    data_changed (itdb);
-	    st_adopt_order_in_playlist ();
-	}
-    }
-}
-
-
-static void
-on_trackids_list_foreach ( GtkTreeModel *tm, GtkTreePath *tp,
-			   GtkTreeIter *i, gpointer data)
-{
-    Track *tr = NULL;
-    GList *l = *((GList**)data);
-    gtk_tree_model_get(tm, i, READOUT_COL, &tr, -1);
-    g_return_if_fail (tr);
-    l = g_list_append(l, GUINT_TO_POINTER(tr->id));
-    *((GList**)data) = l;
-}
-
-
-/* return a list containing the track IDs of all tracks currently being
-   selected */
-GList *
-tm_get_selected_trackids(void)
-{
-    GList *result = NULL;
-    GtkTreeSelection *ts = NULL;
-
-    if((ts = gtk_tree_view_get_selection(GTK_TREE_VIEW(track_treeview))))
-    {
-	gtk_tree_selection_selected_foreach(ts, on_trackids_list_foreach,
-					    &result);
-    }
-    return(result);
-}
-
-/* return a list containing the track IDs of all tracks currently being
-   displayed */
-GList *
-tm_get_all_trackids(void)
-{
-    gboolean
-	on_all_trackids_list_foreach (GtkTreeModel *tm, GtkTreePath *tp,
-				      GtkTreeIter *i, gpointer data)
-	{
-	    on_trackids_list_foreach (tm, tp, i, data);
-	    return FALSE;
-	}
-    GList *result = NULL;
-    GtkTreeModel *model;
-
-    if((model = gtk_tree_view_get_model (track_treeview)))
-    {
-	gtk_tree_model_foreach(model, on_all_trackids_list_foreach,
-			       &result);
-    }
-    return(result);
-}
-
-static void
-on_tracks_list_foreach ( GtkTreeModel *tm, GtkTreePath *tp,
-			 GtkTreeIter *i, gpointer data)
-{
-    Track *tr = NULL;
-    GList *l = *((GList**)data);
-    gtk_tree_model_get(tm, i, READOUT_COL, &tr, -1);
-    g_return_if_fail (tr);
-    l = g_list_append(l, tr);
-    *((GList**)data) = l;
-}
-
-
-/* return a list containing pointers to all tracks currently being
-   selected */
-GList *
-tm_get_selected_tracks(void)
-{
-    GList *result = NULL;
-    GtkTreeSelection *ts = NULL;
-
-    if((ts = gtk_tree_view_get_selection(GTK_TREE_VIEW(track_treeview))))
-    {
-	gtk_tree_selection_selected_foreach(ts, on_tracks_list_foreach,
-					    &result);
-    }
-    return(result);
-}
-
-
-
-    /* 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)
-{
-    GList *result = NULL;
-    GtkTreeModel *model = gtk_tree_view_get_model (track_treeview);
-
-    g_return_val_if_fail (model, NULL);
-
-    gtk_tree_model_foreach(model, on_all_tracks_list_foreach,
-			   &result);
-    return result;
-}
-
-
-/* Stop editing. If @cancel is TRUE, the edited value will be
-   discarded (I have the feeling that the "discarding" part does not
-   work quite the way intended). */
-void tm_stop_editing (gboolean cancel)
-{
-    GtkTreeViewColumn *col;
-
-    if (!track_treeview)  return;
-
-    gtk_tree_view_get_cursor (track_treeview, NULL, &col);
-    if (col)
-    {
-	/* 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_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_int("multi_edit", me);
-    }
-}
-
-
-
-/* Function to compare @tm_item of @track1 and @track2. Used by
-   tm_data_compare_func() */
-static gint tm_data_compare (Track *track1, Track *track2,
-			     TM_item tm_item)
-{
-  gint cmp = 0;
-  ExtraTrackData *etr1, *etr2;
-
-
-  g_return_val_if_fail (track1 && track2, 0);
-
-  switch (tm_item)
-  {
-  case TM_COLUMN_TITLE:
-  case TM_COLUMN_ALBUM:
-  case TM_COLUMN_GENRE:
-  case TM_COLUMN_COMPOSER:
-  case TM_COLUMN_COMMENT:
-  case TM_COLUMN_FILETYPE:
-  case TM_COLUMN_GROUPING:
-  case TM_COLUMN_ARTIST:
-  case TM_COLUMN_CATEGORY:
-  case TM_COLUMN_DESCRIPTION:
-  case TM_COLUMN_PODCASTURL:
-  case TM_COLUMN_PODCASTRSS:
-  case TM_COLUMN_SUBTITLE:
-      /* string_compare_func is set to either compare_string_fuzzy or
-	 compare_string in tm_sort_column_changed() which is called
-	 once before the comparing begins. */
-      cmp = string_compare_func (
-	  track_get_item (track1, TM_to_T (tm_item)),
-	  track_get_item (track2, TM_to_T (tm_item)));
-      break;
-  case TM_COLUMN_TRACK_NR:
-      cmp = track1->tracks - track2->tracks;
-      if (cmp == 0) cmp = track1->track_nr - track2->track_nr;
-      break;
-  case TM_COLUMN_CD_NR:
-      cmp = track1->cds - track2->cds;
-      if (cmp == 0) cmp = track1->cd_nr - track2->cd_nr;
-      break;
-  case TM_COLUMN_IPOD_ID:
-      cmp = track1->id - track2->id;
-      break;
-  case TM_COLUMN_PC_PATH:
-      etr1 = track1->userdata;
-      etr2 = track2->userdata;
-      g_return_val_if_fail (etr1 && etr2, 0);
-      cmp = g_utf8_collate (etr1->pc_path_utf8, etr2->pc_path_utf8);
-      break;
-  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;
-      else if(track1->transferred == TRUE)
-	  cmp = 1;
-      else
-	  cmp = -1;
-      break;
-  case TM_COLUMN_COMPILATION:
-      if(track1->compilation == track2->compilation)
-	  cmp = 0;
-      else if(track1->compilation == TRUE)
-	  cmp = 1;
-      else
-	  cmp = -1;
-      break;
-  case TM_COLUMN_SIZE:
-      cmp = track1->size - track2->size;
-      break;
-  case TM_COLUMN_TRACKLEN:
-      cmp = track1->tracklen - track2->tracklen;
-      break;
-  case TM_COLUMN_BITRATE:
-      cmp = track1->bitrate - track2->bitrate;
-      break;
-  case TM_COLUMN_SAMPLERATE:
-      cmp = track1->samplerate - track2->samplerate;
-      break;
-  case TM_COLUMN_BPM:
-      cmp = track1->BPM - track2->BPM;
-      break;
-  case TM_COLUMN_PLAYCOUNT:
-      cmp = track1->playcount - track2->playcount;
-      break;
-  case  TM_COLUMN_RATING:
-      cmp = track1->rating - track2->rating;
-      break;
-  case TM_COLUMN_TIME_ADDED:
-  case TM_COLUMN_TIME_PLAYED:
-  case TM_COLUMN_TIME_MODIFIED:
-  case TM_COLUMN_TIME_RELEASED:
-      cmp = COMP (time_get_time (track1, TM_to_T (tm_item)),
-		  time_get_time (track2, TM_to_T (tm_item)));
-      break;
-  case  TM_COLUMN_VOLUME:
-      cmp = track1->volume - track2->volume;
-      break;
-  case  TM_COLUMN_SOUNDCHECK:
-      /* If soundcheck is unset (0) use 0 dB (1000) */
-      cmp = (track1->soundcheck? track1->soundcheck:1000) - 
-	  (track2->soundcheck? track2->soundcheck:1000);
-      break;
-  case TM_COLUMN_YEAR:
-      cmp = track1->year - track2->year;
-      break;
-  default:
-      g_warning ("Programming error: tm_data_compare_func: no sort method for tm_item %d\n", tm_item);
-      break;
-  }
-
-  /* implement stable sorting: if two items are the same, revert to
-     the last relative positition */
-  if (cmp == 0)
-  {
-      etr1 = track1->userdata;
-      etr2 = track2->userdata;
-      g_return_val_if_fail (etr1 && etr2, 0);
-      cmp = etr1->sortindex - etr2->sortindex;
-  }
-  return cmp;
-}
-
-
-/* Function used to compare rows with user's search string */
-gboolean tm_search_equal_func (GtkTreeModel *model,
-			       gint column,
-			       const gchar *key,
-			       GtkTreeIter *iter,
-			       gpointer search_data)
-{
-  Track *track1;
-  gboolean cmp = 0;
-  gtk_tree_model_get (model, iter, READOUT_COL, &track1, -1);
-  switch (column)
-  {
-  case TM_COLUMN_TITLE:
-  case TM_COLUMN_ALBUM:
-  case TM_COLUMN_GENRE:
-  case TM_COLUMN_COMPOSER:
-  case TM_COLUMN_COMMENT:
-  case TM_COLUMN_FILETYPE:
-  case TM_COLUMN_GROUPING:
-  case TM_COLUMN_ARTIST:
-  case TM_COLUMN_CATEGORY:
-  case TM_COLUMN_DESCRIPTION:
-  case TM_COLUMN_PODCASTURL:
-  case TM_COLUMN_PODCASTRSS:
-  case TM_COLUMN_SUBTITLE:
-  case TM_COLUMN_PC_PATH:
-  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);
-    break;
-  case TM_COLUMN_TRACK_NR:
-  case TM_COLUMN_IPOD_ID:
-  case TM_COLUMN_TRANSFERRED:
-  case TM_COLUMN_SIZE:
-  case TM_COLUMN_TRACKLEN:
-  case TM_COLUMN_BITRATE:
-  case TM_COLUMN_PLAYCOUNT:
-  case TM_COLUMN_RATING:
-  case TM_COLUMN_TIME_PLAYED:
-  case TM_COLUMN_TIME_MODIFIED:
-  case TM_COLUMN_VOLUME:
-  case TM_COLUMN_CD_NR:
-  case TM_COLUMN_TIME_ADDED:
-  case TM_COLUMN_SOUNDCHECK:
-  case TM_COLUMN_SAMPLERATE:
-  case TM_COLUMN_BPM:
-  case TM_COLUMN_TIME_RELEASED:
-  case TM_NUM_COLUMNS:
-      g_warning ("Programming error: tm_search_equal_func: no sort method for column %d\n", column);
-      break;
-  }
-  return cmp;
-};
-
-/* Function used to compare two cells during sorting (track view) */
-gint tm_data_compare_func (GtkTreeModel *model,
-			GtkTreeIter *a,
-			GtkTreeIter *b,
-			gpointer user_data)
-{
-  Track *track1;
-  Track *track2;
-  gint column;
-  GtkSortType order;
-  gint result;
-
-  gtk_tree_model_get (model, a, READOUT_COL, &track1, -1);
-  gtk_tree_model_get (model, b, READOUT_COL, &track2, -1);
-  if(gtk_tree_sortable_get_sort_column_id (GTK_TREE_SORTABLE (model),
-					   &column, &order) == FALSE)
-      return 0;
-
-  result = tm_data_compare (track1, track2, column);
-  return result;
-}
-
-
-/* set/read the counter used to remember how often the sort column has
-   been clicked.
-   @inc: negative: reset counter to 0
-   @inc: positive or zero : add to counter
-   return value: new value of the counter */
-gint tm_sort_counter (gint inc)
-{
-    static gint cnt = 0;
-
-    if (inc <0)
-    {
-	cnt = 0;
-    }
-    else
-    {
-	cnt += inc;
-    }   
-    return cnt;
-}
-
-
-/* Redisplays the tracks in the track view according to the order
- * stored in the sort tab view. This only works if the track view is
- * not sorted --> skip if sorted */
-
-void tm_adopt_order_in_sorttab (void)
-{
-    if (prefs_get_int("tm_sort_") == SORT_NONE)
-    {
-	GList *gl, *tracks = NULL;
-
-	/* retrieve the currently displayed tracks (non ordered) from
-	   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_int("sort_tab_num")-1);
-	for (gl=tracks; gl; gl=gl->next)
-	    tm_add_track_to_track_model ((Track *)gl->data, NULL);
-    }
-}
-
-
-/* redisplay the contents of the track view in it's unsorted order */
-static void tm_unsort (void)
-{
-    if (track_treeview)
-    {
-	GtkTreeModel *model= gtk_tree_view_get_model (track_treeview);
-
-	prefs_set_int("tm_sort_", SORT_NONE);
-	if (!BROKEN_GTK_TREE_SORT)
-	{
-/* no need to comment this out -- searching still works, but for lack
-   of a ctrl-g only the first occurence will be found */
-/*	    gtk_tree_view_set_enable_search (GTK_TREE_VIEW
- * (track_treeview), FALSE);*/ 
-	    gtk_tree_sortable_set_sort_column_id
-		(GTK_TREE_SORTABLE (model),
-		 GTK_TREE_SORTABLE_UNSORTED_SORT_COLUMN_ID,
-		 GTK_SORT_ASCENDING);
-	    tm_adopt_order_in_sorttab ();
-	}
-	else
-	{
-	  /* This gets quiet annyoing with the time, disabled
-	    gtkpod_warning (_("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"), gtk_major_version, gtk_minor_version, gtk_micro_version);*/
-	}
-	tm_sort_counter (-1);
-    }
-}
-
-
-static void tm_set_search_column (gint newcol)
-{
-/*     printf ("track_treeview: %p, col: %d\n", track_treeview, newcol); */
-    g_return_if_fail (track_treeview);
-
-    gtk_tree_view_set_search_column (GTK_TREE_VIEW (track_treeview),
-				       newcol);
-    switch (newcol)
-    {
-    case TM_COLUMN_TITLE:
-    case TM_COLUMN_ALBUM:
-    case TM_COLUMN_GENRE:
-    case TM_COLUMN_COMPOSER:
-    case TM_COLUMN_COMMENT:
-    case TM_COLUMN_FILETYPE:
-    case TM_COLUMN_GROUPING:
-    case TM_COLUMN_ARTIST:
-    case TM_COLUMN_CATEGORY:
-    case TM_COLUMN_DESCRIPTION:
-    case TM_COLUMN_PODCASTURL:
-    case TM_COLUMN_PODCASTRSS:
-    case TM_COLUMN_SUBTITLE:
-    case TM_COLUMN_PC_PATH:
-    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:
-    case TM_COLUMN_IPOD_ID:
-    case TM_COLUMN_TRANSFERRED:
-    case TM_COLUMN_SIZE:
-    case TM_COLUMN_TRACKLEN:
-    case TM_COLUMN_BITRATE:
-    case TM_COLUMN_PLAYCOUNT:
-    case TM_COLUMN_RATING:
-    case TM_COLUMN_TIME_PLAYED:
-    case TM_COLUMN_TIME_MODIFIED:
-    case TM_COLUMN_VOLUME:
-    case TM_COLUMN_CD_NR:
-    case TM_COLUMN_TIME_ADDED:
-    case TM_COLUMN_SOUNDCHECK:
-    case TM_COLUMN_SAMPLERATE:
-    case TM_COLUMN_BPM:
-    case TM_COLUMN_TIME_RELEASED:
-    case TM_NUM_COLUMNS:
-	gtk_tree_view_set_enable_search (GTK_TREE_VIEW (track_treeview), FALSE);
-	break;
-    }
-    prefs_set_int (TM_PREFS_SEARCH_COLUMN, newcol);
-}
-
-
-/* This is called before when changing the sort order or the sort
-   column, and before doing the sorting */
-static void tm_sort_column_changed (GtkTreeSortable *ts,
-				    gpointer user_data)
-{
-    static gint lastcol = -1; /* which column was sorted last time? */
-    gchar *buf;
-    gint newcol;
-    GtkSortType order;
-    GList *tracks, *gl;
-    gint32 i, inc;
-
-    gtk_tree_sortable_get_sort_column_id (ts, &newcol, &order);
-
-/*     printf ("scc -- col: %d, order: %d\n", newcol, order);  */
-
-    /* set compare function for strings (to speed up sorting) */
-    buf = g_strdup_printf ("sort_ign_field_%d", TM_to_T (newcol));
-    if (prefs_get_int (buf))
-	string_compare_func = compare_string_fuzzy;
-    else
-	string_compare_func = compare_string;
-    g_free (buf);
-
-    /* don't do anything if no sort column is set */
-    if (newcol == -2)
-    {
-	lastcol = newcol;
-	return;
-    }
-
-    if (newcol != lastcol)
-    {
-	tm_sort_counter (-1);
-	lastcol = newcol;
-    }
-
-    if (tm_sort_counter (1) >= 3)
-    { /* after clicking three times, reset sort order! */
-	tm_unsort ();  /* also resets sort counter */
-    }
-    else
-    {
-	prefs_set_int("tm_sort_", order);
-    }
-    prefs_set_int("tm_sortcol", newcol);
-
-    tm_set_search_column (newcol);
-
-    if(prefs_get_int("tm_autostore"))  tm_rows_reordered ();
-    sort_window_update ();
-
-    /* stable sorting: index original order */
-    tracks = tm_get_all_tracks ();
-    /* make numbering ascending or decending depending on sort order
-       (then we don't have to worry about the sort order when doing
-       the comparison in tm_data_compare_func() */
-    if (order == GTK_SORT_ASCENDING)
-    {
-	i=0;
-	inc = 1;
-    }
-    else
-    {
-	i=-1;
-	inc = -1;
-    }
-    for (gl=tracks; gl; gl=gl->next)
-    {
-	ExtraTrackData *etr;
-	Track *tr = gl->data;
-	g_return_if_fail (tr);
-	etr = tr->userdata;
-	g_return_if_fail (etr);
-	etr->sortindex = i;
-	i+=inc;
-    }
-    g_list_free (tracks);
-}
-
-
-void tm_sort (TM_item col, GtkSortType order)
-{
-    if (track_treeview)
-    {
-	GtkTreeModel *model= gtk_tree_view_get_model (track_treeview);
-	if (order != SORT_NONE)
-	{
-	    gtk_tree_sortable_set_sort_column_id (GTK_TREE_SORTABLE (model),
-						  col, order);
-	}
-	else
-	{ /* only unsort if treeview is sorted */
-	    gint column;
-	    GtkSortType order;
-	    if (gtk_tree_sortable_get_sort_column_id
-		(GTK_TREE_SORTABLE (model), &column, &order))
-	    {
-		/* column == -2 actually is not defined, but it means
-		   that the model is unsorted. The sortable interface
-		   is badly implemented in gtk 2.4 */
-		if (column != -2)
-		    tm_unsort ();
-	    }
-	}
-    }
-}
-
-
-
-
-
-/* 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;
-  GtkCellRenderer *renderer = NULL;  /* default */
-  GtkTooltips *tt;
-
-  g_return_val_if_fail (gtkpod_window, NULL);
-  tt = g_object_get_data (G_OBJECT (gtkpod_window), "main_tooltips");
-  g_return_val_if_fail (tt, NULL);
-
-  g_return_val_if_fail (tm_item >= 0, NULL);
-  g_return_val_if_fail (tm_item < TM_NUM_COLUMNS, NULL);
-
-  text = gettext (get_tm_string (tm_item));
-
-  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:
-  case TM_COLUMN_COMPOSER:
-  case TM_COLUMN_COMMENT:
-  case TM_COLUMN_FILETYPE:
-  case TM_COLUMN_GROUPING:
-  case TM_COLUMN_BITRATE:
-  case TM_COLUMN_SAMPLERATE:
-  case TM_COLUMN_BPM:
-  case TM_COLUMN_CATEGORY:
-  case TM_COLUMN_DESCRIPTION:
-  case TM_COLUMN_PODCASTURL:
-  case TM_COLUMN_PODCASTRSS:
-  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
-     get_tm_string() */
-  case TM_COLUMN_RATING:
-      text = _("Rtng");
-      break;
-  case TM_COLUMN_TRACK_NR:
-      text = _("#");
-      break;
-  case TM_COLUMN_CD_NR:
-      text = _("CD");
-      break;
-  case TM_COLUMN_IPOD_ID:
-      text = _("ID");
-      break;
-  case TM_COLUMN_TRANSFERRED:
-      text = _("Trnsfrd");
-      renderer = gtk_cell_renderer_toggle_new ();
-      break;
-  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");
-      break;
-  case TM_COLUMN_PLAYCOUNT:
-      text = _("Plycnt");
-      break;
-  case TM_COLUMN_TIME_PLAYED:
-      text = _("Played");
-      break;
-  case TM_COLUMN_TIME_MODIFIED:
-      text = _("Modified");
-      break;
-  case TM_COLUMN_TIME_ADDED:
-      text = _("Added");
-      break;
-  case TM_COLUMN_TIME_RELEASED:
-      text = _("Released");
-      break;
-  case TM_COLUMN_YEAR:
-      text = _("Year");
-      break;
-  case TM_COLUMN_VOLUME:
-      text = _("Vol.");
-      break;
-  case TM_COLUMN_SOUNDCHECK:
-      text = _("Sndchk.");
-      break;
-  case TM_NUM_COLUMNS:
-      g_return_val_if_reached (NULL);
-      break;
-  }
-
-  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 *)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)
-  {
-      gtk_tree_view_column_set_visible (col,
-					prefs_get_int_index("col_visible", tm_item));
-  }
-  if (get_tm_tooltip (tm_item))
-      gtk_tooltips_set_tip (tt, col->button, 
-			    gettext (get_tm_tooltip (tm_item)),
-			    NULL);
-  return col;
-}
-
-
-/* Adds the columns to our track_treeview */
-static void tm_add_columns (void)
-{
-    gint i;
-
-    for (i=0; i<TM_NUM_COLUMNS; ++i)
-    {
-	tm_add_column (prefs_get_int_index("col_order", i), -1);
-    }
-    tm_show_preferred_columns();
-}
-
-static void tm_select_current_position (gint x, gint y)
-{
-    if (track_treeview)
-    {
-	GtkTreePath *path;
-
-	gtk_tree_view_get_path_at_pos (track_treeview,
-				       x, y, &path, NULL, NULL, NULL);
-	if (path)
-	{
-	    GtkTreeSelection *ts = gtk_tree_view_get_selection (track_treeview);
-	    gtk_tree_selection_select_path (ts, path);
-	    gtk_tree_path_free (path);
-	}
-    }
-}
-
-static gboolean
-tm_button_press_event(GtkWidget *w, GdkEventButton *e, gpointer data)
-{
-    if(w && e)
-    {
-	switch(e->button)
-	{
-	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);
-}
-
-/* called when the track selection changes */
-static void
-tm_selection_changed_event(GtkTreeSelection *selection, gpointer data)
-{
-    GtkTreeView *treeview = gtk_tree_selection_get_tree_view (selection);
-    GtkTreePath *path;
-    GtkTreeViewColumn *column;
-    TM_item col_id;
-
-    gtk_tree_view_get_cursor (treeview, &path, &column);
-    if (path)
-    {
-	col_id = tm_lookup_col_id (column);
-	if (col_id != -1)  tm_set_search_column (col_id);
-    }
-    info_update_track_view_selected ();
-}
-
-
-/* Create tracks treeview */
-void tm_create_treeview (void)
-{
-  GtkTreeModel *model = NULL;
-  GtkWidget *track_window = gtkpod_xml_get_widget (main_window_xml, "track_window");
-  GtkTreeSelection *select;
-  gint col;
-  GtkWidget *stv = gtk_tree_view_new ();
-
-  /* create tree view */
-  if (track_treeview)
-  {   /* delete old tree view */
-      model = gtk_tree_view_get_model (track_treeview);
-      /* FIXME: how to delete model? */
-      gtk_widget_destroy (GTK_WIDGET (track_treeview));
-  }
-  track_treeview = GTK_TREE_VIEW (stv);
-  gtk_widget_show (stv);
-  gtk_container_add (GTK_CONTAINER (track_window), stv);
-  /* create model (we only need one column for the model -- only a
-   * pointer to the track has to be stored) */
-  model = GTK_TREE_MODEL (
-      gtk_list_store_new (1, G_TYPE_POINTER));
-  gtk_tree_view_set_model (track_treeview, GTK_TREE_MODEL (model));
-  gtk_tree_view_set_rules_hint (GTK_TREE_VIEW (track_treeview), TRUE);
-  gtk_tree_view_set_search_equal_func (GTK_TREE_VIEW (track_treeview), 
-				       tm_search_equal_func,
-				       NULL,
-				       NULL);
-  select = gtk_tree_view_get_selection (track_treeview);
-  gtk_tree_selection_set_mode (select,
-			       GTK_SELECTION_MULTIPLE);
-  g_signal_connect (G_OBJECT (select) , "changed",
-		    G_CALLBACK (tm_selection_changed_event),
-		    NULL);
-  tm_add_columns ();
-
-/*   gtk_drag_source_set (GTK_WIDGET (track_treeview), GDK_BUTTON1_MASK, */
-/* 		       tm_drag_types, TGNR (tm_drag_types), */
-/* 		       GDK_ACTION_COPY|GDK_ACTION_MOVE); */
-/*   gtk_tree_view_enable_model_drag_dest(track_treeview, tm_drop_types, */
-/* 				       TGNR (tm_drop_types), */
-/* 				       GDK_ACTION_COPY|GDK_ACTION_MOVE); */
-/*   /\* need the gtk_drag_dest_set() with no actions ("0") so that the */
-/*      data_received callback gets the correct info value. This is most */
-/*      likely a bug... *\/ */
-/*   gtk_drag_dest_set_target_list (GTK_WIDGET (track_treeview), */
-/* 				 gtk_target_list_new (tm_drop_types, */
-/* 						      TGNR (tm_drop_types))); */
-
-
-  gtk_drag_source_set (GTK_WIDGET (track_treeview),
-		       GDK_BUTTON1_MASK,
-		       tm_drag_types, TGNR (tm_drag_types),
-		       GDK_ACTION_COPY|GDK_ACTION_MOVE);
-  gtk_drag_dest_set (GTK_WIDGET (track_treeview),
-		     0,
-		     tm_drop_types, TGNR (tm_drop_types),
-		     GDK_ACTION_COPY|GDK_ACTION_MOVE);
-
-
-  g_signal_connect ((gpointer) track_treeview, "drag-begin",
-		    G_CALLBACK (tm_drag_begin),
-		    NULL);
-
-  g_signal_connect ((gpointer) track_treeview, "drag-data-delete",
-		    G_CALLBACK (tm_drag_data_delete),
-		    NULL);
-
-  g_signal_connect ((gpointer) track_treeview, "drag-data-get",
-		    G_CALLBACK (tm_drag_data_get),
-		    NULL);
-
-  g_signal_connect ((gpointer) track_treeview, "drag-data-received",
-		    G_CALLBACK (tm_drag_data_received),
-		    NULL);
-
-  g_signal_connect ((gpointer) track_treeview, "drag-drop",
-		    G_CALLBACK (tm_drag_drop),
-		    NULL);
-
-  g_signal_connect ((gpointer) track_treeview, "drag-end",
-		    G_CALLBACK (tm_drag_end),
-		    NULL);
-
-  g_signal_connect ((gpointer) track_treeview, "drag-leave",
-		    G_CALLBACK (tm_drag_leave),
-		    NULL);
-
-  g_signal_connect ((gpointer) track_treeview, "drag-motion",
-		    G_CALLBACK (tm_drag_motion),
-		    NULL);
-
-  g_signal_connect_after ((gpointer) stv, "key_release_event",
-			  G_CALLBACK (on_track_treeview_key_release_event),
-			  NULL);
-  g_signal_connect ((gpointer) track_treeview, "button-press-event",
-		    G_CALLBACK (tm_button_press_event),
-		    NULL);
-  g_signal_connect (G_OBJECT (model), "sort-column-changed",
-		    G_CALLBACK (tm_sort_column_changed),
-		    (gpointer)0);
-
-  /* initialize sorting */
-  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))
-  {
-      tm_set_search_column (col);
-  }
-  else
-  {   /* reasonable default */
-      tm_set_search_column (TM_COLUMN_TITLE);
-  }
-}
-
-
-void
-tm_show_preferred_columns(void)
-{
-    GtkTreeViewColumn *tvc = NULL;
-    gboolean visible;
-    gint i;
-
-    for (i=0; i<TM_NUM_COLUMNS; ++i)
-    {
-	tvc = gtk_tree_view_get_column (track_treeview, i);
-	visible = prefs_get_int_index("col_visible", 
-      prefs_get_int_index("col_order", i));
-	gtk_tree_view_column_set_visible (tvc, visible);
-    }
-}
-
-
-/* update the cfg structure (preferences) with the current sizes /
-   positions (called by display_update_default_sizes():
-   column widths of track model */
-void tm_update_default_sizes (void)
-{
-    gint i;
-    GtkTreeViewColumn *col;
-    gint col_width;
-
-    /* column widths */
-    for (i=0; i<TM_NUM_COLUMNS; ++i)
-    {
-	col = tm_columns [i];
-	if (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);
-   
-	}
-    }
-}
-
-
-/* get the TM_ITEM column id for @column. Returns -1 if column could
-   not be found */
-static TM_item tm_lookup_col_id (GtkTreeViewColumn *column)
-{
-    gint i;
-
-    if (column)
-    {
-	for (i=0; i<TM_NUM_COLUMNS; ++i)
-	{
-	    if (column == tm_columns[i]) return i;
-	}
-    }
-    return -1;
-}
-
-
-/* Compare function to avoid sorting */
-static gint tm_nosort_comp (GtkTreeModel *model,
-			    GtkTreeIter *a,
-			    GtkTreeIter *b,
-			    gpointer user_data)
-{
-    return 0;
-}
-
-
-/* Disable sorting of the view during lengthy updates. */
-/* @enable: TRUE: enable, FALSE: disable */
-void tm_enable_disable_view_sort (gboolean enable)
-{
-    static gint disable_count = 0;
-
-    if (enable)
-    {
-	disable_count--;
-	if (disable_count < 0)
-	    fprintf (stderr, "Programming error: disable_count < 0\n");
-	if (disable_count == 0 && track_treeview)
-	{
-	    if ((prefs_get_int("tm_sort_") != SORT_NONE) &&
-		sorting_disabled())
-	    {
-		/* Re-enable sorting */
-		GtkTreeModel *model = gtk_tree_view_get_model (track_treeview);
-		if (BROKEN_GTK_TREE_SORT)
-		{
-		    gtk_tree_sortable_set_sort_func (
-			GTK_TREE_SORTABLE (model),
-			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_int("tm_sortcol"),
-			prefs_get_int("tm_sort_"));
-		}
-	    }
-	}
-    }
-    else
-    {
-	if (disable_count == 0 && track_treeview)
-	{
-	    if ((prefs_get_int("tm_sort_") != SORT_NONE) &&
-		sorting_disabled ())
-	    {
-		/* Disable sorting */
-		GtkTreeModel *model = gtk_tree_view_get_model (track_treeview);
-		if (BROKEN_GTK_TREE_SORT)
-		{
-		    gtk_tree_sortable_set_sort_func (
-			GTK_TREE_SORTABLE (model),
-			prefs_get_int("tm_sortcol"),
-			tm_nosort_comp, NULL, NULL);
-		}
-		else
-		{
-		    gtk_tree_sortable_set_sort_column_id (
-			GTK_TREE_SORTABLE (model),
-			GTK_TREE_SORTABLE_UNSORTED_SORT_COLUMN_ID,
-			prefs_get_int("tm_sort_"));
-		}
-	    }
-	}
-	disable_count++;
-    }
-}
-
-
-
-/* Callback for adding tracks within tm_add_filelist */
-void tm_addtrackfunc (Playlist *plitem, Track *track, gpointer data)
-{
-    struct asf_data *asf = (struct asf_data *)data;
-    GtkTreeModel *model;
-    GtkTreeIter new_iter;
-
-    model = gtk_tree_view_get_model (track_treeview);
-
-/*    printf("plitem: %p\n", plitem);
-      if (plitem) printf("plitem->type: %d\n", plitem->type);*/
-    /* add to playlist but not to the display */
-    gp_playlist_add_track (plitem, track, FALSE);
-
-    /* create new iter in track view */
-    switch (asf->pos)
-    {
-    case GTK_TREE_VIEW_DROP_INTO_OR_BEFORE:
-    case GTK_TREE_VIEW_DROP_INTO_OR_AFTER:
-    case GTK_TREE_VIEW_DROP_AFTER:
-	gtk_list_store_insert_after (GTK_LIST_STORE (model),
-				     &new_iter, asf->to_iter);
-	break;
-    case GTK_TREE_VIEW_DROP_BEFORE:
-	gtk_list_store_insert_before (GTK_LIST_STORE (model),
-				      &new_iter, asf->to_iter);
-	break;
-    }
-    /* set the iter */
-    tm_add_track_to_track_model (track, &new_iter);
-}
-
-
-/* DND: insert a list of files before/after @path
-   @data: list of files
-   @path: where to drop (NULL to drop at the end)
-   @pos:  before/after... (ignored if @path is NULL)
-*/
-gboolean tm_add_filelist (gchar *data,
-			  GtkTreePath *path,
-			  GtkTreeViewDropPosition pos)
-{
-    GtkTreeModel *model;
-    gchar *buf = NULL, *use_data;
-    gchar **files, **filep;
-    Playlist *current_playlist = pm_get_selected_playlist ();
-
-    g_return_val_if_fail (data, FALSE);
-    g_return_val_if_fail (*data, FALSE);
-    g_return_val_if_fail (current_playlist, FALSE);
-
-    model = gtk_tree_view_get_model (track_treeview);
-    g_return_val_if_fail (model, FALSE);
-    if (path)
-    {
-    }
-
-    if (pos != GTK_TREE_VIEW_DROP_BEFORE)
-    {   /* need to reverse the list of files -- otherwise wie add them
-	 * in reverse order */
-	/* split the path list into individual strings */
-	gint len = strlen (data) + 1;
-	files = g_strsplit (data, "\n", -1);
-	filep = files;
-	/* find the end of the list */
-	while (*filep) ++filep;
-	/* reserve memory */
-	buf = g_malloc0 (len);
-	/* reverse the list */
-	while (filep != files)
-	{
-	    --filep;
-	    g_strlcat (buf, *filep, len);
-	    g_strlcat (buf, "\n", len);
-	}
-	g_strfreev (files);
-	use_data = buf;
-    }
-    else
-    {
-	use_data = data;
-    }
-
-/*     printf("filelist: (%s) -> (%s)\n", data, use_data); */
-    /* initialize add-track-struct */
-    if (path)
-    {   /* add where specified (@path/@pos) */
-	GtkTreeIter to_iter;
-	struct asf_data asf;
-	if (!gtk_tree_model_get_iter (model, &to_iter, path))
-	    g_return_val_if_reached (FALSE);
-	asf.to_iter = &to_iter;
-	asf.pos = pos;
-	add_text_plain_to_playlist (current_playlist->itdb,
-				    current_playlist, use_data, 0,
-				    tm_addtrackfunc, &asf);
-    }
-    else
-    {   /* add to the end */
-	add_text_plain_to_playlist (current_playlist->itdb,
-				    current_playlist, use_data, 0,
-				    NULL, NULL);
-    }
-    tm_rows_reordered ();
-    C_FREE (buf);
-    return TRUE;
-}

Modified: gtkpod/trunk/src/display_sorttabs.c
===================================================================
--- gtkpod/trunk/src/display_sorttabs.c	2007-06-27 20:59:02 UTC (rev 193)
+++ gtkpod/trunk/src/display_sorttabs.c	2007-06-27 21:27:12 UTC (rev 194)
@@ -1,5 +1,4 @@
-/* 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 +23,7 @@
 |
 |  This product is not supported/written/published by Apple!
 |
-|  $Id: display_sorttabs.c,v 1.85 2006/06/20 23:13:35 freethinkerjim Exp $
+|  $Id: display_sorttabs.c 1589 2007-06-25 14:23:59Z jcsjcs $
 */
 
 #ifdef HAVE_CONFIG_H
@@ -51,6 +50,11 @@
 /* compare function to be used for string comparisons */
 
 static void sp_store_sp_entries (gint inst);
+static void st_page_selected (GtkNotebook *notebook, guint page);
+static void st_create_notebook (gint inst);
+static TimeInfo *sp_update_date_interval_from_string (guint32 inst,
+						      T_item item,
+						      gboolean force_update);
 
 /* Drag and drop definitions */
 static GtkTargetEntry st_drag_types [] = {
@@ -257,6 +261,20 @@
 }
 
 
+/* set string compare function according to whether the ignore field
+   is set or not */
+static void st_set_string_compare_func (guint inst, guint page_num)
+{
+    gchar *buf;
+    buf = g_strdup_printf ("sort_ign_field_%d", ST_to_T (page_num));
+    if (prefs_get_int (buf))
+	sorttab[inst]->string_compare_func = compare_string_fuzzy;
+    else
+	sorttab[inst]->string_compare_func = compare_string;
+    g_free (buf);
+}
+
+
 /* callback */
 static void
 on_st_switch_page                 (GtkNotebook     *notebook,
@@ -264,17 +282,16 @@
 				   guint            page_num,
 				   gpointer         user_data)
 {
-    gchar *buf;
     guint inst = GPOINTER_TO_UINT( user_data );
 
+    
+
 /*     printf ("switch_page: inst/page: %d/%d\n", inst, page_num); */
     /* set compare function for strings (to speed up sorting) */
-    buf = g_strdup_printf ("sort_ign_field_%d", ST_to_T (page_num));
-    if (prefs_get_int (buf))
-	sorttab[inst]->string_compare_func = compare_string_fuzzy;
-    else
-	sorttab[inst]->string_compare_func = compare_string;
-    g_free (buf);
+    if (page_num != ST_CAT_SPECIAL)
+    {
+	st_set_string_compare_func (inst, page_num);
+    }
     space_data_update ();
     st_page_selected (notebook, page_num);
 }
@@ -376,10 +393,10 @@
    has changed. TRUE will re-evaluate the string (and print an error
    message again, if necessary */
 /* Return value: pointer to the corresponding TimeInfo struct (for
-   convenience) or NULL if error occured */
-TimeInfo *sp_update_date_interval_from_string (guint32 inst,
-					       T_item item,
-					       gboolean force_update)
+   convenience) or NULL if error occurred */
+static TimeInfo *sp_update_date_interval_from_string (guint32 inst,
+						      T_item item,
+						      gboolean force_update)
 {
     SortTab *st;
     TimeInfo *ti;
@@ -615,52 +632,20 @@
 
     if (st->sp_members)
     {
-	GTimeVal time;
-	float max_count = REFRESH_INIT_COUNT;
-	gint count = max_count - 1;
-	float ms;
 	GList *gl;
 
-	if (!prefs_get_int("block_display"))
-	{
-	    block_selection (inst);
-	    g_get_current_time (&time);
-	}
 	st_enable_disable_view_sort (inst+1, FALSE);
 	for (gl=st->sp_members; gl; gl=gl->next)
 	{ /* add all member tracks to next instance */
 	    Track *track = (Track *)gl->data;
-	    if (stop_add <= (gint)inst) break;
 	    if (sp_check_track (track, inst))
 	    {
 		st->sp_selected = g_list_append (st->sp_selected, track);
 		st_add_track (track, FALSE, TRUE, inst+1);
 	    }
-	    --count;
-	    if ((count < 0) && !prefs_get_int("block_display"))
-	    {
-		gtkpod_tracks_statusbar_update();
-		while (gtk_events_pending ())       gtk_main_iteration ();
-		ms = get_ms_since (&time, TRUE);
-		/* first time takes significantly longer, so we adjust
-		   the max_count */
-		if (max_count == REFRESH_INIT_COUNT) max_count *= 2.5;
-		/* average the new and the old max_count */
-		max_count *= (1 + 2 * REFRESH_MS / ms) / 3;
-		count = max_count - 1;
-#if DEBUG_TIMING
-		printf("st_s_c ms: %f mc: %f\n", ms, max_count);
-#endif
-	    }
 	}
 	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_int("block_display"))
-	{
-	    while (gtk_events_pending ())	  gtk_main_iteration ();
-	    release_selection (inst);
-	}
+	st_add_track (NULL, TRUE, st->final, inst+1);
     }
     gtkpod_tracks_statusbar_update();
 #if DEBUG_TIMING
@@ -713,11 +698,7 @@
      * being used (maybe the user 'forgot' to press enter */
     sp_store_sp_entries (inst);
 
-    /* Instead of handling the selection directly, we add a
-       "callback". Currently running display updates will be stopped
-       before the sp_go_cb is actually called */
-    add_selection_callback (inst, sp_go_cb,
-			    GUINT_TO_POINTER(inst), NULL);
+    sp_go_cb (GUINT_TO_POINTER(inst), NULL);
 }
 
 
@@ -1878,7 +1859,6 @@
 /*  printf("ps%d: cat: %d\n", inst, page);*/
 
   if (inst == -1) return; /* invalid notebook */
-  if (stop_add < (gint)inst)  return;
   st = sorttab[inst];
   /* remember old is_go state and current page */
   is_go = st->is_go;
@@ -1891,55 +1871,21 @@
   copy = display_get_selected_members (inst-1);
   if (copy)
   {
-      GTimeVal time;
-      float max_count = REFRESH_INIT_COUNT;
-      gint count = max_count - 1;
-      float ms;
       GList *gl;
-      /* block playlist view and all sort tab notebooks <= inst */
-      if (!prefs_get_int("block_display"))
-      {
-	  block_selection (inst-1);
-	  g_get_current_time (&time);
-      }
+      gboolean final;
       /* add all tracks previously present to sort tab */
       st_enable_disable_view_sort (inst, FALSE);
       for (gl=copy; gl; gl=gl->next)
       {
 	  Track *track = gl->data;
-	  if (stop_add < (gint)inst)  break;
 	  st_add_track (track, FALSE, TRUE, inst);
-	  --count;
-	  if ((count < 0) && !prefs_get_int("block_display"))
-	  {
-	      gtkpod_tracks_statusbar_update();
-	      while (gtk_events_pending ())       gtk_main_iteration ();
-	      ms = get_ms_since (&time, TRUE);
-	      /* first time takes significantly longer, so we adjust
-		 the max_count */
-	      if (max_count == REFRESH_INIT_COUNT) max_count *= 2.5;
-	      /* average the new and the old max_count */
-	      max_count *= (1 + 2 * REFRESH_MS / ms) / 3;
-	      count = max_count - 1;
-#if DEBUG_TIMING
-	      printf("st_p_s ms: %f mc: %f\n", ms, max_count);
-#endif
-	  }
       }
       st_enable_disable_view_sort (inst, TRUE);
-      if (stop_add >= (gint)inst)
-      {
-	  gboolean final = TRUE;  /* playlist is always complete */
-	  /* if playlist is not source, get final flag from
-	   * corresponding sorttab */
-	  if ((inst > 0) && (sorttab[inst-1])) final = sorttab[inst-1]->final;
-	  st_add_track (NULL, final, TRUE, inst);
-      }
-      if (!prefs_get_int("block_display"))
-      {
-	  while (gtk_events_pending ())      gtk_main_iteration ();
-	  release_selection (inst-1);
-      }
+      final = TRUE;  /* playlist is always complete */
+      /* if playlist is not source, get final flag from
+       * corresponding sorttab */
+      if ((inst > 0) && (sorttab[inst-1])) final = sorttab[inst-1]->final;
+      st_add_track (NULL, final, TRUE, inst);
   }
 #if DEBUG_TIMING
   g_get_current_time (&time);
@@ -1951,10 +1897,7 @@
 
 
 /* Called when page in sort tab is selected */
-/* Instead of handling the selection directly, we add a
-   "callback". Currently running display updates will be stopped
-   before the st_page_selected_cb is actually called */
-void st_page_selected (GtkNotebook *notebook, guint page)
+static void st_page_selected (GtkNotebook *notebook, guint page)
 {
   guint32 inst;
 
@@ -1966,8 +1909,7 @@
   /* inst-1: changing a page in the first sort tab is like selecting a
      new playlist and so on. Therefore we subtract 1 from the
      instance. */
-  add_selection_callback (inst-1, st_page_selected_cb,
-			  (gpointer)notebook, GUINT_TO_POINTER(page));
+  st_page_selected_cb (notebook, GUINT_TO_POINTER(page));
 }
 
 
@@ -2025,11 +1967,92 @@
 
 void st_sort (GtkSortType order)
 {
-    gint i;
-    for (i=0; i < prefs_get_int("sort_tab_num"); ++i)
-	st_sort_inst (i, order);
+  gint i;
+  for (i=0; i < prefs_get_int("sort_tab_num"); ++i)
+		st_sort_inst (i, order);
+	
+	/* Reset the cover images. Unfortunately the track order is not maintained when the 
+	 * display list of tracks is created. Thus, if the desired track order is the original order
+	 * then unfortunately the tracks must be collected from the playlist once again and the
+	 * displaytracks list in coverart recreated.
+	 * ie. easy to sort ascending and descending but difficult to return to unsorted state
+	 */
+	coverart_set_images (order == SORT_NONE);
 }
 
+gboolean st_set_selection (Itdb_Track *track)
+{
+    GtkTreeSelection *selection;
+    GtkTreeView *treeview;
+    GtkTreeModel *model;
+    GtkTreeIter iter;
+    TabEntry *entry = NULL;
+    gboolean status;
+	
+    gtk_notebook_set_current_page (sorttab[0]->notebook, ST_CAT_ARTIST); 
+    st_page_selected (sorttab[0]->notebook, ST_CAT_ARTIST);
+  
+    while (gtk_events_pending ()) gtk_main_iteration ();
+	
+  /* ######## Select the artist from the first sorttab ######## */
+  treeview = sorttab[0]->treeview[ST_CAT_ARTIST];
+  model = gtk_tree_view_get_model (treeview);
+  selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(treeview));
+  
+  status = gtk_tree_model_get_iter_first (model, &iter);
+  g_return_val_if_fail (status, FALSE);
+  
+  do
+  {
+  	gtk_tree_model_get (model, &iter, ST_COLUMN_ENTRY, &entry , -1);
+		g_return_val_if_fail (entry, FALSE);
+		
+		if (g_ascii_strcasecmp (entry->name, track->artist) == 0)
+		{
+			/* break out the loop once the correct iter has been found */
+			break;
+		}
+  }
+  while (gtk_tree_model_iter_next (model, &iter));
+  
+  while (gtk_events_pending ()) gtk_main_iteration ();
+  
+  gtk_tree_selection_select_iter (selection, &iter);
+    	
+	while (gtk_events_pending ()) gtk_main_iteration ();
+	
+	/* ######## Select the album from the second sorttab ######## */
+	gtk_notebook_set_current_page (sorttab[1]->notebook, ST_CAT_ALBUM); 
+  st_page_selected (sorttab[1]->notebook, ST_CAT_ALBUM);
+  
+  while (gtk_events_pending ()) gtk_main_iteration ();
+	
+  treeview = sorttab[1]->treeview[ST_CAT_ALBUM];
+  model = gtk_tree_view_get_model (treeview);
+  selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(treeview));
+  
+  status = gtk_tree_model_get_iter_first (model, &iter);
+  g_return_val_if_fail (status, FALSE);
+  
+  do
+  {
+  	gtk_tree_model_get (model, &iter, ST_COLUMN_ENTRY, &entry , -1);
+		g_return_val_if_fail (entry, FALSE);
+		
+		if (g_ascii_strcasecmp (entry->name, track->album) == 0)
+		{
+    	/* break out the loop once the correct iter has been found */
+    	break;
+		}
+  }
+  while (gtk_tree_model_iter_next (model, &iter));
+  
+  while (gtk_events_pending ()) gtk_main_iteration ();
+	  	
+  gtk_tree_selection_select_iter (selection, &iter);
+    	
+	return TRUE;	
+}
 
 static void st_selection_changed_cb (gpointer user_data1, gpointer user_data2)
 {
@@ -2069,8 +2092,8 @@
       gtk_tree_model_get (model, &iter,
 			  ST_COLUMN_ENTRY, &new_entry,
 			  -1);
-      /* printf("selected instance %d, entry %x (was: %x)\n", inst,
-       * new_entry, st->current_entry);*/
+      /*printf("selected instance %d, entry %x (was: %x)\n", inst,
+       *new_entry, st->current_entry);*/
 
       /* initialize next instance */
       st_init (-1, inst+1);
@@ -2085,50 +2108,31 @@
 
       if (new_entry->members)
       {
-	  GTimeVal time;
-	  float max_count = REFRESH_INIT_COUNT;
-	  gint count = max_count - 1;
-	  float ms;
 	  GList *gl;
-	  if (!prefs_get_int("block_display"))
-	  {
-	      block_selection (inst);
-	      g_get_current_time (&time);
-	  }
 	  st_enable_disable_view_sort (inst+1, FALSE);
+	  	  
 	  for (gl=new_entry->members; gl; gl=gl->next)
 	  { /* add all member tracks to next instance */
 	      Track *track = gl->data;
-	      if (stop_add <= (gint)inst) break;
 	      st_add_track (track, FALSE, TRUE, inst+1);
-	      --count;
-	      if ((count < 0) && !prefs_get_int("block_display"))
-	      {
-		  gtkpod_tracks_statusbar_update();
-		  while (gtk_events_pending ())       gtk_main_iteration ();
-		  ms = get_ms_since (&time, TRUE);
-		  /* first time takes significantly longer, so we adjust
-		     the max_count */
-		  if (max_count == REFRESH_INIT_COUNT) max_count *= 2.5;
-		  /* average the new and the old max_count */
-		  max_count *= (1 + 2 * REFRESH_MS / ms) / 3;
-		  count = max_count - 1;
-#if DEBUG_TIMING
-		  printf("st_s_c ms: %f mc: %f\n", ms, max_count);
-#endif
-	      }
 	  }
 	  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_int("block_display"))
-	  {
-	      while (gtk_events_pending ())	  gtk_main_iteration ();
-	      release_selection (inst);
-	  }
+	  st_add_track (NULL, TRUE, st->final, inst+1);
       }
       gtkpod_tracks_statusbar_update();
+      
+      /* Select the cover in the coverart_display */
+      GList *gl = g_list_first(new_entry->members);
+      if (gl != NULL)
+      {
+	  		Track *track = gl->data;
+	  		if (track != NULL)
+	  			coverart_select_cover (track);
+      }
   }
+
+  space_data_update ();
+
 #if DEBUG_TIMING
   g_get_current_time (&time);
   printf ("st_selection_changed_cb exit:  %ld.%06ld sec\n",
@@ -2148,9 +2152,7 @@
 #if DEBUG_CB_INIT
     printf("st_s_c enter (inst: %d)\n", (gint)user_data);
 #endif
-    space_data_update ();
-    add_selection_callback ((gint)GPOINTER_TO_INT(user_data), st_selection_changed_cb,
-			    (gpointer)selection, user_data);
+    st_selection_changed_cb ((gpointer)selection, user_data);
 #if DEBUG_CB_INIT
     printf("st_s_c exit (inst: %d)\n", (gint)user_data);
 #endif
@@ -2250,7 +2252,7 @@
 		  g_free (*itemp_utf8);
 		  *itemp_utf8 = g_strdup (new_text);
 	      }
-	      track->time_modified = itdb_time_get_mac_time ();
+	      track->time_modified = time (NULL);
 	      pm_track_changed (track);
 	      /* If prefs say to write changes to file, do so */
 	      if (prefs_get_int("id3_write"))
@@ -2434,8 +2436,7 @@
 	if (disable_count[inst] == 0)
 	{
 	    /* Re-enable sorting */
-	    if ((prefs_get_int("st_sort") != SORT_NONE) &&
-		sorting_disabled ())
+	    if (prefs_get_int("st_sort") != SORT_NONE)
 	    {
 		SortTab *st = sorttab[inst];
 		if (st && 
@@ -2466,8 +2467,7 @@
 	if (disable_count[inst] == 0)
 	{
 	    /* Disable sorting */
-	    if ((prefs_get_int("st_sort") != SORT_NONE) &&
-		sorting_disabled ())
+	    if (prefs_get_int("st_sort") != SORT_NONE)
 	    {
 		SortTab *st = sorttab[inst];
 		if (st && 
@@ -2522,8 +2522,8 @@
 
 /* Make the appropriate number of sort tab instances visible */
 /* Also: make the menu items "more/less sort tabs" active/inactive as
- * needed */
-void st_show_visible (void)
+ * needed. */
+static void st_adjust_visible (void)
 {
     gint i,n;
     GtkWidget *w;
@@ -2558,7 +2558,16 @@
     w = gtkpod_xml_get_widget (main_window_xml, "more_sort_tabs");
     if (n == SORT_TAB_MAX) gtk_widget_set_sensitive (w, FALSE);
     else                   gtk_widget_set_sensitive (w, TRUE);
+}
 
+/* Make the appropriate number of sort tab instances visible */
+/* Also: make the menu items "more/less sort tabs" active/inactive as
+ * needed. */
+void st_show_visible (void)
+{
+    /* Adjust visibility */
+    st_adjust_visible ();
+
     /* redisplay */
     st_redisplay (0);
 }
@@ -2673,63 +2682,73 @@
 }
 
 /* Create tracks listview */
-static void st_create_listview (gint inst)
+static void st_create_treeview (gint inst, ST_CAT_item st_cat)
 {
-  GtkTreeModel *model;
-  GtkListStore *liststore;
-  gint i;
   SortTab *st = sorttab[inst];
+  GtkTreeSelection *selection;
+  GtkTreeView *treeview;
+  GtkCellRenderer *renderer;
+  GtkTreeViewColumn *column;
 
-  /* create model */
-  if (st->model)
-  {
-      g_object_unref (G_OBJECT (st->model));
-      st->model = NULL;
-  }
-  liststore = gtk_list_store_new (ST_NUM_COLUMNS, G_TYPE_POINTER);
-  model = GTK_TREE_MODEL (liststore);
-  st->model = model;
-  /* set tree views */
-  for (i=0; i<ST_CAT_NUM; ++i)
-  {
-      if (i != ST_CAT_SPECIAL)
-      {
-	  GtkTreeSelection *selection;
-	  GtkTreeView *treeview;
-	  GtkCellRenderer *renderer;
-	  GtkTreeViewColumn *column;
+  /* create treeview */
+  treeview = GTK_TREE_VIEW (gtk_tree_view_new ());
+  gtk_widget_show (GTK_WIDGET (treeview));
+  st->treeview[st_cat] = treeview;
+  gtk_container_add (GTK_CONTAINER (st->window[st_cat]),
+		     GTK_WIDGET (treeview));
+  gtk_tree_view_set_model (treeview, st->model);
+  g_signal_connect_after ((gpointer) treeview, "key_release_event",
+			  G_CALLBACK (on_st_treeview_key_release_event),
+			  NULL);
+  gtk_drag_source_set (GTK_WIDGET (treeview), GDK_BUTTON1_MASK,
+		       st_drag_types, TGNR (st_drag_types),
+		       GDK_ACTION_COPY|GDK_ACTION_MOVE);
+  g_signal_connect (G_OBJECT (treeview), "button-press-event",
+		    G_CALLBACK (st_button_press_event), GINT_TO_POINTER(inst));
+  g_signal_connect ((gpointer) treeview, "drag_data_get",
+		    G_CALLBACK (st_drag_data_get),
+		    NULL);
+  g_signal_connect ((gpointer) treeview, "drag-end",
+		    G_CALLBACK (st_drag_end),
+		    NULL);
+  gtk_tree_view_set_rules_hint (GTK_TREE_VIEW (treeview), TRUE);
+  gtk_tree_view_set_headers_visible (GTK_TREE_VIEW (treeview), FALSE);
+  gtk_tree_view_set_enable_search (GTK_TREE_VIEW (treeview), TRUE);
+  gtk_tree_view_set_search_column (GTK_TREE_VIEW (treeview), 0);
+  gtk_tree_view_set_search_equal_func (GTK_TREE_VIEW (treeview), 
+				       st_search_equal_func,
+				       NULL,
+				       NULL);
 
-	  treeview = st->treeview[i];
-	  gtk_tree_view_set_model (treeview, model);
-	  selection = gtk_tree_view_get_selection (treeview);
-	  gtk_tree_selection_set_mode (selection, GTK_SELECTION_SINGLE);
-	  g_signal_connect (G_OBJECT (selection), "changed",
-			    G_CALLBACK (st_selection_changed),
-			    GINT_TO_POINTER(inst));
-	  /* Add column */
-	  renderer = gtk_cell_renderer_text_new ();
-	  g_signal_connect (G_OBJECT (renderer), "edited",
-			    G_CALLBACK (st_cell_edited),
-			    GINT_TO_POINTER(inst));
-	  g_object_set_data (G_OBJECT (renderer), "column",
-			     (gint *)ST_COLUMN_ENTRY);
-	  column = gtk_tree_view_column_new ();
-	  gtk_tree_view_column_pack_start (column, renderer, TRUE);
-	  column = gtk_tree_view_column_new_with_attributes ("", renderer, NULL);
-	  gtk_tree_view_column_set_cell_data_func (column, renderer,
-						   st_cell_data_func, NULL, NULL);
-	  gtk_tree_view_column_set_sort_column_id (column, ST_COLUMN_ENTRY);
-	  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 (liststore),
-					   ST_COLUMN_ENTRY,
-					   st_data_compare_func, GINT_TO_POINTER(inst), NULL);
-	  gtk_tree_view_append_column (treeview, column);
-      }
-  }
+  selection = gtk_tree_view_get_selection (treeview);
+  gtk_tree_selection_set_mode (selection, GTK_SELECTION_SINGLE);
+  g_signal_connect (G_OBJECT (selection), "changed",
+		    G_CALLBACK (st_selection_changed),
+		    GINT_TO_POINTER(inst));
+  /* Add column */
+  renderer = gtk_cell_renderer_text_new ();
+  g_signal_connect (G_OBJECT (renderer), "edited",
+		    G_CALLBACK (st_cell_edited),
+		    GINT_TO_POINTER(inst));
+  g_object_set_data (G_OBJECT (renderer), "column",
+		     (gint *)ST_COLUMN_ENTRY);
+  column = gtk_tree_view_column_new ();
+  gtk_tree_view_column_pack_start (column, renderer, TRUE);
+  column = gtk_tree_view_column_new_with_attributes ("", renderer, NULL);
+  gtk_tree_view_column_set_cell_data_func (column, renderer,
+					   st_cell_data_func, NULL, NULL);
+  gtk_tree_view_column_set_sort_column_id (column, ST_COLUMN_ENTRY);
+  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 (st->model),
+				   ST_COLUMN_ENTRY,
+				   st_data_compare_func,
+				   GINT_TO_POINTER(inst), NULL);
+  gtk_tree_view_append_column (treeview, column);
 }
 
 
+
 /* Create the "special" page in the notebook and connect all the
    signals */
 static void st_create_special (gint inst, GtkWidget *window)
@@ -2832,7 +2851,6 @@
 			"clicked",
 			G_CALLBACK (on_sp_cal_button_clicked),
 			GUINT_TO_POINTER((T_TIME_PLAYED<<SP_SHIFT) + inst));
-      
       g_free(buf);
 
       /* MODIFIED */
@@ -2857,7 +2875,6 @@
 			"clicked",
 			G_CALLBACK (on_sp_cal_button_clicked),
 			GUINT_TO_POINTER((T_TIME_MODIFIED<<SP_SHIFT) + inst));
-      
       g_free(buf);
 
       /* ADDED */
@@ -2893,6 +2910,7 @@
 			GINT_TO_POINTER(inst));
       gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(w),
 				   prefs_get_int_index("sp_autodisplay", inst));
+      g_free (buf);
 
       /* Safe pointer to tooltips */
       st->sp_tooltips_data = gtk_tooltips_data_get(gtkpod_xml_get_widget (special_xml, "sp_modified_entry"));
@@ -2967,48 +2985,36 @@
   gtk_notebook_set_tab_label (GTK_NOTEBOOK (st0_notebook), gtk_notebook_get_nth_page (GTK_NOTEBOOK (st0_notebook), st_cat), st0_label0);
   gtk_label_set_justify (GTK_LABEL (st0_label0), GTK_JUSTIFY_LEFT);
 
-  if (st_cat == ST_CAT_SPECIAL)
+  if (st_cat != ST_CAT_SPECIAL)
   {
-      /* create special window */
-      st_create_special (inst, st0_window0);
+      st_create_treeview (inst, st_cat);
   }
   else
   {
-      GtkWidget *treeview;
-      /* create treeview */
-      treeview = gtk_tree_view_new ();
-      st->treeview[st_cat] = GTK_TREE_VIEW (treeview);
-      gtk_widget_show (treeview);
-      gtk_container_add (GTK_CONTAINER (st0_window0), treeview);
-      g_signal_connect_after ((gpointer) treeview, "key_release_event",
-			      G_CALLBACK (on_st_treeview_key_release_event),
-			      NULL);
-      gtk_drag_source_set (GTK_WIDGET (treeview), GDK_BUTTON1_MASK,
-			   st_drag_types, TGNR (st_drag_types),
-			   GDK_ACTION_COPY|GDK_ACTION_MOVE);
-      g_signal_connect (G_OBJECT (treeview), "button-press-event",
-			G_CALLBACK (st_button_press_event), GINT_TO_POINTER(inst));
-      g_signal_connect ((gpointer) treeview, "drag_data_get",
-			G_CALLBACK (st_drag_data_get),
-			NULL);
-      g_signal_connect ((gpointer) treeview, "drag-end",
-			G_CALLBACK (st_drag_end),
-			NULL);
-      gtk_tree_view_set_rules_hint (GTK_TREE_VIEW (treeview), TRUE);
-      gtk_tree_view_set_headers_visible (GTK_TREE_VIEW (treeview), FALSE);
-      gtk_tree_view_set_enable_search (GTK_TREE_VIEW (treeview), TRUE);
-      gtk_tree_view_set_search_column (GTK_TREE_VIEW (treeview), 0);
-      gtk_tree_view_set_search_equal_func (GTK_TREE_VIEW (treeview), 
-					   st_search_equal_func,
-					   NULL,
-					   NULL);
+      st_create_special (inst, st0_window0);
   }
 }
 
+
 /* create all ST_CAT_NUM treeviews and the special page in sort tab of
  * instance @inst, then set the model */
 static void st_create_pages (gint inst)
 {
+  GtkTreeModel *model;
+  GtkListStore *liststore;
+  SortTab *st = sorttab[inst];
+
+  /* remove old model */
+  if (st->model)
+  {
+      g_object_unref (G_OBJECT (st->model));
+      st->model = NULL;
+  }
+  /* create model */
+  liststore = gtk_list_store_new (ST_NUM_COLUMNS, G_TYPE_POINTER);
+  model = GTK_TREE_MODEL (liststore);
+  st->model = model;
+
   st_create_page (inst, ST_CAT_ARTIST);
   st_create_page (inst, ST_CAT_ALBUM);
   st_create_page (inst, ST_CAT_GENRE);
@@ -3016,12 +3022,11 @@
   st_create_page (inst, ST_CAT_TITLE);
   st_create_page (inst, ST_CAT_YEAR);
   st_create_page (inst, ST_CAT_SPECIAL);
-  st_create_listview (inst);
 }
 
 
 /* Create notebook and fill in sorttab[@inst] */
-void st_create_notebook (gint inst)
+static void st_create_notebook (gint inst)
 {
   GtkWidget *st0_notebook;
   GtkPaned *paned;
@@ -3055,17 +3060,20 @@
   else
       gtk_paned_pack1 (paned, st0_notebook, FALSE, TRUE);
   gtk_notebook_set_scrollable (GTK_NOTEBOOK (st0_notebook), TRUE);
-  g_signal_connect ((gpointer) st0_notebook, "switch_page",
-                    G_CALLBACK (on_st_switch_page),
-                    GINT_TO_POINTER(inst));
 
   st->notebook = GTK_NOTEBOOK (st0_notebook);
   st_create_pages (inst);
   page = prefs_get_int_index("st_category", inst);
   st->current_category = page;
   gtk_notebook_set_current_page (st->notebook, page);
+  st_set_string_compare_func (inst, page);
+
   if (prefs_get_int("st_sort") != SORT_NONE)
     st_sort_inst (inst, prefs_get_int("st_sort"));
+
+  g_signal_connect ((gpointer) st0_notebook, "switch_page",
+                    G_CALLBACK (on_st_switch_page),
+                    GINT_TO_POINTER(inst));
 }
 
 
@@ -3080,10 +3088,12 @@
   for (inst=SORT_TAB_MAX-1; inst>=0; --inst)
   {
 	sorttab[inst] = g_malloc0 (sizeof (SortTab));
-	sorttab[inst]->string_compare_func = compare_string;
 	st_create_notebook (inst);
   }
-  st_show_visible ();
+  /* adjust number of visible sorttabs (cannot use st_show_visible()
+     because the latter calls st_redisplay(0) which refers to the
+     playlist view which hasn't yet set up) */
+  st_adjust_visible ();
 }
 
 /* Clean up the memory used by sort tabs (program quit). */
@@ -3238,16 +3248,16 @@
 				  GtkSpinButton *hour,
 				  GtkSpinButton *min,
 				  GtkToggleButton *no_margin,
-				  guint32 mactime)
+				  time_t timet)
 {
     struct tm *tm;
     time_t tt = time (NULL);
 
     /* 0, -1 are treated in a special way (no lower/upper margin
      * -> set calendar to current time */
-    if ((mactime != 0) && (mactime != -1))
+    if ((timet != 0) && (timet != -1))
     {
-	tt = itdb_time_mac_to_host (mactime);
+	tt = timet;
 	if (no_margin)  gtk_toggle_button_set_active (no_margin, FALSE);
     }
     else if (no_margin) gtk_toggle_button_set_active (no_margin, TRUE);
@@ -3267,7 +3277,7 @@
 }
 
 
-static void cal_set_time (GtkWidget *cal, MarginType type, guint32 mactime)
+static void cal_set_time (GtkWidget *cal, MarginType type, time_t timet)
 {
     GtkCalendar *calendar = NULL;
     GtkSpinButton *hour = NULL;
@@ -3289,7 +3299,7 @@
 	no_margin = GTK_TOGGLE_BUTTON (gtkpod_xml_get_widget (cal_xml, "no_upper_margin"));
 	break;
     }
-    cal_set_time_widgets (calendar, hour, min, no_margin, mactime);
+    cal_set_time_widgets (calendar, hour, min, no_margin, timet);
 }
 
 

Modified: gtkpod/trunk/src/display_spl.c
===================================================================
--- gtkpod/trunk/src/display_spl.c	2007-06-27 20:59:02 UTC (rev 193)
+++ gtkpod/trunk/src/display_spl.c	2007-06-27 21:27:12 UTC (rev 194)
@@ -1,6 +1,5 @@
-/* Time-stamp: <2006-09-15 00:24:11 jcs>
-|
-|  Copyright (C) 2002-2005 Jorg Schuler <jcsjcs at users.sourceforge.net>
+/*
+|  Copyright (C) 2002-2007 Jorg Schuler <jcsjcs at users.sourceforge.net>
 |  Part of the gtkpod project.
 |
 |  URL: http://gtkpod.sourceforge.net/
@@ -23,7 +22,7 @@
 |
 |  This product is not supported/written/published by Apple!
 |
-|  $Id: display_spl.c,v 1.20 2006/09/17 04:58:21 jcsjcs Exp $
+|  $Id: display_spl.c 1057 2007-04-27 16:12:39Z jcsjcs $
 */
 
 #ifdef HAVE_CONFIG_H
@@ -44,8 +43,9 @@
 static const gchar *SPL_WINDOW_DEFY="spl_window_defy";
 
 static void spl_display_checklimits (GtkWidget *spl_window);
-static void spl_update_rule (GtkWidget *spl_window, SPLRule *splr);
+static void spl_update_rule (GtkWidget *spl_window, Itdb_SPLRule *splr);
 static void spl_update_rules_from_row (GtkWidget *spl_window, gint row);
+static void spl_action_changed (GtkComboBox *combobox, GtkWidget *spl_window);
 
 #define WNLEN 100 /* max length for widget names */
 #define XPAD 1    /* padding for g_table_attach () */
@@ -61,129 +61,165 @@
 
 static const ComboEntry splat_inthelast_units_comboentries[] =
 {
-    { SPLACTION_LAST_DAYS_VALUE,   N_("days") },
-    { SPLACTION_LAST_WEEKS_VALUE,  N_("weeks") },
-    { SPLACTION_LAST_MONTHS_VALUE, N_("months") },
+    { ITDB_SPLACTION_LAST_DAYS_VALUE,   N_("days") },
+    { ITDB_SPLACTION_LAST_WEEKS_VALUE,  N_("weeks") },
+    { ITDB_SPLACTION_LAST_MONTHS_VALUE, N_("months") },
     { 0,                           NULL }
 };
 
 
 static const ComboEntry splfield_units[] =
 {
-    { SPLFIELD_BITRATE,        N_("kbps") },
-    { SPLFIELD_SAMPLE_RATE,    N_("Hz") },
-    { SPLFIELD_SIZE,           N_("MB") },
-    { SPLFIELD_TIME,           N_("secs") },
+    { ITDB_SPLFIELD_BITRATE,        N_("kbps") },
+    { ITDB_SPLFIELD_SAMPLE_RATE,    N_("Hz") },
+    { ITDB_SPLFIELD_SIZE,           N_("MB") },
+    { ITDB_SPLFIELD_TIME,           N_("secs") },
     { 0,                       NULL }
 };
 
 
 static const ComboEntry splfield_comboentries[] =
 {
-    { SPLFIELD_SONG_NAME,      N_("Title") },
-    { SPLFIELD_ALBUM,          N_("Album") },
-    { SPLFIELD_ARTIST,         N_("Artist") },
-    { SPLFIELD_BITRATE,        N_("Bitrate") },
-    { SPLFIELD_SAMPLE_RATE,    N_("Samplerate") },
-    { SPLFIELD_YEAR,           N_("Year") },
-    { SPLFIELD_GENRE,          N_("Genre") },
-    { SPLFIELD_KIND,           N_("Kind") },
-    { SPLFIELD_DATE_MODIFIED,  N_("Date modified") },
-    { SPLFIELD_TRACKNUMBER,    N_("Track number") },
-    { SPLFIELD_SIZE,           N_("Size") },
-    { SPLFIELD_TIME,           N_("Time") },
-    { SPLFIELD_COMMENT,        N_("Comment") },
-    { SPLFIELD_DATE_ADDED,     N_("Date added") },
-    { SPLFIELD_COMPOSER,       N_("Composer") },
-    { SPLFIELD_PLAYCOUNT,      N_("Playcount") },
-    { SPLFIELD_LAST_PLAYED,    N_("Last played") },
-    { SPLFIELD_DISC_NUMBER,    N_("Disc number") },
-    { SPLFIELD_RATING,         N_("Rating") },
-    { SPLFIELD_COMPILATION,    N_("Compilation") },
-    { SPLFIELD_BPM,            N_("BPM") },
-    { SPLFIELD_GROUPING,       N_("Grouping") },
-    { SPLFIELD_PLAYLIST,       N_("Playlist") },
+    { ITDB_SPLFIELD_SONG_NAME,      N_("Title") },
+    { ITDB_SPLFIELD_ALBUM,          N_("Album") },
+    { ITDB_SPLFIELD_ARTIST,         N_("Artist") },
+    { ITDB_SPLFIELD_BITRATE,        N_("Bitrate") },
+    { ITDB_SPLFIELD_SAMPLE_RATE,    N_("Samplerate") },
+    { ITDB_SPLFIELD_YEAR,           N_("Year") },
+    { ITDB_SPLFIELD_GENRE,          N_("Genre") },
+    { ITDB_SPLFIELD_KIND,           N_("Kind") },
+    { ITDB_SPLFIELD_DATE_MODIFIED,  N_("Date modified") },
+    { ITDB_SPLFIELD_TRACKNUMBER,    N_("Track number") },
+    { ITDB_SPLFIELD_SIZE,           N_("Size") },
+    { ITDB_SPLFIELD_TIME,           N_("Time") },
+    { ITDB_SPLFIELD_COMMENT,        N_("Comment") },
+    { ITDB_SPLFIELD_DATE_ADDED,     N_("Date added") },
+    { ITDB_SPLFIELD_COMPOSER,       N_("Composer") },
+    { ITDB_SPLFIELD_PLAYCOUNT,      N_("Playcount") },
+    { ITDB_SPLFIELD_LAST_PLAYED,    N_("Last played") },
+    { ITDB_SPLFIELD_DISC_NUMBER,    N_("Disc number") },
+    { ITDB_SPLFIELD_RATING,         N_("Rating") },
+    { ITDB_SPLFIELD_COMPILATION,    N_("Compilation") },
+    { ITDB_SPLFIELD_BPM,            N_("BPM") },
+    { ITDB_SPLFIELD_GROUPING,       N_("Grouping") },
+    { ITDB_SPLFIELD_PLAYLIST,       N_("Playlist") },
+    { ITDB_SPLFIELD_VIDEO_KIND,     N_("Video Kind") },
+    { ITDB_SPLFIELD_TVSHOW,         N_("TV Show") },
+    { ITDB_SPLFIELD_SEASON_NR,      N_("Season number") },
+    { ITDB_SPLFIELD_SKIPCOUNT,      N_("Skip count") },
+    { ITDB_SPLFIELD_LAST_SKIPPED,   N_("Last skipped") },
+    { ITDB_SPLFIELD_ALBUMARTIST,    N_("Album artist") },
     { 0,                       NULL }
 };
 
 static const ComboEntry splaction_ftstring_comboentries[] =
 {
-    { SPLACTION_CONTAINS,         N_("contains") },
-    { SPLACTION_DOES_NOT_CONTAIN, N_("does not contain") },
-    { SPLACTION_IS_STRING,        N_("is") },
-    { SPLACTION_IS_NOT,           N_("is not") },
-    { SPLACTION_STARTS_WITH,      N_("starts with") },
-    { SPLACTION_ENDS_WITH,        N_("ends with") },
+    { ITDB_SPLACTION_CONTAINS,         N_("contains") },
+    { ITDB_SPLACTION_DOES_NOT_CONTAIN, N_("does not contain") },
+    { ITDB_SPLACTION_IS_STRING,        N_("is") },
+    { ITDB_SPLACTION_IS_NOT,           N_("is not") },
+    { ITDB_SPLACTION_STARTS_WITH,      N_("starts with") },
+    { ITDB_SPLACTION_ENDS_WITH,        N_("ends with") },
     { 0,                          NULL }
 };
 
 static const ComboEntry splaction_ftint_comboentries[] =
 {
-    { SPLACTION_IS_INT,          N_("is") },
-    { SPLACTION_IS_NOT_INT,      N_("is not") },
-    { SPLACTION_IS_GREATER_THAN, N_("is greater than") },
-    { SPLACTION_IS_LESS_THAN,    N_("is less than") },
-    { SPLACTION_IS_IN_THE_RANGE, N_("is in the range") },
+    { ITDB_SPLACTION_IS_INT,          N_("is") },
+    { ITDB_SPLACTION_IS_NOT_INT,      N_("is not") },
+    { ITDB_SPLACTION_IS_GREATER_THAN, N_("is greater than") },
+    { ITDB_SPLACTION_IS_LESS_THAN,    N_("is less than") },
+    { ITDB_SPLACTION_IS_IN_THE_RANGE, N_("is in the range") },
     { 0,                         NULL }
 };
 
 static const ComboEntry splaction_ftdate_comboentries[] =
 {
-    { SPLACTION_IS_INT,             N_("is") },
-    { SPLACTION_IS_NOT_INT,         N_("is not") },
-    { SPLACTION_IS_GREATER_THAN,    N_("is after") },
-    { SPLACTION_IS_LESS_THAN,       N_("is before") },
-    { SPLACTION_IS_IN_THE_LAST,     N_("in the last") },
-    { SPLACTION_IS_NOT_IN_THE_LAST, N_("not in the last") },
-    { SPLACTION_IS_IN_THE_RANGE,    N_("is in the range") },
+    { ITDB_SPLACTION_IS_INT,             N_("is") },
+    { ITDB_SPLACTION_IS_NOT_INT,         N_("is not") },
+    { ITDB_SPLACTION_IS_GREATER_THAN,    N_("is after") },
+    { ITDB_SPLACTION_IS_LESS_THAN,       N_("is before") },
+    { ITDB_SPLACTION_IS_IN_THE_LAST,     N_("in the last") },
+    { ITDB_SPLACTION_IS_NOT_IN_THE_LAST, N_("not in the last") },
+    { ITDB_SPLACTION_IS_IN_THE_RANGE,    N_("is in the range") },
     { 0,                            NULL }
 };
 
 static const ComboEntry splaction_ftboolean_comboentries[] =
 {
-    { SPLACTION_IS_INT,     N_("is set") },
-    { SPLACTION_IS_NOT_INT, N_("is not set") },
+    { ITDB_SPLACTION_IS_INT,     N_("is set") },
+    { ITDB_SPLACTION_IS_NOT_INT, N_("is not set") },
     { 0,                    NULL }
 };
 
 static const ComboEntry splaction_ftplaylist_comboentries[] =
 {
-    { SPLACTION_IS_INT,     N_("is") },
-    { SPLACTION_IS_NOT_INT, N_("is not") },
+    { ITDB_SPLACTION_IS_INT,     N_("is") },
+    { ITDB_SPLACTION_IS_NOT_INT, N_("is not") },
     { 0,                    NULL }
 };
 
+static const ComboEntry splaction_ftbinaryand_comboentries[] =
+{
+    { ITDB_SPLACTION_BINARY_AND, N_("is") },
+    { ITDB_SPLACTION_BINARY_AND, N_("is not") },
+    { 0,                    NULL }
+};
+
+static const ComboEntry splaction_notsupported_comboentries[] =
+{
+    { -1,     N_("Not supported") },
+    { 0,                    NULL }
+};
+
 /* Strings for limittypes */
 static const ComboEntry limittype_comboentries[] =
 {
-    { LIMITTYPE_MINUTES, N_("minutes") },
-    { LIMITTYPE_MB,      N_("MB") },
-    { LIMITTYPE_SONGS,   N_("tracks") },
-    { LIMITTYPE_HOURS,   N_("hours") },
-    { LIMITTYPE_GB,      N_("GB") },
+    { ITDB_LIMITTYPE_MINUTES, N_("minutes") },
+    { ITDB_LIMITTYPE_MB,      N_("MB") },
+    { ITDB_LIMITTYPE_SONGS,   N_("tracks") },
+    { ITDB_LIMITTYPE_HOURS,   N_("hours") },
+    { ITDB_LIMITTYPE_GB,      N_("GB") },
     { 0,                 NULL }
 };
 
 /* Strings for limitsort */
 static const ComboEntry limitsort_comboentries[] =
 {
-    { LIMITSORT_RANDOM,                N_("random order") },
-    { LIMITSORT_SONG_NAME,             N_("title") },
-    { LIMITSORT_ALBUM,                 N_("album") },
-    { LIMITSORT_ARTIST,                N_("artist") },
-    { LIMITSORT_GENRE,                 N_("genre") },
-    { LIMITSORT_MOST_RECENTLY_ADDED,   N_("most recently added") },
-    { LIMITSORT_LEAST_RECENTLY_ADDED,  N_("least recently added") },
-    { LIMITSORT_MOST_OFTEN_PLAYED,     N_("most often played") },
-    { LIMITSORT_LEAST_OFTEN_PLAYED,    N_("least often played") },
-    { LIMITSORT_MOST_RECENTLY_PLAYED,  N_("most recently played") },
-    { LIMITSORT_LEAST_RECENTLY_PLAYED, N_("least recently played") },
-    { LIMITSORT_HIGHEST_RATING,        N_("highest rating") },
-    { LIMITSORT_LOWEST_RATING,         N_("lowest rating") },
+    { ITDB_LIMITSORT_RANDOM,                N_("random order") },
+    { ITDB_LIMITSORT_SONG_NAME,             N_("title") },
+    { ITDB_LIMITSORT_ALBUM,                 N_("album") },
+    { ITDB_LIMITSORT_ARTIST,                N_("artist") },
+    { ITDB_LIMITSORT_GENRE,                 N_("genre") },
+    { ITDB_LIMITSORT_MOST_RECENTLY_ADDED,   N_("most recently added") },
+    { ITDB_LIMITSORT_LEAST_RECENTLY_ADDED,  N_("least recently added") },
+    { ITDB_LIMITSORT_MOST_OFTEN_PLAYED,     N_("most often played") },
+    { ITDB_LIMITSORT_LEAST_OFTEN_PLAYED,    N_("least often played") },
+    { ITDB_LIMITSORT_MOST_RECENTLY_PLAYED,  N_("most recently played") },
+    { ITDB_LIMITSORT_LEAST_RECENTLY_PLAYED, N_("least recently played") },
+    { ITDB_LIMITSORT_HIGHEST_RATING,        N_("highest rating") },
+    { ITDB_LIMITSORT_LOWEST_RATING,         N_("lowest rating") },
     { 0,                               NULL }
 };
 
+/* Strings for Video Kind */
+static const ComboEntry videokind_comboentries_is[] =
+{
+    { ITDB_MEDIATYPE_MOVIE,      N_("Movie") },
+    { ITDB_MEDIATYPE_MUSICVIDEO, N_("Music Video") },
+    { ITDB_MEDIATYPE_TVSHOW,     N_("TV Show") },
+    { 0,                         NULL }
+};
 
+/* Strings for Video Kind */
+static const ComboEntry videokind_comboentries_is_not[] =
+{
+    { 0x0e00 | ITDB_MEDIATYPE_MUSICVIDEO | ITDB_MEDIATYPE_TVSHOW,    N_("Movie") },
+    { 0x0e00 | ITDB_MEDIATYPE_MOVIE | ITDB_MEDIATYPE_TVSHOW,   N_("Music Video") },
+    { 0x0e00 | ITDB_MEDIATYPE_MOVIE | ITDB_MEDIATYPE_MUSICVIDEO,   N_("TV Show") },
+    { 0,                                                                    NULL }
+};
+
 /* types used for entries (from, to, date...) */
 enum entrytype
 {
@@ -197,7 +233,7 @@
     spl_ET_STRING,
 };
 
-static const gchar *entry_get_string (gchar *str, SPLRule *splr,
+static const gchar *entry_get_string (gchar *str, Itdb_SPLRule *splr,
 				      enum entrytype et);
 
 /* Get index from ID (returns -1 if ID could not be found) */
@@ -207,6 +243,11 @@
     gint i;
 
     g_return_val_if_fail (centries, -1);
+
+    /* handle field types not yet supported */
+    if (centries == splaction_notsupported_comboentries)
+	return 0;
+
     for (i=0; centries[i].str; ++i)
     {
 	if (centries[i].id == id)  return i;
@@ -232,28 +273,24 @@
 }
 
 
-/* Initialize/update ComboBox @cb with strings from @centries and
-   select @id. If @cb_func is != NULL, connect @cb_func to signal
-   "changed" with data @cb_data. */
-static void spl_set_combobox (GtkComboBox *cb,
-			      const ComboEntry centries[], guint32 id,
-			      GCallback cb_func, gpointer cb_data)
+/* called by spl_set_combobox() */
+static void spl_setup_combobox (GtkComboBox *cb,
+				const ComboEntry centries[], gint index,
+				GCallback cb_func, gpointer cb_data)
 {
-    gint index;
+    const ComboEntry *old_centries = g_object_get_data (G_OBJECT (cb),
+							"spl_centries");
 
-    g_return_if_fail (cb);
-    g_return_if_fail (centries);
-
-    index = comboentry_index_from_id (centries, id);
-
-    if (g_object_get_data (G_OBJECT (cb), "combo_set") == NULL)
+    if ((g_object_get_data (G_OBJECT (cb), "combo_set") == NULL) ||
+	(centries != old_centries))
     {   /* the combo has not yet been initialized */
 	const ComboEntry *ce = centries;
 	GtkCellRenderer *cell;
 	GtkListStore *store;
 
-	/* since the transition to libglade we have to set the model
-	   ourselves */
+	/* Set the model -- that is you cannot do a
+	   gtk_combo_box_new_text()! This gives us the flexibility to
+	   expand this function to set some graphic next to the text. */
 	store = gtk_list_store_new (1, G_TYPE_STRING);
 	gtk_combo_box_set_model (cb, GTK_TREE_MODEL (store));
 	g_object_unref (store);
@@ -269,6 +306,7 @@
 	    gtk_combo_box_append_text (cb, _(ce->str));
 	    ++ce;
 	}
+	g_object_set_data (G_OBJECT (cb), "spl_centries", (gpointer)centries);
 	g_object_set_data (G_OBJECT (cb), "combo_set", "set");
 	if (cb_func)
 	    g_signal_connect (cb, "changed", cb_func, cb_data);
@@ -279,6 +317,26 @@
     }
 }
 
+
+/* Initialize/update ComboBox @cb with strings from @centries and
+   select @id. If @cb_func is != NULL, connect @cb_func to signal
+   "changed" with data @cb_data. */
+static void spl_set_combobox (GtkComboBox *cb,
+			      const ComboEntry centries[], guint32 id,
+			      GCallback cb_func, gpointer cb_data)
+{
+    gint index;
+
+    g_return_if_fail (cb);
+    g_return_if_fail (centries);
+
+    index = comboentry_index_from_id (centries, id);
+
+    spl_setup_combobox (cb, centries, index, cb_func, cb_data);
+
+}
+
+
 /* Callbacks */
 static void spl_all_radio_toggled (GtkToggleButton *togglebutton,
 				   GtkWidget *spl_window)
@@ -294,7 +352,7 @@
 	g_return_if_fail (frame);
 	gtk_widget_set_sensitive (frame, TRUE);
 	spl->splpref.checkrules = TRUE;
-	spl->splrules.match_operator = SPLMATCH_AND;
+	spl->splrules.match_operator = ITDB_SPLMATCH_AND;
     }
 }
 
@@ -312,7 +370,7 @@
 	g_return_if_fail (frame);
 	gtk_widget_set_sensitive (frame, TRUE);
 	spl->splpref.checkrules = TRUE;
-	spl->splrules.match_operator = SPLMATCH_OR;
+	spl->splrules.match_operator = ITDB_SPLMATCH_OR;
     }
 }
 
@@ -421,11 +479,10 @@
 
 
 /* Rule field has been changed */
-static void spl_field_changed (GtkComboBox *combobox,
-			       GtkWidget *spl_window)
+static void spl_field_changed (GtkComboBox *combobox, GtkWidget *spl_window)
 {
     Playlist *spl;
-    SPLRule *splr;
+    Itdb_SPLRule *splr;
     gint index = gtk_combo_box_get_active (combobox);
 
     g_return_if_fail (index != -1);
@@ -446,11 +503,11 @@
 
 
 /* Action field has been changed */
-static void spl_action_changed (GtkComboBox *combobox,
-				GtkWidget *spl_window)
+static void spl_action_changed (GtkComboBox *combobox, GtkWidget *spl_window)
 {
     Playlist *spl;
-    SPLRule *splr;
+    Itdb_SPLRule *splr;
+    ItdbSPLFieldType ft;
     const ComboEntry *centries;
     gint index = gtk_combo_box_get_active (combobox);
 
@@ -465,24 +522,82 @@
     centries = g_object_get_data (G_OBJECT (combobox), "spl_centries");
     g_return_if_fail (centries);
 
-    if (index != -1)
+    ft = GPOINTER_TO_INT (g_object_get_data (G_OBJECT (combobox), "spl_fieldtype"));
+
+/* printf ("(action) value changed: %04x...", (gint)splr->fromvalue); */
+    switch (ft)
     {
+    case ITDB_SPLFT_BINARY_AND:
+	if (splr->field == ITDB_SPLFIELD_VIDEO_KIND)
+	{   /* traet Video Kind differently */
+	    gint oldindex = GPOINTER_TO_INT (
+		g_object_get_data (G_OBJECT (combobox), "spl_binary_and_index"));
+	    if (oldindex != index)
+	    {   /* data changed */
+		/* inverse the video bits */
+		splr->fromvalue = (~splr->fromvalue) &
+		    (0x0e00 | ITDB_MEDIATYPE_MOVIE | ITDB_MEDIATYPE_MUSICVIDEO | ITDB_MEDIATYPE_TVSHOW);
+		spl_update_rule (spl_window, splr);
+	    }
+	}
+	else
+	{   /* treat as standard */
+	    if (splr->action != centries[index].id)
+	    {   /* data changed */
+		splr->action = centries[index].id;
+		/* update display */
+		spl_update_rule (spl_window, splr);
+	    }
+	}
+	break;
+    default:
 	if (splr->action != centries[index].id)
 	{   /* data changed */
 	    splr->action = centries[index].id;
 	    /* update display */
 	    spl_update_rule (spl_window, splr);
 	}
+	break;
     }
+/* printf ("%04x\n", (gint)splr->fromvalue); */
 }
 
 
+/*  field has been changed */
+static void spl_videokind_comboentry_changed (GtkComboBox *combobox,
+					      GtkWidget *spl_window)
+{
+    Playlist *spl;
+    Itdb_SPLRule *splr;
+    const ComboEntry *centries;
+    gint index = gtk_combo_box_get_active (combobox);
+
+    g_return_if_fail (index != -1);
+    g_return_if_fail (spl_window);
+
+    spl =  g_object_get_data (G_OBJECT (spl_window), "spl_work");
+    g_return_if_fail (spl);
+
+    splr = g_object_get_data (G_OBJECT (combobox), "spl_rule");
+    g_return_if_fail (splr);
+
+    centries = g_object_get_data (G_OBJECT (combobox), "spl_centries");
+    g_return_if_fail (centries);
+
+/* printf ("(entry) value changed: %04x...", (gint)splr->fromvalue); */
+    if (splr->fromvalue != centries[index].id)
+    {   /* data changed */
+	splr->fromvalue = centries[index].id;
+    }
+/* printf ("%04x\n", (gint)splr->fromvalue); */
+}
+
+
 /* The enter key was pressed inside a rule entry (fromvalue, fromdate,
  * tovalue, todate, string...)  --> redisplay */
-static void splr_entry_redisplay (GtkEditable *editable,
-				  GtkWidget *spl_window)
+static void splr_entry_redisplay (GtkEditable *editable, GtkWidget *spl_window)
 {
-    SPLRule *splr;
+    Itdb_SPLRule *splr;
     enum entrytype type;
     gchar str[WNLEN];
     const gchar *strp;
@@ -504,7 +619,7 @@
 static void splr_entry_changed (GtkEditable *editable,
 				GtkWidget *spl_window)
 {
-    SPLRule *splr;
+    Itdb_SPLRule *splr;
     gchar *str;
     time_t t;
     enum entrytype type;
@@ -521,7 +636,7 @@
     {
     case spl_ET_FROMVALUE:
 	splr->fromvalue = atol (str);
-	if (splr->field == SPLFIELD_RATING)
+	if (splr->field == ITDB_SPLFIELD_RATING)
 	{
 	    splr->fromvalue *= ITDB_RATING_STEP;
 	}
@@ -529,14 +644,14 @@
     case spl_ET_FROMVALUE_DATE:
 	t = time_string_to_fromtime (str);
 	if (t != -1)
-	    splr->fromvalue = itdb_time_host_to_mac (t);
+	    splr->fromvalue = t;
 	break;
     case spl_ET_FROMDATE:
 	splr->fromdate = atol (str);
 	break;
     case spl_ET_TOVALUE:
 	splr->tovalue = atol (str);
-	if (splr->field == SPLFIELD_RATING)
+	if (splr->field == ITDB_SPLFIELD_RATING)
 	{
 	    splr->tovalue *= ITDB_RATING_STEP;
 	}
@@ -544,7 +659,7 @@
     case spl_ET_TOVALUE_DATE:
 	t = time_string_to_totime (str);
 	if (t != -1)
-	    splr->tovalue = itdb_time_host_to_mac (t);
+	    splr->tovalue = t;
 	break;
     case spl_ET_TODATE:
 	splr->todate = atol (str);
@@ -570,7 +685,7 @@
 static void spl_fromunits_changed (GtkComboBox *combobox,
 				   GtkWidget *spl_window)
 {
-    SPLRule *splr;
+    Itdb_SPLRule *splr;
     gint index = gtk_combo_box_get_active (combobox);
 
     g_return_if_fail (index != -1);
@@ -588,7 +703,7 @@
 static void spl_playlist_changed (GtkComboBox *combobox,
 				  GtkWidget *spl_window)
 {
-    SPLRule *splr;
+    Itdb_SPLRule *splr;
     GArray *pl_ids;
     gint index;
 
@@ -639,7 +754,7 @@
 				      GtkWidget *spl_window)
 {
     Playlist *spl;
-    SPLRule *splr;
+    Itdb_SPLRule *splr;
     gint row;
 
     g_return_if_fail (spl_window);
@@ -664,7 +779,7 @@
 				     GtkWidget *spl_window)
 {
     Playlist *spl;
-    SPLRule *splr;
+    Itdb_SPLRule *splr;
     gint row;
 
     g_return_if_fail (spl_window);
@@ -867,7 +982,7 @@
 
     g_return_if_fail (str != NULL);
 
-    t = itdb_time_mac_to_host (value);
+    t = (time_t)value;
     if (et == spl_ET_FROMVALUE_DATE)
     {
 	resstr = time_fromtime_to_string (t);
@@ -885,7 +1000,7 @@
 /* set the string @str for rule @splr (entrytype: @et) */
 /* @str must be WNLEN chars long. Returns a pointer to the string to
  * be used */
-const gchar *entry_get_string (gchar *str, SPLRule *splr,
+const gchar *entry_get_string (gchar *str, Itdb_SPLRule *splr,
 			       enum entrytype et)
 {
     gchar *strp = str;
@@ -894,7 +1009,7 @@
     g_return_val_if_fail (str, NULL);
     g_return_val_if_fail (splr, NULL);
 
-    if (splr->field == SPLFIELD_RATING)
+    if (splr->field == ITDB_SPLFIELD_RATING)
     {
 	stepsize = ITDB_RATING_STEP;
     }
@@ -902,12 +1017,12 @@
     switch (et)
     {
     case spl_ET_FROMVALUE:
-	if (splr->fromvalue == SPLDATE_IDENTIFIER)
+	if (splr->fromvalue == ITDB_SPL_DATE_IDENTIFIER)
 	    splr->fromvalue = 0;
 	snprintf (str, WNLEN, "%lld", (long long int)(splr->fromvalue / stepsize));
 	break;
     case spl_ET_FROMVALUE_DATE:
-	if (splr->fromvalue == SPLDATE_IDENTIFIER)
+	if (splr->fromvalue == ITDB_SPL_DATE_IDENTIFIER)
 	    splr->fromvalue = 0;
 	set_timestring (str, splr->fromvalue, et);
 	break;
@@ -915,12 +1030,12 @@
 	snprintf (str, WNLEN, "%lld",  (long long int)splr->fromdate);
 	break;
     case spl_ET_TOVALUE:
-	if (splr->tovalue == SPLDATE_IDENTIFIER)
+	if (splr->tovalue == ITDB_SPL_DATE_IDENTIFIER)
 	    splr->tovalue = 0;
 	snprintf (str, WNLEN, "%lld",  (long long int)(splr->tovalue / stepsize));
 	break;
     case spl_ET_TOVALUE_DATE:
-	if (splr->tovalue == SPLDATE_IDENTIFIER)
+	if (splr->tovalue == ITDB_SPL_DATE_IDENTIFIER)
 	    splr->tovalue = 0;
 	set_timestring (str, splr->tovalue, et);
 	break;
@@ -945,7 +1060,7 @@
 
 
 static GtkWidget *hbox_add_entry (GtkWidget *hbox,
-				  SPLRule *splr,
+				  Itdb_SPLRule *splr,
 				  enum entrytype et)
 {
     GtkWidget *spl_window;
@@ -965,7 +1080,7 @@
     gtk_box_pack_start (GTK_BOX (hbox), entry, TRUE, TRUE, 0);
     if (et == spl_ET_STRING)
 	  gtk_entry_set_max_length (GTK_ENTRY (entry),
-				    SPL_STRING_MAXLEN);
+				    ITDB_SPL_STRING_MAXLEN);
     else  gtk_entry_set_max_length (GTK_ENTRY (entry), 50);
     strp = entry_get_string (str, splr, et);
     if (strp)  gtk_entry_set_text (GTK_ENTRY (entry), strp);
@@ -994,10 +1109,10 @@
 
 /* Create the widgets to hold the action data (range, date,
  * string...) */
-GtkWidget *spl_create_hbox (GtkWidget *spl_window, SPLRule *splr)
+GtkWidget *spl_create_hbox (GtkWidget *spl_window, Itdb_SPLRule *splr)
 {
     GtkWidget *hbox = NULL;
-    SPLActionType at;
+    ItdbSPLActionType at;
     GtkWidget *entry, *label, *combobox;
     gint index;
     GArray *pl_ids = NULL;
@@ -1016,8 +1131,8 @@
     g_return_val_if_fail (itdb, NULL);
 
     at = itdb_splr_get_action_type (splr);
-    g_return_val_if_fail (at != splat_unknown, NULL);
-    g_return_val_if_fail (at != splat_invalid, NULL);
+    g_return_val_if_fail (at != ITDB_SPLAT_UNKNOWN, NULL);
+    g_return_val_if_fail (at != ITDB_SPLAT_INVALID, NULL);
 
     hbox = gtk_hbox_new (FALSE, 3);
     gtk_widget_show (hbox);
@@ -1025,10 +1140,10 @@
 
     switch (at)
     {
-    case splat_string:
+    case ITDB_SPLAT_STRING:
 	entry = hbox_add_entry (hbox, splr, spl_ET_STRING);
 	break;
-    case splat_int:
+    case ITDB_SPLAT_INT:
 	entry = hbox_add_entry (hbox, splr, spl_ET_FROMVALUE);
 	/* check for unit */
 	index = comboentry_index_from_id (splfield_units, splr->field);
@@ -1039,10 +1154,10 @@
 	    gtk_box_pack_start (GTK_BOX (hbox), label, TRUE, TRUE, 0);
 	}
 	break;
-    case splat_date:
+    case ITDB_SPLAT_DATE:
 	entry = hbox_add_entry (hbox, splr, spl_ET_FROMVALUE_DATE);
 	break;
-    case splat_range_int:
+    case ITDB_SPLAT_RANGE_INT:
 	entry = hbox_add_entry (hbox, splr, spl_ET_FROMVALUE);
 	label = gtk_label_new (_("to"));
 	gtk_widget_show (label);
@@ -1057,7 +1172,7 @@
 	    gtk_box_pack_start (GTK_BOX (hbox), label, FALSE, FALSE, 0);
 	}
 	break;
-    case splat_range_date:
+    case ITDB_SPLAT_RANGE_DATE:
 	entry = hbox_add_entry (hbox, splr, spl_ET_FROMVALUE_DATE);
 	label = gtk_label_new (_("to"));
 	gtk_widget_show (label);
@@ -1072,7 +1187,7 @@
 	    gtk_box_pack_start (GTK_BOX (hbox), label, FALSE, FALSE, 0);
 	}
 	break;
-    case splat_inthelast:
+    case ITDB_SPLAT_INTHELAST:
 	if (comboentry_index_from_id (
 		splat_inthelast_units_comboentries,
 		splr->fromunits) == -1)
@@ -1093,7 +1208,7 @@
 			  G_CALLBACK (spl_fromunits_changed),
 			  spl_window);
 	break;
-    case splat_playlist:
+    case ITDB_SPLAT_PLAYLIST:
 	combobox = gtk_combo_box_new_text ();
 	gtk_widget_show (combobox);
 	gtk_box_pack_start (GTK_BOX (hbox), combobox, TRUE, TRUE, 0);
@@ -1116,7 +1231,7 @@
 	g_object_set_data_full (G_OBJECT (combobox), "spl_pl_ids",
 				pl_ids,
 				(GDestroyNotify)spl_pl_ids_destroy);
-	if (splr->fromvalue == SPLDATE_IDENTIFIER)
+	if (splr->fromvalue == ITDB_SPL_DATE_IDENTIFIER)
 	    splr->fromvalue = g_array_index (pl_ids, guint64, 0);
 	index = pl_ids_index_from_id (pl_ids, splr->fromvalue);
 	gtk_combo_box_set_active (GTK_COMBO_BOX (combobox), index);
@@ -1124,27 +1239,55 @@
 			  G_CALLBACK (spl_playlist_changed),
 			  spl_window);
 	break;
-    case splat_none:
+    case ITDB_SPLAT_BINARY_AND:
+	if (splr->field == ITDB_SPLFIELD_VIDEO_KIND)
+	{
+	    const ComboEntry *use_centries = NULL;
+	    combobox = gtk_combo_box_new ();
+	    gtk_widget_show (combobox);
+	    gtk_box_pack_start (GTK_BOX (hbox), combobox, TRUE, TRUE, 0);
+	    if (comboentry_index_from_id (videokind_comboentries_is,
+					  splr->fromvalue) != -1)
+	    {
+		use_centries = videokind_comboentries_is;
+	    }
+	    else
+	    {
+		use_centries = videokind_comboentries_is_not;
+	    }
+	    g_object_set_data (G_OBJECT (combobox), "spl_rule", splr);
+	    spl_set_combobox (GTK_COMBO_BOX (combobox),
+			      use_centries,
+			      splr->fromvalue,
+			      G_CALLBACK (spl_videokind_comboentry_changed),
+			      spl_window);
+	}
+	else
+	{   /* not supported: display as standard INT */
+	    entry = hbox_add_entry (hbox, splr, spl_ET_FROMVALUE);
+	}
 	break;
-    case splat_unknown:
-    case splat_invalid:
-	/* never reached !! */
+    case ITDB_SPLAT_NONE:
 	break;
+    case ITDB_SPLAT_UNKNOWN:
+    case ITDB_SPLAT_INVALID:
+	/* hopefully never reached !! */
+	break;
     }
     return hbox;
 }
 
 
 /* Display/update rule @n in @spl_window */
-static void spl_update_rule (GtkWidget *spl_window, SPLRule *splr)
+static void spl_update_rule (GtkWidget *spl_window, Itdb_SPLRule *splr)
 {
     GtkTable *table;
     Playlist *spl;
     GtkWidget *combobox, *hbox, *button;
     gchar name[WNLEN];
-    SPLFieldType ft;
-    SPLActionType at;
-    gint row;
+    ItdbSPLFieldType ft;
+    ItdbSPLActionType at;
+    gint row, index;
     const ComboEntry *centries = NULL;
 
 
@@ -1183,80 +1326,113 @@
     /* Combobox for action */
     /* ------------------- */
     ft = itdb_splr_get_field_type (splr);
-    g_return_if_fail (ft != splft_unknown);
     snprintf (name, WNLEN, "spl_actioncombo%d", row);
     combobox = g_object_get_data (G_OBJECT (table), name);
+
+    if (combobox)
+    {   /* check if existing combobox is of same type */
+	ItdbSPLFieldType old_ft = GPOINTER_TO_INT (
+	    g_object_get_data (G_OBJECT (combobox), "spl_fieldtype"));
+	if (old_ft != ft)
+	{
+	    gtk_widget_destroy (combobox);
+	    combobox = NULL;
+	}
+    }
+
+    if (!combobox)
+    {  /* create combo for action */
+	combobox = gtk_combo_box_new ();
+	gtk_widget_show (combobox);
+	gtk_table_attach (table, combobox, 1,2, row,row+1,
+			  GTK_FILL,0,   /* expand options */
+			  XPAD,YPAD);   /* padding options */
+	g_object_set_data (G_OBJECT (table), name, combobox);
+    }
+    g_object_set_data (G_OBJECT (combobox), "spl_rule", splr);
+    g_object_set_data (G_OBJECT (combobox), "spl_fieldtype", GINT_TO_POINTER (ft));
+
     switch (ft)
     {
-    case splft_string:
+    case ITDB_SPLFT_STRING:
 	centries = splaction_ftstring_comboentries;
 	break;
-    case splft_int:
+    case ITDB_SPLFT_INT:
 	centries = splaction_ftint_comboentries;
 	break;
-    case splft_boolean:
+    case ITDB_SPLFT_BOOLEAN:
 	centries = splaction_ftboolean_comboentries;
 	break;
-    case splft_date:
+    case ITDB_SPLFT_DATE:
 	centries = splaction_ftdate_comboentries;
 	break;
-    case splft_playlist:
+    case ITDB_SPLFT_PLAYLIST:
 	centries = splaction_ftplaylist_comboentries;
 	break;
-    case splft_unknown:
-	centries = NULL; /* never reached! */
+    case ITDB_SPLFT_BINARY_AND:
+	centries = splaction_ftbinaryand_comboentries;
 	break;
+    case ITDB_SPLFT_UNKNOWN:
+	centries = splaction_notsupported_comboentries;
+	break;
     }
+
+    if (centries == NULL)
+    {   /* Handle non-supported action types */
+	centries = splaction_notsupported_comboentries;
+    }
+
     if (comboentry_index_from_id (centries, splr->action) == -1)
     {   /* Action currently set is not a legal action for the type of
 	   field. --> adjust */
-	splr->action = centries[0].id;
+	if (centries)    splr->action = centries[0].id;
     }
-    if (combobox)
-    {   /* check if existing combobox is of same type */
-	const ComboEntry *old_ce = g_object_get_data (
-	    G_OBJECT (combobox), "spl_centries");
-	if (old_ce != centries)
-	{
-	    gtk_widget_destroy (combobox);
-	    combobox = NULL;
+
+    if ((splr->field == ITDB_SPLFIELD_VIDEO_KIND) && (ft == ITDB_SPLFT_BINARY_AND))
+    {   /* this field needs to be handled differently from everything
+	   else */
+	if (comboentry_index_from_id (videokind_comboentries_is,
+				      splr->fromvalue) != -1)
+	{   /* found value to be part of "Is" */
+	    index = 0;
 	}
+	else
+	{   /* assume value to be part of "Is Not" */
+	    index = 1;
+	}
+	g_object_set_data (G_OBJECT (combobox), "spl_binary_and_index",
+			   GINT_TO_POINTER (index));
+	spl_setup_combobox (GTK_COMBO_BOX (combobox), centries, index,
+			    G_CALLBACK (spl_action_changed), spl_window);
     }
-    if (!combobox)
-    {  /* create combo for action */
-	combobox = gtk_combo_box_new ();
-	gtk_widget_show (combobox);
-	gtk_table_attach (table, combobox, 1,2, row,row+1,
-			  GTK_FILL,0,   /* expand options */
-			  XPAD,YPAD);   /* padding options */
-	g_object_set_data (G_OBJECT (table), name, combobox);
-	g_object_set_data (G_OBJECT (combobox),
-			   "spl_centries", (gpointer)centries);
+    else
+    {
+	spl_set_combobox (GTK_COMBO_BOX (combobox), centries, splr->action,
+			  G_CALLBACK (spl_action_changed), spl_window);
+
     }
-    g_object_set_data (G_OBJECT (combobox), "spl_rule", splr);
-    spl_set_combobox (GTK_COMBO_BOX (combobox),
-		      centries,
-		      splr->action,
-		      G_CALLBACK (spl_action_changed),
-		      spl_window);
 
     /* input fields (range, string, date...) */
     /* ------------------------------------- */
     at = itdb_splr_get_action_type (splr);
-    g_return_if_fail (at != splat_unknown);
-    g_return_if_fail (at != splat_invalid);
     snprintf (name, WNLEN, "spl_actionhbox%d", row);
     hbox = g_object_get_data (G_OBJECT (table), name);
     if (hbox)
     {
 	gtk_widget_destroy (hbox);
-	hbox = NULL;
+	g_object_set_data (G_OBJECT (table), name, NULL);
     }
-    hbox = spl_create_hbox (spl_window, splr);
-    gtk_table_attach (table, hbox, 2,3, row,row+1,
-		      GTK_FILL,0,   /* expand options */
-		      XPAD,YPAD);   /* padding options */
-    g_object_set_data (G_OBJECT (table), name, hbox);
+    if (centries != splaction_notsupported_comboentries)
+    {
+	g_return_if_fail (at != ITDB_SPLAT_UNKNOWN);
+	g_return_if_fail (at != ITDB_SPLAT_INVALID);
+	hbox = spl_create_hbox (spl_window, splr);
+	gtk_table_attach (table, hbox, 2,3, row,row+1,
+			  GTK_FILL,0,   /* expand options */
+			  XPAD,YPAD);   /* padding options */
+	g_object_set_data (G_OBJECT (table), name, hbox);
+    }
+
     /* +/- buttons */
     /* ----------- */
     snprintf (name, WNLEN, "spl_buttonhbox%d", row);
@@ -1429,7 +1605,7 @@
 			  spl_window);
 	gtk_toggle_button_set_active (
 	    GTK_TOGGLE_BUTTON (w),
-	    (spl_dup->splrules.match_operator == SPLMATCH_AND));
+	    (spl_dup->splrules.match_operator == ITDB_SPLMATCH_AND));
     }
     if ((w = gtkpod_xml_get_widget (spl_window_xml, "spl_any_radio")))
     {
@@ -1438,7 +1614,7 @@
 			  spl_window);
 	gtk_toggle_button_set_active (
 	    GTK_TOGGLE_BUTTON (w),
-	    (spl_dup->splrules.match_operator == SPLMATCH_OR));
+	    (spl_dup->splrules.match_operator == ITDB_SPLMATCH_OR));
     }
     if ((w = gtkpod_xml_get_widget (spl_window_xml, "spl_none_radio")))
     {

Copied: gtkpod/trunk/src/display_tracks.c (from rev 193, gtkpod/branches/upstream/current/src/display_tracks.c)
===================================================================
--- gtkpod/trunk/src/display_tracks.c	                        (rev 0)
+++ gtkpod/trunk/src/display_tracks.c	2007-06-27 21:27:12 UTC (rev 194)
@@ -0,0 +1,2520 @@
+/*
+|  Copyright (C) 2002-2007 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: display_tracks.c 1589 2007-06-25 14:23:59Z jcsjcs $
+*/
+
+#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 <sys/stat.h>
+#include <sys/types.h>
+#include <unistd.h>
+
+#include "prefs.h"
+#include "display_private.h"
+#include "display_itdb.h"
+#include "itdb.h"
+#include "info.h"
+#include "misc.h"
+#include "misc_track.h"
+#include "file.h"
+#include "context_menus.h"
+
+/* pointer to the treeview for the track display */
+static GtkTreeView *track_treeview = NULL;
+/* array with pointers to the columns used in the track display */
+static GtkTreeViewColumn *tm_columns[TM_NUM_COLUMNS];
+/* column in which track pointer is stored */
+static const gint READOUT_COL = 0;
+
+/* compare function to be used for string comparisons */
+static gint (*string_compare_func) (const gchar *str1, const gchar *str2) = compare_string;
+
+static GtkTreeViewColumn *tm_add_column (TM_item tm_item, gint position);
+static TM_item tm_lookup_col_id (GtkTreeViewColumn *column);
+
+/* Drag and drop definitions */
+static GtkTargetEntry tm_drag_types [] = {
+    { DND_GTKPOD_TM_PATHLIST_TYPE, 0, DND_GTKPOD_TM_PATHLIST },
+    { DND_GTKPOD_TRACKLIST_TYPE, 0, DND_GTKPOD_TRACKLIST },
+    { "text/uri-list", 0, DND_TEXT_URI_LIST },
+    { "text/plain", 0, DND_TEXT_PLAIN },
+    { "STRING", 0, DND_TEXT_PLAIN }
+};
+static GtkTargetEntry tm_drop_types [] = {
+    { DND_GTKPOD_TM_PATHLIST_TYPE, 0, DND_GTKPOD_TM_PATHLIST },
+    { "text/uri-list", 0, DND_TEXT_URI_LIST },
+    { "text/plain", 0, DND_TEXT_PLAIN },
+    { "STRING", 0, DND_TEXT_PLAIN }
+};
+
+/* prefs strings */
+const gchar *TM_PREFS_SEARCH_COLUMN = "tm_prefs_search_column";
+
+
+/* ---------------------------------------------------------------- */
+/* Section for track display                                        */
+/* DND -- Drag And Drop                                             */
+/* ---------------------------------------------------------------- */
+
+
+/* Move the paths listed in @data before or after (according to @pos)
+   @path. Used for DND */
+static gboolean tm_move_pathlist (gchar *data,
+				  GtkTreePath *path,
+				  GtkTreeViewDropPosition pos)
+{
+    GtkTreeIter to_iter;
+    GtkTreeIter *from_iter;
+    GtkTreeModel *model;
+    GList *iterlist = NULL;
+    GList *link;
+    gchar **paths, **pathp;
+
+    g_return_val_if_fail (data, FALSE);
+    g_return_val_if_fail (*data, FALSE);
+
+    model = gtk_tree_view_get_model (track_treeview);
+    g_return_val_if_fail (model, FALSE);
+
+    g_return_val_if_fail (gtk_tree_model_get_iter (model, &to_iter, path),
+			  FALSE);
+
+    /* split the path list into individual strings */
+    paths = g_strsplit (data, "\n", -1);
+    pathp = paths;
+    /* Convert the list of paths into a list of iters */
+    while (*pathp)
+    {
+	from_iter = g_malloc (sizeof (GtkTreeIter));
+	if ((strlen (*pathp) > 0) &&
+	    gtk_tree_model_get_iter_from_string (model, from_iter, *pathp))
+	{
+	    iterlist = g_list_append (iterlist, from_iter);
+	}
+	++pathp;
+    }
+    g_strfreev (paths);
+    /* Move the iters in iterlist before or after @to_iter */
+    switch (pos)
+    {
+    case GTK_TREE_VIEW_DROP_INTO_OR_AFTER:
+    case GTK_TREE_VIEW_DROP_AFTER:
+	for (link = g_list_last (iterlist); link; link = link->prev)
+	{
+	    from_iter = (GtkTreeIter *)link->data;
+	    gtk_list_store_move_after (GTK_LIST_STORE (model),
+				       from_iter, &to_iter);
+	}
+	break;
+    case GTK_TREE_VIEW_DROP_INTO_OR_BEFORE:
+    case GTK_TREE_VIEW_DROP_BEFORE:
+	for (link = g_list_first (iterlist); link; link = link->next)
+	{
+	    from_iter = (GtkTreeIter *)link->data;
+	    gtk_list_store_move_before (GTK_LIST_STORE (model),
+					from_iter, &to_iter);
+	}
+	break;
+    }
+
+    /* free iterlist */
+    for (link = iterlist; link; link = link->next)
+	g_free (link->data);
+    g_list_free (iterlist);
+
+    tm_rows_reordered ();
+    return TRUE;
+}
+
+
+/*
+ * utility function for appending ipod track ids for track view (DND)
+ */
+static void
+on_tm_dnd_get_track_foreach(GtkTreeModel *tm, GtkTreePath *tp,
+			    GtkTreeIter *i, gpointer data)
+{
+    Track *tr;
+    GString *tracklist = (GString *)data;
+
+    g_return_if_fail (tracklist);
+
+    gtk_tree_model_get(tm, i, READOUT_COL, &tr, -1);
+    g_return_if_fail (tr);
+
+    g_string_append_printf (tracklist, "%p\n", tr);
+}
+
+
+/*
+ * utility function for appending path for track view (DND)
+ */
+static void
+on_tm_dnd_get_path_foreach(GtkTreeModel *tm, GtkTreePath *tp,
+			   GtkTreeIter *iter, gpointer data)
+{
+    GString *filelist = (GString *)data;
+    gchar *ps = gtk_tree_path_to_string (tp);
+    g_string_append_printf (filelist, "%s\n", ps);
+    g_free (ps);
+}
+
+/*
+ * utility function for appending file for track view (DND)
+ */
+static void
+on_tm_dnd_get_file_foreach(GtkTreeModel *tm, GtkTreePath *tp,
+			   GtkTreeIter *iter, gpointer data)
+{
+    Track *track;
+    GString *filelist = (GString *)data;
+    gchar *name;
+
+    gtk_tree_model_get(tm, iter, READOUT_COL, &track, -1);
+    name = get_file_name_from_source (track, SOURCE_PREFER_LOCAL);
+    if (name)
+    {
+	g_string_append_printf (filelist, "file:%s\n", name);
+	g_free (name);
+    }
+}
+
+/*
+ * utility function for appending file-uri for track view (DND)
+ */
+static void
+on_tm_dnd_get_uri_foreach(GtkTreeModel *tm, GtkTreePath *tp,
+			  GtkTreeIter *iter, gpointer data)
+{
+    Track *track;
+    GString *filelist = (GString *)data;
+    gchar *name;
+
+    gtk_tree_model_get(tm, iter, READOUT_COL, &track, -1);
+    name = get_file_name_from_source (track, SOURCE_PREFER_LOCAL);
+    if (name)
+    {
+	gchar *uri = g_filename_to_uri (name, NULL, NULL);
+	if (uri)
+	{
+	    g_string_append_printf (filelist, "%s\n", uri);
+	    g_free (uri);
+	}
+	g_free (name);
+    }
+}
+
+static void tm_drag_begin (GtkWidget *widget,
+			   GdkDragContext *dc,
+			   gpointer user_data)
+{
+    tm_stop_editing (TRUE);
+}
+
+
+/* remove dragged playlist after successful MOVE */
+static void tm_drag_data_delete (GtkWidget *widget,
+			   GdkDragContext *dc,
+			   gpointer user_data)
+{
+    GtkTreeSelection *ts;
+    Playlist *pl = pm_get_selected_playlist ();
+    gint num;
+
+/*     puts ("tm_drag_data_delete"); */
+
+    g_return_if_fail (widget);
+    ts = gtk_tree_view_get_selection (GTK_TREE_VIEW(widget));
+    g_return_if_fail (ts);
+    /* number of selected tracks */
+    num = gtk_tree_selection_count_selected_rows (ts);
+    if (num == 0) return;
+
+    /* Check if we really have to delete the tracks */
+    if (!itdb_playlist_is_mpl (pl))
+    {	/* get list of selected tracks */
+	GString *reply = g_string_sized_new (2000);
+	gchar *str;
+	Track *track;
+
+	gtk_tree_selection_selected_foreach(ts,
+					    on_tm_dnd_get_track_foreach,
+					    reply);
+	str = reply->str;
+	while(parse_tracks_from_string(&str, &track))
+	{
+	    gp_playlist_remove_track (pl, track, DELETE_ACTION_PLAYLIST);
+	}
+	g_string_free (reply, TRUE);
+
+	gtkpod_statusbar_message (ngettext ("Moved one track",
+					    "Moved %d tracks", num), num);
+    }
+    else
+    {
+	gtkpod_statusbar_message (ngettext ("Copied one track",
+					    "Copied %d tracks", num), num);
+    }
+}
+
+
+
+static void tm_drag_end (GtkWidget *widget,
+			 GdkDragContext *dc,
+			 gpointer user_data)
+{
+/*     puts ("tm_drag_end"); */
+    display_remove_autoscroll_row_timeout (widget);
+    gtkpod_tracks_statusbar_update ();
+}
+
+
+static gboolean tm_drag_drop (GtkWidget *widget,
+			      GdkDragContext *dc,
+			      gint x,
+			      gint y,
+			      guint time,
+			      gpointer user_data)
+{
+    GdkAtom target;
+
+/*     puts ("tm_drag_data_drop"); */
+
+    display_remove_autoscroll_row_timeout (widget);
+
+    target = gtk_drag_dest_find_target (widget, dc, NULL);
+
+    if (target != GDK_NONE)
+    {
+	gtk_drag_get_data (widget, dc, target, time);
+	return TRUE;
+    }
+    return FALSE;
+}
+
+static void tm_drag_leave (GtkWidget *widget,
+			   GdkDragContext *dc,
+			   guint time,
+			   gpointer user_data)
+{
+/*     puts ("tm_drag_leave"); */
+    display_remove_autoscroll_row_timeout (widget);
+}
+
+
+
+static gboolean tm_drag_motion (GtkWidget *widget,
+				GdkDragContext *dc,
+				gint x,
+				gint y,
+				guint time,
+				gpointer user_data)
+{
+    GtkTreeView *treeview;
+    GdkAtom target;
+    GtkTreePath *path = NULL;
+    GtkTreeViewDropPosition pos;
+    iTunesDB *itdb;
+    ExtraiTunesDBData *eitdb;
+
+/*     printf ("drag_motion  suggested: %d actions: %d\n", */
+/*  	    dc->suggested_action, dc->actions); */
+
+/*     printf ("x: %d y: %d\n", x, y); */
+
+    g_return_val_if_fail (GTK_IS_TREE_VIEW (widget), FALSE);
+
+    treeview = GTK_TREE_VIEW (widget);
+
+    display_install_autoscroll_row_timeout (widget);
+
+    itdb = gp_get_selected_itdb ();
+    /* no drop is possible if no playlist/repository is selected */
+    if (itdb == NULL)
+    {
+	gdk_drag_status (dc, 0, time);
+	return FALSE;
+    }
+    eitdb = itdb->userdata;
+    g_return_val_if_fail (eitdb, FALSE);
+    /* no drop is possible if no repository is loaded */
+    if (!eitdb->itdb_imported)
+    {
+	gdk_drag_status (dc, 0, time);
+	return FALSE;
+    }
+
+    /* optically set destination row if available */
+    if (gtk_tree_view_get_dest_row_at_pos (GTK_TREE_VIEW (widget),
+					   x, y, &path, &pos))
+    {
+	/* drops are only allowed before and after -- not onto
+	   existing paths */
+	switch (pos)
+	{
+	case GTK_TREE_VIEW_DROP_INTO_OR_AFTER:
+	case GTK_TREE_VIEW_DROP_AFTER:
+	    gtk_tree_view_set_drag_dest_row (GTK_TREE_VIEW (widget), path,
+					     GTK_TREE_VIEW_DROP_AFTER);
+	    break;
+	case GTK_TREE_VIEW_DROP_INTO_OR_BEFORE:
+	case GTK_TREE_VIEW_DROP_BEFORE:
+	    gtk_tree_view_set_drag_dest_row (GTK_TREE_VIEW (widget), path,
+					     GTK_TREE_VIEW_DROP_BEFORE);
+	    break;
+	}
+
+ 	gtk_tree_path_free (path);
+ 	path = NULL;
+    }
+    else
+    {
+	path = gtk_tree_path_new_first ();
+	gtk_tree_view_set_drag_dest_row (GTK_TREE_VIEW (widget), path,
+					 GTK_TREE_VIEW_DROP_BEFORE);
+	gtk_tree_path_free (path);
+	path = NULL;
+    }
+
+    target = gtk_drag_dest_find_target (widget, dc, NULL);
+
+    /* no drop possible if no valid target can be found */
+    if (target == GDK_NONE)
+    {
+	gdk_drag_status (dc, 0, time);
+	return FALSE;
+    }
+
+    if (widget == gtk_drag_get_source_widget (dc))
+    {   /* drag is within the same widget */
+	gint column;
+	GtkSortType order;
+	GtkTreeModel *model = gtk_tree_view_get_model(GTK_TREE_VIEW(widget));
+	g_return_val_if_fail (model, FALSE);
+	if(gtk_tree_sortable_get_sort_column_id (
+	       GTK_TREE_SORTABLE (model), &column, &order))
+	{   /* don't allow move because the model is sorted */
+	    gdk_drag_status (dc, 0, time);
+	    return FALSE;
+	}
+	else
+	{   /* only allow moves within the same widget */
+	    gdk_drag_status (dc, GDK_ACTION_MOVE, time);
+	}
+    }
+    else
+    {  /* whatever the source suggests */
+	gdk_drag_status (dc, dc->suggested_action, time);
+    }
+
+    return TRUE;
+}
+
+
+static void tm_drag_data_get (GtkWidget       *widget,
+			      GdkDragContext  *context,
+			      GtkSelectionData *data,
+			      guint            info,
+			      guint            time,
+			      gpointer         user_data)
+{
+    GtkTreeSelection *ts = NULL;
+    GString *reply = g_string_sized_new (2000);
+
+/*     printf("tm drag get info: %d\n", info); */
+    if((data) && (ts = gtk_tree_view_get_selection(GTK_TREE_VIEW(widget))))
+    {
+	switch (info)
+	{
+	case DND_GTKPOD_TRACKLIST:
+	    gtk_tree_selection_selected_foreach(ts,
+				    on_tm_dnd_get_track_foreach, reply);
+	    break;
+	case DND_GTKPOD_TM_PATHLIST:
+	    gtk_tree_selection_selected_foreach(ts,
+				    on_tm_dnd_get_path_foreach, reply);
+	    break;
+	case DND_TEXT_URI_LIST:
+	    gtk_tree_selection_selected_foreach(ts,
+				    on_tm_dnd_get_uri_foreach, reply);
+	    break;
+	case DND_TEXT_PLAIN:
+	    gtk_tree_selection_selected_foreach(ts,
+				    on_tm_dnd_get_file_foreach, reply);
+	    break;
+	default:
+	    g_warning ("Programming error: tm_drag_data_get received unknown info type (%d)\n", info);
+	    break;
+	}
+    }
+    gtk_selection_data_set(data, data->target, 8, reply->str, reply->len);
+    g_string_free (reply, TRUE);
+}
+
+static void tm_drag_data_received (GtkWidget       *widget,
+				   GdkDragContext  *dc,
+				   gint             x,
+				   gint             y,
+				   GtkSelectionData *data,
+				   guint            info,
+				   guint            time,
+				   gpointer         user_data)
+{
+    GtkTreePath *path = NULL;
+    GtkTreeModel *model = NULL;
+    GtkTreeViewDropPosition pos = 0;
+    gboolean result = FALSE;
+
+    /* printf ("sm drop received info: %d\n", info); */
+
+    /* sometimes we get empty dnd data, ignore */
+    if(widgets_blocked || (!dc) ||
+       (!data) || (data->length < 0)) return;
+    /* yet another check, i think it's an 8 bit per byte check */
+    if(data->format != 8) return;
+
+    display_remove_autoscroll_row_timeout (widget);
+
+    model = gtk_tree_view_get_model (GTK_TREE_VIEW (widget));
+    g_return_if_fail (model);
+    if (!gtk_tree_view_get_dest_row_at_pos (GTK_TREE_VIEW (widget),
+					    x, y, &path, &pos))
+    {
+	gint py;
+	gdk_window_get_pointer (
+	    gtk_tree_view_get_bin_window (GTK_TREE_VIEW (widget)),
+	    NULL, &py, NULL);
+	if (py < 5)
+	{
+	    /* initialize with first displayed and drop before */
+	    GtkTreeIter iter;
+	    if (gtk_tree_model_get_iter_first (model, &iter))
+	    {
+		path = gtk_tree_model_get_path (model, &iter);
+		pos = GTK_TREE_VIEW_DROP_BEFORE;
+	    }
+	}
+	else
+	{   /* initialize with last path if available and drop after */
+	    GtkTreeIter iter;
+	    if (gtk_tree_model_get_iter_first (model, &iter))
+	    {
+		GtkTreeIter last_valid_iter;
+		do
+		{
+		    last_valid_iter = iter;
+		} while (gtk_tree_model_iter_next (model, &iter));
+		path = gtk_tree_model_get_path (model, &last_valid_iter);
+		pos = GTK_TREE_VIEW_DROP_AFTER;
+	    }
+	}
+    }
+
+    if (path)
+    {   /* map position onto BEFORE or AFTER */
+	switch (pos)
+	{
+	case GTK_TREE_VIEW_DROP_INTO_OR_AFTER:
+	case GTK_TREE_VIEW_DROP_AFTER:
+	    pos = GTK_TREE_VIEW_DROP_AFTER;
+	    break;
+	case GTK_TREE_VIEW_DROP_INTO_OR_BEFORE:
+	case GTK_TREE_VIEW_DROP_BEFORE:
+	    pos = GTK_TREE_VIEW_DROP_BEFORE;
+	    break;
+	}
+    }
+
+    switch (info)
+    {
+    case DND_GTKPOD_TM_PATHLIST:
+	g_return_if_fail (path);
+	result = tm_move_pathlist (data->data, path, pos);
+	dc->action = GDK_ACTION_MOVE;
+	gtk_drag_finish (dc, TRUE, FALSE, time);
+	break;
+    case DND_TEXT_PLAIN:
+	result = tm_add_filelist (data->data, path, pos);
+	dc->action = dc->suggested_action;
+	if (dc->action == GDK_ACTION_MOVE)
+	    gtk_drag_finish (dc, TRUE, TRUE, time);
+	else
+	    gtk_drag_finish (dc, TRUE, FALSE, time);
+	break;
+    case DND_TEXT_URI_LIST:
+	result = tm_add_filelist (data->data, path, pos);
+	dc->action = dc->suggested_action;
+	if (dc->action == GDK_ACTION_MOVE)
+	    gtk_drag_finish (dc, TRUE, TRUE, time);
+	else
+	    gtk_drag_finish (dc, TRUE, FALSE, time);
+	break;
+    default:
+	dc->action = 0;
+	gtk_drag_finish (dc, FALSE, FALSE, time);
+/* 	puts ("tm_drag_data_received(): should not be reached"); */
+	break;
+    }
+    if (path) gtk_tree_path_free(path);
+}
+
+/* ---------------------------------------------------------------- */
+/* Section for track display                                        */
+/* other callbacks                                                  */
+/* ---------------------------------------------------------------- */
+
+static gboolean
+on_track_treeview_key_release_event     (GtkWidget       *widget,
+					GdkEventKey     *event,
+					gpointer         user_data)
+{
+    guint mods;
+    mods = event->state;
+
+    if(!widgets_blocked && (mods & GDK_CONTROL_MASK))
+    {
+	switch(event->keyval)
+	{
+/* 	    case GDK_u: */
+/* 		gp_do_selected_tracks (update_tracks); */
+/* 		break; */
+	    default:
+		break;
+	}
+    }
+    return FALSE;
+}
+
+/* ---------------------------------------------------------------- */
+/* Section for track display                                        */
+/* ---------------------------------------------------------------- */
+
+/* Append track to the track model (or write into @into_iter if != 0) */
+void tm_add_track_to_track_model (Track *track, GtkTreeIter *into_iter)
+{
+    GtkTreeIter iter;
+    GtkTreeModel *model = gtk_tree_view_get_model (track_treeview);
+
+    g_return_if_fail (model != NULL);
+
+    if (into_iter)
+	iter = *into_iter;
+    else
+	gtk_list_store_append (GTK_LIST_STORE (model), &iter);
+
+    gtk_list_store_set (GTK_LIST_STORE (model), &iter,
+			READOUT_COL, track, -1);
+}
+
+
+
+/* Used by remove_track() to remove track from model by calling
+   gtk_tree_model_foreach ().
+   Entry is deleted if data == track */
+static gboolean tm_delete_track (GtkTreeModel *model,
+				GtkTreePath *path,
+				GtkTreeIter *iter,
+				gpointer data)
+{
+  Track *track;
+
+  gtk_tree_model_get (model, iter, READOUT_COL, &track, -1);
+  if(track == (Track *)data)
+  {
+      GtkTreeSelection *selection = gtk_tree_view_get_selection
+	  (track_treeview);
+/*       printf("unselect...\n"); */
+      gtk_tree_selection_unselect_iter (selection, iter);
+/*       printf("...unselect done\n"); */
+      gtk_list_store_remove (GTK_LIST_STORE (model), iter);
+      return TRUE;
+  }
+  return FALSE;
+}
+
+
+/* Remove track from the display model */
+void tm_remove_track (Track *track)
+{
+  GtkTreeModel *model = gtk_tree_view_get_model (track_treeview);
+  if (model != NULL)
+    gtk_tree_model_foreach (model, tm_delete_track, track);
+}
+
+
+/* Remove all tracks from the display model */
+void tm_remove_all_tracks ()
+{
+  GtkTreeModel *model = gtk_tree_view_get_model (track_treeview);
+  GtkTreeIter iter;
+
+  while (gtk_tree_model_get_iter_first (model, &iter))
+  {
+      gtk_list_store_remove (GTK_LIST_STORE (model), &iter);
+  }
+  tm_store_col_order ();
+  tm_update_default_sizes ();
+}
+
+/* find out at which position column @tm_item is displayed */
+/* static gint tm_get_col_position (TM_item tm_item) */
+/* { */
+/*     gint i; */
+/*     GtkTreeViewColumn *col; */
+
+/*     if (!track_treeview) return -1; */
+
+/*     for (i=0; i<TM_NUM_COLUMNS_PREFS; ++i) */
+/*     { */
+/* 	col = gtk_tree_view_get_column (track_treeview, i); */
+/* 	if (col->sort_column_id == tm_item) return i; */
+/*     } */
+/*     return -1; */
+/* } */
+
+
+/* store the order of the track view columns */
+void tm_store_col_order (void)
+{
+    gint i;
+    GtkTreeViewColumn *col;
+
+    for (i=0; i<TM_NUM_COLUMNS; ++i)
+    {
+	col = gtk_tree_view_get_column (track_treeview, i);
+	prefs_set_int_index("col_order", i, col->sort_column_id);
+    }
+}
+
+
+/* Used by tm_track_changed() to find the track that
+   changed name. If found, emit a "row changed" signal */
+static gboolean tm_model_track_changed (GtkTreeModel *model,
+				       GtkTreePath *path,
+				       GtkTreeIter *iter,
+				       gpointer data)
+{
+  Track *track;
+
+  gtk_tree_model_get (model, iter, READOUT_COL, &track, -1);
+  if(track == (Track *)data) {
+    gtk_tree_model_row_changed (model, path, iter);
+    return TRUE;
+  }
+  return FALSE;
+}
+
+
+/* One of the tracks has changed (this happens when the
+   iTunesDB is read and some IDs are renumbered */
+void tm_track_changed (Track *track)
+{
+  GtkTreeModel *model = gtk_tree_view_get_model (track_treeview);
+  /*  printf("tm_track_changed enter\n");*/
+  if (model != NULL)
+    gtk_tree_model_foreach (model, tm_model_track_changed, track);
+  /*  printf("tm_track_changed exit\n");*/
+}
+
+
+
+#if ((GTK_MAJOR_VERSION == 2) && (GTK_MINOR_VERSION < 2))
+/* gtk_tree_selection_get_selected_rows() was introduced in 2.2 */
+struct gtsgsr
+{
+    GtkTreeModel **model;
+    GList        **list;
+};
+
+void  gtssf  (GtkTreeModel *model,
+	      GtkTreePath *path,
+	      GtkTreeIter *iter,
+	      gpointer data)
+{
+    struct gtsgsr *gts = data;
+    *gts->model = model;
+    *gts->list = g_list_append (*gts->list, gtk_tree_path_copy (path));
+}
+
+GList *gtk_tree_selection_get_selected_rows (GtkTreeSelection *selection,
+                                             GtkTreeModel     **model)
+{
+    struct gtsgsr gts;
+    GList *list = NULL;
+
+    gts.model = model;
+    gts.list = &list;
+
+    gtk_tree_selection_selected_foreach (selection, gtssf, &gts);
+    return list;
+}
+#endif
+
+
+/* Called when editable cell is being edited. Stores new data to the
+   track list. ID3 tags in the corresponding files are updated as
+   well, if activated in the pref settings */
+static void
+tm_cell_edited (GtkCellRendererText *renderer,
+		const gchar         *path_string,
+		const gchar         *new_text,
+		gpointer             data)
+{
+  GtkTreeModel *model;
+  GtkTreeSelection *selection;
+  TM_item column;
+  gboolean multi_edit;
+  gint sel_rows_num;
+  GList *row_list, *row_node, *first;
+
+
+  column = (TM_item) g_object_get_data(G_OBJECT(renderer), "column");
+  multi_edit = prefs_get_int("multi_edit");
+  if (column == TM_COLUMN_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);
+
+/*   printf("tm_cell_edited: column: %d\n", column); */
+
+  sel_rows_num = g_list_length (row_list);
+
+  /* block widgets and update display if multi-edit is active */
+  if (multi_edit && (sel_rows_num > 1)) block_widgets ();
+
+  first = g_list_first (row_list);
+
+  for (row_node = first;
+       row_node && (multi_edit || (row_node == first));
+       row_node = g_list_next(row_node))
+  {
+     Track *track;
+     ExtraTrackData *etr;
+     gboolean changed;
+     GtkTreeIter iter;
+     gchar *str;
+
+     gtk_tree_model_get_iter(model, &iter, (GtkTreePath *) row_node->data);
+     gtk_tree_model_get(model, &iter, READOUT_COL, &track, -1);
+     g_return_if_fail (track);
+     etr = track->userdata;
+     g_return_if_fail (etr);
+
+
+     changed = FALSE;
+
+     switch(column)
+     {
+     case TM_COLUMN_TITLE:
+     case TM_COLUMN_ALBUM:
+     case TM_COLUMN_ARTIST:
+     case TM_COLUMN_GENRE:
+     case TM_COLUMN_COMPOSER:
+     case TM_COLUMN_COMMENT:
+     case TM_COLUMN_FILETYPE:
+     case TM_COLUMN_GROUPING:
+     case TM_COLUMN_CATEGORY:
+     case TM_COLUMN_DESCRIPTION:
+     case TM_COLUMN_PODCASTURL:
+     case TM_COLUMN_PODCASTRSS:
+     case TM_COLUMN_SUBTITLE:
+     case TM_COLUMN_TRACK_NR:
+     case TM_COLUMN_TRACKLEN:
+     case TM_COLUMN_CD_NR:
+     case TM_COLUMN_YEAR:
+     case TM_COLUMN_PLAYCOUNT:
+     case TM_COLUMN_RATING:
+     case TM_COLUMN_TIME_ADDED:
+     case TM_COLUMN_TIME_PLAYED:
+     case TM_COLUMN_TIME_MODIFIED:
+     case TM_COLUMN_TIME_RELEASED:
+     case TM_COLUMN_VOLUME:
+     case TM_COLUMN_SOUNDCHECK:
+     case TM_COLUMN_BITRATE:
+     case TM_COLUMN_SAMPLERATE:
+     case TM_COLUMN_BPM:
+     case TM_COLUMN_MEDIA_TYPE:
+     case TM_COLUMN_TV_SHOW:
+     case TM_COLUMN_TV_EPISODE:
+     case TM_COLUMN_TV_NETWORK:
+     case TM_COLUMN_SEASON_NR:
+     case TM_COLUMN_EPISODE_NR:
+	 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)
+	 {
+	 case TM_COLUMN_TRACK_NR:
+	 case TM_COLUMN_CD_NR:
+	 case TM_COLUMN_TRACKLEN:
+	 case TM_COLUMN_TIME_ADDED:
+	 case TM_COLUMN_TIME_PLAYED:
+	 case TM_COLUMN_TIME_MODIFIED:
+	 case TM_COLUMN_TIME_RELEASED:
+	     str = track_get_text (track, TM_to_T (column));
+	     g_object_set (G_OBJECT (renderer), "text", str, NULL);
+	     g_free (str);
+	     break;
+	 default:
+	     break;
+	 }
+	 break;
+     default:
+        g_warning ("Programming error: tm_cell_edited: unknown track cell (%d) edited\n", column);
+        break;
+     }
+/*      printf ("  changed: %d\n", changed); */
+     if (changed)
+     {
+	track->time_modified = time (NULL);
+        pm_track_changed (track);    /* notify playlist model... */
+        data_changed (track->itdb); /* indicate that data has changed */
+
+        if (prefs_get_int("id3_write"))
+        {
+	    /* T_item tag_id;*/
+           /* should we update all ID3 tags or just the one
+              changed? -- obsoleted in 0.71*/
+/*           if (prefs_get_id3_writeall ()) tag_id = T_ALL;
+	     else                           tag_id = TM_to_T (column);*/
+           write_tags_to_file (track);
+           /* display possible duplicates that have been removed */
+           gp_duplicate_remove (NULL, NULL);
+        }
+     }
+     while (widgets_blocked && gtk_events_pending ())  gtk_main_iteration ();
+  }
+
+  if (multi_edit && (sel_rows_num > 1)) release_widgets ();
+
+  g_list_foreach(row_list, (GFunc) gtk_tree_path_free, NULL);
+  g_list_free(row_list);
+}
+
+
+/* The track data is stored in a separate list (static GList *tracks)
+   and only pointers to the corresponding Track 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 tm_cell_data_func (GtkTreeViewColumn *tree_column,
+			       GtkCellRenderer   *renderer,
+			       GtkTreeModel      *model,
+			       GtkTreeIter       *iter,
+			       gpointer           data)
+{
+  Track *track;
+  ExtraTrackData *etr;
+  iTunesDB *itdb;
+  TM_item column;
+  gchar *text;
+
+  column = (TM_item)g_object_get_data (G_OBJECT (renderer), "column");
+
+  g_return_if_fail ((column >= 0) && (column < TM_NUM_COLUMNS));
+
+  gtk_tree_model_get (model, iter, READOUT_COL, &track, -1);
+  g_return_if_fail (track);
+  etr = track->userdata;
+  g_return_if_fail (etr);
+  itdb = track->itdb;
+  g_return_if_fail (itdb);
+
+  text = track_get_text (track, TM_to_T (column));
+
+  switch (column)
+  {
+  case TM_COLUMN_TITLE:
+  case TM_COLUMN_ARTIST:
+  case TM_COLUMN_ALBUM:
+  case TM_COLUMN_GENRE:
+  case TM_COLUMN_COMPOSER:
+  case TM_COLUMN_COMMENT:
+  case TM_COLUMN_FILETYPE:
+  case TM_COLUMN_GROUPING:
+  case TM_COLUMN_CATEGORY:
+  case TM_COLUMN_DESCRIPTION:
+  case TM_COLUMN_PODCASTURL:
+  case TM_COLUMN_PODCASTRSS:
+  case TM_COLUMN_SUBTITLE:
+  case TM_COLUMN_TIME_PLAYED:
+  case TM_COLUMN_TIME_MODIFIED:
+  case TM_COLUMN_TIME_ADDED:
+  case TM_COLUMN_TIME_RELEASED:
+  case TM_COLUMN_TV_SHOW:
+  case TM_COLUMN_TV_EPISODE:
+  case TM_COLUMN_TV_NETWORK:
+  case TM_COLUMN_ALBUMARTIST:
+  case TM_COLUMN_SORT_ARTIST:
+  case TM_COLUMN_SORT_TITLE:
+  case TM_COLUMN_SORT_ALBUM:
+  case TM_COLUMN_SORT_ALBUMARTIST:
+  case TM_COLUMN_SORT_COMPOSER:
+  case TM_COLUMN_SORT_TVSHOW:
+      g_object_set (G_OBJECT (renderer),
+		    "text", text,
+		    "editable", TRUE,
+		    "xalign", 0.0, NULL);
+      break;
+  case TM_COLUMN_MEDIA_TYPE:
+      g_object_set (G_OBJECT (renderer),
+		    "text", text,
+		    "editable", FALSE,
+		    "xalign", 0.0, NULL);
+      break;
+  case TM_COLUMN_TRACK_NR:
+  case TM_COLUMN_CD_NR:
+  case TM_COLUMN_BITRATE:
+  case TM_COLUMN_SAMPLERATE:
+  case TM_COLUMN_BPM:
+  case TM_COLUMN_PLAYCOUNT:
+  case TM_COLUMN_YEAR:
+  case TM_COLUMN_RATING:
+  case TM_COLUMN_VOLUME:
+  case TM_COLUMN_SOUNDCHECK:
+  case TM_COLUMN_TRACKLEN:
+  case TM_COLUMN_SEASON_NR:
+  case TM_COLUMN_EPISODE_NR:
+      g_object_set (G_OBJECT (renderer),
+		    "text", text,
+		    "editable", TRUE,
+		    "xalign", 1.0, NULL);
+      break;
+  case TM_COLUMN_IPOD_ID:
+  case TM_COLUMN_SIZE:
+      g_object_set (G_OBJECT (renderer),
+		    "text", text,
+		    "editable", FALSE,
+		    "xalign", 1.0, NULL);
+      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,
+		    "xalign", 0.0, NULL);
+      break;
+  case TM_COLUMN_TRANSFERRED:
+      g_object_set (G_OBJECT (renderer),
+		    "active", track->transferred,
+		    "activatable", FALSE, NULL);
+      break;
+  case TM_COLUMN_COMPILATION:
+      g_object_set (G_OBJECT (renderer),
+		    "active", track->compilation,
+		    "activatable", TRUE, NULL);
+      break;
+  case TM_NUM_COLUMNS:
+      break;
+  }
+  g_free (text);
+}
+
+
+
+/* Called when a toggle cell is being changed. Stores new data to the
+   track list. */
+static void
+tm_cell_toggled (GtkCellRendererToggle *renderer,
+		 gchar *arg1,
+		 gpointer user_data)
+{
+  GtkTreeModel *model;
+  GtkTreeSelection *selection;
+  TM_item column;
+  gboolean multi_edit;
+  gint sel_rows_num;
+  GList *row_list, *row_node, *first;
+  gboolean active;
+
+  column = (TM_item) g_object_get_data(G_OBJECT(renderer), "column");
+  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);
+
+/*  printf("tm_cell_toggled: column: %d, arg1: %p\n", column, arg1); */
+
+  sel_rows_num = g_list_length (row_list);
+
+  /* block widgets and update display if multi-edit is active */
+  if (multi_edit && (sel_rows_num > 1)) block_widgets ();
+
+  first = g_list_first (row_list);
+
+  /* active will show the old state -- before the toggle */
+  g_object_get (G_OBJECT (renderer), "active", &active, NULL);
+
+  for (row_node = first;
+       row_node && (multi_edit || (row_node == first));
+       row_node = g_list_next(row_node))
+  {
+     Track *track;
+     gboolean changed;
+     GtkTreeIter iter;
+
+     gtk_tree_model_get_iter(model, &iter, (GtkTreePath *) row_node->data);
+     gtk_tree_model_get(model, &iter, READOUT_COL, &track, -1);
+     changed = FALSE;
+
+     switch(column)
+     {
+     case TM_COLUMN_TITLE:
+	 if ((active && (track->checked == 0)) ||
+	     (!active && (track->checked == 1)))
+	     changed = TRUE;
+	 if (active) track->checked = 1;
+	 else        track->checked = 0;
+	 break;
+     case TM_COLUMN_COMPILATION:
+	 if ((!active && (track->compilation == 0)) ||
+	     (active && (track->compilation == 1)))
+	     changed = TRUE;
+	 if (!active) track->compilation = 1;
+	 else        track->compilation = 0;
+        break;
+     default:
+        g_warning ("Programming error: tm_cell_toggled: unknown track cell (%d) edited\n", column);
+        break;
+     }
+/*      printf ("  changed: %d\n", changed); */
+     if (changed)
+     {
+	track->time_modified = time (NULL);
+/*        pm_track_changed (track);  notify playlist model... -- not
+ *        necessary here because only the track model is affected */
+        data_changed (track->itdb);  /* indicate that data has changed */
+        
+        /* If the changed column is the compilation flag update the file
+           if required */
+        if (column == TM_COLUMN_COMPILATION)
+           if (prefs_get_int("id3_write"))
+              write_tags_to_file (track);
+        
+     }
+     while (widgets_blocked && gtk_events_pending ())  gtk_main_iteration ();
+  }
+
+  if (multi_edit && (sel_rows_num > 1)) release_widgets ();
+
+  g_list_foreach(row_list, (GFunc) gtk_tree_path_free, NULL);
+  g_list_free(row_list);
+}
+
+
+
+/* The track data is stored in a separate list (static GList *tracks)
+   and only pointers to the corresponding Track 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 tm_cell_data_func_toggle (GtkTreeViewColumn *tree_column,
+				      GtkCellRenderer   *renderer,
+				      GtkTreeModel      *model,
+				      GtkTreeIter       *iter,
+				      gpointer           data)
+{
+  Track *track;
+  TM_item column;
+
+  column = (TM_item)g_object_get_data (G_OBJECT (renderer), "column");
+  gtk_tree_model_get (model, iter, READOUT_COL, &track, -1);
+
+  switch (column)
+  {
+  case TM_COLUMN_TITLE:
+      g_object_set (G_OBJECT (renderer),
+		    "active", !track->checked,
+		    "activatable", TRUE, NULL);
+      break;
+  default:
+      g_warning ("Programming error: unknown column in tm_cell_data_func_toggle: %d\n", column);
+      break;
+  }
+}
+
+/**
+ * tm_get_nr_of_tracks - get the number of tracks displayed
+ * currently in the track model Returns - the number of tracks displayed
+ * currently
+ */
+gint
+tm_get_nr_of_tracks(void)
+{
+    gint result = 0;
+    GtkTreeModel *tm = NULL;
+
+    tm = gtk_tree_view_get_model (GTK_TREE_VIEW(track_treeview));
+    if (tm)
+    {
+	result = gtk_tree_model_iter_n_children (tm, NULL);
+    }
+    return result;
+}
+
+
+static gint comp_int (gconstpointer a, gconstpointer b)
+{
+    return (GPOINTER_TO_INT(a)-(GPOINTER_TO_INT(b)));
+}
+
+
+/**
+ * Reorder tracks in playlist to match order of tracks displayed in track
+ * view. Only the subset of tracks currently displayed is reordered.
+ * data_changed() is called when necessary.
+ */
+void
+tm_rows_reordered (void)
+{
+    Playlist *current_pl;
+
+    g_return_if_fail (track_treeview);
+    current_pl = pm_get_selected_playlist ();
+
+    if(current_pl)
+    {
+	GtkTreeModel *tm = NULL;
+	GtkTreeIter i;
+	GList *new_list = NULL, *old_pos_l = NULL;
+	gboolean valid = FALSE;
+	GList *nlp, *olp;
+	gboolean changed = FALSE;
+	iTunesDB *itdb = NULL;
+
+	tm = gtk_tree_view_get_model (track_treeview);
+	g_return_if_fail (tm);
+
+	valid = gtk_tree_model_get_iter_first (tm,&i);
+	while (valid)
+	{
+	    Track *new_track;
+	    gint old_position;
+
+	    gtk_tree_model_get (tm, &i, READOUT_COL, &new_track, -1);
+	    g_return_if_fail (new_track);
+
+	    if (!itdb) itdb = new_track->itdb;
+	    new_list = g_list_append (new_list, new_track);
+	    /* what position was this track in before? */
+	    old_position = g_list_index (current_pl->members, new_track);
+	    /* check if we already used this position before (can
+	       happen if track has been added to playlist more than
+	       once */
+	    while ((old_position != -1) &&
+		   g_list_find (old_pos_l, GINT_TO_POINTER(old_position)))
+	    {  /* find next occurence */
+		GList *link;
+		gint next;
+		link = g_list_nth (current_pl->members, old_position + 1);
+		next = g_list_index (link, new_track);
+		if (next == -1)   old_position = -1;
+		else              old_position += (1+next);
+	    }
+	    /* we make a sorted list of the old positions */
+	    old_pos_l = g_list_insert_sorted (old_pos_l,
+					      GINT_TO_POINTER(old_position),
+					      comp_int);
+	    valid = gtk_tree_model_iter_next (tm, &i);
+	}
+	nlp = new_list;
+	olp = old_pos_l;
+	while (nlp && olp)
+	{
+	    GList *old_link;
+	    guint position = GPOINTER_TO_INT(olp->data);
+
+	    /* if position == -1 one of the tracks in the track view
+	       could not be found in the selected playlist -> stop! */
+	    if (position == -1)
+	    {
+		g_warning ("Programming error: tm_rows_reordered_callback: track in track view was not in selected playlist\n");
+		g_return_if_reached ();
+	    }
+	    old_link = g_list_nth (current_pl->members, position);
+	    /* replace old track with new track */
+	    if (old_link->data != nlp->data)
+	    {
+		old_link->data = nlp->data;
+		changed = TRUE;
+	    }
+	    /* next */
+	    nlp = nlp->next;
+	    olp = olp->next;
+	}
+	g_list_free (new_list);
+	g_list_free (old_pos_l);
+	/* if we changed data, mark data as changed and adopt order in
+	   sort tabs */
+	if (changed)
+	{
+	    data_changed (itdb);
+	    st_adopt_order_in_playlist ();
+	}
+    }
+}
+
+
+static void
+on_trackids_list_foreach ( GtkTreeModel *tm, GtkTreePath *tp,
+			   GtkTreeIter *i, gpointer data)
+{
+    Track *tr = NULL;
+    GList *l = *((GList**)data);
+    gtk_tree_model_get(tm, i, READOUT_COL, &tr, -1);
+    g_return_if_fail (tr);
+    l = g_list_append(l, GUINT_TO_POINTER(tr->id));
+    *((GList**)data) = l;
+}
+
+
+/* return a list containing the track IDs of all tracks currently being
+   selected */
+GList *
+tm_get_selected_trackids(void)
+{
+    GList *result = NULL;
+    GtkTreeSelection *ts = NULL;
+
+    if((ts = gtk_tree_view_get_selection(GTK_TREE_VIEW(track_treeview))))
+    {
+	gtk_tree_selection_selected_foreach(ts, on_trackids_list_foreach,
+					    &result);
+    }
+    return(result);
+}
+
+/* return a list containing the track IDs of all tracks currently being
+   displayed */
+GList *
+tm_get_all_trackids(void)
+{
+    gboolean
+	on_all_trackids_list_foreach (GtkTreeModel *tm, GtkTreePath *tp,
+				      GtkTreeIter *i, gpointer data)
+	{
+	    on_trackids_list_foreach (tm, tp, i, data);
+	    return FALSE;
+	}
+    GList *result = NULL;
+    GtkTreeModel *model;
+
+    if((model = gtk_tree_view_get_model (track_treeview)))
+    {
+	gtk_tree_model_foreach(model, on_all_trackids_list_foreach,
+			       &result);
+    }
+    return(result);
+}
+
+static void
+on_tracks_list_foreach ( GtkTreeModel *tm, GtkTreePath *tp,
+			 GtkTreeIter *i, gpointer data)
+{
+    Track *tr = NULL;
+    GList *l = *((GList**)data);
+    gtk_tree_model_get(tm, i, READOUT_COL, &tr, -1);
+    g_return_if_fail (tr);
+    l = g_list_append(l, tr);
+    *((GList**)data) = l;
+}
+
+
+/* return a list containing pointers to all tracks currently being
+   selected */
+GList *
+tm_get_selected_tracks(void)
+{
+    GList *result = NULL;
+    GtkTreeSelection *ts = NULL;
+
+    if((ts = gtk_tree_view_get_selection(GTK_TREE_VIEW(track_treeview))))
+    {
+	gtk_tree_selection_selected_foreach(ts, on_tracks_list_foreach,
+					    &result);
+    }
+    return(result);
+}
+
+
+
+    /* 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)
+{
+    GList *result = NULL;
+    GtkTreeModel *model = gtk_tree_view_get_model (track_treeview);
+
+    g_return_val_if_fail (model, NULL);
+
+    gtk_tree_model_foreach(model, on_all_tracks_list_foreach,
+			   &result);
+    return result;
+}
+
+
+/* Stop editing. If @cancel is TRUE, the edited value will be
+   discarded (I have the feeling that the "discarding" part does not
+   work quite the way intended). */
+void tm_stop_editing (gboolean cancel)
+{
+    GtkTreeViewColumn *col;
+
+    if (!track_treeview)  return;
+
+    gtk_tree_view_get_cursor (track_treeview, NULL, &col);
+    if (col)
+    {
+	/* 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_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_int("multi_edit", me);
+    }
+}
+
+
+
+/* Function to compare @tm_item of @track1 and @track2. Used by
+   tm_data_compare_func() */
+static gint tm_data_compare (Track *track1, Track *track2,
+			     TM_item tm_item)
+{
+  gint cmp = 0;
+  ExtraTrackData *etr1, *etr2;
+
+
+  g_return_val_if_fail (track1 && track2, 0);
+
+  switch (tm_item)
+  {
+  case TM_COLUMN_TITLE:
+  case TM_COLUMN_ALBUM:
+  case TM_COLUMN_GENRE:
+  case TM_COLUMN_COMPOSER:
+  case TM_COLUMN_COMMENT:
+  case TM_COLUMN_FILETYPE:
+  case TM_COLUMN_GROUPING:
+  case TM_COLUMN_ARTIST:
+  case TM_COLUMN_CATEGORY:
+  case TM_COLUMN_DESCRIPTION:
+  case TM_COLUMN_PODCASTURL:
+  case TM_COLUMN_PODCASTRSS:
+  case TM_COLUMN_SUBTITLE:
+  case TM_COLUMN_TV_SHOW:
+  case TM_COLUMN_TV_EPISODE:
+  case TM_COLUMN_TV_NETWORK:
+      /* string_compare_func is set to either compare_string_fuzzy or
+	 compare_string in tm_sort_column_changed() which is called
+	 once before the comparing begins. */
+      cmp = string_compare_func (
+	  track_get_item (track1, TM_to_T (tm_item)),
+	  track_get_item (track2, TM_to_T (tm_item)));
+      break;
+  case TM_COLUMN_TRACK_NR:
+      cmp = track1->tracks - track2->tracks;
+      if (cmp == 0) cmp = track1->track_nr - track2->track_nr;
+      break;
+  case TM_COLUMN_CD_NR:
+      cmp = track1->cds - track2->cds;
+      if (cmp == 0) cmp = track1->cd_nr - track2->cd_nr;
+      break;
+  case TM_COLUMN_IPOD_ID:
+      cmp = track1->id - track2->id;
+      break;
+  case TM_COLUMN_PC_PATH:
+      etr1 = track1->userdata;
+      etr2 = track2->userdata;
+      g_return_val_if_fail (etr1 && etr2, 0);
+      cmp = g_utf8_collate (etr1->pc_path_utf8, etr2->pc_path_utf8);
+      break;
+  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;
+      else if(track1->transferred == TRUE)
+	  cmp = 1;
+      else
+	  cmp = -1;
+      break;
+  case TM_COLUMN_COMPILATION:
+      if(track1->compilation == track2->compilation)
+	  cmp = 0;
+      else if(track1->compilation == TRUE)
+	  cmp = 1;
+      else
+	  cmp = -1;
+      break;
+  case TM_COLUMN_SIZE:
+      cmp = track1->size - track2->size;
+      break;
+  case TM_COLUMN_TRACKLEN:
+      cmp = track1->tracklen - track2->tracklen;
+      break;
+  case TM_COLUMN_BITRATE:
+      cmp = track1->bitrate - track2->bitrate;
+      break;
+  case TM_COLUMN_SAMPLERATE:
+      cmp = track1->samplerate - track2->samplerate;
+      break;
+  case TM_COLUMN_BPM:
+      cmp = track1->BPM - track2->BPM;
+      break;
+  case TM_COLUMN_PLAYCOUNT:
+      cmp = track1->playcount - track2->playcount;
+      break;
+  case  TM_COLUMN_RATING:
+      cmp = track1->rating - track2->rating;
+      break;
+  case TM_COLUMN_TIME_ADDED:
+  case TM_COLUMN_TIME_PLAYED:
+  case TM_COLUMN_TIME_MODIFIED:
+  case TM_COLUMN_TIME_RELEASED:
+      cmp = COMP (time_get_time (track1, TM_to_T (tm_item)),
+		  time_get_time (track2, TM_to_T (tm_item)));
+      break;
+  case  TM_COLUMN_VOLUME:
+      cmp = track1->volume - track2->volume;
+      break;
+  case  TM_COLUMN_SOUNDCHECK:
+      /* If soundcheck is unset (0) use 0 dB (1000) */
+      cmp = (track1->soundcheck? track1->soundcheck:1000) - 
+	  (track2->soundcheck? track2->soundcheck:1000);
+      break;
+  case TM_COLUMN_YEAR:
+      cmp = track1->year - track2->year;
+      break;
+  case TM_COLUMN_SEASON_NR:
+      cmp = track1->season_nr - track2->season_nr;
+      break;
+  case TM_COLUMN_EPISODE_NR:
+      cmp = track1->episode_nr - track2->episode_nr;
+      break;
+  case TM_COLUMN_MEDIA_TYPE:
+      cmp = track1->mediatype - track2->mediatype;
+      break;
+  default:
+      g_warning ("Programming error: tm_data_compare_func: no sort method for tm_item %d\n", tm_item);
+      break;
+  }
+
+  /* implement stable sorting: if two items are the same, revert to
+     the last relative positition */
+  if (cmp == 0)
+  {
+      etr1 = track1->userdata;
+      etr2 = track2->userdata;
+      g_return_val_if_fail (etr1 && etr2, 0);
+      cmp = etr1->sortindex - etr2->sortindex;
+  }
+  return cmp;
+}
+
+
+/* Function used to compare rows with user's search string */
+gboolean tm_search_equal_func (GtkTreeModel *model,
+			       gint column,
+			       const gchar *key,
+			       GtkTreeIter *iter,
+			       gpointer search_data)
+{
+  Track *track1;
+  gboolean cmp = 0;
+  gtk_tree_model_get (model, iter, READOUT_COL, &track1, -1);
+  switch (column)
+  {
+  case TM_COLUMN_TITLE:
+  case TM_COLUMN_ALBUM:
+  case TM_COLUMN_GENRE:
+  case TM_COLUMN_COMPOSER:
+  case TM_COLUMN_COMMENT:
+  case TM_COLUMN_FILETYPE:
+  case TM_COLUMN_GROUPING:
+  case TM_COLUMN_ARTIST:
+  case TM_COLUMN_CATEGORY:
+  case TM_COLUMN_DESCRIPTION:
+  case TM_COLUMN_PODCASTURL:
+  case TM_COLUMN_PODCASTRSS:
+  case TM_COLUMN_SUBTITLE:
+  case TM_COLUMN_PC_PATH:
+  case TM_COLUMN_YEAR:
+  case TM_COLUMN_IPOD_PATH:
+  case TM_COLUMN_COMPILATION:
+  case TM_COLUMN_THUMB_PATH:
+  case TM_COLUMN_TV_SHOW:
+  case TM_COLUMN_TV_EPISODE:
+  case TM_COLUMN_TV_NETWORK:
+    cmp = (compare_string_start_case_insensitive (
+	  track_get_item (track1, TM_to_T (column)),
+	  key) != 0);
+    break;
+  case TM_COLUMN_TRACK_NR:
+  case TM_COLUMN_IPOD_ID:
+  case TM_COLUMN_TRANSFERRED:
+  case TM_COLUMN_SIZE:
+  case TM_COLUMN_TRACKLEN:
+  case TM_COLUMN_BITRATE:
+  case TM_COLUMN_PLAYCOUNT:
+  case TM_COLUMN_RATING:
+  case TM_COLUMN_TIME_PLAYED:
+  case TM_COLUMN_TIME_MODIFIED:
+  case TM_COLUMN_VOLUME:
+  case TM_COLUMN_CD_NR:
+  case TM_COLUMN_TIME_ADDED:
+  case TM_COLUMN_SOUNDCHECK:
+  case TM_COLUMN_SAMPLERATE:
+  case TM_COLUMN_BPM:
+  case TM_COLUMN_TIME_RELEASED:
+  case TM_COLUMN_MEDIA_TYPE:
+  case TM_COLUMN_SEASON_NR:
+  case TM_COLUMN_EPISODE_NR:
+  case TM_NUM_COLUMNS:
+      g_warning ("Programming error: tm_search_equal_func: no sort method for column %d\n", column);
+      break;
+  }
+  return cmp;
+};
+
+/* Function used to compare two cells during sorting (track view) */
+gint tm_data_compare_func (GtkTreeModel *model,
+			GtkTreeIter *a,
+			GtkTreeIter *b,
+			gpointer user_data)
+{
+  Track *track1;
+  Track *track2;
+  gint column;
+  GtkSortType order;
+  gint result;
+
+  gtk_tree_model_get (model, a, READOUT_COL, &track1, -1);
+  gtk_tree_model_get (model, b, READOUT_COL, &track2, -1);
+  if(gtk_tree_sortable_get_sort_column_id (GTK_TREE_SORTABLE (model),
+					   &column, &order) == FALSE)
+      return 0;
+
+  result = tm_data_compare (track1, track2, column);
+  return result;
+}
+
+
+/* set/read the counter used to remember how often the sort column has
+   been clicked.
+   @inc: negative: reset counter to 0
+   @inc: positive or zero : add to counter
+   return value: new value of the counter */
+gint tm_sort_counter (gint inc)
+{
+    static gint cnt = 0;
+
+    if (inc <0)
+    {
+	cnt = 0;
+    }
+    else
+    {
+	cnt += inc;
+    }   
+    return cnt;
+}
+
+
+/* Redisplays the tracks in the track view according to the order
+ * stored in the sort tab view. This only works if the track view is
+ * not sorted --> skip if sorted */
+
+void tm_adopt_order_in_sorttab (void)
+{
+    if (prefs_get_int("tm_sort") == SORT_NONE)
+    {
+	GList *gl, *tracks = NULL;
+
+	/* retrieve the currently displayed tracks (non ordered) from
+	   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_int("sort_tab_num")-1);
+	for (gl=tracks; gl; gl=gl->next)
+	    tm_add_track_to_track_model ((Track *)gl->data, NULL);
+    }
+}
+
+
+/* redisplay the contents of the track view in it's unsorted order */
+static void tm_unsort (void)
+{
+    if (track_treeview)
+    {
+	GtkTreeModel *model= gtk_tree_view_get_model (track_treeview);
+
+	prefs_set_int("tm_sort", SORT_NONE);
+	if (!BROKEN_GTK_TREE_SORT)
+	{
+/* no need to comment this out -- searching still works, but for lack
+   of a ctrl-g only the first occurence will be found */
+/*	    gtk_tree_view_set_enable_search (GTK_TREE_VIEW
+ * (track_treeview), FALSE);*/ 
+	    gtk_tree_sortable_set_sort_column_id
+		(GTK_TREE_SORTABLE (model),
+		 GTK_TREE_SORTABLE_UNSORTED_SORT_COLUMN_ID,
+		 GTK_SORT_ASCENDING);
+	    tm_adopt_order_in_sorttab ();
+	}
+	else
+	{
+	    gtkpod_warning (_("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"), gtk_major_version, gtk_minor_version, gtk_micro_version);
+	}
+	tm_sort_counter (-1);
+    }
+}
+
+
+static void tm_set_search_column (gint newcol)
+{
+/*     printf ("track_treeview: %p, col: %d\n", track_treeview, newcol); */
+    g_return_if_fail (track_treeview);
+
+    gtk_tree_view_set_search_column (GTK_TREE_VIEW (track_treeview),
+				       newcol);
+    switch (newcol)
+    {
+    case TM_COLUMN_TITLE:
+    case TM_COLUMN_ALBUM:
+    case TM_COLUMN_GENRE:
+    case TM_COLUMN_COMPOSER:
+    case TM_COLUMN_COMMENT:
+    case TM_COLUMN_FILETYPE:
+    case TM_COLUMN_GROUPING:
+    case TM_COLUMN_ARTIST:
+    case TM_COLUMN_CATEGORY:
+    case TM_COLUMN_DESCRIPTION:
+    case TM_COLUMN_PODCASTURL:
+    case TM_COLUMN_PODCASTRSS:
+    case TM_COLUMN_SUBTITLE:
+    case TM_COLUMN_PC_PATH:
+    case TM_COLUMN_YEAR:
+    case TM_COLUMN_IPOD_PATH:
+    case TM_COLUMN_COMPILATION:
+    case TM_COLUMN_THUMB_PATH:
+    case TM_COLUMN_TV_SHOW:
+    case TM_COLUMN_TV_EPISODE:
+    case TM_COLUMN_TV_NETWORK:
+	gtk_tree_view_set_enable_search (GTK_TREE_VIEW (track_treeview), TRUE);
+	break;
+    case TM_COLUMN_TRACK_NR:
+    case TM_COLUMN_IPOD_ID:
+    case TM_COLUMN_TRANSFERRED:
+    case TM_COLUMN_SIZE:
+    case TM_COLUMN_TRACKLEN:
+    case TM_COLUMN_BITRATE:
+    case TM_COLUMN_PLAYCOUNT:
+    case TM_COLUMN_RATING:
+    case TM_COLUMN_TIME_PLAYED:
+    case TM_COLUMN_TIME_MODIFIED:
+    case TM_COLUMN_VOLUME:
+    case TM_COLUMN_CD_NR:
+    case TM_COLUMN_TIME_ADDED:
+    case TM_COLUMN_SOUNDCHECK:
+    case TM_COLUMN_SAMPLERATE:
+    case TM_COLUMN_BPM:
+    case TM_COLUMN_TIME_RELEASED:
+    case TM_COLUMN_MEDIA_TYPE:
+    case TM_COLUMN_SEASON_NR:
+    case TM_COLUMN_EPISODE_NR:
+    case TM_NUM_COLUMNS:
+	gtk_tree_view_set_enable_search (GTK_TREE_VIEW (track_treeview), FALSE);
+	break;
+    }
+    prefs_set_int (TM_PREFS_SEARCH_COLUMN, newcol);
+}
+
+
+/* This is called before when changing the sort order or the sort
+   column, and before doing the sorting */
+static void tm_sort_column_changed (GtkTreeSortable *ts,
+				    gpointer user_data)
+{
+    static gint lastcol = -1; /* which column was sorted last time? */
+    gchar *buf;
+    gint newcol;
+    GtkSortType order;
+    GList *tracks, *gl;
+    gint32 i, inc;
+
+    gtk_tree_sortable_get_sort_column_id (ts, &newcol, &order);
+
+/*     printf ("scc -- col: %d, order: %d\n", newcol, order);  */
+
+    /* set compare function for strings (to speed up sorting) */
+    buf = g_strdup_printf ("sort_ign_field_%d", TM_to_T (newcol));
+    if (prefs_get_int (buf))
+	string_compare_func = compare_string_fuzzy;
+    else
+	string_compare_func = compare_string;
+    g_free (buf);
+
+    /* don't do anything if no sort column is set */
+    if (newcol == -2)
+    {
+	lastcol = newcol;
+	return;
+    }
+
+    if (newcol != lastcol)
+    {
+	tm_sort_counter (-1);
+	lastcol = newcol;
+    }
+
+    if (tm_sort_counter (1) >= 3)
+    { /* after clicking three times, reset sort order! */
+	tm_unsort ();  /* also resets sort counter */
+    }
+    else
+    {
+	prefs_set_int("tm_sort", order);
+    }
+    prefs_set_int("tm_sortcol", newcol);
+
+    tm_set_search_column (newcol);
+
+    if(prefs_get_int("tm_autostore"))  tm_rows_reordered ();
+    sort_window_update ();
+
+    /* stable sorting: index original order */
+    tracks = tm_get_all_tracks ();
+    /* make numbering ascending or decending depending on sort order
+       (then we don't have to worry about the sort order when doing
+       the comparison in tm_data_compare_func() */
+    if (order == GTK_SORT_ASCENDING)
+    {
+	i=0;
+	inc = 1;
+    }
+    else
+    {
+	i=-1;
+	inc = -1;
+    }
+    for (gl=tracks; gl; gl=gl->next)
+    {
+	ExtraTrackData *etr;
+	Track *tr = gl->data;
+	g_return_if_fail (tr);
+	etr = tr->userdata;
+	g_return_if_fail (etr);
+	etr->sortindex = i;
+	i+=inc;
+    }
+    g_list_free (tracks);
+}
+
+
+void tm_sort (TM_item col, GtkSortType order)
+{
+    if (track_treeview)
+    {
+	GtkTreeModel *model= gtk_tree_view_get_model (track_treeview);
+	if (order != SORT_NONE)
+	{
+	    gtk_tree_sortable_set_sort_column_id (GTK_TREE_SORTABLE (model),
+						  col, order);
+	}
+	else
+	{ /* only unsort if treeview is sorted */
+	    gint column;
+	    GtkSortType order;
+	    if (gtk_tree_sortable_get_sort_column_id
+		(GTK_TREE_SORTABLE (model), &column, &order))
+	    {
+		/* column == -2 actually is not defined, but it means
+		   that the model is unsorted. The sortable interface
+		   is badly implemented in gtk 2.4 */
+		if (column != -2)
+		    tm_unsort ();
+	    }
+	}
+    }
+}
+
+
+
+
+
+/* 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;
+  GtkCellRenderer *renderer = NULL;  /* default */
+  GtkTooltips *tt;
+
+  g_return_val_if_fail (gtkpod_window, NULL);
+  tt = g_object_get_data (G_OBJECT (gtkpod_window), "main_tooltips");
+  g_return_val_if_fail (tt, NULL);
+
+  g_return_val_if_fail (tm_item >= 0, NULL);
+  g_return_val_if_fail (tm_item < TM_NUM_COLUMNS, NULL);
+
+  text = gettext (get_tm_string (tm_item));
+
+  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:
+  case TM_COLUMN_COMPOSER:
+  case TM_COLUMN_COMMENT:
+  case TM_COLUMN_FILETYPE:
+  case TM_COLUMN_GROUPING:
+  case TM_COLUMN_BITRATE:
+  case TM_COLUMN_SAMPLERATE:
+  case TM_COLUMN_BPM:
+  case TM_COLUMN_CATEGORY:
+  case TM_COLUMN_DESCRIPTION:
+  case TM_COLUMN_PODCASTURL:
+  case TM_COLUMN_PODCASTRSS:
+  case TM_COLUMN_SUBTITLE:
+  case TM_COLUMN_PC_PATH:
+  case TM_COLUMN_IPOD_PATH:
+  case TM_COLUMN_THUMB_PATH:
+  case TM_COLUMN_SIZE:
+  case TM_COLUMN_MEDIA_TYPE:
+  case TM_COLUMN_TV_SHOW:
+  case TM_COLUMN_TV_EPISODE:
+  case TM_COLUMN_TV_NETWORK:
+  case TM_COLUMN_SEASON_NR:
+  case TM_COLUMN_EPISODE_NR:
+  case TM_COLUMN_ALBUMARTIST:
+  case TM_COLUMN_SORT_ARTIST:
+  case TM_COLUMN_SORT_TITLE:
+  case TM_COLUMN_SORT_ALBUM:
+  case TM_COLUMN_SORT_ALBUMARTIST:
+  case TM_COLUMN_SORT_COMPOSER:
+  case TM_COLUMN_SORT_TVSHOW:
+      break;
+  /* for some column names we want to use shorter alternatives to
+     get_tm_string() */
+  case TM_COLUMN_RATING:
+      text = _("Rtng");
+      break;
+  case TM_COLUMN_TRACK_NR:
+      text = _("#");
+      break;
+  case TM_COLUMN_CD_NR:
+      text = _("CD");
+      break;
+  case TM_COLUMN_IPOD_ID:
+      text = _("ID");
+      break;
+  case TM_COLUMN_TRANSFERRED:
+      text = _("Trnsfrd");
+      renderer = gtk_cell_renderer_toggle_new ();
+      break;
+  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");
+      break;
+  case TM_COLUMN_PLAYCOUNT:
+      text = _("Plycnt");
+      break;
+  case TM_COLUMN_TIME_PLAYED:
+      text = _("Played");
+      break;
+  case TM_COLUMN_TIME_MODIFIED:
+      text = _("Modified");
+      break;
+  case TM_COLUMN_TIME_ADDED:
+      text = _("Added");
+      break;
+  case TM_COLUMN_TIME_RELEASED:
+      text = _("Released");
+      break;
+  case TM_COLUMN_YEAR:
+      text = _("Year");
+      break;
+  case TM_COLUMN_VOLUME:
+      text = _("Vol.");
+      break;
+  case TM_COLUMN_SOUNDCHECK:
+      text = _("Sndchk.");
+      break;
+  case TM_NUM_COLUMNS:
+      g_return_val_if_reached (NULL);
+      break;
+  }
+
+  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 *)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)
+  {
+      gtk_tree_view_column_set_visible (col,
+					prefs_get_int_index("col_visible", tm_item));
+  }
+  if (get_tm_tooltip (tm_item))
+      gtk_tooltips_set_tip (tt, col->button, 
+			    gettext (get_tm_tooltip (tm_item)),
+			    NULL);
+  return col;
+}
+
+
+/* Adds the columns to our track_treeview */
+static void tm_add_columns (void)
+{
+    gint i;
+
+    for (i=0; i<TM_NUM_COLUMNS; ++i)
+    {
+	tm_add_column (prefs_get_int_index("col_order", i), -1);
+    }
+    tm_show_preferred_columns();
+}
+
+static void tm_select_current_position (gint x, gint y)
+{
+    if (track_treeview)
+    {
+	GtkTreePath *path;
+
+	gtk_tree_view_get_path_at_pos (track_treeview,
+				       x, y, &path, NULL, NULL, NULL);
+	if (path)
+	{
+	    GtkTreeSelection *ts = gtk_tree_view_get_selection (track_treeview);
+	    gtk_tree_selection_select_path (ts, path);
+	    gtk_tree_path_free (path);
+	}
+    }
+}
+
+static gboolean
+tm_button_press_event(GtkWidget *w, GdkEventButton *e, gpointer data)
+{
+    if(w && e)
+    {
+	switch(e->button)
+	{
+	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);
+}
+
+/* called when the track selection changes */
+static void
+tm_selection_changed_event(GtkTreeSelection *selection, gpointer data)
+{
+    GtkTreeView *treeview = gtk_tree_selection_get_tree_view (selection);
+    GtkTreePath *path;
+    GtkTreeViewColumn *column;
+    TM_item col_id;
+
+    gtk_tree_view_get_cursor (treeview, &path, &column);
+    if (path)
+    {
+	col_id = tm_lookup_col_id (column);
+	if (col_id != -1)  tm_set_search_column (col_id);
+    }
+    info_update_track_view_selected ();
+    
+    /* update the coverart display */
+    GList *selected = display_get_selection (prefs_get_int("sort_tab_num"));
+    if (selected != NULL)
+    {
+    	Track *track = selected->data;
+    	if(track != NULL)
+    		coverart_select_cover (track);
+    }
+}
+
+
+/* Create tracks treeview */
+void tm_create_treeview (void)
+{
+  GtkTreeModel *model = NULL;
+  GtkWidget *track_window = gtkpod_xml_get_widget (main_window_xml, "track_window");
+  GtkTreeSelection *select;
+  gint col;
+  GtkWidget *stv = gtk_tree_view_new ();
+
+  /* create tree view */
+  if (track_treeview)
+  {   /* delete old tree view */
+      model = gtk_tree_view_get_model (track_treeview);
+      /* FIXME: how to delete model? */
+      gtk_widget_destroy (GTK_WIDGET (track_treeview));
+  }
+  track_treeview = GTK_TREE_VIEW (stv);
+  gtk_widget_show (stv);
+  gtk_container_add (GTK_CONTAINER (track_window), stv);
+  /* create model (we only need one column for the model -- only a
+   * pointer to the track has to be stored) */
+  model = GTK_TREE_MODEL (
+      gtk_list_store_new (1, G_TYPE_POINTER));
+  gtk_tree_view_set_model (track_treeview, GTK_TREE_MODEL (model));
+  gtk_tree_view_set_rules_hint (GTK_TREE_VIEW (track_treeview), TRUE);
+  gtk_tree_view_set_search_equal_func (GTK_TREE_VIEW (track_treeview), 
+				       tm_search_equal_func,
+				       NULL,
+				       NULL);
+  select = gtk_tree_view_get_selection (track_treeview);
+  gtk_tree_selection_set_mode (select,
+			       GTK_SELECTION_MULTIPLE);
+  g_signal_connect (G_OBJECT (select) , "changed",
+		    G_CALLBACK (tm_selection_changed_event),
+		    NULL);
+  tm_add_columns ();
+
+/*   gtk_drag_source_set (GTK_WIDGET (track_treeview), GDK_BUTTON1_MASK, */
+/* 		       tm_drag_types, TGNR (tm_drag_types), */
+/* 		       GDK_ACTION_COPY|GDK_ACTION_MOVE); */
+/*   gtk_tree_view_enable_model_drag_dest(track_treeview, tm_drop_types, */
+/* 				       TGNR (tm_drop_types), */
+/* 				       GDK_ACTION_COPY|GDK_ACTION_MOVE); */
+/*   /\* need the gtk_drag_dest_set() with no actions ("0") so that the */
+/*      data_received callback gets the correct info value. This is most */
+/*      likely a bug... *\/ */
+/*   gtk_drag_dest_set_target_list (GTK_WIDGET (track_treeview), */
+/* 				 gtk_target_list_new (tm_drop_types, */
+/* 						      TGNR (tm_drop_types))); */
+
+
+  gtk_drag_source_set (GTK_WIDGET (track_treeview),
+		       GDK_BUTTON1_MASK,
+		       tm_drag_types, TGNR (tm_drag_types),
+		       GDK_ACTION_COPY|GDK_ACTION_MOVE);
+  gtk_drag_dest_set (GTK_WIDGET (track_treeview),
+		     0,
+		     tm_drop_types, TGNR (tm_drop_types),
+		     GDK_ACTION_COPY|GDK_ACTION_MOVE);
+
+
+  g_signal_connect ((gpointer) track_treeview, "drag-begin",
+		    G_CALLBACK (tm_drag_begin),
+		    NULL);
+
+  g_signal_connect ((gpointer) track_treeview, "drag-data-delete",
+		    G_CALLBACK (tm_drag_data_delete),
+		    NULL);
+
+  g_signal_connect ((gpointer) track_treeview, "drag-data-get",
+		    G_CALLBACK (tm_drag_data_get),
+		    NULL);
+
+  g_signal_connect ((gpointer) track_treeview, "drag-data-received",
+		    G_CALLBACK (tm_drag_data_received),
+		    NULL);
+
+  g_signal_connect ((gpointer) track_treeview, "drag-drop",
+		    G_CALLBACK (tm_drag_drop),
+		    NULL);
+
+  g_signal_connect ((gpointer) track_treeview, "drag-end",
+		    G_CALLBACK (tm_drag_end),
+		    NULL);
+
+  g_signal_connect ((gpointer) track_treeview, "drag-leave",
+		    G_CALLBACK (tm_drag_leave),
+		    NULL);
+
+  g_signal_connect ((gpointer) track_treeview, "drag-motion",
+		    G_CALLBACK (tm_drag_motion),
+		    NULL);
+
+  g_signal_connect_after ((gpointer) stv, "key_release_event",
+			  G_CALLBACK (on_track_treeview_key_release_event),
+			  NULL);
+  g_signal_connect ((gpointer) track_treeview, "button-press-event",
+		    G_CALLBACK (tm_button_press_event),
+		    NULL);
+  g_signal_connect (G_OBJECT (model), "sort-column-changed",
+		    G_CALLBACK (tm_sort_column_changed),
+		    (gpointer)0);
+
+  /* initialize sorting */
+  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))
+  {
+      tm_set_search_column (col);
+  }
+  else
+  {   /* reasonable default */
+      tm_set_search_column (TM_COLUMN_TITLE);
+  }
+}
+
+
+void
+tm_show_preferred_columns(void)
+{
+    GtkTreeViewColumn *tvc = NULL;
+    gboolean visible;
+    gint i;
+
+    for (i=0; i<TM_NUM_COLUMNS; ++i)
+    {
+	tvc = gtk_tree_view_get_column (track_treeview, i);
+	visible = prefs_get_int_index("col_visible", 
+      prefs_get_int_index("col_order", i));
+	gtk_tree_view_column_set_visible (tvc, visible);
+    }
+}
+
+
+/* update the cfg structure (preferences) with the current sizes /
+   positions (called by display_update_default_sizes():
+   column widths of track model */
+void tm_update_default_sizes (void)
+{
+    gint i;
+    GtkTreeViewColumn *col;
+    gint col_width;
+
+    /* column widths */
+    for (i=0; i<TM_NUM_COLUMNS; ++i)
+    {
+	col = tm_columns [i];
+	if (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);
+   
+	}
+    }
+}
+
+
+/* get the TM_ITEM column id for @column. Returns -1 if column could
+   not be found */
+static TM_item tm_lookup_col_id (GtkTreeViewColumn *column)
+{
+    gint i;
+
+    if (column)
+    {
+	for (i=0; i<TM_NUM_COLUMNS; ++i)
+	{
+	    if (column == tm_columns[i]) return i;
+	}
+    }
+    return -1;
+}
+
+
+/* Compare function to avoid sorting */
+static gint tm_nosort_comp (GtkTreeModel *model,
+			    GtkTreeIter *a,
+			    GtkTreeIter *b,
+			    gpointer user_data)
+{
+    return 0;
+}
+
+
+/* Disable sorting of the view during lengthy updates. */
+/* @enable: TRUE: enable, FALSE: disable */
+void tm_enable_disable_view_sort (gboolean enable)
+{
+    static gint disable_count = 0;
+
+    if (enable)
+    {
+	disable_count--;
+	if (disable_count < 0)
+	    fprintf (stderr, "Programming error: disable_count < 0\n");
+	if (disable_count == 0 && track_treeview)
+	{
+	    if (prefs_get_int("tm_sort") != SORT_NONE)
+	    {
+		/* Re-enable sorting */
+		GtkTreeModel *model = gtk_tree_view_get_model (track_treeview);
+		if (BROKEN_GTK_TREE_SORT)
+		{
+		    gtk_tree_sortable_set_sort_func (
+			GTK_TREE_SORTABLE (model),
+			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_int("tm_sortcol"),
+			prefs_get_int("tm_sort"));
+		}
+	    }
+	}
+    }
+    else
+    {
+	if (disable_count == 0 && track_treeview)
+	{
+	    if (prefs_get_int("tm_sort") != SORT_NONE)
+	    {
+		/* Disable sorting */
+		GtkTreeModel *model = gtk_tree_view_get_model (track_treeview);
+		if (BROKEN_GTK_TREE_SORT)
+		{
+		    gtk_tree_sortable_set_sort_func (
+			GTK_TREE_SORTABLE (model),
+			prefs_get_int("tm_sortcol"),
+			tm_nosort_comp, NULL, NULL);
+		}
+		else
+		{
+		    gtk_tree_sortable_set_sort_column_id (
+			GTK_TREE_SORTABLE (model),
+			GTK_TREE_SORTABLE_UNSORTED_SORT_COLUMN_ID,
+			prefs_get_int("tm_sort"));
+		}
+	    }
+	}
+	disable_count++;
+    }
+}
+
+
+
+/* Callback for adding tracks within tm_add_filelist */
+void tm_addtrackfunc (Playlist *plitem, Track *track, gpointer data)
+{
+    struct asf_data *asf = (struct asf_data *)data;
+    GtkTreeModel *model;
+    GtkTreeIter new_iter;
+
+    model = gtk_tree_view_get_model (track_treeview);
+
+/*    printf("plitem: %p\n", plitem);
+      if (plitem) printf("plitem->type: %d\n", plitem->type);*/
+    /* add to playlist but not to the display */
+    gp_playlist_add_track (plitem, track, FALSE);
+
+    /* create new iter in track view */
+    switch (asf->pos)
+    {
+    case GTK_TREE_VIEW_DROP_INTO_OR_BEFORE:
+    case GTK_TREE_VIEW_DROP_INTO_OR_AFTER:
+    case GTK_TREE_VIEW_DROP_AFTER:
+	gtk_list_store_insert_after (GTK_LIST_STORE (model),
+				     &new_iter, asf->to_iter);
+	break;
+    case GTK_TREE_VIEW_DROP_BEFORE:
+	gtk_list_store_insert_before (GTK_LIST_STORE (model),
+				      &new_iter, asf->to_iter);
+	break;
+    }
+    /* set the iter */
+    tm_add_track_to_track_model (track, &new_iter);
+}
+
+
+/* DND: insert a list of files before/after @path
+   @data: list of files
+   @path: where to drop (NULL to drop at the end)
+   @pos:  before/after... (ignored if @path is NULL)
+*/
+gboolean tm_add_filelist (gchar *data,
+			  GtkTreePath *path,
+			  GtkTreeViewDropPosition pos)
+{
+    GtkTreeModel *model;
+    gchar *buf = NULL, *use_data;
+    gchar **files, **filep;
+    Playlist *current_playlist = pm_get_selected_playlist ();
+
+    g_return_val_if_fail (data, FALSE);
+    g_return_val_if_fail (*data, FALSE);
+    g_return_val_if_fail (current_playlist, FALSE);
+
+    model = gtk_tree_view_get_model (track_treeview);
+    g_return_val_if_fail (model, FALSE);
+    if (path)
+    {
+    }
+
+    if (pos != GTK_TREE_VIEW_DROP_BEFORE)
+    {   /* need to reverse the list of files -- otherwise wie add them
+	 * in reverse order */
+	/* split the path list into individual strings */
+	gint len = strlen (data) + 1;
+	files = g_strsplit (data, "\n", -1);
+	filep = files;
+	/* find the end of the list */
+	while (*filep) ++filep;
+	/* reserve memory */
+	buf = g_malloc0 (len);
+	/* reverse the list */
+	while (filep != files)
+	{
+	    --filep;
+	    g_strlcat (buf, *filep, len);
+	    g_strlcat (buf, "\n", len);
+	}
+	g_strfreev (files);
+	use_data = buf;
+    }
+    else
+    {
+	use_data = data;
+    }
+
+/*     printf("filelist: (%s) -> (%s)\n", data, use_data); */
+    /* initialize add-track-struct */
+    if (path)
+    {   /* add where specified (@path/@pos) */
+	GtkTreeIter to_iter;
+	struct asf_data asf;
+	if (!gtk_tree_model_get_iter (model, &to_iter, path))
+	    g_return_val_if_reached (FALSE);
+	asf.to_iter = &to_iter;
+	asf.pos = pos;
+	add_text_plain_to_playlist (current_playlist->itdb,
+				    current_playlist, use_data, 0,
+				    tm_addtrackfunc, &asf);
+    }
+    else
+    {   /* add to the end */
+	add_text_plain_to_playlist (current_playlist->itdb,
+				    current_playlist, use_data, 0,
+				    NULL, NULL);
+    }
+    tm_rows_reordered ();
+    C_FREE (buf);
+    return TRUE;
+}

Copied: gtkpod/trunk/src/fetchcover.c (from rev 193, gtkpod/branches/upstream/current/src/fetchcover.c)
===================================================================
--- gtkpod/trunk/src/fetchcover.c	                        (rev 0)
+++ gtkpod/trunk/src/fetchcover.c	2007-06-27 21:27:12 UTC (rev 194)
@@ -0,0 +1,1059 @@
+/*
+|  Copyright (C) 2002-2007 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!
+|
+*/
+
+#ifdef HAVE_CONFIG_H
+#  include <config.h>
+#endif
+
+#include "fetchcover.h"
+#include "display_coverart.h"
+#include <glib/gprintf.h>
+#include <glib/gstdio.h>
+
+#undef FETCHCOVER_DEBUG
+
+static void fetchcover_statusbar_update (gchar *message);
+static GtkDialog *fetchcover_display_dialog (Track *track, Itdb_Device *device, GtkWindow *parent);
+static void fetchcover_debug(const gchar *format, ...);
+
+typedef struct
+{
+	GdkPixbuf *image;
+	GString *url;
+	gchar *dir;
+	gchar *filename;
+} Fetch_Cover;
+
+/* Track to search for a cover for */
+static Track *fetchcover_track = NULL;
+/* List of possible covers, including existing one (maybe default cover) */
+static GList *fetchcover_image_list = NULL;
+/* Index for controlling which cover image to display */
+static gint displayed_cover_index = 0;
+/* Pointer to the currently display cover */
+static Fetch_Cover *displayed_cover;
+/* Canvas widget for display of cover */
+static GnomeCanvas *fetchcover_canvas;
+/* Canvas Item widget for mounting the cover pixbuf on */
+static GnomeCanvasItem *fetchcover_canvasitem;
+/* Previous and Next buttons for cycling images */
+static GtkWidget *next_button;
+static GtkWidget *prev_button;
+/* Status bar for displaying status messages */
+static GtkWidget *fetchcover_statusbar;
+/* Flag indicating whether a new net search should be initiated */
+static gboolean netsearched = FALSE;
+
+#define IMGSCALE 256
+
+#ifdef HAVE_CURL
+
+#include <curl/curl.h>
+
+/* Declarations */
+static void free_fetchcover_list();
+static void *safe_realloc(void *ptr, size_t size);
+static size_t curl_write_fetchcover_func(void *ptr, size_t itemsize, size_t numitems, void *data);
+static void net_search_track ();
+static void net_retrieve_image (GString *url);
+static void fetchcover_next_button_clicked (GtkWidget *widget, gpointer data);
+static void fetchcover_prev_button_clicked (GtkWidget *widget, gpointer data);
+static void fetchcover_cleanup();
+static gchar *fetchcover_save (GtkWindow *parent);
+/* Display a dialog explaining the options if a file with the proposed name already exists */
+static gchar *display_file_exist_dialog (gchar *filename, GtkWindow *parent);
+
+struct chunk
+{
+	gchar *memory;
+	size_t size;
+};
+
+/* Data structure for use with curl */
+struct chunk fetchcover_curl_data;
+
+/**
+ * safe_realloc:
+ *
+ * @void: ptr
+ * @size_t: size
+ *
+ * Memory allocation function
+ */
+static void *safe_realloc(void *ptr, size_t size)
+{
+	if (ptr)
+		return realloc(ptr, size);
+	else
+		return malloc(size);
+}
+
+/**
+ * 
+ * curl_write_fetchcover_func:
+ * 
+ * @void: *ptr
+ * @size_t: itemsize
+ * @size_t:numitems
+ * @void: *data
+ * 
+ * Curl writing function
+ * 
+ * @Return size_t
+ */
+static size_t curl_write_fetchcover_func(void *ptr, size_t itemsize, size_t numitems, void *data)
+{
+	size_t size = itemsize * numitems;
+	struct chunk *mem = (struct chunk*)data;
+	mem->memory = (gchar*)safe_realloc(mem->memory, mem->size + size + 1);
+	
+	if (mem->memory)
+	{
+		memcpy(&(mem->memory[mem->size]), ptr, size);
+		mem->size += size;
+		mem->memory[mem->size] = 0;
+	}
+	return size;
+}
+		
+/**
+ * net_search_track:
+ *
+ * Use Amazon to locate an XML file containing links to
+ * cover pictures consistent with track artist and album
+ */
+static void net_search_track ()		
+{		
+	/* This key for Amazon web services belongs to Charlie Head */
+	const gchar amazonkey[21] = "10K4YZTZFS562NG7EZR2";
+		
+	/* possible internationalization: support
+	 * different tld's (ja, fr, ca, etc.) - Amarok does this.
+	 * we assume a lot here.. may not work
+	 * for some international artists? --chead
+	 */
+	 
+	 /* Create the url string and insert the artist and album */
+	GString *url = g_string_new (NULL);
+	g_string_printf(url,
+		"http://xml.amazon.com/onca/xml3?t=webservices-20&dev-t=%s&KeywordSearch=%s+%s&mode=music&type=lite&locale=us&page=1&f=xml",
+		amazonkey, fetchcover_track->artist, fetchcover_track->album);
+	
+	/* Replace any spaces in the url string with +s instead */
+	gint i;
+	for (i = 0; i < url->len; i++)
+	{
+		if (url->str[i] == ' ')
+			url->str[i] = '+';
+	}
+		
+	fetchcover_debug("fetchcover_next: amazon xml url: %s", url->str);
+	
+	fetchcover_curl_data.memory = NULL;
+	fetchcover_curl_data.size = 0;
+
+	/* Use curl to perform the internet search */	
+	CURL *curl;	
+	curl_global_init(CURL_GLOBAL_ALL);
+	curl = curl_easy_init();
+	curl_easy_setopt(curl, CURLOPT_URL, url->str);
+	curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, curl_write_fetchcover_func);
+	curl_easy_setopt(curl, CURLOPT_WRITEDATA, (void*) &fetchcover_curl_data);
+	curl_easy_setopt(curl, CURLOPT_USERAGENT, "libcurl-agent/1.0");
+	curl_easy_perform(curl);
+	curl_easy_cleanup(curl);
+	g_string_free(url, TRUE);
+	
+	/* Check whether curl received some hits.
+	 * If not return
+	 */
+	if (!fetchcover_curl_data.memory || fetchcover_curl_data.size <= 0)
+	{
+		fetchcover_statusbar_update ("Failed to find any covers for track");
+		if (fetchcover_curl_data.memory)
+		{
+			g_free(fetchcover_curl_data.memory);
+			fetchcover_curl_data.memory = NULL;
+			fetchcover_curl_data.size = 0;
+		}
+		return;
+	}
+	
+	/* Curl net search successful so process the results */
+	xmlDocPtr doc;
+	xmlNodePtr cur;
+	xmlChar *key;
+
+	/* Process the data by parsing the XML and return if cannot parse */		
+	if ((doc = xmlReadMemory(fetchcover_curl_data.memory, fetchcover_curl_data.size, "amazon.xml", NULL, 0)) == NULL)
+	{
+		fetchcover_statusbar_update ("Parsing failure on processing of possible track covers");
+		if (fetchcover_curl_data.memory)
+		{
+			g_free(fetchcover_curl_data.memory);
+			fetchcover_curl_data.memory = NULL;
+			fetchcover_curl_data.size = 0;
+		}
+		return;
+	}
+
+	/* XML parsed ok so try and get the root element */
+	if ((cur = xmlDocGetRootElement(doc)) == NULL)
+	{
+		fetchcover_statusbar_update ("Downloaded XML file appears to be empty. No covers found for track");
+		xmlFreeDoc(doc);
+		if (fetchcover_curl_data.memory)
+		{
+			g_free(fetchcover_curl_data.memory);
+			fetchcover_curl_data.memory = NULL;
+			fetchcover_curl_data.size = 0;
+		}
+		return;
+	}
+
+	/* Wind down through the XML nodes to obtain the urls
+	 * to the returned album covers
+	 */
+	Fetch_Cover *fcover;		
+	cur = cur->xmlChildrenNode;
+	while (cur != NULL)
+	{
+		if ((!xmlStrcmp(cur->name, (const xmlChar*)"Details")))
+		{
+			xmlNodePtr details = cur->xmlChildrenNode;
+			while (details != NULL)
+			{
+				if ((!xmlStrcmp(details->name, (const xmlChar*)"ImageUrlLarge")))
+				{
+					key = xmlNodeListGetString (doc, details->xmlChildrenNode, 1);
+					/* Create a fetchcover object and the add to the list */
+					fcover = g_new0(Fetch_Cover, 1);
+					fcover->url = g_string_new ((gchar*) key);
+					fcover->image = NULL;
+					
+					fetchcover_image_list = g_list_append (fetchcover_image_list, fcover);
+					xmlFree(key);
+				}
+				details = details->next;
+			}
+		}
+		cur = cur->next;
+	}
+		
+	xmlFreeDoc(doc);
+
+	/* Clean up the curl data */
+	if (fetchcover_curl_data.memory)
+	{
+		g_free(fetchcover_curl_data.memory);
+		fetchcover_curl_data.memory = NULL;
+		fetchcover_curl_data.size = 0;
+	}
+
+	/* Check whether the XML served up any cover images */	
+	if (g_list_length (fetchcover_image_list) == 1)
+	{
+		fetchcover_debug("fetchcover_next: no covers found\n");
+		fetchcover_statusbar_update ("No cover images were found for this album.");
+	}
+	else
+	{
+		fetchcover_debug("fetchcover_next: successfully recovered covers\n");
+		gchar *buf;
+		buf = g_strdup_printf ("Found potentially %d covers. (Some covers may be blank)", g_list_length (fetchcover_image_list) - 1);
+		fetchcover_statusbar_update (buf);
+		g_free (buf);
+	}
+	
+	return;
+}
+
+/**
+ * net_retrieve_image:
+ *
+ * @GString: url
+ *
+ * Use the url acquired from the net search to fetch the image,
+ * save it to a file inside the track's parent directory then display
+ * it as a pixbuf
+ */
+static void net_retrieve_image (GString *url)
+{
+	gchar *path = NULL;
+	
+	fetchcover_debug("fetchcover_next: net_retrieve_image from: %s\n", url->str);
+	
+	fetchcover_curl_data.size = 0;
+	fetchcover_curl_data.memory = NULL;
+	
+	/* Use curl to retrieve the data from the net */
+	CURL *curl;	
+	curl_global_init(CURL_GLOBAL_ALL);
+	curl = curl_easy_init();
+	curl_easy_setopt(curl, CURLOPT_URL, url->str);
+	curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, curl_write_fetchcover_func);
+	curl_easy_setopt(curl, CURLOPT_WRITEDATA, (void*)&fetchcover_curl_data);
+	curl_easy_setopt(curl, CURLOPT_USERAGENT, "libcurl-agent/1.0");
+	curl_easy_perform(curl);
+	curl_easy_cleanup(curl);
+	
+	g_return_if_fail(fetchcover_curl_data.memory);
+
+	/* Check that the page returned is a valid web page */	
+	if (strstr(fetchcover_curl_data.memory, "<html>") != NULL)
+	{
+		fetchcover_statusbar_update ("Image appears to no longer exist at http location");
+		fetchcover_debug("fetchcover_next: http error (probably 404 or server error\n");
+		return;
+	}
+	
+	FILE *tmpf = NULL;
+	ExtraTrackData *etd = fetchcover_track->userdata;
+	g_return_if_fail(etd);
+	
+	gchar *dir = g_path_get_dirname(etd->pc_path_utf8);
+	gchar *template = prefs_get_string("coverart_template");
+	gchar **template_items = g_strsplit(template, ";", 0);
+	
+	gint i;
+	gchar *filename = NULL;
+	
+	for (i = 0; filename == NULL && i < g_strv_length (template_items); ++i)
+	{
+		filename = get_string_from_template(fetchcover_track, template_items[i], FALSE, FALSE);
+		if (strlen(filename) == 0)
+			filename = NULL;
+	}
+	
+	/* Check filename still equals null then take a default stance
+	 * to ensure the file has a name.
+	 */
+	if (filename == NULL)
+		filename = "folder.jpg";
+		
+	/* Use the index position of the cover in the glist to create a unique filename
+	 * Convert the index number to a string and prefix with a dot (hidden file)
+	 */
+	gint display_cover_index;
+	display_cover_index = g_list_index (fetchcover_image_list, displayed_cover);	
+	gchar *dcstr_index = NULL;
+	dcstr_index = (gchar *) g_malloc (sizeof(gint) + (sizeof(gchar) * 3));
+	g_sprintf (dcstr_index, ".%d_ at _", display_cover_index);
+	
+	gchar *fname = NULL;
+	if (g_str_has_suffix(filename, ".jpg"))
+		fname = g_strconcat(dcstr_index, filename, NULL);
+	else
+		fname = g_strconcat(dcstr_index, filename, ".jpg", NULL);
+	
+	displayed_cover->dir = dir;
+	displayed_cover->filename = fname;
+			
+	fetchcover_debug("fetchcover_next: saving tmp cover image to %s / %s", displayed_cover->dir, displayed_cover->filename);
+	
+	path = g_build_filename(displayed_cover->dir, displayed_cover->filename, NULL);
+	if ((tmpf = fopen(path, "wb")) == NULL)
+	{
+		fetchcover_debug("fetchcover_next: fopen failed\n");
+		fetchcover_statusbar_update ("Downloaded image cover failed to open");
+		if (fetchcover_curl_data.memory)
+		{
+			g_free(fetchcover_curl_data.memory);
+			fetchcover_curl_data.memory = NULL;
+			fetchcover_curl_data.size = 0;
+		}
+		g_free (path);
+		return;
+	}
+	g_free (path);
+	
+	if (fwrite(fetchcover_curl_data.memory, fetchcover_curl_data.size, 1, tmpf) != 1)
+	{
+		fetchcover_debug("fetchcover_next: fwrite failed\n");
+		if (fetchcover_curl_data.memory)
+		{
+			g_free(fetchcover_curl_data.memory);
+			fetchcover_curl_data.memory = NULL;
+			fetchcover_curl_data.size = 0;
+		}
+	}
+	
+	fclose(tmpf);
+	
+	GError *error = NULL;
+	path = g_build_filename(displayed_cover->dir, displayed_cover->filename, NULL);
+	displayed_cover->image = gdk_pixbuf_new_from_file(path, &error);
+	if (error != NULL)
+	{
+		fetchcover_debug("fetchcover_next: gdk_pixbuf_new_from_file failed\n");
+		if (fetchcover_curl_data.memory)
+		{
+			g_free(fetchcover_curl_data.memory);
+			fetchcover_curl_data.memory = NULL;
+			fetchcover_curl_data.size = 0;
+		}
+	}
+	
+	g_free(fetchcover_curl_data.memory);
+	fetchcover_curl_data.memory = NULL;
+	fetchcover_curl_data.size = 0;
+	g_strfreev(template_items);
+	g_free(template);
+	g_free(filename);
+	g_free(path);
+}
+
+/**
+ * fetchcover_next_button:
+ *
+ * Gets new image URL list if necessary,
+ * downloads next image to memory,
+ * shows it in a GnomeCanvas in the fetchcover_window.
+ */
+static void fetchcover_next_button_clicked (GtkWidget *widget, gpointer data)
+{
+	GdkWindow *window = gtk_widget_get_parent_window (widget);
+	gdk_window_set_cursor (window, gdk_cursor_new (GDK_WATCH));
+	fetchcover_debug("fetchcover_next_button: getting cover for:\n- Artist: %s\n- Album:  %s",
+																			fetchcover_track->artist, fetchcover_track->album);
+	
+	fetchcover_statusbar_update ("");
+	
+	if (netsearched == FALSE)
+	{
+		net_search_track ();
+		netsearched = TRUE;
+		gtk_button_set_label (GTK_BUTTON(next_button), "_Next");
+		gtk_widget_show (prev_button);
+	}
+	
+	/* Whether net search this time or not, should be another image to display
+	 * to get this far.
+	 */
+	
+	/* Increase the index by 1 */
+	displayed_cover_index++;
+			
+	/* fetchcover_image_list has a valid entry so do a couple of tests*/
+	if (displayed_cover_index >= (g_list_length(fetchcover_image_list) - 1))
+	{
+		/* Something went awry so make the index 
+		 * the index of the last cover in the list
+		 */
+		displayed_cover_index = g_list_length(fetchcover_image_list) - 1;
+		/* stop anymore button presses if last in the list */
+		gtk_widget_set_sensitive (next_button, FALSE);
+	}
+		
+	if (displayed_cover_index > 0)
+	{
+		/* enable prev button if not first in list */
+		gtk_widget_set_sensitive (prev_button, TRUE);
+	}
+		
+	/* Set the displayed cover to be the new image */	
+	displayed_cover = g_list_nth_data (fetchcover_image_list, displayed_cover_index);
+	
+	/* If the image has not been retrieved then get it from the net */
+	if (displayed_cover->image == NULL)
+	{
+		net_retrieve_image (displayed_cover->url);
+		if (displayed_cover->image == NULL)
+		{
+			gdk_window_set_cursor (window, NULL);
+			fetchcover_statusbar_update ("Failed to retrieve image.");
+			g_return_if_fail (displayed_cover->image);
+		}
+	}
+	
+	fetchcover_debug("Displayed Image path: %s/%s\n", displayed_cover->dir, displayed_cover->filename);
+	
+	GdkPixbuf *scaled = gdk_pixbuf_scale_simple(displayed_cover->image, IMGSCALE, IMGSCALE, GDK_INTERP_NEAREST);
+	gnome_canvas_item_set(fetchcover_canvasitem, "pixbuf", scaled, NULL);
+	
+	gdk_window_set_cursor (window, NULL);
+	
+	return;
+}
+
+/**
+ * fetchcover_prev_button:
+ *
+ * Gets previous image and shows
+ * it in a GnomeCanvas in the fetchcover_window.
+ */
+static void fetchcover_prev_button_clicked (GtkWidget *widget, gpointer data)
+{
+	/* decrease the index by 1 */
+	displayed_cover_index--;
+	
+	fetchcover_statusbar_update ("");
+	
+	if (displayed_cover_index <= 0)
+	{
+		/* Something went awry so make the index
+		 * the index of the first cover in the list
+		 */
+		displayed_cover_index = 0;
+		/* stop anymore prev button press if first in the list */
+		gtk_widget_set_sensitive (prev_button, FALSE);
+	}
+		
+	/* fetchcover_image_list has a valid entry so do a couple of tests*/
+	if (displayed_cover_index < (g_list_length(fetchcover_image_list) - 1))
+	{
+		/* stop anymore button presses if last in the list */
+		gtk_widget_set_sensitive (next_button, TRUE);
+	}	
+		
+	/* Set the displayed cover to be the new image */	
+	displayed_cover = g_list_nth_data (fetchcover_image_list, displayed_cover_index);
+	
+	/* If the image has not been retrieved then get it from the net */
+	if (displayed_cover->image == NULL)
+	{
+		net_retrieve_image (displayed_cover->url);
+		if (displayed_cover->image == NULL)
+		{
+			fetchcover_statusbar_update ("Failed to retrieve image.");
+			g_return_if_fail (displayed_cover->image);
+		}
+	}
+	
+	GdkPixbuf *scaled = gdk_pixbuf_scale_simple(displayed_cover->image, IMGSCALE, IMGSCALE, GDK_INTERP_NEAREST);
+	gnome_canvas_item_set(fetchcover_canvasitem, "pixbuf", scaled, NULL);
+	
+	return;
+}
+
+/**
+ * fetchcover_save:
+ * 
+ * @Detail: detail
+ *
+ * Save the displayed cover.
+ * Set thumbnails, update details window.
+ * Called on response to the clicking of the save button in the dialog
+ * 
+ * Returns:
+ * Filename of chosen cover image file
+ */
+gchar *fetchcover_save (GtkWindow *parent)
+{
+	gchar *newname = NULL;
+	/* The default cover image will have both dir and filename set
+	 * to null because no need to save because it is already saved (!!)
+	 * Thus, this whole process is avoided. Added bonus that pressing
+	 * save by accident if, for instance, no images are found means the
+	 * whole thing safely completes
+	 */
+	if (displayed_cover->dir && displayed_cover->filename)
+	{
+		/* path is valid so first move the file to be the folder.jpg or 
+		 * whatever is the preferred preference
+		 */
+		
+		/* Split the existing filename to remove the prefix */
+		gchar **fname_items = g_strsplit(displayed_cover->filename, "_ at _", 2);
+		/* Assign the filename ready to rename the file */
+		newname = g_build_filename(displayed_cover->dir, fname_items[1], NULL);
+		fetchcover_debug("New name of file is %s\n", newname);
+
+		while (g_file_test (newname, G_FILE_TEST_EXISTS))
+		{
+			newname = display_file_exist_dialog (newname, parent);
+			if (newname == NULL)
+				break;
+		}
+		
+		/* Carry the nullified value back to the original called so the
+		 * entire fetchcover process can be cancelled
+		 */
+		if (newname == NULL)
+			return NULL;
+		
+		gchar *oldname = g_build_filename(displayed_cover->dir, displayed_cover->filename, NULL);
+		/* Rename the preferred choice, ie. .2_ at _After_Forever.jpg, to the preferred name, 
+		 * ie. After_Forever.jpg.
+		 */
+		 	g_rename (oldname, newname);
+		
+		/* Tidy up to ensure the path will not get cleaned up
+		 * by fetchcover_clean_up
+		 */
+		g_free (oldname);
+		g_strfreev(fname_items);
+		g_free (displayed_cover->dir);
+		g_free (displayed_cover->filename);		
+		displayed_cover->dir = NULL;
+		displayed_cover->filename = NULL;
+	}
+	return newname;
+}
+#endif /* HAVE_CURL */
+
+static gchar *display_file_exist_dialog (gchar *filename, GtkWindow *parent)
+{
+	gint result;
+	gchar **splitarr = NULL;
+	gchar *basename = NULL;
+	gint i;
+	gchar *message;	
+	GtkWidget *label;
+	GtkWidget *dialog = gtk_dialog_new_with_buttons ("Coverart file already exists",
+                                            parent,
+                                            GTK_DIALOG_MODAL | GTK_DIALOG_DESTROY_WITH_PARENT,
+                                            GTK_STOCK_YES,
+                                            GTK_RESPONSE_YES,
+                                            GTK_STOCK_NO,
+                                            GTK_RESPONSE_NO,
+                                            GTK_STOCK_CANCEL,
+                                            GTK_RESPONSE_REJECT,
+                                            NULL);
+	message = g_strdup_printf (_("The picture file %s already exists. \
+\nThis may be associated with other music files in the directory. \
+\n\n-  Clicking Yes will overwrite the existing file, possibly associating \
+\n   other music files in the same directory with this coverart file. \
+\n-  Clicking No will save the file with a unique file name. \
+\n-  Clicking Cancel will abort the fetchcover operation."), filename);
+		           
+	label = gtk_label_new (message);
+   
+ 	/* Add the label, and show everything we've added to the dialog. */
+  gtk_container_add (GTK_CONTAINER (GTK_DIALOG(dialog)->vbox), label);
+			
+	gtk_widget_show_all (dialog);	
+	result = gtk_dialog_run (GTK_DIALOG(dialog));
+	g_free (message);
+			
+	switch (result)
+	{
+		case GTK_RESPONSE_REJECT:
+			/* Cancel has been clicked so no save */
+			gtk_widget_destroy (dialog);
+			return NULL;
+		case GTK_RESPONSE_YES:
+			/* Yes clicked so overwrite the file is okay. Leave final_filename intact
+			 * and remove the original
+			 */
+			g_remove (filename);
+			gtk_widget_destroy (dialog);
+			return filename;
+		case GTK_RESPONSE_NO:
+			/* User doesnt want to overwrite anything so need to do some work on filename */
+			splitarr = g_strsplit (filename, ".", 0);
+			basename = splitarr[0];
+			
+			for (i = 1; g_file_test (filename, G_FILE_TEST_EXISTS); ++i)
+			{
+				g_sprintf (filename, "%s%d.jpg", basename, i);
+			}
+			
+			/* Should have found a filename that really doesnt exist so this needs to be returned */
+			basename = NULL;
+			g_strfreev(splitarr);
+			gtk_widget_destroy (dialog);
+			
+			return filename;
+		default:
+			gtk_widget_destroy (dialog);
+			return NULL;
+	}	
+}
+
+/**
+ * free_fetchcover:
+ * 
+ * @Fetch_Cover: fcover
+ * 
+ * Free the elements of the passed in Fetch_Cover structure
+ */
+static void free_fetchcover (Fetch_Cover *fcover)
+{
+	if (! fcover)
+		return;
+		
+	if (fcover->url)
+		g_string_free (fcover->url, TRUE);
+	
+	if (fcover->image)
+		gdk_pixbuf_unref (fcover->image);
+		
+	if (fcover->dir && fcover->filename)
+	{
+		gint status;
+		gchar *path;
+		path = g_build_filename (fcover->dir, fcover->filename, NULL);
+		status = g_remove (path);
+		g_free(path);
+		g_free (fcover->dir);
+		g_free (fcover->filename);
+	}
+}
+
+/**
+ * free_fetchcover_list:
+ *
+ * Nullify all the urls in the url list as part of
+ * cleaning up.
+ * 
+ */
+static void free_fetchcover_list()
+{
+	fetchcover_debug("free_fetchcover_list");
+	
+	gint i;
+	Fetch_Cover *fcover = NULL;
+	for (i = 0; i < g_list_length (fetchcover_image_list); ++i)
+	{
+		fcover = g_list_nth_data (fetchcover_image_list, i);
+		free_fetchcover (fcover);
+	}
+	g_list_free (fetchcover_image_list);
+	fetchcover_image_list = NULL;
+}
+
+/**
+ * fetchcover_cleanup:
+ *
+ * Cleanup fetchcover bits and pieces
+ */
+static void fetchcover_cleanup()
+{	
+	#ifdef HAVE_CURL
+	if (fetchcover_curl_data.memory)
+	{
+		g_free (fetchcover_curl_data.memory);
+		fetchcover_curl_data.memory = NULL;
+		fetchcover_curl_data.size = 0;
+	}
+	#endif /* CURL */
+	free_fetchcover_list();
+}
+
+/**
+ * fetchcover_display_dialog:
+ *
+ * Create fetchcover_window, get album cover from Amazon
+ *
+ * @track: track to look up images for
+ */
+static GtkDialog *fetchcover_display_dialog (Track *track, Itdb_Device *device, GtkWindow *parent)
+{
+	GnomeCanvasItem *art_border;
+	GtkBox *canvasbutton_hbox;
+	GtkWidget *fetchcover_dialog;
+	GladeXML *fetchcover_xml;
+	GdkPixbuf *imgbuf;
+	
+	g_return_val_if_fail (track, NULL);
+	g_return_val_if_fail (device, NULL);
+	
+	/* Enable searching of internet for images */		
+	netsearched = FALSE;
+	
+	fetchcover_xml = glade_xml_new (xml_file, "fetchcover_dialog", NULL);
+	fetchcover_dialog = gtkpod_xml_get_widget (fetchcover_xml, "fetchcover_dialog");
+	gtk_window_set_transient_for (GTK_WINDOW(fetchcover_dialog), parent);
+	
+	ExtraTrackData *etd;
+	etd = track->userdata;
+	if (etd && etd->thumb_path_locale)
+	{
+		GError *error = NULL;
+		imgbuf = gdk_pixbuf_new_from_file(etd->thumb_path_locale, &error);
+		if (error != NULL)
+		{
+			/* Artwork failed to load from file so try loading default */
+			imgbuf = coverart_get_track_thumb (track, device);
+			g_error_free (error);
+		}
+	}
+	else
+	{
+		/* No thumb path available, fall back to getting the small thumbnail
+		 * and if that fails, the default thumbnail image.
+		 */
+		imgbuf = coverart_get_track_thumb (track, device);
+	}
+	
+	/* Add the cover to the image list */
+	displayed_cover = g_new0 (Fetch_Cover, 1);
+	displayed_cover->url = g_string_new ("default");
+	/* No need to set the path for saving later as if this cover is selected:
+	 * a) There is an image cover already set to the template name so no need to save
+	 * b) There is no image cover so default ? is showing and again no save necessary
+	 *
+	 * Avoid saving by checking where url is "default"
+	 */
+	displayed_cover->dir = NULL;
+	displayed_cover->filename = NULL;
+	displayed_cover->image = gdk_pixbuf_scale_simple (imgbuf, IMGSCALE, IMGSCALE, GDK_INTERP_NEAREST);
+	gdk_pixbuf_unref (imgbuf);
+	
+	fetchcover_image_list = g_list_append (fetchcover_image_list, displayed_cover);
+	displayed_cover_index = 0;	
+		
+	fetchcover_debug("fetchcover_display_window: loaded cover file");
+	
+	/* Create the image cover canvas */
+	fetchcover_canvas = GNOME_CANVAS (gnome_canvas_new());
+	gtk_widget_set_size_request (GTK_WIDGET(fetchcover_canvas), IMGSCALE, IMGSCALE);
+	gnome_canvas_set_scroll_region (fetchcover_canvas, 0.0, 0.0, IMGSCALE, IMGSCALE);
+	fetchcover_canvasitem = gnome_canvas_item_new(	
+					gnome_canvas_root(fetchcover_canvas),
+					GNOME_TYPE_CANVAS_PIXBUF, 
+					"x", (double) 0, 
+			    "y", (double) 0,
+			    "width", (double) IMGSCALE,
+			    "height", (double) IMGSCALE,
+					NULL);
+	
+	/* Apply the image cover to the canvas */
+	gnome_canvas_item_set (	fetchcover_canvasitem,
+																						"pixbuf", displayed_cover->image,
+				NULL);
+	
+	/* Create the canvas border */
+	art_border = gnome_canvas_item_new(
+					gnome_canvas_root(fetchcover_canvas),
+			    gnome_canvas_rect_get_type(),
+			    "x1", (double) 0, 
+			    "y1", (double) 0,
+			    "x2", (double) IMGSCALE,
+			    "y2", (double) IMGSCALE,
+			    "outline-color-rgba", 0xAA000000,
+			    "width-units", (double) 3,
+			    NULL);
+	
+	gnome_canvas_item_raise_to_top (art_border);
+	
+	/* Add canvas to horizonontal box */
+	canvasbutton_hbox = GTK_BOX (gtkpod_xml_get_widget (fetchcover_xml, "canvasbutton_hbox"));
+	gtk_widget_set_size_request (GTK_WIDGET(canvasbutton_hbox), IMGSCALE + 150, IMGSCALE + 20);
+	gtk_box_pack_start_defaults ( canvasbutton_hbox, GTK_WIDGET (fetchcover_canvas));
+	
+	/* Assign the status message bar */
+	fetchcover_statusbar = gtkpod_xml_get_widget (fetchcover_xml, "fetchcover_statusbar");
+		
+	fetchcover_track = track;
+  next_button = gtkpod_xml_get_widget (fetchcover_xml, "next_button");
+	prev_button = gtkpod_xml_get_widget (fetchcover_xml, "prev_button");
+	
+  #ifdef HAVE_CURL
+  
+  g_signal_connect (G_OBJECT(next_button), "clicked",
+		      G_CALLBACK(fetchcover_next_button_clicked), NULL);	
+	
+	g_signal_connect (G_OBJECT(prev_button), "clicked",
+		      G_CALLBACK(fetchcover_prev_button_clicked), NULL);	
+	
+	/* Check there are valid values for artist and album, otherwise disable everything */
+	if (fetchcover_track->artist == NULL || fetchcover_track->album == NULL)
+	{
+		gtk_widget_set_sensitive (next_button, FALSE);
+		fetchcover_statusbar_update ("Search cannot be performed as either the artist or album are blank");
+	}
+	else
+	{
+		gchar *buf;
+		buf = g_strdup_printf ("Artist: %s\tAlbum: %s", fetchcover_track->artist, fetchcover_track->album);
+		fetchcover_statusbar_update (buf);
+		g_free (buf);
+	}
+	
+	#else
+		gtk_widget_set_sensitive (next_button, FALSE);
+		gtk_widget_set_sensitive (prev_button, FALSE);
+		fetchcover_statusbar_update ("CURL has not been installed so this function is not available");
+	#endif /* HAVE_CURL */
+		
+  gtk_widget_show_all (fetchcover_dialog);
+  gtk_widget_hide (prev_button);
+  
+  g_object_unref (fetchcover_xml);
+  
+	return GTK_DIALOG(fetchcover_dialog);
+}
+
+/**
+ * fetchcover_debug:
+ *
+ * Print debug messages for debugging purposes
+ *
+ * @format of messages and message string
+ */
+static void fetchcover_debug(const gchar *format, ...)
+{
+#ifdef FETCHCOVER_DEBUG
+    va_list args;
+    va_start (args, format);
+    gchar *s = g_strdup_vprintf (format, args);
+    va_end (args);
+    printf ("%s\n", s);
+    fflush (stdout);
+    g_free (s);
+#endif
+}
+
+/**
+ * fetchcover_statusbar_update:
+ * 
+ * @gchar*: messagel
+ *
+ * Display a message in the status bar component of the dialog
+ */
+static void fetchcover_statusbar_update (gchar *message)
+{
+	if (fetchcover_statusbar)
+	{
+		gtk_statusbar_pop(GTK_STATUSBAR(fetchcover_statusbar), 1);
+		gtk_statusbar_push(GTK_STATUSBAR(fetchcover_statusbar), 1,  message);
+	}
+}
+
+
+/**
+ * on_coverart_context_menu_click:
+ *
+ * @Track: track
+ *
+ * Callback. Start cover selection from CoverArt Display's context menu.
+ */
+void on_coverart_context_menu_click (GList *tracks)
+{
+	Track *track;
+  gint result;
+
+  track = tracks->data;
+	if (track == NULL)
+	{
+		g_fprintf (stderr, "Track was null so fetchcover dialog was not displayed.\nLenght of glist was %d\n", g_list_length (tracks));
+		return;
+	}
+	
+	GtkWindow *parent = GTK_WINDOW (gtkpod_xml_get_widget (main_window_xml, "gtkpod"));
+  GtkDialog *dialog = fetchcover_display_dialog (track, track->itdb->device, parent);
+  g_return_if_fail (dialog);
+
+  result = gtk_dialog_run (GTK_DIALOG (dialog));
+	gtk_widget_hide (GTK_WIDGET(dialog));
+	gtk_widget_destroy (GTK_WIDGET(dialog));
+	
+ #ifdef HAVE_CURL
+ gchar *filename = NULL;
+    	
+ switch (result)
+ {
+ 	case GTK_RESPONSE_ACCEPT:
+      filename = fetchcover_save (parent);
+      if (filename)
+      {
+	  while (tracks)
+	  {
+	      track = tracks->data;
+	      if (gp_track_set_thumbnails (track, filename))
+		  data_changed (track->itdb);
+	      tracks = tracks->next;
+	  }
+      }
+      g_free (filename);
+  default:
+  		break;
+	}
+#endif /* HAVE_CURL */
+	
+  fetchcover_cleanup();
+}
+
+/**
+ * fetchcover_fetch_button:
+ *
+ * @widget: widget
+ * @data: data
+ *
+ * Callback. Start cover selection.
+ * Called when "Fetch Cover..." clicked from details_window.
+ */
+void on_fetchcover_fetch_button (GtkWidget *widget, gpointer data)
+{
+    gint result;
+    Detail *detail = details_get_selected_detail ();
+    GtkWindow *parent = GTK_WINDOW(detail->window);
+    GtkDialog *dialog = fetchcover_display_dialog (detail->track, detail->itdb->device, parent);
+    g_return_if_fail (dialog);
+		
+		result = gtk_dialog_run (GTK_DIALOG (dialog));
+		gtk_widget_hide (GTK_WIDGET(dialog));
+		gtk_widget_destroy (GTK_WIDGET(dialog));
+#ifdef HAVE_CURL
+    	
+    gchar *filename = NULL;
+    switch (result)
+    {
+    case GTK_RESPONSE_ACCEPT:  	
+    	filename = fetchcover_save (parent);
+    	if (filename)
+    	{
+	    if (details_writethrough(detail))
+	    {
+		GList *list;
+		for (list = detail->tracks; list; list = list->next)
+		{
+		    ExtraTrackData *etd;
+		    Track *track = list->data;
+		    
+		    if (!track)
+			break;
+		    
+		    etd = track->userdata;
+		    gp_track_set_thumbnails(track, filename);
+		    etd->tchanged = TRUE;
+		    etd->tartwork_changed = TRUE;
+		}
+	    }
+	    else
+	    {
+		ExtraTrackData *etd = fetchcover_track->userdata;
+		if (etd)
+		{
+		    gp_track_set_thumbnails(fetchcover_track, filename);
+		    etd->tchanged = TRUE;
+		}
+	    }
+	    
+	    detail->changed = TRUE;
+	    details_update_thumbnail(detail);
+	    details_update_buttons(detail);
+    	}
+    default:
+	break;
+    }
+#endif /* HAVE_CURL */
+	
+    fetchcover_cleanup();
+}

Copied: gtkpod/trunk/src/fetchcover.h (from rev 193, gtkpod/branches/upstream/current/src/fetchcover.h)
===================================================================
--- gtkpod/trunk/src/fetchcover.h	                        (rev 0)
+++ gtkpod/trunk/src/fetchcover.h	2007-06-27 21:27:12 UTC (rev 194)
@@ -0,0 +1,47 @@
+/*
+|  Copyright (C) 2002-2007 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!
+|
+*/
+
+#ifndef __FETCHCOVER_H__
+#define __FETCHCOVER_H__
+
+#include <string.h>
+#include <gtk/gtk.h>
+#include <libgnomecanvas/libgnomecanvas.h>
+#include <libxml/parser.h>
+#include <libxml/tree.h>
+#include "display.h"
+#include "display_private.h"
+#include "details.h"
+#include "itdb.h"
+#include "display_coverart.h"
+#include "prefs.h"
+
+
+void on_coverart_context_menu_click (GList *tracks);
+void on_fetchcover_fetch_button (GtkWidget *widget, gpointer data);
+
+#endif

Modified: gtkpod/trunk/src/file.c
===================================================================
--- gtkpod/trunk/src/file.c	2007-06-27 20:59:02 UTC (rev 193)
+++ gtkpod/trunk/src/file.c	2007-06-27 21:27:12 UTC (rev 194)
@@ -1,5 +1,4 @@
-/* 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 +23,7 @@
 |
 |  This product is not supported/written/published by Apple!
 |
-|  $Id: file.c,v 1.188 2006/09/24 06:42:52 jcsjcs Exp $
+|  $Id: file.c 1591 2007-06-26 03:33:25Z tmzullinger $
 */
 
 #ifdef HAVE_CONFIG_H
@@ -45,16 +44,19 @@
 #include "confirmation.h"
 #include "info.h"
 #include "file.h"
+#include "file_convert.h"
 #include "itdb.h"
-#include "md5.h"
+#include "sha1.h"
 #include "misc.h"
 #include "misc_track.h"
 #include "mp3file.h"
 #include "mp4file.h"
 #include "prefs.h"
 #include "wavfile.h"
+#include "oggfile.h"
+#include "flacfile.h"
 
-
+/* The uppercase version of these extensions is tried as well. */
 static const gchar *imageext[] =
 {".jpg", ".jpeg", ".png", ".pbm", ".pgm", ".ppm", ".tif", ".tiff",
  ".gif", NULL};
@@ -95,6 +97,8 @@
     case FILE_TYPE_PLS:
     case FILE_TYPE_IMAGE:
     case FILE_TYPE_DIRECTORY:
+    case FILE_TYPE_OGG:
+    case FILE_TYPE_FLAC:
 	g_free (track);
 	g_return_val_if_reached (NULL);
     }
@@ -110,7 +114,7 @@
  * -jlt
  */
 
-FileType determine_file_type (gchar *path)
+FileType determine_file_type (const gchar *path)
 {
     gchar *path_utf8, *suf;
     FileType type = FILE_TYPE_UNKNOWN;
@@ -138,6 +142,8 @@
 
 	else if (g_strcasecmp (suf, ".m3u") == 0) type = FILE_TYPE_M3U;
 	else if (g_strcasecmp (suf, ".pls") == 0) type = FILE_TYPE_PLS;
+        else if (g_strcasecmp (suf, ".ogg") == 0) type = FILE_TYPE_OGG;
+        else if (g_strcasecmp (suf, ".flac") == 0) type = FILE_TYPE_FLAC;
 
 	else
 	{
@@ -253,6 +259,8 @@
 	case FILE_TYPE_MP4:
 	case FILE_TYPE_MOV:
 	case FILE_TYPE_MPG:
+        case FILE_TYPE_OGG:
+        case FILE_TYPE_FLAC:
 	case FILE_TYPE_IMAGE:
 	case FILE_TYPE_DIRECTORY:
 	    gtkpod_warning (_("'%s' is a not a known playlist file.\n\n"),
@@ -348,6 +356,8 @@
 	case FILE_TYPE_MP4:
 	case FILE_TYPE_MOV:
 	case FILE_TYPE_MPG:
+	case FILE_TYPE_OGG:
+        case FILE_TYPE_FLAC:
 	case FILE_TYPE_IMAGE:
 	    break;
 	}
@@ -769,91 +779,132 @@
 
 
 /* Copy "new" info read from file to an old Track structure. */
-static void copy_new_info (Track *from, Track *to)
+/* Return value: TRUE: at least one item was changed. FALSE: track was
+   unchanged */
+static gboolean copy_new_info (Track *from, Track *to)
 {
     ExtraTrackData *efrom, *eto;
+    T_item item;
+    gboolean changed = FALSE;
 
-    g_return_if_fail (from);
-    g_return_if_fail (to);
+    g_return_val_if_fail (from, FALSE);
+    g_return_val_if_fail (to, FALSE);
     efrom = from->userdata;
     eto = to->userdata;
-    g_return_if_fail (efrom);
-    g_return_if_fail (eto);
+    g_return_val_if_fail (efrom, FALSE);
+    g_return_val_if_fail (eto, FALSE);
 
-    g_free (to->title);
-    to->title = g_strdup (from->title);
+    for (item=0; item<T_ITEM_NUM; ++item)
+    {
+	switch (item)
+	{
+	case T_ALBUM:
+	case T_ARTIST:
+	case T_TITLE:
+	case T_GENRE:
+	case T_COMMENT:
+	case T_COMPOSER:
+	case T_FILETYPE:
+	case T_DESCRIPTION:
+	case T_PODCASTURL:
+	case T_PODCASTRSS:
+	case T_SUBTITLE:
+	case T_TV_SHOW:
+	case T_TV_EPISODE:
+	case T_TV_NETWORK:
+	case T_THUMB_PATH:
+	case T_PC_PATH:
+	case T_ALBUMARTIST:
+	case T_SORT_ARTIST:
+	case T_SORT_TITLE:
+	case T_SORT_ALBUM:
+	case T_SORT_ALBUMARTIST:
+	case T_SORT_COMPOSER:
+	case T_SORT_TVSHOW:
+	case T_YEAR:
+	case T_TRACK_NR:
+	case T_SIZE:
+	case T_TRACKLEN:
+	case T_STARTTIME:
+	case T_STOPTIME:
+	case T_BITRATE:
+	case T_SAMPLERATE:
+	case T_BPM:
+	case T_TIME_ADDED:
+	case T_TIME_MODIFIED:
+	case T_TIME_RELEASED:
+	case T_SOUNDCHECK:
+	case T_CD_NR:
+	case T_COMPILATION:
+	case T_MEDIA_TYPE:
+	case T_SEASON_NR:
+	case T_EPISODE_NR:
+	case T_GROUPING:
+	    changed |= track_copy_item (from, to, item);
+	    break;
+	case T_CATEGORY:
+	    /* not implemented from tags */
+	    break;
+	case T_RATING:
+	case T_REMEMBER_PLAYBACK_POSITION:
+	case T_SKIP_WHEN_SHUFFLING:
+	case T_CHECKED:
+	case T_TIME_PLAYED:
+	case T_IPOD_PATH:
+	case T_ALL:
+	case T_IPOD_ID:
+	case T_TRANSFERRED:
+	case T_PLAYCOUNT:
+	case T_VOLUME:
+	    /* not applicable */
+	    break;
+	case T_ITEM_NUM:
+	    g_return_val_if_reached (FALSE);
+	}
+    }
 
-    g_free (to->artist);
-    to->artist = g_strdup (from->artist);
+    if ((eto->charset == NULL) || (strcmp (efrom->charset, eto->charset) != 0))
+    {
+	g_free (eto->charset);
+	eto->charset = g_strdup (efrom->charset);
+	changed = TRUE;
+    }
 
-    g_free (to->album);
-    to->album = g_strdup (from->album);
+    itdb_artwork_free (to->artwork);
+    to->artwork = itdb_artwork_duplicate (from->artwork);
+    if ((to->artwork_size != from->artwork_size) ||
+	(to->artwork_count != from->artwork_count) ||
+	(to->has_artwork != from->has_artwork))
+    {   /* FIXME -- artwork might have changed nevertheless */
+	changed = TRUE;
+	to->artwork_size = from->artwork_size;
+	to->artwork_count = from->artwork_count;
+	to->has_artwork = from->has_artwork;
+    }
 
-    g_free (to->genre);
-    to->genre = g_strdup (from->genre);
+    if ((to->lyrics_flag != from->lyrics_flag) ||
+	(to->movie_flag != from->movie_flag))
+    {
+	changed = TRUE;
+	to->lyrics_flag = from->lyrics_flag;
+	to->movie_flag = from->movie_flag;
+    }
 
-    g_free (to->composer);
-    to->composer = g_strdup (from->composer);
+    if ((to->pregap != from->pregap) ||
+	(to->postgap != from->postgap) ||
+	(to->samplecount != from->samplecount) ||
+	(to->gapless_data != from->gapless_data) ||
+	(to->gapless_track_flag != from->gapless_track_flag))
+    {
+	changed = TRUE;
+	to->pregap = from->pregap;
+	to->postgap = from->postgap;
+	to->samplecount = from->samplecount;
+	to->gapless_data = from->gapless_data;
+	to->gapless_track_flag = from->gapless_track_flag;
+    }
 
-    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);
-    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);
-    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);
-
-    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;
-    to->cds = from->cds;
-    to->track_nr = from->track_nr;
-    to->tracks = from->tracks;
-    to->bitrate = from->bitrate;
-    to->samplerate = from->samplerate;
-    to->soundcheck = from->soundcheck;
-    eto->mtime = efrom->mtime;
-    to->time_added = from->time_added;
-    to->time_modified = from->time_modified;
-    to->year = from->year;
-    to->compilation = from->compilation;
-    to->mediatype = from->mediatype;
-    to->lyrics_flag = from->lyrics_flag;
-    to->movie_flag = from->movie_flag;
+    return changed;
 }
 
 /* Updates mserv data (rating only) of @track using filename @name to
@@ -982,7 +1033,7 @@
     while (*tplp && !filename_local)
     {
 	gchar *filename_utf8;
-	gchar *fname = get_string_from_template (tr, *tplp, FALSE);
+	gchar *fname = get_string_from_template (tr, *tplp, FALSE, FALSE);
 	if (fname)
 	{
 	    if (strchr (*tplp, '.') != NULL)
@@ -1001,8 +1052,7 @@
 		const gchar **extp = imageext;
 		while (*extp && !filename_local)
 		{
-		    gchar *ffname;
-		    ffname = g_strconcat (fname, *extp, NULL);
+		    gchar *ffname = g_strconcat (fname, *extp, NULL);
 		    filename_utf8 = g_build_filename (dirname, ffname, NULL);
 		    g_free (ffname);
 		    filename_local = charset_from_utf8 (filename_utf8);
@@ -1014,6 +1064,23 @@
 		    }
 		    ++extp;
 		}
+		extp = imageext;
+		while (*extp && !filename_local)
+		{   /* try uppercase version of extension */
+		    gchar *upper_ext = g_ascii_strup (*extp, -1);
+		    gchar *ffname = g_strconcat (fname, upper_ext, NULL);
+		    g_free (upper_ext);
+		    filename_utf8 = g_build_filename (dirname, ffname, NULL);
+		    g_free (ffname);
+		    filename_local = charset_from_utf8 (filename_utf8);
+		    g_free (filename_utf8);
+		    if (!g_file_test (filename_local, G_FILE_TEST_EXISTS))
+		    {
+			g_free (filename_local);
+			filename_local = NULL;
+		    }
+		    ++extp;
+		}
 	    }
 	}
 	g_free (fname);
@@ -1070,26 +1137,49 @@
     case FILE_TYPE_MP3:
 	nti = mp3_get_file_info (name);
 	/* Set mediatype to audio */
-	if (nti) nti->mediatype = 0x00000001;
+	if (nti) nti->mediatype = ITDB_MEDIATYPE_AUDIO;
 	break;
     case FILE_TYPE_M4A:
     case FILE_TYPE_M4P:
-    case FILE_TYPE_M4B:
 	nti = mp4_get_file_info (name);
 	/* Set mediatype to audio */
 	if (nti)
 	{
-	    nti->mediatype = 0x00000001;
+	    nti->mediatype = ITDB_MEDIATYPE_AUDIO;
 	}
 	break;
+    case FILE_TYPE_M4B:
+	nti = mp4_get_file_info (name);
+	/* Set mediatype to audiobook */
+	if (nti)
+	{
+	    nti->mediatype = ITDB_MEDIATYPE_AUDIOBOOK;
+	}
+	break;
     case FILE_TYPE_WAV:
 	nti = wav_get_file_info (name);
 	/* Set mediatype to audio */
 	if (nti)
 	{
-	    nti->mediatype = 0x00000001;
+	    nti->mediatype = ITDB_MEDIATYPE_AUDIO;
 	}
 	break;
+    case FILE_TYPE_OGG:
+        nti = ogg_get_file_info (name);
+        /* Set unk208 to audio */
+        if (nti)
+        {
+            nti->mediatype = ITDB_MEDIATYPE_AUDIO;
+        }
+        break;
+    case FILE_TYPE_FLAC:
+        nti = flac_get_file_info (name);
+        /* Set unk208 to audio */
+        if (nti)
+        {
+            nti->mediatype = ITDB_MEDIATYPE_AUDIO;
+        }
+        break;
     case FILE_TYPE_M4V:
     case FILE_TYPE_MP4:
 	/* I don't know if .m4v and .mp4 can simply be handled like
@@ -1099,7 +1189,7 @@
 	/* Set mediatype to video */
 	if (nti)
 	{
-	    nti->mediatype = 0x00000002;
+	    nti->mediatype = ITDB_MEDIATYPE_MOVIE;
 	    nti->movie_flag = 0x01;
 	}	
 	break;
@@ -1110,7 +1200,7 @@
 	/* Set mediatype to video */
 	if (nti)
 	{
-	    nti->mediatype = 0x00000002;
+	    nti->mediatype = ITDB_MEDIATYPE_MOVIE;
 	    nti->movie_flag = 0x01;
 	}
 	break;
@@ -1163,15 +1253,22 @@
 	}
 
 	/* 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 = itdb_time_get_mac_time ();
+	nti->time_modified = enti->mtime;
+	/* Set added date to *now* (unless orig_track is present) */
+	if (orig_track)
+	{
+	    nti->time_added = orig_track->time_added;
+	}
+	else
+	{
+	    nti->time_added = time (NULL);
+	}
 
 	/* Make sure all strings are initialized -- that way we don't
 	   have to worry about it when we are handling the
 	   strings. Also, validate_entries() will fill in the utf16
 	   strings if that hasn't already been done. */
-	/* exception: md5_hash, charset and hostname: these may be
+	/* exception: sha1_hash, charset and hostname: these may be
 	 * NULL. */
 
 	gp_track_validate_entries (nti);
@@ -1179,13 +1276,11 @@
 	if (orig_track)
 	{ /* we need to copy all information over to the original
 	   * track */
-	    guint32 time_added = orig_track->time_added;
+	    ExtraTrackData *eorigtr=orig_track->userdata;
 
-	    copy_new_info (nti, orig_track);
+	    g_return_val_if_fail (eorigtr, NULL);
 
-	    /* restore time_added */
-	    if (time_added != 0)
-		orig_track->time_added = time_added;
+	    eorigtr->tchanged = copy_new_info (nti, orig_track);
 
 	    track = orig_track;
 	    itdb_track_free (nti);
@@ -1529,7 +1624,7 @@
    "gp_duplicate_remove (NULL, (void *)-1)"*/
 void update_track_from_file (iTunesDB *itdb, Track *track)
 {
-    ExtraTrackData *etr;
+    ExtraTrackData *oetr;
     Track *oldtrack;
     gchar *prefs_charset = NULL;
     gchar *trackpath = NULL;
@@ -1538,27 +1633,27 @@
 
     g_return_if_fail (itdb);
     g_return_if_fail (track);
-    etr = track->userdata;
-    g_return_if_fail (etr);
+    oetr = track->userdata;
+    g_return_if_fail (oetr);
     /* remember size of track on iPod */
     if (track->transferred) oldsize = track->size;
     else                    oldsize = 0;
 
     /* remember if charset was set */
-    if (etr->charset)  charset_set = TRUE;
+    if (oetr->charset)  charset_set = TRUE;
     else               charset_set = FALSE;
 
     if (!prefs_get_int("update_charset") && charset_set)
     {   /* we should use the initial charset for the update */
 	prefs_charset = prefs_get_string("charset");
 	/* use the charset used when first importing the track */
-	prefs_set_string("charset", etr->charset);
+	prefs_set_string("charset", oetr->charset);
     }
 
     trackpath = get_file_name_from_source (track, SOURCE_PREFER_LOCAL);
 
     
-    if (!(etr->pc_path_locale && *etr->pc_path_locale))
+    if (!(oetr->pc_path_locale && *oetr->pc_path_locale))
     { /* no path available */
 	if (trackpath)
 	{
@@ -1576,7 +1671,7 @@
 	    }
 	}
     }
-    else if (!g_file_test (etr->pc_path_locale, G_FILE_TEST_EXISTS))
+    else if (!g_file_test (oetr->pc_path_locale, G_FILE_TEST_EXISTS))
     {
 	if (trackpath)
 	{
@@ -1596,59 +1691,89 @@
     }
 
     if (trackpath && get_track_info_from_file (trackpath, track))
-    { /* update successfull */
-	/* remove track from md5 hash and reinsert it
+    { /* update successful */
+	ExtraTrackData *netr = track->userdata;
+
+	/* remove track from sha1 hash and reinsert it
 	   (hash value may have changed!) */
-	gchar *name_on_ipod;
-	gchar *oldhash = etr->md5_hash;
+	gchar *oldhash = oetr->sha1_hash;
 
-	md5_track_remove (track);
+	sha1_track_remove (track);
 	/* need to remove the old value manually! */
-	etr->md5_hash = NULL;
-	oldtrack = md5_track_exists_insert (itdb, track);
+	oetr->sha1_hash = NULL;
+	oldtrack = sha1_track_exists_insert (itdb, track);
 	if (oldtrack) { /* track exists, remove old track
 			  and register the new version */
-	    md5_track_remove (oldtrack);
+	    sha1_track_remove (oldtrack);
 	    gp_duplicate_remove (track, oldtrack);
-	    md5_track_exists_insert (itdb, track);
+	    sha1_track_exists_insert (itdb, track);
 	}
-	/* 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 */
-	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);
+
+	if (itdb->usertype & GP_ITDB_TYPE_IPOD)
+	{   /* track may have to be copied to iPod on next export */
+	    gchar *name_on_ipod;
+	    gboolean transfer_again = FALSE;
+
+	    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 && oetr->sha1_hash)
+		{   /* do we really have to copy the track again? */
+		    if (strcmp (oldhash, oetr->sha1_hash) != 0)
+		    {
+			transfer_again = TRUE;
+		    }
 		}
+		else
+		{   /* no hash available -- copy! */
+		    transfer_again = TRUE;
+		}
 	    }
 	    else
-	    {   /* no hash available -- copy! */
-		track->transferred = FALSE;
+	    {
 		data_changed (itdb);
 	    }
+
+	    if (transfer_again)
+	    {   /* We need to copy the track back to the iPod. That's done
+		   marking a copy of the original track for deletion and
+		   then adding the original track to the
+		   conversion/transfer list */
+		Track *new_track = gp_track_new ();
+		ExtraTrackData *new_etr = new_track->userdata;
+		g_return_if_fail (new_etr);
+
+		new_track->size = oldsize;
+		new_track->ipod_path = track->ipod_path;
+		track->ipod_path = g_strdup ("");
+		track->transferred = FALSE;
+
+		/* cancel conversion/transfer of track */
+		file_convert_cancel_track (track);
+		/* mark the track for deletion on the ipod */
+		mark_track_for_deletion (itdb, new_track);
+		/* reschedule conversion/transfer of track */
+		file_convert_add_track (track);
+
+		netr->tchanged = TRUE;
+	    }
+
+	    g_free (name_on_ipod);
 	}
-	else
+
+	/* notify display model */
+	if (netr->tchanged)
 	{
+	    pm_track_changed (track);
 	    data_changed (itdb);
+	    netr->tchanged = FALSE;
 	}
-	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);
         g_free (oldhash);
     }
     else if (trackpath)
     { /* update not successful -- log this track for later display */
-	display_non_updated (track, _("update failed (format no supported?)"));
+	display_non_updated (track, _("update failed (format not supported?)"));
     }
 
     if (!prefs_get_int("update_charset") && charset_set)
@@ -1680,7 +1805,7 @@
    position in the track view */
 gboolean add_track_by_filename (iTunesDB *itdb, gchar *fname,
 				Playlist *plitem, gboolean descend,
-			       AddTrackFunc addtrackfunc, gpointer data)
+				AddTrackFunc addtrackfunc, gpointer data)
 {
   static gint count = 0; /* do a gtkpod_tracks_statusbar_update() every
 			    10 tracks */
@@ -1720,6 +1845,8 @@
   case FILE_TYPE_MP4:
   case FILE_TYPE_MOV:
   case FILE_TYPE_MPG:
+  case FILE_TYPE_OGG:
+  case FILE_TYPE_FLAC:
   case FILE_TYPE_IMAGE:
   case FILE_TYPE_UNKNOWN:
   case FILE_TYPE_DIRECTORY:
@@ -1815,7 +1942,7 @@
 	      etr->hostname = g_strdup (str);
 	  }
 	  /* add_track may return pointer to a different track if an
-	     identical one (MD5 checksum) was found */
+	     identical one (SHA1 checksum) was found */
 	  added_track = gp_track_add (itdb, track);
 	  g_return_val_if_fail (added_track, FALSE);
 
@@ -1835,7 +1962,9 @@
 	      }
 	  }
 	  else
-	  {   /* add track to master playlist if it wasn't a
+	  {
+#if 0 /* initially iTunes didn't add podcasts to the MPL */
+	      /* add track to master playlist if it wasn't a
 	       * duplicate and plitem is not the podcasts playlist
 	       */
 	      if (added_track == track)
@@ -1843,6 +1972,12 @@
 		  if (!itdb_playlist_is_podcasts (plitem))
 		      gp_playlist_add_track (mpl, added_track, TRUE);
 	      }
+#else
+	      if (added_track == track)
+	      {
+		  gp_playlist_add_track (mpl, added_track, TRUE);
+	      }
+#endif
 	      /* add track to specified playlist -- unless adding
 	       * to podcasts list and track already exists there */
 	      if (itdb_playlist_is_podcasts (plitem) &&
@@ -1905,6 +2040,10 @@
 	return mp4_write_file_info (name, track);
     case FILE_TYPE_WAV:
 	return wav_write_file_info (name, track);
+    case FILE_TYPE_OGG:
+        return ogg_write_file_info (name, track);
+    case FILE_TYPE_FLAC:
+        return flac_write_file_info (name, track);
     case FILE_TYPE_M4V:
     case FILE_TYPE_MP4:
     case FILE_TYPE_MOV:
@@ -1981,14 +2120,14 @@
 	}
 	g_free (ipod_fullpath);
     }
-    /* remove track from md5 hash and reinsert it (hash value has changed!) */
-    md5_track_remove (track);
-    C_FREE (etr->md5_hash);  /* need to remove the old value manually! */
-    oldtrack = md5_track_exists_insert (itdb, track);
+    /* remove track from sha1 hash and reinsert it (hash value has changed!) */
+    sha1_track_remove (track);
+    C_FREE (etr->sha1_hash);  /* need to remove the old value manually! */
+    oldtrack = sha1_track_exists_insert (itdb, track);
     if (oldtrack) { /* track exists, remove and register the new version */
-	md5_track_remove (oldtrack);
+	sha1_track_remove (oldtrack);
 	gp_duplicate_remove (track, oldtrack);
-	md5_track_exists_insert (itdb, track);
+	sha1_track_exists_insert (itdb, track);
     }
 
     if (!prefs_get_int("write_charset") && track_charset_set)
@@ -2016,7 +2155,12 @@
     case SOURCE_PREFER_LOCAL:
 	result = get_file_name_from_source (track, SOURCE_LOCAL);
 	if (!result)
-	    result = get_file_name_from_source (track, SOURCE_IPOD);
+	{
+	    if (track->itdb && (track->itdb->usertype & GP_ITDB_TYPE_IPOD))
+	    {
+		result = get_file_name_from_source (track, SOURCE_IPOD);
+	    }
+	}
 	break;
     case SOURCE_PREFER_IPOD:
 	result = get_file_name_from_source (track, SOURCE_IPOD);
@@ -2054,7 +2198,7 @@
    ------------------------------------------------------------ */
 
 /* Read the ~/.gtkpod/offline_playcount file and adjust the
-   playcounts. The tracks will first be matched by their md5 sum, if
+   playcounts. The tracks will first be matched by their sha1 sum, if
    that fails, by their filename.
    If tracks could not be matched, the user will be queried whether to
    forget about them or write them back into the offline_playcount
@@ -2091,7 +2235,7 @@
 	while (fgets (buf, 2*PATH_MAX, file))
 	{
 	    gchar *buf_utf8 = charset_to_utf8 (buf);
-	    gchar *md5=NULL;
+	    gchar *sha1=NULL;
 	    gchar *filename=NULL;
 	    gchar *ptr1, *ptr2;
 	    /* skip strings that do not start with "PLCT:" */
@@ -2100,9 +2244,9 @@
 		gtkpod_warning (_("Malformed line in '%s': %s\n"), offlplyc, buf);
 		goto cont;
 	    }
-	    /* start of MD5 string */
+	    /* start of SHA1 string */
 	    ptr1 = buf + strlen (SOCKET_PLYC);
-	    /* end of MD5 string */
+	    /* end of SHA1 string */
 	    ptr2 = strchr (ptr1, ' ');
 	    if (ptr2 == NULL)
 	    {   /* error! */
@@ -2110,7 +2254,7 @@
 				offlplyc, buf_utf8);
 		goto cont;
 	    }
-	    if (ptr1 != ptr2)    md5 = g_strndup (ptr1, ptr2-ptr1);
+	    if (ptr1 != ptr2)    sha1 = g_strndup (ptr1, ptr2-ptr1);
 	    /* start of filename */
 	    ptr1 = ptr2 + 1;
 	    /* end of filename string */
@@ -2131,7 +2275,7 @@
 				offlplyc, buf_utf8);
 		goto cont;
 	    }
-	    if (gp_increase_playcount (md5, filename, 1) == FALSE)
+	    if (gp_increase_playcount (sha1, filename, 1) == FALSE)
 	    {   /* didn't find the track -> store */
 		gchar *filename_utf8 = charset_to_utf8 (filename);
 /* 		if (gstr->len == 0) */
@@ -2145,7 +2289,7 @@
 	    }
 	  cont:
 	    g_free (buf_utf8);
-	    g_free (md5);
+	    g_free (sha1);
 	    g_free (filename);
 	}
 
@@ -2221,6 +2365,8 @@
 	case FILE_TYPE_M4B:
 	    result = mp4_read_soundcheck (path, track);
 	    break;
+        case FILE_TYPE_OGG: /* FIXME */
+        case FILE_TYPE_FLAC: /* FIXME */
 	case FILE_TYPE_WAV: /* FIXME */
 	case FILE_TYPE_M4V:
 	case FILE_TYPE_MP4:

Modified: gtkpod/trunk/src/file.h
===================================================================
--- gtkpod/trunk/src/file.h	2007-06-27 20:59:02 UTC (rev 193)
+++ gtkpod/trunk/src/file.h	2007-06-27 21:27:12 UTC (rev 194)
@@ -1,4 +1,4 @@
-/* Time-stamp: <2006-09-01 22:00:03 jcs>
+/* Time-stamp: <2007-05-06 20:20:31 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.55 2006/09/01 13:18:42 jcsjcs Exp $
+|  $Id: file.h 1065 2007-05-06 14:16:17Z jcsjcs $
 */
 
 #ifndef __FILE_H__
@@ -53,23 +53,29 @@
     FILE_TYPE_MOV,
     FILE_TYPE_MPG,
     FILE_TYPE_M3U,
+    FILE_TYPE_OGG,
+    FILE_TYPE_FLAC,
     FILE_TYPE_PLS,
     FILE_TYPE_IMAGE,
     FILE_TYPE_DIRECTORY
 } FileType;
 
+
+/* Don't change the order of this enum -- when exporting playlists the
+   file requester depends on having these in order because the toggle
+   buttons are arranged that way */
 typedef enum
 {
     SOURCE_PREFER_LOCAL = 0,
-    SOURCE_PREFER_IPOD,
     SOURCE_LOCAL,
-    SOURCE_IPOD
+    SOURCE_IPOD,
+    SOURCE_PREFER_IPOD
 } FileSource;
 
 
 typedef void (*AddTrackFunc)(Playlist *plitem, Track *track, gpointer data);
 
-FileType determine_file_type(gchar *path);
+FileType determine_file_type (const gchar *path);
 gboolean add_track_by_filename (iTunesDB *itdb, gchar *name,
 				Playlist *plitem, gboolean descend,
 				AddTrackFunc addtrackfunc, gpointer data);
@@ -91,7 +97,6 @@
 			  const gchar *mp, const gchar *name_off,
 			  const gchar *name_loc);
 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);
@@ -102,7 +107,6 @@
 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);
-void unmark_track_for_deletion (iTunesDB *itdb, Track *track);
 void gp_info_deleted_tracks (iTunesDB *itdb,
 			     gdouble *size, guint32 *num);
 void update_charset_info (Track *track);

Copied: gtkpod/trunk/src/file_convert.c (from rev 193, gtkpod/branches/upstream/current/src/file_convert.c)
===================================================================
--- gtkpod/trunk/src/file_convert.c	                        (rev 0)
+++ gtkpod/trunk/src/file_convert.c	2007-06-27 21:27:12 UTC (rev 194)
@@ -0,0 +1,3194 @@
+/*
+|  File conversion started by Simon Naunton <snaunton gmail.com> in 2007
+|
+|  Copyright (C) 2002-2007 Jorg Schuler <jcsjcs at users.sourceforge.net>
+|  Part of the gtkpod project.
+|
+|  URL: http://gtkpod.sourceforge.net/
+|  URL: http://www.gtkpod.org
+|
+|  This program is free software; you can redistribute it and/or modify
+|  it under the terms of the GNU General Public License as published by
+|  the Free Software Foundation; either version 2 of the License, or
+|  (at your option) any later version.
+|
+|  This program is distributed in the hope that it will be useful,
+|  but WITHOUT ANY WARRANTY; without even the implied warranty of
+|  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+|  GNU General Public License for more details.
+|
+|  You should have received a copy of the GNU General Public License
+|  along with this program; if not, write to the Free Software
+|  Foundation, Inc., 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: file_convert.c 1577 2007-06-23 02:07:43Z jcsjcs $
+*/
+
+
+#ifdef HAVE_CONFIG_H
+#   include <config.h>
+#endif
+
+#include "display_itdb.h"
+#include "file_convert.h"
+#include "info.h"
+#include "misc.h"
+#include "misc_track.h"
+#include "prefs.h"
+#include <errno.h>
+#include <glib/gstdio.h>
+#include <signal.h>
+#include <string.h>
+#include <sys/types.h>
+#include <sys/types.h>
+#include <sys/wait.h>
+#include <unistd.h>
+
+#undef DEBUG_CONV
+#ifdef DEBUG_CONV
+#   define _TO_STR(x) #x
+#   define TO_STR(x) _TO_STR(x)
+#   define debug(...) do { fprintf(stderr,  __FILE__ ":" TO_STR(__LINE__) ":" __VA_ARGS__); } while(0)
+#else
+#   define debug(...)
+#endif
+
+
+/* ----------------------------------------------------------------
+ *
+ * Functions for threaded background conversion
+ *
+ * ---------------------------------------------------------------- */
+
+/* How does it work?
+
+   If a track is added to an iTunesDB with gp_track_add(), it is
+   passed on file_convert_add_track().
+
+   This function determines if conversion is needed for the track and
+   then places the track either into the "scheduled" or "finished"
+   lists. If conversion is needed because the type of track is not
+   supported directly by the iPod, the track is added to the "failed"
+   list.
+
+   A timeout function examines the "scheduled" list and starts new
+   conversion threads as long as the maximum number of allowed threads
+   hasn't been reached and there are still tracks in the "scheduled"
+   list.
+
+   IO-Output of tracks in the processing, failed, and converted list
+   is redirected to a multi-thread log window. Once a track appears in
+   the "finished" or "failed" lists, the redirection IO-channel will
+   be closed.
+
+   The conversion threads continue processing tracks in the
+   "scheduled" list as long as there are tracks left in the
+   "scheduled" list and the maximum number of threads is not
+   exceeded. If either is condition is not met, the thread will
+   terminate after processing of the current track has
+   finished. Tracks being processed are moved to the "processing"
+   list. If the conversion was finished successfully, they are moved
+   to the "converted" list, in case of failure to the "failed" list.
+
+   Tracks that are removed from an iTunesDB with gp_track_remove() are
+   propagated to file_convert_cancel_track() and flagged "invalid" in
+   all lists. If currently being processed, the conversion process is
+   kill()ed.
+
+   If a whole iTunesDB is removed from the system, the event is
+   propagated to file_convert_cancel_itdb() and all tracks in that
+   iTunesDB are treated as explained for file_convert_cancel_track()
+   above.
+
+   Conversion of tracks is done in a FIFO fashion. Preference can be
+   given to a specific iTunesDB with file_convert_itdb_first(), which
+   should be called when the user wants write changes to an iPod or
+   eject an iPod, so that conversion of the tracks needed next are
+   processed next.
+*/
+
+
+/* Preferences keys */
+const gchar *FILE_CONVERT_CACHEDIR = "file_convert_cachedir";
+const gchar *FILE_CONVERT_MAXDIRSIZE = "file_convert_maxdirsize";
+const gchar *FILE_CONVERT_TEMPLATE = "file_convert_template";
+const gchar *FILE_CONVERT_MAX_THREADS_NUM = "file_convert_max_threads_num";
+const gchar *FILE_CONVERT_DISPLAY_LOG = "file_convert_display_log";
+const gchar *FILE_CONVERT_LOG_SIZE_X = "file_convert_log_size.x";
+const gchar *FILE_CONVERT_LOG_SIZE_Y = "file_convert_log_size.y";
+const gchar *FILE_CONVERT_BACKGROUND_TRANSFER = "file_convert_background_transfer";
+
+typedef struct _Conversion Conversion;
+typedef struct _ConvTrack ConvTrack;
+typedef struct _TransferItdb TransferItdb;
+
+static gboolean conversion_scheduler (gpointer data);
+static void conversion_update_default_sizes (Conversion *conv);
+static gboolean conversion_log_window_delete (Conversion *conv);
+static gpointer conversion_thread (gpointer data);
+static gpointer conversion_update_dirsize (gpointer data);
+static gpointer conversion_prune_dir (gpointer data);
+static void conversion_convtrack_free (ConvTrack *ctr);
+static gchar *conversion_get_fname_extension (Conversion *conv, ConvTrack *ctr);
+static gboolean conversion_setup_cachedir (Conversion *conv);
+static void conversion_log_add_pages (Conversion *conv, gint threads);
+static gboolean conversion_add_track (Conversion *conv, Track *track);
+static void conversion_prefs_changed (Conversion *conv);
+static void conversion_itdb_first (Conversion *conv, iTunesDB *itdb);
+static void conversion_cancel_itdb (Conversion *conv, iTunesDB *itdb);
+static void conversion_cancel_track (Conversion *conv, Track *track);
+static void conversion_continue (Conversion *conv);
+
+static TransferItdb *transfer_get_tri (Conversion *conv, iTunesDB *itdb);
+static void transfer_free_transfer_itdb (TransferItdb *tri);
+static gpointer transfer_thread (gpointer data);
+static GList *transfer_get_failed_tracks (Conversion *conv, iTunesDB *itdb);
+static FileTransferStatus transfer_get_status (Conversion *conv,
+					       iTunesDB *itdb,
+					       gint *to_convert_num,
+					       gint *converting_num,
+					       gint *to_transfer_num,
+					       gint *transferred_num,
+					       gint *failed_num);
+static void transfer_ack_itdb (Conversion *conv, iTunesDB *itdb);
+static void transfer_continue (Conversion *conv, iTunesDB *itdb);
+static void transfer_activate (Conversion *conv, iTunesDB *itdb, gboolean active);
+static void transfer_reset (Conversion *conv, iTunesDB *itdb);
+static void transfer_reschedule (Conversion *conv, iTunesDB *itdb);
+
+struct _Conversion
+{
+    GMutex *mutex;          /* shared lock                              */
+    GList  *scheduled;      /* tracks scheduled for conversion          */
+    GList  *processing;     /* tracks currently being converted         */
+    GList  *failed;         /* tracks with failed conversion            */
+    GList  *converted;      /* tracks successfully converted but not
+			       yet unscheduled                          */
+    GList  *finished;       /* tracks unscheduled but not yet
+			       transferred */
+    GCond  *finished_cond;  /* signals if a new track is added to the
+			       finished list                            */
+    gchar  *cachedir;       /* directory for converted files            */
+    gchar  *template;       /* name template to use for converted files */
+    gint   max_threads_num; /* maximum number of allowed threads        */
+    GList  *threads;        /* list of threads                          */
+    gint   threads_num;     /* number of threads currently running      */
+    gboolean conversion_force;    /* force a new thread to start even if
+				     the dirsize is too large           */
+    gint64 max_dirsize;     /* maximum size of cache directory in bytes */
+    gint64  dirsize;        /* current size of cache directory in bytes */
+    gboolean dirsize_in_progress; /* currently determining dirsize      */
+    GCond  *dirsize_cond;   /* signal when dirsize has been updated     */
+    gboolean prune_in_progress;   /* currently pruning directory        */
+    GCond  *prune_cond;     /* signal when dir has been pruned          */
+    gboolean force_prune_in_progress; /* do another prune right after
+					 the current process finishes   */
+    guint  timeout_id;
+    /* data for log display */
+    GtkWidget *log_window;  /* display log window                       */
+    gboolean log_window_hidden;   /* whether the window was closed      */
+    gboolean log_window_shown;    /* whether the window was closed      */
+    gint log_window_posx;   /* last x-position of log window            */
+    gint log_window_posy;   /* last x-position of log window            */
+    GtkWidget *notebook;    /* notebook                                 */
+    GList *textviews;       /* list with pages currently added          */
+    GList *pages;           /* list with pages currently added          */
+    GtkStatusbar *log_statusbar;  /* statusbar of log display           */
+    guint log_context_id;   /* context ID for statusbar                 */
+    /* data for background transfer */
+    GList *transfer_itdbs;  /* list with TransferItdbs for background
+			       transfer                                 */
+};
+
+struct _ConvTrack
+{
+    gboolean valid;         /* TRUE if orig_track is valid.             */
+    gchar *orig_file;       /* original filename of unconverted track   */
+    gchar *converted_file;  /* filename of converted track              */
+    gint32 converted_size;  /* size of converted file                   */
+    gchar *conversion_cmd;  /* command to be used for conversion        */
+    gboolean must_convert;  /* is conversion required for the iPod?     */
+    gchar *errormessage;    /* error message if any                     */
+    gchar *fname_root;      /* filename root of converted file          */
+    gchar *fname_extension; /* filename extension of converted file     */
+    GPid  pid;              /* PID of child doing the conversion        */
+    gint  stderr;           /* stderr of child doing the conversion     */
+    Track *track;           /* for reference, don't access inside threads! */
+    iTunesDB *itdb;         /* for reference, don't access inside threads! */
+    gint  threadnum;        /* number of thread working on this track   */
+    Conversion *conv;       /* pointer back to the conversion struct    */
+    GIOChannel *gio_channel;
+    guint source_id;
+    gchar *artist;
+    gchar *album;
+    gchar *track_nr;
+    gchar *title;
+    gchar *genre;
+    gchar *year;
+    gchar *comment;
+    /* needed for transfering */
+    gchar *dest_filename;
+    gchar *mountpoint;
+};
+
+
+struct _TransferItdb
+{
+    gboolean valid;                /* TRUE if still valid                  */
+    iTunesDB *itdb;                /* for reference                        */
+    Conversion *conv;              /* pointer back to conv                 */
+    gboolean transfer;             /* OK to transfer in the background?    */
+    FileTransferStatus status;     /* current status                       */
+    GThread *thread;               /* thread working on transfer           */
+    GList  *scheduled;             /* ConvTracks scheduled for transfer    */
+    GList  *processing;            /* ConvTracks currently transferring    */
+    GList  *transferred;           /* ConvTracks copied to the iPod        */
+    GList  *finished;              /* ConvTracks copied to the iPod        */
+    GList  *failed;                /* ConvTracks failed to transfer/convert*/
+};
+
+
+enum 
+{
+    CONV_DIRSIZE_INVALID = -1,      /* dirsize not valid */
+};
+
+static Conversion *conversion;
+
+
+/* Set up conversion infrastructure. Must only be called once. */
+void file_convert_init ()
+{
+    GladeXML *log_xml;
+    GtkWidget *vbox;
+
+    g_return_if_fail (conversion==NULL);
+
+    conversion = g_new0 (Conversion, 1);
+    conversion->mutex = g_mutex_new ();
+
+    conversion->finished_cond = g_cond_new ();
+    conversion->dirsize_cond = g_cond_new ();
+    conversion->prune_cond = g_cond_new ();
+    conversion_setup_cachedir (conversion);
+
+    if (!prefs_get_string_value (FILE_CONVERT_TEMPLATE, NULL))
+    {
+	prefs_set_string (FILE_CONVERT_TEMPLATE, "%A/%t_%T");
+    }
+
+    if (!prefs_get_string_value (FILE_CONVERT_DISPLAY_LOG, NULL))
+    {
+	prefs_set_int (FILE_CONVERT_DISPLAY_LOG, TRUE);
+    }
+
+    if (!prefs_get_string_value (FILE_CONVERT_BACKGROUND_TRANSFER, NULL))
+    {
+	prefs_set_int (FILE_CONVERT_BACKGROUND_TRANSFER, TRUE);
+    }
+
+    conversion->dirsize = CONV_DIRSIZE_INVALID;
+
+    /* setup log window */
+    log_xml = glade_xml_new (xml_file, "conversion_log", NULL);
+    conversion->log_window = gtkpod_xml_get_widget (log_xml, "conversion_log");
+    gtk_window_set_default_size (GTK_WINDOW (conversion->log_window),
+				 prefs_get_int (FILE_CONVERT_LOG_SIZE_X),
+				 prefs_get_int (FILE_CONVERT_LOG_SIZE_Y));
+    g_signal_connect_swapped (GTK_OBJECT (conversion->log_window), "delete-event",
+			      G_CALLBACK (conversion_log_window_delete),
+			      conversion);
+    vbox = gtkpod_xml_get_widget (log_xml, "conversion_vbox");
+    conversion->notebook = gtk_notebook_new ();
+    gtk_widget_show (conversion->notebook);
+    gtk_box_pack_start (GTK_BOX (vbox), conversion->notebook, TRUE, TRUE, 0);
+    conversion->log_window_posx = G_MININT;
+    conversion->log_window_posy = G_MININT;
+    conversion->log_statusbar = GTK_STATUSBAR (
+	gtkpod_xml_get_widget (log_xml,
+			       "conversion_statusbar"));
+    conversion->log_context_id = gtk_statusbar_get_context_id (
+	conversion->log_statusbar,
+	_("Summary status of conversion processes"));
+    conversion_log_add_pages (conversion, 1);
+
+    /* initialize values from the preferences */
+    file_convert_prefs_changed ();
+
+    /* start timeout function for the scheduler */
+    conversion->timeout_id = g_timeout_add (100,   /* every 100 ms */
+					    conversion_scheduler,
+					    conversion);
+}
+
+
+/* Shut down conversion infrastructure */
+void file_convert_shutdown ()
+{
+    g_return_if_fail (conversion);
+
+    /* nothing to do so far */
+
+    /* in other words: not sure how we can shut this down... */
+}
+
+
+/* This is called just before gtkpod closes down */
+void file_convert_update_default_sizes ()
+{
+    conversion_update_default_sizes (conversion);
+}
+
+
+/* Call this function each time the preferences have been updated */
+void file_convert_prefs_changed ()
+{
+    conversion_prefs_changed (conversion);
+}
+
+
+/* Add @track to the list of tracks to be converted if conversion is
+ * necessary.
+ *
+ * Return value: FALSE if an error occured, TRUE otherwise
+ */
+gboolean file_convert_add_track (Track *track)
+{
+    return conversion_add_track (conversion, track);
+}
+
+
+/* Reorder the scheduled list so that tracks in @itdb are converted first */
+void file_convert_itdb_first (iTunesDB *itdb)
+{
+    conversion_itdb_first (conversion, itdb);
+}
+
+
+/* Cancel conversion for all tracks of @itdb */
+void file_convert_cancel_itdb (iTunesDB *itdb)
+{
+    conversion_cancel_itdb (conversion, itdb);
+}
+
+
+/* Cancel conversion for @tracks */
+void file_convert_cancel_track (Track *track)
+{
+    conversion_cancel_track (conversion, track);
+}
+
+void file_convert_continue ()
+{
+    conversion_continue (conversion);
+}
+
+
+
+/* ----------------------------------------------------------------
+
+   from here on file_transfer_... functions
+
+   ---------------------------------------------------------------- */
+
+/* return current status of transfer process */
+FileTransferStatus file_transfer_get_status (iTunesDB *itdb,
+					     gint *to_convert_num,
+					     gint *converting_num,
+					     gint *to_transfer_num,
+					     gint *transferred_num,
+					     gint *failed_num)
+{
+    return transfer_get_status (conversion, itdb, 
+				to_convert_num, converting_num, 
+				to_transfer_num, transferred_num, failed_num);
+}
+
+/* This has to be called after all tracks have been transferred and the
+   iTunesDB has been written, otherwise the transferred tracks will be
+   removed again when calling file_convert_cancel_itdb */
+void file_transfer_ack_itdb (iTunesDB *itdb)
+{
+    transfer_ack_itdb (conversion, itdb);
+}
+
+/* Call this to force transfer to continue in case of a
+ * FILE_TRANSFER_DISK_FULL status. Of course, you should make sure
+ * additional space is available. */
+void file_transfer_continue (iTunesDB *itdb)
+{
+    transfer_continue (conversion, itdb);
+}
+
+
+/* Call this to make sure the transfer process is active independently
+   from the settings in the preferences */
+void file_transfer_activate (iTunesDB *itdb, gboolean active)
+{
+    transfer_activate (conversion, itdb, active);
+}
+
+/* Call this to set the transfer process to on/off as determined by
+ * the preferences */
+void file_transfer_reset (iTunesDB *itdb)
+{
+    transfer_reset (conversion, itdb);
+}
+
+
+/* Get a list of tracks (Track *) that failed either transfer or
+   conversion */
+GList *file_transfer_get_failed_tracks (iTunesDB *itdb)
+{
+    return transfer_get_failed_tracks (conversion, itdb);
+}
+
+
+/* Reschedule all tracks for conversion/transfer that have previously
+   failed conversion/transfer */
+void file_transfer_reschedule (iTunesDB *itdb)
+{
+    transfer_reschedule (conversion, itdb);
+}
+
+
+
+/* ----------------------------------------------------------------
+
+   from here on down only static functions
+
+   ---------------------------------------------------------------- */
+
+
+/* Update the prefs with the current size of the log window */
+static void conversion_update_default_sizes (Conversion *conv)
+{
+    gint defx, defy;
+    
+    g_return_if_fail (conv && conv->log_window);
+
+    g_mutex_lock (conv->mutex);
+
+    gtk_window_get_size (GTK_WINDOW (conv->log_window), &defx, &defy);
+    prefs_set_int(FILE_CONVERT_LOG_SIZE_X, defx);
+    prefs_set_int(FILE_CONVERT_LOG_SIZE_Y, defy);
+
+    g_mutex_unlock (conv->mutex);
+}
+
+
+
+/* used to show/hide the log window and adjust the View->menu
+   items. g_mutex_lock(conv->mutex) before calling. Used in
+   conversion_log_window_delete() and conversion_prefs_changed(). */
+static void conversion_display_hide_log_window (Conversion *conv)
+{
+    GtkWidget *mi;
+    /* show display log if it was previously hidden and should be
+       shown again */
+    mi = gtkpod_xml_get_widget (main_window_xml, "conversion_log");
+    if (prefs_get_int (FILE_CONVERT_DISPLAY_LOG))
+    {
+	if (conv->log_window_hidden && !conv->log_window_shown)
+	{
+	    gtk_widget_show (conv->log_window);
+	    if (conv->log_window_posx != G_MININT)
+	    {
+		gtk_window_move (GTK_WINDOW (conv->log_window),
+				 conv->log_window_posx,
+				 conv->log_window_posy);
+	    }
+	}
+	gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM (mi), TRUE);
+	conv->log_window_shown = TRUE;
+    }
+    else
+    {
+	if (conv->log_window_shown)
+	{   /* window has previously been shown */
+	    gint posx, posy;
+	    gtk_window_get_position (GTK_WINDOW (conv->log_window),
+				     &posx, &posy);
+	    conv->log_window_posx = posx;
+	    conv->log_window_posy = posy;
+	}
+	conv->log_window_shown = FALSE;
+	conv->log_window_hidden = TRUE;
+	gtk_widget_hide (conv->log_window);
+	gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM (mi), FALSE);
+    }
+}
+
+
+/* Signal when user tries to close the log window */
+static gboolean conversion_log_window_delete (Conversion *conv)
+{
+    g_return_val_if_fail (conv, TRUE);
+
+    g_mutex_lock (conv->mutex);
+ 
+    prefs_set_int (FILE_CONVERT_DISPLAY_LOG, FALSE);
+    conversion_display_hide_log_window (conv);
+
+    g_mutex_unlock (conv->mutex);
+
+    return TRUE; /* don't close window -- it will be hidden instead by
+		  * conversion_display_hid_log_window() */
+}
+
+
+/* set the labels of the notebook of the log window. If required
+ * 'g_mutex_lock (conv->mutex)' before calling this function. */
+static void conversion_log_set_status (Conversion *conv)
+{
+    GList *glpage, *glthread;
+    gchar *buf;
+
+    g_return_if_fail (conv);
+
+    /* Set tab label text to active/inactive */
+    glthread = conv->threads;
+    for (glpage=conv->pages; glpage; glpage=glpage->next)
+    {
+	GtkWidget *child = glpage->data;
+	g_return_if_fail (child);
+
+	/* in the beginning we may have more pages than thread entries */
+	if (glthread && glthread->data)
+	{
+	    gtk_notebook_set_tab_label_text (GTK_NOTEBOOK (conv->notebook),
+					     child, _("active"));
+	}
+	else
+	{
+	    gtk_notebook_set_tab_label_text (GTK_NOTEBOOK (conv->notebook),
+					     child, _("inactive"));
+	}
+
+	if (glthread)
+	{
+	    glthread = glthread->next;
+	}
+    }
+
+    /* Show a summary status */
+    gtk_statusbar_pop (conv->log_statusbar, conv->log_context_id);
+    buf = g_strdup_printf (_("Active threads: %d. Scheduled tracks: %d."),
+			   conv->threads_num,
+			   g_list_length (conv->scheduled) + g_list_length (conv->processing));
+    gtk_statusbar_push (conv->log_statusbar, conv->log_context_id, buf);
+    g_free (buf);
+}
+
+
+
+
+/* adds pages to the notebook if the number of pages is less than the
+ * number of threads. If required 'g_mutex_lock (conv->mutex)' before
+ * calling this function. */
+static void conversion_log_add_pages (Conversion *conv, gint threads)
+{
+    g_return_if_fail (conv);
+
+    while ((g_list_length (conv->textviews) == 0) ||
+	   (threads > g_list_length (conv->textviews)))
+    {
+	GtkWidget *scrolled_window;
+	GtkWidget *textview;
+
+	scrolled_window = gtk_scrolled_window_new (NULL, NULL);
+	gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolled_window),
+					GTK_POLICY_AUTOMATIC,
+					GTK_POLICY_AUTOMATIC);
+	conv->pages = g_list_append (conv->pages, scrolled_window);
+	textview = gtk_text_view_new ();
+	gtk_container_add (GTK_CONTAINER (scrolled_window), textview);
+	conv->textviews = g_list_append (conv->textviews, textview);
+
+	gtk_widget_show_all (scrolled_window);
+
+	gtk_notebook_append_page (GTK_NOTEBOOK (conv->notebook),
+				  scrolled_window, NULL);
+
+	conversion_log_set_status (conv);
+    }
+}
+
+
+static void conversion_prefs_changed (Conversion *conv)
+{
+    gboolean background_transfer;
+    gdouble maxsize;
+    GList *gl;
+
+    g_return_if_fail (conv);
+
+    g_mutex_lock (conv->mutex);
+
+    if (prefs_get_double_value (FILE_CONVERT_MAXDIRSIZE, &maxsize))
+    {
+	conv->max_dirsize = 1024 * 1024 * 1024 * maxsize;
+    }
+    else
+    {   /* set default of 4 GB */
+	conv->max_dirsize = (gint64)4 * 1024 * 1024 * 1024;
+	prefs_set_double (FILE_CONVERT_MAXDIRSIZE, 4);
+    }
+
+    if (conv->max_dirsize < 0)
+    {   /* effectively disable caching */
+	conv->max_dirsize = 0;
+    }
+
+    conv->max_threads_num = prefs_get_int (FILE_CONVERT_MAX_THREADS_NUM);
+    if (conv->max_threads_num == 0)
+    {   /* set to maximum available number of processors */
+	conv->max_threads_num = sysconf (_SC_NPROCESSORS_ONLN);
+	/* paranoia mode on */
+	if (conv->max_threads_num <= 0)
+	{
+	    conv->max_threads_num = 1;
+	}
+    }
+
+    g_free (conv->template);
+    conv->template = prefs_get_string (FILE_CONVERT_TEMPLATE);
+
+    if ((conv->dirsize == CONV_DIRSIZE_INVALID) ||
+	(conv->dirsize > conv->max_dirsize))
+    {
+	GThread *thread;
+	/* Prune dir of unused files if size is too big, calculate and set
+	   the size of the directory. Do all that in the background. */
+	thread = g_thread_create_full (conversion_prune_dir,
+				       conv,        /* user data  */
+				       0,           /* stack size */
+				       FALSE,       /* joinable   */
+				       TRUE,        /* bound      */
+				       G_THREAD_PRIORITY_NORMAL,
+				       NULL);       /* error      */
+    }
+
+    background_transfer = prefs_get_int (FILE_CONVERT_BACKGROUND_TRANSFER);
+    for (gl=conv->transfer_itdbs; gl; gl=gl->next)
+    {
+	TransferItdb *tri = gl->data;
+	if (!tri)
+	{
+	    g_mutex_unlock (conv->mutex);
+	    g_return_if_reached ();
+	}
+	tri->transfer = background_transfer;
+    }
+
+    conversion_display_hide_log_window (conv);
+
+    g_mutex_unlock (conv->mutex);
+}
+
+
+
+/* Reorder the scheduled list so that tracks in @itdb are converted first */
+static void conversion_itdb_first (Conversion *conv, iTunesDB *itdb)
+{
+    GList *gl;
+    GList *gl_itdb = NULL;
+    GList *gl_other = NULL;
+
+    g_return_if_fail (conv);
+    g_return_if_fail (itdb);
+
+    g_mutex_lock (conv->mutex);
+    /* start from the end to keep the same order overall (we're
+       prepending to the list for performance reasons */
+    for (gl=g_list_last(conv->scheduled); gl; gl=gl->prev)
+    {
+	ConvTrack *ctr = gl->data;
+	if (!ctr || !ctr->track)
+	{
+	    g_mutex_unlock (conv->mutex);
+	    g_return_if_reached ();
+	}
+	g_return_if_fail (ctr);
+	g_return_if_fail (ctr->track);
+	if (ctr->track->itdb == itdb)
+	{
+	    gl_itdb = g_list_prepend (gl_itdb, ctr);
+	}
+	else
+	{
+	    gl_other = g_list_prepend (gl_other, ctr);
+	}
+    }
+    g_list_free (conv->scheduled);
+    conv->scheduled = g_list_concat (gl_other, gl_itdb);
+    g_mutex_unlock (conv->mutex);
+}
+
+
+/* adds @text to the textview on page @threadnum of the log window. If
+ * required 'g_mutex_lock (conv->mutex)' before calling this
+ * function. */
+static void conversion_log_append (Conversion *conv,
+				   const gchar *text, gint threadnum)
+{
+    GtkWidget *textview;
+    GtkTextBuffer *textbuffer;
+    GtkTextIter start, end;
+    const gchar *ptr, *next;
+
+    g_return_if_fail (conv);
+
+    /* add pages if necessary */
+    conversion_log_add_pages (conv, threadnum+1);
+
+    /* get appropriate textview */
+    textview = g_list_nth_data (conv->textviews, threadnum);
+    g_return_if_fail (textview);
+
+    textbuffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (textview));
+    gtk_text_buffer_get_end_iter (textbuffer, &end);
+
+    ptr = text;
+
+    while (*ptr)
+    {
+	next = g_utf8_find_next_char (ptr, NULL);
+	if (*ptr == '\b')
+	{
+	    start = end;
+	    if (gtk_text_iter_backward_char (&start))
+	    {
+		gtk_text_buffer_delete (textbuffer, &start, &end);
+	    }
+	}
+	else if(*ptr == '\r')
+	{
+	    start = end;
+	    gtk_text_iter_set_line_offset (&start, 0);
+	    gtk_text_buffer_delete (textbuffer, &start, &end);
+	}
+	else
+	{
+	    gtk_text_buffer_insert (textbuffer, &end, ptr, next - ptr);
+	}
+	ptr = next;
+    }
+    gtk_text_view_scroll_to_iter (GTK_TEXT_VIEW (textview),
+				  &end, 0.0, FALSE, 0.0, 0.0); 
+
+    if (prefs_get_int (FILE_CONVERT_DISPLAY_LOG))
+    {
+	gtk_widget_show (conv->log_window);
+    }
+}
+
+
+
+/*
+ * Called by scheduler for all running processes. Lock 'conv->mutex'
+ * before calling this function.
+ */
+static void conversion_display_log (ConvTrack *ctr)
+{
+    gchar buf[PATH_MAX];
+    gsize bytes_read = 0;
+    GIOStatus status;
+    Conversion *conv;
+
+    g_return_if_fail (ctr && ctr->conv);
+    conv = ctr->conv;
+
+    do
+    {
+	status = g_io_channel_read_chars (ctr->gio_channel, buf,
+					  PATH_MAX-1, &bytes_read, NULL);
+	buf[bytes_read] = '\0';
+	if (bytes_read > 0)
+	{
+	    switch (status)
+	    {
+	    case G_IO_STATUS_ERROR :
+/*	    puts ("gio error");*/
+		break;
+	    case G_IO_STATUS_EOF :
+		conversion_log_append (conv, buf, ctr->threadnum);
+		break;
+	    case G_IO_STATUS_NORMAL :
+		conversion_log_append (conv, buf, ctr->threadnum);
+		break;
+	    case G_IO_STATUS_AGAIN :
+		break;
+	    }
+	}
+    } while (bytes_read > 0);
+
+    return;
+}
+
+
+static void conversion_cancel_mark_track (ConvTrack *ctr)
+{
+    g_return_if_fail (ctr && ctr->track);
+
+    if (ctr->valid)
+    {
+	ExtraTrackData *etr = ctr->track->userdata;
+	g_return_if_fail (etr);
+	ctr->valid = FALSE;
+	if (ctr->pid)
+	{   /* if a conversion or transfer process is running kill
+	     * the entire process group (i.e. all processes
+	     * started within the shell) */
+	    kill (-ctr->pid, SIGTERM);
+	    etr->conversion_status = FILE_CONVERT_KILLED;
+	}
+	/* if a file has already been copied remove it again */
+	if (ctr->dest_filename)
+	{
+	    g_unlink (ctr->dest_filename);
+	    g_free (ctr->dest_filename);
+	    ctr->dest_filename = NULL;
+	}
+    }
+}
+
+
+/* called by conversion_cancel_itdb to mark nodes invalid that are in
+   the specified itdb */
+static void conversion_cancel_itdb_fe (gpointer data, gpointer userdata)
+{
+    ConvTrack *ctr = data;
+    iTunesDB *itdb = userdata;
+
+    g_return_if_fail (ctr && ctr->track && ctr->track->userdata);
+
+    if (ctr->itdb == itdb)
+    {
+	conversion_cancel_mark_track (ctr);
+    }
+}
+
+/* Marks all tracks in @*ctracks as invalid. If a dest_filename
+ * exists, the file is removed. If @remove is TRUE, the element is
+ * removed from the list altogether. */
+static void conversion_cancel_itdb_sub (GList **ctracks, gboolean remove)
+{
+    GList *gl, *next;
+
+    g_return_if_fail (ctracks);
+
+    for (gl=*ctracks; gl; gl=next)
+    {
+	ConvTrack *ctr = gl->data;
+	g_return_if_fail (ctr);
+	next = gl->next;
+	conversion_cancel_mark_track (ctr);
+	if (remove)
+	{
+	    *ctracks = g_list_delete_link (*ctracks, gl);
+	    conversion_convtrack_free (ctr);
+	}
+    }
+}
+	
+
+
+/* Cancel conversion for all tracks of @itdb */
+static void conversion_cancel_itdb (Conversion *conv, iTunesDB *itdb)
+{
+    TransferItdb *itr;
+
+    g_return_if_fail (conv);
+    g_return_if_fail (itdb);
+
+    g_mutex_lock (conv->mutex);
+
+    g_list_foreach (conv->scheduled, conversion_cancel_itdb_fe, itdb);
+    g_list_foreach (conv->processing, conversion_cancel_itdb_fe, itdb);
+    g_list_foreach (conv->failed, conversion_cancel_itdb_fe, itdb);
+    g_list_foreach (conv->converted, conversion_cancel_itdb_fe, itdb);
+
+    itr = transfer_get_tri (conv, itdb);
+    conversion_cancel_itdb_sub (&itr->scheduled, TRUE);
+    conversion_cancel_itdb_sub (&itr->processing, FALSE);
+    conversion_cancel_itdb_sub (&itr->transferred, FALSE);
+    conversion_cancel_itdb_sub (&itr->finished, TRUE);
+    conversion_cancel_itdb_sub (&itr->failed, TRUE);
+    itr->valid = FALSE;
+
+    g_mutex_unlock (conv->mutex);
+}
+
+
+
+/* called by conversion_cancel_track to mark nodes invalid that refer
+   to @track (should only be one...) */
+/* Used by conversion-cancel_track_sub() to find the list element that
+   contains @track. Returns 0 if found. */
+static int conversion_cancel_track_cmp (gconstpointer a, gconstpointer b)
+{
+    const ConvTrack *ctr = a;
+    const Track *track = b;
+
+    g_return_val_if_fail (ctr, 0);
+
+    if (ctr->track == track) return 0;
+    return -1;
+}
+
+
+/* Finds @track in @ctracks and marks it as invalid. If a
+ * dest_filename exists, the file is removed. If @remove is TRUE, the
+ * element is removed from the list altogether. */
+static void conversion_cancel_track_sub (GList **ctracks,
+					 Track *track,
+					 gboolean remove)
+{
+    GList *gl;
+
+    g_return_if_fail (track && track->userdata);
+
+    gl = g_list_find_custom (*ctracks, track, conversion_cancel_track_cmp);
+    if (gl)
+    {
+	ConvTrack *ctr = gl->data;
+	g_return_if_fail (ctr);
+	if (ctr->track == track)
+	{
+	    conversion_cancel_mark_track (ctr);
+	}
+	if (remove)
+	{
+	    *ctracks = g_list_delete_link (*ctracks, gl);
+	    conversion_convtrack_free (ctr);
+	}
+    }
+}
+
+
+/* Cancel conversion for @track */
+static void conversion_cancel_track (Conversion *conv, Track *track)
+{
+    g_return_if_fail (conv);
+    g_return_if_fail (track);
+
+    g_mutex_lock (conv->mutex);
+
+    conversion_cancel_track_sub (&conv->scheduled, track, FALSE);
+    conversion_cancel_track_sub (&conv->processing, track, FALSE);
+    conversion_cancel_track_sub (&conv->failed, track, FALSE);
+    conversion_cancel_track_sub (&conv->converted, track, FALSE);
+    conversion_cancel_track_sub (&conv->finished, track, TRUE);
+    if (track->itdb)
+    {
+	TransferItdb *itr = transfer_get_tri (conv, track->itdb);
+	conversion_cancel_track_sub (&itr->scheduled, track, TRUE);
+	conversion_cancel_track_sub (&itr->processing, track, FALSE);
+	conversion_cancel_track_sub (&itr->transferred, track, FALSE);
+	conversion_cancel_track_sub (&itr->finished, track, TRUE);
+	conversion_cancel_track_sub (&itr->failed, track, TRUE);
+    }
+    g_mutex_unlock (conv->mutex);
+}
+
+
+/* Force the conversion process to continue even if the allocated
+ * disk space is used up */
+static void conversion_continue (Conversion *conv)
+{
+    g_return_if_fail (conv);
+
+    g_mutex_lock (conv->mutex);
+    if (conv->threads_num == 0)
+    {   /* make sure at least one conversion is started even if
+	   directory is full */
+	conv->conversion_force = TRUE;
+    }
+    g_mutex_unlock (conv->mutex);
+}
+
+
+/* Add @track to the list of tracks to be converted if conversion is
+ * necessary.
+ *
+ * Return value: FALSE if an error occured, TRUE otherwise
+ */
+static gboolean conversion_add_track (Conversion *conv, Track *track)
+{
+    ExtraTrackData *etr;
+    ConvTrack *ctr;
+    gchar *conversion_cmd = NULL;
+    const gchar *typestr = NULL;
+    gboolean convert=FALSE, must_convert = FALSE;
+    gboolean result = TRUE;
+
+    g_return_val_if_fail (conv, FALSE);
+    g_return_val_if_fail (track, FALSE);
+    g_return_val_if_fail (track->itdb, FALSE);
+    etr = track->userdata;
+    g_return_val_if_fail (etr, FALSE);
+
+    if ((track->itdb->usertype & GP_ITDB_TYPE_LOCAL) ||
+	(track->transferred))
+    {   /* no conversion or transfer needed */
+	return TRUE;
+    }
+
+    /* Create ConvTrack structure */
+    ctr = g_new0 (ConvTrack, 1);
+    ctr->track = track;
+    ctr->itdb = track->itdb;
+    ctr->conv = conv;
+    ctr->orig_file = g_strdup (etr->pc_path_locale);
+    ctr->converted_file = g_strdup (etr->converted_file);
+    ctr->artist    = g_strdup (track->artist);
+    ctr->album     = g_strdup (track->album);
+    ctr->track_nr  = g_strdup_printf ("%02d", track->track_nr);
+    ctr->title     = g_strdup (track->title);
+    ctr->genre     = g_strdup (track->genre);
+    ctr->year      = g_strdup (etr->year_str);
+    ctr->comment   = g_strdup (track->comment);
+    ctr->valid = TRUE;
+
+    if (!etr->pc_path_locale || (strlen (etr->pc_path_locale) == 0))
+    {
+	gchar *buf = get_track_info (track, FALSE);
+	gtkpod_warning (_("Original filename not available for '%s.'\n"), buf);
+	g_free (buf);
+
+	etr->conversion_status = FILE_CONVERT_FAILED;
+	/* add to failed list */
+	g_mutex_lock (conv->mutex);
+	conv->failed = g_list_prepend (conv->failed, ctr);
+	g_mutex_unlock (conv->mutex);
+	debug ("added track to failed %p\n", track);
+	return FALSE;
+    }
+
+    if (!g_file_test (etr->pc_path_locale, G_FILE_TEST_IS_REGULAR))
+    {
+	gchar *buf = get_track_info (track, FALSE);
+	gtkpod_warning (_("Filename '%s' is no longer valid for '%s'.\n"),
+			etr->pc_path_utf8, buf);
+	g_free (buf);
+
+	etr->conversion_status = FILE_CONVERT_FAILED;
+	/* add to failed list */
+	g_mutex_lock (conv->mutex);
+	conv->failed = g_list_prepend (conv->failed, ctr);
+	g_mutex_unlock (conv->mutex);
+	debug ("added track to failed %p\n", track);
+	return FALSE;
+    }	
+
+    /* Find the correct script for conversion */
+    switch (determine_file_type(etr->pc_path_locale))
+    {
+        case FILE_TYPE_UNKNOWN:
+        case FILE_TYPE_M4P:
+        case FILE_TYPE_M4B:
+        case FILE_TYPE_M4V:
+        case FILE_TYPE_MP4:
+        case FILE_TYPE_MOV:
+        case FILE_TYPE_MPG:
+        case FILE_TYPE_M3U:
+        case FILE_TYPE_PLS:
+        case FILE_TYPE_IMAGE:
+        case FILE_TYPE_DIRECTORY:
+	    /* we don't convert these (yet) */
+	    etr->conversion_status = FILE_CONVERT_INACTIVE;
+	    /* add to finished */
+	    g_mutex_lock (conv->mutex);
+	    conv->finished = g_list_prepend (conv->finished, ctr);
+	    g_mutex_unlock (conv->mutex);
+	    debug ("added track to finished %p\n", track);
+            return TRUE;
+        case FILE_TYPE_M4A:
+	    convert = prefs_get_int ("convert_m4a");
+            conversion_cmd = prefs_get_string ("path_conv_m4a");
+            break;
+        case FILE_TYPE_WAV:
+	    convert = prefs_get_int ("convert_wav");
+            conversion_cmd = prefs_get_string ("path_conv_wav");
+            break;
+        case FILE_TYPE_MP3:
+	    convert = prefs_get_int ("convert_mp3");
+            conversion_cmd = prefs_get_string ("path_conv_mp3");
+            break;
+        case FILE_TYPE_OGG:
+	    convert = prefs_get_int ("convert_ogg");
+	    conversion_cmd = prefs_get_string ("path_conv_ogg");
+	    must_convert = TRUE;
+	    typestr = _("Ogg Vorbis");
+            break;
+        case FILE_TYPE_FLAC:
+	    convert = prefs_get_int ("convert_flac");
+	    conversion_cmd = prefs_get_string ("path_conv_flac");
+	    must_convert = TRUE;
+	    typestr = _("FLAC");
+            break;
+    }
+
+    ctr->must_convert = must_convert;
+    ctr->conversion_cmd = conversion_cmd;
+    conversion_cmd = NULL;
+
+    if (convert)
+    {
+	gchar *template;
+
+	g_mutex_lock (conv->mutex);
+	template = g_strdup (conv->template);
+	g_mutex_unlock (conv->mutex);
+
+	ctr->fname_root = get_string_from_template (track, template, TRUE, TRUE);
+	ctr->fname_extension = conversion_get_fname_extension (NULL, ctr);
+	if (ctr->fname_extension)
+	{
+	    etr->conversion_status = FILE_CONVERT_SCHEDULED;
+	    /* add to scheduled list */
+	    g_mutex_lock (conv->mutex);
+	    conv->scheduled = g_list_prepend (conv->scheduled, ctr);
+	    g_mutex_unlock (conv->mutex);
+
+	    result = TRUE;
+	    debug ("added track %p\n", track);
+	}
+	else
+	{   /* an error has occured */
+	    if (ctr->errormessage)
+	    {
+		gtkpod_warning (ctr->errormessage);
+		g_free (ctr->errormessage);
+		ctr->errormessage = NULL;
+	    }
+
+	    if (must_convert)
+		etr->conversion_status = FILE_CONVERT_REQUIRED_FAILED;
+	    else
+		etr->conversion_status = FILE_CONVERT_FAILED;
+	    /* add to failed list */
+	    g_mutex_lock (conv->mutex);
+	    conv->failed = g_list_prepend (conv->failed, ctr);
+	    g_mutex_unlock (conv->mutex);
+	    result = FALSE;
+	    debug ("added track to failed %p\n", track);
+	}
+	g_free (template);
+    }
+    else if (must_convert)
+    {
+	gchar *buf = get_track_info (track, FALSE);
+	g_return_val_if_fail (typestr, FALSE);
+	gtkpod_warning (_("Files of type '%s' are not supported by the iPod. Please go to the Preferences to set up and turn on a suitable conversion script for '%s'.\n\n"), typestr, buf);
+	g_free (buf);
+
+	etr->conversion_status = FILE_CONVERT_REQUIRED;
+	/* add to failed list */
+	g_mutex_lock (conv->mutex);
+	conv->failed = g_list_prepend (conv->failed, ctr);
+	g_mutex_unlock (conv->mutex);
+	result = FALSE;
+	debug ("added track to failed %p\n", track);
+    }
+    else
+    {
+	etr->conversion_status = FILE_CONVERT_INACTIVE;
+	/* remove reference to any former converted file */
+	g_free (etr->converted_file);
+	etr->converted_file = NULL;
+	g_free (ctr->converted_file);
+	ctr->converted_file = NULL;
+	/* add to finished */
+	g_mutex_lock (conv->mutex);
+	conv->finished = g_list_prepend (conv->finished, ctr);
+	g_mutex_unlock (conv->mutex);
+	debug ("added track to finished %p\n", track);
+    }
+    g_free (conversion_cmd);
+    return result;
+}
+
+
+/* free the memory taken by @ctr */
+static void conversion_convtrack_free (ConvTrack *ctr)
+{
+    g_return_if_fail (ctr);
+    g_free (ctr->orig_file);
+    g_free (ctr->converted_file);
+    g_free (ctr->conversion_cmd);
+    g_free (ctr->fname_root);
+    g_free (ctr->fname_extension);
+    g_free (ctr->errormessage);
+    g_free (ctr->artist);
+    g_free (ctr->album);
+    g_free (ctr->track_nr);
+    g_free (ctr->title);
+    g_free (ctr->genre);
+    g_free (ctr->year);
+    g_free (ctr->comment);
+    if (ctr->gio_channel)
+    {
+	g_io_channel_unref (ctr->gio_channel);
+    }
+    if (ctr->pid)
+    {
+	g_spawn_close_pid (ctr->pid);
+    }
+
+    /* transfer stuff */
+    g_free (ctr->dest_filename);
+    g_free (ctr->mountpoint);
+
+    g_free (ctr);
+}
+
+
+/* return some sensible input about @ctrack. You must free the
+   returned string after use. */
+static gchar *conversion_get_track_info (Conversion *conv, ConvTrack *ctr)
+{
+    gchar *str = NULL;
+
+    if (conv) g_mutex_lock (conv->mutex);
+
+    if ((ctr->title && strlen(ctr->title)))
+    {
+	str = g_strdup (ctr->title);
+    }
+    else if ((ctr->album && strlen(ctr->album)))
+    {
+	str = g_strdup_printf ("%s_%s", ctr->track_nr, ctr->album);
+    }
+    else if ((ctr->artist && strlen(ctr->artist)))
+    {
+	str = g_strdup_printf ("%s_%s", ctr->track_nr, ctr->artist);
+    }
+    else
+    {
+	str = g_strdup (_("No information available"));
+    }
+
+    if (conv) g_mutex_unlock (conv->mutex);
+
+    return str;
+}
+
+
+
+/* Set and set up the conversion cachedir.
+ *
+ * Return value: TRUE if directory could be set up.
+ *               FALSE if an error occured.
+ */
+static gboolean conversion_setup_cachedir (Conversion *conv)
+{
+    g_return_val_if_fail (conv, FALSE);
+
+    g_mutex_lock (conv->mutex);
+
+    g_free (conv->cachedir);
+    conv->cachedir = NULL;
+    conv->cachedir = prefs_get_string (FILE_CONVERT_CACHEDIR);
+    if (!conv->cachedir)
+    {
+	gchar *cfgdir = prefs_get_cfgdir ();
+	if (cfgdir)
+	{
+	    conv->cachedir = g_build_filename (cfgdir, "conversion_cache", NULL);
+	    g_free (cfgdir);
+	}
+    }
+    if (conv->cachedir)
+    {
+	if (!g_file_test (conv->cachedir, G_FILE_TEST_IS_DIR))
+	{
+	    if ((g_mkdir (conv->cachedir, 0777)) == -1)
+	    {
+		gtkpod_warning (_("Could not create '%s'. Filetype conversion will not work.\n"));
+		g_free (conv->cachedir);
+		conv->cachedir = NULL;
+	    }
+	}
+    }
+
+    if (conv->cachedir)
+    {
+	prefs_set_string (FILE_CONVERT_CACHEDIR, conv->cachedir);
+    }
+
+    g_mutex_unlock (conv->mutex);
+
+    if (conv->cachedir)
+	return TRUE;
+    else
+	return FALSE;
+}
+
+
+
+/* called in conversion_scheduler to g_spawn_close_pid() and unref the
+   io-channel after the conversion has finished/has failed/has been
+   killed. If output is buffered in the io-channel it's appended to
+   the log before closing up the channel. */
+static void conversion_free_resources (ConvTrack *ctr)
+{
+    g_return_if_fail (ctr);
+
+    /* Free resources */
+    if (ctr->pid)
+    {
+	g_spawn_close_pid (ctr->pid);
+	ctr->pid = 0;
+    }
+    if (ctr->gio_channel)
+    {
+	conversion_display_log (ctr);
+	g_io_channel_unref (ctr->gio_channel);
+	ctr->gio_channel = NULL;
+    }
+}
+
+
+/* the scheduler code without the locking mechanism -- has to be
+   called with conv->mutex locked */
+static gboolean conversion_scheduler_unlocked (Conversion *conv)
+{
+    GList *gli, *nextgli;
+
+    g_return_val_if_fail (conv, TRUE);
+
+    if (!conv->cachedir)
+    {
+	/* Cachedir is not available. Not good! Remove the timeout function. */
+	g_return_val_if_reached (FALSE);
+    }
+
+    if (conv->dirsize == CONV_DIRSIZE_INVALID)
+    {   /* dirsize has not been set up. Wait until that has been done. */
+	return TRUE;
+    }
+
+    if (conv->scheduled)
+    {
+	if ((conv->threads_num < conv->max_threads_num) &&
+	    ((conv->dirsize <= conv->max_dirsize) || conv->conversion_force))
+	{
+	    GList *gl;
+	    GThread *thread;
+
+	    thread = g_thread_create_full (conversion_thread,
+					   conv,   /* user data  */
+					   0,      /* stack size */
+					   FALSE,  /* joinable   */
+					   TRUE,   /* bound      */
+					   G_THREAD_PRIORITY_LOW,
+					   NULL);  /* error      */
+
+	    /* Add thread to thread list. Use first available slot */
+	    gl = g_list_find (conv->threads, NULL);
+	    if (gl)
+	    {   /* found empty slot */
+		gl->data = thread;
+	    }
+	    else
+	    {   /* no empty slot available --> add to end */
+		conv->threads = g_list_append (conv->threads, thread);
+	    }
+
+	    ++conv->threads_num;
+	}
+    }
+    else
+    {
+	conv->conversion_force = FALSE;
+    }
+
+    if (conv->processing)
+    {
+	GList *gl;
+	for (gl=conv->processing; gl; gl=gl->next)
+	{
+	    ConvTrack *ctr = gl->data;
+	    g_return_val_if_fail (ctr, TRUE);
+	    if (ctr->valid && ctr->gio_channel)
+	    {
+		conversion_display_log (ctr);
+	    }
+	}
+    }
+
+    if (conv->failed)
+    {
+	GList *gl;
+	for (gl=conv->failed; gl; gl=gl->next)
+	{
+	    ConvTrack *ctr = gl->data;
+	    g_return_val_if_fail (ctr, TRUE);
+
+	    /* free resources (pid, flush io-channel) */
+	    conversion_free_resources (ctr);
+
+	    if (ctr->valid)
+	    {
+		ExtraTrackData *etr;
+		if (ctr->errormessage)
+		{
+		    gtkpod_warning (ctr->errormessage);
+		    g_free (ctr->errormessage);
+		    ctr->errormessage = NULL;
+		}
+		g_return_val_if_fail (ctr->track && ctr->track->userdata, TRUE);
+		etr = ctr->track->userdata;
+		if (ctr->must_convert)
+		{
+		    if (etr->conversion_status != FILE_CONVERT_REQUIRED)
+		    {
+			etr->conversion_status = FILE_CONVERT_REQUIRED_FAILED;
+		    }
+		}
+		else
+		{
+		    etr->conversion_status = FILE_CONVERT_FAILED;
+		}
+		/* Add to finished so we can find it in case user
+		   waits for next converted file */
+		conv->finished = g_list_prepend (conv->finished, ctr);
+	    }
+	    else
+	    {   /* track is not valid any more */
+		conversion_convtrack_free (ctr);
+	    }
+	}
+	g_list_free (conv->failed);
+	conv->failed = NULL;
+    }
+
+    if (conv->converted)
+    {
+	GList *gl;
+	for (gl=conv->converted; gl; gl=gl->next)
+	{
+	    ConvTrack *ctr = gl->data;
+	    g_return_val_if_fail (ctr, TRUE);
+
+	    /* free resources (pid / flush io-channel) */
+	    conversion_free_resources (ctr);
+
+	    if (ctr->valid)
+	    {
+		GList *trackgl;
+		g_return_val_if_fail (ctr->track, TRUE);
+		GList *tracks = gp_itdb_find_same_tracks_in_itdbs (ctr->track);
+		for (trackgl=tracks; trackgl; trackgl=trackgl->next)
+		{
+		    ExtraTrackData *etr;
+		    Track *tr = trackgl->data;
+		    g_return_val_if_fail (tr && tr->itdb && tr->userdata,
+					  TRUE);
+		    etr = tr->userdata;
+
+		    /* spread information to local databases for
+		       future reference */
+		    if (tr->itdb->usertype & GP_ITDB_TYPE_LOCAL)
+		    {
+			g_free (etr->converted_file);
+			etr->converted_file = g_strdup (ctr->converted_file);
+			pm_track_changed (tr);
+			data_changed (tr->itdb);
+		    }
+
+		    /* don't forget to copy conversion data to the
+		       track itself */
+		    if (tr == ctr->track)
+		    {
+			g_free (etr->converted_file);
+			etr->converted_file = g_strdup (ctr->converted_file);
+			etr->conversion_status = FILE_CONVERT_CONVERTED;
+			tr->size = ctr->converted_size;
+			pm_track_changed (tr);
+			data_changed (tr->itdb);
+		    }
+		}
+		g_list_free (tracks);
+		/* add ctr to finished */
+		conv->finished = g_list_prepend (conv->finished, ctr);
+	    }
+	    else
+	    {   /* track is not valid any more */
+		conversion_convtrack_free (ctr);
+	    }
+	}
+	g_list_free (conv->converted);
+	conv->converted = NULL;
+    }
+
+    if (conv->finished)
+    {
+	GList *gl;
+	for (gl=conv->finished; gl; gl=gl->next)
+	{
+	    ConvTrack *ctr = gl->data;
+	    g_return_val_if_fail (ctr, TRUE);
+	    if (ctr->valid)
+	    {
+		TransferItdb *tri;
+		ExtraTrackData *etr;
+		Track *tr = ctr->track;
+		g_return_val_if_fail (tr && tr->itdb && tr->userdata, TRUE);
+		etr = tr->userdata;
+		/* broadcast finished track */
+		g_cond_broadcast (conv->finished_cond);
+
+		tri = transfer_get_tri (conv, tr->itdb);
+		g_return_val_if_fail (tri, TRUE);
+		/* Provide mountpoint */
+		ctr->mountpoint = g_strdup (itdb_get_mountpoint (ctr->itdb));
+
+		switch (etr->conversion_status)
+		{
+		case FILE_CONVERT_INACTIVE:
+		case FILE_CONVERT_CONVERTED:
+		    tri->scheduled =
+			g_list_prepend (tri->scheduled, ctr);
+		    break;
+		case FILE_CONVERT_FAILED:
+		case FILE_CONVERT_REQUIRED_FAILED:
+		case FILE_CONVERT_REQUIRED:
+		    tri->failed = g_list_prepend (tri->failed, ctr);
+		    break;
+		case FILE_CONVERT_KILLED:
+		case FILE_CONVERT_SCHEDULED:
+		    fprintf (stderr, "Programming error, conversion type %d not expected in conversion_scheduler()\n", etr->conversion_status);
+		    conversion_convtrack_free (ctr);
+		    break;
+		}
+	    }
+	    else
+	    {   /* track is not valid any more */
+		conversion_convtrack_free (ctr);
+	    }
+	}
+	g_list_free (conv->finished);
+	conv->finished = NULL;
+    }
+
+    for (gli=conv->transfer_itdbs; gli; gli=nextgli)
+    {
+	TransferItdb *tri = gli->data;
+	nextgli = gli->next;
+
+	g_return_val_if_fail (tri, TRUE);
+	if (tri->scheduled)
+	{
+	    if ((tri->thread == NULL) && (tri->transfer == TRUE) &&
+		(tri->status != FILE_TRANSFER_DISK_FULL))
+	    {   /* start new thread */
+		tri->thread = g_thread_create_full (transfer_thread,
+						    tri,    /* user data  */
+						    0,      /* stack size */
+						    FALSE,  /* joinable   */
+						    TRUE,   /* bound      */
+						    G_THREAD_PRIORITY_LOW,
+						    NULL);  /* error      */
+	    }
+	}
+
+	if (tri->transferred)
+	{
+	    GList *gl;
+	    for (gl=tri->transferred; gl; gl=gl->next)
+	    {
+		ConvTrack *ctr = gl->data;
+		GError *error;
+		g_return_val_if_fail (ctr, TRUE);
+
+		if (tri->valid && ctr->valid)
+		{
+		    if (itdb_cp_finalize (ctr->track,
+					  NULL,
+					  ctr->dest_filename, &error))
+		    {   /* everything's fine */
+			tri->finished = g_list_prepend (tri->finished, ctr);
+			/* otherwise new free space status from iPod
+			   is never read and free space keeps
+			   increasing while we copy more and more
+			   files to the iPod */
+			space_data_update ();
+			debug ("transfer finalized: %s (%d)\n",
+			       conversion_get_track_info (NULL, ctr),
+			       ctr->track->transferred);
+		    }
+		    else
+		    {   /* error!? */
+			tri->failed = g_list_prepend (tri->failed, ctr);
+			gchar *buf = conversion_get_track_info (NULL, ctr);
+			gtkpod_warning (_("Transfer of '%s' failed. %s\n\n"),
+					buf,
+					error? error->message:"");
+			g_free (buf);
+			if (error)
+			{
+			    g_error_free (error);
+			}
+		    }
+		    pm_track_changed (ctr->track);
+		    data_changed (ctr->itdb);
+		}
+		else
+		{   /* track is not valid any more */
+		    conversion_convtrack_free (ctr);
+		}
+	    }
+	    g_list_free (tri->transferred);
+	    tri->transferred = NULL;
+	}
+
+	if (tri->failed)
+	{
+	    GList *gl;
+	    for (gl=tri->failed; gl; gl=gl->next)
+	    {
+		ConvTrack *ctr = gl->data;
+		g_return_val_if_fail (ctr, TRUE);
+
+		if (tri->valid && ctr->valid)
+		{
+		    if (ctr->errormessage)
+		    {
+			gtkpod_warning (ctr->errormessage);
+			g_free (ctr->errormessage);
+			ctr->errormessage = NULL;
+		    }
+		    tri->finished = g_list_prepend (tri->finished, ctr);
+		}
+		else
+		{   /* track is not valid any more */
+		    conversion_convtrack_free (ctr);
+		}
+	    }
+	    g_list_free (tri->failed);
+	    tri->failed = NULL;
+	}
+
+
+	/* remove TransferItdb completely if invalid and all tracks
+	 * have been removed */
+	if (!tri->valid)
+	{
+	    if (!!tri->scheduled && !tri->processing && !tri->transferred &&
+		!tri->finished && !tri->failed && !tri->thread)
+	    {
+		transfer_free_transfer_itdb (tri);
+		conv->transfer_itdbs =
+		    g_list_delete_link (conv->transfer_itdbs, gli);
+	    }
+	}
+    }
+
+
+    /* update the log window */
+    if (conv->log_window_shown)
+    {
+	conversion_log_set_status (conv);
+    }
+
+    return TRUE;
+}
+
+
+/* timeout function, add new threads if unscheduled tracks are in the
+   queue and maximum number of threads hasn't been reached */
+static gboolean conversion_scheduler (gpointer data)
+{
+    Conversion *conv = data;
+    gboolean result;
+    g_return_val_if_fail (data, FALSE);
+
+/*     debug ("conversion_scheduler enter\n"); */
+
+    gdk_threads_enter();
+    g_mutex_lock (conv->mutex);
+
+    result = conversion_scheduler_unlocked (conv);
+
+    g_mutex_unlock (conv->mutex);
+    gdk_threads_leave();
+
+/*    debug ("conversion_scheduler exit\n");*/
+
+    return result;
+}
+
+
+/* Calculate the size of the directory */
+static gpointer conversion_update_dirsize (gpointer data)
+{
+    Conversion *conv = data;
+    gchar *dir;
+    gint64 size = 0;
+
+    g_return_val_if_fail (conv, NULL);
+
+    debug ("%p update_dirsize enter\n", g_thread_self ());
+
+    g_mutex_lock (conv->mutex);
+    if (conv->dirsize_in_progress)
+    {   /* another thread is already working on the directory
+	   size. We'll wait until it has finished and just return. */
+	g_cond_wait (conv->dirsize_cond, conv->mutex);
+	g_mutex_unlock (conv->mutex);
+	debug ("%p update_dirsize concurrent exit\n", g_thread_self ());
+	return NULL;
+    }
+    conv->dirsize_in_progress = TRUE;
+    dir = g_strdup (conv->cachedir);
+    g_mutex_unlock (conv->mutex);
+
+    if (dir)
+    {
+	debug ("%p update_dirsize getting size of dir (%s)\n",
+	       g_thread_self (), dir);
+
+	size = get_size_of_directory (dir);
+	g_free (dir);
+	dir = NULL;
+    }
+
+    g_mutex_lock (conv->mutex);
+    /* Even in case of an error get_size_of_directory() will return
+       0. This means setting the dirsize here will not block the
+       conversion process even if there is a problem determining the
+       size of the directory */
+    conv->dirsize = size;
+    /* We're finished doing the directory upgrade. Unset the flag and
+       broadcast to all threads waiting to wake them up. */
+    conv->dirsize_in_progress = FALSE;
+    g_cond_broadcast (conv->dirsize_cond);
+    g_mutex_unlock (conv->mutex);
+
+    debug ("%p update_dirsize exit\n", g_thread_self ());
+    return NULL;
+}
+
+
+struct conversion_prune_file
+{
+    gchar *filename;
+    struct stat statbuf;
+};
+
+
+/* make a list of all existing files */
+static GList *conversion_prune_dir_collect_files (const gchar *dir)
+{
+    GDir *gdir;
+    const gchar *fname;
+    GList *files = NULL;
+
+    g_return_val_if_fail (dir, NULL);
+
+    gdir = g_dir_open (dir, 0, NULL);
+    if (!gdir)
+    {
+	/* do something */
+	return files;
+    }
+
+    while ((fname = g_dir_read_name (gdir)))
+    {
+	gchar *fullname = g_build_filename (dir, fname, NULL);
+
+	if (g_file_test (fullname, G_FILE_TEST_IS_DIR))
+	{
+	    files = g_list_concat (files, 
+				   conversion_prune_dir_collect_files (fullname));
+	}
+	else if (g_file_test (fullname, G_FILE_TEST_IS_REGULAR))
+	{
+	    struct conversion_prune_file *cpf;
+	    cpf = g_new0 (struct conversion_prune_file, 1);
+	    if (g_stat (fullname, &cpf->statbuf) == 0)
+	    {   /* OK, add */
+		cpf->filename = fullname;
+		fullname = NULL;
+		files = g_list_prepend (files, cpf);
+	    }
+	    else
+	    {   /* error -- ignore this file */
+		g_free (cpf);
+	    }
+	}
+	g_free (fullname);
+    }
+
+    g_dir_close (gdir);
+
+    return files;
+}
+	
+/* used to sort the list of unneeded files so that the oldest ones
+   come first */
+static gint conversion_prune_compfunc (gconstpointer a, gconstpointer b)
+{
+    const struct conversion_prune_file *cpf_a = a;
+    const struct conversion_prune_file *cpf_b = b;
+
+    return cpf_a->statbuf.st_mtime - cpf_b->statbuf.st_mtime;
+}
+
+/* free struct conversion_prune_file structure data, called from
+   g_list_foreach */
+static void conversion_prune_freefunc (gpointer data, gpointer user_data)
+{
+    struct conversion_prune_file *cpf = data;
+    g_return_if_fail (cpf);
+    g_free (cpf->filename);
+    g_free (cpf);
+}
+
+
+/* Add tracks still needed to hash. Called by conversion_prune_dir() */
+static void conversion_prune_needed_add (GHashTable *hash_needed_files,
+					 GList *ctracks)
+{
+    GList *gl;
+
+    g_return_if_fail (hash_needed_files);
+
+    for (gl=ctracks; gl; gl=gl->next)
+    {
+	ConvTrack *ctr = gl->data;
+	g_return_if_fail (ctr);
+	if (ctr->valid && ctr->converted_file)
+	{
+	    g_hash_table_insert (hash_needed_files,
+				 g_strdup (ctr->converted_file), ctr);
+	}
+    }
+}
+
+
+/* Prune the directory of unused files */
+static gpointer conversion_prune_dir (gpointer data)
+{
+    Conversion *conv = data;
+    gchar *dir;
+    gint64 dirsize;
+    gint64 maxsize;
+
+    g_return_val_if_fail (conv, NULL);
+
+    debug ("%p prune_dir enter\n", g_thread_self ());
+
+    g_mutex_lock (conv->mutex);
+    if (conv->prune_in_progress)
+    {   /* another thread is already working on the directory
+	   prune. We'll wait until it has finished and just return. */
+	g_cond_wait (conv->prune_cond, conv->mutex);
+	g_mutex_unlock (conv->mutex);
+	return NULL;
+    }
+    conv->prune_in_progress = TRUE;
+    dir = g_strdup (conv->cachedir);
+    g_mutex_unlock (conv->mutex);
+
+    if (dir)
+    {
+	GHashTable *hash_needed_files;
+	GList *gl;
+	GList *files = NULL;
+
+	debug ("%p prune_dir creating list of available files\n", g_thread_self ());
+
+	/* make a list of all available files */
+	files = conversion_prune_dir_collect_files (dir);
+
+	debug ("%p prune_dir creating hash_needed_files\n", g_thread_self ());
+
+	/* make a hash of all the files still needed */
+	hash_needed_files = g_hash_table_new_full (g_str_hash, g_str_equal,
+						   g_free, NULL);
+	g_mutex_lock (conv->mutex);
+
+	/* add needed files to hash */
+	conversion_prune_needed_add (hash_needed_files, conv->scheduled);
+	conversion_prune_needed_add (hash_needed_files, conv->processing);
+	conversion_prune_needed_add (hash_needed_files, conv->converted);
+	conversion_prune_needed_add (hash_needed_files, conv->finished);
+	for (gl=conv->transfer_itdbs; gl; gl=gl->next)
+	{
+	    TransferItdb *tri = gl->data;
+	    g_return_val_if_fail (tri, (conv->prune_in_progress = FALSE,
+					g_cond_broadcast (conv->prune_cond),
+					g_mutex_unlock(conv->mutex),
+					NULL));
+	    conversion_prune_needed_add (hash_needed_files, tri->scheduled);
+	    conversion_prune_needed_add (hash_needed_files, tri->processing);
+	    conversion_prune_needed_add (hash_needed_files, tri->failed);
+	}
+
+	g_mutex_unlock (conv->mutex);
+
+	/* sort the list so that the oldest files are first */
+	files = g_list_sort (files, conversion_prune_compfunc);
+
+	/* get an up-to-date count of the directory size */
+	conversion_update_dirsize (conv);
+
+	g_mutex_lock (conv->mutex);
+	dirsize = conv->dirsize;
+	maxsize = conv->max_dirsize;
+	g_mutex_unlock (conv->mutex);
+
+	debug ("%p prune_dir removing files (%lld/%lld)\n",
+	       g_thread_self (), (long long int)dirsize, (long long int)maxsize);
+
+	/* remove files until dirsize is smaller than maxsize */
+	/* ... */
+	for (gl=files; gl && (dirsize > maxsize); gl=gl->next)
+	{
+	    struct conversion_prune_file *cpf = gl->data;
+	    g_return_val_if_fail (cpf, (conv->prune_in_progress = FALSE,
+					g_cond_broadcast (conv->prune_cond),
+					NULL));
+	    g_return_val_if_fail (cpf->filename,
+				  (conv->prune_in_progress = FALSE,
+				   g_cond_broadcast (conv->prune_cond),
+				   NULL));
+	    if (g_hash_table_lookup (hash_needed_files, cpf->filename) == NULL)
+	    {   /* file is not among those remove */
+		if (g_remove (cpf->filename) == 0)
+		{
+		    dirsize -= cpf->statbuf.st_size;
+		}
+	    }
+	}
+
+	debug ("%p prune_dir removed files (%lld/%lld)\n",
+	       g_thread_self (), (long long int)dirsize, (long long int)maxsize);
+
+	/* free all data */
+	g_list_foreach (files, conversion_prune_freefunc, NULL);
+	g_list_free (files);
+	g_hash_table_destroy (hash_needed_files);
+	g_free (dir);
+	dir = NULL;
+    }
+
+    g_mutex_lock (conv->mutex);
+    conv->prune_in_progress = FALSE;
+    g_cond_broadcast (conv->prune_cond);
+    g_mutex_unlock (conv->mutex);
+
+    debug ("%p prune_dir exit\n", g_thread_self ());
+
+    return NULL;
+}
+
+
+/* Get filename extension used by @ctr->conversion_cmd. If @conv==NULL,
+   don't do locking.
+
+   Return value: filename extension used by @ctr->conversion_cmd or
+   NULL if an error occured. In case of an error, the error message is
+   stored in ctr->errormessage */
+static gchar *conversion_get_fname_extension (Conversion *conv, ConvTrack *ctr)
+{
+    gchar **argv;
+    gboolean result;
+    gchar *fname_extension = NULL;
+    gchar *std_out = NULL;
+    gint exit_status = 0;
+    GError *error = NULL;
+
+    g_return_val_if_fail (ctr, NULL);
+
+    /* get filename extension */
+    if (conv) g_mutex_lock (conv->mutex);
+    argv = build_argv_from_strings (ctr->conversion_cmd, "-x", NULL);
+    if (conv) g_mutex_unlock (conv->mutex);
+
+    result = g_spawn_sync (NULL,                /* working dir */
+			   argv,                /* argv        */
+			   NULL,                /* envp        */
+			   G_SPAWN_SEARCH_PATH, /* flags: use user's path */
+			   NULL,                /* child_setup function   */
+			   NULL,                /* user data              */
+			   &std_out,
+			   NULL,
+			   &exit_status,
+			   &error);
+
+    if (result == FALSE)
+    {
+	if (conv) g_mutex_lock (conv->mutex);
+	if (ctr->valid)
+	{
+	    gchar *buf = conversion_get_track_info (NULL, ctr);
+	    ctr->errormessage =
+		g_strdup_printf (_("Conversion of '%s' failed: '%s'.\n\n"),
+				 buf,
+				 error->message);
+	    g_free (buf);
+	}
+	if (conv) g_mutex_unlock (conv->mutex);
+	g_error_free (error);
+    }
+    else if (WEXITSTATUS (exit_status) != 0)
+    {
+	if (conv) g_mutex_lock (conv->mutex);
+	if (ctr->valid)
+	{
+	    gchar *buf = conversion_get_track_info (NULL, ctr);
+	    ctr->errormessage =
+		g_strdup_printf (_("Conversion of '%s' failed: '%s %s' returned exit status %d.\n\n"),
+				 buf,
+				 argv[0], argv[1],
+				 WEXITSTATUS (exit_status));
+	    g_free (buf);
+	}
+	if (conv) g_mutex_unlock (conv->mutex);
+	result = FALSE;
+    }
+
+    /* retrieve filename extension */
+    if (std_out && (strlen (std_out) > 0))
+    {
+	gint len = strlen (std_out);
+	fname_extension = std_out;
+	std_out = NULL;
+	if (fname_extension[len-1] == '\n')
+	{
+	    fname_extension[len-1] = 0;
+	}
+    }
+
+    if (!fname_extension || (strlen (fname_extension) == 0))
+    {   /* no a valid filename extension */
+	if (conv) g_mutex_lock (conv->mutex);
+	if (ctr->valid)
+	{
+	    gchar *buf = conversion_get_track_info (NULL, ctr);
+	    ctr->errormessage =
+		g_strdup_printf (_("Conversion of '%s' failed: '%s %s' did not return filename extension as expected.\n\n"),
+				 buf,
+				 argv[0], argv[1]);
+	    g_free (buf);
+	}
+	if (conv) g_mutex_unlock (conv->mutex);
+	result = FALSE;
+    }
+
+    g_strfreev (argv);
+    argv = NULL;
+
+    if (result == FALSE)
+    {
+	g_free (std_out);
+	g_free (fname_extension);
+	fname_extension = NULL;;
+    }
+
+    return fname_extension;
+}
+
+
+/* Sets a valid filename.
+
+   Return value: TRUE if everything went fine. In this case
+   ctr->converted_filename contains the filename to use. If that file
+   already exists no conversion is necessary.
+   FALSE is returned if some error occured, in which case
+   ctr->errormessage may be set. */
+static gboolean conversion_set_valid_filename (Conversion *conv, ConvTrack *ctr)
+{
+    gboolean result = TRUE;
+
+    g_return_val_if_fail (conv, FALSE);
+    g_return_val_if_fail (ctr, FALSE);
+
+    g_mutex_lock (conv->mutex);
+    if (ctr->valid)
+    {
+	gint i;
+	gchar *rootdir;
+	gchar *basename;
+	gchar *fname = NULL;
+
+	/* Check if converted_filename already exists. If yes, only
+	   keep it if the file is newer than the original file and the
+	   filename extension matches the intended
+	   conversion. Otherwise remove it and set a new filename */
+	if (ctr->converted_file)
+	{
+	    gboolean delete = FALSE;
+	    if (g_file_test (ctr->converted_file, G_FILE_TEST_IS_REGULAR))
+	    {
+		struct stat conv_stat, orig_stat;
+		if (g_str_has_suffix (ctr->converted_file, ctr->fname_extension))
+		{
+		    if (stat (ctr->converted_file, &conv_stat) == 0)
+		    {
+			if (stat (ctr->orig_file, &orig_stat) == 0)
+			{
+			    if (conv_stat.st_mtime > orig_stat.st_mtime)
+			    {   /* converted file is newer than
+				 * original file */
+				g_mutex_unlock (conv->mutex);
+				return TRUE;
+			    }
+			    else
+			    {   /* converted file is older than original file */
+				delete = TRUE;
+			    }
+			}
+			else
+			{   /* error reading original file */
+			    char *buf = conversion_get_track_info (NULL, ctr);
+			    ctr->errormessage =
+				g_strdup_printf (_("Conversion of '%s' failed: Could not access original file '%s' (%s).\n\n"),
+						 buf,
+						 ctr->orig_file,
+						 strerror (errno));
+			    g_free (buf);
+			    g_mutex_unlock (conv->mutex);
+			    return FALSE;
+			}
+		    }
+		}
+		else
+		{
+		    delete = TRUE;
+		}
+	    }
+	    if (delete)
+	    {
+		g_remove (ctr->converted_file);
+	    }
+	    g_free (ctr->converted_file);
+	    ctr->converted_file = NULL;
+	}
+
+	if (!conv->cachedir)
+	{
+	    g_mutex_unlock (conv->mutex);
+	    g_return_val_if_reached (FALSE);
+	}
+
+	basename = g_build_filename (conv->cachedir, ctr->fname_root, NULL);
+
+	g_mutex_unlock (conv->mutex);
+
+	i=0;
+	do
+	{
+	    g_free (fname);
+	    fname = g_strdup_printf ("%s-%p-%d.%s",
+				     basename,
+				     g_thread_self (),
+				     i,
+				     ctr->fname_extension);
+	    ++i;
+	} while (g_file_test (fname, G_FILE_TEST_EXISTS));
+
+	rootdir = g_path_get_dirname (fname);
+
+	g_mutex_lock (conv->mutex);
+	result = mkdirhier (rootdir, TRUE);
+	if (result == FALSE)
+	{
+	    if (ctr->valid)
+	    {
+		gchar *buf = conversion_get_track_info (NULL, ctr);
+		ctr->errormessage =
+		    g_strdup_printf (_("Conversion of '%s' failed: Could not create directory '%s'.\n\n"),
+				     buf,
+				     rootdir);
+		g_free (buf);
+	    }
+	}
+	else
+	{
+	    ctr->converted_file = fname;
+	    fname = NULL;
+	}
+	g_free (rootdir);
+	g_free (fname);
+    }
+    g_mutex_unlock (conv->mutex);
+
+    return result;
+}
+
+
+/* Used to set the process group ID of the spawned shell, so that we
+   can kill the shell as well as all its children in case of an
+   abort of the conversion.
+   For some reason this does not work with setpgid(child_pid, 0) just
+   after the g_spawn_async_with_pipes() and fails with "No such
+   process" */
+static void pgid_setup (gpointer user_data)
+{
+    /* this will not work nicely with windows for the reason alone
+       that on windows this function is called in the parent process,
+       whereas this has to be called in the child process as is done
+       in LINUX */
+    setpgid (0, 0);
+}
+
+
+/* Convert @ctr.
+ *
+ * Return value: TRUE if everything went well, FALSE otherwise.
+ */
+static gboolean conversion_convert_track (Conversion *conv, ConvTrack *ctr)
+{
+    gboolean result = FALSE;
+
+    g_return_val_if_fail (conv, FALSE);
+    g_return_val_if_fail (ctr, FALSE);
+
+    /* set valid output filename */
+    if (!conversion_set_valid_filename (conv, ctr))
+    {   /* some error occured */
+	return FALSE;
+    }
+
+    g_mutex_lock (conv->mutex);
+    if (ctr->converted_file && ctr->valid)
+    {
+	if (g_file_test (ctr->converted_file, G_FILE_TEST_EXISTS))
+	{   /* a valid converted file already exists. */
+	    result = TRUE;
+	}
+	else
+	{   /* start conversion */
+	    gchar **argv;
+	    GError *error = NULL;
+	    GPid child_pid;
+
+	    argv = build_argv_from_strings (ctr->conversion_cmd,
+					    "-a", ctr->artist,
+					    "-A", ctr->album,
+					    "-T", ctr->track_nr,
+					    "-t", ctr->title,
+					    "-g", ctr->genre,
+					    "-y", ctr->year,
+					    "-c", ctr->comment,
+					    "-f", ctr->converted_file,
+					    ctr->orig_file,
+					    NULL);
+
+	    result = g_spawn_async_with_pipes (
+		                  NULL,         /* working dir    */
+				  argv,         /* command line   */
+				  NULL,         /* envp           */
+				  G_SPAWN_SEARCH_PATH |
+				  G_SPAWN_DO_NOT_REAP_CHILD,
+				  pgid_setup,   /* setup func     */
+				  NULL,         /* user data      */
+				  &ctr->pid,    /* child's PID    */
+				  NULL,         /* child's stdin  */
+				  NULL,         /* child's stdout */
+				  &ctr->stderr, /* child's stderr */
+				  &error);
+
+	    child_pid = ctr->pid;
+
+	    g_strfreev (argv);
+	    argv = NULL;
+
+	    if (result == FALSE)
+	    {
+		if (ctr->valid)
+		{
+		    gchar *buf = conversion_get_track_info (NULL, ctr);
+		    ctr->errormessage =
+			g_strdup_printf (_("Conversion of '%s' failed: '%s'.\n\n"),
+					 buf,
+					 error->message);
+		    g_free (buf);
+		}
+		g_error_free (error);
+	    }
+	    else
+	    {
+		gint status;
+
+		/* set up i/o channel to main thread */
+		ctr->gio_channel = g_io_channel_unix_new (ctr->stderr);
+		g_io_channel_set_flags (ctr->gio_channel,
+					G_IO_FLAG_NONBLOCK, NULL);
+		g_io_channel_set_close_on_unref (ctr->gio_channel, TRUE);
+
+		g_mutex_unlock (conv->mutex);
+
+		waitpid (child_pid, &status, 0);
+
+		g_mutex_lock (conv->mutex);
+
+		ctr->pid = 0;
+
+		if (WIFEXITED(status) && (WEXITSTATUS(status) != 0))
+		{   /* script exited normally but with an error */
+		    if (ctr->valid)
+		    {
+			gchar *buf = conversion_get_track_info (NULL, ctr);
+			ctr->errormessage =
+			    g_strdup_printf (_("Conversion of '%s' failed: '%s' returned exit status %d.\n\n"),
+					     buf,
+					     ctr->conversion_cmd,
+					     WEXITSTATUS (status));
+			g_free (buf);
+		    }
+		    if (g_file_test (ctr->converted_file, G_FILE_TEST_EXISTS))
+		    {
+			g_remove (ctr->converted_file);
+		    }
+		    g_free (ctr->converted_file);
+		    ctr->converted_file = NULL;
+		    result = FALSE;
+		}
+		else if (WIFSIGNALED(status))
+		{   /* script was terminated by a signal (killed) */
+		    if (g_file_test (ctr->converted_file, G_FILE_TEST_EXISTS))
+		    {
+			g_remove (ctr->converted_file);
+		    }
+		    g_free (ctr->converted_file);
+		    ctr->converted_file = NULL;
+		    result = FALSE;
+		}
+	    }
+	}
+    }
+
+    if (result == TRUE)
+    {   /* determine size of new file */
+	struct stat statbuf;
+	if (g_stat (ctr->converted_file, &statbuf) == 0)
+	{
+	    ctr->converted_size = statbuf.st_size;
+	}
+	else
+	{   /* an error occured after all */
+	    gchar *buf = conversion_get_track_info (NULL, ctr);
+	    ctr->errormessage = 
+		g_strdup_printf (_("Conversion of '%s' failed: could not stat the converted file '%s'.\n\n"),
+				 buf,
+				 ctr->converted_file);
+	    g_free (buf);
+	    g_free (ctr->converted_file);
+	    ctr->converted_file = NULL;
+	    result = FALSE;
+	}
+    }
+
+    g_mutex_unlock (conv->mutex);
+
+    return result;
+}
+
+
+/* Work through the conv->scheduled list and convert the next waiting
+   track.
+   As long as there is a track in conv->scheduled, the conversion runs
+   through at least once. The dirsize and number of threads is only
+   checked _after_ each conversion.
+   The next track processed is always the last one in the list -- new
+   tracks should be prepended.
+*/
+static gpointer conversion_thread (gpointer data)
+{
+    Conversion *conv = data;
+    GList *gl;
+
+    g_return_val_if_fail (conv, NULL);
+
+    g_mutex_lock (conv->mutex);
+
+    debug ("%p thread entered\n", g_thread_self ());
+
+    if (conv->scheduled)
+    {
+	do
+	{
+	    gboolean conversion_ok;
+	    ConvTrack *ctr;
+
+	    debug ("%p thread deep\n", g_thread_self ());
+
+	    /* remove first scheduled entry and add it to processing */
+	    gl = g_list_last (conv->scheduled);
+	    g_return_val_if_fail (gl, (g_mutex_unlock(conv->mutex), NULL));
+	    ctr = gl->data;
+	    conv->scheduled = g_list_remove_link (conv->scheduled, gl);
+	    g_return_val_if_fail (ctr, (g_mutex_unlock(conv->mutex), NULL));
+	    if (ctr->valid)
+	    {   /* attach to processing queue */
+		conv->processing = g_list_concat (gl, conv->processing);
+		/* indicate thread number processing this track */
+		ctr->threadnum = g_list_index (conv->threads, g_thread_self());
+		gl = NULL; /* gl is not guaranteed to remain the same
+			      for a given ctr -- make sure we don't
+			      use it by accident */
+	    }
+	    else
+	    {   /* this node is not valid any more */
+		conversion_convtrack_free (ctr);
+		g_list_free (gl);
+		continue;
+	    }
+
+	    conv->conversion_force = FALSE;
+
+	    g_mutex_unlock (conv->mutex);
+
+	    debug ("%p thread converting\n", g_thread_self ());
+
+	    /* convert */
+	    conversion_ok = conversion_convert_track (conv, ctr);
+
+	    debug ("%p thread conversion finished (%d:%s)\n",
+		   g_thread_self (),
+		   conversion_ok,
+		   ctr->converted_file);
+
+	    g_mutex_lock (conv->mutex);
+
+	    /* remove from processing queue */
+	    gl = g_list_find (conv->processing, ctr);
+	    g_return_val_if_fail (gl, (g_mutex_unlock(conv->mutex), NULL));
+	    conv->processing = g_list_remove_link (conv->processing, gl);
+
+	    if (ctr->valid)
+	    {   /* track is still valid */
+		if (conversion_ok)
+		{   /* add to converted */
+		    conv->converted = g_list_concat (gl, conv->converted);
+		}
+		else
+		{   /* add to failed */
+		    conv->failed = g_list_concat (gl, conv->failed);
+		}
+	    }
+	    else
+	    {   /* track is no longer valid -> remove converted file
+		 * and drop the entry */
+		/* remove (converted_file) */
+		g_list_free (gl);
+		conversion_convtrack_free (ctr);
+	    }
+
+	    g_mutex_unlock (conv->mutex);
+
+	    /* clean up directory and recalculate dirsize */
+	    conversion_prune_dir (conv);
+
+	    g_mutex_lock (conv->mutex);
+
+	} while (((conv->dirsize <= conv->max_dirsize) || conv->conversion_force) &&
+		 (conv->threads_num <= conv->max_threads_num) &&
+		 (conv->scheduled != NULL));
+    }
+
+    /* remove thread from thread list */
+    gl = g_list_find (conv->threads, g_thread_self());
+    if (gl)
+    {
+	gl->data = NULL;
+    }
+    else
+    {
+	fprintf (stderr, "***** programming error -- g_thread_self not found in threads list\n");
+    }
+
+    /* reset force flag if we weren't cancelled because of too many
+       threads */
+    if (conv->threads_num <= conv->max_threads_num)
+	conv->conversion_force = FALSE;
+
+    /* reduce count of running threads */
+    --conv->threads_num;
+
+    g_mutex_unlock (conv->mutex);
+
+    debug ("%p thread exit\n", g_thread_self ());
+
+    return NULL;
+}
+
+
+/* ------------------------------------------------------------
+ *
+ * Background-transfer specific code
+ *
+ * ------------------------------------------------------------*/
+
+
+/* Count the number of ConvTracks in @list that belong to @itdb */
+static gint transfer_get_status_count (iTunesDB *itdb, GList *list)
+{
+    GList *gl;
+    gint count = 0;
+    for (gl=list; gl; gl=gl->next)
+    {
+	ConvTrack *ctr = gl->data;
+	g_return_val_if_fail (ctr, 0);
+	if (ctr->valid && (ctr->itdb == itdb))
+	{
+	    ++count;
+	}
+    }
+    return count;
+}
+
+
+/* return the status of the current transfer process or -1 when an
+ * assertion fails. */
+static FileTransferStatus transfer_get_status (Conversion *conv,
+					       iTunesDB *itdb,
+					       gint *to_convert_num,
+					       gint *converting_num,
+					       gint *to_transfer_num,
+					       gint *transferred_num,
+					       gint *failed_num)
+{
+    TransferItdb *tri;
+    FileTransferStatus status;
+
+    g_return_val_if_fail (conv && itdb, -1);
+
+    g_mutex_lock (conv->mutex);
+
+    tri = transfer_get_tri (conv, itdb);
+    g_return_val_if_fail (tri, (g_mutex_unlock (conv->mutex), -1));
+    status = tri->status;
+
+    if (to_convert_num)
+    {
+	*to_convert_num =
+	    transfer_get_status_count (itdb, conv->scheduled) +
+	    transfer_get_status_count (itdb, conv->processing);
+    }
+
+    if (converting_num)
+    {
+	*converting_num = transfer_get_status_count (itdb, conv->processing);
+    }
+
+    if (to_transfer_num)
+    {
+	*to_transfer_num =
+	    transfer_get_status_count (itdb, conv->converted) +
+	    transfer_get_status_count (itdb, conv->finished) +
+	    transfer_get_status_count (itdb, tri->scheduled) +
+	    transfer_get_status_count (itdb, tri->processing);
+    }
+
+    if (transferred_num || failed_num)
+    {
+	GList *gl;
+	gint transferred = 0;
+	gint failed = 0;
+
+	for (gl=tri->finished; gl; gl=gl->next)
+	{
+	    ConvTrack *ctr = gl->data;
+	    g_return_val_if_fail (ctr, (g_mutex_unlock (conv->mutex), -1));
+
+	    if (ctr->valid)
+	    {
+		if (ctr->track->transferred) ++transferred;
+		else                         ++failed;
+	    }
+	}
+
+	if (transferred_num)
+	{
+	    *transferred_num = transferred +
+		transfer_get_status_count (itdb, tri->transferred);
+	}
+
+	if (failed_num)
+	{
+	    *failed_num = failed +
+		transfer_get_status_count (itdb, conv->failed) +
+		transfer_get_status_count (itdb, tri->failed);
+	}
+    }
+
+    g_mutex_unlock (conv->mutex);
+
+    return status;
+}
+
+/* removes all transferred tracks of @itdb to make sure the files will
+   not be removed from the iPod when file_convert_cancel is
+   called. This function will wait until all tracks in the
+   'transferred' list have been finalized and put into 'finished'. */
+static void transfer_ack_itdb (Conversion *conv, iTunesDB *itdb)
+{
+    GList *gl;
+    TransferItdb *tri;
+
+    g_return_if_fail (conv && itdb);
+
+    g_mutex_lock (conv->mutex);
+
+    tri = transfer_get_tri (conv, itdb);
+    if (!tri)
+    {
+	g_mutex_unlock (conv->mutex);
+	g_return_if_reached ();
+    }
+
+    if (tri->transferred)
+    {   /* finalize the tracks by calling the scheduler directly */
+	conversion_scheduler_unlocked (conv);
+    }
+
+    for (gl=tri->finished; gl; gl=gl->next)
+    {
+	ConvTrack *ctr = gl->data;
+	if (!ctr)
+	{
+	    g_mutex_unlock (conv->mutex);
+	    g_return_if_reached ();
+	}
+	conversion_convtrack_free (ctr);
+    }
+    g_list_free (tri->finished);
+    tri->finished = NULL;
+
+    g_mutex_unlock (conv->mutex);
+}
+
+
+/* Get a list of all failed tracks. Examine etr->conversion_status to
+   see whether the conversion or transfer has failed. In the latter
+   conversion_status is either FILE_CONVERT_INACTIVE or
+   FILE_CONVERT_CONVERTED. You must g_list_free() the returned list
+   after use. */
+static GList *transfer_get_failed_tracks (Conversion *conv, iTunesDB *itdb)
+{
+    TransferItdb *tri;
+    GList *gl;
+    GList *tracks = NULL;
+
+    g_return_val_if_fail (conv && itdb, NULL);
+
+    g_mutex_lock (conv->mutex);
+
+    tri = transfer_get_tri (conv, itdb);
+    g_return_val_if_fail (tri, (g_mutex_unlock (conv->mutex), NULL));
+
+    if (conv->failed || tri->failed)
+    {   /* move the tracks over to tri->finished by calling the
+	   scheduler directly */
+	conversion_scheduler_unlocked (conv);
+    }
+
+    for (gl=tri->finished; gl; gl=gl->next)
+    {
+	ConvTrack *ctr = gl->data;
+	g_return_val_if_fail (ctr, (g_mutex_unlock (conv->mutex), NULL));
+
+	if (ctr->valid)
+	{
+	    if (!ctr->dest_filename)
+	    {
+		tracks = g_list_prepend (tracks, ctr->track);
+	    }
+	}
+    }
+
+    g_mutex_unlock (conv->mutex);
+
+    return tracks;
+}
+
+
+static void transfer_reschedule (Conversion *conv, iTunesDB *itdb)
+{
+    TransferItdb *tri;
+    GList *gl, *next;
+    GList *tracks = NULL;
+
+    g_return_if_fail (conv && itdb);
+
+    g_mutex_lock (conv->mutex);
+
+    tri = transfer_get_tri (conv, itdb);
+    if (!tri)
+    {
+	g_mutex_unlock (conv->mutex);
+	g_return_if_reached ();
+    }
+
+    if (conv->failed || tri->failed)
+    {   /* move the tracks over to tri->finished by calling the
+	   scheduler directly */
+	conversion_scheduler_unlocked (conv);
+    }
+
+    for (gl=tri->finished; gl; gl=next)
+    {
+	ConvTrack *ctr = gl->data;
+	next = gl->next;
+	if (!ctr)
+	{
+	    g_mutex_unlock (conv->mutex);
+	    g_return_if_reached ();
+	}
+
+	if (ctr->valid)
+	{
+	    if (!ctr->dest_filename)
+	    {
+		ExtraTrackData *etr;
+		if (!ctr->track || !ctr->track->userdata)
+		{
+		    g_mutex_unlock (conv->mutex);
+		    g_return_if_reached ();
+		}
+		etr = ctr->track->userdata;
+		switch (etr->conversion_status)
+		{
+		case FILE_CONVERT_INACTIVE:
+		case FILE_CONVERT_CONVERTED:
+		    /* This track failed during transfer */
+		    tri->finished = g_list_remove_link (tri->finished, gl);
+		    tri->scheduled = g_list_concat (gl, tri->scheduled);
+		    break;
+		default:
+		    /* This track failed during conversion */
+		    tri->finished = g_list_delete_link (tri->finished, gl);
+		    tracks = g_list_prepend (tracks, ctr->track);
+		    conversion_convtrack_free (ctr);
+		    break;
+		}
+	    }
+	}
+    }
+
+    g_mutex_unlock (conv->mutex);
+
+    /* reschedule all failed conversion tracks */
+    for (gl=tracks; gl; gl=gl->next)
+    {
+	conversion_add_track (conv, gl->data);
+    }
+
+    g_list_free (tracks);
+}
+
+
+/* reset the FILE_TRANSFER_DISK_FULL status to force the continuation
+   of the transfering process even if the disk was previously full. At
+   the same time the conversion process is forced to restart even if
+   the disk space was already used up. */
+static void transfer_continue (Conversion *conv, iTunesDB *itdb)
+{
+    TransferItdb *tri;
+
+    g_return_if_fail (conv && itdb);
+
+    g_mutex_lock (conv->mutex);
+
+    tri = transfer_get_tri (conv, itdb);
+    if (!tri)
+    {
+	g_mutex_unlock (conv->mutex);
+	g_return_if_reached ();
+    }
+
+    /* signal to continue transfer even if disk was full previously */
+    if (tri->status == FILE_TRANSFER_DISK_FULL)
+    {
+	tri->status = FILE_TRANSFER_IDLE;
+    }
+
+    /* make sure at least one thread is started even if the
+     * dirsize is too large */
+    if (conv->threads_num == 0)
+	conv->conversion_force = TRUE;
+
+    g_mutex_unlock (conv->mutex);
+}    
+
+
+/* set the tri->transfer flag to TRUE */
+static void transfer_activate (Conversion *conv, iTunesDB *itdb, gboolean active)
+{
+    TransferItdb *tri;
+
+    g_return_if_fail (conv && itdb);
+
+    g_mutex_lock (conv->mutex);
+
+    tri = transfer_get_tri (conv, itdb);
+    if (!tri)
+    {
+	g_mutex_unlock (conv->mutex);
+	g_return_if_reached ();
+    }
+
+    /* signal to continue transfer even if disk was full previously */
+    tri->transfer = active;
+
+    g_mutex_unlock (conv->mutex);
+}
+
+
+/* set the tri->transfer flag to whatever the preferences settings are */
+static void transfer_reset (Conversion *conv, iTunesDB *itdb)
+{
+    TransferItdb *tri;
+
+    g_return_if_fail (conv && itdb);
+
+    g_mutex_lock (conv->mutex);
+
+    tri = transfer_get_tri (conv, itdb);
+    if (!tri)
+    {
+	g_mutex_unlock (conv->mutex);
+	g_return_if_reached ();
+    }
+
+    /* signal to continue transfer even if disk was full previously */
+    tri->transfer = prefs_get_int (FILE_CONVERT_BACKGROUND_TRANSFER);
+
+    g_mutex_unlock (conv->mutex);
+}
+
+
+/* You must free the GLists before calling this function. */
+static void transfer_free_transfer_itdb (TransferItdb *tri)
+{
+    g_return_if_fail (tri);
+    g_return_if_fail (!tri->scheduled && !tri->processing &&
+		      !tri->transferred && !tri->finished &&
+		      !tri->failed);
+    g_return_if_fail (tri->thread);
+
+    g_free (tri);
+}
+
+
+/* Add a TransferItdb entry for @itdb. conv->mutex must be locked. */
+static TransferItdb *transfer_add_itdb (Conversion *conv, iTunesDB *itdb)
+{
+    TransferItdb *tri;
+
+    g_return_val_if_fail (conv && itdb, NULL);
+
+    tri = g_new0 (TransferItdb, 1);
+    tri->transfer = prefs_get_int (FILE_CONVERT_BACKGROUND_TRANSFER);
+    tri->status = FILE_TRANSFER_IDLE;
+    tri->valid = TRUE;
+    tri->conv = conv;
+    tri->itdb = itdb;
+    conv->transfer_itdbs = g_list_prepend (conv->transfer_itdbs, tri);
+
+    return tri;
+}
+
+
+static int transfer_get_tri_cmp (gconstpointer a, gconstpointer b)
+{
+    const TransferItdb *tri = a;
+    const iTunesDB *itdb = b;
+
+    g_return_val_if_fail (tri, 0);
+
+    if (tri->itdb == itdb) return 0;
+    return -1;
+}
+
+
+/* Return a pointer to the TransferItdb belonging to @itdb. You must
+ * lock conv->mutex yourself. If no entry exists, one is created. If
+ * the TransferItdb is invalid, a new one is created. */
+static TransferItdb *transfer_get_tri (Conversion *conv, iTunesDB *itdb)
+{
+    GList *link;
+
+    g_return_val_if_fail (conv && itdb, NULL);
+
+    link = g_list_find_custom (conv->transfer_itdbs, itdb, transfer_get_tri_cmp);
+
+    if (link)
+    {
+	TransferItdb *tri = link->data;
+	g_return_val_if_fail (tri, NULL);
+	/* only return if valid */
+	if (tri->valid)  return tri;
+    }
+
+    /* no entry exists -- let's create one */
+    return transfer_add_itdb (conv, itdb);
+}
+
+
+/* force at least one new call to conversion_prune_dir */
+static gpointer transfer_force_prune_dir (gpointer data)
+{
+    Conversion *conv = data;
+
+    g_mutex_lock (conv->mutex);
+
+    if (conv->prune_in_progress)
+    {   /* wait until current prune process is finished before calling
+	   conversion_prune_dir() again */
+	if (conv->force_prune_in_progress)
+	{   /* we already have another process waiting  */
+	    g_mutex_unlock (conv->mutex);
+	    return NULL;
+	}
+	conv->force_prune_in_progress = TRUE;
+	g_cond_wait (conv->prune_cond, conv->mutex);
+	conv->force_prune_in_progress = FALSE;
+    }
+
+    g_mutex_unlock (conv->mutex);
+
+    return conversion_prune_dir (conv);
+}
+
+
+/* return value:
+   FILE_TRANSFER_DISK_FULL: file could not be copied because the iPod
+   is full. tri->status is set as well.
+   FILE_TRANSFER_ERROR: another error occurred
+   FILE_TRANSFER_ACTIVE: copy went fine.
+*/
+static FileTransferStatus transfer_transfer_track (TransferItdb *tri,
+						   ConvTrack *ctr)
+{
+    FileTransferStatus result = FILE_TRANSFER_ERROR;
+    gboolean copy_success;
+    const gchar *source_file = NULL;
+    gchar *dest_file = NULL;
+    gchar *mountpoint = NULL;
+    Conversion *conv;
+    GError *error = NULL;
+
+    g_return_val_if_fail (tri && tri->conv, result);
+    g_return_val_if_fail (ctr, result);
+
+    conv = tri->conv;
+
+    g_mutex_lock (conv->mutex);
+
+    if (ctr->converted_file)
+    {
+	source_file = ctr->converted_file;
+    }
+    else
+    {
+	source_file = ctr->orig_file;
+    }
+
+    mountpoint = g_strdup (ctr->mountpoint);
+
+    g_mutex_unlock (conv->mutex);
+
+    g_return_val_if_fail (source_file && mountpoint, FALSE);
+
+    dest_file = itdb_cp_get_dest_filename (NULL, mountpoint, source_file, &error);
+
+    /* an error occurred */
+    if (!dest_file)
+    {
+	g_mutex_lock (conv->mutex);
+	if (error)
+	{
+	    ctr->errormessage = g_strdup_printf ("%s\n", error->message);
+	    g_error_free (error);
+	}
+	g_mutex_unlock (conv->mutex);
+	return result;
+    }
+
+    g_mutex_unlock (conv->mutex);
+
+    copy_success = itdb_cp (source_file, dest_file, &error);
+
+    g_mutex_lock (conv->mutex);
+
+    if (!copy_success)
+    {
+	if (error && (error->code == G_FILE_ERROR_NOSPC))
+	{   /* no space left on device */
+	    tri->status = FILE_TRANSFER_DISK_FULL;
+	    result = FILE_TRANSFER_DISK_FULL;
+	}
+	else
+	{
+	    if (ctr->valid)
+	    {
+		gchar *buf = conversion_get_track_info (NULL, ctr);
+		ctr->errormessage =
+		    g_strdup_printf (_("Transfer of '%s' failed. %s\n\n"),
+				     buf,
+				     error? error->message:"");
+		g_free (buf);
+	    }
+	}
+	if (error)
+	{
+	    g_error_free (error);
+	    error = NULL;
+	}
+    }
+    else
+    {   /* copy was successful */
+	debug ("%p copied\n", tri->itdb);
+	if (ctr->valid)
+	{
+	    ctr->dest_filename = dest_file;
+	    dest_file = NULL;
+	    result = FILE_TRANSFER_ACTIVE;
+	}
+    }
+
+    g_mutex_unlock (conv->mutex);
+
+    if (dest_file)
+    {   /* unsuccessful -- remove destination file if exists */
+	if (g_file_test (dest_file, G_FILE_TEST_EXISTS))
+	{
+	    g_remove (dest_file);
+	}
+    }
+
+    g_free (dest_file);
+    g_free (mountpoint);
+
+    return result;
+}
+	    
+
+
+
+
+static gpointer transfer_thread (gpointer data)
+{
+    TransferItdb *tri = data;
+    Conversion *conv;
+
+    g_return_val_if_fail (tri && tri->conv, NULL);
+    conv = tri->conv;
+
+    g_mutex_lock (conv->mutex);
+
+    debug ("%p transfer thread enter\n", tri->itdb);
+
+    while (tri->scheduled && (tri->transfer == TRUE) &&
+	   (tri->status != FILE_TRANSFER_DISK_FULL))
+    {
+	GList *gl;
+	ConvTrack *ctr;
+	FileTransferStatus status;
+
+	/* reset transfer force flag */
+	tri->status = FILE_TRANSFER_ACTIVE;
+
+	/* remove first scheduled entry and add it to processing */
+	gl = g_list_last (tri->scheduled);
+	g_return_val_if_fail (gl, (g_mutex_unlock(conv->mutex), NULL));
+
+	ctr = gl->data;
+	tri->scheduled = g_list_remove_link (tri->scheduled, gl);
+	g_return_val_if_fail (ctr, (g_mutex_unlock(conv->mutex), NULL));
+	if (tri->valid && ctr->valid)
+	{   /* attach to processing queue */
+	    tri->processing = g_list_concat (gl, tri->processing);
+	    /* indicate thread number processing this track */
+	    gl = NULL; /* gl is not guaranteed to remain the same
+			  for a given ctr -- make sure we don't
+			  use it by accident */
+	}
+	else
+	{   /* this node is not valid any more */
+	    conversion_convtrack_free (ctr);
+	    g_list_free (gl);
+	    continue;
+	}
+
+	g_mutex_unlock (conv->mutex);
+
+	debug ("%p thread transfer\n", ctr->itdb);
+
+	status = transfer_transfer_track (tri, ctr);
+
+	debug ("%p thread transfer finished (%d:%s)\n",
+	       ctr->itdb,
+	       status,
+	       ctr->dest_filename);
+
+	g_mutex_lock (conv->mutex);
+	
+	/* remove from processing queue */
+	gl = g_list_find (tri->processing, ctr);
+	g_return_val_if_fail (gl, (g_mutex_unlock(conv->mutex), NULL));
+	tri->processing = g_list_remove_link (tri->processing, gl);
+
+	if (ctr->valid)
+	{   /* track is still valid */
+	    if (status == FILE_TRANSFER_ACTIVE)
+	    {   /* add to converted */
+		tri->transferred = g_list_concat (gl, tri->transferred);
+	    }
+	    else if (status == FILE_TRANSFER_DISK_FULL)
+	    {   /* reschedule */
+		tri->scheduled = g_list_concat (tri->scheduled, gl);
+	    }
+	    else /* status == -1 */
+	    {   /* add to failed */
+		tri->failed = g_list_concat (gl, tri->failed);
+	    }
+	}
+	else
+	{   /* track is no longer valid -> remove the copied file and
+	     * drop the track */
+	    g_list_free (gl);
+	    if (ctr->dest_filename)
+	    {
+		g_unlink (ctr->dest_filename);
+	    }
+	    conversion_convtrack_free (ctr);
+	}
+
+	if (conv->dirsize > conv->max_dirsize)
+	{   /* we just transferred a track -- there should be space
+	       available again -> force a directory prune */
+	    g_thread_create_full (transfer_force_prune_dir,
+				  conv,        /* user data  */
+				  0,           /* stack size */
+				  FALSE,       /* joinable   */
+				  TRUE,        /* bound      */
+				  G_THREAD_PRIORITY_NORMAL,
+				  NULL);       /* error      */
+	}
+	
+    }
+
+    tri->thread = NULL;
+    if (tri->status != FILE_TRANSFER_DISK_FULL)
+	tri->status = FILE_TRANSFER_IDLE;
+
+    g_mutex_unlock (conv->mutex);
+
+    debug ("%p transfer thread exit\n", tri->itdb);
+
+    return NULL;
+}

Copied: gtkpod/trunk/src/file_convert.h (from rev 193, gtkpod/branches/upstream/current/src/file_convert.h)
===================================================================
--- gtkpod/trunk/src/file_convert.h	                        (rev 0)
+++ gtkpod/trunk/src/file_convert.h	2007-06-27 21:27:12 UTC (rev 194)
@@ -0,0 +1,89 @@
+/*
+|  File conversion started by Simon Naunton <snaunton gmail.com> in 2007
+|
+|  Copyright (C) 2002-2007 Jorg Schuler <jcsjcs at users.sourceforge.net>
+|  Part of the gtkpod project.
+|
+|  URL: http://gtkpod.sourceforge.net/
+|  URL: http://www.gtkpod.org
+|
+|  This program is free software; you can redistribute it and/or modify
+|  it under the terms of the GNU General Public License as published by
+|  the Free Software Foundation; either version 2 of the License, or
+|  (at your option) any later version.
+|
+|  This program is distributed in the hope that it will be useful,
+|  but WITHOUT ANY WARRANTY; without even the implied warranty of
+|  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+|  GNU General Public License for more details.
+|
+|  You should have received a copy of the GNU General Public License
+|  along with this program; if not, write to the Free Software
+|  Foundation, Inc., 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: file_convert.h 1065 2007-05-06 14:16:17Z jcsjcs $
+*/
+
+
+#ifndef __FILE_CONVERT_H_
+#define __FILE_CONVERT_H_
+
+#ifdef HAVE_CONFIG_H
+#   include <config.h>
+#endif
+
+#include <itdb.h>
+
+extern const gchar *FILE_CONVERT_CACHEDIR;
+extern const gchar *FILE_CONVERT_MAXDIRSIZE;
+extern const gchar *FILE_CONVERT_TEMPLATE;
+extern const gchar *FILE_CONVERT_MAX_THREADS_NUM;
+extern const gchar *FILE_CONVERT_DISPLAY_LOG;
+extern const gchar *FILE_CONVERT_BACKGROUND_TRANSFER;
+
+typedef enum
+{
+    FILE_CONVERT_INACTIVE = 0,
+    FILE_CONVERT_REQUIRED,
+    FILE_CONVERT_SCHEDULED,
+    FILE_CONVERT_FAILED,
+    FILE_CONVERT_REQUIRED_FAILED,
+    FILE_CONVERT_KILLED,
+    FILE_CONVERT_CONVERTED
+} FileConvertStatus;
+
+typedef enum
+{
+    FILE_TRANSFER_ERROR = -1,
+    FILE_TRANSFER_IDLE = 0,
+    FILE_TRANSFER_ACTIVE,
+    FILE_TRANSFER_DISK_FULL
+} FileTransferStatus;
+
+void file_convert_init (void);
+void file_convert_shutdown (void);
+void file_convert_prefs_changed (void);
+void file_convert_update_default_sizes (void);
+gboolean file_convert_add_track (Track *track);
+void file_convert_itdb_first (iTunesDB *itdb);
+void file_convert_continue (void);
+void file_convert_cancel_itdb (iTunesDB *itdb);
+void file_convert_cancel_track (Track *track);
+
+GList *file_transfer_get_failed_tracks (iTunesDB *itdb);
+FileTransferStatus file_transfer_get_status (iTunesDB *itdb,
+					     gint *to_convert_num,
+					     gint *converting_num,
+					     gint *to_transfer_num,
+					     gint *transferred_num,
+					     gint *failed_num);
+void file_transfer_ack_itdb (iTunesDB *itdb);
+void file_transfer_continue (iTunesDB *itdb);
+void file_transfer_activate (iTunesDB *itdb, gboolean active);
+void file_transfer_reset (iTunesDB *itdb);
+void file_transfer_reschedule (iTunesDB *itdb);
+#endif

Modified: gtkpod/trunk/src/file_export.c
===================================================================
--- gtkpod/trunk/src/file_export.c	2007-06-27 20:59:02 UTC (rev 193)
+++ gtkpod/trunk/src/file_export.c	2007-06-27 21:27:12 UTC (rev 194)
@@ -1,4 +1,4 @@
-/* Time-stamp: <2006-06-25 00:22:56 jcs>
+/* Time-stamp: <2007-02-24 13:22:58 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: file_export.c,v 1.64 2006/06/24 15:39:22 jcsjcs Exp $
+|  $Id: file_export.c 997 2007-02-24 05:48:33Z jcsjcs $
 */
 #ifdef HAVE_CONFIG_H
 #  include <config.h>
@@ -34,7 +34,7 @@
 #include "charset.h"
 #include "file.h"
 #include "info.h"
-#include "md5.h"
+#include "sha1.h"
 #include "misc.h"
 #include "misc_track.h"
 #include "prefs.h"
@@ -436,6 +436,7 @@
 	start = time(NULL);
 	for(l = fcd->tracks; l && !abort; l = l->next)
 	{
+	    gboolean resultWrite = TRUE;
 	    Track *tr = (Track*)l->data;
 
 	    fcd->track = tr;
@@ -456,18 +457,21 @@
 		    g_cond_timed_wait (cond, mutex, &gtime);
 		} while(!mutex_data);
 		g_mutex_unlock (mutex);
-		result &= (gboolean)GPOINTER_TO_INT(g_thread_join (thread));
+		resultWrite = (gboolean)GPOINTER_TO_INT(g_thread_join (thread));
+		result &= resultWrite;
 	    }
 	    else {
 		g_warning ("Thread creation failed, falling back to default.\n");
-		result &= write_track (fcd);
+		resultWrite = write_track (fcd);
+		result &= resultWrite;
 	    }
 #else
-	    result &= write_track (fcd);
+	    resultWrite = write_track (fcd);
+	    result &= resultWrite;
 	    while (widgets_blocked && gtk_events_pending ())
 		gtk_main_iteration ();
 #endif
-	    if (!result)
+	    if (!resultWrite)
 	    {
 		gtkpod_warning (_("Failed to write '%s-%s'\n"), tr->artist, tr->title);	
 	    }
@@ -712,8 +716,8 @@
     g_return_val_if_fail (itdb_d, NULL);
     g_return_val_if_fail (gtkpod_window, NULL);
 
-    if (!(itdb_s->usertype & GP_ITDB_TYPE_IPOD) ||
-	!(itdb_d->usertype & GP_ITDB_TYPE_LOCAL))
+    if (!((itdb_s->usertype & GP_ITDB_TYPE_IPOD) &&
+	  (itdb_d->usertype & GP_ITDB_TYPE_LOCAL)))
     {   /* drag is not from iPod to local database -> return copy of
 	 * @tracks */
 	return g_list_copy (tracks);
@@ -743,7 +747,7 @@
 	Track *tr = gl->data;
 	g_return_val_if_fail (tr, NULL);
 
-	otr = md5_track_exists (itdb_d, tr);
+	otr = sha1_track_exists (itdb_d, tr);
 
 	if (otr)
 	{
@@ -939,9 +943,9 @@
 
     num = g_list_length (fcd->tracks);
 
-    prefs_get_int_value (EXPORT_PLAYLIST_FILE_TYPE, &type);
-    prefs_get_int_value (EXPORT_PLAYLIST_FILE_SOURCE, &source);
-    prefs_get_string_value (EXPORT_PLAYLIST_FILE_TPL, &template);
+    type = prefs_get_int (EXPORT_PLAYLIST_FILE_TYPE);
+    source = prefs_get_int (EXPORT_PLAYLIST_FILE_SOURCE);
+    template = prefs_get_string (EXPORT_PLAYLIST_FILE_TPL);
     if (!template)
 	template = g_strdup (EXPORT_PLAYLIST_FILE_TPL_DFLT);
 

Modified: gtkpod/trunk/src/file_itunesdb.c
===================================================================
--- gtkpod/trunk/src/file_itunesdb.c	2007-06-27 20:59:02 UTC (rev 193)
+++ gtkpod/trunk/src/file_itunesdb.c	2007-06-27 21:27:12 UTC (rev 194)
@@ -1,6 +1,5 @@
-/* Time-stamp: <2006-06-25 15:57:03 jcs>
-|
-|  Copyright (C) 2002-2005 Jorg Schuler <jcsjcs at users sourceforge net>
+/*
+|  Copyright (C) 2002-2007 Jorg Schuler <jcsjcs at users sourceforge net>
 |  Part of the gtkpod project.
 | 
 |  URL: http://www.gtkpod.org/
@@ -24,7 +23,7 @@
 |
 |  This product is not supported/written/published by Apple!
 |
-|  $Id: file_itunesdb.c,v 1.99 2006/06/25 16:08:22 jcsjcs Exp $
+|  $Id: file_itunesdb.c 1562 2007-06-19 13:20:14Z jcsjcs $
 */
 
 #ifdef HAVE_CONFIG_H
@@ -32,20 +31,27 @@
 #endif
 
 #include <string.h>
-#include <stdlib.h>
+#include <glib/gstdio.h>
 #include "charset.h"
 #include "display.h"
 #include "file.h"
 #include "itdb.h"
 #include "info.h"
-#include "md5.h"
+#include "sha1.h"
 #include "misc.h"
 #include "misc_track.h"
 #include "prefs.h"
 #include "syncdir.h"
 #include "tools.h"
 #include "ipod_init.h"
+#include "file_convert.h"
+#include "display_coverart.h"
 
+#define _TO_STR(x) #x
+#define TO_STR(x) _TO_STR(x)
+#define debug(s) printf(__FILE__":" TO_STR(__LINE__) ":" s)
+#define debugx(s,...) printf(__FILE__":" TO_STR(__LINE__) ":" s,__VA_ARGS__)
+
 /*------------------------------------------------------------------*\
  *                                                                  *
  *      Handle Import of iTunesDB                                   *
@@ -53,7 +59,7 @@
 \*------------------------------------------------------------------*/
 
 /* only used when reading extended info from file */
-/* see definition of Track in track.h for explanations */
+/* see definition of ExtraTrackData in display_itdb.h for explanations */
 struct track_extended_info
 {
     guint ipod_id;
@@ -62,36 +68,42 @@
     time_t mtime;
     gchar *thumb_path_locale;
     gchar *thumb_path_utf8;
-    gchar *md5_hash;
+    gchar *converted_file;
+    gchar *sha1_hash;
     gchar *charset;
     gchar *hostname;
     gchar *ipod_path;
-    gint32 oldsize;
-    guint32 playcount;
-    guint32 rating;        /* still read but never written */
+    guint64 local_itdb_id;
+    guint64 local_track_dbid;
     gboolean transferred;
 };
 
-#ifdef G_THREADS_ENABLED
-/* Thread specific */
-static  GMutex *mutex = NULL;
-static GCond  *cond = NULL;
-static gboolean mutex_data = FALSE;
-#endif
-/* Used to keep the "extended information" until the iTunesDB is
-   loaded */
+typedef struct {
+    GMutex *mutex;           /* mutex for this struct          */
+    gboolean abort;          /* TRUE = abort                   */
+    GCond  *finished_cond;   /* used to signal end of thread   */
+    gboolean finished;       /* background thread has finished */
+    Track *track;            /* Current track                  */
+    const gchar *filename;   /* Filename to copy/remove        */
+    /* Widgets for progress dialog */
+    GtkWidget *dialog;
+    GtkWidget *textlabel;
+    GtkProgressBar *progressbar;
+} TransferData;
+
+
+/* Used to keep the "extended information" until the iTunesDB is loaded */
 static GHashTable *extendedinfohash = NULL;
-static GHashTable *extendedinfohash_md5 = NULL;
+static GHashTable *extendedinfohash_sha1 = NULL;
 static GList *extendeddeletion = NULL;
 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
+/* num/total are used to give updates in case the sha1 checksums have
    to be matched against the files which is very time consuming */
 void fill_in_extended_info (Track *track, gint32 total, gint32 num)
 {
@@ -109,23 +121,23 @@
       ipod_id = track->id;
       sei = g_hash_table_lookup (extendedinfohash, &ipod_id);
   }
-  if (!sei && extendedinfohash_md5)
+  if (!sei && extendedinfohash_sha1)
   {
       gtkpod_statusbar_message (
-	  _("Matching MD5 checksum for file %d/%d"),
+	  _("Matching SHA1 checksum for file %d/%d"),
 	  num, total);
       while (widgets_blocked && gtk_events_pending ())
 	  gtk_main_iteration ();
 
-      if (!etr->md5_hash)
+      if (!etr->sha1_hash)
       {
 	  gchar *filename = get_file_name_from_source (track, SOURCE_IPOD);
-	  etr->md5_hash = md5_hash_on_filename (filename, FALSE);
+	  etr->sha1_hash = sha1_hash_on_filename (filename, FALSE);
 	  g_free (filename);
       }
-      if (etr->md5_hash)
+      if (etr->sha1_hash)
       {
-	  sei = g_hash_table_lookup (extendedinfohash_md5, etr->md5_hash);
+	  sei = g_hash_table_lookup (extendedinfohash_sha1, etr->sha1_hash);
       }
   }
   if (sei) /* found info for this id! */
@@ -141,20 +153,18 @@
 	  etr->thumb_path_locale = g_strdup (sei->thumb_path_locale);
       if (sei->thumb_path_utf8 && !etr->thumb_path_utf8)
 	  etr->thumb_path_utf8 = g_strdup (sei->thumb_path_utf8);
-      if (sei->md5_hash && !etr->md5_hash)
-	  etr->md5_hash = g_strdup (sei->md5_hash);
+      if (sei->sha1_hash && !etr->sha1_hash)
+	  etr->sha1_hash = g_strdup (sei->sha1_hash);
       if (sei->charset && !etr->charset)
 	  etr->charset = g_strdup (sei->charset);
       if (sei->hostname && !etr->hostname)
 	  etr->hostname = g_strdup (sei->hostname);
-      etr->oldsize = sei->oldsize;
-      track->playcount += sei->playcount;
-      /* FIXME: This means that the rating can never be reset to 0
-       * by the iPod */
-      if (track->rating == 0)
-	  track->rating = sei->rating;
+      if (sei->converted_file && !etr->converted_file)
+	  etr->converted_file = g_strdup (sei->converted_file);
+      etr->local_itdb_id = sei->local_itdb_id;
+      etr->local_track_dbid = sei->local_track_dbid;
       track->transferred = sei->transferred;
-      /* don't remove the md5-hash -- there may be duplicates... */
+      /* don't remove the sha1-hash -- there may be duplicates... */
       if (extendedinfohash)
 	  g_hash_table_remove (extendedinfohash, &ipod_id);
   }
@@ -172,9 +182,10 @@
 	g_free (sei->pc_path_utf8);
 	g_free (sei->thumb_path_locale);
 	g_free (sei->thumb_path_utf8);
-	g_free (sei->md5_hash);
+	g_free (sei->sha1_hash);
 	g_free (sei->charset);
 	g_free (sei->hostname);
+	g_free (sei->converted_file);
 	g_free (sei->ipod_path);
 	g_free (sei);
     }
@@ -187,10 +198,10 @@
 	g_hash_table_destroy (extendedinfohash);
 	extendedinfohash = NULL;
     }
-    if (extendedinfohash_md5)
+    if (extendedinfohash_sha1)
     {
-	g_hash_table_destroy (extendedinfohash_md5);
-	extendedinfohash_md5 = NULL;
+	g_hash_table_destroy (extendedinfohash_sha1);
+	extendedinfohash_sha1 = NULL;
     }
     if (extendeddeletion)
     {
@@ -209,7 +220,7 @@
 /* Return TRUE on success, FALSE otherwise */
 static gboolean read_extended_info (gchar *name, gchar *itunes)
 {
-    gchar *md5, buf[PATH_MAX], *arg, *line, *bufp;
+    gchar *sha1, buf[PATH_MAX];
     gboolean success = TRUE;
     gboolean expect_hash, hash_matched=FALSE;
     gint len;
@@ -224,8 +235,8 @@
 			name);
 	return FALSE;
     }
-    md5 = md5_hash_on_filename (itunes, FALSE);
-    if (!md5)
+    sha1 = sha1_hash_on_filename (itunes, FALSE);
+    if (!sha1)
     {
 	gtkpod_warning (_("Could not create hash value from itunesdb\n"));
 	fclose (fp);
@@ -236,6 +247,8 @@
     expect_hash = TRUE; /* next we expect the hash value (checksum) */
     while (success && fgets (buf, PATH_MAX, fp))
     {
+	gchar *line, *arg, *bufp;
+
 	/* allow comments */
 	if ((buf[0] == ';') || (buf[0] == '#')) continue;
 	arg = strchr (buf, '=');
@@ -255,10 +268,10 @@
 	{
 	    if(g_ascii_strcasecmp (line, "itunesdb_hash") == 0)
 	    {
-		if (strcmp (arg, md5) != 0)
+		if (strcmp (arg, sha1) != 0)
 		{
 		    hash_matched = FALSE;
-		    gtkpod_warning (_("iTunesDB '%s' does not match checksum in extended information file '%s'\ngtkpod will try to match the information using MD5 checksums. This may take a long time.\n\n"), itunes, name);
+		    gtkpod_warning (_("iTunesDB '%s' does not match checksum in extended information file '%s'\ngtkpod will try to match the information using SHA1 checksums. This may take a long time.\n\n"), itunes, name);
 		    while (widgets_blocked && gtk_events_pending ())
 			gtk_main_iteration ();
 		}
@@ -272,109 +285,110 @@
 	    {
 		gtkpod_warning (_("%s:\nExpected \"itunesdb_hash=\" but got:\"%s\"\n"), name, buf);
 		success = FALSE;
+		g_free (line);
 		break;
 	    }
 	}
-	else
-	    if(g_ascii_strcasecmp (line, "id") == 0)
-	    { /* found new id */
-		if (sei)
-		{
-		    if (sei->ipod_id != 0)
-		    { /* normal extended information */
-			if (hash_matched)
+	else if(g_ascii_strcasecmp (line, "id") == 0)
+	{ /* found new id */
+	    if (sei)
+	    {
+		if (sei->ipod_id != 0)
+		{ /* normal extended information */
+		    if (hash_matched)
+		    {
+			if (!extendedinfohash)
 			{
-			    if (!extendedinfohash)
-			    {
-				extendedinfohash = g_hash_table_new_full (
-				    g_int_hash,g_int_equal, NULL,hash_delete);
-			    }
-			    g_hash_table_insert (extendedinfohash,
-						 &sei->ipod_id, sei);
+			    extendedinfohash = g_hash_table_new_full (
+				g_int_hash,g_int_equal, NULL,hash_delete);
 			}
-			else if (sei->md5_hash)
+			g_hash_table_insert (extendedinfohash,
+					     &sei->ipod_id, sei);
+		    }
+		    else if (sei->sha1_hash)
+		    {
+			if (!extendedinfohash_sha1)
 			{
-			    if (!extendedinfohash_md5)
-			    {
-				extendedinfohash_md5 = g_hash_table_new_full (
-				    g_str_hash,g_str_equal, NULL,hash_delete);
-			    }
-			    g_hash_table_insert (extendedinfohash_md5,
-						 sei->md5_hash, sei);
+			    extendedinfohash_sha1 = g_hash_table_new_full (
+				g_str_hash,g_str_equal, NULL,hash_delete);
 			}
-			else
-			{
-			    hash_delete ((gpointer)sei);
-			}
+			g_hash_table_insert (extendedinfohash_sha1,
+					     sei->sha1_hash, sei);
 		    }
 		    else
-		    { /* this is a deleted track that hasn't yet been
-		         removed from the iPod's hard drive */
-			Track *track = gp_track_new ();
-			track->ipod_path = g_strdup (sei->ipod_path);
-			extendeddeletion = g_list_append (extendeddeletion,
-							  track);
-			hash_delete ((gpointer)sei); /* free sei */
+		    {
+			hash_delete ((gpointer)sei);
 		    }
-		    sei = NULL;
 		}
-		if (strcmp (arg, "xxx") != 0)
-		{
-		    sei = g_malloc0 (sizeof (struct track_extended_info));
-		    sei->ipod_id = atoi (arg);
+		else
+		{ /* this is a deleted track that hasn't yet been
+		     removed from the iPod's hard drive */
+		    Track *track = gp_track_new ();
+		    track->ipod_path = g_strdup (sei->ipod_path);
+		    extendeddeletion = g_list_append (extendeddeletion,
+						      track);
+		    hash_delete ((gpointer)sei); /* free sei */
 		}
+		sei = NULL;
 	    }
-	    else if (g_ascii_strcasecmp (line, "version") == 0)
-	    { /* found version */
-		extendedinfoversion = g_ascii_strtod (arg, NULL);
-	    }
-	    else if (sei == NULL)
+	    if (strcmp (arg, "xxx") != 0)
 	    {
-		gtkpod_warning (_("%s:\nFormat error: %s\n"), name, buf);
-		success = FALSE;
-		break;
+		sei = g_malloc0 (sizeof (struct track_extended_info));
+		sei->ipod_id = atoi (arg);
 	    }
-	    else if (g_ascii_strcasecmp (line, "hostname") == 0)
-		sei->hostname = g_strdup (arg);
-	    else if (g_ascii_strcasecmp (line, "filename_locale") == 0)
-		sei->pc_path_locale = g_strdup (arg);
-	    else if (g_ascii_strcasecmp (line, "filename_utf8") == 0)
-		sei->pc_path_utf8 = g_strdup (arg);
-	    else if (g_ascii_strcasecmp (line, "thumbnail_locale") == 0)
-		sei->thumb_path_locale = g_strdup (arg);
-	    else if (g_ascii_strcasecmp (line, "thumbnail_utf8") == 0)
-		sei->thumb_path_utf8 = g_strdup (arg);
-	    else if (g_ascii_strcasecmp (line, "md5_hash") == 0)
-	    {   /* only accept hash value if version is >= 0.53 or
-		   PATH_MAX is 4096 -- in 0.53 I changed the MD5 hash
-		   routine to using blocks of 4096 Bytes in
-		   length. Before it was PATH_MAX, which might be
-		   different on different architectures. */
-		if ((extendedinfoversion >= 0.53) || (PATH_MAX == 4096))
-		    sei->md5_hash = g_strdup (arg);
-	    }
-	    else if (g_ascii_strcasecmp (line, "charset") == 0)
-		sei->charset = g_strdup (arg);
-	    else if (g_ascii_strcasecmp (line, "oldsize") == 0)
-		sei->oldsize = atoi (arg);
-	    else if (g_ascii_strcasecmp (line, "playcount") == 0)
-		sei->playcount = atoi (arg);
-	    else if (g_ascii_strcasecmp (line, "rating") == 0)
-		sei->rating = atoi (arg);
-	    else if (g_ascii_strcasecmp (line, "transferred") == 0)
-		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, "pc_mtime") == 0)
-	    {
-		sei->mtime = (time_t)g_ascii_strtoull (arg, NULL, 10);
-	    }
+	}
+	else if (g_ascii_strcasecmp (line, "version") == 0)
+	{ /* found version */
+	    extendedinfoversion = g_ascii_strtod (arg, NULL);
+	}
+	else if (sei == NULL)
+	{
+	    gtkpod_warning (_("%s:\nFormat error: %s\n"), name, buf);
+	    success = FALSE;
+	    g_free (line);
+	    break;
+	}
+	else if (g_ascii_strcasecmp (line, "hostname") == 0)
+	    sei->hostname = g_strdup (arg);
+	else if (g_ascii_strcasecmp (line, "converted_file") == 0)
+	    sei->converted_file = g_strdup (arg);
+	else if (g_ascii_strcasecmp (line, "filename_locale") == 0)
+	    sei->pc_path_locale = g_strdup (arg);
+	else if (g_ascii_strcasecmp (line, "filename_utf8") == 0)
+	    sei->pc_path_utf8 = g_strdup (arg);
+	else if (g_ascii_strcasecmp (line, "thumbnail_locale") == 0)
+	    sei->thumb_path_locale = g_strdup (arg);
+	else if (g_ascii_strcasecmp (line, "thumbnail_utf8") == 0)
+	    sei->thumb_path_utf8 = g_strdup (arg);
+	else if ((g_ascii_strcasecmp (line, "md5_hash") == 0) ||
+		 (g_ascii_strcasecmp (line, "sha1_hash") == 0))
+	{   /* only accept hash value if version is >= 0.53 or
+	       PATH_MAX is 4096 -- in 0.53 I changed the MD5 hash
+	       routine to using blocks of 4096 Bytes in
+	       length. Before it was PATH_MAX, which might be
+	       different on different architectures. */
+	    if ((extendedinfoversion >= 0.53) || (PATH_MAX == 4096))
+		sei->sha1_hash = g_strdup (arg);
+	}
+	else if (g_ascii_strcasecmp (line, "charset") == 0)
+	    sei->charset = g_strdup (arg);
+	else if (g_ascii_strcasecmp (line, "transferred") == 0)
+	    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, "pc_mtime") == 0)
+	    sei->mtime = (time_t)g_ascii_strtoull (arg, NULL, 10);
+	else if (g_ascii_strcasecmp (line, "local_itdb_id") == 0)
+	    sei->local_itdb_id = (guint64)g_ascii_strtoull (arg, NULL, 10);
+	else if (g_ascii_strcasecmp (line, "local_track_dbid") == 0)
+	    sei->local_track_dbid = (guint64)g_ascii_strtoull (arg, NULL, 10);
+	g_free (line);
     }
-    g_free (md5);
+    g_free (sha1);
     fclose (fp);
-    if (success && !hash_matched && !extendedinfohash_md5)
+    if (success && !hash_matched && !extendedinfohash_sha1)
     {
-	gtkpod_warning (_("No MD5 checksums on individual tracks are available.\n\nTo 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"), itunes, name);
+	gtkpod_warning (_("No SHA1 checksums on individual tracks are available.\n\nTo avoid this situation in the future either switch on duplicate detection (will provide SHA1 checksums) or avoid using the iPod with programs other than gtkpod.\n\n"), itunes, name);
 	success = FALSE;
     }
     if (!success) destroy_extendedinfohash ();
@@ -396,6 +410,7 @@
 {
     gchar *cfgdir = prefs_get_cfgdir ();
     GList *gl;
+    Playlist *pod_pl;
     ExtraiTunesDBData *eitdb;
     iTunesDB *itdb = NULL;
     GError *error = NULL;
@@ -413,6 +428,7 @@
     else
 	offline = FALSE;
 
+
     block_widgets ();
     if (offline || (type & GP_ITDB_TYPE_LOCAL))
     { /* offline or local database - requires extended info */
@@ -570,6 +586,7 @@
     for (gl=itdb->tracks; gl; gl=gl->next)
     {
 	Track *track = gl->data;
+   
 	ExtraTrackData *etr;
 	g_return_val_if_fail (track, (release_widgets(), NULL));
 	etr = track->userdata;
@@ -603,6 +620,10 @@
 	    gp_track_set_thumbnails (track, filename);
 	    g_free (filename);
 	}
+
+	/* add to filename hash */
+	gp_itdb_pc_path_hash_add_track (track);
+
 	++num;
     }
     /* take over the pending deletion information */
@@ -617,9 +638,10 @@
 
     /* delete hash information (if present) */
     destroy_extendedinfohash ();
-    /* find duplicates */
-    gp_md5_hash_tracks_itdb (itdb);
 
+    /* find duplicates and create sha1 hash*/
+    gp_sha1_hash_tracks_itdb (itdb);
+
     /* mark the data as unchanged */
     data_unchanged (itdb);
     /* set mark that this itdb struct contains an imported iTunesDB */
@@ -694,6 +716,23 @@
 	eitdb->data_changed = old_eitdb->data_changed;
     }
 
+    /* Repair old iTunesDB where we didn't add podcasts to the MPL */
+    pod_pl = itdb_playlist_podcasts (itdb);
+    if (pod_pl)
+    {
+	Playlist *mpl = itdb_playlist_mpl (itdb);
+	for (gl=pod_pl->members; gl; gl=gl->next)
+	{
+	    Track *tr = gl->data;
+	    g_return_val_if_fail (tr, NULL);
+	    if (!itdb_playlist_contains_track (mpl, tr))
+	    {   /* track contained in Podcasts playlist but not in MPL
+		   -> add to MPL */
+		itdb_playlist_add_track (mpl, tr, -1);
+	    }
+	}
+    }
+
     release_widgets();
 
     return itdb;
@@ -768,7 +807,6 @@
     if (new_itdb)
     {
 	gp_replace_itdb (old_itdb, new_itdb);
-
 	/* take care of autosync... */
 	sync_all_playlists (new_itdb);
 
@@ -786,6 +824,10 @@
  * gp_load_ipod: loads the contents of an iPod into @itdb. If data
  * already exists in @itdb, data is merged.
  *
+ * If new countrate and rating information is available, this
+ * information is adjusted within the local databases as well if the
+ * track can be identified in the local databases.
+ *
  * @itdb: repository to load iPod contents into. mountpoint must be
  * set, and the iPod must not be loaded already
  * (eitdb->itdb_imported).
@@ -798,7 +840,7 @@
     iTunesDB *new_itdb = NULL;
     gchar *mountpoint;
     gchar *itunesdb;
-    gboolean load = TRUE;
+    gboolean ok_to_load = TRUE;
 
     g_return_val_if_fail (itdb, NULL);
     g_return_val_if_fail (itdb->usertype & GP_ITDB_TYPE_IPOD, NULL);
@@ -806,9 +848,13 @@
     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);
 
+    /* read preferences keys from the iPod if available */
+    load_ipod_prefs (itdb, mountpoint);
+
     itdb_device_set_mountpoint (itdb->device, mountpoint);
 
     itunesdb = itdb_get_itunesdb_path (mountpoint);
@@ -827,21 +873,22 @@
 
 	if (result == GTK_RESPONSE_YES)
 	{
-	    load = gp_ipod_init (itdb);
+	    ok_to_load = gp_ipod_init (itdb);
 	}
 	else
 	{
-	    load = FALSE;
+	    ok_to_load = FALSE;
 	}
     }
     g_free (itunesdb);
     g_free (mountpoint);
 
-    if (load)
+    if (ok_to_load)
     {
 	new_itdb = gp_merge_itdb (itdb);
 	if (new_itdb)
 	{
+	    GList *gl;
 	    gchar *old_model = get_itdb_prefs_string (new_itdb,
 						      KEY_IPOD_MODEL);
 	    gchar *new_model = itdb_device_get_sysinfo (new_itdb->device,
@@ -873,6 +920,37 @@
 #endif		
 		set_itdb_prefs_string (new_itdb, KEY_IPOD_MODEL, new_model);
 	    }
+	    /* adjust rating and playcount in local databases */
+	    for (gl=new_itdb->tracks; gl; gl=gl->next)
+	    {
+		Track *itr = gl->data;
+		g_return_val_if_fail (itr, new_itdb);
+		if ((itr->recent_playcount != 0) ||
+		    (itr->app_rating != itr->rating))
+		{
+		    GList *gl;
+		    GList *tracks = gp_itdb_find_same_tracks_in_local_itdbs (itr);
+		    for (gl=tracks; gl; gl=gl->next)
+		    {
+			Track *ltr = gl->data;
+			g_return_val_if_fail (ltr, new_itdb);
+
+			if (itr->recent_playcount != 0)
+			{
+			    ltr->playcount += itr->recent_playcount;
+			    ltr->recent_playcount += itr->recent_playcount;
+			}
+			if (itr->rating != itr->app_rating)
+			{
+			    ltr->app_rating = ltr->rating;
+			    ltr->rating = itr->rating;
+			}
+			pm_track_changed (ltr);
+			data_changed (ltr->itdb);
+		    }
+		    g_list_free (tracks);
+		}
+	    }
 	}
     }
     return new_itdb;
@@ -898,25 +976,38 @@
     {
 	gint index;
 	gchar *mountpoint;
-	iTunesDB *new_itdb;
 
 	mountpoint = get_itdb_prefs_string (itdb, KEY_MOUNTPOINT);
+
+	/* save prefs relevant for this iPod to the iPod */
+	save_ipod_prefs (itdb, 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);
+	if (itdb->usertype & GP_ITDB_TYPE_AUTOMATIC)
+	{   /* remove itdb from display */
+	    remove_itdb_prefs (itdb);
+	    gp_itdb_remove (itdb);
+	    gp_itdb_free (itdb);
+	}
+	else
+	{   /* switch to an empty itdb */
+	    iTunesDB *new_itdb = setup_itdb_n (index);
+	    if (new_itdb)
+	    {
+		ExtraiTunesDBData *new_eitdb;
 
-	    gp_replace_itdb (itdb, new_itdb);
+		new_eitdb = new_itdb->userdata;
+		g_return_val_if_fail (new_eitdb, TRUE);
 
-	    new_eitdb->ipod_ejected = TRUE;
-    	}
+		gp_replace_itdb (itdb, new_itdb);
+
+		new_eitdb->ipod_ejected = TRUE;
+	    }
+	}
 	return TRUE;
     }
     return FALSE;
@@ -930,7 +1021,7 @@
  *
  * @itdb: repository to save
  *
- * return value: TRUE on succes, FALSE when an error occured.
+ * return value: TRUE on succes, FALSE when an error occurred.
  */
 gboolean gp_save_itdb (iTunesDB *itdb)
 {
@@ -938,6 +1029,11 @@
     gboolean success;
     g_return_val_if_fail (itdb, FALSE);
 
+    if (itdb->usertype & GP_ITDB_TYPE_IPOD)
+    {  /* handle conversions for this repository with priority */
+	file_convert_itdb_first (itdb);
+    }
+
     /* update smart playlists before writing */
     itdb_spl_update_live (itdb);
     pl = pm_get_selected_playlist ();
@@ -992,53 +1088,30 @@
 	etr = tr->userdata;
 	g_return_if_fail (tr);
 
-	if (itdb->usertype & GP_ITDB_TYPE_IPOD)
-	{
-	    if (tr->transferred)
-	    {   /* I don't understand why "- etr->oldsize" (JCS) --
-		 * supposedly related to update_track_from_file() but
-		 I can't see how. */
-		if (size)  *size += tr->size - etr->oldsize;
-	    }
-	}
-	if (itdb->usertype & GP_ITDB_TYPE_LOCAL)
-	{   /* total size on hard disk */
-	    if (size) *size += tr->size;
-	}
-
+	if (size)  *size += tr->size;
 	if (num)   *num += 1;
     }
 }
 
+
+/* Adds @track to the list of tracks to be deleted. The following
+   information is required: 
+   - userdata with ExtraTrackData
+   - size of track to be deleted
+   - either track->ipod_path or etr->pc_path_local */
 void mark_track_for_deletion (iTunesDB *itdb, Track *track)
 {
     ExtraiTunesDBData *eitdb;
-    g_return_if_fail (itdb);
-    g_return_if_fail (track);
+    g_return_if_fail (itdb && itdb->userdata && track);
     g_return_if_fail (track->itdb == NULL);
     eitdb = itdb->userdata;
-    g_return_if_fail (eitdb);
 
     eitdb->pending_deletion = g_list_append (eitdb->pending_deletion,
 					     track);
 }
 
-/* It might be necessary to unmark for deletion like in case of
-   dangling tracks with no real files on ipod */
-void unmark_track_for_deletion (iTunesDB *itdb, Track *track)
-{
-    ExtraiTunesDBData *eitdb;
-    g_return_if_fail (itdb);
-    g_return_if_fail (track);
-    eitdb = itdb->userdata;
-    g_return_if_fail (eitdb);
 
-    if (track != NULL)
-        eitdb->pending_deletion = g_list_remove (
-	    eitdb->pending_deletion, track);
-}
 
-
 /*------------------------------------------------------------------*\
  *                                                                  *
  *      Handle Export of iTunesDB                                   *
@@ -1046,14 +1119,14 @@
 \*------------------------------------------------------------------*/
 
 
-/* Writes extended info (md5 hash, PC-filename...) of @itdb into file
+/* Writes extended info (sha1 hash, PC-filename...) of @itdb into file
  * @itdb->filename+".ext". @itdb->filename will also be used to
- * calculate the md5 checksum of the corresponding iTunesDB */
+ * calculate the sha1 checksum of the corresponding iTunesDB */
 static gboolean write_extended_info (iTunesDB *itdb)
 {
   ExtraiTunesDBData *eitdb;
   FILE *fp;
-  gchar *md5;
+  gchar *sha1;
   GList *gl;
   gchar *name;
 
@@ -1075,11 +1148,11 @@
   }
   g_free (name);
   name = NULL;
-  md5 = md5_hash_on_filename (itdb->filename, FALSE);
-  if (md5)
+  sha1 = sha1_hash_on_filename (itdb->filename, FALSE);
+  if (sha1)
   {
-      fprintf(fp, "itunesdb_hash=%s\n", md5);
-      g_free (md5);
+      fprintf(fp, "itunesdb_hash=%s\n", sha1);
+      g_free (sha1);
   }
   else
   {
@@ -1098,6 +1171,8 @@
       fprintf (fp, "id=%d\n", track->id);
       if (etr->hostname)
 	  fprintf (fp, "hostname=%s\n", etr->hostname);
+      if (etr->converted_file)
+	  fprintf (fp, "converted_file=%s\n", etr->converted_file);
       if (etr->pc_path_locale && *etr->pc_path_locale)
 	  fprintf (fp, "filename_locale=%s\n", etr->pc_path_locale);
       if (etr->pc_path_utf8 && *etr->pc_path_utf8)
@@ -1110,14 +1185,18 @@
 	 on the ipod away from gktpod/itunes etc. */
       if (strlen (track->ipod_path) != 0)
 	  fprintf (fp, "filename_ipod=%s\n", track->ipod_path);
-      if (etr->md5_hash && *etr->md5_hash)
-	  fprintf (fp, "md5_hash=%s\n", etr->md5_hash);
+      if (etr->sha1_hash && *etr->sha1_hash)
+	  fprintf (fp, "sha1_hash=%s\n", etr->sha1_hash);
       if (etr->charset && *etr->charset)
 	  fprintf (fp, "charset=%s\n", etr->charset);
-      if (!track->transferred && etr->oldsize)
-	  fprintf (fp, "oldsize=%d\n", etr->oldsize);
       if (etr->mtime)
 	  fprintf (fp, "pc_mtime=%llu\n", (unsigned long long)etr->mtime);
+      if (etr->local_itdb_id)
+	  fprintf (fp, "local_itdb_id=%" G_GUINT64_FORMAT "\n",
+		   etr->local_itdb_id);
+      if (etr->local_track_dbid)
+	  fprintf (fp, "local_track_dbid=%" G_GUINT64_FORMAT "\n",
+		   etr->local_track_dbid);
       fprintf (fp, "transferred=%d\n", track->transferred);
       while (widgets_blocked && gtk_events_pending ())  gtk_main_iteration ();
   }
@@ -1142,53 +1221,57 @@
 }
 
 
+TransferData *transfer_data_new (void)
+{
+    TransferData *transfer_data;
+    transfer_data = g_new0 (TransferData, 1);
+    transfer_data->mutex = g_mutex_new ();
+    transfer_data->finished_cond = g_cond_new ();
+    return transfer_data;
+}
 
-#ifdef G_THREADS_ENABLED
+void transfer_data_free (TransferData *transfer_data)
+{
+    if (transfer_data->mutex)
+	g_mutex_free (transfer_data->mutex);
+    if (transfer_data->finished_cond)
+	g_cond_free (transfer_data->finished_cond);
+    g_free (transfer_data);
+}
+
 /* Threaded remove file */
 /* returns: int result (of remove()) */
-static gpointer th_remove (gpointer filename)
+static gpointer th_remove (gpointer userdata)
 {
-    guint result;
+    TransferData *td = userdata;
+    gint result;
 
-    result = remove ((gchar *)filename);
-    g_mutex_lock (mutex);
-    mutex_data = TRUE; /* signal that thread will end */
-    g_cond_signal (cond);
-    g_mutex_unlock (mutex);
-    return GUINT_TO_POINTER(result);
+    result = g_remove (td->filename);
+    g_mutex_lock (td->mutex);
+    td->finished = TRUE; /* signal that thread will end */
+    g_cond_signal (td->finished_cond);
+    g_mutex_unlock (td->mutex);
+    return GINT_TO_POINTER(result);
 }
-#endif
 
-
-/* Threaded copy of ipod track */
-/* Returns: GError *error */
-static gpointer th_copy (gpointer data)
+/* This function is called when the user presses the abort button
+ * during transfer_tracks() or delete_tracks() */
+static void file_dialog_abort (TransferData *transfer_data)
 {
-    Track *track = data;
-    ExtraTrackData *etr;
-    GError *error = NULL;
-    g_return_val_if_fail (track, NULL);
-    etr = track->userdata;
-    g_return_val_if_fail (etr, NULL);
+    g_return_if_fail (transfer_data);
 
-    itdb_cp_track_to_ipod (track, etr->pc_path_locale, &error);
+    g_mutex_lock (transfer_data->mutex);
 
-    /* delete old size */
-    if (track->transferred) etr->oldsize = 0;
-#ifdef G_THREADS_ENABLED
-    g_mutex_lock (mutex);
-    mutex_data = TRUE;   /* signal that thread will end */
-    g_cond_signal (cond);
-    g_mutex_unlock (mutex);
-#endif
-    return error;
+    transfer_data->abort = TRUE;
+
+    g_mutex_unlock (transfer_data->mutex);
 }
 
-/* This function is called when the user presses the abort button
- * during flush_tracks() */
-static void file_dialog_abort (gboolean *abort_flag)
+/* This function is called when the user closes the window */
+static gboolean file_dialog_delete (TransferData *transfer_data)
 {
-    *abort_flag = TRUE;
+    file_dialog_abort (transfer_data);
+    return TRUE; /* don't close the window -- let our own code take care of this */
 }
 
 
@@ -1219,77 +1302,99 @@
     return result;
 }
 
+static GtkWidget *create_transfer_information_dialog (TransferData *td)
+{
+    GladeXML *dialog_xml;
+    GtkWidget *dialog, *widget;
 
+    dialog_xml = glade_xml_new (xml_file, "file_transfer_information_dialog", NULL);
+    glade_xml_signal_autoconnect (dialog_xml);
 
-static GtkWidget *create_file_dialog (GtkWidget **progress_bar,
-				      gboolean *abort_flag)
-{
-  GtkWidget *dialog, *label, *image, *hbox;
+    dialog = gtkpod_xml_get_widget (dialog_xml, "file_transfer_information_dialog");
+    g_return_val_if_fail (dialog, NULL);
 
-  /* create the dialog window */
-  dialog = gtk_dialog_new_with_buttons (_("Information"),
-                                         GTK_WINDOW (gtkpod_window),
-                                         GTK_DIALOG_DESTROY_WITH_PARENT,
-                                         GTK_STOCK_CANCEL,
-                                         GTK_RESPONSE_NONE,
-                                         NULL);
+    /* the window itself */
+    td->dialog = dialog;
 
-  /* emulate gtk_message_dialog_new */
-  image = gtk_image_new_from_stock (GTK_STOCK_DIALOG_INFO,
-				    GTK_ICON_SIZE_DIALOG);
-  label = gtk_label_new (
-      _("Press button to abort.\nExport can be continued at a later time."));
+    /* text label */
+    td->textlabel = gtkpod_xml_get_widget (dialog_xml, "textlabel");
 
-  gtk_misc_set_alignment (GTK_MISC (image), 0.5, 0.0);
-  gtk_label_set_line_wrap (GTK_LABEL (label), TRUE);
-  gtk_label_set_selectable (GTK_LABEL (label), TRUE);
+    /* progress bar */
+    td->progressbar = GTK_PROGRESS_BAR (
+	gtkpod_xml_get_widget (dialog_xml, "progressbar"));
 
-  /* hbox to put the image+label in */
-  hbox = gtk_hbox_new (FALSE, 6);
-  gtk_box_pack_start (GTK_BOX (hbox), image, FALSE, FALSE, 0);
-  gtk_box_pack_start (GTK_BOX (hbox), label, FALSE, FALSE, 0);
+    /* Indicate that user wants to abort */
+    widget = gtkpod_xml_get_widget (dialog_xml, "abortbutton");
+    g_signal_connect_swapped (GTK_OBJECT (widget), "clicked",
+			      G_CALLBACK (file_dialog_abort),
+			      td);
 
-  /* Create the progress bar */
-  if (progress_bar)
-      *progress_bar = gtk_progress_bar_new ();
+    /* User tried to close the window */
+    g_signal_connect_swapped (GTK_OBJECT (dialog), "delete-event",
+			      G_CALLBACK (file_dialog_delete),
+			      td);
 
-  /* Indicate that user wants to abort */
-  g_signal_connect_swapped (GTK_OBJECT (dialog), "response",
-			    G_CALLBACK (file_dialog_abort),
-			    abort_flag);
+    return dialog;
+}
 
-  /* Add the image/label + progress bar to dialog */
-  gtk_box_pack_start (GTK_BOX (GTK_DIALOG (dialog)->vbox),
-                      hbox, FALSE, FALSE, 0);
-  if (progress_bar)
-      gtk_box_pack_start (GTK_BOX (GTK_DIALOG (dialog)->vbox),
-			  *progress_bar, FALSE, FALSE, 0);
-  gtk_widget_show_all (dialog);
 
-  return dialog;
+static void set_progressbar (GtkProgressBar *progressbar,
+			     time_t start, gint n, gint count, gint init_count)
+{
+    gchar *progtext;
+    gdouble fraction;
+
+    g_return_if_fail (progressbar);
+
+    if (n==0)
+    {
+	fraction = 1;
+    }
+    else
+    {
+	fraction = (gdouble)count/n;
+    }
+
+    if (count-init_count == 0)
+    {
+	progtext = g_strdup_printf (_("%d%%"), (gint)(fraction*100));
+    }
+    else
+    {
+	time_t diff, fullsecs, hrs, mins, secs;
+
+	diff = time(NULL) - start;
+	fullsecs = (diff*(n-init_count)/(count-init_count))-diff+5;
+	hrs  = fullsecs / 3600;
+	mins = (fullsecs % 3600) / 60;
+	secs = ((fullsecs % 60) / 5) * 5;
+	/* don't bounce up too quickly (>10% change only) */
+	/* left = ((mins < left) || (100*mins >= 110*left)) ? mins : left;*/
+	progtext = g_strdup_printf (
+	    _("%d%% (%d/%d  %d:%02d:%02d left)"),
+	    (gint)(fraction*100), count, n, (gint)hrs, (gint)mins, (gint)secs);
+    }
+
+    gtk_progress_bar_set_fraction(progressbar, fraction);
+    gtk_progress_bar_set_text(progressbar, progtext);
+    g_free (progtext);
 }
 
 
 /* Removes all tracks that were marked for deletion from the iPod or
    the local harddisk (for itdb->usertype == GP_ITDB_TYPE_LOCAL) */
-/* Returns TRUE on success, FALSE if some error occured and not all
+/* Returns TRUE on success, FALSE if some error occurred and not all
    files were removed */
-static gboolean delete_files (iTunesDB *itdb)
+static gboolean delete_files (iTunesDB *itdb, TransferData *td)
 {
-  GtkWidget *dialog, *progress_bar;
-  gchar *progtext = NULL;
   gboolean result = TRUE;
-  static gboolean abort_flag;
+  gint n, count;
+  time_t start;
   ExtraiTunesDBData *eitdb;
-#ifdef G_THREADS_ENABLED
   GThread *thread = NULL;
-  GTimeVal gtime;
-  if (!mutex) mutex = g_mutex_new ();
-  if (!cond) cond = g_cond_new ();
-#endif
 
+  g_return_val_if_fail (td, FALSE);
 
-
   g_return_val_if_fail (itdb, FALSE);
   eitdb = itdb->userdata;
   g_return_val_if_fail (eitdb, FALSE);
@@ -1304,218 +1409,353 @@
       g_return_val_if_fail (itdb_get_mountpoint (itdb), FALSE);
   }
 
-  abort_flag = FALSE;
+  /* stop file transfer while we're deleting to avoid time-consuming
+     interference with slow access harddisks */
+  file_transfer_activate (itdb, FALSE);
 
-  dialog = create_file_dialog (&progress_bar, &abort_flag);
-  progtext = g_strdup (_("deleting..."));
-  gtk_progress_bar_set_text(GTK_PROGRESS_BAR (progress_bar), progtext);
-  while (widgets_blocked && gtk_events_pending ())  gtk_main_iteration ();
-  g_free (progtext);
+  gtk_label_set_text (GTK_LABEL (td->textlabel), _("Status: Deleting File"));
 
+  n = g_list_length (eitdb->pending_deletion);
+  count = 0; /* number of tracks removed */
+  start = time (NULL); /* start time for progress bar */
+
   /* lets clean up those pending deletions */
-  while (!abort_flag && eitdb->pending_deletion)
+  while (!td->abort && eitdb->pending_deletion)
   {
       gchar *filename = NULL;
       Track *track = eitdb->pending_deletion->data;
       g_return_val_if_fail (track, FALSE);
 
+      track->itdb = itdb;
       if (itdb->usertype & GP_ITDB_TYPE_IPOD)
       {
-	  track->itdb = itdb;
 	  filename = get_file_name_from_source (track, SOURCE_IPOD);
-	  track->itdb = NULL;
       }
       if (itdb->usertype & GP_ITDB_TYPE_LOCAL)
       {
 	  filename = get_file_name_from_source (track, SOURCE_LOCAL);
       }
+      track->itdb = NULL;
 
       if(filename)
       {
-	  guint rmres;
-#ifdef G_THREADS_ENABLED
-	  mutex_data = FALSE;
-	  thread = g_thread_create (th_remove, filename, TRUE, NULL);
-	  if (thread)
+	  gint rmres;
+
+	  td->finished = FALSE;
+	  td->filename = filename;
+
+	  g_mutex_lock (td->mutex);
+
+	  thread = g_thread_create (th_remove, td, TRUE, NULL);
+
+	  do
 	  {
-	      g_mutex_lock (mutex);
-	      do
-	      {
-		  while (widgets_blocked && gtk_events_pending ())
-		      gtk_main_iteration ();
-		  /* wait a maximum of 20 ms */
-		  g_get_current_time (&gtime);
-		  g_time_val_add (&gtime, 20000);
-		  g_cond_timed_wait (cond, mutex, &gtime);
-	      } while(!mutex_data);
-	      g_mutex_unlock (mutex);
-	      rmres = GPOINTER_TO_UINT(g_thread_join (thread));
-	      if (rmres == -1) result = FALSE;
+	      GTimeVal gtime;
+
+	      set_progressbar (td->progressbar, start, n, count, 0);
+
+	      g_mutex_unlock (td->mutex);
+
+	      while (widgets_blocked && gtk_events_pending ())
+		  gtk_main_iteration ();
+
+	      g_mutex_lock (td->mutex);
+
+	      /* wait a maximum of 20 ms or until cond is signaled */
+	      g_get_current_time (&gtime);
+	      g_time_val_add (&gtime, 20000);
+	      g_cond_timed_wait (td->finished_cond,
+				 td->mutex, &gtime);
+	  } while(!td->finished);
+
+	  g_mutex_unlock (td->mutex);
+
+	  rmres = GPOINTER_TO_INT(g_thread_join (thread));
+
+	  if (rmres == -1)
+	  {
+	      gtkpod_warning (_("Could not remove the following file: '%s'\n\n"),
+			      filename);
+
+	      while (widgets_blocked && gtk_events_pending ())
+		  gtk_main_iteration ();
 	  }
-	  else {
-	      g_warning ("Thread creation failed, falling back to default.\n");
-	      remove (filename);
-	  }
-#else
-	  rmres = remove(filename);
-	  if (rmres == -1) result = FALSE;
-/*	      fprintf(stderr, "Removed %s-%s(%d)\n%s\n", track->artist,
-	      track->title, track->ipod_id,
-	      filename);*/
-#endif
-	  g_free(filename);
+
+	  g_free (filename);
       }
+      ++count;
       itdb_track_free (track);
       eitdb->pending_deletion = g_list_delete_link (
 	  eitdb->pending_deletion, eitdb->pending_deletion);
-      while (widgets_blocked && gtk_events_pending ())
-	  gtk_main_iteration ();
   }
-  gtk_widget_destroy (dialog);
-  if (abort_flag) result = FALSE;
+
+  set_progressbar (td->progressbar, start, n, count, 0);
+
+  while (widgets_blocked && gtk_events_pending ())
+      gtk_main_iteration ();
+
+  if (td->abort) result = FALSE;
+
+  file_transfer_reset (itdb);
+
   return result;
 }
 
 
+/* Reschedule tracks that failed during transfer. This is a hack as
+ * the @itdb could have been removed in the meanwhile. The clean
+ * solution would be to integrate the error display into the
+ * file_convert.c framework */
+static void transfer_reschedule (gpointer user_data1, gpointer user_data2)
+{
+    struct itdbs_head *ihead = gp_get_itdbs_head (gtkpod_window);
+    iTunesDB *itdb = user_data1;
+    GList *gl;
 
+    g_return_if_fail (itdb && ihead);
 
-/* Flushes all non-transferred tracks to the iPod filesystem
-   Returns TRUE on success, FALSE if some error occured or not all
-   tracks were written. */
-static gboolean flush_tracks (iTunesDB *itdb)
+    for (gl=ihead->itdbs; gl; gl=gl->next)
+    {
+	iTunesDB *it = gl->data;
+	g_return_if_fail (it);
+	if (it == itdb)
+	{   /* itdb is still valid --> reschedule tracks */
+	    file_transfer_reschedule (itdb);
+	    break;
+	}
+    }
+}
+
+
+
+/* Show an error message that not all tracks were transferred */
+static void transfer_tracks_show_failed (iTunesDB *itdb, TransferData *td)
 {
-  GList *gl;
-  gint count, n;
-  gboolean result = TRUE;
-  static gboolean abort_flag;
-  GtkWidget *dialog, *progress_bar;
-  time_t start;
-  gchar *progtext = NULL;
-  ExtraiTunesDBData *eitdb;
-#ifdef G_THREADS_ENABLED
-  GThread *thread = NULL;
-  GTimeVal gtime;
-  if (!mutex) mutex = g_mutex_new ();
-  if (!cond) cond = g_cond_new ();
-#endif
+    GString *string_transfer, *string_convert, *string;
+    gint failed_transfer, failed_conversion;
+    GList *tracks, *gl;
 
-  g_return_val_if_fail (itdb, FALSE);
-  eitdb = itdb->userdata;
-  g_return_val_if_fail (eitdb, FALSE);
+    g_return_if_fail (itdb && td);
 
-  n = itdb_tracks_number_nontransferred (itdb);
+    gtk_widget_hide (td->dialog);
 
-  if (n==0) return TRUE;
+    string_transfer = g_string_sized_new (1000);
+    string_convert = g_string_sized_new (1000);
+    string = g_string_sized_new (1000);
+    failed_transfer = 0;
+    failed_conversion = 0;
 
-  abort_flag = FALSE;
-  /* create the dialog window */
-  dialog = create_file_dialog (&progress_bar, &abort_flag);
-  progtext = g_strdup (_("preparing to copy..."));
-  gtk_progress_bar_set_text (GTK_PROGRESS_BAR (progress_bar), progtext);
-  while (widgets_blocked && gtk_events_pending ())  gtk_main_iteration ();
-  g_free (progtext);
+    tracks = file_transfer_get_failed_tracks (itdb);
+    /* since failed_num is not 0, tracks cannot be empty */
+    g_return_if_fail (tracks);
+    /* Add information about failed tracks to the respective
+       string */
+    for (gl=tracks; gl; gl=gl->next)
+    {
+	ExtraTrackData *etr;
+	gchar *buf;
+	Track *tr = gl->data;
+	g_return_if_fail (tr && tr->userdata);
 
-  /* count number of tracks to be transferred */
-  count = 0; /* tracks transferred */
-  start = time (NULL);
+	etr = tr->userdata;
 
-  for (gl=itdb->tracks; gl && !abort_flag; gl=gl->next)
-  {
-      time_t diff, fullsecs, hrs, mins, secs;
-      Track *track = gl->data;
-      g_return_val_if_fail (track, FALSE); /* this will hang the
-					      application :-( */
-      if (!track->transferred)             /* but this would crash
-					      it otherwise... */
-      {
-	  GError *error = NULL;
-#ifdef G_THREADS_ENABLED
-	  mutex_data = FALSE;
-	  thread = g_thread_create (th_copy, track, TRUE, NULL);
-	  if (thread)
-	  {
-	      g_mutex_lock (mutex);
-	      do
-	      {
-		  while (widgets_blocked && gtk_events_pending ())
-		      gtk_main_iteration ();
-		  /* wait a maximum of 20 ms */
-		  g_get_current_time (&gtime);
-		  g_time_val_add (&gtime, 20000);
-		  g_cond_timed_wait (cond, mutex, &gtime);
-	      } while(!mutex_data);
-	      g_mutex_unlock (mutex);
-	      error = g_thread_join (thread);
-	  }
-	  else {
-	      g_warning ("Thread creation failed, falling back to default.\n");
-	      error = th_copy (track);
-	  }
-#else
-	  error = th_copy (track);
-#endif
-	  if (error)
-	  {   /* an error occured */
-	      result = FALSE;
-	      if (error->message)
-		  gtkpod_warning ("%s\n\n", error->message);
-	      else
-		  g_warning ("error->message == NULL!\n");
-	      g_error_free (error);
-	  }
-	  data_changed (itdb); /* otherwise new free space status from
-				  iPod is never read and free space
-				  keeps increasing while we copy more
-				  and more files to the iPod */
-	  ++count;
-	  if (count == 1)  /* we need longer timeout */
-	  {
-	      gtkpod_statusbar_timeout (3*STATUSBAR_TIMEOUT);
-	  }
-	  if (count == n)  /* we need to reset timeout */
-	  {
-	      gtkpod_statusbar_timeout (0);
-          }
-	  gtkpod_statusbar_message (
-	      ngettext ("Copied %d of %d new track.",
-			"Copied %d of %d new tracks.", n),
-	      count, n);
+	buf = get_track_info (tr, FALSE);
 
-	  gtk_progress_bar_set_fraction(GTK_PROGRESS_BAR (progress_bar),
-					(gdouble) count/n);
-	  
-	  diff = time(NULL) - start;
-	  fullsecs = (diff*n/count)-diff+5;
-	  hrs  = fullsecs / 3600;
-	  mins = (fullsecs % 3600) / 60;
-	  secs = ((fullsecs % 60) / 5) * 5;
-	  /* don't bounce up too quickly (>10% change only) */
-/*	      left = ((mins < left) || (100*mins >= 110*left)) ? mins : left;*/
-	  progtext = g_strdup_printf (
-	      _("%d%% (%d:%02d:%02d left)"),
-	      count*100/n, (int)hrs, (int)mins, (int)secs);
-	  gtk_progress_bar_set_text(GTK_PROGRESS_BAR (progress_bar),
-				    progtext);
-	  g_free (progtext);
-      }
-      while (widgets_blocked && gtk_events_pending ())  gtk_main_iteration ();
-  } /* for (.;.;.) */
+	switch (etr->conversion_status)
+	{
+	case FILE_CONVERT_INACTIVE:
+	case FILE_CONVERT_CONVERTED:	 
+   /* This track was converted successfully (or did not
+	     * neeed conversion) and failed during transfer */
+	    ++failed_transfer;
+	    g_string_append_printf (string_transfer, "%s\n", buf);
+	    break;
+	default:
+	    /* These tracks failed during conversion */
+	    ++failed_conversion;
+	    g_string_append_printf (string_convert, "%s\n", buf);
+	    break;
+	}
+	g_free (buf);
+    }
 
-  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!"));
-  gtkpod_statusbar_timeout (0);
-  gtk_widget_destroy (dialog);
-  while (widgets_blocked && gtk_events_pending ())  gtk_main_iteration ();
-  return result;
+    if (failed_conversion != 0)
+    {
+	g_string_append (string,
+			 ngettext ("The following track could not be converted successfully:\n\n",
+				   "The following tracks could not be converted successfully:\n\n",
+				   failed_conversion));
+	g_string_append (string, string_convert->str);
+	g_string_append (string, "\n\n");
+    }
+
+    if (failed_transfer != 0)
+    {
+	g_string_append (string,
+			 ngettext ("The following track could not be transferred successfully:\n\n",
+				   "The following tracks could not be transferred successfully:\n\n",
+				   failed_transfer));
+	g_string_append (string, string_transfer->str);
+	g_string_append (string, "\n\n");
+    }
+
+    gtkpod_confirmation (CONF_ID_TRANSFER,    /* ID     */
+			 FALSE,               /* modal, */
+			 _("Warning"),        /* title  */
+			 _("The iPod could not be ejected. Please fix the problems mentioned below and then eject the iPod again. Pressing 'OK' will re-schedule the failed tracks for conversion and transfer."),
+			 string->str,         /* text to be displayed */
+			 NULL, 0, NULL,       /* option 1 */
+			 NULL, 0, NULL,       /* option 2 */
+			 TRUE,                /* gboolean confirm_again, */
+			 NULL,                /* confirm_again_key, */
+			 transfer_reschedule, /* ConfHandler ok_handler,*/
+			 NULL,                /* don't show "Apply" */
+			 CONF_NULL_HANDLER,   /* cancel_handler,*/
+			 itdb,                /* gpointer user_data1,*/
+			 NULL);               /* gpointer user_data2,*/
+
+    g_string_free (string_transfer, TRUE);
+    g_string_free (string_convert, TRUE);
+    g_string_free (string, TRUE);
 }
 
 
+
+/* Initiates and waits for transfer of tracks to the iPod */
+static gboolean transfer_tracks (iTunesDB *itdb, TransferData *td)
+{
+    gint to_convert_num, converting_num, to_transfer_num;
+    gint transferred_num, failed_num, transferred_init;
+    gboolean result = TRUE;
+    FileTransferStatus status;
+    ExtraiTunesDBData *eitdb;
+    time_t start;
+
+    g_return_val_if_fail (itdb && td, FALSE);
+    eitdb = itdb->userdata;
+    g_return_val_if_fail (eitdb, FALSE);
+
+    /* make sure background transfer is running */
+    file_transfer_activate (itdb, TRUE);
+    file_transfer_continue (itdb);
+    /* reschedule previously failed tracks */
+    file_transfer_reschedule (itdb);
+
+    /* find out how many tracks have already been processed */
+    file_transfer_get_status (itdb,
+			      NULL, NULL, NULL, &transferred_num, &failed_num);
+    transferred_init = transferred_num + failed_num;
+
+    start = time (NULL);
+
+    do
+    {
+	gchar *buf;
+
+	status = file_transfer_get_status (itdb,
+					   &to_convert_num, &converting_num,
+					   &to_transfer_num, &transferred_num,
+					   &failed_num);
+
+	set_progressbar (td->progressbar, start,
+			 to_convert_num+to_transfer_num+failed_num+transferred_num,
+			 transferred_num+failed_num,
+			 transferred_init);
+
+	if (to_transfer_num > 0)
+	{
+	    buf = g_strdup_printf (_("Status: Copying track"));
+	}
+	else
+	{
+	    if ((to_convert_num + converting_num) > 0)
+	    {
+		buf = g_strdup_printf (_("Status: Waiting for conversion to complete"));
+	    }
+	    else
+	    {
+		buf = g_strdup_printf (_("Status: Finished transfer"));
+	    }
+	}
+
+/*	buf = g_strdup_printf (_("Status: %d. To convert: %d. To transfer: %d\n"
+				 "Transferred: %d. Failed: %d"),
+			       status, to_convert_num, to_transfer_num,
+			       transferred_num, failed_num);*/
+	gtk_label_set_text (GTK_LABEL(td->textlabel), buf);
+	g_free (buf);
+
+	if ((to_convert_num != 0) && (converting_num == 0))
+	{   /* Force the conversion to continue. Not sure if this scenario
+	     * is likely to happen, but better be safe then sorry */
+	    file_convert_continue ();
+	}
+
+	while (widgets_blocked && gtk_events_pending ())
+	    gtk_main_iteration ();
+
+	/* sleep 20 ms */
+	g_usleep (20*1000);
+    } while (!td->abort &&
+	     (status != FILE_TRANSFER_DISK_FULL) &&
+	     (to_convert_num + to_transfer_num) > 0);
+
+    /* reset background transfer to value in prefs */
+    file_transfer_reset (itdb);
+
+    if (td->abort)
+    {
+	result = FALSE;
+    }
+    else if (status == FILE_TRANSFER_DISK_FULL)
+    {
+	gchar *buf;
+	GtkWidget *dialog;
+
+	gtk_widget_hide (td->dialog);
+
+	buf = g_strdup_printf (ngettext (
+				   "One track could not be transferred because your iPod is full. Either delete some tracks or otherwise create space on the iPod before ejecting the iPod again.",
+				   "%d tracks could not be transferred because your iPod is full. Either delete some tracks or otherwise create space on the iPod before ejecting the iPod again.", to_transfer_num),
+			       to_transfer_num);
+
+	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);
+	result = FALSE;
+    }
+    else if (failed_num != 0)    /* one error message is enough -> else{... */
+    {
+	transfer_tracks_show_failed (itdb, td);
+	result = FALSE;
+    }
+
+    if (result == TRUE)
+    {
+	/* remove transferred tracks from list so they won't be removed
+	   when deleting the itdb */
+	file_transfer_ack_itdb (itdb);
+    }
+
+    return result;
+}
+
+
+
 static gboolean gp_write_itdb (iTunesDB *itdb)
 {
   gchar *cfgdir;
   gboolean success = TRUE;
   ExtraiTunesDBData *eitdb;
+  GtkWidget *dialog;
+  Playlist *mpl;
+  TransferData *transferdata;
 
   g_return_val_if_fail (itdb, FALSE);
   eitdb = itdb->userdata;
@@ -1524,6 +1764,9 @@
   cfgdir = prefs_get_cfgdir ();
   g_return_val_if_fail (cfgdir, FALSE);
 
+  mpl = itdb_playlist_mpl (itdb);
+  g_return_val_if_fail (mpl, FALSE);
+
   if (!eitdb->itdb_imported)
   {   /* No iTunesDB was read but user wants to export current
          data. If an iTunesDB is present on the iPod or in cfgdir,
@@ -1572,8 +1815,12 @@
       }
   }
 
-  block_widgets (); /* block user input */
+  block_widgets ();
 
+  transferdata = transfer_data_new ();
+  dialog = create_transfer_information_dialog (transferdata);
+  gtk_widget_show (dialog);
+
   if((itdb->usertype & GP_ITDB_TYPE_IPOD) && !get_offline (itdb))
   {
       const gchar *mountpoint = itdb_get_mountpoint (itdb);
@@ -1591,36 +1838,41 @@
       }
       if (success)
       {   /* remove deleted files */
-	  success = delete_files (itdb);
+	  success = delete_files (itdb, transferdata);
 	  if (!success)
 	  {
-	      gtkpod_statusbar_message (_("Some tracks could not be deleted from the iPod. Export aborted!"));
+	      gtkpod_warning (_("Some tracks could not be deleted from the iPod. Export aborted!"));
 	  }
       }
       if (success)
       {
 	  /* write tracks to iPod */
-	  success = flush_tracks (itdb);
+	  success = transfer_tracks (itdb, transferdata);
       }
   }
 
   if (itdb->usertype & GP_ITDB_TYPE_LOCAL)
   {
-      success = delete_files (itdb);
+      success = delete_files (itdb, transferdata);
   }
 
   if (success)
-      gtkpod_statusbar_message (_("Now writing database. Please wait..."));
-  while (widgets_blocked && gtk_events_pending ())
-      gtk_main_iteration ();
+  {
+      gchar *buf;
+      buf = g_strdup_printf (_("Now writing database '%s'. Please wait..."), mpl->name);
+      gtk_label_set_text (GTK_LABEL (transferdata->textlabel), buf);
+      g_free (buf);
 
+      while (widgets_blocked && gtk_events_pending ())
+	  gtk_main_iteration ();
+  }
 
   if (success && !get_offline (itdb) &&
       (itdb->usertype & GP_ITDB_TYPE_IPOD))
   {   /* write to the iPod */
       GError *error = NULL;
       if (!itdb_write (itdb, &error))
-      {   /* an error occured */
+      {   /* an error occurred */
 	  success = FALSE;
 	  if (error && error->message)
 	      gtkpod_warning ("%s\n\n", error->message);
@@ -1633,7 +1885,7 @@
       if (success)
       {   /* write shuffle data */
 	  if (!itdb_shuffle_write (itdb, &error))
-	  {   /* an error occured */
+	  {   /* an error occurred */
 	      success = FALSE;
 	      if (error && error->message)
 		  gtkpod_warning ("%s\n\n", error->message);
@@ -1699,7 +1951,7 @@
   {   /* write to cfgdir */
       GError *error = NULL;
       if (!itdb_write_file (itdb, eitdb->offline_filename, &error))
-      {   /* an error occured */
+      {   /* an error occurred */
 	  success = FALSE;
 	  if (error && error->message)
 	      gtkpod_warning ("%s\n\n", error->message);
@@ -1719,7 +1971,7 @@
   {   /* write to cfgdir */
       GError *error = NULL;
       if (!itdb_write_file (itdb, NULL, &error))
-      {   /* an error occured */
+      {   /* an error occurred */
 	  success = FALSE;
 	  if (error && error->message)
 	      gtkpod_warning ("%s\n\n", error->message);
@@ -1737,8 +1989,6 @@
   /* indicate that files and/or database is saved */
   if (success)
   {
-      Playlist *mpl = itdb_playlist_mpl (itdb);
-      g_return_val_if_fail (mpl, success);
       data_unchanged (itdb);
       if (itdb->usertype & GP_ITDB_TYPE_IPOD)
       {
@@ -1752,8 +2002,11 @@
 
   g_free (cfgdir);
 
-  release_widgets (); /* Allow input again */
+  gtk_widget_destroy (dialog);
+  transfer_data_free (transferdata);
 
+  release_widgets ();
+
   return success;
 }
 
@@ -1811,7 +2064,7 @@
     g_return_if_fail (eitdb);
 
     eitdb->data_changed = TRUE;
-    pm_name_changed (itdb_playlist_mpl (itdb));
+    pm_itdb_name_changed (itdb);
     space_data_update ();
 }
 
@@ -1826,7 +2079,7 @@
     g_return_if_fail (eitdb);
 
     eitdb->data_changed = FALSE;
-    pm_name_changed (itdb_playlist_mpl (itdb));
+    pm_itdb_name_changed (itdb);
     space_data_update ();
 }
 

Modified: gtkpod/trunk/src/fileselection.c
===================================================================
--- gtkpod/trunk/src/fileselection.c	2007-06-27 20:59:02 UTC (rev 193)
+++ gtkpod/trunk/src/fileselection.c	2007-06-27 21:27:12 UTC (rev 194)
@@ -1,4 +1,4 @@
-/* Time-stamp: <2006-06-23 23:59:03 jcs>
+/* Time-stamp: <2007-06-25 00:56:37 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.13 2006/06/23 16:03:06 jcsjcs Exp $
+|  $Id: fileselection.c 1588 2007-06-24 16:02:51Z jcsjcs $
 */
 
 /***********************************************************************
@@ -53,66 +53,68 @@
 #include "misc.h"
 #include "misc_track.h"
 #include "fileselection.h"
+#include "display_coverart.h"
 
 /* 
  * Data global to this module only
  */
 
-static iTunesDB *fc_active_itdb = NULL;  /* the active iTunesDB, if any */
+static Playlist *db_active_pl = NULL;    /* playlist for dirbrowser */
 
-/* Cleans up the GSList of filenames returned by the file chooser */
-static void delete_file_list(GSList* list)
+static void error_dialog (const gchar *str)
 {
-    GSList* current;  /* Current node in list */
-	
-    /* Delete the string contained in each node */
-    current = list;
-	
-    while (current != NULL)
-    {
-	g_free(current->data);
-	current = current->next;
-    }
-	
-    g_slist_free(list);
+    GtkWidget *dialog;
+
+    g_return_if_fail (str);
+
+    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);
 }
 
+
 /* OK button */
-static void add_files_ok(GtkFileChooser* filechooser)
+static void add_files_ok(GtkFileChooser* filechooser, Playlist *playlist)
 {
     GSList* names;   /* List of selected names */
-    GSList* current; /* Current node in list */
-    Playlist* playlist; /* Playlist to add songs to */
+    GSList* gsl;     /* Current node in list */
     gboolean result = TRUE;  /* Result of file adding */
 	
     /* If we don't have a playlist to add to, don't add anything */
-    g_return_if_fail(fc_active_itdb);
+    g_return_if_fail (playlist);
 	
     block_widgets ();
 
-    playlist = pm_get_selected_playlist();
+    names = gtk_file_chooser_get_filenames (filechooser);
 
-    names = gtk_file_chooser_get_filenames(filechooser);
-    current = names;
-
-    if (current)
+    if (names)
     {
 	gchar *dirname = gtk_file_chooser_get_current_folder (filechooser);
 	prefs_set_string ("last_dir_browsed", dirname);
 	g_free (dirname);
     }
 
+    block_widgets ();
+
     /* Get the filenames and add them */
-    while (current != NULL)
+    for (gsl=names; gsl; gsl=gsl->next)
     {
-	result &= add_track_by_filename(fc_active_itdb,
-					(gchar*)current->data,
+	result &= add_track_by_filename(playlist->itdb,
+					gsl->data,
 					playlist,
-					prefs_get_int("add_recursively"),
+					prefs_get_int ("add_recursively"),
 					NULL, NULL);
-	current = current->next;
+	g_free (gsl->data);
     }
-	
+    g_slist_free (names);
+    names = NULL;
+
+    release_widgets ();
+
     /* clear log of non-updated tracks */
     display_non_updated ((void *)-1, NULL);
   
@@ -127,9 +129,7 @@
 	gtkpod_statusbar_message (_("Successfully added files"));
     else
 	gtkpod_statusbar_message (_("Some files were not added successfully"));
-	
-    /* Clean up the names list */
-    delete_file_list(names);
+	    
     release_widgets ();
 }
 
@@ -139,22 +139,57 @@
 /* ATTENTION: directly used as callback in gtkpod.glade -- if you
    change the arguments of this function make sure you define a
    separate callback for gtkpod.glade */
-void create_add_files_dialog (void)
+void create_add_files_callback (void)
 {
+    Playlist *pl;
+
+    pl = pm_get_selected_playlist ();
+
+    create_add_files_dialog (pl);
+}
+
+
+/* Open a modal file selection dialog for adding individual files */
+void create_add_files_dialog (Playlist *pl)
+{
     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_selected_itdb ();
-    if (!fc_active_itdb)
+    gchar *last_dir, *str;
+    iTunesDB *itdb;
+    ExtraiTunesDBData *eitdb;
+    Playlist *mpl;
+
+    if (!pl)
     {
-	message_sb_no_itdb_selected ();
+	error_dialog (_("Please select a playlist or repository before adding tracks."));
 	return;
     }
-	
-    /* Create the file chooser, and handle the response */
-    fc = gtk_file_chooser_dialog_new (_("Add Files"),
+
+    itdb = pl->itdb;
+    g_return_if_fail (itdb);
+    eitdb = itdb->userdata;
+    g_return_if_fail (eitdb);
+
+    if (!eitdb->itdb_imported)
+    {
+	error_dialog (_("Please load the iPod before adding tracks."));
+	return;
+    }
+
+    mpl = itdb_playlist_mpl (itdb);
+    g_return_if_fail (mpl);
+
+    /* Create window title */
+    if (mpl == pl)
+    {
+	str = g_strdup_printf (_("Add files to '%s'"), mpl->name);
+    }
+    else
+    {
+	str = g_strdup_printf (_("Add files to '%s/%s'"), mpl->name, pl->name);
+    }
+    /* Create the file chooser */
+    fc = gtk_file_chooser_dialog_new (str,
 				      NULL,
 				      GTK_FILE_CHOOSER_ACTION_OPEN,
 				      GTK_STOCK_CANCEL,
@@ -162,8 +197,12 @@
 				      GTK_STOCK_OPEN,
 				      GTK_RESPONSE_ACCEPT,
 				      NULL);
+    g_free (str);
 
+    /* allow multiple selection of files */
     gtk_file_chooser_set_select_multiple (GTK_FILE_CHOOSER (fc), TRUE);
+
+    /* set same directory as last time */
     last_dir = prefs_get_string ("last_dir_browsed");
     if (last_dir)
     {
@@ -172,57 +211,67 @@
 	g_free (last_dir);
     }
 
-    response = gtk_dialog_run(GTK_DIALOG(fc));
-	
+    /* Run the dialog */
+    response = gtk_dialog_run (GTK_DIALOG(fc));
+
+    /* Handle the response */
     switch (response)
     {
     case GTK_RESPONSE_ACCEPT:
-	add_files_ok(GTK_FILE_CHOOSER(fc));
+	add_files_ok (GTK_FILE_CHOOSER (fc), pl);
 	break;
     case GTK_RESPONSE_CANCEL:
 	break;
     default:	/* Fall through */
 	break;
-    }		
-    gtk_widget_destroy(fc);
+    }
+    gtk_widget_destroy (fc);
 }
 
 
 /* OK Button */
-static void add_playlists_ok(GtkFileChooser* filechooser)
+static void add_playlists_ok (GtkFileChooser* filechooser, iTunesDB *itdb)
 {
     GSList* names;  /* List of selected names */
-    GSList* current;  /* Current node in names list */
+    GSList* gsl;
 	
     /* Get the names of the playlist(s) and add them */
 	
-    /* If we don't have a playlist to add to, return */
-    g_return_if_fail(fc_active_itdb);
+    g_return_if_fail (itdb);
 	
-    block_widgets ();
-
     names = gtk_file_chooser_get_filenames(filechooser);
-    current = names;
 
-    if (current)
+    if (names)
     {
 	gchar *dirname = gtk_file_chooser_get_current_folder (filechooser);
 	prefs_set_string ("last_dir_browsed", dirname);
 	g_free (dirname);
     }
 
-    while (current != NULL)
+    block_widgets ();
+
+    for (gsl=names; gsl; gsl=gsl->next)
     {
-	add_playlist_by_filename (fc_active_itdb,
-				  (gchar*)current->data, NULL, 
+	add_playlist_by_filename (itdb,
+				  gsl->data, NULL, 
 				  -1, NULL, NULL);
-	current = current->next;
+	g_free (gsl->data);
     }
-		
-    gtkpod_tracks_statusbar_update();
-    delete_file_list(names);
+    g_slist_free (names);
+    names = NULL;
 
     release_widgets ();
+
+    /* clear log of non-updated tracks */
+    display_non_updated ((void *)-1, NULL);
+  
+    /* display log of updated tracks */
+    display_updated (NULL, NULL);
+  
+    /* display log of detected duplicates */
+    gp_duplicate_remove (NULL, NULL);
+	
+    gtkpod_tracks_statusbar_update();
 }
 
 
@@ -232,22 +281,48 @@
 /* ATTENTION: directly used as callback in gtkpod.glade -- if you
    change the arguments of this function make sure you define a
    separate callback for gtkpod.glade */
-void create_add_playlists_dialog(void)
+void create_add_playlists_callback (void)
 {
+    iTunesDB *itdb;
+
+    itdb = gp_get_selected_itdb ();
+
+    create_add_playlists_dialog (itdb);
+}
+
+
+/* Open a modal file selection dialog for adding playlist files */
+void create_add_playlists_dialog (iTunesDB *itdb)
+{
     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_selected_itdb ();
-    if (!fc_active_itdb)
+    gchar *last_dir, *str;
+    ExtraiTunesDBData *eitdb;
+    Playlist *mpl;
+
+    if (!itdb)
     {
-	message_sb_no_itdb_selected ();
+	error_dialog (_("Please select a playlist or repository before adding tracks."));
 	return;
     }
-	
-    /* Create the file chooser, and handle the response */
-    fc = gtk_file_chooser_dialog_new (_("Add Playlists"),
+
+    eitdb = itdb->userdata;
+    g_return_if_fail (eitdb);
+
+    if (!eitdb->itdb_imported)
+    {
+	error_dialog (_("Please load the iPod before adding tracks."));
+	return;
+    }
+
+    mpl = itdb_playlist_mpl (itdb);
+    g_return_if_fail (mpl);
+
+    /* Create window title */
+    str = g_strdup_printf (_("Add playlist files to '%s'"), mpl->name);
+
+    /* Create the file chooser */
+    fc = gtk_file_chooser_dialog_new (str,
 				      NULL, 
 				      GTK_FILE_CHOOSER_ACTION_OPEN,
 				      GTK_STOCK_CANCEL,
@@ -255,8 +330,12 @@
 				      GTK_STOCK_OPEN,
 				      GTK_RESPONSE_ACCEPT,
 				      NULL);
+    g_free (str);
 	
+    /* allow multiple selection of files */
     gtk_file_chooser_set_select_multiple (GTK_FILE_CHOOSER (fc), TRUE);
+
+    /* set same directory as last time */
     last_dir = prefs_get_string ("last_dir_browsed");
     if (last_dir)
     {
@@ -265,12 +344,14 @@
 	g_free (last_dir);
     }
 
-    response = gtk_dialog_run(GTK_DIALOG(fc));
+    /* Run the dialog */
+    response = gtk_dialog_run (GTK_DIALOG(fc));
 	
+    /* Handle the response */
     switch (response)
     {
     case GTK_RESPONSE_ACCEPT:
-	add_playlists_ok(GTK_FILE_CHOOSER(fc));
+	add_playlists_ok(GTK_FILE_CHOOSER (fc), itdb);
 	break;
     case GTK_RESPONSE_CANCEL:
 	break;
@@ -636,11 +717,12 @@
 static GdkPixmap *db_folder_pixmap = NULL, *db_ofolder_pixmap;
 static GdkBitmap *db_folder_mask, *db_ofolder_mask;
 static GtkWidget *dirbrowser = NULL;
-static iTunesDB *db_active_itdb = NULL;
 
+static GtkWidget *xmms_create_dir_browser(const gchar *title,
+					  const gchar *current_path,
+					  GtkSelectionMode mode,
+					  void (*handler) (gchar *));
 
-static GtkWidget *xmms_create_dir_browser(const gchar * title, const gchar * current_path, GtkSelectionMode mode, void (*handler) (gchar *));
-
 struct dirnode
 {
     unsigned int scanned : 1;
@@ -653,33 +735,18 @@
  * functions added for gtkpod                                   *
  * ------------------------------------------------------------ */
 
-/* turn the dirbrowser insensitive (if it's open) */
-void dirbrowser_block (void)
-{
-    if (dirbrowser)
-	gtk_widget_set_sensitive (dirbrowser, FALSE);
-}
-
-/* turn the dirbrowser sensitive (if it's open) */
-void dirbrowser_release (void)
-{
-    if (dirbrowser)
-	gtk_widget_set_sensitive (dirbrowser, TRUE);
-}
-
 /* Callback after one directory has been added */
 static void add_dir_selected (gchar *dir)
 {
-    g_return_if_fail (db_active_itdb);
+    g_return_if_fail (db_active_pl);
 
     if (dir)
     {
-	Playlist *plitem = pm_get_selected_playlist ();
-	add_directory_by_name (db_active_itdb, dir, plitem,
-			       prefs_get_int("add_recursively"),
+	add_directory_by_name (db_active_pl->itdb, dir, db_active_pl,
+			       prefs_get_int ("add_recursively"),
 			       NULL, NULL);
 	prefs_set_string ("last_dir_browsed", dir);
-	gtkpod_tracks_statusbar_update();
+	gtkpod_tracks_statusbar_update ();
     }
     else
     {
@@ -696,30 +763,71 @@
 /* ATTENTION: directly used as callback in gtkpod.glade -- if you
    change the arguments of this function make sure you define a
    separate callback for gtkpod.glade */
-void dirbrowser_create (void)
+void dirbrowser_create_callback (void)
 {
-    gchar *cur_dir;
+    Playlist *pl;
 
-    if (dirbrowser)
-    {   /* file selector already open -- raise to the top */
-	gdk_window_raise (dirbrowser->window);
+    pl = pm_get_selected_playlist ();
+
+    dirbrowser_create (pl);
+}
+
+
+
+
+
+void dirbrowser_create (Playlist *pl)
+{
+    gchar *cur_dir, *str;
+    iTunesDB *itdb;
+    ExtraiTunesDBData *eitdb;
+    Playlist *mpl;
+
+    /* we only allow one modal dirbrowser */
+    g_return_if_fail (dirbrowser==NULL);
+
+
+    if (!pl)
+    {
+	error_dialog (_("Please select a playlist or repository before adding tracks."));
 	return;
     }
 
-    db_active_itdb = gp_get_selected_itdb ();
-    if (!db_active_itdb)
+    itdb = pl->itdb;
+    g_return_if_fail (itdb);
+    eitdb = itdb->userdata;
+    g_return_if_fail (eitdb);
+
+    if (!eitdb->itdb_imported)
     {
-	message_sb_no_itdb_selected ();
+	error_dialog (_("Please load the iPod before adding tracks."));
 	return;
     }
 
+    /* FIXME: I don't like global variables */
+    db_active_pl = pl;
+
+    mpl = itdb_playlist_mpl (itdb);
+    g_return_if_fail (mpl);
+
+    /* Create window title */
+    if (mpl == pl)
+    {
+	str = g_strdup_printf (_("Add directories to '%s'"), mpl->name);
+    }
+    else
+    {
+	str = g_strdup_printf (_("Add directories to '%s/%s'"), mpl->name, pl->name);
+    }
+
     cur_dir = prefs_get_string ("last_dir_browsed");
-    dirbrowser = xmms_create_dir_browser (
-	_("Select directory to add recursively"),
-	cur_dir,
-	GTK_SELECTION_MULTIPLE,
-	add_dir_selected);
+    dirbrowser = xmms_create_dir_browser (str,
+					  cur_dir,
+					  GTK_SELECTION_MULTIPLE,
+					  add_dir_selected);
     g_free (cur_dir);
+    g_free (str);
+    gtk_window_set_modal (GTK_WINDOW (dirbrowser), TRUE);
     gtk_widget_show (dirbrowser);
 }
 

Modified: gtkpod/trunk/src/fileselection.h
===================================================================
--- gtkpod/trunk/src/fileselection.h	2007-06-27 20:59:02 UTC (rev 193)
+++ gtkpod/trunk/src/fileselection.h	2007-06-27 21:27:12 UTC (rev 194)
@@ -1,4 +1,4 @@
-/* Time-stamp: <2006-05-22 23:18:47 jcs>
+/* Time-stamp: <2007-06-25 00:53: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: fileselection.h,v 1.6 2006/05/22 15:12:45 jcsjcs Exp $
+|  $Id: fileselection.h 1588 2007-06-24 16:02:51Z jcsjcs $
 */
 
 /***************************************************************************
@@ -41,8 +41,8 @@
 
 #include "prefs.h"
 
-void create_add_files_dialog(void);
-void create_add_playlists_dialog(void);
+void create_add_files_dialog (Playlist *pl);
+void create_add_playlists_dialog (iTunesDB *itdb);
 gchar *fileselection_get_cover_filename(void);
 gchar *fileselection_get_file_or_dir (const gchar *title,
 				      const gchar *cur_file,
@@ -53,7 +53,5 @@
 				    const gchar *additional_text);
 
 /* dirbrowser */
-void dirbrowser_block (void);
-void dirbrowser_release (void);
-void dirbrowser_create (void);
+void dirbrowser_create (Playlist *pl);
 #endif

Copied: gtkpod/trunk/src/flacfile.c (from rev 193, gtkpod/branches/upstream/current/src/flacfile.c)
===================================================================
--- gtkpod/trunk/src/flacfile.c	                        (rev 0)
+++ gtkpod/trunk/src/flacfile.c	2007-06-27 21:27:12 UTC (rev 194)
@@ -0,0 +1,131 @@
+#ifdef HAVE_CONFIG_H
+#  include <config.h>
+#endif
+
+#include "charset.h"
+#include "itdb.h"
+#include "misc.h"
+#include "flacfile.h"
+
+/* Info on how to implement new file formats: see mp3file.c for more info */
+
+#ifdef HAVE_FLAC
+
+#include <sys/types.h>
+#include <sys/param.h>
+#include <inttypes.h>
+#include <stdlib.h>
+#include <string.h>
+#include <FLAC/metadata.h>
+#include "prefs.h"
+
+Track *flac_get_file_info (gchar *flacFileName)
+{
+    Track *track = NULL;
+    FLAC__StreamMetadata stream_data;
+    FLAC__StreamMetadata *tags;
+
+    if(!FLAC__metadata_get_streaminfo (flacFileName, &stream_data))
+    {
+        gchar *filename = NULL;
+        filename = charset_to_utf8 (flacFileName);
+
+	gtkpod_warning (_("'%s' does not appear to be an FLAC audio file.\n"),
+	                filename);
+        g_free (filename);
+    }
+    else
+    {
+        track = gp_track_new ();
+	track->description = g_strdup ("FLAC audio file");
+
+        track->bitrate = stream_data.data.stream_info.bits_per_sample/1000;
+        track->samplerate = stream_data.data.stream_info.sample_rate;
+        track->tracklen = stream_data.data.stream_info.total_samples / (stream_data.data.stream_info.sample_rate / 1000);
+
+        if (prefs_get_int("readtags")) 
+        {
+            if (!FLAC__metadata_get_tags (flacFileName, &tags)) 
+            {
+                gchar *filename = NULL;
+                filename = charset_to_utf8 (flacFileName);
+                gtkpod_warning (_("Error retrieving tags for '%s'.\n"),
+	                        filename);
+                g_free (filename);
+                /* FIXME: should NULL be returned if no tags? */
+            }
+            else {
+                gint i;
+
+                for (i = 0 ; i < tags->data.vorbis_comment.num_comments ; i++) 
+                {
+                    gchar *tag = (gchar*)tags->data.vorbis_comment.comments[i].entry;
+
+                    if (g_ascii_strncasecmp("ARTIST=", tag, 7) == 0) {
+                        track->artist = charset_to_utf8 (tag + 7);
+                    }
+                    if (g_ascii_strncasecmp("ALBUM=", tag, 6) == 0) {
+                        track->album = charset_to_utf8 (tag + 6);
+                    }
+                    if (g_ascii_strncasecmp("TITLE=", tag, 6) == 0) {
+                        track->title = charset_to_utf8 (tag + 6);
+                    }
+                    if (g_ascii_strncasecmp("GENRE=", tag, 6) == 0) {
+                        track->genre = charset_to_utf8 (tag + 6);
+                    }
+                    if (g_ascii_strncasecmp("YEAR=", tag, 5) == 0) {
+                        track->year = atoi (tag + 5);
+                    }
+                    if (g_ascii_strncasecmp("TRACKNUMBER=", tag, 12) == 0) {
+                        track->track_nr = atoi (tag + 12);
+                    }
+                    if (g_ascii_strncasecmp("COMPOSER=", tag, 9) == 0) {
+                        track->composer = charset_to_utf8 (tag + 9);
+                    }
+                    if (g_ascii_strncasecmp("COMMENT=", tag, 8) == 0) {
+                        track->comment = charset_to_utf8 (tag + 8);
+                    }
+                    if (g_ascii_strncasecmp("TRACKS=", tag, 7) == 0) {
+                        track->tracks = atoi (tag  + 7);
+                    }
+                    if (g_ascii_strncasecmp("CNDR=", tag, 5) == 0) {
+                        track->cd_nr = atoi (tag + 5);
+                    }
+                    if (g_ascii_strncasecmp("CDS=", tag, 4) == 0) {
+                        track->cds = atoi (tag  + 4);
+		    }
+		    /* I'm not sure if "BPM=" is correct */ 
+                    if (g_ascii_strncasecmp("BPM=", tag, 4) == 0) {
+                        track->BPM = atoi (tag  + 4);
+                    }
+                }
+            }
+
+            FLAC__metadata_object_delete (tags);
+	}
+    }
+
+    return track;
+}
+
+gboolean flac_write_file_info (gchar *flacFileName, Track *track)
+{
+    gboolean result = FALSE;
+    gtkpod_warning ("Not supported yet\n"); /* FIXME: */
+    return result;
+}
+
+#else
+/* We don't support FLAC without the FLAC library */
+Track *flac_get_file_info (gchar *name)
+{
+    gtkpod_warning (_("Import of '%s' failed: FLAC not supported without the FLAC library. You must compile the gtkpod source together with the FLAC library.\n"), name);
+    return NULL;
+}
+
+gboolean flac_write_file_info (gchar *filename, Track *track)
+{
+    gtkpod_warning (_("FLAC metadata update for '%s' failed: FLAC not supported without the FLAC library. You must compile the gtkpod source together with the FLAC library.\n"), filename);
+    return FALSE;
+}
+#endif

Copied: gtkpod/trunk/src/flacfile.h (from rev 193, gtkpod/branches/upstream/current/src/flacfile.h)
===================================================================
--- gtkpod/trunk/src/flacfile.h	                        (rev 0)
+++ gtkpod/trunk/src/flacfile.h	2007-06-27 21:27:12 UTC (rev 194)
@@ -0,0 +1,36 @@
+/* Time-stamp: <2005-01-07 23:51:33 jcs>
+|
+|  Copyright (C) 2002-2003 Jorg Schuler <jcsjcs at users.sourceforge.net>
+|  Part of the gtkpod project.
+|
+|  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: flacfile.h 954 2007-01-16 09:45:00Z jcsjcs $
+*/
+
+#ifndef FLACFILEH_INCLUDED
+#define FLACFILEH_INCLUDED 1
+
+#include "itdb.h"
+
+gboolean flac_write_file_info (gchar *filename, Track *track);
+Track *flac_get_file_info (gchar *flacFileName);
+#endif

Modified: gtkpod/trunk/src/info.c
===================================================================
--- gtkpod/trunk/src/info.c	2007-06-27 20:59:02 UTC (rev 193)
+++ gtkpod/trunk/src/info.c	2007-06-27 21:27:12 UTC (rev 194)
@@ -1,6 +1,5 @@
-/* Time-stamp: <2006-06-25 00:22:55 jcs>
-|
-|  Copyright (C) 2002-2005 Jorg Schuler <jcsjcs at users sourceforge net>
+/*
+|  Copyright (C) 2002-2007 Jorg Schuler <jcsjcs at users sourceforge net>
 |  Part of the gtkpod project.
 | 
 |  URL: http://www.gtkpod.org/
@@ -24,7 +23,7 @@
 | 
 |  This product is not supported/written/published by Apple!
 |
-|  $Id: info.c,v 1.47 2006/06/24 15:39:22 jcsjcs Exp $
+|  $Id: info.c 1550 2007-06-17 14:14:38Z jcsjcs $
 */
 
 /* This file provides functions for the info window as well as for the
@@ -52,6 +51,7 @@
 static guint statusbar_timeout_id = 0;
 static guint statusbar_timeout = STATUSBAR_TIMEOUT;
 
+#define SPACE_TIMEOUT 1000
 /* lock for size related variables (used by child and parent) */
 static GMutex *space_mutex = NULL;
 static GThread *space_thread = NULL;
@@ -206,7 +206,7 @@
 	gint defx, defy;
 	gtk_window_get_size (GTK_WINDOW (info_window), &defx, &defy);
 	prefs_set_int("size_info.x", defx);
-  prefs_set_int("size_info.y", defy);
+	prefs_set_int("size_info.y", defy);
     }
 }
 
@@ -454,6 +454,9 @@
 
 	gtk_statusbar_pop(GTK_STATUSBAR(gtkpod_statusbar), context);
 	gtk_statusbar_push(GTK_STATUSBAR(gtkpod_statusbar), context,  text);
+
+	g_free (text);
+
 	gtkpod_statusbar_reset_timeout ();
     }
 }

Modified: gtkpod/trunk/src/info.h
===================================================================
--- gtkpod/trunk/src/info.h	2007-06-27 20:59:02 UTC (rev 193)
+++ gtkpod/trunk/src/info.h	2007-06-27 21:27:12 UTC (rev 194)
@@ -1,6 +1,5 @@
-/* Time-stamp: <2006-06-24 01:39:23 jcs>
-|
-|  Copyright (C) 2002-2005 Jorg Schuler <jcsjcs at users sourceforge net>
+/*
+|  Copyright (C) 2002-2007 Jorg Schuler <jcsjcs at users sourceforge net>
 |  Part of the gtkpod project.
 | 
 |  URL: http://www.gtkpod.org/
@@ -24,7 +23,7 @@
 | 
 |  This product is not supported/written/published by Apple!
 |
-|  $Id: info.h,v 1.15 2006/06/23 16:46:12 jcsjcs Exp $
+|  $Id: info.h 1065 2007-05-06 14:16:17Z jcsjcs $
 */
 
 #ifndef __INFO_H__
@@ -58,7 +57,6 @@
 void gtkpod_tracks_statusbar_update(void);
 
 /* space stuff */
-#define SPACE_TIMEOUT 4000   /* update interval in ms */
 void space_set_ipod_itdb (iTunesDB *itdb);
 iTunesDB *space_get_ipod_itdb (void);
 void space_data_update (void);

Modified: gtkpod/trunk/src/ipod_init.c
===================================================================
--- gtkpod/trunk/src/ipod_init.c	2007-06-27 20:59:02 UTC (rev 193)
+++ gtkpod/trunk/src/ipod_init.c	2007-06-27 21:27:12 UTC (rev 194)
@@ -1,4 +1,4 @@
-/* Time-stamp: <2006-09-17 16:11:25 jcs>
+/* Time-stamp: <2007-06-19 22:52: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: ipod_init.c,v 1.7 2006/09/17 07:14:07 jcsjcs Exp $
+|  $Id: ipod_init.c 1564 2007-06-19 13:54:47Z jcsjcs $
 */
 
 /* This file provides functions to initialize a new iPod */
@@ -277,19 +277,29 @@
 
     /* If available set current model number, otherwise indicate that
        none is available */
-    info = itdb_device_get_ipod_info (ii->itdb->device);
+    /* 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));
+	model = get_itdb_prefs_string (itdb, KEY_IPOD_MODEL);
+	if (model && (strlen (g_strstrip (model)) != 0))
+	{
+	    g_snprintf (buf, PATH_MAX, "%s", model);
+	    g_free (model);
+	}
+	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)
@@ -330,7 +340,8 @@
 	}
 	model = gtk_combo_box_get_active_text (
 	    GTK_COMBO_BOX (GET_WIDGET (MODEL_COMBO)));
-	if (strcmp (model, gettext(SELECT_OR_ENTER_YOUR_MODEL)) == 0)
+	if ((strcmp (model, gettext(SELECT_OR_ENTER_YOUR_MODEL)) == 0) ||
+	    (strlen (model) == 0))
 	{   /* User didn't choose a model */
 	    g_free (model);
 	    model = NULL;
@@ -425,12 +436,21 @@
     }
     else
     {
-	g_snprintf (buf, PATH_MAX, "%s", gettext (SELECT_OR_ENTER_YOUR_MODEL));
+	model = get_itdb_prefs_string (itdb, KEY_IPOD_MODEL);
+	if (model && (strlen (g_strstrip (model)) != 0))
+	{
+	    g_snprintf (buf, PATH_MAX, "%s", model);
+	    g_free (model);
+	}
+	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)
@@ -438,7 +458,11 @@
     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)
+	if (!model)
+	{
+	    gtkpod_warning (_("Could not determine the model you selected -- this could be a bug or incompatibilty in the GTK+ or glade library.\n\n"));
+	}
+	else if (strcmp (model, gettext(SELECT_OR_ENTER_YOUR_MODEL)) == 0)
 	{   /* User didn't choose a model */
 	    g_free (model);
 	    model = NULL;

Modified: gtkpod/trunk/src/ipod_init.h
===================================================================
--- gtkpod/trunk/src/ipod_init.h	2007-06-27 20:59:02 UTC (rev 193)
+++ gtkpod/trunk/src/ipod_init.h	2007-06-27 21:27:12 UTC (rev 194)
@@ -24,7 +24,7 @@
 | 
 |  This product is not supported/written/published by Apple!
 |
-|  $Id: ipod_init.h,v 1.3 2006/06/10 10:38:59 jcsjcs Exp $
+|  $Id: ipod_init.h 813 2006-06-10 10:38:59Z jcsjcs $
 */
 
 #ifndef __IPOD_INIT_H__

Modified: gtkpod/trunk/src/itdb.h
===================================================================
--- gtkpod/trunk/src/itdb.h	2007-06-27 20:59:02 UTC (rev 193)
+++ gtkpod/trunk/src/itdb.h	2007-06-27 21:27:12 UTC (rev 194)
@@ -30,7 +30,7 @@
 |
 |  This product is not supported/written/published by Apple!
 |
-|  $Id: itdb.h,v 1.19 2006/06/06 00:47:07 jcsjcs Exp $
+|  $Id: itdb.h 791 2006-06-06 00:47:07Z jcsjcs $
 */
 
 #ifndef ITDB_H

Modified: gtkpod/trunk/src/main.c
===================================================================
--- gtkpod/trunk/src/main.c	2007-06-27 20:59:02 UTC (rev 193)
+++ gtkpod/trunk/src/main.c	2007-06-27 21:27:12 UTC (rev 194)
@@ -1,6 +1,5 @@
-/* Time-stamp: <2006-09-24 20:49:39 jcs>
-|
-|  Copyright (C) 2002-2005 Jorg Schuler <jcsjcs at users sourceforge net>
+/*
+|  Copyright (C) 2002-2007 Jorg Schuler <jcsjcs at users sourceforge net>
 |  Part of the gtkpod project.
 | 
 |  URL: http://www.gtkpod.org/
@@ -24,7 +23,7 @@
 |
 |  This product is not supported/written/published by Apple!
 |
-|  $Id: main.c,v 1.58 2006/09/24 12:16:26 jcsjcs Exp $
+|  $Id: main.c 1053 2007-04-23 15:33:31Z jcsjcs $
 */
 
 #ifdef HAVE_CONFIG_H
@@ -35,112 +34,40 @@
 #include <time.h>
 
 #include "display.h"
-#include "clientserver.h"
-#include "prefs.h"
 #include "misc.h"
-#include "file.h"
 
 /* path to gtkpod.glade */
-gchar *xml_file;
+gchar *xml_file = NULL;
 
 int
 main (int argc, char *argv[])
 {
-    gchar *progname;
-	
-  
-
 #ifdef ENABLE_NLS
-  bindtextdomain (GETTEXT_PACKAGE, PACKAGE_LOCALE_DIR);
-  bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8");
-  textdomain (GETTEXT_PACKAGE);
+    bindtextdomain (GETTEXT_PACKAGE, PACKAGE_LOCALE_DIR);
+    bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8");
+    textdomain (GETTEXT_PACKAGE);
 #endif
 
 #ifdef G_THREADS_ENABLED
-  /* this must be called before gtk_init () */
-  g_thread_init (NULL);
-  /* FIXME: this call causes gtkpod to freeze as soon as tracks should be
-     displayed */
-/*   gdk_threads_init (); */
+    /* this must be called before gtk_init () */
+    g_thread_init (NULL);
+    /* FIXME: this call causes gtkpod to freeze as soon as tracks should be
+       displayed */
+    gdk_threads_init ();
 #endif
 
-  gtk_init (&argc, &argv);
+    gdk_threads_enter ();
 
-  srand(time(NULL));
+    gtk_init (&argc, &argv);
 
-  /* initialize xml_file: if gtkpod is called in the build directory
-     (".../src/gtkpod") use the local gtkpod.glade (the symlink in the
-     pixmaps directory), otherwise use
-     "PACKAGE_DATA_DIR/PACKAGE/pixmaps/gtkpod.glade" */
+    srand(time(NULL));
 
-  progname = g_find_program_in_path (argv[0]);
-  if (progname)
-  {
-      static const gchar *SEPsrcSEPgtkpod = G_DIR_SEPARATOR_S "src" G_DIR_SEPARATOR_S "gtkpod";
+    gtkpod_init (argc, argv);
 
-      if (!g_path_is_absolute (progname))
-      {
-	  gchar *cur_dir = g_get_current_dir ();
-	  gchar *prog_absolute;
+    gtk_main ();
 
-	  if (g_str_has_prefix (progname, "." G_DIR_SEPARATOR_S))
-	      prog_absolute = g_build_filename (cur_dir,progname+2,NULL);
-	  else
-	      prog_absolute = g_build_filename (cur_dir,progname,NULL);
-	  g_free (progname);
-	  g_free (cur_dir);
-	  progname = prog_absolute;
-      }
+    gdk_threads_leave ();
 
-      if (g_str_has_suffix (progname, SEPsrcSEPgtkpod))
-      {
-	  gchar *suffix = g_strrstr (progname, SEPsrcSEPgtkpod);
-	  if (suffix)
-	  {
-	      *suffix = 0;
-	      xml_file = g_build_filename (progname, "pixmaps", "gtkpod.glade", NULL);
-	  }
-      }
-      g_free (progname);
-      if (!g_file_test (xml_file, G_FILE_TEST_EXISTS))
-      {
-	  g_free (xml_file);
-	  xml_file = NULL;
-      }
-  }
-  if (!xml_file)
-      xml_file = g_build_filename (PACKAGE_DATA_DIR, PACKAGE, "pixmaps", "gtkpod.glade", NULL);
-  else
-  {
-      printf ("Using local gtkpod.glade file since program was started from source directory:\n%s\n", xml_file);
-  }
-
-  main_window_xml = glade_xml_new (xml_file, "gtkpod", NULL);
-
-  glade_xml_signal_autoconnect (main_window_xml);
-  
-  gtkpod_window = gtkpod_xml_get_widget (main_window_xml, "gtkpod");
-  
-  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", NULL);
-
-  if(prefs_get_int("autoimport") || prefs_get_int("autoimport_commandline"))
-      gp_load_ipods ();
-
-  server_setup ();   /* start server to accept playcount updates */
-
-/*   gdk_threads_enter (); */
-  gtk_main ();
-/*   gdk_threads_leave (); */
-
-  /* all the cleanup is already done in gtkpod_main_quit() in misc.c */
-  return 0;
+    /* all the cleanup is already done in gtkpod_main_shutdown () in misc.c */
+    return 0;
 }

Deleted: gtkpod/trunk/src/md5.c
===================================================================
--- gtkpod/trunk/src/md5.c	2007-06-27 20:59:02 UTC (rev 193)
+++ gtkpod/trunk/src/md5.c	2007-06-27 21:27:12 UTC (rev 194)
@@ -1,568 +0,0 @@
-/* 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>
-|  Part of the gtkpod project.
-| 
-|  URL: http://www.gtkpod.org/
-|  URL: http://gtkpod.sourceforge.net/
-|
-|  SHA1 routine: David Puckett <niekze at yahoo.com>
-|  SHA1 implemented from FIPS-160 standard
-|  <http://www.itl.nist.gov/fipspubs/fip180-1.htm>
-|
-|  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: md5.c,v 1.44 2006/06/25 23:29:08 freethinkerjim Exp $
-*/
-
-#include <errno.h>
-#include <limits.h>
-#include <stdio.h>
-#include <string.h>
-#include <sys/stat.h>
-#include <sys/types.h>
-#include <unistd.h>
-#include <glib.h>
-#include "charset.h"
-#include "md5.h"
-#include "file.h"
-#include "prefs.h"
-#include "misc.h"
-#include "misc_track.h"
-#include "display.h"
-#include "display_itdb.h"
-
-
-typedef guint32 chunk;
-union _block
-{
-   guint8 charblock[64];
-   chunk chunkblock[16];
-};
-typedef union _block block;
-
-union _hblock
-{
-   guint8 charblock[20];
-   chunk chunkblock[5];
-};
-typedef union _hblock hblock;
-
-struct _sha1
-{
-   block *blockdata;
-   hblock *H;
-};
-typedef struct _sha1 sha1;
-
-static guint8 *sha1_hash(const guint8 * text, guint32 len);
-static void process_block_sha1(sha1 * message);
-
-#if BYTE_ORDER == LITTLE_ENDIAN
-static void little_endian(hblock * stupidblock, int blocks);
-#endif
-
-/**
- * Create and manage a string hash for files on disk
- */
-
-/**
- * NR_PATH_MAX_BLOCKS
- * A seed of sorts for SHA1, if collisions occur increasing this value
- * should give more unique data to SHA1 as more of the file is read
- * This value is multiplied by PATH_MAX_MD5 to determine how many bytes are read
- */
-#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 guint32
-get_filesize_for_file_descriptor(FILE *fp)
-{
-    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 (guint32)result;
-}
-
-/**
- * md5_hash_on_file - read PATH_MAX_MD5 * NR_PATH_MAX_BLOCKS bytes
- * from the file and ask sha1 for a hash of it, convert this hash to a
- * string of hex output @fp - an open file descriptor to read from
- * Returns - A Hash String - you handle memory returned
- */
-static gchar *
-md5_hash_on_file(FILE * fp)
-{
-   gchar *result = NULL;
-
-   if (fp)
-   {
-       int fsize = 0;
-       int chunk_size = PATH_MAX_MD5 * NR_PATH_MAX_BLOCKS;
-
-       fsize = get_filesize_for_file_descriptor(fp);
-       if(fsize < chunk_size)
-	   chunk_size = fsize;
-
-       if(fsize > 0)
-       {
-	   guint32 fsize_normal;
-	   guint8 *hash = NULL;
-	   int bread = 0, x = 0, last = 0;
-	   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 */
-	   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),
-			    chunk_size, fp);
-
-	   /* create hash from our data */
-	   hash = sha1_hash(file_chunk, (bread + sizeof(int)));
-
-	   /* put it in a format we like */
-	   for (x = 0; x < 20; x++)
-	       last += snprintf(&result[last], 4, "%02x", hash[x]);
-
-	   /* free the hash value sha1_hash gave us */
-	   g_free(hash);
-       }
-       else
-       {
-	  gtkpod_warning(_("Hashed file is 0 bytes long\n"));
-       }
-   }
-   return (result);
-}
-
-/**
- * Generate a unique hash for the Track passed in
- * @s - The Track data structure, we want to hash based on the file on disk
- * Returns - an SHA1 hash in string format, is the hex output from the hash
- */
-static gchar *
-md5_hash_track(Track * s)
-{
-   ExtraTrackData *etr;
-   gchar *result = NULL;
-   gchar *filename;
-
-   g_return_val_if_fail (s, NULL);
-   etr = s->userdata;
-   g_return_val_if_fail (etr, NULL);
-
-   if (etr->md5_hash != NULL)
-   {
-       result = g_strdup(etr->md5_hash);
-   }
-   else
-   {
-       filename = get_file_name_from_source (s, SOURCE_PREFER_LOCAL);
-       if (filename)
-       {
-	   result = md5_hash_on_filename (filename, FALSE);
-	   g_free(filename);
-       }
-   }
-   return (result);
-}
-
-
-/* @silent: don't print any warning */
-gchar *md5_hash_on_filename (gchar *name, gboolean silent)
-{
-    gchar *result = NULL;
-
-    if (name)
-    {
-	FILE *fpit = fopen (name, "r");
-	if (!fpit)
-	{
-	    if (!silent)
-	    {
-		gchar *name_utf8=charset_to_utf8 (name);
-		gtkpod_warning (
-		    _("Could not open '%s' to calculate MD5 checksum: %s\n"),
-		    name_utf8, strerror(errno));
-		g_free (name_utf8);
-	    }
-	}
-	else
-	{
-	    result = md5_hash_on_file (fpit);
-	    fclose (fpit);
-	}
-    }
-    return result;
-}
-
-
-/**
- * Free up the dynamically allocated memory in @itdb's hash table
- */
-void md5_free_eitdb (ExtraiTunesDBData *eitdb)
-{
-    g_return_if_fail (eitdb);
-
-    if (eitdb->md5hash)
-    {
-	g_hash_table_destroy (eitdb->md5hash);
-	eitdb->md5hash = NULL;
-    }
-}
-
-/**
- * Free up the dynamically allocated memory in @itdb's hash table
- */
-void md5_free (iTunesDB *itdb)
-{
-    g_return_if_fail (itdb);
-    g_return_if_fail (itdb->userdata);
-
-    md5_free_eitdb (itdb->userdata);
-}
-
-/**
- * Check to see if a track has already been added to the ipod
- * @s - the Track we want to know about. If the track does not exist, it
- * is inserted into the hash.
- * Returns a pointer to the duplicate track.
- */
-Track *md5_track_exists_insert (iTunesDB *itdb, Track * s)
-{
-    ExtraiTunesDBData *eitdb;
-    ExtraTrackData *etr;
-    gchar *val = NULL;
-    Track *track = NULL;
-
-    g_return_val_if_fail (itdb, NULL);
-    eitdb = itdb->userdata;
-    g_return_val_if_fail (eitdb, NULL);
-
-    g_return_val_if_fail (s, NULL);
-    etr = s->userdata;
-    g_return_val_if_fail (etr, NULL);
-
-    if (prefs_get_int("md5"))
-    {
-	if (eitdb->md5hash == NULL)
-	{
-	    eitdb->md5hash = g_hash_table_new_full(g_str_hash,
-						   g_str_equal,
-						   g_free, NULL);
-	}
-	val = md5_hash_track (s);
-	if (val != NULL)
-	{
-	    track = g_hash_table_lookup (eitdb->md5hash, val);
-	    if (track)
-	    {
-		g_free(val);
-	    }
-	    else
-	    {   /* if it doesn't exist we register it in the hash */
-		g_free (etr->md5_hash);
-		etr->md5_hash = g_strdup (val);
-		/* val is used in the next line -- we don't have to
-		 * g_free() it */
-		g_hash_table_insert (eitdb->md5hash, val, s);
-	    }
-	}
-    }
-    return track;
-}
-
-/**
- * Check to see if a track has already been added to the ipod
- * @s - the Track we want to know about.
- * Returns a pointer to the duplicate track.
- */
-Track *md5_track_exists (iTunesDB *itdb, Track *s)
-{
-    ExtraiTunesDBData *eitdb;
-    Track *track = NULL;
-
-    g_return_val_if_fail (itdb, NULL);
-    eitdb = itdb->userdata;
-    g_return_val_if_fail (eitdb, NULL);
-
-    if (prefs_get_int("md5") && eitdb->md5hash)
-    {
-	gchar *val = md5_hash_track (s);
-	if (val)
-	{
-	    track = g_hash_table_lookup (eitdb->md5hash, val);
-	    g_free (val);
-	}
-    }
-    return track;
-}
-
-/**
- * Check to see if a track has already been added to the ipod
- * @file - the Track we want to know about.
- * Returns a pointer to the duplicate track using md5 for
- * identification. If md5 checksums are off, NULL is returned.
- */
-Track *md5_file_exists (iTunesDB *itdb, gchar *file, gboolean silent)
-{
-    ExtraiTunesDBData *eitdb;
-    Track *track = NULL;
-
-    g_return_val_if_fail (file, NULL);
-    g_return_val_if_fail (itdb, NULL);
-    eitdb = itdb->userdata;
-    g_return_val_if_fail (eitdb, NULL);
-
-    if (prefs_get_int("md5") && eitdb->md5hash)
-    {
-	gchar *val = md5_hash_on_filename (file, silent);
-	if (val)
-	{
-	    track = g_hash_table_lookup (eitdb->md5hash, val);
-	    g_free (val);
-	}
-    }
-    return track;
-}
-
-
-/**
- * Check to see if a track has already been added to the ipod
- * @md5 - the md5 we want to know about.
- * Returns a pointer to the duplicate track using md5 for
- * identification. If md5 checksums are off, NULL is returned.
- */
-Track *md5_md5_exists (iTunesDB *itdb, gchar *md5)
-{
-    ExtraiTunesDBData *eitdb;
-    Track *track = NULL;
-
-    g_return_val_if_fail (md5, NULL);
-    g_return_val_if_fail (itdb, NULL);
-    eitdb = itdb->userdata;
-    g_return_val_if_fail (eitdb, NULL);
-
-    if (prefs_get_int("md5") && eitdb->md5hash)
-    {
-	track = g_hash_table_lookup (eitdb->md5hash, md5);
-    }
-    return track;
-}
-
-/**
- * Free the specified track from the ipod's unique file hash
- * @s - The Track that's being freed from the ipod
- */
-void md5_track_remove (Track *s)
-{
-    ExtraiTunesDBData *eitdb;
-
-    g_return_if_fail (s);
-    g_return_if_fail (s->itdb);
-    eitdb = s->itdb->userdata;
-    g_return_if_fail (eitdb);
-
-    if (prefs_get_int("md5") && eitdb->md5hash)
-    {
-	gchar *val = md5_hash_track (s);
-	if (val)
-	{
-	    Track *track = g_hash_table_lookup (eitdb->md5hash, val);
-	    if (track)
-	    {
-		if (track == s) /* only remove if it's the same track */
-		    g_hash_table_remove (eitdb->md5hash, val);
-	    }
-	    g_free(val);
-	}
-    }
-}
-
-/* sha1_hash - hash value the input data with a given size.
- * @text - the data we're reading to seed sha1
- * @len - the length of the data for our seed
- * Returns a unique 20 char array.
- */
-static guint8 *
-sha1_hash(const guint8 * text, guint32 len)
-{
-   chunk x;
-   chunk temp_len = len;
-   const guint8 *temp_text = text;
-   guint8 *digest;
-   sha1 *message;
-
-   digest = g_malloc0(sizeof(guint8) * 21);
-   message = g_malloc0(sizeof(sha1));
-   message->blockdata = g_malloc0(sizeof(block));
-   message->H = g_malloc(sizeof(hblock));
-
-   message->H->chunkblock[0] = 0x67452301;
-   message->H->chunkblock[1] = 0xefcdab89;
-   message->H->chunkblock[2] = 0x98badcfe;
-   message->H->chunkblock[3] = 0x10325476;
-   message->H->chunkblock[4] = 0xc3d2e1f0;
-   while (temp_len >= 64)
-   {
-      for (x = 0; x < 64; x++)
-         message->blockdata->charblock[x] = temp_text[x];
-#if BYTE_ORDER == LITTLE_ENDIAN
-      little_endian((hblock *) message->blockdata, 16);
-#endif
-      process_block_sha1(message);
-      temp_len -= 64;
-      temp_text += 64;
-   }
-   for (x = 0; x < temp_len; x++)
-      message->blockdata->charblock[x] = temp_text[x];
-   message->blockdata->charblock[temp_len] = 0x80;
-   for (x = temp_len + 1; x < 64; x++)
-      message->blockdata->charblock[x] = 0x00;
-#if BYTE_ORDER == LITTLE_ENDIAN
-   little_endian((hblock *) message->blockdata, 16);
-#endif
-   if (temp_len > 54)
-   {
-      process_block_sha1(message);
-      for (x = 0; x < 60; x++)
-         message->blockdata->charblock[x] = 0x00;
-   }
-   message->blockdata->chunkblock[15] = len * 8;
-   process_block_sha1(message);
-#if BYTE_ORDER == LITTLE_ENDIAN
-   little_endian(message->H, 5);
-#endif
-   for (x = 0; x < 20; x++)
-      digest[x] = message->H->charblock[x];
-   digest[20] = 0x00;
-   g_free(message->blockdata);
-   g_free(message->H);
-   g_free(message);
-   return (digest);
-}
-
-/*
- * process_block_sha1 - process one 512-bit block of data
- * @message - the sha1 struct we're doing working on
- */
-static void
-process_block_sha1(sha1 * message)
-{
-   chunk x;
-   chunk w[80];                 /* test block */
-   chunk A;                     /* A - E: used for hash calc */
-   chunk B;
-   chunk C;
-   chunk D;
-   chunk E;
-   chunk T;                     /* temp guint32 */
-   chunk K[] = { 0x5a827999, 0x6ed9eba1, 0x8f1bbcdc, 0xca62c1d6 };
-
-   for (x = 0; x < 16; x++)
-      w[x] = message->blockdata->chunkblock[x];
-   for (x = 16; x < 80; x++)
-   {
-      w[x] = w[x - 3] ^ w[x - 8] ^ w[x - 14] ^ w[x - 16];
-      w[x] = (w[x] << 1) | (w[x] >> 31);
-   }
-   A = message->H->chunkblock[0];
-   B = message->H->chunkblock[1];
-   C = message->H->chunkblock[2];
-   D = message->H->chunkblock[3];
-   E = message->H->chunkblock[4];
-   for (x = 0; x < 80; x++)
-   {
-      T = ((A << 5) | (A >> 27)) + E + w[x] + K[x / 20];
-      if (x < 20)
-         T += (B & C) | ((~B) & D);
-      else if (x < 40 || x >= 60)
-         T += B ^ C ^ D;
-      else
-         T += ((C | D) & B) | (C & D);
-      E = D;
-      D = C;
-      C = (B << 30) | (B >> 2);
-      B = A;
-      A = T;
-   }
-   message->H->chunkblock[0] += A;
-   message->H->chunkblock[1] += B;
-   message->H->chunkblock[2] += C;
-   message->H->chunkblock[3] += D;
-   message->H->chunkblock[4] += E;
-}
-
-#if BYTE_ORDER == LITTLE_ENDIAN
-/*
- * little_endian - swap the significants bits to cater to bigendian
- * @stupidblock - the block of data we're swapping
- * @blocks - the number of blocks we're swapping
- */
-static void
-little_endian(hblock * stupidblock, int blocks)
-{
-   int x;
-   for (x = 0; x < blocks; x++)
-   {
-  	stupidblock->chunkblock[x] = (stupidblock->charblock[x * 4] << 24 | stupidblock->charblock[x * 4 + 1] << 16 | stupidblock->charblock[x * 4 +2] << 8 | stupidblock->charblock[x * 4 + 3]);
-   }
-}
-#endif
-
-

Deleted: gtkpod/trunk/src/md5.h
===================================================================
--- gtkpod/trunk/src/md5.h	2007-06-27 20:59:02 UTC (rev 193)
+++ gtkpod/trunk/src/md5.h	2007-06-27 21:27:12 UTC (rev 194)
@@ -1,48 +0,0 @@
-/* Time-stamp: <2005-06-17 22:12:15 jcs>
-|
-|  Copyright (C) 2002 Corey Donohoe <atmos at atmos.org>
-|  Copyright (C) 2004-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: 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 */
-Track *md5_file_exists (iTunesDB *itdb, gchar *file, gboolean silent);
-Track *md5_md5_exists (iTunesDB *itdb, gchar *md5);
-Track *md5_track_exists (iTunesDB *itdb, Track *s);
-Track *md5_track_exists_insert (iTunesDB *itdb, Track *s);
-void md5_track_remove (Track *s);
-void md5_free (iTunesDB *itdb);
-void md5_free_eitdb (ExtraiTunesDBData *eitdb);
-
-#endif

Modified: gtkpod/trunk/src/misc.c
===================================================================
--- gtkpod/trunk/src/misc.c	2007-06-27 20:59:02 UTC (rev 193)
+++ gtkpod/trunk/src/misc.c	2007-06-27 21:27:12 UTC (rev 194)
@@ -1,7 +1,6 @@
 /* -*- coding: utf-8; -*-
-|  Time-stamp: <2006-06-28 01:21:08 jcs>
 |
-|  Copyright (C) 2002-2005 Jorg Schuler <jcsjcs at users sourceforge net>
+|  Copyright (C) 2002-2007 Jorg Schuler <jcsjcs at users sourceforge net>
 |  Part of the gtkpod project.
 | 
 |  URL: http://www.gtkpod.org/
@@ -25,7 +24,7 @@
 |
 |  This product is not supported/written/published by Apple!
 |
-|  $Id: misc.c,v 1.213 2006/06/27 16:30:02 jcsjcs Exp $
+|  $Id: misc.c 1558 2007-06-18 15:33:07Z jcsjcs $
 */
 
 #ifdef HAVE_CONFIG_H
@@ -34,12 +33,15 @@
 
 #include <errno.h>
 #include <gtk/gtk.h>
-#include <stdlib.h>
+#include <glib/gstdio.h>
 #include <string.h>
 #include <sys/stat.h>
 #include <sys/wait.h>
 #include <unistd.h>
+#include "autodetection.h"
 #include "charset.h"
+#include "clientserver.h"
+#include "file_convert.h"
 #include "misc.h"
 #include "prefs.h"
 #include "misc_track.h"
@@ -47,6 +49,11 @@
 
 #define DEBUG_MISC 0
 
+
+/* where to find the scripts */
+const gchar *SCRIPTDIR = PACKAGE_DATA_DIR G_DIR_SEPARATOR_S PACKAGE G_DIR_SEPARATOR_S "scripts" G_DIR_SEPARATOR_S;
+
+
 /*------------------------------------------------------------------*\
  *                                                                  *
  *             About Window                                         *
@@ -81,7 +88,7 @@
   g_free (label_text);
   {
       gchar *text[] = {_("\
-(C) 2002 - 2005\n\
+(C) 2002 - 2007\n\
 Jorg Schuler (jcsjcs at users dot sourceforge dot net)\n\
 Corey Donohoe (atmos at atmos dot org)\n\
 \n\
@@ -338,6 +345,7 @@
  *
  **************************************************************************/
 
+
 /* tries to call "/bin/sh @script" with command line options */
 static void do_script (const gchar *script, va_list args)
 {
@@ -417,6 +425,37 @@
 
 
 
+/* Create a NULL-terminated array of strings given in the command
+   line. The last argument must be NULL.
+   You must free the returned array with g_strfreev() after use. */
+gchar **build_argv_from_strings (const gchar *first_arg, ...)
+{
+    gchar **argv;
+    va_list args;
+    const gchar *str;
+    GPtrArray *ptra = g_ptr_array_sized_new (20);
+
+    g_ptr_array_add (ptra, g_strdup (first_arg));
+    /* add the rest of the strings */
+    if (first_arg)
+    {
+	va_start (args, first_arg);
+	do
+	{
+	    str = va_arg (args, const gchar *);
+	    g_ptr_array_add (ptra, g_strdup (str));
+	}
+	while (str);
+	va_end (args);
+    }
+    argv = (gchar **)g_ptr_array_free (ptra, FALSE);
+
+    return argv;
+}
+
+
+
+
 /* compare @str1 and @str2 case-sensitively or case-insensitively
  * depending on prefs settings */
 gint compare_string (const gchar *str1, const gchar *str2)
@@ -975,10 +1014,14 @@
 
 /* Return a string for @track built according to @template.
 
-   @is_filename: if TRUE, remove potentially harmful characters.*/
+   @is_filename: if TRUE, remove potentially harmful characters.
+   @silent: don't print error messages (no gtk_*() calls -- thread
+   safe)
+*/
 gchar *get_string_from_template (Track *track,
 				 const gchar *template,
-				 gboolean is_filename)
+				 gboolean is_filename,
+				 gboolean silent)
 {
     GString *result;
     gchar *res_utf8;
@@ -1081,8 +1124,11 @@
 		tmp = "%";
 		break;
 	    default:
-		gtkpod_warning (_("Unknown token '%%%c' in template '%s'"),
-				*p, template);
+		if (!silent)
+		{
+		    gtkpod_warning (_("Unknown token '%%%c' in template '%s'"),
+				    *p, template);
+		}
 		break;
 	    }
 	    if (tmp)
@@ -1181,7 +1227,7 @@
 	}
     }
 
-    res_utf8 = get_string_from_template (track, template, is_filename);
+    res_utf8 = get_string_from_template (track, template, is_filename, FALSE);
 
     g_free (template);
 
@@ -1219,9 +1265,12 @@
 
 /**
  * Recursively make directories.
+ *
+ * @silent: don't print error messages via gtk (->thread safe)
+ *
  * @return FALSE is this is not possible.
  */
-gboolean mkdirhier(const gchar *dirname)
+gboolean mkdirhier(const gchar *dirname, gboolean silent)
 {
     gchar *dn, *p;
 
@@ -1242,10 +1291,13 @@
 
 	if (!g_file_test(dn, G_FILE_TEST_EXISTS))
 	{
-	    if (mkdir(dn, 0777) == -1)
+	    if (g_mkdir(dn, 0777) == -1)
 	    {
-		gtkpod_warning (_("Error creating %s: %s\n"),
-				dn, g_strerror(errno));
+		if (!silent)
+		{
+		    gtkpod_warning (_("Error creating %s: %s\n"),
+				    dn, g_strerror(errno));
+		}
 		g_free (dn);
 		return FALSE;
 	    }
@@ -1265,7 +1317,7 @@
 {
     gboolean result;
     gchar *dirname = g_path_get_dirname (filename);
-    result = mkdirhier (dirname);
+    result = mkdirhier (dirname, FALSE);
     g_free (dirname);
     return result;
 }
@@ -1290,7 +1342,52 @@
 }
 
 
+/**
+ * get_size_of_directory
+ *
+ * Determine the total size in bytes of all files in @dir including
+ * subdirectories. This function ignores errors in the sense that if a
+ * directory or file cannot be accessed, a size of 0 is assumed.
+ */
+gint64 get_size_of_directory (const gchar *dir)
+{
+    GDir *gdir;
+    const gchar *fname;
+    gint64 tsize = 0;
 
+    g_return_val_if_fail (dir, 0);
+
+    gdir = g_dir_open (dir, 0, NULL);
+
+    /* Check for error */
+    if (!gdir)
+	return 0;
+
+    while ((fname = g_dir_read_name (gdir)))
+    {
+	gchar *fullname = g_build_filename (dir, fname, NULL);
+	if (g_file_test (fullname, G_FILE_TEST_IS_DIR))
+	{
+	    tsize += get_size_of_directory (fullname);
+	}
+	else if (g_file_test (fullname, G_FILE_TEST_IS_REGULAR))
+	{
+	    struct stat statbuf;
+	    if (g_stat (fullname, &statbuf) == 0)
+	    {   /* OK, add size */
+		tsize += statbuf.st_size;
+	    }
+	}
+	g_free (fullname);
+    }
+
+    g_dir_close (gdir);
+
+    return tsize;
+}
+
+
+
 /**
  * Wrapper for gtkpod_xml_get_widget() giving out a warning if widget
  * could not be found.
@@ -1308,7 +1405,6 @@
 }
 
 
-  gchar    *ipod_mount;     /* mount point of iPod */
 /* ------------------------------------------------------------
  *
  *        Helper functions for pref keys
@@ -1555,14 +1651,169 @@
     g_free (key);
 }
 
-/* Sorting gets disabled if either tmp disable sort or
- * block display are true */
-gboolean sorting_disabled()
+/**
+ * Helper function to remove all prefs strings for itdb @index and
+ * move all subsequent itdb strings forward. You can call this even
+ * after your have removed the itdb from itdbs_head.
+ * 
+ **/
+static void remove_itdb_index_prefs (gint index)
 {
-    return (prefs_get_int("block_display") || 
-	    prefs_get_int("tmp_disable_sort"));
+    struct itdbs_head *itdbs_head;
+    gchar *subkey;
+    gint i, n;
+
+    itdbs_head = gp_get_itdbs_head (gtkpod_window);
+    g_return_if_fail (itdbs_head);
+
+    n = g_list_length (itdbs_head->itdbs);
+    subkey = get_itdb_prefs_key (index, "");
+    prefs_flush_subkey (subkey);
+    g_free (subkey);
+    
+    for (i=index; i<=n; ++i)
+    {
+	gchar *from_key = get_itdb_prefs_key (i+1, "");
+	gchar *to_key = get_itdb_prefs_key (i, "");
+	prefs_rename_subkey (from_key, to_key);
+	g_free (from_key);
+	g_free (to_key);
+    }
 }
 
+
+/**
+ * Helper function to remove all prefs strings for @itdb and move all
+ * subsequent itdb strings forward. Call this before removing the itdb
+ * from itdbs_head.
+ * 
+ **/
+void remove_itdb_prefs (iTunesDB *itdb)
+{
+    g_return_if_fail (itdb);
+
+    remove_itdb_index_prefs (get_itdb_index (itdb));
+}
+
+/* Save all itdb_<index>_* keys to the iPod
+ * (<ControlDir>/gtkpod.prefs).
+ *
+ * Return value: TRUE on succes, FALSE on error
+ */
+gboolean save_ipod_index_prefs (gint index, const gchar *mountpoint)
+{
+    TempPrefs *temp_prefs;
+    gboolean result = FALSE;
+    gchar *subkey, *dir;
+
+    g_return_val_if_fail (mountpoint, FALSE);
+
+    /* isolate all 'itdb_<index>_*' keys */
+    subkey = get_itdb_prefs_key (index, "");
+    temp_prefs = prefs_create_subset (subkey);
+
+    /* rename to 'itdb_*' */
+    temp_prefs_rename_subkey (temp_prefs, subkey, "itdb_");
+
+    /* remove some keys */
+    temp_prefs_remove_key (temp_prefs, "itdb_mountpoint");
+    temp_prefs_remove_key (temp_prefs, "itdb_name");
+    temp_prefs_remove_key (temp_prefs, "itdb_type");
+
+    /* build filename path */
+    dir = itdb_get_itunes_dir (mountpoint);
+    if (dir)
+    {
+	GError *error = NULL;
+	gchar *path = g_build_filename (dir, "gtkpod.prefs", NULL);
+	result = temp_prefs_save (temp_prefs, path, &error);
+	if (result == FALSE)
+	{
+	    gtkpod_warning (_("Writing preferences file '%s' failed (%s).\n\n"),
+			    path,
+			    error? error->message:_("unspecified error"));
+	    g_error_free (error);
+	}
+	g_free (path);
+	g_free (dir);
+    }
+    else
+    {
+	gtkpod_warning (_("Writing preferences to the iPod (%s) failed: could not get path to Control Directory.\n\n"),
+			mountpoint);
+    }
+
+    temp_prefs_destroy (temp_prefs);
+    g_free (subkey);
+
+    return result;
+}
+
+
+
+/* Save all itdb_<index>_* keys to the iPod
+ * (<ControlDir>/gtkpod.prefs).
+ *
+ * Return value: TRUE on succes, FALSE on error
+ */
+gboolean save_ipod_prefs (iTunesDB *itdb, const gchar *mountpoint)
+{
+    g_return_val_if_fail (itdb && mountpoint, FALSE);
+    return save_ipod_index_prefs (get_itdb_index (itdb), mountpoint);
+}
+
+
+/* Load preferences file from the iPod and merge them into the general
+ * prefs system.
+ */
+static void load_ipod_index_prefs (gint index, const gchar *mountpoint)
+{
+    gchar *dir;
+
+    g_return_if_fail (mountpoint);
+
+    /* build filename path */
+    dir = itdb_get_itunes_dir (mountpoint);
+    if (dir)
+    {
+	TempPrefs *temp_prefs;
+	GError *error = NULL;
+	gchar *path = g_build_filename (dir, "gtkpod.prefs", NULL);
+	temp_prefs = temp_prefs_load (path, &error);
+	if (temp_prefs)
+	{
+	    gchar *subkey;
+	    subkey = get_itdb_prefs_key (index, "");
+	    /* rename 'itdb_*' to 'itdb_<index>_*' */
+	    temp_prefs_rename_subkey (temp_prefs, "itdb_", subkey);
+	    /* merge with real prefs */
+	    temp_prefs_apply (temp_prefs);
+	    /* destroy temp prefs */
+	    temp_prefs_destroy (temp_prefs);
+	}
+	else
+	{
+	    /* we ignore errors -- no need to be concerned about them */
+	    g_error_free (error);
+	}
+	g_free (dir);
+    }
+}
+
+
+
+/* Load preferences file from the iPod and merge them into the general
+ * prefs system.
+ */
+void load_ipod_prefs (iTunesDB *itdb, const gchar *mountpoint)
+{
+    g_return_if_fail (mountpoint);
+    load_ipod_index_prefs (get_itdb_index (itdb), mountpoint);
+}
+
+
+
+
 /* retrieve offline mode from itdb (convenience function) */
 gboolean get_offline (iTunesDB *itdb)
 {
@@ -1574,3 +1825,137 @@
 
     return eitdb->offline;
 }
+
+/* ----------------------------------------------------------------
+ *
+ * Main program init and shutdown
+ *
+ * ---------------------------------------------------------------- */
+
+/**
+ * gtkpod_init
+ *
+ * initialize prefs and other services as well as display
+ */
+void gtkpod_init (int argc, char *argv[])
+{
+    gchar *progname;
+
+    /* initialize xml_file: if gtkpod is called in the build directory
+       (".../src/gtkpod") use the local gtkpod.glade (in the data
+       directory), otherwise use
+       "PACKAGE_DATA_DIR/PACKAGE/data/gtkpod.glade" */
+
+    progname = g_find_program_in_path (argv[0]);
+    if (progname)
+    {
+	static const gchar *SEPsrcSEPgtkpod = G_DIR_SEPARATOR_S "src" G_DIR_SEPARATOR_S "gtkpod";
+
+	if (!g_path_is_absolute (progname))
+	{
+	    gchar *cur_dir = g_get_current_dir ();
+	    gchar *prog_absolute;
+
+	    if (g_str_has_prefix (progname, "." G_DIR_SEPARATOR_S))
+		prog_absolute = g_build_filename (cur_dir,progname+2,NULL);
+	    else
+		prog_absolute = g_build_filename (cur_dir,progname,NULL);
+	    g_free (progname);
+	    g_free (cur_dir);
+	    progname = prog_absolute;
+	}
+
+	if (g_str_has_suffix (progname, SEPsrcSEPgtkpod))
+	{
+	    gchar *suffix = g_strrstr (progname, SEPsrcSEPgtkpod);
+	    if (suffix)
+	    {
+		*suffix = 0;
+		xml_file = g_build_filename (progname, "data", "gtkpod.glade", NULL);
+	    }
+	}
+	g_free (progname);
+	if (xml_file && !g_file_test (xml_file, G_FILE_TEST_EXISTS))
+	{
+	    g_free (xml_file);
+	    xml_file = NULL;
+	}
+    }
+    if (!xml_file)
+	xml_file = g_build_filename (PACKAGE_DATA_DIR, PACKAGE, "data", "gtkpod.glade", NULL);
+    else
+    {
+	printf ("Using local gtkpod.glade file since program was started from source directory:\n%s\n", xml_file);
+    }
+
+    /* Initialisation of libxml */
+    LIBXML_TEST_VERSION;
+
+    main_window_xml = glade_xml_new (xml_file, "gtkpod", NULL);
+
+    glade_xml_signal_autoconnect (main_window_xml);
+  
+    gtkpod_window = gtkpod_xml_get_widget (main_window_xml, "gtkpod");
+
+    prefs_init (argc, argv); 
+
+    coverart_init (argv[0]);
+
+    file_convert_init ();
+
+    display_create ();
+
+    gtk_widget_show (gtkpod_window);
+
+    init_data (gtkpod_window);   /* setup base data, importing all local
+				  * repositories */
+
+    /* stuff to be done before starting gtkpod */
+    call_script ("gtkpod.in", NULL);
+
+    autodetection_init ();
+	
+    server_setup ();   /* start server to accept playcount updates */
+}
+
+
+
+/**
+ * gtkpod_shutdown
+ *
+ * free memory, shutdown services and call gtk_main_quit ()
+ */
+void gtkpod_shutdown ()
+{
+    /* stop accepting requests for playcount updates */
+    server_shutdown ();
+
+    /* Sort column order needs to be stored */
+    tm_store_col_order();
+  
+    /* Update default sizes */
+    display_update_default_sizes();
+
+    /* shut down conversion infrastructure */
+    file_convert_shutdown ();
+
+    /* Save prefs */
+    prefs_save ();
+
+/* FIXME: release memory in a clean way */
+#if 0
+    remove_all_playlists ();  /* first remove playlists, then tracks!
+			       * (otherwise non-existing *tracks may
+			       * be accessed) */
+    remove_all_tracks ();
+#endif
+    display_cleanup ();
+
+    prefs_shutdown ();
+
+    xmlCleanupParser();
+    xmlMemoryDump();
+	
+    call_script ("gtkpod.out", NULL);
+    gtk_main_quit ();
+}

Modified: gtkpod/trunk/src/misc.h
===================================================================
--- gtkpod/trunk/src/misc.h	2007-06-27 20:59:02 UTC (rev 193)
+++ gtkpod/trunk/src/misc.h	2007-06-27 21:27:12 UTC (rev 194)
@@ -1,6 +1,5 @@
-/* Time-stamp: <2006-06-25 00:25:35 jcs>
-|
-|  Copyright (C) 2002-2005 Jorg Schuler <jcsjcs at users sourceforge net>
+/*
+|  Copyright (C) 2002-2007 Jorg Schuler <jcsjcs at users sourceforge net>
 |  Part of the gtkpod project.
 | 
 |  URL: http://www.gtkpod.org/
@@ -24,7 +23,7 @@
 |
 |  This product is not supported/written/published by Apple!
 |
-|  $Id: misc.h,v 1.119 2006/06/24 15:39:22 jcsjcs Exp $
+|  $Id: misc.h 1558 2007-06-18 15:33:07Z jcsjcs $
 */
 
 #ifndef __MISC_H__
@@ -38,14 +37,20 @@
 #include <gtk/gtk.h>
 #include <glade/glade.h>
 #include <stdio.h>
+#include <libxml/xmlversion.h>
+#include <libxml/xmlmemory.h>
 #include "file.h"
 #include "display_itdb.h"
 #include "display.h"
 #include "confirmation.h"
 #include "time.h"
 
+
 #define C_FREE(a) {g_free(a); a=NULL;}
 
+/* where to find the scripts */
+extern const gchar *SCRIPTDIR;
+
 /* version of GTK_CHECK_VERSION that uses the runtime variables
    gtk_*_version... instead of the compile-time constants
    GTK_*_VERSION */
@@ -102,10 +107,13 @@
 gint get_sort_tab_number (gchar *text);
 void open_about_window (void);
 void close_about_window (void);
-gboolean parse_tracks_from_string(gchar **s, Track **track);
-gboolean gtkpod_main_quit(void);
+gboolean parse_tracks_from_string (gchar **s, Track **track);
+void gtkpod_init (int argc, char *argv[]);
+void gtkpod_shutdown (void);
 
+gchar *get_allowed_percent_char (void);
 T_item TM_to_T (TM_item sm);
+T_item char_to_T (char c);
 T_item ST_to_T (ST_CAT_item st);
 const gchar *get_tm_string (TM_item tm);
 const gchar *get_tm_tooltip (TM_item tm);
@@ -130,6 +138,8 @@
   void unmount_ipod(void);*/
 void call_script (gchar *script, ...);
 
+gchar **build_argv_from_strings (const gchar *first_arg, ...);
+
 void delete_track_ok (struct DeleteData *dd);
 
 void gtkpod_warning (const gchar *format, ...);
@@ -179,8 +189,9 @@
 
 void check_db (iTunesDB *db);
 
-gboolean mkdirhier(const gchar *dirname);
+gboolean mkdirhier(const gchar *dirname, gboolean silent);
 gboolean mkdirhierfile(const gchar *filename);
+gint64 get_size_of_directory (const gchar *dir);
 gchar *convert_filename (const gchar *filename);
 
 guint32 replaygain_to_soundcheck (gdouble gain);
@@ -218,7 +229,8 @@
 
 gchar *get_string_from_template (Track *track,
 				 const gchar *template,
-				 gboolean is_filename);
+				 gboolean is_filename,
+				 gboolean silent);
 gchar *get_string_from_full_template (Track *track,
 				      const gchar *full_template,
 				      gboolean is_filename);
@@ -247,6 +259,9 @@
 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);
+void remove_itdb_prefs (iTunesDB *itdb);
+void load_ipod_prefs (iTunesDB *itdb, const gchar *mountpoint);
+gboolean save_ipod_prefs (iTunesDB *itdb, const gchar *mountpoint);
+
 gboolean get_offline (iTunesDB *itdb);
-gboolean sorting_disabled();
 #endif

Modified: gtkpod/trunk/src/misc_confirm.c
===================================================================
--- gtkpod/trunk/src/misc_confirm.c	2007-06-27 20:59:02 UTC (rev 193)
+++ gtkpod/trunk/src/misc_confirm.c	2007-06-27 21:27:12 UTC (rev 194)
@@ -1,6 +1,5 @@
-/* Time-stamp: <2006-09-24 20:49:39 jcs>
-|
-|  Copyright (C) 2002-2005 Jorg Schuler <jcsjcs at users sourceforge net>
+/*
+|  Copyright (C) 2002-2007 Jorg Schuler <jcsjcs at users sourceforge net>
 |  Part of the gtkpod project.
 | 
 |  URL: http://www.gtkpod.org/
@@ -24,7 +23,7 @@
 |
 |  This product is not supported/written/published by Apple!
 |
-|  $Id: misc_confirm.c,v 1.44 2006/09/24 12:16:26 jcsjcs Exp $
+|  $Id: misc_confirm.c 1065 2007-05-06 14:16:17Z jcsjcs $
 */
 
 #ifdef HAVE_CONFIG_H
@@ -34,11 +33,11 @@
 #include <gtk/gtk.h>
 #include <string.h>
 #include <sys/stat.h>
-#include "clientserver.h"
 #include "confirmation.h"
 #include "misc.h"
 #include "prefs.h"
 #include "info.h"
+#include "display_coverart.h"
 
 #ifdef HAVE_STATVFS
 #include <sys/types.h>
@@ -69,7 +68,7 @@
     gtkpod_confirmation (CONF_ID_GTKPOD_WARNING,    /* gint id, */
 			 FALSE,                     /* gboolean modal, */
 			 _("Warning"),              /* title */
-			 _("The following has occured:"),
+			 _("The following has occurred:"),
 			 text,                /* text to be displayed */
 			 NULL, 0, NULL,       /* option 1 */
 			 NULL, 0, NULL,       /* option 2 */
@@ -125,7 +124,7 @@
 	    if (title)
 		*title = g_strdup (
 		    ngettext ("Delete Track Completely from iPod?",
-			      "Delete Tracks Completey from iPod?", n));
+			      "Delete Tracks Completely from iPod?", n));
 	    if (confirm_again)
 		*confirm_again = prefs_get_int("delete_ipod");
 	    if (confirm_again_key)
@@ -248,6 +247,9 @@
     /* should never happen */
     if (!dd->tracks)	delete_track_cancel (dd);
 
+		/* Deafen the coverart display while deletion is occurring */
+		coverart_block_change (TRUE);
+		
     /* nr of tracks to be deleted */
     n = g_list_length (dd->tracks);
     if (dd->itdb->usertype & GP_ITDB_TYPE_IPOD)
@@ -308,6 +310,8 @@
 	gp_playlist_remove_track (dd->pl, l->data, dd->deleteaction);
     }
 
+		/* Awaken coverart selection */
+		coverart_block_change (FALSE);
     g_list_free (dd->tracks);
     g_free (dd);
 
@@ -537,7 +541,7 @@
 		msg = g_strdup_printf (_("Removed all podcasts from the iPod"));
 		if (pm_get_selected_playlist () == dd->pl)
 		    st_redisplay (0);
-//		display_reset (0);
+/*		display_reset (0);*/
 	    }
 	    else
 	    {
@@ -817,35 +821,13 @@
 
 
 
-/* callback for quit menu entry */
-void
-on_quit1_activate                      (GtkMenuItem     *menuitem,
-					gpointer         user_data)
-{
-  if (!widgets_blocked) gtkpod_main_quit ();
-}
-
-
-/* callback for gtkpod window's close button */
-gboolean
-on_gtkpod_delete_event                 (GtkWidget       *widget,
-					GdkEvent        *event,
-					gpointer         user_data)
-{
-    if (!widgets_blocked)
-    {
-	return gtkpod_main_quit ();
-    }
-    return TRUE; /* don't quit -- would cause numerous error messages */
-}
-
 /**
- * gtkpod_main_quit
+ * gtkpod_shutdown
  *
- * return value: FALSE if it's OK to quit.
+ * return value: TRUE if it's OK to quit.
  */
-gboolean
-gtkpod_main_quit(void)
+static gboolean
+ok_to_close_gtkpod (void)
 {
     gint result = GTK_RESPONSE_YES;
 
@@ -863,22 +845,40 @@
 
     if (result == GTK_RESPONSE_YES)
     {
-	server_shutdown (); /* stop accepting requests for playcount updates */
+	return TRUE;
+    }
+    return FALSE;
+}
 
-	cleanup_prefs();
 
-/* FIXME: release memory in a clean way */
-#if 0
-	remove_all_playlists ();  /* first remove playlists, then
-				   * tracks! (otherwise non-existing
-				   *tracks may be accessed) */
-	remove_all_tracks ();
-#endif
-	display_cleanup ();
+/* callback for gtkpod window's close button */
+gboolean
+on_gtkpod_delete_event                 (GtkWidget       *widget,
+					GdkEvent        *event,
+					gpointer         user_data)
+{
+    if (!widgets_blocked)
+    {
+	if (ok_to_close_gtkpod ())
+	{
+	    gtkpod_shutdown ();
+	    return FALSE;
+	}
+    }
+    return TRUE; /* don't quit -- would cause numerous error messages */
+}
 
-	call_script ("gtkpod.out", NULL);
-	gtk_main_quit ();
-	return FALSE;
+
+/* callback for quit menu entry */
+void
+on_quit1_activate                      (GtkMenuItem     *menuitem,
+					gpointer         user_data)
+{
+    if (!widgets_blocked)
+    {
+	if (ok_to_close_gtkpod ())
+	{
+	    gtkpod_shutdown ();
+	}
     }
-    return TRUE;
 }

Modified: gtkpod/trunk/src/misc_conversion.c
===================================================================
--- gtkpod/trunk/src/misc_conversion.c	2007-06-27 20:59:02 UTC (rev 193)
+++ gtkpod/trunk/src/misc_conversion.c	2007-06-27 21:27:12 UTC (rev 194)
@@ -1,6 +1,5 @@
-/* Time-stamp: <2006-09-21 23:16:41 jcs>
-|
-|  Copyright (C) 2002-2005 Jorg Schuler <jcsjcs at users sourceforge net>
+/*
+|  Copyright (C) 2002-2007 Jorg Schuler <jcsjcs at users sourceforge net>
 |  Part of the gtkpod project.
 | 
 |  URL: http://www.gtkpod.org/
@@ -24,7 +23,7 @@
 |
 |  This product is not supported/written/published by Apple!
 |
-|  $Id: misc_conversion.c,v 1.28 2006/09/21 15:03:13 jcsjcs Exp $
+|  $Id: misc_conversion.c 1578 2007-06-23 02:12:34Z jcsjcs $
 */
 
 #ifdef HAVE_CONFIG_H
@@ -98,6 +97,19 @@
     N_("Remember Playback Position"),
     N_("Skip when Shuffling"),
     N_("Artwork Path"),      /* 40 */
+    N_("Media Type"),
+    N_("TV Show"),
+    N_("TV Episode"),
+    N_("TV Network"),
+    N_("Season Nr"),         /* 45 */
+    N_("Episode Nr"),
+    N_("Album Artist"),
+    N_("Sort Artist"),
+    N_("Sort Title"),
+    N_("Sort Album"),        /* 50 */
+    N_("Sort Album Artist"),
+    N_("Sort Composer"),
+    N_("Sort TV Show"),
     NULL };
 
 /* Tooltips for prefs window */
@@ -120,8 +132,7 @@
     NULL,
     NULL,                                              /* 15 */
     NULL,
-    N_("Supposedly something that tells the iPod to "
-       "increase or decrease the playback speed"),
+    N_("Beats per minute"),
     N_("Number of times the track has been played"),
     N_("Star rating from 0 to 5"),
     N_("Date and time track has been added"),          /* 20 */
@@ -145,7 +156,20 @@
     NULL,
     NULL,
     NULL,
-    NULL
+    NULL,   /* 40 */
+    NULL,
+    NULL,
+    NULL,
+    NULL,
+    NULL,   /* 45 */
+    NULL,
+    NULL,
+    N_("Used for sorting on the iPod"),
+    N_("Used for sorting on the iPod"),
+    N_("Used for sorting on the iPod"),  /* 50 */
+    N_("Used for sorting on the iPod"),
+    N_("Used for sorting on the iPod"),
+    N_("Used for sorting on the iPod")
  };
 
 
@@ -191,12 +215,72 @@
     case TM_COLUMN_SUBTITLE:      return T_SUBTITLE;
     case TM_COLUMN_TIME_RELEASED: return T_TIME_RELEASED;
     case TM_COLUMN_THUMB_PATH:    return T_THUMB_PATH;
+    case TM_COLUMN_MEDIA_TYPE:    return T_MEDIA_TYPE;
+    case TM_COLUMN_TV_SHOW:       return T_TV_SHOW;
+    case TM_COLUMN_TV_EPISODE:    return T_TV_EPISODE;
+    case TM_COLUMN_TV_NETWORK:    return T_TV_NETWORK;
+    case TM_COLUMN_SEASON_NR:     return T_SEASON_NR;
+    case TM_COLUMN_EPISODE_NR:    return T_EPISODE_NR;
+    case TM_COLUMN_ALBUMARTIST:   return T_ALBUMARTIST;
+    case TM_COLUMN_SORT_ARTIST:   return T_SORT_ARTIST;
+    case TM_COLUMN_SORT_TITLE:    return T_SORT_TITLE;
+    case TM_COLUMN_SORT_ALBUM:    return T_SORT_ALBUM;
+    case TM_COLUMN_SORT_ALBUMARTIST: return T_SORT_ALBUMARTIST;
+    case TM_COLUMN_SORT_COMPOSER: return T_SORT_COMPOSER;
+    case TM_COLUMN_SORT_TVSHOW:   return T_SORT_TVSHOW;
     case TM_NUM_COLUMNS:          g_return_val_if_reached (-1);
     }
     return -1;
 }
 
 
+/* See track_get_item() / track_get_item_pointer()  */
+gchar *get_allowed_percent_char(void )
+{
+    return g_strdup("latgcoysSny");
+}
+/* translates a char into a T_... (defined in display.h) */
+T_item char_to_T(gchar c){
+    switch (c) {
+        case 'l': return T_ALBUM;
+        case 'a': return T_ARTIST;
+        case 't': return T_TITLE;
+        case 'g': return T_GENRE;
+        case 'c': return T_COMMENT;
+        case 'o': return T_COMPOSER;
+        case 'f': return T_FILETYPE;
+        case 's': return T_PC_PATH;
+        case 'S': return T_IPOD_PATH;
+	    /* case 'i': return T_IPOD_ID; */
+        case 'n': return T_TRACK_NR;
+	    /* case 'f': return T_TRANSFERRED; */
+	    /* case 'z': return T_SIZE; */
+	    /* case 'L': return T_TRACKLEN; */
+	    /* case 'b': return T_BITRATE; */
+	    /* case 'r': return T_SAMPLERATE; */
+	    /* case 'b': return T_BPM; */
+	    /* case 'C': return T_PLAYCOUNT; */
+	    /* case 'i': return T_RATING; */
+	    /* case '': return T_TIME_ADDED; */
+	    /* case '': return T_TIME_PLAYED; */
+	    /* case '': return T_TIME_MODIFIED; */
+	    /* case '': return T_VOLUME; */
+	    /* case '': return T_SOUNDCHECK; */
+        case 'y': return T_YEAR;
+	    /* case 'd': return T_CD_NR; */
+	    /* case '': return T_GROUPING; */
+	    /* case '': return T_COMPILATION; */
+	    /* case '': return T_CATEGORY; */
+	    /* case '': return T_DESCRIPTION; */
+	    /* case '': return T_PODCASTURL; */
+	    /* case '': return T_PODCASTRSS; */
+	    /* case '': return T_SUBTITLE; */
+	    /* case '': return T_TIME_RELEASED; */
+	    /* case '': return T_CHECKED; */
+    }
+    return -1;
+}
+
 /* translates a ST_CAT_... (defined in display.h) into a
  * T_... (defined in display.h). Returns -1 in case a translation is not
  * possible */
@@ -417,7 +501,7 @@
 	mactime = 0;
 	break;
     }
-    return (itdb_time_mac_to_host (mactime));
+    return mactime;
 }
 
 
@@ -429,23 +513,23 @@
 
 
 /* get the timestamp TM_COLUMN_TIME_CREATE/PLAYED/MODIFIED/RELEASED */
-void time_set_time (Track *track, time_t time, T_item t_item)
+void time_set_time (Track *track, time_t timet, T_item t_item)
 {
-    guint32 mactime = itdb_time_host_to_mac (time);
+    g_return_if_fail (track);
 
-    if (track) switch (t_item)
+    switch (t_item)
     {
     case T_TIME_ADDED:
-	track->time_added = mactime;
+	track->time_added = timet;
 	break;
     case T_TIME_PLAYED:
-	track->time_played = mactime;
+	track->time_played = timet;
 	break;
     case T_TIME_MODIFIED:
-	track->time_modified = mactime;
+	track->time_modified = timet;
 	break;
     case T_TIME_RELEASED:
-	track->time_released = mactime;
+	track->time_released = timet;
 	break;
     default:
 	break;

Modified: gtkpod/trunk/src/misc_input.c
===================================================================
--- gtkpod/trunk/src/misc_input.c	2007-06-27 20:59:02 UTC (rev 193)
+++ gtkpod/trunk/src/misc_input.c	2007-06-27 21:27:12 UTC (rev 194)
@@ -1,4 +1,4 @@
-/* Time-stamp: <2006-05-20 23:23:44 jcs>
+/* Time-stamp: <2007-06-25 00:53: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: misc_input.c,v 1.14 2006/06/07 05:03:43 freethinkerjim Exp $
+|  $Id: misc_input.c 1588 2007-06-24 16:02:51Z jcsjcs $
 */
 
 #ifdef HAVE_CONFIG_H
@@ -316,7 +316,6 @@
 	    }
 	    sort_window_block ();
 	    prefs_window_block ();
-	    dirbrowser_block ();
 	    widgets_blocked = TRUE;
 	}
 	break;
@@ -334,7 +333,6 @@
 		}
 		sort_window_release ();
 		prefs_window_release ();
-		dirbrowser_release ();
 		widgets_blocked = FALSE;
 	    }
 	}

Modified: gtkpod/trunk/src/misc_playlist.c
===================================================================
--- gtkpod/trunk/src/misc_playlist.c	2007-06-27 20:59:02 UTC (rev 193)
+++ gtkpod/trunk/src/misc_playlist.c	2007-06-27 21:27:12 UTC (rev 194)
@@ -1,5 +1,4 @@
-/* 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 +23,7 @@
 |
 |  This product is not supported/written/published by Apple!
 |
-|  $Id: misc_playlist.c,v 1.38 2006/06/23 16:59:23 jcsjcs Exp $
+|  $Id: misc_playlist.c 1065 2007-05-06 14:16:17Z jcsjcs $
 */
 
 #ifdef HAVE_CONFIG_H
@@ -35,7 +34,7 @@
 #include "charset.h"
 #include "itdb.h"
 #include "info.h"
-#include "md5.h"
+#include "sha1.h"
 #include "misc.h"
 #include "misc_track.h"
 #include "prefs.h"
@@ -922,19 +921,22 @@
 
 	/* Indicate that file needs to be transfered */
 	track->transferred=FALSE;
-	/* Update MD5 information */
-	/* remove track from md5 hash and reinsert it
+	/* Update SHA1 information */
+	/* remove track from sha1 hash and reinsert it
 	   (hash value may have changed!) */
-	md5_track_remove (track);
+	sha1_track_remove (track);
 	/* need to remove the old value manually! */
-	etr->md5_hash = NULL;
-	oldtrack = md5_track_exists_insert (itdb, track);
+	g_free (etr->sha1_hash);
+	etr->sha1_hash = NULL;
+	oldtrack = sha1_track_exists_insert (itdb, track);
 	if (oldtrack) { /* track exists, remove old track
 			  and register the new version */
-	    md5_track_remove (oldtrack);
+	    sha1_track_remove (oldtrack);
 	    gp_duplicate_remove (track, oldtrack);
-	    md5_track_exists_insert (itdb, track);
+	    sha1_track_exists_insert (itdb, track);
 	}
+	/* mark for conversion / transfer */
+	file_convert_add_track (track);
     }
     g_list_free(l_dangling);
     data_changed (itdb);
@@ -985,7 +987,7 @@
     Playlist* pl_orphaned = NULL;
     GList * l_dangling[2] = {NULL, NULL}; /* 2 kinds of dangling tracks: with approp
 					   * files and without */
-    /* 1 - Original file is present on PC and has the same md5*/
+    /* 1 - Original file is present on PC and has the same sha1*/
     /* 0 - Doesn't exist */
 
     gpointer foundtrack ;
@@ -1124,7 +1126,7 @@
 		    norphaned++;
 
                     if (localdebug) fprintf(stdout,"to orphaned ");
-		    if ((dupl_track = md5_file_exists (itdb, fn_orphaned,
+		    if ((dupl_track = sha1_file_exists (itdb, fn_orphaned,
 						       TRUE)))
 		    {  /* This orphan has already been added again.
 			  It will be removed with the next sync */

Modified: gtkpod/trunk/src/misc_track.c
===================================================================
--- gtkpod/trunk/src/misc_track.c	2007-06-27 20:59:02 UTC (rev 193)
+++ gtkpod/trunk/src/misc_track.c	2007-06-27 21:27:12 UTC (rev 194)
@@ -1,6 +1,5 @@
-/* Time-stamp: <2006-09-24 15:25:29 jcs>
-|
-|  Copyright (C) 2002-2005 Jorg Schuler <jcsjcs at users sourceforge net>
+/*
+|  Copyright (C) 2002-2007 Jorg Schuler <jcsjcs at users sourceforge net>
 |  Part of the gtkpod project.
 | 
 |  URL: http://www.gtkpod.org/
@@ -24,7 +23,7 @@
 |
 |  This product is not supported/written/published by Apple!
 |
-|  $Id: misc_track.c,v 1.52 2006/09/24 06:42:52 jcsjcs Exp $
+|  $Id: misc_track.c 1591 2007-06-26 03:33:25Z tmzullinger $
 */
 
 #ifdef HAVE_CONFIG_H
@@ -32,7 +31,7 @@
 #endif
 
 #include "display_itdb.h"
-#include "md5.h"
+#include "sha1.h"
 #include "prefs.h"
 #include "misc.h"
 #include "misc_track.h"
@@ -45,35 +44,35 @@
 
 /* ------------------------------------------------------------ *\
 |                                                                |
-|         functions for md5 checksums                            |
+|         functions for sha1 checksums                            |
 |                                                                |
 \* ------------------------------------------------------------ */
 
 /**
- * Register all tracks in the md5 hash and remove duplicates (while
+ * Register all tracks in the sha1 hash and remove duplicates (while
  * preserving playlists)
  */
-void gp_md5_hash_tracks_itdb (iTunesDB *itdb)
+void gp_sha1_hash_tracks_itdb (iTunesDB *itdb)
 {
    gint ns, count;
    GList *gl;
 
    g_return_if_fail (itdb);
 
-   if (!prefs_get_int("md5")) return;
+   if (!prefs_get_int("sha1")) return;
    ns = itdb_tracks_number (itdb);   /* number of tracks */
    if (ns == 0)                 return;
 
    block_widgets (); /* block widgets -- this might take a while,
 			so we'll do refreshs */
-   md5_free (itdb);  /* release md5 hash */
+   sha1_free (itdb);  /* release sha1 hash */
    count = 0;
    /* populate the hash table */
    gl=itdb->tracks;
    while (gl)
    {
        Track *track=gl->data;
-       Track *oldtrack = md5_track_exists_insert (itdb, track);
+       Track *oldtrack = sha1_track_exists_insert (itdb, track);
 
        /* need to get next track now because it might be a duplicate and
 	  thus be removed when we call gp_duplicate_remove() */
@@ -103,7 +102,7 @@
  * Call gp_hash_tracks_itdb() for each itdb.
  *
  */
-void gp_md5_hash_tracks (void)
+void gp_sha1_hash_tracks (void)
 {
     GList *gl;
     struct itdbs_head *itdbs_head;
@@ -116,25 +115,25 @@
     block_widgets ();
     for (gl=itdbs_head->itdbs; gl; gl=gl->next)
     {
-	gp_md5_hash_tracks_itdb (gl->data);
+	gp_sha1_hash_tracks_itdb (gl->data);
     }
     release_widgets ();
 }
 
 
 /**
- * Call md5_free() for each itdb and delete md5 checksums in all tracks.
+ * Call sha1_free() for each itdb and delete sha1 checksums in all tracks.
  *
  */
-void gp_md5_free_hash (void)
+void gp_sha1_free_hash (void)
 {
-    void rm_md5 (gpointer track, gpointer user_data)
+    void rm_sha1 (gpointer track, gpointer user_data)
 	{
 	    ExtraTrackData *etr;
 	    g_return_if_fail (track);
 	    etr = ((Track *)track)->userdata;
 	    g_return_if_fail (etr);
-	    C_FREE (etr->md5_hash);
+	    C_FREE (etr->sha1_hash);
 	}
     GList *gl;
     struct itdbs_head *itdbs_head;
@@ -148,8 +147,8 @@
     {
 	iTunesDB *itdb = gl->data;
 	g_return_if_fail (itdb);
-	md5_free (itdb);
-	g_list_foreach (itdb->tracks, rm_md5, NULL);
+	sha1_free (itdb);
+	g_list_foreach (itdb->tracks, rm_sha1, NULL);
     }
 }
 
@@ -157,7 +156,7 @@
 /* This function removes a duplicate track "track" from memory while
  * preserving the playlists.
  *
- * The md5 hash is not modified.
+ * The sha1 hash is not modified.
  *
  * The playcount/recent_playcount are modified to show the cumulative
  * playcounts for that track.
@@ -281,13 +280,18 @@
        oldtrack->time_added =  MIN (oldtrack->time_added, track->time_added);
 
        /* Update filename if new track has filename set (should be
-	* always!?) */
+	  always!?) and old filename is not available or no longer
+	  valid */
        if (etr->pc_path_locale)
        {
-	   g_free (oldetr->pc_path_locale);
-	   g_free (oldetr->pc_path_utf8);
-	   oldetr->pc_path_locale = g_strdup (etr->pc_path_locale);
-	   oldetr->pc_path_utf8 = g_strdup (etr->pc_path_utf8);
+	   if (!oldetr->pc_path_locale ||
+	       !g_file_test (oldetr->pc_path_locale, G_FILE_TEST_IS_REGULAR))
+	   {
+	       g_free (oldetr->pc_path_locale);
+	       g_free (oldetr->pc_path_utf8);
+	       oldetr->pc_path_locale = g_strdup (etr->pc_path_locale);
+	       oldetr->pc_path_utf8 = g_strdup (etr->pc_path_utf8);
+	   }
        }
        if (itdb_playlist_contains_track (itdb_playlist_mpl (itdb),
 					 track))
@@ -301,7 +305,7 @@
 	       g_return_if_fail (pl);
 	       /* if "track" is in playlist pl, we remove it and add
 		  the "oldtrack" instead (this way round we don't have
-		  to worry about changing md5 hash entries */
+		  to worry about changing sha1 hash entries */
 	       if (itdb_playlist_contains_track (pl, track))
 	       {
 		   gp_playlist_remove_track (pl, track,
@@ -331,41 +335,32 @@
 
 
 /**
- * Register all tracks in the md5 hash and remove duplicates (while
+ * Register all tracks in the sha1 hash and remove duplicates (while
  * preserving playlists).
  * Call  gp_duplicate_remove (NULL, NULL); to show an info dialogue
  */
 void gp_itdb_hash (iTunesDB *itdb)
 {
-   gint ns, count, track_nr;
+   gint ns, track_nr;
    Track *track, *oldtrack;
 
    g_return_if_fail (itdb);
 
-   if (!prefs_get_int("md5")) return;
 
+   if (!prefs_get_int("sha1")) return;
+
    ns = itdb_tracks_number (itdb);
    if (ns == 0)                 return;
 
    block_widgets (); /* block widgets -- this might take a while,
 			so we'll do refreshs */
-   md5_free (itdb);  /* release md5 hash */
-   count = 0;
+   sha1_free (itdb);  /* release sha1 hash */
    track_nr = 0;
    /* populate the hash table */
    while ((track = g_list_nth_data (itdb->tracks, track_nr)))
    {
-       oldtrack = md5_track_exists_insert (itdb, track);
-       ++count;
+       oldtrack = sha1_track_exists_insert (itdb, track);
 /*        printf("%d:%d:%p:%p\n", count, track_nr, track, oldtrack); */
-       if (!prefs_get_int("block_display") &&
-	   (((count % 20) == 1) || (count == ns)))
-       { /* update for count == 1, 21, 41 ... and for count == n */
-	   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 ();
-       }
        if (oldtrack)
        {
 	   gp_duplicate_remove (oldtrack, track);
@@ -390,7 +385,7 @@
 
 
 /* Returns the track with the filename @name or NULL, if none can be
- * found. This function also works if @name is on the iPod. */
+ * found. This function also works if @filename is on the iPod. */
 Track *gp_track_by_filename (iTunesDB *itdb, gchar *filename)
 {
     gchar *musicdir = NULL;
@@ -455,9 +450,340 @@
 }
 
 
+/* Find @track in repository @itdb by the following methods and return
+   the matches:
 
+   1) DND origin data
+   2) filename matches
+   3) SHA1 match 
+
+   If DND origin data is available and valid only one track is
+   returned. Otherwise all tracks matching the filename and the SHA1
+   are returned.
+
+   If DND origin data is found to be invalid it is deleted.
+
+   Return value: a GList with matching tracks. You must call
+   g_list_free() on the list when it is no longer needed.
+*/
+GList *gp_itdb_find_same_tracks (iTunesDB *itdb, Track *track)
+{
+    ExtraTrackData *etr;
+    Track *itr;
+    GList *tracks = NULL;
+
+    g_return_val_if_fail (itdb, NULL);
+    g_return_val_if_fail (track, NULL);
+
+    etr = track->userdata;
+    g_return_val_if_fail (etr, NULL);
+
+    if (itdb->id == etr->local_itdb_id)
+    {   /* we can probably find the original track from the DND data */
+	GList *gl;
+	for (gl=itdb->tracks; gl; gl=gl->next)
+	{
+	    itr = gl->data;
+	    g_return_val_if_fail (itr, NULL);
+	    if (itr->dbid == etr->local_track_dbid)
+	    {   /* found track */
+		tracks = g_list_prepend (tracks, itr);
+		return tracks;
+	    }
+	}
+	/* DND origin data is no longer valid */
+	etr->local_itdb_id = 0;
+	etr->local_track_dbid = 0;
+    }
+
+    /* No luck so far -- let's get filename matches */
+    tracks = gp_itdb_pc_path_hash_find_tracks (itdb, etr->pc_path_utf8);
+
+    /* And also try SHA1 match */
+    itr = sha1_sha1_exists (itdb, etr->sha1_hash);
+
+    if (itr)
+    {   /* insert into tracks list if not already present */
+	if (!g_list_find (tracks, itr))
+	{
+	    tracks = g_list_prepend (tracks, itr);
+	}
+    }
+
+    return tracks;
+}
+
+
+/* Find @track in all local repositories and return a list.
+
+   This function calls gp_itdb_find_same_tracks() for each local
+   repository and concatenates the results into one list.
+
+   Return value: a GList with matching tracks. You must call
+   g_list_free() on the list when it is no longer needed.
+*/
+GList *gp_itdb_find_same_tracks_in_local_itdbs (Track *track)
+{
+    GList *gl, *tracks=NULL;
+    struct itdbs_head *ih = gp_get_itdbs_head (gtkpod_window);
+
+    g_return_val_if_fail (ih, NULL);
+    g_return_val_if_fail (track, NULL);
+
+    for (gl=ih->itdbs; gl; gl=gl->next)
+    {
+	iTunesDB *itdb = gl->data;
+	g_return_val_if_fail (itdb, tracks);
+	if (itdb->usertype & GP_ITDB_TYPE_LOCAL)
+	{
+	    GList *addtracks = gp_itdb_find_same_tracks (itdb, track);
+	    tracks = g_list_concat (tracks, addtracks);
+	}
+    }
+    return tracks;
+}
+
+
+
+/* Find @track in all repositories (local and iPod) and return a list.
+
+   This function calls gp_itdb_find_same_tracks() for each
+   repository and concatenates the results into one list.
+
+   Return value: a GList with matching tracks. You must call
+   g_list_free() on the list when it is no longer needed.
+*/
+GList *gp_itdb_find_same_tracks_in_itdbs (Track *track)
+{
+    GList *gl, *tracks=NULL;
+    struct itdbs_head *ih = gp_get_itdbs_head (gtkpod_window);
+
+    g_return_val_if_fail (ih, NULL);
+    g_return_val_if_fail (track, NULL);
+
+    for (gl=ih->itdbs; gl; gl=gl->next)
+    {
+	GList *addtracks;
+	iTunesDB *itdb = gl->data;
+	g_return_val_if_fail (itdb, tracks);
+	addtracks = gp_itdb_find_same_tracks (itdb, track);
+	tracks = g_list_concat (tracks, addtracks);
+    }
+    return tracks;
+}
+
+
+
 /* ------------------------------------------------------------ *\
 |                                                                |
+|         functions for local path hashtable                     |
+|                                                                |
+\* ------------------------------------------------------------ */
+
+/* set up hash table for local filenames */
+void gp_itdb_pc_path_hash_init (ExtraiTunesDBData *eitdb)
+{
+    g_return_if_fail (eitdb);
+
+    if (!eitdb->pc_path_hash)
+    {
+	eitdb->pc_path_hash = g_hash_table_new_full (
+	    g_str_hash, g_str_equal,
+	    g_free, NULL);
+    }
+}
+
+
+/* function for destroying hash value, used when destroying the hash
+ * table in gp_itdb_local_path_hash_destroy() below. */
+static void pc_path_hash_free_value (gpointer key,
+					gpointer value,
+					gpointer userdata)
+{
+    g_list_free (value);
+}
+
+
+/* free all memory associated with the local_path_hash */
+void gp_itdb_pc_path_hash_destroy (ExtraiTunesDBData *eitdb)
+{
+    g_return_if_fail (eitdb);
+
+    if (eitdb->pc_path_hash)
+    {
+	g_hash_table_foreach (eitdb->pc_path_hash,
+			      pc_path_hash_free_value,
+			      NULL);
+	g_hash_table_destroy (eitdb->pc_path_hash);
+	eitdb->pc_path_hash = NULL;
+    }
+}
+
+
+/* Add track to filehash. This function must only be called once for
+ * each track. */
+void gp_itdb_pc_path_hash_add_track (Track *track)
+{
+    iTunesDB *itdb;
+    ExtraTrackData *etr;
+    ExtraiTunesDBData *eitdb;
+
+    g_return_if_fail (track);
+    etr = track->userdata;
+    g_return_if_fail (etr);
+
+    itdb = track->itdb;
+    g_return_if_fail (itdb);
+
+    eitdb = itdb->userdata;
+    g_return_if_fail (eitdb);
+    g_return_if_fail (eitdb->pc_path_hash);
+
+    g_return_if_fail (track);
+    etr = track->userdata;
+    g_return_if_fail (etr);
+
+    /* This is only to detect programming errors */
+    g_return_if_fail (!etr->pc_path_hashed);
+
+    if (etr->pc_path_utf8 && *etr->pc_path_utf8)
+    {   /* add to hash table */
+	GList *tracks;
+	tracks = g_hash_table_lookup (eitdb->pc_path_hash, etr->pc_path_utf8);
+	tracks = g_list_prepend (tracks, track);
+	g_hash_table_replace (eitdb->pc_path_hash,
+			      g_strdup (etr->pc_path_utf8),
+			      tracks);
+	/* This is only to detect programming errors */
+	etr->pc_path_hashed = TRUE;
+    }
+}
+
+/* used in the next two functions */
+struct pc_path_hash_find_track_data
+{
+    Track *track;
+    gchar *key;
+};
+
+
+/* Used in the next function. Return TRUE and the current key if
+   td->track is contained in the list for key */
+static gboolean pc_path_hash_find_track (gpointer key,
+					 gpointer value,
+					 gpointer user_data)
+{
+    GList *tracks = value;
+    struct pc_path_hash_find_track_data *td = user_data;
+
+    if (g_list_find (tracks, td->track))
+    {
+	td->key = g_strdup (key);
+	return TRUE;
+    }
+    return FALSE;
+}
+
+
+
+/* remove track from filehash */
+void gp_itdb_pc_path_hash_remove_track (Track *track)
+{
+    struct pc_path_hash_find_track_data td;
+    ExtraTrackData *etr;
+    iTunesDB *itdb;
+    ExtraiTunesDBData *eitdb;
+    GList *tracks;
+
+    g_return_if_fail (track);
+    etr = track->userdata;
+    g_return_if_fail (etr);
+
+    itdb = track->itdb;
+    g_return_if_fail (itdb);
+
+    eitdb = itdb->userdata;
+    g_return_if_fail (eitdb);
+    g_return_if_fail (eitdb->pc_path_hash);
+
+    if (!etr->pc_path_hashed)	return;
+
+    if (etr->pc_path_utf8 && *etr->pc_path_utf8)
+    {   /* try lookup with filename */
+	GList *tracks;
+	tracks = g_hash_table_lookup (eitdb->pc_path_hash, etr->pc_path_utf8);
+	if (tracks)
+	{   /* filename exists */
+	    GList *link = g_list_find (tracks, track);
+	    if (link)
+	    {   /* track found */
+		tracks = g_list_remove_link (tracks, link);
+		if (tracks)
+		{   /* still tracks left under this filename */
+		    g_hash_table_replace (eitdb->pc_path_hash,
+					  g_strdup (etr->pc_path_utf8),
+					  tracks);
+		}
+		else
+		{   /* no more tracks left under this filename */
+		    g_hash_table_remove (eitdb->pc_path_hash,
+					 etr->pc_path_utf8);
+		}
+		etr->pc_path_hashed = FALSE;
+		return;
+	    }
+	}
+    }
+
+    /* We didn't find the track by filename, or now filename is
+     * available any more) -> search through the list */
+    td.track = track;
+    td.key = NULL;
+    tracks = g_hash_table_find (eitdb->pc_path_hash,
+				pc_path_hash_find_track,
+				&td);
+    if (tracks)
+    {
+	tracks = g_list_remove (tracks, track);
+	if (tracks)
+	{   /* still tracks left under this filename */
+	    g_hash_table_replace (eitdb->pc_path_hash,
+				  g_strdup (td.key),
+				  tracks);
+	}
+	else
+	{   /* no more tracks left under this filename */
+	    g_hash_table_remove (eitdb->pc_path_hash,
+				 td.key);
+	}
+	etr->pc_path_hashed = FALSE;
+	g_free (td.key);
+    }
+}
+
+
+/* Return all tracks with @filename (@filename in UTF8).
+   You must g_list_free the returned list when it is not longer needed. */
+GList *gp_itdb_pc_path_hash_find_tracks (iTunesDB *itdb, const gchar *filename)
+{
+    ExtraiTunesDBData *eitdb;
+    GList *tracks = NULL;
+
+    g_return_val_if_fail (itdb, NULL);
+    eitdb = itdb->userdata;
+    g_return_val_if_fail (eitdb, NULL);
+    g_return_val_if_fail (eitdb->pc_path_hash, NULL);
+
+    if (filename && *filename)
+	tracks = g_hash_table_lookup (eitdb->pc_path_hash, filename);
+
+    return g_list_copy (tracks);
+}
+
+
+
+/* ------------------------------------------------------------ *\
+|                                                                |
 |         functions to retrieve information from tracks          |
 |                                                                |
 \* ------------------------------------------------------------ */
@@ -526,6 +852,36 @@
     case T_THUMB_PATH:
 	result = &etr->thumb_path_utf8;
 	break;
+    case T_TV_SHOW:
+        result = &track->tvshow;
+        break;
+    case T_TV_EPISODE:
+        result = &track->tvepisode;
+        break;
+    case T_TV_NETWORK:
+        result = &track->tvnetwork;
+        break;
+    case T_ALBUMARTIST:
+	result = &track->albumartist;
+	break;
+    case T_SORT_ARTIST:
+	result = &track->sort_artist;
+	break;
+    case T_SORT_TITLE:
+	result = &track->sort_title;
+	break;
+    case T_SORT_ALBUM:
+	result = &track->sort_album;
+	break;
+    case T_SORT_ALBUMARTIST:
+	result = &track->sort_albumartist;
+	break;
+    case T_SORT_COMPOSER:
+	result = &track->sort_composer;
+	break;
+    case T_SORT_TVSHOW:
+	result = &track->sort_tvshow;
+	break;
     case T_ALL:
     case T_IPOD_ID:
     case T_TRACK_NR:
@@ -550,6 +906,9 @@
     case T_REMEMBER_PLAYBACK_POSITION:
     case T_SKIP_WHEN_SHUFFLING:
     case T_CHECKED:
+    case T_MEDIA_TYPE:
+    case T_SEASON_NR:
+    case T_EPISODE_NR:
     case T_ITEM_NUM:
 	g_return_val_if_reached (NULL);
     }
@@ -587,11 +946,17 @@
     gboolean changed = FALSE;
     const gchar *fritem;
     gchar **toitem_ptr;
+    ExtraTrackData *efrtr, *etotr;
 
     g_return_val_if_fail (frtrack, FALSE);
     g_return_val_if_fail (totrack, FALSE);
     g_return_val_if_fail ((item > 0) && (item < T_ITEM_NUM), FALSE);
 
+    efrtr = frtrack->userdata;
+    etotr = totrack->userdata;
+    g_return_val_if_fail (efrtr, FALSE);
+    g_return_val_if_fail (etotr, FALSE);
+
     if (frtrack == totrack) return FALSE;
 
     switch (item)
@@ -613,6 +978,16 @@
     case T_PODCASTRSS:
     case T_SUBTITLE:
     case T_THUMB_PATH:
+    case T_TV_SHOW:
+    case T_TV_EPISODE:
+    case T_TV_NETWORK:
+    case T_ALBUMARTIST:
+    case T_SORT_ARTIST:
+    case T_SORT_TITLE:
+    case T_SORT_ALBUM:
+    case T_SORT_ALBUMARTIST:
+    case T_SORT_COMPOSER:
+    case T_SORT_TVSHOW:
 	fritem = track_get_item (frtrack, item);
 	toitem_ptr = track_get_item_pointer (totrack, item);
 	g_return_val_if_fail (fritem, FALSE);
@@ -631,6 +1006,27 @@
 		changed = TRUE;
 	    }
 	}
+	/* handle items that have two entries */
+	if (item == T_PC_PATH)
+	{
+	    if ((etotr->pc_path_locale == NULL) ||
+		(strcmp (efrtr->pc_path_locale, etotr->pc_path_locale) != 0))
+	    {
+		g_free (etotr->pc_path_locale);
+		etotr->pc_path_locale = g_strdup (efrtr->pc_path_locale);
+		changed = TRUE;
+	    }
+	}
+	if (item == T_THUMB_PATH)
+	{
+	    if ((etotr->thumb_path_locale == NULL) ||
+		(strcmp (efrtr->thumb_path_locale, etotr->thumb_path_locale) != 0))
+	    {
+		g_free (etotr->thumb_path_locale);
+		etotr->thumb_path_locale = g_strdup (efrtr->thumb_path_locale);
+		changed = TRUE;
+	    }
+	}
 	break;
     case T_IPOD_ID:
 	if (frtrack->id != totrack->id)
@@ -786,6 +1182,27 @@
 	    changed = TRUE;
 	}
 	break;
+    case T_MEDIA_TYPE:
+	if (frtrack->mediatype != totrack->mediatype)
+	{
+	    totrack->mediatype = frtrack->mediatype;
+	    changed = TRUE;
+	}
+	break;
+    case T_SEASON_NR:
+	if (frtrack->season_nr != totrack->season_nr)
+	{
+	    totrack->season_nr = frtrack->season_nr;
+	    changed = TRUE;
+	}
+	break;
+    case T_EPISODE_NR:
+	if (frtrack->episode_nr != totrack->episode_nr)
+	{
+	    totrack->episode_nr = frtrack->episode_nr;
+	    changed = TRUE;
+	}
+	break;
     case T_ITEM_NUM:
     case T_ALL:
 	g_return_val_if_reached (FALSE);
@@ -798,7 +1215,7 @@
 /* return a pointer to the specified timestamp. @t_item is one of (the
    applicable) T_* defined in track.h.  If the parameters are illegal,
    "0" is returned. */
-guint32 *track_get_timestamp_ptr (Track *track, T_item t_item)
+time_t *track_get_timestamp_ptr (Track *track, T_item t_item)
 {
     g_return_val_if_fail (track, NULL);
 
@@ -821,9 +1238,9 @@
 /* return the specified timestamp. @t_item is one of
    (the * applicable) T_* defined in track.h. If the parameters are
    illegal, "0" is returned. */
-guint32 track_get_timestamp (Track *track, T_item t_item)
+time_t track_get_timestamp (Track *track, T_item t_item)
 {
-    guint32 *ptr;
+    time_t *ptr;
     g_return_val_if_fail (track, 0);
 
     ptr = track_get_timestamp_ptr (track, t_item);
@@ -870,6 +1287,16 @@
     case T_PODCASTURL:
     case T_PODCASTRSS:
     case T_SUBTITLE:
+    case T_TV_SHOW:
+    case T_TV_EPISODE:
+    case T_TV_NETWORK:
+    case T_ALBUMARTIST:
+    case T_SORT_ARTIST:
+    case T_SORT_TITLE:
+    case T_SORT_ALBUM:
+    case T_SORT_ALBUMARTIST:
+    case T_SORT_COMPOSER:
+    case T_SORT_TVSHOW:
 	text = g_strdup (track_get_item (track, item));
 	break;
     case T_TRACK_NR:
@@ -965,6 +1392,15 @@
     case T_SOUNDCHECK:
 	text = g_strdup_printf ("%0.2f", soundcheck_to_replaygain (track->soundcheck));
 	break;
+    case T_SEASON_NR:
+        text = g_strdup_printf ("%d", track->season_nr);
+	break;
+    case T_EPISODE_NR:
+        text = g_strdup_printf ("%d", track->episode_nr);
+	break;
+    case T_MEDIA_TYPE:
+        text = g_strdup_printf ("%#.8x", track->mediatype);
+	break;
     case T_TRANSFERRED:
     case T_COMPILATION:
     case T_REMEMBER_PLAYBACK_POSITION:
@@ -1038,6 +1474,16 @@
     case T_PODCASTURL:
     case T_PODCASTRSS:
     case T_SUBTITLE:
+    case T_TV_SHOW:
+    case T_TV_EPISODE:
+    case T_TV_NETWORK:
+    case T_ALBUMARTIST:
+    case T_SORT_ARTIST:
+    case T_SORT_TITLE:
+    case T_SORT_ALBUM:
+    case T_SORT_ALBUMARTIST:
+    case T_SORT_COMPOSER:
+    case T_SORT_TVSHOW:
         itemp_utf8 = track_get_item_pointer (track, item);
         if (g_utf8_collate (*itemp_utf8, new_text) != 0)
         {
@@ -1202,6 +1648,23 @@
 	    changed = TRUE;
 	}
 	break;
+    case T_SEASON_NR:
+        nr = atoi (new_text);
+        if ((nr >= 0) && (nr != track->season_nr))
+        {
+	    track->season_nr = nr;
+	    changed = TRUE;
+        }
+        break;
+    case T_EPISODE_NR:
+        nr = atoi (new_text);
+        if ((nr >= 0) && (nr != track->episode_nr))
+        {
+	    track->episode_nr = nr;
+	    changed = TRUE;
+        }
+        break;
+    case T_MEDIA_TYPE:
     case T_PC_PATH:
     case T_IPOD_PATH:
     case T_IPOD_ID:
@@ -1245,7 +1708,7 @@
 	g_return_if_fail (etr);
 	if (!tr->transferred)
 	{
-	    if (size)  *size += tr->size - etr->oldsize;
+	    if (size)  *size += tr->size;
 	    if (num)   *num += 1;
 	}
     }
@@ -1282,12 +1745,13 @@
 		/* set flags to 'podcast' if adding to podcast list */
 		if (itdb_playlist_is_podcasts (pl))
 		    gp_track_set_flags_podcast (track);
-
+#if 0 /* initially iTunes didn't add podcasts to the MPL */
 		if (!itdb_playlist_contains_track (to_mpl, track))
 		{   /* add to MPL if not already present (will happen
 		     * if dragged from the podcasts playlist */
 		    gp_playlist_add_track (to_mpl, track, TRUE);
 		}
+#endif
 		if (!itdb_playlist_is_mpl (pl))
 		{
 		    /* add to designated playlist -- unless adding
@@ -1309,8 +1773,49 @@
 	    {   /* DND between different itdbs -- need to duplicate the
 		   track before inserting */
 		Track *duptr, *addtr;
+		ExtraTrackData *eduptr;
 		/* duplicate track */
 		duptr = itdb_track_duplicate (track);
+		eduptr = duptr->userdata;
+		g_return_if_fail (eduptr);
+
+		duptr->transferred = FALSE;
+
+		/* check if adding to iPod and track is on different iPod */
+		if ((from_itdb->usertype & GP_ITDB_TYPE_IPOD) &&
+		    (to_itdb->usertype & GP_ITDB_TYPE_IPOD))
+		{
+		    /* Check if track exists locally */
+		    if (!(eduptr->pc_path_locale &&
+			  g_file_test (eduptr->pc_path_locale, G_FILE_TEST_EXISTS)))
+		    {   /* No. Use iPod path as source */
+			g_free (eduptr->pc_path_locale);
+			g_free (eduptr->pc_path_utf8);
+			eduptr->pc_path_locale = itdb_filename_on_ipod (track);
+			eduptr->pc_path_utf8 = charset_to_utf8 (eduptr->pc_path_locale);
+		    }
+		    /* Remove old reference to iPod path */
+		    g_free (duptr->ipod_path);
+		    duptr->ipod_path = g_strdup ("");
+		}
+
+		if (!eduptr->pc_path_locale)
+		{
+		    gchar *buf;
+		    buf = get_track_info (track, FALSE);
+		    gtkpod_warning (_("Could not find source file for '%s'. Track not copied."));
+		    g_free (buf);
+		    itdb_track_free (duptr);
+		    return;
+		}
+
+		if ((from_itdb->usertype & GP_ITDB_TYPE_LOCAL) &&
+		    (to_itdb->usertype & GP_ITDB_TYPE_IPOD))
+		{   /* make sure the DND origin data is set correctly */
+		    eduptr->local_itdb_id = from_itdb->id;
+		    eduptr->local_track_dbid = track->dbid;
+		}
+
 		/* add to database -- if duplicate detection is on and the
 		   same track already exists in the database, the already
 		   existing track is returned and @duptr is freed */
@@ -1322,6 +1827,7 @@
 
 		if (addtr == duptr)
 		{   /* no duplicate */
+#if 0 /* initially iTunes didn't add podcasts to the MPL */
 		    /* we need to add to the MPL if the track is no
 		       duplicate and will not be added to the podcasts
 		       playlist */
@@ -1330,7 +1836,13 @@
 			   playlist */
 			gp_playlist_add_track (to_mpl, addtr, TRUE);
 		    }
+#else
+		    /* we need to add to the MPL if the track is no
+		       duplicate */
+		    gp_playlist_add_track (to_mpl, addtr, TRUE);
+#endif
 		}
+#if 0 /* initially iTunes didn't add podcasts to the MPL */
 		else
 		{   /* duplicate */
 		    /* we also need to add to the MPL if the track is a
@@ -1343,6 +1855,7 @@
 			gp_playlist_add_track (to_mpl, addtr, TRUE);
 		    }
 		}
+#endif
 		/* add to designated playlist (if not mpl) -- unless
 		 * adding to podcasts list and track already * exists
 		 * there */
@@ -1495,6 +2008,8 @@
 		    case FILE_TYPE_MP4:
 		    case FILE_TYPE_MOV:
 		    case FILE_TYPE_MPG:
+                    case FILE_TYPE_OGG:
+                    case FILE_TYPE_FLAC:
 			if (!pl)
 			{  /* no playlist yet -- create new one */
 			    pl = add_new_pl_user_name (itdb, NULL,

Modified: gtkpod/trunk/src/misc_track.h
===================================================================
--- gtkpod/trunk/src/misc_track.h	2007-06-27 20:59:02 UTC (rev 193)
+++ gtkpod/trunk/src/misc_track.h	2007-06-27 21:27:12 UTC (rev 194)
@@ -1,6 +1,5 @@
-/* Time-stamp: <2006-05-14 00:54:51 jcs>
-|
-|  Copyright (C) 2002-2005 Jorg Schuler <jcsjcs at users sourceforge net>
+/*
+|  Copyright (C) 2002-2007 Jorg Schuler <jcsjcs at users sourceforge net>
 |  Part of the gtkpod project.
 | 
 |  URL: http://www.gtkpod.org/
@@ -24,7 +23,7 @@
 |
 |  This product is not supported/written/published by Apple!
 |
-|  $Id: misc_track.h,v 1.15 2006/05/13 16:41:06 jcsjcs Exp $
+|  $Id: misc_track.h 1055 2007-04-27 15:19:54Z jcsjcs $
 */
 
 #ifndef __MISC_TRACK_H__
@@ -37,14 +36,24 @@
 #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);
-void gp_md5_free_hash (void);
+void gp_sha1_hash_tracks_itdb (iTunesDB *itdb);
+void gp_sha1_hash_tracks (void);
+void gp_sha1_free_hash (void);
 Track *gp_track_by_filename (iTunesDB *itdb, gchar *filename);
+
+void gp_itdb_pc_path_hash_init (ExtraiTunesDBData *eitdb);
+void gp_itdb_pc_path_hash_destroy (ExtraiTunesDBData *eitdb);
+void gp_itdb_pc_path_hash_add_track (Track *track);
+void gp_itdb_pc_path_hash_remove_track (Track *track);
+GList *gp_itdb_pc_path_hash_find_tracks (iTunesDB *itdb, const gchar *filename);
+GList *gp_itdb_find_same_tracks (iTunesDB *itdb, Track *track);
+GList *gp_itdb_find_same_tracks_in_itdbs (Track *track);
+GList *gp_itdb_find_same_tracks_in_local_itdbs (Track *track);
+
 gchar **track_get_item_pointer (Track *track, T_item t_item);
 const gchar *track_get_item (Track *track, T_item t_item);
-guint32 *track_get_timestamp_ptr (Track *track, T_item t_item);
-guint32 track_get_timestamp (Track *track, T_item t_item);
+time_t *track_get_timestamp_ptr (Track *track, T_item t_item);
+time_t track_get_timestamp (Track *track, T_item t_item);
 gchar *track_get_text (Track *track, T_item item);
 gboolean track_set_text (Track *track,
 			 const gchar *new_text, T_item item);

Modified: gtkpod/trunk/src/mp3file.c
===================================================================
--- gtkpod/trunk/src/mp3file.c	2007-06-27 20:59:02 UTC (rev 193)
+++ gtkpod/trunk/src/mp3file.c	2007-06-27 21:27:12 UTC (rev 194)
@@ -1,4 +1,4 @@
-/* Time-stamp: <2006-09-24 12:52:49 jcs>
+/* Time-stamp: <2007-06-26 00:39:11 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.c,v 1.71 2006/09/24 03:57:10 jcsjcs Exp $
+|  $Id: mp3file.c 1591 2007-06-26 03:33:25Z tmzullinger $
 */
 
 
@@ -53,6 +53,7 @@
  */
 typedef struct _File_Tag File_Tag;
 typedef struct _GainData GainData;
+typedef struct _GaplessData GaplessData;
 
 struct _File_Tag
 {
@@ -66,15 +67,20 @@
     gchar *comment;        /* Comment */
     gchar *composer;	   /* Composer */
     guint32 songlen;       /* Length of file in ms */
-    /* CD/disc number handling */
     gchar *cdnostring;    /* Position of disc in the album */
     gchar *cdno_total;    /* The number of discs in the album (ex: 1/2) */
     gchar *compilation;   /* The track is a member of a compilation */
     gchar *podcasturl;    /* The following are mainly used for podcasts */
+    gchar *sort_artist;
+    gchar *sort_title;
+    gchar *sort_album;
+    gchar *sort_albumartist;
+    gchar *sort_composer;
     gchar *description;
     gchar *podcastrss;
     gchar *time_released;
     gchar *subtitle;
+    gchar *BPM;           /* beats per minute */
     gchar *lyrics;        /* does not appear to be the full lyrics --
 			     only used to set the flag 'lyrics_flag'
 			     of the Track structure */
@@ -93,6 +99,13 @@
   gboolean audiophile_gain_set;/* has the audiophile gain been set?  */
 };
 
+struct _GaplessData
+{
+    guint32 pregap;       /* number of pregap samples */
+    guint64 samplecount;  /* number of actual music samples */
+    guint32 postgap;      /* number of postgap samples */
+    guint32 gapless_data; /* number of bytes from the first sync frame to the 8th to last frame */
+};
 
 /* This code is taken from the mp3info code. Only the code needed for
  * the playlength calculation has been extracted */
@@ -965,7 +978,8 @@
 
 static const gchar* id3_get_binary (struct id3_tag *tag,
 				    char *frame_name,
-				    id3_length_t *len)
+				    id3_length_t *len,
+				    int index)
 {
     const id3_byte_t *binary = NULL;
     struct id3_frame *frame;
@@ -975,7 +989,7 @@
 
     *len = 0;
 
-    frame = id3_tag_findframe (tag, frame_name, 0);
+    frame = id3_tag_findframe (tag, frame_name, index);
 #if LOCALDEBUG
     printf ("frame: %p\n", frame); 
 #endif
@@ -983,7 +997,12 @@
     if (!frame) return NULL;
 
 #if LOCALDEBUG
-    printf (" nfields: %d\n", frame->nfields); 
+    printf (" nfields: %d\n", frame->nfields);
+    if (strncmp (frame_name, "APIC",  4) == 0)
+    {
+	field = id3_frame_field (frame, 2);
+	printf (" picture type: %ld\n", field->number.value);
+    }
 #endif
 
 
@@ -1150,7 +1169,7 @@
 
     if (!string) return NULL;
 
-    if (frame_name == ID3_FRAME_GENRE)
+    if (strcmp (frame_name, ID3_FRAME_GENRE) == 0)
        string = id3_genre_name (string);
 
     if (encoding == ID3_FIELD_TEXTENCODING_ISO_8859_1)
@@ -1200,7 +1219,7 @@
     field = id3_frame_field (frame, 0);
     id3_field_settextencoding(field, encoding);
    
-    if (frame_name == ID3_FRAME_COMMENT)
+    if (strcmp (frame_name, ID3_FRAME_COMMENT) == 0)
     {
 	field = id3_frame_field (frame, 3);
 	field->type = ID3_FIELD_TYPE_STRINGFULL;
@@ -1215,7 +1234,7 @@
     /* maybe could be optimized see
        http://www.mars.org/mailman/public/mad-dev/2002-October/000739.html
     */
-    if (frame_name == ID3_FRAME_GENRE)
+    if (strcmp (frame_name, ID3_FRAME_GENRE) == 0)
     {
 	id3_ucs4_t *tmp_ucs4 = id3_utf8_ucs4duplicate ((id3_utf8_t *)data);
 	int index = id3_genre_number (tmp_ucs4);
@@ -1265,7 +1284,7 @@
 	}
     }
 
-    if (frame_name == ID3_FRAME_COMMENT)
+    if (strcmp (frame_name, ID3_FRAME_COMMENT) == 0)
 	res = id3_field_setfullstring (field, ucs4);
     else
 	res = id3_field_setstrings (field, 1, &ucs4);
@@ -1306,10 +1325,30 @@
     if ((id3tag = id3_file_tag(id3file)))
     {
 	id3_length_t len;
-	const guchar *coverart;
+	const guchar *coverart = NULL;
+	int i;
+	struct id3_frame *frame;
 
-	coverart = id3_get_binary (id3tag, "APIC", &len);
+	/* Loop through APIC tags and set coverart.  The picture type should be
+	 * 3 -- Cover (front), but iTunes has been known to use 0 -- Other. */
+	for (i = 0; (frame = id3_tag_findframe(id3tag, "APIC", i)) != NULL; i++)
+	{
+	    union id3_field *field = id3_frame_field (frame, 2);
+	    int pictype = field->number.value;
+/*	    printf ("%s: found apic type %d\n", filename, pictype);*/
 
+	    /* We'll prefer type 3 (cover) over type 0 (other) */
+	    if (pictype == 3)
+	    {
+		coverart = id3_get_binary (id3tag, "APIC", &len, i);
+		break;
+	    }
+	    if ((pictype == 0) && !coverart)
+	    {
+		coverart = id3_get_binary (id3tag, "APIC", &len, i);
+	    }
+	}
+
 	if (coverart)
 	{   /* I guess iTunes is doing something wrong -- the
 	     * beginning of the coverart data ends up in a different
@@ -1397,6 +1436,12 @@
 	tag->podcastrss = id3_get_string (id3tag, "YWFD");
 	tag->description = id3_get_string (id3tag, "YTDS");
 	tag->time_released = id3_get_string (id3tag, "YTDR");
+	tag->BPM = id3_get_string (id3tag, "TBPM");
+	tag->sort_artist = id3_get_string (id3tag, "TSOP");
+	tag->sort_album = id3_get_string (id3tag, "TSOA");
+	tag->sort_title = id3_get_string (id3tag, "TSOT");
+	tag->sort_albumartist = id3_get_string (id3tag, "TSO2");
+	tag->sort_composer = id3_get_string (id3tag, "TSOC");
 
 	string = id3_get_string (id3tag, "TLEN");
 	if (string)
@@ -1555,6 +1600,11 @@
 	id3_set_string (id3tag, ID3_FRAME_GENRE, track->genre, encoding);
 	id3_set_string (id3tag, ID3_FRAME_COMMENT, track->comment, encoding);
 	id3_set_string (id3tag, "TIT3", track->subtitle, encoding);
+	id3_set_string (id3tag, "TSOP", track->sort_artist, encoding);
+	id3_set_string (id3tag, "TSOA", track->sort_album, encoding);
+	id3_set_string (id3tag, "TSOT", track->sort_title, encoding);
+	id3_set_string (id3tag, "TSO2", track->sort_albumartist, encoding);
+	id3_set_string (id3tag, "TSOC", track->sort_composer, encoding);
 
 	set_uncommon_tag (id3tag, "YTID", track->podcasturl, encoding);
 	set_uncommon_tag (id3tag, "YTDS", track->description, encoding);
@@ -1566,6 +1616,10 @@
 	id3_set_string(id3tag, ID3_FRAME_YEAR, string1, encoding);
 	g_free(string1);
 
+	string1 = g_strdup_printf("%d", track->BPM);
+	id3_set_string(id3tag, "TBPM", string1, encoding);
+	g_free(string1);
+
 	if (track->tracks)
 	    string1 = g_strdup_printf ("%d/%d",
 				       track->track_nr, track->tracks);
@@ -2093,7 +2147,7 @@
  *
  * Returns TRUE if the soundcheck field could be set.
  */
-gboolean mp3_read_soundcheck (gchar *path, Track *track) 
+gboolean mp3_read_soundcheck (gchar *path, Track *track)
 {
     GainData gd;
 
@@ -2124,6 +2178,251 @@
 
 
 
+
+
+
+/* mp3 slot size in bytes */
+int slotsize[3] = {4,1,1}; /* layer 1, layer 2, layer 3 */
+
+int samplesperframe[2][3] = {
+  { /* MPEG 2.0 */
+    384,1152,576 /* layer 1, layer 2, layer 3 */
+  },
+
+  { /* MPEG 1.0 */
+    384,1152,1152 /* layer 1, layer 2, layer 3 */
+  }
+};
+
+
+/* 
+ * mp3_get_track_lame_gapless - read the specified file and scan for LAME Tag
+ * gapless information.
+ *
+ * @path: localtion of the file
+ * @track: structure holding track information
+ *
+ * TODO: Split off non-LAME stuff (samplecount, gapless_data) to a separate function since it's generic
+ */
+gboolean mp3_get_track_lame_gapless (gchar *path, GaplessData *gd)
+{
+    FILE *file = NULL;
+    char buf[4], version[5];
+    unsigned char ubuf[4];
+    int sideinfo;
+    int i;
+
+    g_return_val_if_fail (gd, FALSE);
+
+    if (!path)
+	goto gp_fail;
+
+    file = fopen (path, "rb");
+
+    if (!file)
+	goto gp_fail;
+
+    /* use get_first_header() to seek to the first mp3 header */
+    MP3Info *mp3i = NULL;
+    mp3i = g_malloc0 (sizeof (MP3Info));
+    mp3i->filename = path;
+    mp3i->file = file;
+    get_mp3_info (mp3i);
+    get_first_header (mp3i, 0);
+
+    int xing_header_offset = ftell (file);
+
+    MP3Header h;
+    if (!get_header (file, &h))
+	goto gp_fail;
+
+    int mysamplesperframe = samplesperframe[h.version & 1][3 - h.layer];
+
+    /* Determine offset of Xing header based on sideinfo size */
+    if (h.version & 0x1)
+    {
+	sideinfo = (h.mode & 0x2) ?
+	    SIDEINFO_MPEG1_MONO : SIDEINFO_MPEG1_MULTI;
+    }
+    else
+    {
+	sideinfo = (h.mode & 0x2) ?
+	    SIDEINFO_MPEG2_MONO : SIDEINFO_MPEG2_MULTI;
+    }
+
+    if (fseek (file, sideinfo, SEEK_CUR) ||
+	(fread (&buf[0], 1, 4, file) != 4))
+	goto gp_fail;
+
+    /* Is this really a Xing or Info Header? 
+     * FIXME: Apparently (according to madplay sources) there is a different
+     * possible location for the Xing header ("due to an unfortunate
+     * historical event"). I do not thing we need to care though since
+     * ReplayGain information is only contained in recent files.  */
+    if (strncmp (buf, "Xing", 4) && strncmp (buf, "Info", 4))
+	goto gp_fail;
+
+    /* Determine the offset of the LAME tag based on contents of the Xing header */
+    int flags;
+    fread (&flags, 4, 1, file);
+    int toskip = 0;
+    if (flags | 0x1)
+    {				/* frames field is set */
+	toskip += 4;
+    }
+    if (flags | 0x2)
+    {				/* bytes field is set */
+	toskip += 4;
+    }
+    if (flags | 0x4)
+    {				/* TOC field is set */
+	toskip += 100;
+    }
+    if (flags | 0x8)
+    {				/* quality field is set */
+	toskip += 4;
+    }
+
+    /* Check for LAME Tag */
+    if (fseek (file, toskip, SEEK_CUR) || (fread (&buf[0], 1, 4, file) != 4))
+	goto gp_fail;
+    if (strncmp (buf, "LAME", 4))
+	goto gp_fail;
+
+    /* Check LAME Version */
+    if (fread (version, 1, 5, file) != 5)
+	goto gp_fail;
+
+    /* XXX skip old LAME versions, or just assume that pre/postgap
+     * turn out zeros anyway, or check the CRC to vaidate the tag? */
+
+    gboolean cbr = FALSE;
+    if (fread (ubuf, 1, 1, file) != 1)
+	goto gp_fail;
+
+    if ((ubuf[0] & 0xf) == 0x1)
+	cbr = TRUE;
+
+    if (fseek (file, 0xB, SEEK_CUR) || (fread (ubuf, 1, 4, file) != 4))
+	goto gp_fail;
+
+    /* set pregap and postgap directly from LAME header */
+    gd->pregap = (ubuf[0] << 4) + (ubuf[1] >> 4);
+    gd->postgap = ((ubuf[1] & 0xf) << 8) + ubuf[2];
+
+    /* jump the end of the frame with the xing header */
+    if (fseek (file, xing_header_offset + frame_length (&h), SEEK_SET))
+	goto gp_fail;
+
+    /* counts bytes from the start of the 1st sync frame */
+    int totaldatasize = frame_length (&h);
+
+    /* keeps track of the last 8 frame sizes */
+    int lastframes[8];
+
+    /* counts number of music frames */
+    int totalframes = 0;
+
+    /* quickly parse the file, reading only frame headers */
+    int l = 0;
+    while ((l = get_header (file, &h)) != 0)
+    {
+	for (i = 7; i > 0; i--)
+	{
+	    lastframes[i] = lastframes[i - 1];
+	}
+	lastframes[0] = l;
+	totaldatasize += l;
+	totalframes++;
+
+	if (fseek (file, l - FRAME_HEADER_SIZE, SEEK_CUR))
+	    goto gp_fail;
+
+    }
+
+    int finaleight = 0;
+    for (i = 0; i < 8; i++)
+    {
+	finaleight += lastframes[i];
+    }
+
+    if (cbr)
+	totalframes++;
+
+    /* all but last eight frames */
+    gd->gapless_data = totaldatasize - finaleight;
+    /* total samples minus pre/postgap */
+    gd->samplecount = totalframes * mysamplesperframe - gd->pregap - gd->postgap;
+
+    return TRUE;
+
+
+  gp_fail:
+    if (file)
+	fclose (file);
+    return FALSE;
+
+}
+
+
+
+/** 
+ * mp3_read_gapless:
+ *
+ * try to read the gapless values from the LAME Tag and set
+ * the track's pregap, postgap, samplecount, and gapless_data fields
+ * accordingly.
+ *
+ * @path: location of the file
+ * @track: structure holding track information
+ *
+ * The function always rereads the data from the file.
+ *
+ * Returns TRUE if all four gapless fields could be
+ * set. etrack->tchanged is set to TRUE if data has been changed,
+ * FALSE otherwise.
+ */
+gboolean mp3_read_gapless (char *path, Track *track)
+{
+    GaplessData gd;
+    ExtraTrackData *etr;
+
+    g_return_val_if_fail (track, FALSE);
+
+    etr = track->userdata;
+
+    memset (&gd, 0, sizeof (GaplessData));
+
+    gd.pregap = 0;
+    gd.samplecount = 0;
+    gd.postgap = 0;
+    gd.gapless_data = 0;
+
+    mp3_get_track_lame_gapless (path, &gd);
+
+    etr->tchanged = FALSE;
+
+    if ((gd.pregap) && (gd.samplecount) && (gd.postgap) && (gd.gapless_data))
+    {
+	if ((track->pregap != gd.pregap) ||
+	    (track->samplecount != gd.samplecount) ||
+	    (track->postgap != gd.postgap) ||
+	    (track->gapless_data != gd.gapless_data) ||
+	    (track->gapless_track_flag == FALSE))
+	{
+	    etr->tchanged = TRUE;
+	    track->pregap = gd.pregap;
+	    track->samplecount = gd.samplecount;
+	    track->postgap = gd.postgap;
+	    track->gapless_data = gd.gapless_data;
+	    track->gapless_track_flag = TRUE;
+	}
+    }
+    return FALSE;
+}
+
+
+
 /* ----------------------------------------------------------------------
 
 	      From here starts original gtkpod code
@@ -2219,6 +2518,31 @@
 	    track->description = filetag.description;
 	}
 
+	if (filetag.sort_artist)
+	{
+	    track->sort_artist = filetag.sort_artist;
+	}
+
+	if (filetag.sort_title)
+	{
+	    track->sort_title = filetag.sort_title;
+	}
+
+	if (filetag.sort_album)
+	{
+	    track->sort_album = filetag.sort_album;
+	}
+
+	if (filetag.sort_albumartist)
+	{
+	    track->sort_albumartist = filetag.sort_albumartist;
+	}
+
+	if (filetag.sort_composer)
+	{
+	    track->sort_composer = filetag.sort_composer;
+	}
+
 	if (filetag.year == NULL)
 	{
 	    track->year = 0;
@@ -2279,6 +2603,16 @@
 	    g_free (filetag.compilation);
 	}
 
+	if (filetag.BPM == NULL)
+	{
+	    track->BPM = 0;
+	}
+	else
+	{
+	    track->BPM = atoi(filetag.BPM);
+	    g_free (filetag.BPM);
+	}
+
 	if (filetag.lyrics)
 	{
 	    track->lyrics_flag = 0x01;
@@ -2304,6 +2638,17 @@
 
     mp3_read_soundcheck (name, track);
 
+    mp3_read_gapless (name, track);
+
+#if LOCALDEBUG
+	printf("%s\n", name);
+    printf("\tpregap: %i\n", track->pregap);
+    printf("\tpostgap: %i\n", track->postgap);
+    printf("\tsamplecount: %li\n", track->samplecount);
+    printf("\tgaplessdata: %i\n", track->gapless_data);
+#endif
+
+
     /* Get additional info (play time and bitrate */
     if (mp3i)
     {

Modified: gtkpod/trunk/src/mp3file.h
===================================================================
--- gtkpod/trunk/src/mp3file.h	2007-06-27 20:59:02 UTC (rev 193)
+++ gtkpod/trunk/src/mp3file.h	2007-06-27 21:27:12 UTC (rev 194)
@@ -24,7 +24,7 @@
 |
 |  This product is not supported/written/published by Apple!
 |
-|  $Id: mp3file.h,v 1.24 2006/06/11 16:04:51 jcsjcs Exp $
+|  $Id: mp3file.h 1591 2007-06-26 03:33:25Z tmzullinger $
 */
 
 #ifndef MP3FILEH_INCLUDED
@@ -35,5 +35,6 @@
 gboolean mp3_write_file_info (gchar *filename, Track *track);
 Track *mp3_get_file_info (gchar *name);
 gboolean mp3_read_soundcheck (gchar *path, Track *track);
+gboolean mp3_read_gapless (gchar *path, Track *track);
 
 #endif

Modified: gtkpod/trunk/src/mp4file.c
===================================================================
--- gtkpod/trunk/src/mp4file.c	2007-06-27 20:59:02 UTC (rev 193)
+++ gtkpod/trunk/src/mp4file.c	2007-06-27 21:27:12 UTC (rev 194)
@@ -1,4 +1,4 @@
-/* Time-stamp: <2006-09-18 16:03:15 jcs>
+/* Time-stamp: <2007-06-23 02:49:08 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.34 2006/09/18 07:10:44 jcsjcs Exp $
+|  $Id: mp4file.c 1575 2007-06-22 17:49:43Z jcsjcs $
 */
 
 #ifdef HAVE_CONFIG_H
@@ -34,9 +34,11 @@
 #include "charset.h"
 #include "itdb.h"
 #include "misc.h"
+#include "prefs.h"
 #include "mp4file.h"
-#include "prefs.h"
 
+
+
 /* ------------------------------------------------------------
 
    Info on how to implement new file formats.
@@ -73,6 +75,8 @@
    guint16 samplerate;        /+ e.g.: CD is 44100     +/
    guint32 peak_signal;	      /+ LAME Peak Signal * 0x800000         +/
    gboolean compilation;      /+ Track is part of a compilation CD   +/
+   gboolean lyrics_flag;
+   gint16 bpm;
 
    If prefs_get_int("readtags") returns FALSE you only should fill in
    tracklen, bitrate, samplerate, soundcheck and filetype
@@ -134,13 +138,7 @@
 #include <stdlib.h>
 #include <string.h>
 #include "mp4.h"
-#undef PACKAGE
-#undef VERSION
-/* need to include config.h again because mp4.h seems to #undef
-   PACKAGE */
-#include <config.h>
 
-
 static gboolean mp4_scan_soundcheck (MP4FileHandle mp4File, Track *track)
 {
     gboolean success = FALSE;
@@ -204,22 +202,32 @@
     {
 	MP4TrackId trackId;
 	const char *trackType;
+	u_int32_t track_cur, tracks_num;
+	gboolean audio_or_video_found = FALSE;
 
-	trackId = MP4FindTrackId(mp4File, 0, NULL, 0);
-	trackType = MP4GetTrackType(mp4File, trackId);
+	tracks_num = MP4GetNumberOfTracks (mp4File, NULL,  0);
 
-	if (trackType &&
-	    ((strcmp(trackType, MP4_AUDIO_TRACK_TYPE) == 0) ||
-	     (strcmp(trackType, MP4_VIDEO_TRACK_TYPE) == 0) ||
-	     (strcmp(trackType, MP4_OD_TRACK_TYPE) == 0)))
+	for (track_cur=0; track_cur < tracks_num; ++track_cur)
 	{
-	    success = mp4_scan_soundcheck (mp4File, track);
+	    trackId = MP4FindTrackId(mp4File, track_cur, 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)))
+	    {
+		audio_or_video_found = TRUE;
+		success = mp4_scan_soundcheck (mp4File, track);
+	    }
+	    if (audio_or_video_found) break;
 	}
-	else
+	if (!audio_or_video_found)
 	{
 	    gchar *filename = charset_to_utf8 (mp4FileName);
-	    gtkpod_warning (_("'%s' does not appear to be a mp4 audio file.\n"),
-			    filename);
+	    gtkpod_warning (
+		_("'%s' does not appear to be a mp4 audio or video file.\n"),
+		filename);
 	    g_free (filename);
 	}
 	MP4Close(mp4File);
@@ -251,96 +259,136 @@
     {
 	MP4TrackId trackId;
 	const char *trackType;
+	u_int32_t track_cur, tracks_num;
+	gboolean audio_or_video_found = FALSE;
+/*	gboolean artwork_found = FALSE; not used yet */
 
-	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)))
+	tracks_num = MP4GetNumberOfTracks (mp4File, NULL,  0);
+
+	for (track_cur=0; track_cur < tracks_num; ++track_cur)
 	{
-	    gchar *value;
-	    guint16 numvalue, numvalue2;
-	    MP4Duration trackDuration = MP4GetTrackDuration(mp4File, trackId);
-	    double msDuration = 
-		(double)MP4ConvertFromTrackDuration(mp4File, trackId,
-						    trackDuration,
-						    MP4_MSECS_TIME_SCALE);
-	    guint32 avgBitRate = MP4GetTrackBitRate(mp4File, trackId);
-	    guint32 samplerate = MP4GetTrackTimeScale(mp4File, trackId);
-
-	    track = gp_track_new ();
-
-	    track->tracklen = msDuration;
-	    track->bitrate = avgBitRate/1000;
-	    track->samplerate = samplerate;
-	    value = strrchr (mp4FileName, '.');
-	    if (value)
+	    trackId = MP4FindTrackId(mp4File, track_cur, NULL, 0);
+	    trackType = MP4GetTrackType(mp4File, trackId);
+	    if (trackType &&
+		(audio_or_video_found == FALSE) &&
+		((strcmp(trackType, MP4_AUDIO_TRACK_TYPE) == 0) ||
+		 (strcmp(trackType, MP4_VIDEO_TRACK_TYPE) == 0) ||
+		 (strcmp(trackType, MP4_OD_TRACK_TYPE) == 0)))
 	    {
-		if (g_strcasecmp (value, ".m4a") == 0)
-		    track->filetype = g_strdup ("AAC audio file");
-		if (g_strcasecmp (value, ".m4p") == 0)
-		    track->filetype = g_strdup ("Protected AAC audio file");
-		if (g_strcasecmp (value, ".m4b") == 0)
-		    track->filetype = g_strdup ("AAC audio book file");
-		if (g_strcasecmp (value, ".mp4") == 0)
-		    track->filetype = g_strdup ("MP4 video file");
-	    }
-	    if (prefs_get_int("readtags"))
-	    {
-		if (MP4GetMetadataName(mp4File, &value) && value != NULL)
+		gchar *value;
+		guint16 numvalue, numvalue2;
+		MP4Duration trackDuration = MP4GetTrackDuration(mp4File, trackId);
+		double msDuration = 
+		    (double)MP4ConvertFromTrackDuration(mp4File, trackId,
+							trackDuration,
+							MP4_MSECS_TIME_SCALE);
+		guint32 avgBitRate = MP4GetTrackBitRate(mp4File, trackId);
+		guint32 samplerate = MP4GetTrackTimeScale(mp4File, trackId);
+		
+		track = gp_track_new ();
+		
+		track->tracklen = msDuration;
+		track->bitrate = avgBitRate/1000;
+		track->samplerate = samplerate;
+		value = strrchr (mp4FileName, '.');
+		if (value)
 		{
-		    track->title = charset_to_utf8 (value);
-		    g_free(value);
+		    if (g_strcasecmp (value, ".m4a") == 0)
+			track->filetype = g_strdup ("AAC audio file");
+		    if (g_strcasecmp (value, ".m4p") == 0)
+			track->filetype = g_strdup ("Protected AAC audio file");
+		    if (g_strcasecmp (value, ".m4b") == 0)
+			track->filetype = g_strdup ("AAC audio book file");
+		    if (g_strcasecmp (value, ".mp4") == 0)
+			track->filetype = g_strdup ("MP4 video file");
 		}
-		if (MP4GetMetadataArtist(mp4File, &value) && value != NULL)
+		if (prefs_get_int("readtags"))
 		{
-		    track->artist = charset_to_utf8 (value);
-		    g_free(value);
+		    if (MP4GetMetadataName(mp4File, &value) && value != NULL)
+		    {
+			track->title = charset_to_utf8 (value);
+			g_free(value);
+		    }
+		    if (MP4GetMetadataArtist(mp4File, &value) && value != NULL)
+		    {
+			track->artist = charset_to_utf8 (value);
+			g_free(value);
+		    }
+		    if (MP4GetMetadataWriter(mp4File, &value) && value != NULL)
+		    {
+			track->composer = charset_to_utf8 (value);
+			g_free(value);
+		    }
+		    if (MP4GetMetadataComment(mp4File, &value) && value != NULL)
+		    {
+			track->comment = charset_to_utf8 (value);
+			g_free(value);
+		    }
+		    if (MP4GetMetadataYear(mp4File, &value) && value != NULL)
+		    {
+			track->year = atoi (value);
+			g_free(value);
+		    }
+		    if (MP4GetMetadataAlbum(mp4File, &value) && value != NULL)
+		    {
+			track->album = charset_to_utf8 (value);
+			g_free(value);
+		    }
+		    if (MP4GetMetadataTrack(mp4File, &numvalue, &numvalue2))
+		    {
+			track->track_nr = numvalue;
+			track->tracks = numvalue2;
+		    }
+		    if (MP4GetMetadataDisk(mp4File, &numvalue, &numvalue2))
+		    {
+			track->cd_nr = numvalue;
+			track->cds = numvalue2;
+		    }
+		    if (MP4GetMetadataGrouping(mp4File, &value) && value != NULL)
+		    {
+			track->grouping = charset_to_utf8 (value);
+			g_free (value);
+		    }
+		    if (MP4GetMetadataGenre(mp4File, &value) && value != NULL)
+		    {
+			track->genre = charset_to_utf8 (value);
+			g_free(value);
+		    }
+		    if (MP4GetMetadataTempo (mp4File, &numvalue))
+		    {
+			track->BPM = numvalue;
+		    }
 		}
-		if (MP4GetMetadataWriter(mp4File, &value) && value != NULL)
+		mp4_scan_soundcheck (mp4File, track);
+		audio_or_video_found = TRUE;
+
+		if (prefs_get_int("coverart_apic"))
 		{
-		    track->composer = charset_to_utf8 (value);
-		    g_free(value);
+		    u_int8_t *image_data;
+		    u_int32_t image_data_len;
+		    if (MP4GetMetadataCoverArt (mp4File,
+						&image_data, &image_data_len))
+		    {
+			if (image_data)
+			{
+/*			    FILE *file = fopen ("/tmp/tttt", "w");
+			    fwrite (image_data, 1, image_data_len, file);
+			    fclose (file);*/
+			    gp_track_set_thumbnails_from_data (track,
+							       image_data,
+							       image_data_len);
+			    g_free (image_data);
+			}
+		    }
 		}
-		if (MP4GetMetadataComment(mp4File, &value) && value != NULL)
-		{
-		    track->comment = charset_to_utf8 (value);
-		    g_free(value);
-		}
-		if (MP4GetMetadataYear(mp4File, &value) && value != NULL)
-		{
-		    track->year = atoi (value);
-		    g_free(value);
-		}
-		if (MP4GetMetadataAlbum(mp4File, &value) && value != NULL)
-		{
-		    track->album = charset_to_utf8 (value);
-		    g_free(value);
-		}
-		if (MP4GetMetadataTrack(mp4File, &numvalue, &numvalue2))
-		{
-		    track->track_nr = numvalue;
-		    track->tracks = numvalue2;
-		}
-		if (MP4GetMetadataDisk(mp4File, &numvalue, &numvalue2))
-		{
-		    track->cd_nr = numvalue;
-		    track->cds = numvalue2;
-		}
-		if (MP4GetMetadataGenre(mp4File, &value) && value != NULL)
-		{
-		    track->genre = charset_to_utf8 (value);
-		    g_free(value);
-		}
 	    }
-	    mp4_scan_soundcheck (mp4File, track);
 	}
-	else
+	if (!audio_or_video_found)
 	{
 	    gchar *filename = charset_to_utf8 (mp4FileName);
-	    gtkpod_warning (_("'%s' does not appear to be a mp4 audio file.\n"),
-			    filename);
+	    gtkpod_warning (
+		_("'%s' does not appear to be a mp4 audio or video file.\n"),
+		filename);
 	    g_free (filename);
 	}
 	MP4Close(mp4File);
@@ -435,6 +483,12 @@
 
 	    MP4SetMetadataDisk (mp4File, track->cd_nr, track->cds);
 
+	    MP4SetMetadataTempo (mp4File, track->BPM);
+
+	    value = charset_from_utf8 (track->grouping);
+	    MP4SetMetadataGrouping (mp4File, value);
+	    g_free (value);
+
 	    value = charset_from_utf8 (track->genre);
 	    MP4SetMetadataGenre (mp4File, value);
 	    g_free (value);

Modified: gtkpod/trunk/src/mp4file.h
===================================================================
--- gtkpod/trunk/src/mp4file.h	2007-06-27 20:59:02 UTC (rev 193)
+++ gtkpod/trunk/src/mp4file.h	2007-06-27 21:27:12 UTC (rev 194)
@@ -24,7 +24,7 @@
 |
 |  This product is not supported/written/published by Apple!
 |
-|  $Id: mp4file.h,v 1.9 2006/06/11 16:04:51 jcsjcs Exp $
+|  $Id: mp4file.h 829 2006-06-11 16:04:51Z jcsjcs $
 */
 
 #ifndef MP4FILEH_INCLUDED

Copied: gtkpod/trunk/src/oggfile.c (from rev 193, gtkpod/branches/upstream/current/src/oggfile.c)
===================================================================
--- gtkpod/trunk/src/oggfile.c	                        (rev 0)
+++ gtkpod/trunk/src/oggfile.c	2007-06-27 21:27:12 UTC (rev 194)
@@ -0,0 +1,163 @@
+/* Time-stamp: <2007-06-18 00:48:50 jcs>
+|
+|  Copyright (C) 2007 Marc d[r]eadlock <m.dreadlock at gmail com>
+|  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: oggfile.c 1553 2007-06-17 15:51:24Z jcsjcs $
+*/
+
+#ifdef HAVE_CONFIG_H
+#  include <config.h>
+#endif
+
+#include "charset.h"
+#include "itdb.h"
+#include "misc.h"
+#include "oggfile.h"
+
+/* Info on how to implement new file formats: see mp3file.c for more info */
+
+#ifdef HAVE_LIBVORBISFILE
+/* Ogg/Vorbis library (www.xiph.org) */
+#include <sys/types.h>
+#include <sys/param.h>
+#include <inttypes.h>
+#include <stdlib.h>
+#include <string.h>
+#include "vorbis/vorbisfile.h"
+#include "prefs.h"
+
+Track *ogg_get_file_info (gchar *oggFileName)
+{
+    Track *track = NULL;
+    FILE *file= NULL;
+
+    file=fopen(oggFileName, "rb");
+    
+    if (file == NULL)
+    {
+	gchar *filename = charset_to_utf8 (oggFileName);
+	gtkpod_warning (
+	    _("Could not open '%s' for reading.\n"),
+	    filename);
+	g_free (filename);
+    }
+    else
+    {
+        OggVorbis_File oggFile;
+        if (ov_open(file, &oggFile, NULL , 0)!=0)
+        {
+	    gchar *filename=NULL;
+            filename= charset_to_utf8 (oggFileName);
+	    gtkpod_warning (_("'%s' does not appear to be an ogg audio file.\n"),
+			    filename);
+	    g_free (filename);
+	    fclose(file);
+	}
+        else
+        {
+	    track = gp_track_new ();
+	    track->description = g_strdup ("OGG audio file");
+            vorbis_info *vi=ov_info(&oggFile,-1);
+            /*FIXME: if (!vi) */
+            track->bitrate=vi->bitrate_nominal/1000;
+            track->samplerate=vi->rate;
+            track->tracklen=(ov_time_total(&oggFile,-1))*1000; /* in seconds */
+	    if (prefs_get_int("readtags"))
+	    {
+                vorbis_comment *vc=ov_comment(&oggFile,-1);
+                if (vc) {
+                    char *str;
+                    if ((str=vorbis_comment_query(vc,"artist",0))!=NULL){
+                        track->artist=charset_to_utf8(str);
+                    }
+                    if ((str=vorbis_comment_query(vc,"album",0))!=NULL){
+                        track->album=charset_to_utf8(str);
+                    }
+                    if ((str=vorbis_comment_query(vc,"title",0))!=NULL){
+                        track->title=charset_to_utf8(str);
+                    }
+                    if ((str=vorbis_comment_query(vc,"genre",0))!=NULL){
+                        track->genre=charset_to_utf8(str);
+                    }
+                    if ((str=vorbis_comment_query(vc,"year",0))!=NULL){
+                        track->year=atoi(str);
+                    }
+                    if ((str=vorbis_comment_query(vc,"tracknumber",0))!=NULL){
+		        track->track_nr = atoi(str);
+                    }
+                    if ((str=vorbis_comment_query(vc,"composer",0))!=NULL){
+		        track->composer = charset_to_utf8(str);
+                    }
+                    if ((str=vorbis_comment_query(vc,"comment",0))!=NULL){
+		        track->comment = charset_to_utf8(str);
+                    }
+                    if ((str=vorbis_comment_query(vc,"tracks",0))!=NULL){
+		        track->tracks = atoi(str);
+                    }
+                    if ((str=vorbis_comment_query(vc,"cdnr",0))!=NULL){
+		        track->cd_nr = atoi(str);
+                    }
+                    if ((str=vorbis_comment_query(vc,"cds",0))!=NULL){
+		        track->cds = atoi(str);
+                    }
+		    /* I'm not sure if "bpm" is correct */ 
+                    if ((str=vorbis_comment_query(vc,"bpm",0))!=NULL){
+		        track->BPM = atoi(str);
+                    }
+                }
+                    
+            }
+            ov_clear(&oggFile); /* performs the fclose(file); */
+            /* TODO: immediate conversion if thread ? */
+	}
+    }
+    
+    return track;
+}
+
+gboolean ogg_write_file_info (gchar *oggFileName, Track *track)
+{
+    gboolean result=FALSE;
+    /*FIXME: seems to be not easy with common API. all other projects 
+     * are using vcedit.ch from vorbis-tools (vorbiscomment). Maybe 
+     * using a library could help. LibTag looks good... */
+    printf("Not supported yet\n");
+    return result;
+}
+
+#else
+/* We don't support ogg without the vorbisfile library */
+Track *ogg_get_file_info (gchar *name)
+{
+    gtkpod_warning (_("Import of '%s' failed: ogg not supported without the ogg library. You must compile the gtkpod source together with the ogg library.\n"), name);
+    return NULL;
+}
+
+gboolean ogg_write_file_info (gchar *filename, Track *track)
+{
+    gtkpod_warning (_("ogg metadata update for '%s' failed: ogg not supported without the ogg library. You must compile the gtkpod source together with the ogg library.\n"), filename);
+    return FALSE;
+}
+#endif

Copied: gtkpod/trunk/src/oggfile.h (from rev 193, gtkpod/branches/upstream/current/src/oggfile.h)
===================================================================
--- gtkpod/trunk/src/oggfile.h	                        (rev 0)
+++ gtkpod/trunk/src/oggfile.h	2007-06-27 21:27:12 UTC (rev 194)
@@ -0,0 +1,36 @@
+/* Time-stamp: <2005-01-07 23:51:33 jcs>
+|
+|  Copyright (C) 2002-2003 Jorg Schuler <jcsjcs at users.sourceforge.net>
+|  Part of the gtkpod project.
+|
+|  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: oggfile.h 954 2007-01-16 09:45:00Z jcsjcs $
+*/
+
+#ifndef OGGFILEH_INCLUDED
+#define OGGFILEH_INCLUDED 1
+
+#include "itdb.h"
+
+gboolean ogg_write_file_info (gchar *filename, Track *track);
+Track *ogg_get_file_info (gchar *name);
+#endif

Modified: gtkpod/trunk/src/podcast.c
===================================================================
--- gtkpod/trunk/src/podcast.c	2007-06-27 20:59:02 UTC (rev 193)
+++ gtkpod/trunk/src/podcast.c	2007-06-27 21:27:12 UTC (rev 194)
@@ -24,6 +24,6 @@
 |
 |  This product is not supported/written/published by Apple!
 |
-|  $Id: podcast.c,v 1.10 2006/05/21 03:46:45 jcsjcs Exp $
+|  $Id: podcast.c 756 2006-05-21 03:46:45Z jcsjcs $
 */
 

Modified: gtkpod/trunk/src/podcast.h
===================================================================
--- gtkpod/trunk/src/podcast.h	2007-06-27 20:59:02 UTC (rev 193)
+++ gtkpod/trunk/src/podcast.h	2007-06-27 21:27:12 UTC (rev 194)
@@ -24,7 +24,7 @@
 |
 |  This product is not supported/written/published by Apple!
 |
-|  $Id: podcast.h,v 1.8 2006/05/21 03:46:45 jcsjcs Exp $
+|  $Id: podcast.h 756 2006-05-21 03:46:45Z jcsjcs $
 */
 
 #ifndef __PODCAST_H__

Modified: gtkpod/trunk/src/prefs.c
===================================================================
--- gtkpod/trunk/src/prefs.c	2007-06-27 20:59:02 UTC (rev 193)
+++ gtkpod/trunk/src/prefs.c	2007-06-27 21:27:12 UTC (rev 194)
@@ -1,6 +1,5 @@
-/* Time-stamp: <2006-09-24 20:49:39 jcs>
-|
-|  Copyright (C) 2002-2005 Jorg Schuler <jcsjcs at users sourceforge net>
+/*
+|  Copyright (C) 2002-2007 Jorg Schuler <jcsjcs at users sourceforge net>
 |  Copyright (C) 2006 James Liggett <jrliggett at cox.net>
 |  Part of the gtkpod project.
 |
@@ -25,7 +24,7 @@
 |
 |  This product is not supported/written/published by Apple!
 |
-|  $Id: prefs.c,v 1.270 2006/09/24 12:16:26 jcsjcs Exp $
+|  $Id: prefs.c 1550 2007-06-17 14:14:38Z jcsjcs $
 */
 
 /* -------------------------------------------------------------------
@@ -51,7 +50,19 @@
  *
  * ---------------------------------------------------------------- */
 
+/* ----------------------------------------------------------------
+ *
+ * The prefs module should be thread safe. The hash table is locked
+ * before each read or write access.
+ *
+ * The temp_prefs module is not thread-safe. If necessary a locking
+ * mechanism can be implemented.
+ *
+ * ---------------------------------------------------------------- */
 
+
+
+
 /* This tells Alpha OSF/1 not to define a getopt prototype in <stdio.h>.
    Ditto for AIX 3.2 and <stdlib.h>.  */
 #ifndef _NO_PROTO
@@ -62,13 +73,9 @@
 #  include <config.h>
 #endif
 
-#include <ctype.h>
 #include <stdio.h>
-#include <stdlib.h>
 #include <string.h>
-#include <unistd.h>
-#include <sys/stat.h>
-#include <sys/types.h>
+#include <glib/gstdio.h>
 #ifdef HAVE_GETOPT_LONG_ONLY
 #  include <getopt.h>
 #else
@@ -76,14 +83,9 @@
 #endif
 
 #include "clientserver.h"
-#include "display.h"
-#include "info.h"
 #include "misc.h"
-#include "misc_track.h"
 #include "prefs.h"
 
-/* New prefs backend. Will replace stuff above */
-
 /*
  * Data global to this module only
  */
@@ -91,6 +93,13 @@
 /* End-of-list marker for variable-length lists */
 #define LIST_END_MARKER "----++++----"
 
+struct temp_prefs_save
+{
+    GIOChannel *gio;
+    GError **error;
+    gboolean success;
+};
+
 struct sub_data
 {
     TempPrefs *temp_prefs;
@@ -100,8 +109,9 @@
     gboolean exists;
 };
 
-/* Pointer to prefrences hash table */
+/* Pointer to preferences hash table */
 static GHashTable *prefs_table = NULL;
+static GMutex *prefs_table_mutex = NULL;
 
 /*
  * Functions used by this module only
@@ -128,14 +138,31 @@
   GP_HELP,
   GP_PLAYCOUNT,
   GP_MOUNT,
-  GP_AUTO,
+  GP_PRINT_HASH,
 };
 
-/* Set default prefrences */
+
+/* Lock the prefs table. If the table is already locked the calling
+ * thread will remain blocked until the lock is released by the other thread. */
+static void lock_prefs_table ()
+{
+    g_return_if_fail (prefs_table_mutex);
+    g_mutex_lock (prefs_table_mutex);
+}
+
+/* Unlock the prefs table again. */
+static void unlock_prefs_table ()
+{
+    g_return_if_fail (prefs_table_mutex);
+    g_mutex_unlock (prefs_table_mutex);
+}
+
+
+/* Set default preferences */
 static void set_default_preferences()
 {
     int i;
-    gchar *dir; /* Last directory browsed to */
+    gchar *str;
 
     prefs_set_int("update_existing", FALSE);
     prefs_set_int("id3_write", FALSE);
@@ -155,7 +182,23 @@
     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/");
-  
+
+    str = g_build_filename (SCRIPTDIR, "convert-ogg2mp3.sh", NULL);
+    prefs_set_string ("path_conv_ogg", str);
+    g_free (str);
+    prefs_set_int ("convert_ogg", TRUE);
+
+    str = g_build_filename (SCRIPTDIR, "convert-flac2mp3.sh", NULL);
+    prefs_set_string ("path_conv_flac", str);
+    g_free (str);
+    prefs_set_int ("convert_flac", TRUE);
+
+    str = g_build_filename (SCRIPTDIR, "convert-wav2mp3.sh", NULL);
+    prefs_set_string ("path_conv_wav", str);
+    g_free (str);
+    prefs_set_int ("convert_wav", FALSE);
+
+
     /* Set sorting tab defaults */
     for (i = 0; i < SORT_TAB_MAX; i++)
     {
@@ -178,7 +221,7 @@
     
     prefs_set_int("sort_tab_num", 2);
     
-    /* Set colum prefrences */
+    /* Set colum preferences */
     for (i = 0; i < TM_NUM_COLUMNS; i++)
     {
 	prefs_set_int_index("tm_col_width", i, 80);
@@ -220,7 +263,14 @@
     prefs_set_int("size_info.x", 510);
     prefs_set_int("size_info.y", 300);
 
-    prefs_set_int("autoimport", FALSE);
+    /* size of file dialog if there is not a details textview */
+    prefs_set_int("size_file_dialog.x", 320);
+    prefs_set_int("size_file_dialog.y", 140);
+
+    /* size of file dialog if there is a details textview */
+    prefs_set_int("size_file_dialog_details.x", 320);
+    prefs_set_int("size_file_dialog_details.y", 140);
+
     prefs_set_int("readtags", TRUE);
     prefs_set_int("write_extended_info", TRUE);
     prefs_set_int("parsetags", FALSE);
@@ -235,7 +285,6 @@
     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);
@@ -245,17 +294,17 @@
     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_int("sha1", TRUE);
     prefs_set_string("export_template", "%o;%a - %t.mp3;%t.wav");
+    prefs_set_int("file_dialog_details_expanded", FALSE);
 
     /* Set last browsed directory */
-    dir = g_get_current_dir();
+    str = g_get_current_dir();
 
-    if (dir)
+    if (str)
     {
-	prefs_set_string("last_dir_browsed", dir);
-	g_free(dir);
+	prefs_set_string("last_dir_browsed", str);
+	g_free(str);
     }
     else
 	prefs_set_string("last_dir_browsed", g_get_home_dir());
@@ -266,7 +315,7 @@
     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);
+    prefs_set_int("tm_sort", SORT_NONE);
 }
 
 /* Initialize default variable-length list entries */
@@ -306,7 +355,8 @@
 {
   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, _("  -p <file>:    increment playcount for file by one\n"));
+  locale_fprintf(fp, _("  --hash <file>:print gtkpod hash for file\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"));
@@ -323,11 +373,10 @@
 	{
 	    { "h",           no_argument,	NULL, GP_HELP },
 	    { "help",        no_argument,	NULL, GP_HELP },
-	    { "p",           required_argument,       NULL, GP_PLAYCOUNT },
+	    { "p",           required_argument, NULL, GP_PLAYCOUNT },
+	    { "hash",        required_argument, NULL, GP_PRINT_HASH },
 	    { "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 }
 	};
 	
@@ -344,12 +393,13 @@
 	    client_playcount(optarg);
 	    exit(0);
 	    break;
+	case GP_PRINT_HASH:
+	    print_sha1_hash (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);
@@ -458,7 +508,7 @@
 
 /* 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)
+static gboolean get_subset (gpointer key, gpointer value, gpointer user_data)
 {
     struct sub_data *sub_data = user_data;
 
@@ -505,9 +555,9 @@
 	
     if (!g_file_test(folder, G_FILE_TEST_IS_DIR))
     {
-	if ((mkdir(folder, 0755)) == -1)
+	if ((g_mkdir(folder, 0777)) == -1)
 	{
-	    printf("Couldn't create ~/.gtkpod");
+	    printf(_("Couldn't create ~/.gtkpod\n"));
 	    return NULL;
 	}
     }
@@ -515,55 +565,65 @@
     return folder;
 }
 
+
+/* get @key and @value from a string like "key=value" */
+static gboolean read_prefs_get_key_value (const gchar *buf,
+					  gchar **key, gchar **value)
+{
+    size_t len;  /* string length */
+    const gchar *buf_start; /* Pointer to where actual useful data starts in line */
+
+    g_return_val_if_fail (buf && key && value, FALSE);
+
+    /* Strip out any comments (lines that begin with ; or #) */
+    if ((buf[0] == ';') || (buf[0] == '#')) 
+	return FALSE;
+
+    /* Find the key and value, and look for malformed lines */
+    buf_start = strchr (buf, '=');
+
+    if ((!buf_start) || (buf_start == buf))
+    {
+	printf("Parse error reading prefs: %s", buf);
+	return FALSE;
+    }
+
+    /* Find the key name */
+    *key = g_strndup (buf, (buf_start - buf));
+
+    /* Strip whitespace */
+    g_strstrip (*key);
+
+    /* Find the value string */
+    *value = strdup (buf_start+1);
+
+    /* remove newline */
+    len = strlen (*value);
+    if ((len > 0) && ((*value)[len - 1] == 0x0a))
+	(*value)[len - 1] = 0;
+
+    /* Don't strip whitespace! If there is any, there's a reason for it. */
+    /* g_strstrip (*value); */
+
+    return TRUE;
+}
+
+
 /* Read preferences from a file */
 static void read_prefs_from_file(FILE *fp)
 {
     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)
+
+
+    g_return_if_fail (prefs_table && fp);
+
+    while (fgets(buf, PATH_MAX, fp))
     {
-	while (fgets(buf, PATH_MAX, fp))
+	if (read_prefs_get_key_value (buf, &key, &value))
 	{
-	    /* 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));
-	    }
+	    g_hash_table_insert (prefs_table, key, value);
 	}
     }
 }
@@ -571,8 +631,17 @@
 /* Write prefs to file */
 static void write_prefs_to_file(FILE *fp)
 {
-    if (prefs_table)
-	g_hash_table_foreach(prefs_table, write_key, (gpointer)fp);
+    lock_prefs_table ();
+
+    if (!prefs_table)
+    {
+	unlock_prefs_table ();
+	g_return_if_reached ();
+    }
+
+    g_hash_table_foreach(prefs_table, write_key, (gpointer)fp);
+
+    unlock_prefs_table ();
 }
 
 /* Load preferences, first loading the defaults, and then overwrite that with
@@ -616,7 +685,7 @@
 }
 
 /* Save preferences to user home folder (~/gtkpod/prefs) */
-static void save_prefs()
+void prefs_save ()
 {
     gchar *filename;  /* Path of file to write to */
     gchar *config_dir;   /* Folder where prefs file is */
@@ -646,6 +715,98 @@
     }
 }
 
+
+static gboolean temp_prefs_save_fe (gchar *key, gchar *value,
+				    struct temp_prefs_save *tps)
+{
+    gchar *buf;
+    GIOStatus status;
+
+    buf=g_strdup_printf ("%s=%s\n", key, value);
+    status = g_io_channel_write_chars (tps->gio, buf, -1, NULL, tps->error);
+    g_free (buf);
+    if (status != G_IO_STATUS_NORMAL)
+    {
+	tps->success = FALSE;
+	return TRUE;  /* stop traversal */
+    }
+    return FALSE;
+}
+
+
+/* Save @temp_prefs to @filename in the same manner as prefs_save is
+ * saving to ~/.gtkpod/prefs. @error: location where to store
+ * information about errors or NULL.
+ * 
+ * Return value: TRUE on success, FALSE if an error occured, in which
+ * case @error will be set accordingly.
+ */
+gboolean temp_prefs_save (TempPrefs *temp_prefs,
+			  const gchar *filename,
+			  GError **error)
+{
+    GIOChannel *gio;
+    struct temp_prefs_save tps;
+
+    g_return_val_if_fail (temp_prefs && filename, FALSE);
+
+    gio = g_io_channel_new_file (filename, "w", error);
+    tps.gio = gio;
+    tps.error = error;
+    tps.success = TRUE;
+    if (gio)
+    {
+	g_tree_foreach (temp_prefs->tree, (GTraverseFunc)temp_prefs_save_fe, &tps);
+	g_io_channel_unref (gio);
+    }
+
+    return tps.success;
+}
+
+
+TempPrefs *temp_prefs_load (const gchar *filename, GError **error)
+{
+    GIOChannel *gio;
+    TempPrefs *temp_prefs = NULL;
+
+    g_return_val_if_fail (filename, NULL);
+
+    gio = g_io_channel_new_file (filename, "r", error);
+    if (gio)
+    {
+	GIOStatus status;
+
+	temp_prefs = temp_prefs_create ();
+
+	do
+	{
+	    gchar *line;
+
+	    status = g_io_channel_read_line (gio, &line, NULL, NULL, error);
+	    if (status == G_IO_STATUS_NORMAL)
+	    {
+		gchar *key, *value;
+		if (read_prefs_get_key_value (line, &key, &value))
+		{
+		    temp_prefs_set_string (temp_prefs, key, value);
+		}
+		g_free (line);
+	    }
+	} while (status == G_IO_STATUS_NORMAL);
+
+	g_io_channel_unref (gio);
+
+	if (status != G_IO_STATUS_EOF)
+	{
+	    temp_prefs_destroy (temp_prefs);
+	    temp_prefs = NULL;
+	}
+    }
+
+    return temp_prefs;
+}
+
+
 /* Removes already existing list keys from the prefs table */
 static void wipe_list(const gchar *key)
 {
@@ -701,9 +862,24 @@
 	prefs_set_string("coverart", NULL);
     }
   
+    /* rename tm_sort_ to tm_sort */
+    if (prefs_get_string_value("tm_sort_", &buf))
+    {
+	prefs_set_string("tm_sort", buf);
+	g_free(buf);
+	prefs_set_string("tm_sort_", NULL);
+    }
+
+    /* rename md5 to sha1 */
+    if (prefs_get_string_value("md5", &buf))
+    {
+	prefs_set_string("sha1", buf);
+	g_free(buf);
+	prefs_set_string("md5", NULL);
+    }
+
     /* Convert old path numbered keys to named ones */
   
-  
     /* Play Now */
     if (prefs_get_string_value_index("path", PATH_PLAY_NOW, &buf))
     {
@@ -854,8 +1030,16 @@
     prefs_set_string("fix_path", NULL);
     prefs_set_string("write_gaintag", NULL);
     prefs_set_string("automount", NULL);
+    prefs_set_string("display_artcovers", NULL);
+    prefs_set_string("block_display", NULL);
+    prefs_set_string("tmp_disable_sort", NULL);
+    prefs_set_string("size_file_dialog.x", NULL);
+    prefs_set_string("size_file_dialog.y", NULL);
+    prefs_set_string("size_file_dialog_details.x", NULL);
+    prefs_set_string("size_file_dialog_details.y", NULL);
+    prefs_set_string("autoimport", NULL);
+    prefs_set_string("auto_import", NULL);
 
-
     /* sp_created_cond renamed to sp_added_cond */
     for (i = 0; i < SORT_TAB_MAX; i++)
     {
@@ -926,13 +1110,6 @@
 	prefs_set_string("size_info.y", NULL);
     }
     
-    /* auto_import reanmed to autoimport */
-    if (prefs_get_int_value("auto_import", &int_buf))
-    {
-	prefs_set_int("autoimport", int_buf);
-	prefs_set_string("auto_import", NULL);
-    }
-
     /* not_played_song renamed to not_played_track */
     if (prefs_get_int_value("not_played_song", &int_buf))
     {
@@ -964,7 +1141,7 @@
     /* sm_sort_ renamed to tm_sort */
     if (prefs_get_int_value("sm_sort_", &int_buf))
     {
-	prefs_set_int("tm_sort_", int_buf);
+	prefs_set_int("tm_sort", int_buf);
 	prefs_set_string("sm_sort_", NULL);
     }
 
@@ -979,9 +1156,11 @@
     /* This string was a wrong autoconvert--just ignore it */
     buf = prefs_get_string("export_template");
     
-    if (strcmp(buf, "%a - %a/%T - %T.mp3") == 0)
+    if (buf && strcmp(buf, "%a - %a/%T - %T.mp3") == 0)
 	prefs_set_string("export_template", NULL);
 
+    g_free (buf);
+
     /* We changed the meaning of the %x in export_template */
     if (version < 0.72)
     {
@@ -1017,23 +1196,20 @@
     prefs_set_string ("version", VERSION);
 }
 
-/* Do things that need to be done before saving prefs */
-static void finalize_prefs()
+/* Initialize the prefs table and read configuration */
+void prefs_init (int argc, char *argv[])
 {
-  /* Sort column order needs to be stored */
-  tm_store_col_order();
-  
-  /* Update default sizes */
-  display_update_default_sizes();
-}
+    if (!prefs_table_mutex)
+	prefs_table_mutex = g_mutex_new ();
 
-/* Initialize the prefs table and read configuration */
-void init_prefs(int argc, char *argv[])
-{
+    lock_prefs_table ();
+
     /* Create the prefs hash table */
     prefs_table = g_hash_table_new_full(g_str_hash, g_str_equal, g_free,
 					g_free);
-	
+
+    unlock_prefs_table ();
+
     /* Load preferences */
     load_prefs();
 
@@ -1047,26 +1223,29 @@
     read_commandline(argc, argv);  
 }
 
-/* Save prefs data to a file, and then delete the hash table */
-void cleanup_prefs()
+/* Delete the hash table */
+void prefs_shutdown ()
 {
-    if (prefs_table)
+    lock_prefs_table ();
+
+    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;
+	unlock_prefs_table ();
+	g_return_if_reached ();
     }
+
+    /* Delete the prefs hash table */
+    g_hash_table_destroy(prefs_table);
+    prefs_table = NULL;
+
+    unlock_prefs_table ();
+
+    /* We can't free the prefs_table_mutex in a thread-safe way */
 }
 
 /* Create the temp prefs tree */
 /* Free the returned structure with delete_temp_prefs() */
-TempPrefs *temp_prefs_create()
+TempPrefs *temp_prefs_create ()
 {
     TempPrefs *temp_prefs;  /* Retunred temp prefs structure */
 
@@ -1079,7 +1258,7 @@
 }
 
 /* Delete temp prefs */
-void temp_prefs_destroy(TempPrefs *temp_prefs)
+void temp_prefs_destroy (TempPrefs *temp_prefs)
 {
     g_return_if_fail (temp_prefs);
     g_return_if_fail (temp_prefs->tree);
@@ -1089,7 +1268,7 @@
 }
 
 /* Copy key data from the temp prefs tree to the hash table */
-static gboolean copy_key(gpointer key, gpointer value, gpointer user_data)
+static gboolean copy_key (gpointer key, gpointer value, gpointer user_data)
 {
     prefs_set_string(key, value);
 	
@@ -1097,7 +1276,7 @@
 }
 
 /* Copy the data from the temp prefs tree to the permanent prefs table */
-void temp_prefs_apply(TempPrefs *temp_prefs)
+void temp_prefs_apply (TempPrefs *temp_prefs)
 {
     g_return_if_fail (temp_prefs);
     g_return_if_fail (temp_prefs->tree);
@@ -1108,7 +1287,7 @@
 
 /* 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)
+static TempPrefs *prefs_create_subset_unlocked (const gchar *subkey)
 {
     struct sub_data sub_data;
 
@@ -1122,7 +1301,22 @@
     return sub_data.temp_prefs;
 }
 
+/* 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)
+{
+    TempPrefs *temp_prefs;
 
+    lock_prefs_table ();
+
+    temp_prefs = prefs_create_subset_unlocked (subkey);
+
+    unlock_prefs_table ();
+
+    return temp_prefs;
+}
+
+
 /* 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,
@@ -1144,12 +1338,16 @@
 
 /* Remove all keys in the temp prefs tree from the permanent prefs
    table */
-void temp_prefs_flush(TempPrefs *temp_prefs)
+void temp_prefs_flush (TempPrefs *temp_prefs)
 {
     g_return_if_fail (temp_prefs);
     g_return_if_fail (temp_prefs->tree);
 
+    lock_prefs_table ();
+
     g_tree_foreach (temp_prefs->tree, flush_key, NULL);
+
+    unlock_prefs_table ();
 }
 
 /* Return the number of keys stored in @temp_prefs */
@@ -1185,9 +1383,17 @@
 /* Remove all keys that start with @subkey */
 void prefs_flush_subkey (const gchar *subkey)
 {
-    g_return_if_fail (prefs_table);
+    lock_prefs_table ();
 
+    if (!prefs_table)
+    {
+	unlock_prefs_table ();
+	g_return_if_reached ();
+    }
+
     g_hash_table_foreach_remove (prefs_table, match_subkey, (gchar *)subkey);
+
+    unlock_prefs_table ();
 }
 
 
@@ -1196,11 +1402,18 @@
 void prefs_rename_subkey (const gchar *subkey_old, const gchar *subkey_new){
     struct sub_data sub_data;
 
-    g_return_if_fail (prefs_table);
     g_return_if_fail (subkey_old);
     g_return_if_fail (subkey_new);
 
-    sub_data.temp_prefs = prefs_create_subset (subkey_old);
+    lock_prefs_table ();
+
+    if (!prefs_table)
+    {
+	unlock_prefs_table ();
+	g_return_if_reached ();
+    }
+
+    sub_data.temp_prefs = prefs_create_subset_unlocked (subkey_old);
     sub_data.temp_prefs_orig = NULL;
 
     if (temp_prefs_size (sub_data.temp_prefs) > 0)
@@ -1211,6 +1424,8 @@
     }
 
     temp_prefs_destroy (sub_data.temp_prefs);
+
+    unlock_prefs_table ();
 }
 
 
@@ -1248,14 +1463,21 @@
 {
     g_return_if_fail (key);
 
-    if (prefs_table)
+    lock_prefs_table ();
+
+    if (!prefs_table)
     {
-	if (value)
-	    g_hash_table_insert (prefs_table,
-				 g_strdup(key), g_strdup(value));
-	else
-	    g_hash_table_remove (prefs_table, key);
+	unlock_prefs_table ();
+	g_return_if_reached ();
     }
+
+    if (value)
+	g_hash_table_insert (prefs_table,
+			     g_strdup(key), g_strdup(value));
+    else
+	g_hash_table_remove (prefs_table, key);
+
+    unlock_prefs_table ();
 }
 
 /* Set a key value to a given integer */
@@ -1263,11 +1485,18 @@
 {
     gchar *strvalue; /* String value converted from integer */
 
-    if (prefs_table)
+    lock_prefs_table ();
+
+    if (!prefs_table)
     {
-	strvalue = g_strdup_printf("%i", value);
-	g_hash_table_insert(prefs_table, g_strdup(key), strvalue);
+	unlock_prefs_table ();
+	g_return_if_reached ();
     }
+
+    strvalue = g_strdup_printf("%i", value);
+    g_hash_table_insert(prefs_table, g_strdup(key), strvalue);
+
+    unlock_prefs_table ();
 }
 
 /* Set a key to an int64 value */
@@ -1275,49 +1504,75 @@
 {
     gchar *strvalue; /* String value converted from int64 */
 	
-    if (prefs_table)
+    lock_prefs_table ();
+
+    if (!prefs_table)
     {
-	strvalue = g_strdup_printf("%llu", value);
-	g_hash_table_insert(prefs_table, g_strdup(key), strvalue);	
+	unlock_prefs_table ();
+	g_return_if_reached ();
     }
+
+    strvalue = g_strdup_printf("%" G_GINT64_FORMAT, value);
+    g_hash_table_insert(prefs_table, g_strdup(key), strvalue);	
+
+    unlock_prefs_table ();
 }
 
 void prefs_set_double(const gchar *key, gdouble value)
 {
     gchar *strvalue; /* String value converted from integer */
 
-    if (prefs_table)
+    lock_prefs_table ();
+
+    if (!prefs_table)
     {
-	strvalue = g_strdup_printf("%f", value);
-	g_hash_table_insert(prefs_table, g_strdup(key), strvalue);
+	unlock_prefs_table ();
+	g_return_if_reached ();
     }
+
+    strvalue = g_strdup_printf("%f", value);
+    g_hash_table_insert(prefs_table, g_strdup(key), strvalue);
+
+    unlock_prefs_table ();
 }
 
 /* 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;
+{
+    gchar *string = NULL;
+
+    lock_prefs_table ();
+
+    g_return_val_if_fail (prefs_table, (unlock_prefs_table(), NULL));
+
+    string = g_strdup(g_hash_table_lookup(prefs_table, key));
+
+    unlock_prefs_table ();
+
+    return string;
 }
 
 /* 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)
 {
-    gchar *string;  /* String value from prefs table */
-	
-    if (prefs_table)
-    {
-	string = g_hash_table_lookup(prefs_table, key);
+    const gchar *string;  /* String value from prefs table */
+    gboolean valid = FALSE;
+
+    lock_prefs_table ();
+
+    g_return_val_if_fail (prefs_table, (unlock_prefs_table(), FALSE));
+
+    string = g_hash_table_lookup(prefs_table, key);
 		
-	if (value)
-	    *value = g_strdup (string);
-	if (string)
-	    return TRUE;
-    }
-    return FALSE;
+    if (value)
+	*value = g_strdup (string);
+    if (string)
+	valid = TRUE;
+
+    unlock_prefs_table ();
+
+    return valid;
 }
 
 /* Get an integer value from a key */
@@ -1328,14 +1583,17 @@
 	
     value = 0;
 	
-    if (prefs_table)
-    {
-	string = g_hash_table_lookup(prefs_table, key);
+    lock_prefs_table ();
+
+    g_return_val_if_fail (prefs_table, (unlock_prefs_table(), value));
+
+    string = g_hash_table_lookup(prefs_table, key);
 		
-	if (string)
-	    value = atoi(string);
-    }
+    if (string)
+	value = atoi(string);
 
+    unlock_prefs_table ();
+
     return value;
 }
 
@@ -1344,23 +1602,28 @@
 gboolean prefs_get_int_value(const gchar *key, gint *value)
 {
     gchar *string;  /* String value from prefs table */
-	
-    if (prefs_table)
-    {
-	string = g_hash_table_lookup(prefs_table, key);
+    gboolean valid = FALSE;
 
-	if (value)
-	{
-	    if (string)
-		*value = atoi(string);
-	    else
-		*value = 0;
-	}
+    lock_prefs_table ();
 
+    g_return_val_if_fail (prefs_table, (unlock_prefs_table(), FALSE));
+
+    string = g_hash_table_lookup(prefs_table, key);
+
+    if (value)
+    {
 	if (string)
-	    return TRUE;
+	    *value = atoi(string);
+	else
+	    *value = 0;
     }
-    return FALSE;
+
+    if (string)
+	valid = TRUE;
+
+    unlock_prefs_table ();
+
+    return valid;
 }
 
 /* Get a 64 bit integer value from a key */
@@ -1371,13 +1634,16 @@
 	
     value = 0;
 
-    if (prefs_table)
-    {
-	string = g_hash_table_lookup(prefs_table, key);
+    lock_prefs_table ();
 
-	if (string)
-	    value = g_ascii_strtoull(string, NULL, 10);
-    }
+    g_return_val_if_fail (prefs_table, (unlock_prefs_table(), value));
+
+    string = g_hash_table_lookup(prefs_table, key);
+
+    if (string)
+	value = g_ascii_strtoull(string, NULL, 10);
+
+    unlock_prefs_table ();
 	
     return value;
 }
@@ -1388,20 +1654,28 @@
 gboolean prefs_get_int64_value(const gchar *key, gint64 *value)
 {
     gchar *string;  /* String value from prefs table */
-	
-    if (prefs_table)
+    gboolean valid = FALSE;
+
+    lock_prefs_table ();
+
+    g_return_val_if_fail (prefs_table, (unlock_prefs_table(), FALSE));
+
+    string = g_hash_table_lookup(prefs_table, key);
+		
+    if (value)
     {
-	string = g_hash_table_lookup(prefs_table, key);
-		
 	if (string)
-	{
-	    if (value)
-		*value = g_ascii_strtoull(string, NULL, 10);
-			
-	    return TRUE;
-	}
+	    *value = g_ascii_strtoull(string, NULL, 10);
+	else
+	    *value = 0;
     }
-    return FALSE;
+
+    if (string)
+	valid = TRUE;
+
+    unlock_prefs_table ();
+
+    return valid;
 }
 
 gdouble prefs_get_double(const gchar *key)
@@ -1411,13 +1685,16 @@
 	
     value = 0;
 
-    if (prefs_table)
-    {
-	string = g_hash_table_lookup(prefs_table, key);
+    lock_prefs_table ();
 
-	if (string)
-	    value = g_ascii_strtod(string, NULL);
-    }
+    g_return_val_if_fail (prefs_table, (unlock_prefs_table(), value));
+
+    string = g_hash_table_lookup(prefs_table, key);
+
+    if (string)
+	value = g_ascii_strtod(string, NULL);
+
+    unlock_prefs_table ();
 	
     return value;
 }
@@ -1425,20 +1702,28 @@
 gboolean prefs_get_double_value(const gchar *key, gdouble *value)
 {
     gchar *string;  /* String value from prefs table */
-	
-    if (prefs_table)
+    gboolean valid = FALSE;
+
+    lock_prefs_table ();
+
+    g_return_val_if_fail (prefs_table, (unlock_prefs_table(), FALSE));
+
+    string = g_hash_table_lookup(prefs_table, key);
+
+    if (value)
     {
-	string = g_hash_table_lookup(prefs_table, key);
-		
 	if (string)
-	{
-	    if (value)
-		*value = g_ascii_strtod(string, NULL);
-			
-	    return TRUE;
-	}
+	    *value = g_ascii_strtod(string, NULL);
+	else
+	    *value = 0;
     }
-    return FALSE;
+
+    if (string)
+	valid = TRUE;
+
+    unlock_prefs_table ();
+
+    return valid;
 }
 
 /* Functions for numbered pref keys */
@@ -1604,7 +1889,7 @@
  * 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, 
+void temp_prefs_set_string (TempPrefs *temp_prefs, const gchar *key, 
 			   const gchar *value)
 {
     g_return_if_fail (temp_prefs && temp_prefs->tree);
@@ -1645,7 +1930,7 @@
     g_return_if_fail (temp_prefs && temp_prefs->tree);
     g_return_if_fail (key);
 
-    strvalue = g_strdup_printf("%llu", value);
+    strvalue = g_strdup_printf("%" G_GINT64_FORMAT, value);
     g_tree_insert(temp_prefs->tree, g_strdup(key), strvalue);
 }
 

Modified: gtkpod/trunk/src/prefs.h
===================================================================
--- gtkpod/trunk/src/prefs.h	2007-06-27 20:59:02 UTC (rev 193)
+++ gtkpod/trunk/src/prefs.h	2007-06-27 21:27:12 UTC (rev 194)
@@ -1,6 +1,5 @@
-/* Time-stamp: <2006-06-25 15:57:02 jcs>
-|
-|  Copyright (C) 2002-2005 Jorg Schuler <jcsjcs at users sourceforge net>
+/*
+|  Copyright (C) 2002-2007 Jorg Schuler <jcsjcs at users sourceforge net>
 |  Copyright (C) 2006 James Liggett <jrliggett at cox.net>
 |  Part of the gtkpod project.
 | 
@@ -25,7 +24,7 @@
 |
 |  This product is not supported/written/published by Apple!
 |
-|  $Id: prefs.h,v 1.192 2006/06/27 03:55:00 freethinkerjim Exp $
+|  $Id: prefs.h 1070 2007-05-11 15:41:53Z jcsjcs $
 */
 
 #ifndef __PREFS_H__
@@ -56,14 +55,15 @@
 extern const gchar *KEY_PATH_SYNC_NOTES;
 extern const gchar *KEY_SYNCMODE;
 extern const gchar *KEY_MANUAL_SYNCDIR;
+extern const gchar *KEY_DISPLAY_COVERART;
 
 /* New prefs backend. Will replace the stuff above */
 
 /* 
- * Wrapper data types for temp prefrences
+ * Wrapper data types for temp preferences
  */
 
-/* A wrapper around a GTree for regular temporary prefrences */
+/* A wrapper around a GTree for regular temporary preferences */
 typedef struct 
 {
 	GTree *tree;
@@ -76,15 +76,16 @@
 } TempLists;
 
 /* Prefrences setup and cleanup */
-void init_prefs(int argc, char *argv[]);
-void cleanup_prefs();
+void prefs_init (int argc, char *argv[]);
+void prefs_save (void);
+void prefs_shutdown (void);
 
 /*
- * Functions that are used to manipulate prefrences.
- * The prefrences table shouldn't be modified directly.
+ * Functions that are used to manipulate preferences.
+ * The preferences table shouldn't be modified directly.
  */
 
-/* Functions that set prefrence values */
+/* Functions that set preference values */
 
 void prefs_set_string(const gchar *key, const gchar *value);
 void prefs_set_int(const gchar *key, const gint value);
@@ -102,7 +103,7 @@
 void prefs_set_double_index(const gchar *key, guint index,
 			    gdouble value);
 
-/* Functions that get prefrence values */
+/* Functions that get preference 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);
@@ -127,6 +128,7 @@
 gboolean prefs_get_double_value_index(const gchar *key, guint index,
 				      gdouble *value);
 /* Special functions */
+TempPrefs *prefs_create_subset (const gchar *subkey);
 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,
@@ -139,7 +141,10 @@
  * Temp prefs functions
  */
 TempPrefs *temp_prefs_create (void);
-TempPrefs *prefs_create_subset (const gchar *subkey);
+TempPrefs *temp_prefs_load (const gchar *filename, GError **error);
+gboolean temp_prefs_save (TempPrefs *temp_prefs,
+			  const gchar *filename,
+			  GError **error);
 TempPrefs *temp_prefs_create_subset (TempPrefs *temp_prefs,
 				     const gchar *subkey);
 void temp_prefs_destroy (TempPrefs *temp_prefs);
@@ -173,7 +178,7 @@
 gboolean temp_prefs_get_double_value(TempPrefs *temp_prefs, const gchar *key,
 				    gdouble *value);
 
-/* Numbered prefrences functions */
+/* Numbered preferences 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,

Modified: gtkpod/trunk/src/prefs_window.c
===================================================================
--- gtkpod/trunk/src/prefs_window.c	2007-06-27 20:59:02 UTC (rev 193)
+++ gtkpod/trunk/src/prefs_window.c	2007-06-27 21:27:12 UTC (rev 194)
@@ -1,5 +1,4 @@
-/* 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>
 |  Part of the gtkpod project.
@@ -25,7 +24,7 @@
 |
 |  This product is not supported/written/published by Apple!
 |
-|  $Id: prefs_window.c,v 1.185 2006/09/24 12:16:26 jcsjcs Exp $
+|  $Id: prefs_window.c 1594 2007-06-26 04:02:23Z tmzullinger $
 */
 
 #include <stdio.h>
@@ -34,7 +33,8 @@
 #include "display_itdb.h"
 #include "info.h"
 #include "fileselection.h"
-#include "md5.h"
+#include "sha1.h"
+/*#include "md5.h"*/
 #include "misc.h"
 #include "misc_track.h"
 #include "prefs.h"
@@ -66,11 +66,20 @@
 static void standard_toggle_toggled (GtkToggleButton *togglebutton,
 				     const gchar *key);
 
+static void on_convert_toggle_toggled (GtkToggleButton *togglebutton,
+				     gpointer not_used);
 
+static const gchar *convert_names[] =
+{
+    "convert_ogg",
+    "convert_flac",
+    "convert_m4a",
+    "convert_mp3",
+    "convert_wav",
+    NULL
+};
 
 /* Definition of path button names.
-   E.g. path_button_names[PATH_PLAY_ENQUEUE] is
-   "play_enqueue_path_button".
    path_fileselector_titles[] specifies the title for the file
    chooser. path_type[] specifies whether to browse for dirs or for
    files.
@@ -80,12 +89,14 @@
     "play_now_path_button",
     "play_enqueue_path_button",
     "mp3gain_path_button",
-    "",
-    "",
+    "aacgain_path_button",
     "mserv_music_root_button",
     "mserv_trackinfo_root_button",
-    "",
-    "aacgain_path_button",
+    "path_conv_ogg_button",
+    "path_conv_flac_button",
+    "path_conv_m4a_button",
+    "path_conv_mp3_button",
+    "path_conv_wav_button",
     NULL
 };
 static const gchar *path_key_names[] =
@@ -93,12 +104,14 @@
     "path_play_now",
     "path_play_enqueue",
     "path_mp3gain",
-    "",
-    "",
+    "aacgain_path",
     "path_mserv_music_root",
     "path_mserv_trackinfo_root",
-    "",
-    "aacgain_path",
+    "path_conv_ogg",
+    "path_conv_flac",
+    "path_conv_m4a",
+    "path_conv_mp3",
+    "path_conv_wav",
     NULL
 };
 const gchar *path_entry_names[] =
@@ -106,12 +119,14 @@
     "play_now_path_entry",
     "play_enqueue_path_entry",
     "mp3gain_path_entry",
-    "",
-    "",
+    "aacgain_path_entry",
     "mserv_music_root_entry",
     "mserv_trackinfo_root_entry",
-    "",
-    "aacgain_path_entry",
+    "path_conv_ogg_entry",
+    "path_conv_flac_entry",
+    "path_conv_m4a_entry",
+    "path_conv_mp3_entry",
+    "path_conv_wav_entry",
     NULL
 };
 static const gchar *path_fileselector_titles[] =
@@ -119,12 +134,14 @@
     N_("Please select command for 'Play Now'"),
     N_("Please select command for 'Enqueue'"),
     N_("Please select the mp3gain executable"),
-    "",
-    "",
+    N_("Please select the aacgain executable"),
     N_("Select the mserv music root directory"),
     N_("Select the mserv trackinfo root directory"),
-    "",
-    N_("Please select the aacgain executable"),
+    N_("Select the ogg/vorbis converter command"),
+    N_("Select the flac converter command"),
+    N_("Select the m4a converter command."),
+    N_("Select the mp3 converter command."),
+    N_("Select the wav converter command."),
     NULL
 };
 static const GtkFileChooserAction path_type[] =
@@ -133,15 +150,16 @@
     GTK_FILE_CHOOSER_ACTION_OPEN,
     GTK_FILE_CHOOSER_ACTION_OPEN,
     GTK_FILE_CHOOSER_ACTION_OPEN,
-    GTK_FILE_CHOOSER_ACTION_OPEN,
     GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER, /* select folder */
     GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER,
     GTK_FILE_CHOOSER_ACTION_OPEN,
     GTK_FILE_CHOOSER_ACTION_OPEN,
+    GTK_FILE_CHOOSER_ACTION_OPEN,
+    GTK_FILE_CHOOSER_ACTION_OPEN,
+    GTK_FILE_CHOOSER_ACTION_OPEN,
     -1
 };
 
-
 static void on_cfg_st_autoselect_toggled (GtkToggleButton *togglebutton,
 					  gpointer         user_data)
 {
@@ -174,6 +192,8 @@
 {
     gint i = GPOINTER_TO_INT (user_data);
     gchar *oldpath, *newpath;
+    gchar *fallback = NULL;
+    gchar *text = NULL;
 
     g_return_if_fail (temp_prefs);
 
@@ -183,15 +203,23 @@
 	oldpath = prefs_get_string (path_key_names[i]);
     }
 
+    /* initialize fallback path with something reasonable */
+    if ((strcmp (path_key_names[i], "path_conv_ogg") == 0) ||
+	(strcmp (path_key_names[i], "path_conv_flac") == 0))
+    {
+	fallback = g_strdup (SCRIPTDIR);
+	text = g_markup_printf_escaped (_("<i>Have a look at the scripts provided in '%s'. If you write a new script or improve an existing one, please send it to jcsjcs at users.sourceforge.net for inclusion into the next release.</i>"), SCRIPTDIR);
+    }
+
     switch (path_type[i])
     {
     case GTK_FILE_CHOOSER_ACTION_OPEN:
 	/* script */
 	newpath = fileselection_select_script (
 	    oldpath,
-	    NULL,
+	    fallback,
 	    _(path_fileselector_titles[i]),
-	    NULL);
+	    text);
 	break;
     case GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER:
 	/* directory */
@@ -204,6 +232,8 @@
 	g_return_if_reached ();
     }
     g_free (oldpath);
+    g_free (fallback);
+    g_free (text);
 
     if (newpath)
     {
@@ -262,8 +292,114 @@
     else                                     gtk_tooltips_disable (tt);
 }
 
+static void convert_table_set_children_initial_sensitivity (GtkTable *table)
+{
+    GList *list_item;
+    GtkTableChild *child;
 
+    list_item = table->children;
+    while (list_item) {
+        child = (GtkTableChild*)list_item->data;
+        gtk_widget_set_sensitive (child->widget, 
+                                     GTK_IS_TOGGLE_BUTTON (child->widget));
+        list_item = g_list_next (list_item);
+    }
+}
 
+static gint setup_visible_cols_buttons_sort (gconstpointer a, gconstpointer b)
+{
+    const gint *aa = a;
+    const gint *bb = b;
+
+    g_return_val_if_fail (a&&b, 0);
+
+    return g_utf8_collate (gettext (get_tm_string (*aa)),
+			   gettext (get_tm_string (*bb)));
+}
+
+/* Creates the toggle buttons to select the visible columns */
+static void setup_visible_cols_buttons ( GtkTooltips *tt)
+{
+    GArray *array;
+    GtkWidget *hbox;
+    GtkWidget *table;
+    gint i, rows, columns, r, c;
+
+    /* Sort the available colums alphabetically */
+    array = g_array_new (FALSE, FALSE, sizeof (gint));
+    for (i=0; i<TM_NUM_COLUMNS; ++i)
+    {
+	g_array_append_val (array, i);
+    }
+    g_array_sort (array, setup_visible_cols_buttons_sort);
+
+#if 0
+    for (i=0; i<TM_NUM_COLUMNS; ++i)
+    {
+	printf ("%s\n", gettext (get_tm_string (g_array_index (array, gint, i))));
+    }
+#endif
+
+    hbox = gtkpod_xml_get_widget (prefs_window_xml, "visible_cols_hbox");
+
+    /* how big must the table be to keep all column labels? */
+    columns = 5;
+    rows = (TM_NUM_COLUMNS + (columns - 1)) / columns;
+    table = gtk_table_new (rows, columns, TRUE);
+
+    for (r=0; r*columns < TM_NUM_COLUMNS; ++r)
+    {
+	for (c=0; c<columns; ++c)
+	{
+	    i = r*columns+c;
+	    if (i < TM_NUM_COLUMNS)
+	    {
+		GtkWidget *button;
+		gint j;
+		j = g_array_index (array, gint, i);
+		/* Create button */
+		button = gtk_check_button_new_with_label (
+		    gettext (get_tm_string (j)));
+		/* set active/inactive */
+		gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(button),
+					     prefs_get_int_index("col_visible", j));
+		/* set tooltip if available */
+		if (get_tm_tooltip (j))
+		{
+		    gtk_tooltips_set_tip (tt, button, 
+					  gettext (get_tm_tooltip (j)),
+					  NULL);
+		}
+		/* connect the signal handler */
+		g_signal_connect ((gpointer)button,
+				  "toggled",
+				  G_CALLBACK (on_cfg_col_visible_toggled),
+				  GUINT_TO_POINTER(j));
+		/* attach button to table */
+		gtk_table_attach (GTK_TABLE (table),
+				  button,
+				  c, c+1,
+				  r, r+1,
+				  GTK_FILL, GTK_SHRINK,
+				  0, 0);
+		/* show the button */
+		gtk_widget_show (button);
+	    }
+	}
+    }
+    /* Set table spacings */
+    gtk_table_set_row_spacings (GTK_TABLE (table), 4);
+    gtk_table_set_col_spacings (GTK_TABLE (table), 4);
+    /* Make table visible */
+    gtk_widget_show (table);
+    /* pack the table into the hbox */
+    gtk_box_pack_start (GTK_BOX (hbox), table, TRUE, TRUE, 0);
+
+    /* free memory */
+    g_array_free (array, TRUE);
+}
+
+
 /**
  * create_gtk_prefs_window
  * Create, Initialize, and Show the preferences window
@@ -289,6 +425,8 @@
 	"sync_confirm_dirs_toggle",
 	"sync_delete_tracks_toggle",
 	"sync_show_summary_toggle",
+	"file_convert_display_log_button",
+	"file_convert_background_transfer_button",
 	NULL
     };
     /* ... and corresponding keys */
@@ -296,6 +434,8 @@
 	KEY_SYNC_CONFIRM_DIRS,
 	KEY_SYNC_DELETE_TRACKS,
 	KEY_SYNC_SHOW_SUMMARY,
+	FILE_CONVERT_DISPLAY_LOG,
+	FILE_CONVERT_BACKGROUND_TRANSFER,
 	NULL
     };
 
@@ -331,6 +471,11 @@
 
     defx = prefs_get_int("size_prefs.x");
     defy = prefs_get_int("size_prefs.y");
+    if (defx == 0)
+	defx = 500;
+    if (defy == 0)
+	defy = 600;
+
     gtk_window_set_default_size (GTK_WINDOW (prefs_window), defx, defy);
 
     /* Code to add subscriptions list box */
@@ -359,9 +504,9 @@
     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");
+    w = gtkpod_xml_get_widget (prefs_window_xml, "cfg_sha1tracks");
     gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(w),
-				 prefs_get_int("md5"));
+				 prefs_get_int("sha1"));
 
     w = gtkpod_xml_get_widget (prefs_window_xml, "cfg_update_existing");
     gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(w),
@@ -370,7 +515,7 @@
     w = gtkpod_xml_get_widget (prefs_window_xml, "cfg_show_duplicates");
     gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(w),
 				 prefs_get_int("show_duplicates"));
-    if (!prefs_get_int("md5")) gtk_widget_set_sensitive (w, FALSE);
+    if (!prefs_get_int("sha1")) 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),
@@ -410,7 +555,7 @@
     w = gtkpod_xml_get_widget (prefs_window_xml, "cfg_display_tooltips_prefs");
     gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(w),
 				 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),
 				 prefs_get_int("multi_edit"));
@@ -433,10 +578,6 @@
     gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(w),
 				 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),
-				 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),
 				 prefs_get_int("id3_write"));
@@ -471,10 +612,25 @@
     gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(w),
 				 prefs_get_int("delete_database"));
 
-    w = gtkpod_xml_get_widget (prefs_window_xml,  "cfg_autoimport");
-    gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(w),
-				 prefs_get_int("autoimport"));
+#if 0
+    /* last.fm -- disabled, we'll hide the prefs window */
+    int x = prefs_get_int("lastfm_active");
+    GtkWidget *u = gtkpod_xml_get_widget (prefs_window_xml, "lastfm_username");
+    GtkWidget *p = gtkpod_xml_get_widget (prefs_window_xml, "lastfm_password");
+    w = gtkpod_xml_get_widget (prefs_window_xml, "lastfm_active");
 
+    gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(w), x);
+    gtk_entry_set_text(GTK_ENTRY(u), prefs_get_string("lastfm_username"));
+    gtk_entry_set_text(GTK_ENTRY(p), prefs_get_string("lastfm_password"));
+    gtk_widget_set_sensitive (u, x);
+    gtk_widget_set_sensitive (p, x);
+# else
+    w = gtkpod_xml_get_widget (prefs_window_xml, "labelfm");
+    gtk_widget_hide(w);
+    w = gtkpod_xml_get_widget (prefs_window_xml, "scrolledwindowfm");
+    gtk_widget_hide(w);
+#endif
+
     w = gtkpod_xml_get_widget (prefs_window_xml, "autoselect_hbox");
     for (i=0; i<SORT_TAB_MAX; ++i)
     {
@@ -585,34 +741,8 @@
     }
     gtk_widget_set_sensitive (w, prefs_get_int("coverart_file"));
 
-    for (i=0; i<TM_NUM_COLUMNS; ++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),
-					 prefs_get_int_index("col_visible", i));
-	    /* set tooltip if available */
-	    if (get_tm_tooltip (i))
-	    {
-		gtk_tooltips_set_tip (tt, w, 
-				      gettext (get_tm_tooltip (i)),
-				      NULL);
-	    }
-	    /* 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 */
-	    g_signal_connect ((gpointer)w,
-			      "toggled",
-			      G_CALLBACK (on_cfg_col_visible_toggled),
-			      GUINT_TO_POINTER(i));
-	}
-	g_free (buf);
-    }
-    
+    setup_visible_cols_buttons (tt);
+
     w = gtkpod_xml_get_widget (prefs_window_xml, "cfg_write_extended");
     gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(w),
 				 prefs_get_int("write_extended_info"));
@@ -632,10 +762,6 @@
 				     prefs_get_int("group_compilations"));
     }
 
-    w = gtkpod_xml_get_widget (prefs_window_xml, "cfg_tmp_disable_sort");
-    gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(w),
-				 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),
 				 prefs_get_int("startup_messages"));
@@ -673,9 +799,40 @@
 	gtk_entry_set_text(GTK_ENTRY(w), buf);
 	g_free(buf);
     }
-    
+
+    w = gtkpod_xml_get_widget (prefs_window_xml, "convert_table");
+    convert_table_set_children_initial_sensitivity (GTK_TABLE (w));
+    for (i=0; convert_names[i]; ++i)
+    {
+         w = gtkpod_xml_get_widget (prefs_window_xml, convert_names[i]);
+         g_signal_connect ((gpointer)w,
+			      "toggled",
+			      G_CALLBACK (on_convert_toggle_toggled),
+			      NULL);
+         gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON(w), prefs_get_int (convert_names[i]) );
+
+    }
+
+    w = gtkpod_xml_get_widget (prefs_window_xml, "file_convert_max_threads_num_spinbutton");
+    gtk_spin_button_set_value (GTK_SPIN_BUTTON(w),
+			       prefs_get_int (FILE_CONVERT_MAX_THREADS_NUM));
+
+    w = gtkpod_xml_get_widget (prefs_window_xml, "file_convert_maxdirsize_spinbutton");
+    gtk_spin_button_set_value (GTK_SPIN_BUTTON(w),
+			       prefs_get_double (FILE_CONVERT_MAXDIRSIZE));
+
+    w = gtkpod_xml_get_widget (prefs_window_xml, "file_convert_cachedir_entry");
+    buf = prefs_get_string (FILE_CONVERT_CACHEDIR);
+    if (buf)
+	gtk_entry_set_text (GTK_ENTRY(w), buf);
+    g_free (buf);
+
+
     prefs_window_show_hide_tooltips ();
     gtk_widget_show(prefs_window);
+
+
+
 }
 
 
@@ -693,9 +850,9 @@
      if (temp_prefs_get_int_value(temp_prefs, "sort_tab_num", NULL))
       st_show_visible();
 
-     /* Set up/free md5 hash table if changed */
-     if (temp_prefs_get_int_value(temp_prefs, "md5", NULL))
-	 setup_md5();
+     /* Set up/free sha1 hash table if changed */
+     if (temp_prefs_get_int_value(temp_prefs, "sha1", NULL))
+	 setup_sha1();
    }
   
    /* Need this in case user reordered column order (we don't
@@ -706,6 +863,9 @@
    st_show_visible();
    display_show_hide_tooltips();
    display_show_hide_toolbar();
+
+   /* update file_conversion data */
+   file_convert_prefs_changed ();
 }
 
 /* save current window size */
@@ -716,7 +876,7 @@
 	gint defx, defy;
 	gtk_window_get_size (GTK_WINDOW (prefs_window), &defx, &defy);
 	prefs_set_int("size_prefs.x", defx);
-  prefs_set_int("size_prefs.y", defy);
+	prefs_set_int("size_prefs.y", defy);
     }
 }
 
@@ -762,7 +922,7 @@
 
     /* save current window size */
     gtk_window_get_size (GTK_WINDOW (prefs_window), &defx, &defy);
-	  prefs_set_int("size_prefs.x", defx);
+    prefs_set_int("size_prefs.x", defx);
     prefs_set_int("size_prefs.y", defy);
 
     /* close the window */
@@ -776,26 +936,8 @@
 void
 prefs_window_ok (void)
 {
-    gint defx, defy;
-    GtkWidget *nb;
+    prefs_window_apply ();
 
-    /* Commit temp prefs to prefs table */
-    temp_prefs_apply(temp_prefs);
-    temp_lists_apply(temp_lists);
-  
-    /* save current settings */
-    prefs_window_set ();
-
-    /* save current notebook page */
-    nb = gtkpod_xml_get_widget (prefs_window_xml, "notebook");
-    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_int("size_prefs.x", defx);
-    prefs_set_int("size_prefs.y", defy);
-
     /* close the window */
     if(prefs_window)
 	gtk_widget_destroy(prefs_window);
@@ -836,6 +978,7 @@
 
    ----------------------------------------------------------------- */
 
+
 void
 on_sorting_clicked                     (GtkButton       *button,
 					gpointer         user_data)
@@ -939,26 +1082,35 @@
 }
 
 
+void on_file_convert_max_threads_num_spinbutton_value_changed (
+    GtkSpinButton *spinbutton,
+    gpointer       user_data)
+{
+    temp_prefs_set_int (temp_prefs, FILE_CONVERT_MAX_THREADS_NUM,
+			gtk_spin_button_get_value_as_int (spinbutton));
+}
+
+void on_file_convert_maxdirsize_spinbutton_value_changed (
+    GtkSpinButton *spinbutton,
+    gpointer       user_data)
+{
+    temp_prefs_set_double (temp_prefs, FILE_CONVERT_MAXDIRSIZE,
+			   gtk_spin_button_get_value (spinbutton));
+}
+
+
 void
-on_cfg_md5tracks_toggled                (GtkToggleButton *togglebutton,
+on_cfg_sha1tracks_toggled                (GtkToggleButton *togglebutton,
 					gpointer         user_data)
 {
     gboolean val = gtk_toggle_button_get_active(togglebutton);
     GtkWidget *w = gtkpod_xml_get_widget (prefs_window_xml, "cfg_show_duplicates");
 
-    temp_prefs_set_int(temp_prefs, "md5", val);
+    temp_prefs_set_int(temp_prefs, "sha1", val);
     if(w)	gtk_widget_set_sensitive (w, val);
 }
 
 void
- on_cfg_block_display_toggled           (GtkToggleButton *togglebutton,
-					gpointer         user_data)
-{
-    temp_prefs_set_int(temp_prefs, "block_display",
-		       gtk_toggle_button_get_active(togglebutton));
-}
-
-void
 on_cfg_update_existing_toggled         (GtkToggleButton *togglebutton,
 					gpointer         user_data)
 {
@@ -1047,6 +1199,45 @@
 			gtk_toggle_button_get_active (togglebutton));
 }
 
+static void on_convert_toggle_toggled (GtkToggleButton *togglebutton,
+				     gpointer not_used)
+{
+    GtkTable *parent;
+    GList *list_item;
+    GtkTableChild *child;
+    guint16 row = 0;
+    gboolean active;
+
+    parent = (GtkTable*)gtk_widget_get_parent (GTK_WIDGET (togglebutton));    
+    g_return_if_fail (GTK_IS_TABLE (parent));
+
+    /* Find row of togglebutton */
+    list_item = parent->children;
+    while (list_item) {
+        child = (GtkTableChild*)list_item->data;
+        if (child->widget == (GtkWidget*)togglebutton) {
+            row = child->top_attach;
+            break;
+        }
+        list_item = g_list_next (list_item);
+    }
+
+    active = gtk_toggle_button_get_active (togglebutton);
+
+    temp_prefs_set_int (temp_prefs, gtk_widget_get_name (GTK_WIDGET (togglebutton)), 
+			active);
+
+    /* set sensitivity of all widgets on togglebuttons row, except togglebutton */
+    list_item = parent->children;
+    while (list_item) {
+        child = (GtkTableChild*)list_item->data;
+        if (child->top_attach == row && child->widget != (GtkWidget*)togglebutton) 
+            gtk_widget_set_sensitive (child->widget, active);
+        list_item = g_list_next (list_item);
+    }
+}
+
+
 void
 on_sync_confirm_delete_toggled     (GtkToggleButton *togglebutton,
 				    gpointer         user_data)
@@ -1072,14 +1263,6 @@
 
 
 void
-on_cfg_autoimport_toggled              (GtkToggleButton *togglebutton,
-					gpointer         user_data)
-{
-    temp_prefs_set_int(temp_prefs, "autoimport",
-		       gtk_toggle_button_get_active(togglebutton));
-}
-
-void
 on_charset_combo_entry_changed          (GtkEditable     *editable,
 					gpointer         user_data)
 {
@@ -1234,7 +1417,6 @@
 		       gtk_toggle_button_get_active  (togglebutton));
 }
 
-
 void
 on_cfg_display_toolbar_toggled         (GtkToggleButton *togglebutton,
 					gpointer         user_data)
@@ -1379,13 +1561,6 @@
 }
 
 void
-on_cfg_temporarily_disable_sorting     (GtkToggleButton *togglebutton,
-                                        gpointer         user_data)
-{
-    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)
 {
@@ -1429,7 +1604,65 @@
     g_free(val);
 }
 
+/* last.fm callbacks */
+void
+on_lastfm_active_toggled              (GtkToggleButton *togglebutton,
+					gpointer         user_data)
+{
+#if 0
+    int x = gtk_toggle_button_get_active(togglebutton);
+    GtkWidget *u = gtkpod_xml_get_widget  (prefs_window_xml, "lastfm_username");
+    GtkWidget *p = gtkpod_xml_get_widget  (prefs_window_xml, "lastfm_password");
+    temp_prefs_set_int(temp_prefs, "lastfm_active", x);
 
+    gtk_widget_set_sensitive (u, x);
+    gtk_widget_set_sensitive (p, x);
+#endif
+}
+
+void
+on_lastfm_username_entry_changed          (GtkEditable     *editable,
+					gpointer         user_data)
+{
+#if 0
+    gchar *uname;
+    uname = gtk_editable_get_chars (editable, 0, -1);
+    temp_prefs_set_string(temp_prefs, "lastfm_username", uname);
+    g_free (uname);
+#endif
+}
+
+void
+on_lastfm_password_entry_changed          (GtkEditable     *editable,
+					gpointer         user_data)
+{
+#if 0
+    gchar *upass, *upass_old;
+
+    upass = gtk_editable_get_chars (editable, 0, -1);
+    upass_old = prefs_get_string ("lastfm_password");
+
+    if (!upass_old || (strcmp (upass, upass_old) != 0))
+    {
+	unsigned char sig[16];
+	unsigned char md5[64];
+	gint i;
+
+	md5_buffer((const char *)upass, strlen(upass), sig);
+
+	for (i=0; i<16; ++i)
+	{
+	    snprintf (&md5[i*2], 3, "%02x", sig[i]);
+	}
+
+	temp_prefs_set_string(temp_prefs, "lastfm_password", md5);
+    }
+    g_free (upass);
+    g_free (upass_old);
+#endif
+}
+
+
 /* ------------------------------------------------------------ *\
  *                                                              *
  * Sort-Prefs Window                                            *
@@ -1658,7 +1891,7 @@
 	if (w)
 	    gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(w), TRUE);
 
-	switch (prefs_get_int("tm_sort_"))
+	switch (prefs_get_int("tm_sort"))
 	{
 	case SORT_ASCENDING:
 	    w = gtkpod_xml_get_widget (sort_window_xml, "tm_ascend");
@@ -1775,11 +2008,11 @@
 	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) ||
+    if (temp_prefs_get_int_value(sort_temp_prefs, "tm_sort", NULL) ||
 	(sortcol_old != sortcol_new))
     {
 	tm_sort_counter (-1);
-	tm_sort (prefs_get_int("tm_sortcol"), prefs_get_int("tm_sort_"));
+	tm_sort (prefs_get_int("tm_sortcol"), prefs_get_int("tm_sort"));
     }
     /* if auto sort was changed to TRUE, store order */
     if (!temp_prefs_get_int(sort_temp_prefs, "tm_autostore"))
@@ -2002,7 +2235,7 @@
 
 void sort_window_set_tm_sort (gint val)
 {
-    temp_prefs_set_int(sort_temp_prefs, "tm_sort_", val);
+    temp_prefs_set_int(sort_temp_prefs, "tm_sort", val);
 }
 
 void sort_window_set_case_sensitive (gboolean val)

Modified: gtkpod/trunk/src/prefs_window.h
===================================================================
--- gtkpod/trunk/src/prefs_window.h	2007-06-27 20:59:02 UTC (rev 193)
+++ gtkpod/trunk/src/prefs_window.h	2007-06-27 21:27:12 UTC (rev 194)
@@ -25,7 +25,7 @@
 |
 |  This product is not supported/written/published by Apple!
 |
-|  $Id: prefs_window.h,v 1.70 2006/06/10 08:29:44 freethinkerjim Exp $
+|  $Id: prefs_window.h 812 2006-06-10 08:29:44Z freethinkerjim $
 */
 #ifndef _GTKPOD_PREFS_WINDOW_H
 #define _GTKPOD_PREFS_WINDOW_H

Modified: gtkpod/trunk/src/repository.c
===================================================================
--- gtkpod/trunk/src/repository.c	2007-06-27 20:59:02 UTC (rev 193)
+++ gtkpod/trunk/src/repository.c	2007-06-27 21:27:12 UTC (rev 194)
@@ -1,4 +1,4 @@
-/* Time-stamp: <2006-06-25 21:40:01 jcs>
+/* Time-stamp: <2007-01-16 17:55: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: repository.c,v 1.15 2006/06/25 16:08:22 jcsjcs Exp $
+|  $Id: repository.c 954 2007-01-16 09:45:00Z jcsjcs $
 */
 
 /* This file provides functions for the edit repositories/playlist
@@ -63,9 +63,6 @@
 
 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,
@@ -662,10 +659,10 @@
     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);
+    text = g_markup_printf_escaped (_("<i>Have a look at the scripts provided in '%s'. If you write a new script or improve an existing one, please send it to jcsjcs at users.sourceforge.net for inclusion into the next release.</i>"), SCRIPTDIR);
 
     newpath = fileselection_select_script (oldpath,
-					   scriptdir,
+					   SCRIPTDIR,
 					   title,
 					   text);
     g_free (oldpath);

Modified: gtkpod/trunk/src/repository.h
===================================================================
--- gtkpod/trunk/src/repository.h	2007-06-27 20:59:02 UTC (rev 193)
+++ gtkpod/trunk/src/repository.h	2007-06-27 21:27:12 UTC (rev 194)
@@ -24,7 +24,7 @@
 | 
 |  This product is not supported/written/published by Apple!
 |
-|  $Id: repository.h,v 1.2 2006/05/15 15:43:06 jcsjcs Exp $
+|  $Id: repository.h 745 2006-05-15 15:43:06Z jcsjcs $
 */
 
 #ifndef __REPOSITORY_H__

Copied: gtkpod/trunk/src/sha1.c (from rev 193, gtkpod/branches/upstream/current/src/sha1.c)
===================================================================
--- gtkpod/trunk/src/sha1.c	                        (rev 0)
+++ gtkpod/trunk/src/sha1.c	2007-06-27 21:27:12 UTC (rev 194)
@@ -0,0 +1,567 @@
+/*
+|  Copyright (C) 2002 Corey Donohoe <atmos at atmos.org>
+|  Copyright (C) 2002-2007 Jorg Schuler <jcsjcs at users sourceforge net>
+|  Part of the gtkpod project.
+| 
+|  URL: http://www.gtkpod.org/
+|  URL: http://gtkpod.sourceforge.net/
+|
+|  SHA1 routine: David Puckett <niekze at yahoo.com>
+|  SHA1 implemented from FIPS-160 standard
+|  <http://www.itl.nist.gov/fipspubs/fip180-1.htm>
+|
+|  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: sha1.c 1024 2007-04-07 14:55:49Z jcsjcs $
+*/
+
+#include <errno.h>
+#include <limits.h>
+#include <stdio.h>
+#include <string.h>
+#include <sys/stat.h>
+#include <sys/types.h>
+#include <unistd.h>
+#include <glib.h>
+#include "charset.h"
+#include "sha1.h"
+#include "file.h"
+#include "prefs.h"
+#include "misc.h"
+#include "misc_track.h"
+#include "display.h"
+#include "display_itdb.h"
+
+
+typedef guint32 chunk;
+union _block
+{
+   guint8 charblock[64];
+   chunk chunkblock[16];
+};
+typedef union _block block;
+
+union _hblock
+{
+   guint8 charblock[20];
+   chunk chunkblock[5];
+};
+typedef union _hblock hblock;
+
+struct _sha1
+{
+   block *blockdata;
+   hblock *H;
+};
+typedef struct _sha1 sha1;
+
+static guint8 *sha1_hash(const guint8 * text, guint32 len);
+static void process_block_sha1(sha1 * message);
+
+#if BYTE_ORDER == LITTLE_ENDIAN
+static void little_endian(hblock * stupidblock, int blocks);
+#endif
+
+/**
+ * Create and manage a string hash for files on disk
+ */
+
+/**
+ * NR_PATH_MAX_BLOCKS
+ * A seed of sorts for SHA1, if collisions occur increasing this value
+ * should give more unique data to SHA1 as more of the file is read
+ * This value is multiplied by PATH_MAX_MD5 to determine how many bytes are read
+ */
+#define NR_PATH_MAX_BLOCKS 4
+#define PATH_MAX_SHA1 4096
+
+/* Set up or destory the sha1 hash table */
+void setup_sha1()
+{
+    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("sha1"))  /* SHA1 hashing turned on */
+	{
+	    gp_sha1_hash_tracks();
+	
+	    /* Display duplicates */
+	    gp_duplicate_remove(NULL, NULL);
+	}
+	else
+	    gp_sha1_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 guint32
+get_filesize_for_file_descriptor(FILE *fp)
+{
+    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 (guint32)result;
+}
+
+/**
+ * sha1_hash_on_file - read PATH_MAX_SHA1 * NR_PATH_MAX_BLOCKS bytes
+ * from the file and ask sha1 for a hash of it, convert this hash to a
+ * string of hex output @fp - an open file descriptor to read from
+ * Returns - A Hash String - you handle memory returned
+ */
+static gchar *
+sha1_hash_on_file(FILE * fp)
+{
+   gchar *result = NULL;
+
+   if (fp)
+   {
+       int fsize = 0;
+       int chunk_size = PATH_MAX_SHA1 * NR_PATH_MAX_BLOCKS;
+
+       fsize = get_filesize_for_file_descriptor(fp);
+       if(fsize < chunk_size)
+	   chunk_size = fsize;
+
+       if(fsize > 0)
+       {
+	   guint32 fsize_normal;
+	   guint8 *hash = NULL;
+	   int bread = 0, x = 0, last = 0;
+	   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 */
+	   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),
+			    chunk_size, fp);
+
+	   /* create hash from our data */
+	   hash = sha1_hash(file_chunk, (bread + sizeof(int)));
+
+	   /* put it in a format we like */
+	   for (x = 0; x < 20; x++)
+	       last += snprintf(&result[last], 4, "%02x", hash[x]);
+
+	   /* free the hash value sha1_hash gave us */
+	   g_free(hash);
+       }
+       else
+       {
+	  gtkpod_warning(_("Hashed file is 0 bytes long\n"));
+       }
+   }
+   return (result);
+}
+
+/**
+ * Generate a unique hash for the Track passed in
+ * @s - The Track data structure, we want to hash based on the file on disk
+ * Returns - an SHA1 hash in string format, is the hex output from the hash
+ */
+static gchar *
+sha1_hash_track(Track * s)
+{
+   ExtraTrackData *etr;
+   gchar *result = NULL;
+   gchar *filename;
+
+   g_return_val_if_fail (s, NULL);
+   etr = s->userdata;
+   g_return_val_if_fail (etr, NULL);
+
+   if (etr->sha1_hash != NULL)
+   {
+       result = g_strdup(etr->sha1_hash);
+   }
+   else
+   {
+       filename = get_file_name_from_source (s, SOURCE_PREFER_LOCAL);
+       if (filename)
+       {
+	   result = sha1_hash_on_filename (filename, FALSE);
+	   g_free(filename);
+       }
+   }
+   return (result);
+}
+
+
+/* @silent: don't print any warning */
+gchar *sha1_hash_on_filename (gchar *name, gboolean silent)
+{
+    gchar *result = NULL;
+
+    if (name)
+    {
+	FILE *fpit = fopen (name, "r");
+	if (!fpit)
+	{
+	    if (!silent)
+	    {
+		gchar *name_utf8=charset_to_utf8 (name);
+		gtkpod_warning (
+		    _("Could not open '%s' to calculate SHA1 checksum: %s\n"),
+		    name_utf8, strerror(errno));
+		g_free (name_utf8);
+	    }
+	}
+	else
+	{
+	    result = sha1_hash_on_file (fpit);
+	    fclose (fpit);
+	}
+    }
+    return result;
+}
+
+
+/**
+ * Free up the dynamically allocated memory in @itdb's hash table
+ */
+void sha1_free_eitdb (ExtraiTunesDBData *eitdb)
+{
+    g_return_if_fail (eitdb);
+
+    if (eitdb->sha1hash)
+    {
+	g_hash_table_destroy (eitdb->sha1hash);
+	eitdb->sha1hash = NULL;
+    }
+}
+
+/**
+ * Free up the dynamically allocated memory in @itdb's hash table
+ */
+void sha1_free (iTunesDB *itdb)
+{
+    g_return_if_fail (itdb);
+    g_return_if_fail (itdb->userdata);
+
+    sha1_free_eitdb (itdb->userdata);
+}
+
+/**
+ * Check to see if a track has already been added to the ipod
+ * @s - the Track we want to know about. If the track does not exist, it
+ * is inserted into the hash.
+ * Returns a pointer to the duplicate track.
+ */
+Track *sha1_track_exists_insert (iTunesDB *itdb, Track * s)
+{
+    ExtraiTunesDBData *eitdb;
+    ExtraTrackData *etr;
+    gchar *val = NULL;
+    Track *track = NULL;
+
+    g_return_val_if_fail (itdb, NULL);
+    eitdb = itdb->userdata;
+    g_return_val_if_fail (eitdb, NULL);
+
+    g_return_val_if_fail (s, NULL);
+    etr = s->userdata;
+    g_return_val_if_fail (etr, NULL);
+
+    if (prefs_get_int("sha1"))
+    {
+	if (eitdb->sha1hash == NULL)
+	{
+	    eitdb->sha1hash = g_hash_table_new_full(g_str_hash,
+						   g_str_equal,
+						   g_free, NULL);
+	}
+	val = sha1_hash_track (s);
+	if (val != NULL)
+	{
+	    track = g_hash_table_lookup (eitdb->sha1hash, val);
+	    if (track)
+	    {
+		g_free(val);
+	    }
+	    else
+	    {   /* if it doesn't exist we register it in the hash */
+		g_free (etr->sha1_hash);
+		etr->sha1_hash = g_strdup (val);
+		/* val is used in the next line -- we don't have to
+		 * g_free() it */
+		g_hash_table_insert (eitdb->sha1hash, val, s);
+	    }
+	}
+    }
+    return track;
+}
+
+/**
+ * Check to see if a track has already been added to the ipod
+ * @s - the Track we want to know about.
+ * Returns a pointer to the duplicate track.
+ */
+Track *sha1_track_exists (iTunesDB *itdb, Track *s)
+{
+    ExtraiTunesDBData *eitdb;
+    Track *track = NULL;
+
+    g_return_val_if_fail (itdb, NULL);
+    eitdb = itdb->userdata;
+    g_return_val_if_fail (eitdb, NULL);
+
+    if (prefs_get_int("sha1") && eitdb->sha1hash)
+    {
+	gchar *val = sha1_hash_track (s);
+	if (val)
+	{
+	    track = g_hash_table_lookup (eitdb->sha1hash, val);
+	    g_free (val);
+	}
+    }
+    return track;
+}
+
+/**
+ * Check to see if a track has already been added to the ipod
+ * @file - the Track we want to know about.
+ * Returns a pointer to the duplicate track using sha1 for
+ * identification. If sha1 checksums are off, NULL is returned.
+ */
+Track *sha1_file_exists (iTunesDB *itdb, gchar *file, gboolean silent)
+{
+    ExtraiTunesDBData *eitdb;
+    Track *track = NULL;
+
+    g_return_val_if_fail (file, NULL);
+    g_return_val_if_fail (itdb, NULL);
+    eitdb = itdb->userdata;
+    g_return_val_if_fail (eitdb, NULL);
+
+    if (prefs_get_int("sha1") && eitdb->sha1hash)
+    {
+	gchar *val = sha1_hash_on_filename (file, silent);
+	if (val)
+	{
+	    track = g_hash_table_lookup (eitdb->sha1hash, val);
+	    g_free (val);
+	}
+    }
+    return track;
+}
+
+
+/**
+ * Check to see if a track has already been added to the ipod
+ * @sha1 - the sha1 we want to know about.
+ * Returns a pointer to the duplicate track using sha1 for
+ * identification. If sha1 checksums are off, NULL is returned.
+ */
+Track *sha1_sha1_exists (iTunesDB *itdb, gchar *sha1)
+{
+    ExtraiTunesDBData *eitdb;
+    Track *track = NULL;
+
+    g_return_val_if_fail (sha1, NULL);
+    g_return_val_if_fail (itdb, NULL);
+    eitdb = itdb->userdata;
+    g_return_val_if_fail (eitdb, NULL);
+
+    if (prefs_get_int("sha1") && eitdb->sha1hash)
+    {
+	track = g_hash_table_lookup (eitdb->sha1hash, sha1);
+    }
+    return track;
+}
+
+/**
+ * Free the specified track from the ipod's unique file hash
+ * @s - The Track that's being freed from the ipod
+ */
+void sha1_track_remove (Track *s)
+{
+    ExtraiTunesDBData *eitdb;
+
+    g_return_if_fail (s);
+    g_return_if_fail (s->itdb);
+    eitdb = s->itdb->userdata;
+    g_return_if_fail (eitdb);
+
+    if (prefs_get_int("sha1") && eitdb->sha1hash)
+    {
+	gchar *val = sha1_hash_track (s);
+	if (val)
+	{
+	    Track *track = g_hash_table_lookup (eitdb->sha1hash, val);
+	    if (track)
+	    {
+		if (track == s) /* only remove if it's the same track */
+		    g_hash_table_remove (eitdb->sha1hash, val);
+	    }
+	    g_free(val);
+	}
+    }
+}
+
+/* sha1_hash - hash value the input data with a given size.
+ * @text - the data we're reading to seed sha1
+ * @len - the length of the data for our seed
+ * Returns a unique 20 char array.
+ */
+static guint8 *
+sha1_hash(const guint8 * text, guint32 len)
+{
+   chunk x;
+   chunk temp_len = len;
+   const guint8 *temp_text = text;
+   guint8 *digest;
+   sha1 *message;
+
+   digest = g_malloc0(sizeof(guint8) * 21);
+   message = g_malloc0(sizeof(sha1));
+   message->blockdata = g_malloc0(sizeof(block));
+   message->H = g_malloc(sizeof(hblock));
+
+   message->H->chunkblock[0] = 0x67452301;
+   message->H->chunkblock[1] = 0xefcdab89;
+   message->H->chunkblock[2] = 0x98badcfe;
+   message->H->chunkblock[3] = 0x10325476;
+   message->H->chunkblock[4] = 0xc3d2e1f0;
+   while (temp_len >= 64)
+   {
+      for (x = 0; x < 64; x++)
+         message->blockdata->charblock[x] = temp_text[x];
+#if BYTE_ORDER == LITTLE_ENDIAN
+      little_endian((hblock *) message->blockdata, 16);
+#endif
+      process_block_sha1(message);
+      temp_len -= 64;
+      temp_text += 64;
+   }
+   for (x = 0; x < temp_len; x++)
+      message->blockdata->charblock[x] = temp_text[x];
+   message->blockdata->charblock[temp_len] = 0x80;
+   for (x = temp_len + 1; x < 64; x++)
+      message->blockdata->charblock[x] = 0x00;
+#if BYTE_ORDER == LITTLE_ENDIAN
+   little_endian((hblock *) message->blockdata, 16);
+#endif
+   if (temp_len > 54)
+   {
+      process_block_sha1(message);
+      for (x = 0; x < 60; x++)
+         message->blockdata->charblock[x] = 0x00;
+   }
+   message->blockdata->chunkblock[15] = len * 8;
+   process_block_sha1(message);
+#if BYTE_ORDER == LITTLE_ENDIAN
+   little_endian(message->H, 5);
+#endif
+   for (x = 0; x < 20; x++)
+      digest[x] = message->H->charblock[x];
+   digest[20] = 0x00;
+   g_free(message->blockdata);
+   g_free(message->H);
+   g_free(message);
+   return (digest);
+}
+
+/*
+ * process_block_sha1 - process one 512-bit block of data
+ * @message - the sha1 struct we're doing working on
+ */
+static void
+process_block_sha1(sha1 * message)
+{
+   chunk x;
+   chunk w[80];                 /* test block */
+   chunk A;                     /* A - E: used for hash calc */
+   chunk B;
+   chunk C;
+   chunk D;
+   chunk E;
+   chunk T;                     /* temp guint32 */
+   chunk K[] = { 0x5a827999, 0x6ed9eba1, 0x8f1bbcdc, 0xca62c1d6 };
+
+   for (x = 0; x < 16; x++)
+      w[x] = message->blockdata->chunkblock[x];
+   for (x = 16; x < 80; x++)
+   {
+      w[x] = w[x - 3] ^ w[x - 8] ^ w[x - 14] ^ w[x - 16];
+      w[x] = (w[x] << 1) | (w[x] >> 31);
+   }
+   A = message->H->chunkblock[0];
+   B = message->H->chunkblock[1];
+   C = message->H->chunkblock[2];
+   D = message->H->chunkblock[3];
+   E = message->H->chunkblock[4];
+   for (x = 0; x < 80; x++)
+   {
+      T = ((A << 5) | (A >> 27)) + E + w[x] + K[x / 20];
+      if (x < 20)
+         T += (B & C) | ((~B) & D);
+      else if (x < 40 || x >= 60)
+         T += B ^ C ^ D;
+      else
+         T += ((C | D) & B) | (C & D);
+      E = D;
+      D = C;
+      C = (B << 30) | (B >> 2);
+      B = A;
+      A = T;
+   }
+   message->H->chunkblock[0] += A;
+   message->H->chunkblock[1] += B;
+   message->H->chunkblock[2] += C;
+   message->H->chunkblock[3] += D;
+   message->H->chunkblock[4] += E;
+}
+
+#if BYTE_ORDER == LITTLE_ENDIAN
+/*
+ * little_endian - swap the significants bits to cater to bigendian
+ * @stupidblock - the block of data we're swapping
+ * @blocks - the number of blocks we're swapping
+ */
+static void
+little_endian(hblock * stupidblock, int blocks)
+{
+   int x;
+   for (x = 0; x < blocks; x++)
+   {
+  	stupidblock->chunkblock[x] = (stupidblock->charblock[x * 4] << 24 | stupidblock->charblock[x * 4 + 1] << 16 | stupidblock->charblock[x * 4 +2] << 8 | stupidblock->charblock[x * 4 + 3]);
+   }
+}
+#endif
+
+

Copied: gtkpod/trunk/src/sha1.h (from rev 193, gtkpod/branches/upstream/current/src/sha1.h)
===================================================================
--- gtkpod/trunk/src/sha1.h	                        (rev 0)
+++ gtkpod/trunk/src/sha1.h	2007-06-27 21:27:12 UTC (rev 194)
@@ -0,0 +1,48 @@
+/* Time-stamp: <2006-11-23 00:43:34 jcs>
+|
+|  Copyright (C) 2002 Corey Donohoe <atmos at atmos.org>
+|  Copyright (C) 2004-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: sha1.h 930 2006-11-22 15:48:19Z jcsjcs $
+*/
+#ifndef _GTKPOD_SHA1_H_
+#define _GTKPOD_SHA1_H_
+
+#include "display_itdb.h"
+
+void setup_sha1();
+gchar *sha1_hash_on_filename (gchar *name, gboolean silent);
+/* Any calls to the following functions immediately return if sha1sums
+ * is not on */
+Track *sha1_file_exists (iTunesDB *itdb, gchar *file, gboolean silent);
+Track *sha1_sha1_exists (iTunesDB *itdb, gchar *sha1);
+Track *sha1_track_exists (iTunesDB *itdb, Track *s);
+Track *sha1_track_exists_insert (iTunesDB *itdb, Track *s);
+void sha1_track_remove (Track *s);
+void sha1_free (iTunesDB *itdb);
+void sha1_free_eitdb (ExtraiTunesDBData *eitdb);
+
+#endif

Modified: gtkpod/trunk/src/syncdir.c
===================================================================
--- gtkpod/trunk/src/syncdir.c	2007-06-27 20:59:02 UTC (rev 193)
+++ gtkpod/trunk/src/syncdir.c	2007-06-27 21:27:12 UTC (rev 194)
@@ -1,4 +1,4 @@
-/* Time-stamp: <2006-09-24 15:25:27 jcs>
+/* Time-stamp: <2007-06-17 23:01:18 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: syncdir.c,v 1.7 2006/09/24 06:42:52 jcsjcs Exp $
+|  $Id: syncdir.c 1550 2007-06-17 14:14:38Z jcsjcs $
 */
 
 /* This file provides functions for syncing a directory or directories
@@ -358,6 +358,8 @@
 		case FILE_TYPE_MP4:
 		case FILE_TYPE_MOV:
 		case FILE_TYPE_MPG:
+                case FILE_TYPE_OGG:
+                case FILE_TYPE_FLAC:
 		    tr = gp_track_by_filename (pl->itdb, filename);
 		    if (tr)
 		    {   /* track is known -> add to playlist if not
@@ -471,7 +473,7 @@
 {
     GHashTable *dirs_hash;
     gboolean delete_tracks, is_mpl;
-    guint64 current_time;
+    time_t current_time;
     GList *tracks_to_delete_from_ipod = NULL;
     GList *tracks_to_delete_from_playlist = NULL;
     GList *tracks_updated = NULL;
@@ -555,7 +557,7 @@
 
     /* current_time can be used to recognize newly added/updated
        tracks */
-    current_time = itdb_time_get_mac_time ();
+    current_time = time (NULL);
 
     /* Add all files in all directories entered into dirs_hash */
     afd.playlist = playlist;
@@ -611,6 +613,7 @@
 		    remove = TRUE;
 		}
 	    }
+	    g_free (dirname_local);
 	}
 
 	if (remove)

Modified: gtkpod/trunk/src/syncdir.h
===================================================================
--- gtkpod/trunk/src/syncdir.h	2007-06-27 20:59:02 UTC (rev 193)
+++ gtkpod/trunk/src/syncdir.h	2007-06-27 21:27:12 UTC (rev 194)
@@ -24,7 +24,7 @@
 | 
 |  This product is not supported/written/published by Apple!
 |
-|  $Id: syncdir.h,v 1.4 2006/06/14 16:12:10 jcsjcs Exp $
+|  $Id: syncdir.h 854 2006-06-14 16:12:10Z jcsjcs $
 */
 
 #ifndef __SYNCDIR_H__

Modified: gtkpod/trunk/src/tools.c
===================================================================
--- gtkpod/trunk/src/tools.c	2007-06-27 20:59:02 UTC (rev 193)
+++ gtkpod/trunk/src/tools.c	2007-06-27 21:27:12 UTC (rev 194)
@@ -1,4 +1,4 @@
-/* Time-stamp: <2006-06-24 01:38:20 jcs>
+/* Time-stamp: <2007-05-09 22:23: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: tools.c,v 1.49 2006/06/23 16:46:12 jcsjcs Exp $
+|  $Id: tools.c 1076 2007-05-17 17:26:15Z tmzullinger $
 */
 
 #ifdef HAVE_CONFIG_H
@@ -80,7 +80,7 @@
  * added at the end.
  *
  * Return value: TRUE if the command ran successfully, FALSE if any
- * error occured.
+ * error occurred.
  */
 static gboolean run_exec_on_track (const gchar *commandline,
 				   const gchar *track_path)
@@ -116,7 +116,7 @@
 
     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);
+	gtkpod_warning (_("Could not find '%s'.\nPlease specifiy the exact path in the Tools section of the preference dialog or install the program if it is not installed on your system.\n\n"), command);
 	goto cleanup;
     }
 
@@ -260,6 +260,8 @@
 	    }
 	    break;
 	case FILE_TYPE_WAV: /* FIXME */
+	case FILE_TYPE_OGG: /* FIXME */
+	case FILE_TYPE_FLAC: /* FIXME */
 	case FILE_TYPE_M4V:
 	case FILE_TYPE_MP4:
 	case FILE_TYPE_MOV:
@@ -560,7 +562,7 @@
 
     if (!itdb) return;
 
-    ipod_mount = get_itdb_prefs_string (itdb, "mountpoint");
+    ipod_mount = get_itdb_prefs_string (itdb, KEY_MOUNTPOINT);
 
     if (!ipod_mount) ipod_mount = g_strdup ("");
 

Modified: gtkpod/trunk/src/tools.h
===================================================================
--- gtkpod/trunk/src/tools.h	2007-06-27 20:59:02 UTC (rev 193)
+++ gtkpod/trunk/src/tools.h	2007-06-27 21:27:12 UTC (rev 194)
@@ -24,7 +24,7 @@
 | 
 |  This product is not supported/written/published by Apple!
 |
-|  $Id: tools.h,v 1.15 2006/05/13 16:41:06 jcsjcs Exp $
+|  $Id: tools.h 740 2006-05-13 16:41:06Z jcsjcs $
 */
 
 #ifndef __NORMALIZE_H__

Modified: gtkpod/trunk/src/wavfile.c
===================================================================
--- gtkpod/trunk/src/wavfile.c	2007-06-27 20:59:02 UTC (rev 193)
+++ gtkpod/trunk/src/wavfile.c	2007-06-27 21:27:12 UTC (rev 194)
@@ -24,7 +24,7 @@
 |
 |  This product is not supported/written/published by Apple!
 |
-|  $Id: wavfile.c,v 1.9 2005/09/20 09:50:13 jcsjcs Exp $
+|  $Id: wavfile.c 629 2005-09-20 09:50:13Z jcsjcs $
 */
 
 #ifdef HAVE_CONFIG_H

Modified: gtkpod/trunk/src/wavfile.h
===================================================================
--- gtkpod/trunk/src/wavfile.h	2007-06-27 20:59:02 UTC (rev 193)
+++ gtkpod/trunk/src/wavfile.h	2007-06-27 21:27:12 UTC (rev 194)
@@ -24,7 +24,7 @@
 |
 |  This product is not supported/written/published by Apple!
 |
-|  $Id: wavfile.h,v 1.6 2005/06/17 13:30:05 jcsjcs Exp $
+|  $Id: wavfile.h 589 2005-06-17 13:30:05Z jcsjcs $
 */
 
 #ifndef WAVFILEH_INCLUDED




More information about the Pkg-gtkpod-devel mailing list