[Xfce4-commits] r24292 - in libexo/trunk: . docs/reference docs/reference/tmpl exo-hal exo-mount po

Benedikt Meurer benny at xfce.org
Sun Jan 7 22:59:39 CET 2007


Author: benny
Date: 2007-01-07 21:59:39 +0000 (Sun, 07 Jan 2007)
New Revision: 24292

Added:
   libexo/trunk/docs/reference/tmpl/exo-hal.sgml
   libexo/trunk/exo-hal/
   libexo/trunk/exo-hal/Makefile.am
   libexo/trunk/exo-hal/exo-hal-0.3.pc.in
   libexo/trunk/exo-hal/exo-hal.c
   libexo/trunk/exo-hal/exo-hal.h
Modified:
   libexo/trunk/ChangeLog
   libexo/trunk/Makefile.am
   libexo/trunk/configure.in.in
   libexo/trunk/docs/reference/Makefile.am
   libexo/trunk/docs/reference/exo-docs.sgml
   libexo/trunk/docs/reference/exo-sections.txt
   libexo/trunk/exo-mount/Makefile.am
   libexo/trunk/exo-mount/exo-mount-hal.c
   libexo/trunk/po/ChangeLog
   libexo/trunk/po/POTFILES.in
   libexo/trunk/po/ca.po
   libexo/trunk/po/cs.po
   libexo/trunk/po/cy.po
   libexo/trunk/po/de.po
   libexo/trunk/po/dz.po
   libexo/trunk/po/el.po
   libexo/trunk/po/en_GB.po
   libexo/trunk/po/es.po
   libexo/trunk/po/et.po
   libexo/trunk/po/eu.po
   libexo/trunk/po/fi.po
   libexo/trunk/po/fr.po
   libexo/trunk/po/gl.po
   libexo/trunk/po/he.po
   libexo/trunk/po/hu.po
   libexo/trunk/po/it.po
   libexo/trunk/po/ja.po
   libexo/trunk/po/ka.po
   libexo/trunk/po/libexo-0.3.pot
   libexo/trunk/po/lt.po
   libexo/trunk/po/mk.po
   libexo/trunk/po/nl.po
   libexo/trunk/po/pa.po
   libexo/trunk/po/pl.po
   libexo/trunk/po/pt_BR.po
   libexo/trunk/po/ro.po
   libexo/trunk/po/ru.po
   libexo/trunk/po/sv.po
Log:
2007-01-07	Benedikt Meurer <benny at xfce.org>

	* configure.in.in, Makefile.am, exo-hal/: Add utility library exo-hal,
	  which provides functions to lookup display names and icons for HAL
	  devices. These functions are used by both exo-mount and Thunar, and
	  probably additional software in the future. The library is there to
	  avoid having to duplicate these rather messy functions all over the
	  place, and to make translators life easier, having to translate them
	  only in a single place.
	* docs/reference/: Update the reference manual.
	* exo-mount/: Use exo-hal to determine the display names and icons for
	  the HAL devices.
	* po/POTFILES.in: Add new files here.
	* po/libexo-0.3.pot, po/*.po: Merge new strings.
	* po/de.po: Update german translations.




Modified: libexo/trunk/ChangeLog
===================================================================
--- libexo/trunk/ChangeLog	2007-01-07 20:23:21 UTC (rev 24291)
+++ libexo/trunk/ChangeLog	2007-01-07 21:59:39 UTC (rev 24292)
@@ -1,3 +1,19 @@
+2007-01-07	Benedikt Meurer <benny at xfce.org>
+
+	* configure.in.in, Makefile.am, exo-hal/: Add utility library exo-hal,
+	  which provides functions to lookup display names and icons for HAL
+	  devices. These functions are used by both exo-mount and Thunar, and
+	  probably additional software in the future. The library is there to
+	  avoid having to duplicate these rather messy functions all over the
+	  place, and to make translators life easier, having to translate them
+	  only in a single place.
+	* docs/reference/: Update the reference manual.
+	* exo-mount/: Use exo-hal to determine the display names and icons for
+	  the HAL devices.
+	* po/POTFILES.in: Add new files here.
+	* po/libexo-0.3.pot, po/*.po: Merge new strings.
+	* po/de.po: Update german translations.
+
 2007-01-06	Benedikt Meurer <benny at xfce.org>
 
 	* exo-mount-notify/main.c(signal_io_func): Do not block Thunar's

Modified: libexo/trunk/Makefile.am
===================================================================
--- libexo/trunk/Makefile.am	2007-01-07 20:23:21 UTC (rev 24291)
+++ libexo/trunk/Makefile.am	2007-01-07 21:59:39 UTC (rev 24292)
@@ -13,6 +13,7 @@
 	exo-csource							\
 	exo-support							\
 	exo-desktop-item-edit						\
+	exo-hal								\
 	exo-helper							\
 	exo-mount							\
 	$(EXO_MOUNT_NOTIFY_SUBDIR)					\

Modified: libexo/trunk/configure.in.in
===================================================================
--- libexo/trunk/configure.in.in	2007-01-07 20:23:21 UTC (rev 24291)
+++ libexo/trunk/configure.in.in	2007-01-07 21:59:39 UTC (rev 24292)
@@ -151,6 +151,11 @@
 dnl *** Check for HAL (optional) ***
 dnl ********************************
 XDT_CHECK_OPTIONAL_PACKAGE([HAL], [hal-storage], [0.5.0], [hal], [HAL support], [yes])
+if test x"$HAL_FOUND" = x"yes"; then
+  dnl # substituted into exo-hal-0.3.pc
+  HAL_STORAGE_DEPENDENCY="hal-storage"
+fi
+AC_SUBST([HAL_STORAGE_DEPENDENCY])
 
 dnl *************************
 dnl *** Check for gtk-doc ***
@@ -365,6 +370,8 @@
 exo/exo-config.h
 exo-csource/Makefile
 exo-desktop-item-edit/Makefile
+exo-hal/Makefile
+exo-hal/exo-hal-0.3.pc
 exo-helper/Makefile
 exo-helper/helpers/Makefile
 exo-mount/Makefile

Modified: libexo/trunk/docs/reference/Makefile.am
===================================================================
--- libexo/trunk/docs/reference/Makefile.am	2007-01-07 20:23:21 UTC (rev 24291)
+++ libexo/trunk/docs/reference/Makefile.am	2007-01-07 21:59:39 UTC (rev 24292)
@@ -12,7 +12,7 @@
 SCAN_OPTIONS=--deprecated-guards="EXO_DISABLE_DEPRECATED"
 
 # The directory containing the source code. Relative to $(srcdir)
-DOC_SOURCE_DIR=../../exo
+DOC_SOURCE_DIR=../..
 
 # Extra options to supply to gtkdoc-mkdb
 MKDB_OPTIONS=--sgml-mode --output-format=xml
@@ -21,8 +21,8 @@
 FIXXREF_OPTIONS=
 
 # Used for dependencies
-HFILE_GLOB=$(top_srcdir)/exo/*.h
-CFILE_GLOB=$(top_srcdir)/exo/*.c
+HFILE_GLOB=$(top_srcdir)/exo/*.h $(top_srcdir)/exo-hal/*.h
+CFILE_GLOB=$(top_srcdir)/exo/*.c $(top_srcdir)/exo-hal/*.c
 
 # Header files to ignore when scanning
 IGNORE_HFILES=

Modified: libexo/trunk/docs/reference/exo-docs.sgml
===================================================================
--- libexo/trunk/docs/reference/exo-docs.sgml	2007-01-07 20:23:21 UTC (rev 24291)
+++ libexo/trunk/docs/reference/exo-docs.sgml	2007-01-07 21:59:39 UTC (rev 24292)
@@ -23,6 +23,7 @@
 <!ENTITY exo-string SYSTEM "xml/exo-string.xml">
 <!ENTITY exo-url SYSTEM "xml/exo-url.xml">
 <!ENTITY exo-utils SYSTEM "xml/exo-utils.xml">
+<!ENTITY exo-hal SYSTEM "xml/exo-hal.xml">
 <!ENTITY exo-xsession-client SYSTEM "xml/exo-xsession-client.xml">
 <!ENTITY exo-ellipsized-label SYSTEM "xml/exo-ellipsized-label.xml">
 
@@ -31,7 +32,7 @@
 <!ENTITY visual-index SYSTEM "visual_index.xml">
 
 <!ENTITY version SYSTEM "version.xml">
-<!ENTITY date "August 2006">
+<!ENTITY date "January 2007">
 ]>
 
 <book id="index" lang="en">
@@ -44,6 +45,7 @@
       <year>2004</year>
       <year>2005</year>
       <year>2006</year>
+      <year>2007</year>
       <holder>os-cillation e.K.</holder>
     </copyright>
 
@@ -274,6 +276,7 @@
     &exo-string;
     &exo-url;
     &exo-utils;
+    &exo-hal;
     &exo-xsession-client;
   </part>
 

Modified: libexo/trunk/docs/reference/exo-sections.txt
===================================================================
--- libexo/trunk/docs/reference/exo-sections.txt	2007-01-07 20:23:21 UTC (rev 24291)
+++ libexo/trunk/docs/reference/exo-sections.txt	2007-01-07 21:59:39 UTC (rev 24292)
@@ -459,6 +459,17 @@
 </SECTION>
 
 <SECTION>
+<FILE>exo-hal</FILE>
+<TITLE>HAL Support Functions</TITLE>
+<INCLUDE>exo-hal/exo-hal.h</INCLUDE>
+exo_hal_init
+exo_hal_drive_compute_display_name
+exo_hal_drive_compute_icon_list
+exo_hal_volume_compute_display_name
+exo_hal_volume_compute_icon_list
+</SECTION>
+
+<SECTION>
 <FILE>exo-xsession-client</FILE>
 <TITLE>ExoXsessionClient</TITLE>
 ExoXsessionClient

Added: libexo/trunk/docs/reference/tmpl/exo-hal.sgml
===================================================================
--- libexo/trunk/docs/reference/tmpl/exo-hal.sgml	                        (rev 0)
+++ libexo/trunk/docs/reference/tmpl/exo-hal.sgml	2007-01-07 21:59:39 UTC (rev 24292)
@@ -0,0 +1,91 @@
+<!-- ##### SECTION Title ##### -->
+HAL Support Functions
+
+<!-- ##### SECTION Short_Description ##### -->
+Miscellaneous Utility Functions for HAL integration
+
+<!-- ##### SECTION Long_Description ##### -->
+<para>
+  This is an additional library that ships with the <application>exo</application> package and
+  offers support functions for HAL integration, that are used by <command>exo-mount</command>
+  and <command>Thunar</command> to figure out display names and icons to visually
+  present HAL devices to the user. The library may also be used by other components to offer
+  smooth integration between various parts of the desktop, making sure that the same names
+  and icons are used for devices everywhere.
+</para>
+
+<para>
+  Since HAL is currently an optional dependency for Xfce, you should first check whether HAL support is
+  really available by calling the <link linkend="exo-hal-init"><function>exo_hal_init()</function></link>
+  function, which returns <literal>TRUE</literal> if HAL support is available and the other functions will
+  be able to do their work, or <literal>FALSE</literal> if the functions will return hardcoded default
+  values instead. The <link linkend="exo-hal-init"><function>exo_hal_init()</function></link> also takes
+  care of setting up the internationalization support, so make sure you call it first.
+</para>
+
+<para>
+  The HAL support module is not part of the main <filename>exo</filename> library, so you if you want to
+  use any of these functions you will need to explicitly link to the <filename>exo-hal</filename> library.
+  This is done with the <command>pkg-config</command> utility, using <filename>exo-hal-0.3</filename> as
+  the package name.
+</para>
+
+<!-- ##### SECTION See_Also ##### -->
+<para>
+  <ulink type="http" url="http://gitweb.freedesktop.org/?p=hal.git;a=blob_plain;f=doc/spec/hal-spec.html">HAL
+  Specification</ulink>
+</para>
+
+<!-- ##### SECTION Stability_Level ##### -->
+
+
+<!-- ##### FUNCTION exo_hal_init ##### -->
+<para>
+
+</para>
+
+ at Returns: 
+
+
+<!-- ##### FUNCTION exo_hal_drive_compute_display_name ##### -->
+<para>
+
+</para>
+
+ at context: 
+ at drive: 
+ at Returns: 
+
+
+<!-- ##### FUNCTION exo_hal_drive_compute_icon_list ##### -->
+<para>
+
+</para>
+
+ at context: 
+ at drive: 
+ at Returns: 
+
+
+<!-- ##### FUNCTION exo_hal_volume_compute_display_name ##### -->
+<para>
+
+</para>
+
+ at context: 
+ at volume: 
+ at drive: 
+ at Returns: 
+
+
+<!-- ##### FUNCTION exo_hal_volume_compute_icon_list ##### -->
+<para>
+
+</para>
+
+ at context: 
+ at volume: 
+ at drive: 
+ at Returns: 
+
+


Property changes on: libexo/trunk/docs/reference/tmpl/exo-hal.sgml
___________________________________________________________________
Name: svn:keywords
   + Author Date Id Rev


Property changes on: libexo/trunk/exo-hal
___________________________________________________________________
Name: svn:ignore
   + .deps
.libs
Makefile
Makefile.in
*.pc
.*.swp


Copied: libexo/trunk/exo-hal/Makefile.am (from rev 24278, libexo/trunk/exo-mount/Makefile.am)
===================================================================
--- libexo/trunk/exo-hal/Makefile.am	                        (rev 0)
+++ libexo/trunk/exo-hal/Makefile.am	2007-01-07 21:59:39 UTC (rev 24292)
@@ -0,0 +1,37 @@
+# $Id$
+
+INCLUDES = 								\
+	-I$(top_srcdir)							\
+	-DDBUS_API_SUBJECT_TO_CHANGE					\
+	-DEXO_API_SUBJECT_TO_CHANGE					\
+	-DG_LOG_DOMAIN=\"exo-hal\"					\
+	-DPACKAGE_LOCALE_DIR=\"$(localedir)\"
+
+libexohalincludedir = $(includedir)/exo-0.3/exo-hal
+libexohalinclude_HEADERS = exo-hal.h
+
+lib_LTLIBRARIES =							\
+	libexo-hal-0.3.la
+
+libexo_hal_0_3_la_SOURCES =						\
+	$(libexohalinclude_HEADERS)					\
+	exo-hal.c
+
+libexo_hal_0_3_la_CFLAGS =						\
+	$(GLIB_CFLAGS)							\
+	$(HAL_CFLAGS)
+
+libexo_hal_0_3_la_LDFLAGS =						\
+	-export-dynamic							\
+	-version-info $(LIBEXO_VERINFO)					\
+	-export-symbols-regex "^[^_].*"					\
+	-no-undefined
+
+libexo_hal_0_3_la_LIBADD =						\
+	$(GLIB_LIBS)							\
+	$(HAL_LIBS)
+
+pkgconfigdir = $(libdir)/pkgconfig
+pkgconfig_DATA = exo-hal-0.3.pc
+
+# vi:set ts=8 sw=8 noet ai nocindent syntax=automake:

Copied: libexo/trunk/exo-hal/exo-hal-0.3.pc.in (from rev 24278, libexo/trunk/exo/exo-0.3.pc.in)
===================================================================
--- libexo/trunk/exo-hal/exo-hal-0.3.pc.in	                        (rev 0)
+++ libexo/trunk/exo-hal/exo-hal-0.3.pc.in	2007-01-07 21:59:39 UTC (rev 24292)
@@ -0,0 +1,13 @@
+prefix=@prefix@
+exec_prefix=@exec_prefix@
+libdir=@libdir@
+includedir=@includedir@
+
+exo_api_version=@LIBEXO_VERSION_API@
+
+Name: exo-hal
+Description: HAL support library for exo
+Requires: glib-2.0 @HAL_STORAGE_DEPENDENCY@
+Version: @PACKAGE_VERSION@
+Libs: -L${libdir} -lexo-hal-${exo_api_version}
+Cflags: -I${includedir}/exo-${exo_api_version}

Added: libexo/trunk/exo-hal/exo-hal.c
===================================================================
--- libexo/trunk/exo-hal/exo-hal.c	                        (rev 0)
+++ libexo/trunk/exo-hal/exo-hal.c	2007-01-07 21:59:39 UTC (rev 24292)
@@ -0,0 +1,776 @@
+/* $Id$ */
+/*-
+ * Copyright (c) 2005-2007 Benedikt Meurer <benny at xfce.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.
+ */
+
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
+
+#ifdef HAVE_LIBINTL_h
+#include <libintl.h>
+#endif
+#ifdef HAVE_LOCALE_H
+#include <locale.h>
+#endif
+
+#ifdef HAVE_HAL
+#include <libhal-storage.h>
+#endif
+
+#include <glib/gi18n-lib.h>
+
+#include <exo-hal/exo-hal.h>
+
+
+
+#ifdef HAVE_HAL
+/* HAL icon mappings, borrowed from gnome-vfs-hal-mounts.c (Revision 5187) */
+typedef enum
+{
+  HAL_ICON_DRIVE_REMOVABLE_DISK           = 0x10000,
+  HAL_ICON_DRIVE_REMOVABLE_DISK_IDE       = 0x10001,
+  HAL_ICON_DRIVE_REMOVABLE_DISK_SCSI      = 0x10002,
+  HAL_ICON_DRIVE_REMOVABLE_DISK_USB       = 0x10003,
+  HAL_ICON_DRIVE_REMOVABLE_DISK_IEEE1394  = 0x10004,
+  HAL_ICON_DRIVE_REMOVABLE_DISK_CCW       = 0x10005,
+  HAL_ICON_DRIVE_DISK                     = 0x10100,
+  HAL_ICON_DRIVE_DISK_IDE                 = 0x10101,
+  HAL_ICON_DRIVE_DISK_SCSI                = 0x10102,
+  HAL_ICON_DRIVE_DISK_USB                 = 0x10103,
+  HAL_ICON_DRIVE_DISK_IEEE1394            = 0x10104,
+  HAL_ICON_DRIVE_DISK_CCW                 = 0x10105,
+  HAL_ICON_DRIVE_CDROM                    = 0x10200,
+  HAL_ICON_DRIVE_CDWRITER                 = 0x102ff,
+  HAL_ICON_DRIVE_FLOPPY                   = 0x10300,
+  HAL_ICON_DRIVE_TAPE                     = 0x10400,
+  HAL_ICON_DRIVE_COMPACT_FLASH            = 0x10500,
+  HAL_ICON_DRIVE_MEMORY_STICK             = 0x10600,
+  HAL_ICON_DRIVE_SMART_MEDIA              = 0x10700,
+  HAL_ICON_DRIVE_SD_MMC                   = 0x10800,
+  HAL_ICON_DRIVE_CAMERA                   = 0x10900,
+  HAL_ICON_DRIVE_PORTABLE_AUDIO_PLAYER    = 0x10a00,
+  HAL_ICON_DRIVE_ZIP                      = 0x10b00,
+  HAL_ICON_DRIVE_JAZ                      = 0x10c00,
+  HAL_ICON_DRIVE_FLASH_KEY                = 0x10d00,
+
+  HAL_ICON_VOLUME_REMOVABLE_DISK          = 0x20000,
+  HAL_ICON_VOLUME_REMOVABLE_DISK_IDE      = 0x20001,
+  HAL_ICON_VOLUME_REMOVABLE_DISK_SCSI     = 0x20002,
+  HAL_ICON_VOLUME_REMOVABLE_DISK_USB      = 0x20003,
+  HAL_ICON_VOLUME_REMOVABLE_DISK_IEEE1394 = 0x20004,
+  HAL_ICON_VOLUME_REMOVABLE_DISK_CCW      = 0x20005,
+  HAL_ICON_VOLUME_DISK                    = 0x20100,
+  HAL_ICON_VOLUME_DISK_IDE                = 0x20101,
+  HAL_ICON_VOLUME_DISK_SCSI               = 0x20102,
+  HAL_ICON_VOLUME_DISK_USB                = 0x20103,
+  HAL_ICON_VOLUME_DISK_IEEE1394           = 0x20104,
+  HAL_ICON_VOLUME_DISK_CCW                = 0x20105,
+  /* specifically left out as we use icons based on media type in the optical drive
+  HAL_ICON_VOLUME_CDROM                   = 0x20200 */
+  HAL_ICON_VOLUME_FLOPPY                  = 0x20300,
+  HAL_ICON_VOLUME_TAPE                    = 0x20400,
+  HAL_ICON_VOLUME_COMPACT_FLASH           = 0x20500,
+  HAL_ICON_VOLUME_MEMORY_STICK            = 0x20600,
+  HAL_ICON_VOLUME_SMART_MEDIA             = 0x20700,
+  HAL_ICON_VOLUME_SD_MMC                  = 0x20800,
+  HAL_ICON_VOLUME_CAMERA                  = 0x20900,
+  HAL_ICON_VOLUME_PORTABLE_AUDIO_PLAYER   = 0x20a00,
+  HAL_ICON_VOLUME_ZIP                     = 0x20b00,
+  HAL_ICON_VOLUME_JAZ                     = 0x20c00,
+  HAL_ICON_VOLUME_FLASH_KEY               = 0x20d00,
+
+  HAL_ICON_DISC_CDROM                     = 0x30000,
+  HAL_ICON_DISC_CDR                       = HAL_ICON_DISC_CDROM + LIBHAL_VOLUME_DISC_TYPE_CDR,
+  HAL_ICON_DISC_CDRW                      = HAL_ICON_DISC_CDROM + LIBHAL_VOLUME_DISC_TYPE_CDRW,
+  HAL_ICON_DISC_DVDROM                    = HAL_ICON_DISC_CDROM + LIBHAL_VOLUME_DISC_TYPE_DVDROM,
+  HAL_ICON_DISC_DVDRAM                    = HAL_ICON_DISC_CDROM + LIBHAL_VOLUME_DISC_TYPE_DVDRAM,
+  HAL_ICON_DISC_DVDR                      = HAL_ICON_DISC_CDROM + LIBHAL_VOLUME_DISC_TYPE_DVDR,
+  HAL_ICON_DISC_DVDRW                     = HAL_ICON_DISC_CDROM + LIBHAL_VOLUME_DISC_TYPE_DVDRW,
+  HAL_ICON_DISC_DVDPLUSR                  = HAL_ICON_DISC_CDROM + LIBHAL_VOLUME_DISC_TYPE_DVDPLUSR,
+  HAL_ICON_DISC_DVDPLUSRW                 = HAL_ICON_DISC_CDROM + LIBHAL_VOLUME_DISC_TYPE_DVDPLUSRW,
+  HAL_ICON_DISC_DVDPLUSR_DL               = HAL_ICON_DISC_CDROM + LIBHAL_VOLUME_DISC_TYPE_DVDPLUSR_DL,
+} HalIcon;
+
+typedef struct
+{
+  HalIcon     icon;
+  const gchar name[25];
+} HalIconPair;
+
+/* by design, the enums are laid out so we can do easy computations */
+static const HalIconPair hal_icon_mapping[] =
+{
+#if 0 /* gnome-dev-removable is the fallback */
+  { HAL_ICON_DRIVE_REMOVABLE_DISK,           "gnome-dev-removable" },
+  { HAL_ICON_DRIVE_REMOVABLE_DISK_IDE,       "gnome-dev-removable" },
+  { HAL_ICON_DRIVE_REMOVABLE_DISK_SCSI,      "gnome-dev-removable" },
+#endif
+  { HAL_ICON_DRIVE_REMOVABLE_DISK_USB,       "gnome-dev-removable-usb" },
+  { HAL_ICON_DRIVE_REMOVABLE_DISK_IEEE1394,  "gnome-dev-removable-1394" },
+#if 0 /* gnome-dev-removable is the fallback */
+  { HAL_ICON_DRIVE_REMOVABLE_DISK_CCW,       "gnome-dev-removable" },
+  { HAL_ICON_DRIVE_DISK,                     "gnome-dev-removable" },
+  { HAL_ICON_DRIVE_DISK_IDE,                 "gnome-dev-removable" },
+  { HAL_ICON_DRIVE_DISK_SCSI,                "gnome-dev-removable" },       /* TODO: gnome-dev-removable-scsi */
+#endif
+  { HAL_ICON_DRIVE_DISK_USB,                 "gnome-dev-removable-usb" },
+  { HAL_ICON_DRIVE_DISK_IEEE1394,            "gnome-dev-removable-1394" },
+#if 0 /* gnome-dev-removable is the fallback */
+  { HAL_ICON_DRIVE_DISK_CCW,                 "gnome-dev-removable" },
+  { HAL_ICON_DRIVE_CDROM,                    "gnome-dev-removable" },       /* TODO: gnome-dev-removable-cdrom */
+  { HAL_ICON_DRIVE_CDWRITER,                 "gnome-dev-removable" },       /* TODO: gnome-dev-removable-cdwriter */
+#endif
+  { HAL_ICON_DRIVE_FLOPPY,                   "gnome-dev-floppy" },
+#if 0 /* gnome-dev-removable is the fallback */
+  { HAL_ICON_DRIVE_TAPE,                     "gnome-dev-removable" },       /* TODO: gnome-dev-removable-tape */
+#endif
+  { HAL_ICON_DRIVE_COMPACT_FLASH,            "gnome-dev-media-cf" },
+  { HAL_ICON_DRIVE_MEMORY_STICK,             "gnome-dev-media-ms" },
+  { HAL_ICON_DRIVE_SMART_MEDIA,              "gnome-dev-media-sm" },
+  { HAL_ICON_DRIVE_SD_MMC,                   "gnome-dev-media-sdmmc" },
+  { HAL_ICON_DRIVE_CAMERA,                   "camera-photo" },
+  { HAL_ICON_DRIVE_PORTABLE_AUDIO_PLAYER,    "gnome-dev-ipod" },
+  { HAL_ICON_DRIVE_ZIP,                      "gnome-dev-zipdisk" },
+  { HAL_ICON_DRIVE_JAZ,                      "gnome-dev-jazdisk" },
+#if 0 /* gnome-dev-removable is the fallback */
+  { HAL_ICON_DRIVE_FLASH_KEY,                "gnome-dev-removable" },       /* TODO: gnome-dev-removable-pendrive */
+#endif
+
+  { HAL_ICON_VOLUME_REMOVABLE_DISK,          "gnome-dev-harddisk" },
+  { HAL_ICON_VOLUME_REMOVABLE_DISK_IDE,      "gnome-dev-harddisk" },
+  { HAL_ICON_VOLUME_REMOVABLE_DISK_SCSI,     "gnome-dev-harddisk" },        /* TODO: gnome-dev-harddisk-scsi */
+  { HAL_ICON_VOLUME_REMOVABLE_DISK_USB,      "gnome-dev-harddisk-usb" },
+  { HAL_ICON_VOLUME_REMOVABLE_DISK_IEEE1394, "gnome-dev-harddisk-1394" },
+  { HAL_ICON_VOLUME_REMOVABLE_DISK_CCW,      "gnome-dev-harddisk" },
+  { HAL_ICON_VOLUME_DISK,                    "gnome-dev-harddisk" },
+  { HAL_ICON_VOLUME_DISK_IDE,                "gnome-dev-harddisk" },
+  { HAL_ICON_VOLUME_DISK_SCSI,               "gnome-dev-harddisk" },
+  { HAL_ICON_VOLUME_DISK_USB,                "gnome-dev-harddisk-usb" },
+  { HAL_ICON_VOLUME_DISK_IEEE1394,           "gnome-dev-harddisk-1394" },
+  { HAL_ICON_VOLUME_DISK_CCW,                "gnome-dev-harddisk" },
+  { HAL_ICON_VOLUME_FLOPPY,                  "gnome-dev-floppy" },
+  { HAL_ICON_VOLUME_TAPE,                    "gnome-dev-harddisk" },
+  { HAL_ICON_VOLUME_COMPACT_FLASH,           "gnome-dev-media-cf" },
+  { HAL_ICON_VOLUME_MEMORY_STICK,            "gnome-dev-media-ms" },
+  { HAL_ICON_VOLUME_SMART_MEDIA,             "gnome-dev-media-sm" },
+  { HAL_ICON_VOLUME_SD_MMC,                  "gnome-dev-media-sdmmc" },
+  { HAL_ICON_VOLUME_CAMERA,                  "camera-photo" },
+  { HAL_ICON_VOLUME_PORTABLE_AUDIO_PLAYER,   "gnome-dev-ipod" },
+  { HAL_ICON_VOLUME_ZIP,                     "gnome-dev-zipdisk" },
+  { HAL_ICON_VOLUME_JAZ,                     "gnome-dev-jazdisk" },
+  { HAL_ICON_VOLUME_FLASH_KEY,               "gnome-dev-harddisk" },        /* TODO: gnome-dev-pendrive */
+
+  { HAL_ICON_DISC_CDROM,                     "gnome-dev-cdrom" },
+  { HAL_ICON_DISC_CDR,                       "gnome-dev-disc-cdr" },
+  { HAL_ICON_DISC_CDRW,                      "gnome-dev-disc-cdrw" },
+  { HAL_ICON_DISC_DVDROM,                    "gnome-dev-disc-dvdrom" },
+  { HAL_ICON_DISC_DVDRAM,                    "gnome-dev-disc-dvdram" },
+  { HAL_ICON_DISC_DVDR,                      "gnome-dev-disc-dvdr" },
+  { HAL_ICON_DISC_DVDRW,                     "gnome-dev-disc-dvdrw" },
+  { HAL_ICON_DISC_DVDPLUSR,                  "gnome-dev-disc-dvdr-plus" },
+  { HAL_ICON_DISC_DVDPLUSRW,                 "gnome-dev-disc-dvdrw" },      /* TODO: gnome-dev-disc-dvdrw-plus */
+  { HAL_ICON_DISC_DVDPLUSR_DL,               "gnome-dev-disc-dvdr-plus" },  /* TODO: gnome-dev-disc-dvdr-plus-dl */
+};
+
+static const gchar*
+exo_hal_lookup_icon_name (HalIcon icon)
+{
+  guint n;
+
+  for (n = 0; n < G_N_ELEMENTS (hal_icon_mapping); ++n)
+    if (hal_icon_mapping[n].icon == icon)
+      return hal_icon_mapping[n].name;
+
+  return NULL;
+}
+#endif
+
+
+
+/**
+ * exo_hal_init:
+ *
+ * Initializes the HAL support module, which includes setting up the
+ * internationalization support. Returns %TRUE if support for HAL was
+ * enabled at compile time, %FALSE otherwise.
+ *
+ * Make sure you call this function first prior to calling any of the
+ * functions below.
+ *
+ * Return value: %TRUE if HAL support is available, %FALSE otherwise.
+ *
+ * Since: 0.3.1.13
+ **/
+gboolean
+exo_hal_init (void)
+{
+#ifdef HAVE_HAL
+  /* setup the i18n support */
+  bindtextdomain (GETTEXT_PACKAGE, PACKAGE_LOCALE_DIR);
+#ifdef HAVE_BIND_TEXTDOMAIN_CODESET
+  bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8");
+#endif
+
+  /* tell the caller that we generally support HAL */
+  return TRUE;
+#else
+  /* tell the caller that we do not support HAL */
+  return FALSE;
+#endif
+}
+
+
+
+/**
+ * exo_hal_drive_compute_display_name:
+ * @context : a #LibHalContext, connected to the HAL daemon.
+ * @drive   : a #LibHalDrive.
+ *
+ * Computes a usable display name that should be used to present
+ * @drive to the user. May return %NULL if it's unable to determine
+ * a display name (i.e. if HAL support is not available), in which
+ * case the caller should try to come up with a fallback name on
+ * it's own (i.e. using the basename of the @drive<!---->s device
+ * file or something like that).
+ *
+ * The caller is responsible to free the returned string using
+ * g_free() when no longer needed.
+ *
+ * Return value: a display name for the @drive that should be used
+ *               to present the @drive to the user or %NULL if the
+ *               function is unable to come up with a usable name
+ *               and the caller should figure out a fallback name
+ *               on its own.
+ *
+ * Since: 0.3.1.13
+ **/
+gchar*
+exo_hal_drive_compute_display_name (struct LibHalContext_s *context,
+                                    struct LibHalDrive_s   *drive)
+{
+#ifdef HAVE_HAL
+  LibHalDriveCdromCaps cdrom_caps;
+  const gchar         *vendor;
+  const gchar         *model;
+  const gchar         *second;
+  const gchar         *first;
+  gchar               *display_name;
+  gchar               *name;
+
+  g_return_val_if_fail (context != NULL, NULL);
+  g_return_val_if_fail (drive != NULL, NULL);
+
+  /* determine the vendor and the model */
+  vendor = libhal_drive_get_vendor (drive);
+  model = libhal_drive_get_model (drive);
+
+  /* display name depends on the drive type */
+  switch (libhal_drive_get_type (drive))
+    {
+    case LIBHAL_DRIVE_TYPE_CDROM:
+      /* determine the capabilities of the CD-ROM drive */
+      cdrom_caps = libhal_drive_get_cdrom_caps (drive);
+
+      /* determine the first capability of the drive */
+      if ((cdrom_caps & LIBHAL_DRIVE_CDROM_CAPS_CDRW) != 0)
+        first = "CD-RW";
+      else if ((cdrom_caps & LIBHAL_DRIVE_CDROM_CAPS_CDR) != 0)
+        first = "CD-R";
+      else
+        first = "CD-ROM";
+
+      /* determine the second capability of the drive (if any) */
+      if ((cdrom_caps & LIBHAL_DRIVE_CDROM_CAPS_HDDVDRW) != 0)
+        second = "/HD DVD-RW";
+      else if ((cdrom_caps & LIBHAL_DRIVE_CDROM_CAPS_HDDVDR) != 0)
+        second = "/HD DVD-R";
+      else if ((cdrom_caps & LIBHAL_DRIVE_CDROM_CAPS_HDDVDROM) != 0)
+        second = "/HD DVD-ROM";
+      else if ((cdrom_caps & LIBHAL_DRIVE_CDROM_CAPS_BDRE) != 0)
+        second = "/BD-RE";
+      else if ((cdrom_caps & LIBHAL_DRIVE_CDROM_CAPS_BDR) != 0)
+        second = "/BD-R";
+      else if ((cdrom_caps & LIBHAL_DRIVE_CDROM_CAPS_BDROM) != 0)
+        second = "/BD-ROM";
+      else if ((cdrom_caps & LIBHAL_DRIVE_CDROM_CAPS_DVDRW) != 0
+            && (cdrom_caps & LIBHAL_DRIVE_CDROM_CAPS_DVDPLUSRW) != 0)
+        {
+          if ((cdrom_caps & LIBHAL_DRIVE_CDROM_CAPS_DVDPLUSRDL) != 0 || (cdrom_caps & LIBHAL_DRIVE_CDROM_CAPS_DVDPLUSRWDL) != 0)
+            second = "/DVD±RW DL";
+          else
+            second = "/DVD±RW";
+        }
+      else if ((cdrom_caps & LIBHAL_DRIVE_CDROM_CAPS_DVDR) != 0
+            && (cdrom_caps & LIBHAL_DRIVE_CDROM_CAPS_DVDPLUSR) != 0)
+        {
+          if ((cdrom_caps & LIBHAL_DRIVE_CDROM_CAPS_DVDPLUSRDL) != 0)
+            second = "/DVD±R DL";
+          else
+            second = "/DVD±R";
+        }
+      else if ((cdrom_caps & LIBHAL_DRIVE_CDROM_CAPS_DVDRAM) != 0)
+        second = "/DVD-RAM";
+      else if ((cdrom_caps & LIBHAL_DRIVE_CDROM_CAPS_DVDRW) != 0)
+        second = "/DVD-RW";
+      else if ((cdrom_caps & LIBHAL_DRIVE_CDROM_CAPS_DVDR) != 0)
+        second = "/DVD-R";
+      else if ((cdrom_caps & LIBHAL_DRIVE_CDROM_CAPS_DVDPLUSRW) != 0)
+        second = "/DVD+RW";
+      else if ((cdrom_caps & LIBHAL_DRIVE_CDROM_CAPS_DVDPLUSR) != 0)
+        second = "/DVD+R";
+      else if ((cdrom_caps & LIBHAL_DRIVE_CDROM_CAPS_DVDROM) != 0)
+        second = "/DVD-ROM";
+      else
+        second = "";
+
+      /* combine the capabilities */
+      name = g_strconcat (first, second, NULL);
+
+      /* now the exact name depends on whether the drive is hotpluggable */
+      if (G_UNLIKELY (libhal_drive_is_hotpluggable (drive)))
+        display_name = g_strdup_printf (_("External %s Drive"), name);
+      else
+        display_name = g_strdup_printf (_("%s Drive"), name);
+
+      /* cleanup */
+      g_free (name);
+      break;
+
+    case LIBHAL_DRIVE_TYPE_FLOPPY:
+      /* we support both internal and external floppy drives */
+      if (G_UNLIKELY (libhal_drive_is_hotpluggable (drive)))
+        display_name = g_strdup (_("External Floppy Drive"));
+      else
+        display_name = g_strdup (_("Floppy Drive"));
+      break;
+
+    case LIBHAL_DRIVE_TYPE_COMPACT_FLASH:
+      display_name = g_strdup (_("Compact Flash Drive"));
+      break;
+
+    case LIBHAL_DRIVE_TYPE_MEMORY_STICK:
+      display_name = g_strdup (_("Memory Stick Drive"));
+      break;
+
+    case LIBHAL_DRIVE_TYPE_SMART_MEDIA:
+      display_name = g_strdup (_("Smart Media Drive"));
+      break;
+
+    case LIBHAL_DRIVE_TYPE_SD_MMC:
+      display_name = g_strdup (_("SD/MMC Drive"));
+      break;
+
+    case LIBHAL_DRIVE_TYPE_ZIP:
+      display_name = g_strdup (_("Zip Drive"));
+      break;
+
+    case LIBHAL_DRIVE_TYPE_JAZ:
+      display_name = g_strdup (_("Jaz Drive"));
+      break;
+
+    case LIBHAL_DRIVE_TYPE_FLASHKEY:
+      display_name = g_strdup (_("Pen Drive"));
+      break;
+
+    case LIBHAL_DRIVE_TYPE_PORTABLE_AUDIO_PLAYER:
+      /* combine the vendor and model (dropping any redundant whitespace) */
+      name = g_strdup_printf ("%s %s", (vendor != NULL) ? vendor : "", (model != NULL) ? model : "");
+      g_strstrip (name);
+
+      /* TRANSLATORS: This string requires special care as %s may be the empty string. Trailing/leading whitespace will be removed. */
+      display_name = g_strdup_printf (_("%s Music Player"), name);
+
+      /* strip the display name */
+      g_strstrip (display_name);
+
+      /* cleanup */
+      g_free (name);
+      break;
+
+    case LIBHAL_DRIVE_TYPE_CAMERA:
+      /* combine the vendor and model (dropping any redundant whitespace) */
+      name = g_strdup_printf ("%s %s", (vendor != NULL) ? vendor : "", (model != NULL) ? model : "");
+      g_strstrip (name);
+
+      /* TRANSLATORS: This string requires special care as %s may be the empty string. Trailing/leading whitespace will be removed. */
+      display_name = g_strdup_printf (_("%s Digital Camera"), name);
+
+      /* strip the display name */
+      g_strstrip (display_name);
+
+      /* cleanup */
+      g_free (name);
+      break;
+
+    default:
+      /* generate a display name from the vendor and the model */
+      display_name = g_strdup_printf ("%s %s", (vendor != NULL) ? vendor : "", (model != NULL) ? model : "");
+
+      /* drop additional whitespace */
+      g_strstrip (display_name);
+
+      /* check if we still don't have a name */
+      if (G_UNLIKELY (*display_name == '\0'))
+        {
+          /* cleanup */
+          g_free (display_name);
+
+          /* last fallback to "Drive" */
+          display_name = g_strdup (_("Drive"));
+        }
+      break;
+    }
+
+  return display_name;
+#else
+  /* HAL is not available, impossible to figure out
+   * a usable display name for the given drive...
+   */
+  return NULL;
+#endif
+}
+
+
+
+/**
+ * exo_hal_drive_compute_icon_list:
+ * @context    : a #LibHalContext, connected to the HAL daemon.
+ * @drive      : a #LibHalDrive.
+ *
+ * Tries to find a list of icon names that may be used to visually present @drive
+ * to the user. The list is sorted by relevance, with the best icon matches
+ * appearing first in the list.
+ *
+ * The caller is responsible to free the returned list using
+ * <informalexample><programlisting>
+ * g_list_foreach (list, (GFunc) g_free, NULL);
+ * g_list_free (list);
+ * </programlisting></informalexample>
+ * when no longer needed.
+ *
+ * Return value: a list of icon names for icons that can be used to visually
+ *               represent the @drive to the user.
+ *
+ * Since: 0.3.1.13
+ **/
+GList*
+exo_hal_drive_compute_icon_list (struct LibHalContext_s *context,
+                                 struct LibHalDrive_s   *drive)
+{
+  GList               *icon_list = NULL;
+
+#ifdef HAVE_HAL
+  LibHalDriveCdromCaps cdrom_caps;
+  LibHalDriveType      type;
+  LibHalDriveBus       bus;
+  const gchar         *icon_name;
+
+  g_return_val_if_fail (context != NULL, NULL);
+  g_return_val_if_fail (drive != NULL, NULL);
+
+  /* check if a dedicated drive icon name is known */
+  icon_name = libhal_drive_get_dedicated_icon_drive (drive);
+  if (G_UNLIKELY (icon_name != NULL))
+    icon_list = g_list_append (icon_list, g_strdup (icon_name));
+
+  /* determine the type and bus of the drive */
+  type = libhal_drive_get_type (drive);
+  bus = libhal_drive_get_bus (drive);
+
+  /* lookup depends on the drive type */
+  switch (type)
+    {
+    case LIBHAL_DRIVE_TYPE_CDROM:
+      /* determine the CD-ROM capabilities */
+      cdrom_caps = libhal_drive_get_cdrom_caps (drive);
+
+      /* check if this is a CD/DVD writer */
+      if ((cdrom_caps & (LIBHAL_DRIVE_CDROM_CAPS_CDROM | LIBHAL_DRIVE_CDROM_CAPS_DVDROM)) != cdrom_caps)
+        {
+          /* check if we have a specific writer icon here */
+          icon_name = exo_hal_lookup_icon_name (0x10000 + type * 0x100 + 0xff);
+          if (G_LIKELY (icon_name != NULL))
+            icon_list = g_list_append (icon_list, g_strdup (icon_name));
+        }
+      break;
+
+    case LIBHAL_DRIVE_TYPE_DISK:
+    case LIBHAL_DRIVE_TYPE_REMOVABLE_DISK:
+      /* lookup an icon based on the type and the bus */
+      icon_name = exo_hal_lookup_icon_name (0x10000 + type * 0x100 + bus);
+      if (G_LIKELY (icon_name != NULL))
+        icon_list = g_list_append (icon_list, g_strdup (icon_name));
+      break;
+
+    default:
+      /* fallback below */
+      break;
+    }
+
+  /* lookup an icon based solely on the drive type */
+  icon_name = exo_hal_lookup_icon_name (0x10000 + type * 0x100);
+  if (G_LIKELY (icon_name != NULL))
+    icon_list = g_list_append (icon_list, g_strdup (icon_name));
+#endif
+
+  /* gnome-dev-removable is always the last fallback */
+  return g_list_append (icon_list, g_strdup ("gnome-dev-removable"));
+}
+
+
+
+/**
+ * exo_hal_volume_compute_display_name:
+ * @context : a #LibHalContext, connected to the HAL daemon.
+ * @volume  : a #LibHalVolume.
+ * @drive   : the #LibHalDrive of the @volume.
+ *
+ * Similar to exo_hal_drive_compute_display_name(), but tries to find a
+ * suitable display name for the @volume first, falling back to @drive
+ * under certain conditions. This function may return %NULL if no
+ * suitable display name was found.
+ *
+ * The caller is responsible to free the returned string using g_free()
+ * when no longer needed.
+ *
+ * Return value: the display name for the @volume or %NULL if the
+ *               function is unable to determine the display name.
+ *
+ * Since: 0.3.1.13
+ **/
+gchar*
+exo_hal_volume_compute_display_name (struct LibHalContext_s *context,
+                                     struct LibHalVolume_s  *volume,
+                                     struct LibHalDrive_s   *drive)
+{
+#ifdef HAVE_HAL
+  static const gchar UNITS[] = "KMGT";
+  const gchar       *label;
+  guint64            size;
+  guint64            m;
+  gchar             *display_name;
+  gchar             *size_string;
+  guint              n;
+
+
+  g_return_val_if_fail (context != NULL, NULL);
+  g_return_val_if_fail (volume != NULL, NULL);
+  g_return_val_if_fail (drive != NULL, NULL);
+
+  /* check if the volume specifies a usable label */
+  label = libhal_volume_get_label (volume);
+  if (G_LIKELY (label != NULL && *label != '\0'))
+    {
+      /* just use the volume label */
+      display_name = g_strdup (label);
+    }
+  else
+    {
+      /* guess display name based on the drive type */
+      switch (libhal_drive_get_type (drive))
+        {
+        case LIBHAL_DRIVE_TYPE_CDROM:
+          /* check if we don't have a pure audio disc */
+          if (libhal_volume_disc_has_data (volume) || !libhal_volume_disc_has_audio (volume))
+            {
+              /* handle (blank) data discs */
+              switch (libhal_volume_get_disc_type (volume))
+                {
+                case LIBHAL_VOLUME_DISC_TYPE_CDR:
+                  label = "CD-R";
+                  break;
+
+                case LIBHAL_VOLUME_DISC_TYPE_CDRW:
+                  label = "CD-RW";
+                  break;
+
+                case LIBHAL_VOLUME_DISC_TYPE_DVDROM:
+                  label = "DVD-ROM";
+                  break;
+
+                case LIBHAL_VOLUME_DISC_TYPE_DVDRAM:
+                  label = "DVD-RAM";
+                  break;
+
+                case LIBHAL_VOLUME_DISC_TYPE_DVDR:
+                  label = "DVD-R";
+                  break;
+
+                case LIBHAL_VOLUME_DISC_TYPE_DVDRW:
+                  label = "DVD-RW";
+                  break;
+
+                case LIBHAL_VOLUME_DISC_TYPE_DVDPLUSR:
+                  label = "DVD+R";
+                  break;
+
+                case LIBHAL_VOLUME_DISC_TYPE_DVDPLUSRW:
+                  label = "DVD+RW";
+                  break;
+
+                case LIBHAL_VOLUME_DISC_TYPE_DVDPLUSR_DL:
+                  label = "DVD+R DL";
+                  break;
+
+                case LIBHAL_VOLUME_DISC_TYPE_BDROM:
+                  label = "BD-ROM";
+                  break;
+
+                case LIBHAL_VOLUME_DISC_TYPE_BDR:
+                  label = "BD-R";
+                  break;
+
+                case LIBHAL_VOLUME_DISC_TYPE_BDRE:
+                  label = "BD-RE";
+                  break;
+
+                case LIBHAL_VOLUME_DISC_TYPE_HDDVDROM:
+                  label = "HD DVD-ROM";
+                  break;
+
+                case LIBHAL_VOLUME_DISC_TYPE_HDDVDR:
+                  label = "HD DVD-R";
+                  break;
+
+                case LIBHAL_VOLUME_DISC_TYPE_HDDVDRW:
+                  label = "HD DVD-RW";
+                  break;
+
+                default: /* everything else is just a CD-ROM */
+                  label = "CD-ROM";
+                  break;
+                }
+
+              /* display name depends on whether the disc is blank */
+              if (G_UNLIKELY (libhal_volume_disc_is_blank (volume)))
+                display_name = g_strdup_printf (_("Blank %s Disc"), label);
+              else
+                display_name = g_strdup_printf (_("%s Disc"), label);
+            }
+          else
+            {
+              /* special case for pure audio disc */
+              display_name = g_strdup (_("Audio CD"));
+            }
+          break;
+
+        case LIBHAL_DRIVE_TYPE_FLOPPY:
+        case LIBHAL_DRIVE_TYPE_COMPACT_FLASH:
+        case LIBHAL_DRIVE_TYPE_MEMORY_STICK:
+        case LIBHAL_DRIVE_TYPE_SMART_MEDIA:
+        case LIBHAL_DRIVE_TYPE_SD_MMC:
+        case LIBHAL_DRIVE_TYPE_ZIP:
+        case LIBHAL_DRIVE_TYPE_JAZ:
+        case LIBHAL_DRIVE_TYPE_FLASHKEY:
+        case LIBHAL_DRIVE_TYPE_PORTABLE_AUDIO_PLAYER:
+          /* use the display name of the drive instead */
+          display_name = exo_hal_drive_compute_display_name (context, drive);
+          break;
+
+        default:
+          /* fallback to size of media */
+          size = libhal_volume_get_size (volume);
+          for (m = 1000, n = 0;; m *= 1000, ++n)
+            {
+              /* check if we found the unit */
+              if (UNITS[n + 1] == '\0' || size < m * 1000u)
+                {
+                  /* display a comma number if result is a single digit */
+                  if (G_LIKELY (size < n * 10))
+                    size_string = g_strdup_printf ("%.01f%c", ((gdouble) size) / ((gdouble) m), UNITS[n]);
+                  else
+                    size_string = g_strdup_printf ("%lld%c", size / m, UNITS[n]);
+                  break;
+                }
+            }
+
+          /* generate the display name from the size string */
+          if (G_UNLIKELY (libhal_drive_uses_removable_media (drive)))
+            display_name = g_strdup_printf (_("%s Removable Volume"), size_string);
+          else
+            display_name = g_strdup_printf (_("%s Volume"), size_string);
+          g_free (size_string);
+        }
+    }
+
+  return display_name;
+#else
+  /* HAL is not available, impossible to figure out
+   * a usable display name for the given volume...
+   */
+  return NULL;
+#endif
+}
+
+
+
+/**
+ * exo_hal_volume_compute_icon_list:
+ * @context    : a #LibHalContext, connected to the HAL daemon.
+ * @volume     : a #LibHalVolume.
+ * @drive      : the #LibHalDrive of the @volume.
+ *
+ * Similar to exo_hal_drive_compute_icon_name(), but first looks for
+ * icons for @volume, falling back to an icons for @drive.
+ *
+ * The caller is responsible to free the returned list using
+ * <informalexample><programlisting>
+ * g_list_foreach (list, (GFunc) g_free, NULL);
+ * g_list_free (list);
+ * </programlisting></informalexample>
+ * when no longer needed.
+ *
+ * Return value: a list of icon names for icons that can be used to visually
+ *               represent the @volume to the user.
+ *
+ * Since: 0.3.1.13
+ **/
+GList*
+exo_hal_volume_compute_icon_list (struct LibHalContext_s *context,
+                                  struct LibHalVolume_s  *volume,
+                                  struct LibHalDrive_s   *drive)
+{
+  GList       *icon_list = NULL;
+
+#ifdef HAVE_HAL
+  const gchar *icon_name;
+
+  g_return_val_if_fail (context != NULL, NULL);
+  g_return_val_if_fail (volume != NULL, NULL);
+  g_return_val_if_fail (drive != NULL, NULL);
+
+  /* check if a dedicated volume icon name is known */
+  icon_name = libhal_drive_get_dedicated_icon_volume (drive);
+  if (G_UNLIKELY (icon_name != NULL))
+    icon_list = g_list_append (icon_list, g_strdup (icon_name));
+
+  /* check if we have a disc based volume */
+  if (libhal_volume_is_disc (volume))
+    {
+      /* look for an icon for this specific disc type */
+      icon_name = exo_hal_lookup_icon_name (HAL_ICON_DISC_CDROM + libhal_volume_get_disc_type (volume));
+      if (G_LIKELY (icon_name != NULL))
+        icon_list = g_list_append (icon_list, g_strdup (icon_name));
+    }
+#endif
+
+  /* merge with the drive specific icon list */
+  return g_list_concat (icon_list, exo_hal_drive_compute_icon_list (context, drive));
+}
+
+


Property changes on: libexo/trunk/exo-hal/exo-hal.c
___________________________________________________________________
Name: svn:keywords
   + Author Date Id Rev

Added: libexo/trunk/exo-hal/exo-hal.h
===================================================================
--- libexo/trunk/exo-hal/exo-hal.h	                        (rev 0)
+++ libexo/trunk/exo-hal/exo-hal.h	2007-01-07 21:59:39 UTC (rev 24292)
@@ -0,0 +1,59 @@
+/* $Id$ */
+/*-
+ * Copyright (c) 2005-2007 Benedikt Meurer <benny at xfce.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.
+ */
+
+#ifndef __EXO_HAL_H__
+#define __EXO_HAL_H__
+
+#include <glib.h>
+
+G_BEGIN_DECLS;
+
+/* forward declarations for libhal-storage */
+#ifndef LIBHAL_STORAGE_H
+struct LibHalContext_s;
+struct LibHalVolume_s;
+struct LibHalDrive_s;
+#endif
+
+/* verify that G_GNUC_WARN_UNUSED_RESULT is defined */
+#if !defined(G_GNUC_WARN_UNUSED_RESULT)
+#if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4)
+#define G_GNUC_WARN_UNUSED_RESULT __attribute__((warn_unused_result))
+#else
+#define G_GNUC_WARN_UNUSED_RESULT
+#endif /* __GNUC__ */
+#endif /* !defined(G_GNUC_WARN_UNUSED_RESULT) */
+
+gboolean exo_hal_init                         (void);
+
+gchar   *exo_hal_drive_compute_display_name   (struct LibHalContext_s *context,
+                                               struct LibHalDrive_s   *drive) G_GNUC_MALLOC G_GNUC_WARN_UNUSED_RESULT;
+GList   *exo_hal_drive_compute_icon_list      (struct LibHalContext_s *context,
+                                               struct LibHalDrive_s   *drive) G_GNUC_MALLOC G_GNUC_WARN_UNUSED_RESULT;
+
+gchar   *exo_hal_volume_compute_display_name  (struct LibHalContext_s *context,
+                                               struct LibHalVolume_s  *volume,
+                                               struct LibHalDrive_s   *drive) G_GNUC_MALLOC G_GNUC_WARN_UNUSED_RESULT;
+GList   *exo_hal_volume_compute_icon_list     (struct LibHalContext_s *context,
+                                               struct LibHalVolume_s  *volume,
+                                               struct LibHalDrive_s   *drive) G_GNUC_MALLOC G_GNUC_WARN_UNUSED_RESULT;
+
+G_END_DECLS;
+
+#endif /* !__EXO_HAL_H__ */


Property changes on: libexo/trunk/exo-hal/exo-hal.h
___________________________________________________________________
Name: svn:keywords
   + Author Date Id Rev

Modified: libexo/trunk/exo-mount/Makefile.am
===================================================================
--- libexo/trunk/exo-mount/Makefile.am	2007-01-07 20:23:21 UTC (rev 24291)
+++ libexo/trunk/exo-mount/Makefile.am	2007-01-07 21:59:39 UTC (rev 24292)
@@ -34,13 +34,15 @@
 	-no-undefined
 
 exo_mount_DEPENDENCIES =						\
-	$(top_builddir)/exo/libexo-$(LIBEXO_VERSION_MAJOR).$(LIBEXO_VERSION_MINOR).la
+	$(top_builddir)/exo/libexo-$(LIBEXO_VERSION_MAJOR).$(LIBEXO_VERSION_MINOR).la \
+	$(top_builddir)/exo-hal/libexo-hal-$(LIBEXO_VERSION_MAJOR).$(LIBEXO_VERSION_MINOR).la
 
 exo_mount_LDADD =							\
 	$(GTK_LIBS)							\
 	$(HAL_LIBS)							\
 	$(LIBXFCE4UTIL_LIBS)						\
-	$(top_builddir)/exo/libexo-$(LIBEXO_VERSION_MAJOR).$(LIBEXO_VERSION_MINOR).la
+	$(top_builddir)/exo/libexo-$(LIBEXO_VERSION_MAJOR).$(LIBEXO_VERSION_MINOR).la \
+	$(top_builddir)/exo-hal/libexo-hal-$(LIBEXO_VERSION_MAJOR).$(LIBEXO_VERSION_MINOR).la
 
 # install apppropriate symlinks
 install-data-local:

Modified: libexo/trunk/exo-mount/exo-mount-hal.c
===================================================================
--- libexo/trunk/exo-mount/exo-mount-hal.c	2007-01-07 20:23:21 UTC (rev 24291)
+++ libexo/trunk/exo-mount/exo-mount-hal.c	2007-01-07 21:59:39 UTC (rev 24292)
@@ -34,9 +34,10 @@
 #include <unistd.h>
 #endif
 
-#include <libhal.h>
 #include <libhal-storage.h>
 
+#include <exo-hal/exo-hal.h>
+
 #include <exo-mount/exo-mount-hal.h>
 
 
@@ -54,8 +55,8 @@
   LibHalVolume     *volume;
 
   /* device internals */
-  const gchar      *file;
-  const gchar      *name;
+  gchar            *file;
+  gchar            *name;
 
   /* file system options */
   gchar           **fsoptions;
@@ -207,8 +208,8 @@
       if (G_LIKELY (device->drive != NULL))
         {
           /* setup the device internals */
-          device->file = libhal_volume_get_device_file (device->volume);
-          device->name = libhal_volume_get_label (device->volume);
+          device->file = g_strdup (libhal_volume_get_device_file (device->volume));
+          device->name = exo_hal_volume_compute_display_name (hal_context, device->volume, device->drive);
 
           /* setup the file system internals */
           device->fstype = libhal_volume_get_fstype (device->volume);
@@ -222,8 +223,8 @@
       if (G_LIKELY (device->drive != NULL))
         {
           /* setup the device internals */
-          device->file = libhal_drive_get_device_file (device->drive);
-          device->name = libhal_drive_get_model (device->drive);
+          device->file = g_strdup (libhal_drive_get_device_file (device->drive));
+          device->name = exo_hal_drive_compute_display_name (hal_context, device->drive);
 
           /* setup the file system internals */
           device->fstype = "";
@@ -362,6 +363,8 @@
       libhal_free_string_array (device->fsoptions);
       libhal_volume_free (device->volume);
       libhal_drive_free (device->drive);
+      g_free (device->file);
+      g_free (device->name);
       g_free (device->udi);
       g_free (device);
     }
@@ -422,95 +425,37 @@
 exo_mount_hal_device_get_icon (ExoMountHalDevice *device)
 {
   GtkIconTheme *icon_theme;
+  gchar        *icon_name = NULL;
+  GList        *icon_list;
+  GList        *lp;
 
   g_return_val_if_fail (device != NULL, NULL);
 
+  /* compute the list of possible icons for the device */
+  icon_list = G_UNLIKELY (device->volume == NULL)
+            ? exo_hal_drive_compute_icon_list (hal_context, device->drive)
+            : exo_hal_volume_compute_icon_list (hal_context, device->volume, device->drive);
+
   /* determine the default icon theme */
   icon_theme = gtk_icon_theme_get_default ();
 
-  /* determine the icon from the type (keep in sync
-   * with thunar-vfs to get consistent icons).
-   */
-  switch (libhal_drive_get_type (device->drive))
-    {
-    case LIBHAL_DRIVE_TYPE_CDROM:
-      /* check which of CD-ROM/DVD we have */
-      switch (libhal_volume_get_disc_type (device->volume))
-        {
-cdrom:  case LIBHAL_VOLUME_DISC_TYPE_CDROM:
-          if (gtk_icon_theme_has_icon (icon_theme, "gnome-dev-cdrom"))
-            return g_strdup ("gnome-dev-cdrom");
-          break;
+  /* look for a usable icon in the list */
+  for (lp = icon_list; lp != NULL; lp = lp->next)
+    if (gtk_icon_theme_has_icon (icon_theme, lp->data))
+      {
+        icon_name = g_strdup (lp->data);
+        break;
+      }
 
-        case LIBHAL_VOLUME_DISC_TYPE_CDR:
-          if (gtk_icon_theme_has_icon (icon_theme, "gnome-dev-disc-cdr"))
-            return g_strdup ("gnome-dev-disc-cdr");
-          goto cdrom;
+  /* release the icon list */
+  g_list_foreach (icon_list, (GFunc) g_free, NULL);
+  g_list_free (icon_list);
 
-        case LIBHAL_VOLUME_DISC_TYPE_CDRW:
-          if (gtk_icon_theme_has_icon (icon_theme, "gnome-dev-disc-cdrw"))
-            return g_strdup ("gnome-dev-disc-cdrw");
-          goto cdrom;
+  /* last fallback is "gnome-dev-removable" */
+  if (G_UNLIKELY (icon_name == NULL))
+    icon_name = g_strdup ("gnome-dev-removable");
 
-dvdrom: case LIBHAL_VOLUME_DISC_TYPE_DVDROM:
-          if (gtk_icon_theme_has_icon (icon_theme, "gnome-dev-disc-dvdrom"))
-            return g_strdup ("gnome-dev-disc-dvdrom");
-          else if (gtk_icon_theme_has_icon (icon_theme, "gnome-dev-dvd"))
-            return g_strdup ("gnome-dev-dvd");
-          goto cdrom;
-
-        case LIBHAL_VOLUME_DISC_TYPE_DVDRAM:
-          if (gtk_icon_theme_has_icon (icon_theme, "gnome-dev-disc-dvdram"))
-            return g_strdup ("gnome-dev-disc-dvdram");
-          goto dvdrom;
-
-dvdr:   case LIBHAL_VOLUME_DISC_TYPE_DVDR:
-          if (gtk_icon_theme_has_icon (icon_theme, "gnome-dev-disc-dvdr"))
-            return g_strdup ("gnome-dev-disc-dvdr");
-          goto dvdrom;
-
-        case LIBHAL_VOLUME_DISC_TYPE_DVDRW:
-        case LIBHAL_VOLUME_DISC_TYPE_DVDPLUSRW:
-          if (gtk_icon_theme_has_icon (icon_theme, "gnome-dev-disc-dvdrw"))
-            return g_strdup ("gnome-dev-disc-dvdrw");
-          goto dvdrom;
-
-        case LIBHAL_VOLUME_DISC_TYPE_DVDPLUSR:
-          if (gtk_icon_theme_has_icon (icon_theme, "gnome-dev-disc-dev-dvdr-plus"))
-            return g_strdup ("gnome-dev-disc-dev-dvdr-plus");
-          goto dvdr;
-
-        default:
-          /* unsupported disc type */
-          break;
-        }
-      break;
-
-    case LIBHAL_DRIVE_TYPE_FLOPPY:
-      if (gtk_icon_theme_has_icon (icon_theme, "gnome-dev-floppy"))
-        return g_strdup ("gnome-dev-floppy");
-      break;
-
-    case LIBHAL_DRIVE_TYPE_PORTABLE_AUDIO_PLAYER:
-      if (gtk_icon_theme_has_icon (icon_theme, "gnome-dev-ipod"))
-        return g_strdup ("gnome-dev-ipod");
-      break;
-
-    default:
-      /* check if the drive is connected to the USB bus */
-      if (libhal_drive_get_bus (device->drive) == LIBHAL_DRIVE_BUS_USB)
-        {
-          /* we consider the drive to be an USB stick */
-          if (gtk_icon_theme_has_icon (icon_theme, "gnome-dev-removable-usb"))
-            return g_strdup ("gnome-dev-removable-usb");
-          else if (gtk_icon_theme_has_icon (icon_theme, "gnome-dev-harddisk-usb"))
-            return g_strdup ("gnome-dev-harddisk-usb");
-        }
-      break;
-    }
-
-  /* generic icon otherwise */
-  return g_strdup ("gnome-fs-blockdev");
+  return icon_name;
 }
 
 

Modified: libexo/trunk/po/ChangeLog
===================================================================
--- libexo/trunk/po/ChangeLog	2007-01-07 20:23:21 UTC (rev 24291)
+++ libexo/trunk/po/ChangeLog	2007-01-07 21:59:39 UTC (rev 24292)
@@ -1,3 +1,9 @@
+2007-01-07  Benedikt Meurer <benny at xfce.org>
+
+	* POTFILES.in: Add new files here.
+	* libexo-0.3.pot, *.po: Merge new strings.
+	* de.po: Update german translations.
+
 2007-01-07  Maximilian Schleiss <maxschleiss at bluewin.ch>
 
 	* fr.po: Updated the French translation.

Modified: libexo/trunk/po/POTFILES.in
===================================================================
--- libexo/trunk/po/POTFILES.in	2007-01-07 20:23:21 UTC (rev 24291)
+++ libexo/trunk/po/POTFILES.in	2007-01-07 21:59:39 UTC (rev 24292)
@@ -36,6 +36,8 @@
 exo-desktop-item-edit/exo-die-enum-types.c
 exo-desktop-item-edit/main.c
 
+exo-hal/exo-hal.c
+
 exo-helper/exo-helper-chooser-dialog.c
 exo-helper/exo-helper-chooser.c
 exo-helper/exo-helper-launcher-dialog.c

Modified: libexo/trunk/po/ca.po
===================================================================
--- libexo/trunk/po/ca.po	2007-01-07 20:23:21 UTC (rev 24291)
+++ libexo/trunk/po/ca.po	2007-01-07 21:59:39 UTC (rev 24292)
@@ -9,7 +9,7 @@
 msgstr ""
 "Project-Id-Version: exo 0.3.1.12rc2\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2007-01-06 18:44+0100\n"
+"POT-Creation-Date: 2007-01-07 17:59+0100\n"
 "PO-Revision-Date: 2006-09-18 21:22+0200\n"
 "Last-Translator: Carles Muñoz Gorriz <carlesmu at internautas.org>\n"
 "Language-Team: Catalan\n"
@@ -45,8 +45,8 @@
 msgid "The size of the icon to render in pixels."
 msgstr "Tamany en píxels de la icona a representar"
 
-#: ../exo/exo-gdk-pixbuf-extensions.c:770 ../exo-mount/exo-mount-fstab.c:146
-#: ../exo-mount/exo-mount-fstab.c:187
+#: ../exo/exo-gdk-pixbuf-extensions.c:770 ../exo-mount/exo-mount-fstab.c:148
+#: ../exo-mount/exo-mount-fstab.c:177 ../exo-mount/exo-mount-fstab.c:203
 #, c-format
 msgid "Failed to open file \"%s\": %s"
 msgstr "No s'ha pogut obrir «%s»: %s"
@@ -517,7 +517,7 @@
 msgstr "  --build-list      Analitza parelles (nom, fitxer)\n"
 
 #: ../exo-csource/main.c:248 ../exo-desktop-item-edit/main.c:153
-#: ../exo-mount/main.c:120 ../exo-mount-notify/main.c:164
+#: ../exo-mount/main.c:120 ../exo-mount-notify/main.c:167
 #: ../exo-open/main.c:129
 #, fuzzy, c-format
 msgid ""
@@ -534,7 +534,7 @@
 "\n"
 
 #: ../exo-csource/main.c:252 ../exo-desktop-item-edit/main.c:157
-#: ../exo-mount/main.c:124 ../exo-mount-notify/main.c:168
+#: ../exo-mount/main.c:124 ../exo-mount-notify/main.c:171
 #: ../exo-open/main.c:133
 #, c-format
 msgid ""
@@ -551,7 +551,7 @@
 "\n"
 
 #: ../exo-csource/main.c:256 ../exo-desktop-item-edit/main.c:161
-#: ../exo-mount/main.c:128 ../exo-mount-notify/main.c:172
+#: ../exo-mount/main.c:128 ../exo-mount-notify/main.c:175
 #: ../exo-open/main.c:137
 #, c-format
 msgid "Please report bugs to <%s>.\n"
@@ -723,7 +723,7 @@
 msgstr "[FITXER|CARPETA]"
 
 #: ../exo-desktop-item-edit/main.c:138 ../exo-mount/main.c:106
-#: ../exo-mount-notify/main.c:150
+#: ../exo-mount-notify/main.c:153
 #, fuzzy
 msgid "Failed to open display"
 msgstr "No s'ha pogut obrir la pantalla: %s"
@@ -758,6 +758,94 @@
 msgid "Failed to save \"%s\"."
 msgstr "No s'ha pogut desar «%s»."
 
+#: ../exo-hal/exo-hal.c:341
+#, c-format
+msgid "External %s Drive"
+msgstr ""
+
+#: ../exo-hal/exo-hal.c:343
+#, c-format
+msgid "%s Drive"
+msgstr ""
+
+#: ../exo-hal/exo-hal.c:352
+msgid "External Floppy Drive"
+msgstr ""
+
+#: ../exo-hal/exo-hal.c:354
+msgid "Floppy Drive"
+msgstr ""
+
+#: ../exo-hal/exo-hal.c:358
+msgid "Compact Flash Drive"
+msgstr ""
+
+#: ../exo-hal/exo-hal.c:362
+msgid "Memory Stick Drive"
+msgstr ""
+
+#: ../exo-hal/exo-hal.c:366
+msgid "Smart Media Drive"
+msgstr ""
+
+#: ../exo-hal/exo-hal.c:370
+msgid "SD/MMC Drive"
+msgstr ""
+
+#: ../exo-hal/exo-hal.c:374
+msgid "Zip Drive"
+msgstr ""
+
+#: ../exo-hal/exo-hal.c:378
+msgid "Jaz Drive"
+msgstr ""
+
+#: ../exo-hal/exo-hal.c:382
+msgid "Pen Drive"
+msgstr ""
+
+#. TRANSLATORS: This string requires special care as %s may be the empty string. Trailing/leading whitespace will be removed.
+#: ../exo-hal/exo-hal.c:391
+#, c-format
+msgid "%s Music Player"
+msgstr ""
+
+#. TRANSLATORS: This string requires special care as %s may be the empty string. Trailing/leading whitespace will be removed.
+#: ../exo-hal/exo-hal.c:406
+#, c-format
+msgid "%s Digital Camera"
+msgstr ""
+
+#. last fallback to "Drive"
+#: ../exo-hal/exo-hal.c:429
+msgid "Drive"
+msgstr ""
+
+#: ../exo-hal/exo-hal.c:656
+#, c-format
+msgid "Blank %s Disc"
+msgstr ""
+
+#: ../exo-hal/exo-hal.c:658
+#, c-format
+msgid "%s Disc"
+msgstr ""
+
+#. special case for pure audio disc
+#: ../exo-hal/exo-hal.c:663
+msgid "Audio CD"
+msgstr ""
+
+#: ../exo-hal/exo-hal.c:699
+#, c-format
+msgid "%s Removable Volume"
+msgstr ""
+
+#: ../exo-hal/exo-hal.c:701
+#, c-format
+msgid "%s Volume"
+msgstr ""
+
 #: ../exo-helper/exo-helper-chooser-dialog.c:100
 #: ../exo-helper/exo-preferred-applications.desktop.in.h:1
 msgid "Preferred Applications"
@@ -1070,55 +1158,55 @@
 msgid "X Terminal"
 msgstr "Terminal X"
 
-#: ../exo-mount/exo-mount-fstab.c:112
+#: ../exo-mount/exo-mount-fstab.c:115
 msgid "Unknown error"
 msgstr ""
 
 #. generate an appropriate error message
 #. tell the caller that no matching device was found
-#: ../exo-mount/exo-mount-fstab.c:248 ../exo-mount/exo-mount-hal.c:339
+#: ../exo-mount/exo-mount-fstab.c:242 ../exo-mount/exo-mount-hal.c:340
 #, c-format
 msgid "Device \"%s\" not found in file system device table"
 msgstr ""
 
 #. definitely not a device that we're able to mount, eject or unmount
-#: ../exo-mount/exo-mount-hal.c:193 ../exo-mount/exo-mount-hal.c:246
+#: ../exo-mount/exo-mount-hal.c:194 ../exo-mount/exo-mount-hal.c:247
 #, c-format
 msgid "Given device \"%s\" is not a volume or drive"
 msgstr ""
 
 #. TRANSLATORS: The user tried to eject a device although he's not privileged to do so.
-#: ../exo-mount/exo-mount-hal.c:616
+#: ../exo-mount/exo-mount-hal.c:561
 #, c-format
 msgid "You are not privileged to eject the volume \"%s\""
 msgstr ""
 
 #. TRANSLATORS: An application is blocking a mounted volume from being ejected.
-#: ../exo-mount/exo-mount-hal.c:621
+#: ../exo-mount/exo-mount-hal.c:566
 #, c-format
 msgid "An application is preventing the volume \"%s\" from being ejected"
 msgstr ""
 
 #. TRANSLATORS: User tried to mount a volume, but is not privileged to do so.
-#: ../exo-mount/exo-mount-hal.c:846
+#: ../exo-mount/exo-mount-hal.c:791
 #, c-format
 msgid "You are not privileged to mount the volume \"%s\""
 msgstr ""
 
 #. TRANSLATORS: User tried to unmount a volume, but is not privileged to do so.
-#: ../exo-mount/exo-mount-hal.c:935
+#: ../exo-mount/exo-mount-hal.c:880
 #, c-format
 msgid "You are not privileged to unmount the volume \"%s\""
 msgstr ""
 
 #. TRANSLATORS: An application is blocking a volume from being unmounted.
-#: ../exo-mount/exo-mount-hal.c:940
+#: ../exo-mount/exo-mount-hal.c:885
 #, c-format
 msgid "An application is preventing the volume \"%s\" from being unmounted"
 msgstr ""
 
 #. TRANSLATORS: HAL can only unmount volumes that were mounted via HAL.
-#: ../exo-mount/exo-mount-hal.c:945
+#: ../exo-mount/exo-mount-hal.c:890
 #, c-format
 msgid "The volume \"%s\" was probably mounted manually on the command line"
 msgstr ""
@@ -1168,17 +1256,17 @@
 msgid "Cannot eject and unmount simultaneously"
 msgstr ""
 
-#: ../exo-mount/main.c:306
+#: ../exo-mount/main.c:319
 #, fuzzy, c-format
 msgid "Failed to eject \"%s\""
 msgstr "No s'ha pogut crear «%s»."
 
-#: ../exo-mount/main.c:308
+#: ../exo-mount/main.c:321
 #, fuzzy, c-format
 msgid "Failed to unmount \"%s\""
 msgstr "No s'ha pogut obrir «%s»."
 
-#: ../exo-mount/main.c:310
+#: ../exo-mount/main.c:323
 #, fuzzy, c-format
 msgid "Failed to mount \"%s\""
 msgstr "No s'ha pogut obrir «%s»."
@@ -1194,21 +1282,21 @@
 msgstr ""
 
 #. read-only, just ejecting
-#: ../exo-mount-notify/main.c:221
+#: ../exo-mount-notify/main.c:224
 msgid "Ejecting device"
 msgstr ""
 
-#: ../exo-mount-notify/main.c:222
+#: ../exo-mount-notify/main.c:225
 #, c-format
 msgid "The device \"%s\" is being ejected. This may take some time."
 msgstr ""
 
 #. read-only, just unmounting
-#: ../exo-mount-notify/main.c:227
+#: ../exo-mount-notify/main.c:230
 msgid "Unmounting device"
 msgstr ""
 
-#: ../exo-mount-notify/main.c:228
+#: ../exo-mount-notify/main.c:231
 #, c-format
 msgid ""
 "The device \"%s\" is being unmounted by the system. Please do not remove the "
@@ -1216,11 +1304,11 @@
 msgstr ""
 
 #. not read-only, writing back data
-#: ../exo-mount-notify/main.c:235
+#: ../exo-mount-notify/main.c:238
 msgid "Writing data to device"
 msgstr ""
 
-#: ../exo-mount-notify/main.c:236
+#: ../exo-mount-notify/main.c:239
 #, c-format
 msgid ""
 "There is data that needs to be written to the device \"%s\" before it can be "

Modified: libexo/trunk/po/cs.po
===================================================================
--- libexo/trunk/po/cs.po	2007-01-07 20:23:21 UTC (rev 24291)
+++ libexo/trunk/po/cs.po	2007-01-07 21:59:39 UTC (rev 24292)
@@ -7,7 +7,7 @@
 msgstr ""
 "Project-Id-Version: exo 0.3.1.12rc2\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2007-01-06 18:44+0100\n"
+"POT-Creation-Date: 2007-01-07 17:59+0100\n"
 "PO-Revision-Date: 2006-09-16 11:19+0100\n"
 "Last-Translator: Michal Várady <miko.vaji at gmail.com>\n"
 "Language-Team: Czech <translation-team-cs at lists.sourceforge.net>\n"
@@ -45,8 +45,8 @@
 msgid "The size of the icon to render in pixels."
 msgstr "Velikost vykreslené ikony v obrazových bodech."
 
-#: ../exo/exo-gdk-pixbuf-extensions.c:770 ../exo-mount/exo-mount-fstab.c:146
-#: ../exo-mount/exo-mount-fstab.c:187
+#: ../exo/exo-gdk-pixbuf-extensions.c:770 ../exo-mount/exo-mount-fstab.c:148
+#: ../exo-mount/exo-mount-fstab.c:177 ../exo-mount/exo-mount-fstab.c:203
 #, c-format
 msgid "Failed to open file \"%s\": %s"
 msgstr "Nepodařilo se otevřít soubor \"%s\": %s"
@@ -515,7 +515,7 @@
 msgstr "  --build-list      Parsovací páry (název, soubor)\n"
 
 #: ../exo-csource/main.c:248 ../exo-desktop-item-edit/main.c:153
-#: ../exo-mount/main.c:120 ../exo-mount-notify/main.c:164
+#: ../exo-mount/main.c:120 ../exo-mount-notify/main.c:167
 #: ../exo-open/main.c:129
 #, fuzzy, c-format
 msgid ""
@@ -532,7 +532,7 @@
 "\n"
 
 #: ../exo-csource/main.c:252 ../exo-desktop-item-edit/main.c:157
-#: ../exo-mount/main.c:124 ../exo-mount-notify/main.c:168
+#: ../exo-mount/main.c:124 ../exo-mount-notify/main.c:171
 #: ../exo-open/main.c:133
 #, c-format
 msgid ""
@@ -549,7 +549,7 @@
 "\n"
 
 #: ../exo-csource/main.c:256 ../exo-desktop-item-edit/main.c:161
-#: ../exo-mount/main.c:128 ../exo-mount-notify/main.c:172
+#: ../exo-mount/main.c:128 ../exo-mount-notify/main.c:175
 #: ../exo-open/main.c:137
 #, c-format
 msgid "Please report bugs to <%s>.\n"
@@ -728,7 +728,7 @@
 msgstr "[SOUBOR|ADRESÁŘ]"
 
 #: ../exo-desktop-item-edit/main.c:138 ../exo-mount/main.c:106
-#: ../exo-mount-notify/main.c:150
+#: ../exo-mount-notify/main.c:153
 #, fuzzy
 msgid "Failed to open display"
 msgstr "Nepodařilo se otevřít displej: %s"
@@ -763,6 +763,94 @@
 msgid "Failed to save \"%s\"."
 msgstr "Nepodařilo se uložit \"%s\"."
 
+#: ../exo-hal/exo-hal.c:341
+#, c-format
+msgid "External %s Drive"
+msgstr ""
+
+#: ../exo-hal/exo-hal.c:343
+#, c-format
+msgid "%s Drive"
+msgstr ""
+
+#: ../exo-hal/exo-hal.c:352
+msgid "External Floppy Drive"
+msgstr ""
+
+#: ../exo-hal/exo-hal.c:354
+msgid "Floppy Drive"
+msgstr ""
+
+#: ../exo-hal/exo-hal.c:358
+msgid "Compact Flash Drive"
+msgstr ""
+
+#: ../exo-hal/exo-hal.c:362
+msgid "Memory Stick Drive"
+msgstr ""
+
+#: ../exo-hal/exo-hal.c:366
+msgid "Smart Media Drive"
+msgstr ""
+
+#: ../exo-hal/exo-hal.c:370
+msgid "SD/MMC Drive"
+msgstr ""
+
+#: ../exo-hal/exo-hal.c:374
+msgid "Zip Drive"
+msgstr ""
+
+#: ../exo-hal/exo-hal.c:378
+msgid "Jaz Drive"
+msgstr ""
+
+#: ../exo-hal/exo-hal.c:382
+msgid "Pen Drive"
+msgstr ""
+
+#. TRANSLATORS: This string requires special care as %s may be the empty string. Trailing/leading whitespace will be removed.
+#: ../exo-hal/exo-hal.c:391
+#, c-format
+msgid "%s Music Player"
+msgstr ""
+
+#. TRANSLATORS: This string requires special care as %s may be the empty string. Trailing/leading whitespace will be removed.
+#: ../exo-hal/exo-hal.c:406
+#, c-format
+msgid "%s Digital Camera"
+msgstr ""
+
+#. last fallback to "Drive"
+#: ../exo-hal/exo-hal.c:429
+msgid "Drive"
+msgstr ""
+
+#: ../exo-hal/exo-hal.c:656
+#, c-format
+msgid "Blank %s Disc"
+msgstr ""
+
+#: ../exo-hal/exo-hal.c:658
+#, c-format
+msgid "%s Disc"
+msgstr ""
+
+#. special case for pure audio disc
+#: ../exo-hal/exo-hal.c:663
+msgid "Audio CD"
+msgstr ""
+
+#: ../exo-hal/exo-hal.c:699
+#, c-format
+msgid "%s Removable Volume"
+msgstr ""
+
+#: ../exo-hal/exo-hal.c:701
+#, c-format
+msgid "%s Volume"
+msgstr ""
+
 #: ../exo-helper/exo-helper-chooser-dialog.c:100
 #: ../exo-helper/exo-preferred-applications.desktop.in.h:1
 msgid "Preferred Applications"
@@ -1076,55 +1164,55 @@
 msgid "X Terminal"
 msgstr "X Terminál"
 
-#: ../exo-mount/exo-mount-fstab.c:112
+#: ../exo-mount/exo-mount-fstab.c:115
 msgid "Unknown error"
 msgstr ""
 
 #. generate an appropriate error message
 #. tell the caller that no matching device was found
-#: ../exo-mount/exo-mount-fstab.c:248 ../exo-mount/exo-mount-hal.c:339
+#: ../exo-mount/exo-mount-fstab.c:242 ../exo-mount/exo-mount-hal.c:340
 #, c-format
 msgid "Device \"%s\" not found in file system device table"
 msgstr ""
 
 #. definitely not a device that we're able to mount, eject or unmount
-#: ../exo-mount/exo-mount-hal.c:193 ../exo-mount/exo-mount-hal.c:246
+#: ../exo-mount/exo-mount-hal.c:194 ../exo-mount/exo-mount-hal.c:247
 #, c-format
 msgid "Given device \"%s\" is not a volume or drive"
 msgstr ""
 
 #. TRANSLATORS: The user tried to eject a device although he's not privileged to do so.
-#: ../exo-mount/exo-mount-hal.c:616
+#: ../exo-mount/exo-mount-hal.c:561
 #, c-format
 msgid "You are not privileged to eject the volume \"%s\""
 msgstr ""
 
 #. TRANSLATORS: An application is blocking a mounted volume from being ejected.
-#: ../exo-mount/exo-mount-hal.c:621
+#: ../exo-mount/exo-mount-hal.c:566
 #, c-format
 msgid "An application is preventing the volume \"%s\" from being ejected"
 msgstr ""
 
 #. TRANSLATORS: User tried to mount a volume, but is not privileged to do so.
-#: ../exo-mount/exo-mount-hal.c:846
+#: ../exo-mount/exo-mount-hal.c:791
 #, c-format
 msgid "You are not privileged to mount the volume \"%s\""
 msgstr ""
 
 #. TRANSLATORS: User tried to unmount a volume, but is not privileged to do so.
-#: ../exo-mount/exo-mount-hal.c:935
+#: ../exo-mount/exo-mount-hal.c:880
 #, c-format
 msgid "You are not privileged to unmount the volume \"%s\""
 msgstr ""
 
 #. TRANSLATORS: An application is blocking a volume from being unmounted.
-#: ../exo-mount/exo-mount-hal.c:940
+#: ../exo-mount/exo-mount-hal.c:885
 #, c-format
 msgid "An application is preventing the volume \"%s\" from being unmounted"
 msgstr ""
 
 #. TRANSLATORS: HAL can only unmount volumes that were mounted via HAL.
-#: ../exo-mount/exo-mount-hal.c:945
+#: ../exo-mount/exo-mount-hal.c:890
 #, c-format
 msgid "The volume \"%s\" was probably mounted manually on the command line"
 msgstr ""
@@ -1174,17 +1262,17 @@
 msgid "Cannot eject and unmount simultaneously"
 msgstr ""
 
-#: ../exo-mount/main.c:306
+#: ../exo-mount/main.c:319
 #, fuzzy, c-format
 msgid "Failed to eject \"%s\""
 msgstr "Nepodařilo se vytvořit \"%s\"."
 
-#: ../exo-mount/main.c:308
+#: ../exo-mount/main.c:321
 #, fuzzy, c-format
 msgid "Failed to unmount \"%s\""
 msgstr "Nepodařilo se otevřít \"%s\"."
 
-#: ../exo-mount/main.c:310
+#: ../exo-mount/main.c:323
 #, fuzzy, c-format
 msgid "Failed to mount \"%s\""
 msgstr "Nepodařilo se otevřít \"%s\"."
@@ -1200,21 +1288,21 @@
 msgstr ""
 
 #. read-only, just ejecting
-#: ../exo-mount-notify/main.c:221
+#: ../exo-mount-notify/main.c:224
 msgid "Ejecting device"
 msgstr ""
 
-#: ../exo-mount-notify/main.c:222
+#: ../exo-mount-notify/main.c:225
 #, c-format
 msgid "The device \"%s\" is being ejected. This may take some time."
 msgstr ""
 
 #. read-only, just unmounting
-#: ../exo-mount-notify/main.c:227
+#: ../exo-mount-notify/main.c:230
 msgid "Unmounting device"
 msgstr ""
 
-#: ../exo-mount-notify/main.c:228
+#: ../exo-mount-notify/main.c:231
 #, c-format
 msgid ""
 "The device \"%s\" is being unmounted by the system. Please do not remove the "
@@ -1222,11 +1310,11 @@
 msgstr ""
 
 #. not read-only, writing back data
-#: ../exo-mount-notify/main.c:235
+#: ../exo-mount-notify/main.c:238
 msgid "Writing data to device"
 msgstr ""
 
-#: ../exo-mount-notify/main.c:236
+#: ../exo-mount-notify/main.c:239
 #, c-format
 msgid ""
 "There is data that needs to be written to the device \"%s\" before it can be "

Modified: libexo/trunk/po/cy.po
===================================================================
--- libexo/trunk/po/cy.po	2007-01-07 20:23:21 UTC (rev 24291)
+++ libexo/trunk/po/cy.po	2007-01-07 21:59:39 UTC (rev 24292)
@@ -7,7 +7,7 @@
 msgstr ""
 "Project-Id-Version: cy\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2007-01-06 18:44+0100\n"
+"POT-Creation-Date: 2007-01-07 17:59+0100\n"
 "PO-Revision-Date: 2006-11-02 18:35+0000\n"
 "Last-Translator: Geraint Rowlands <ansbaradigeidfran at gmail.com>\n"
 "Language-Team: Welsh <xfce-i18n at xfce.org>\n"
@@ -41,8 +41,8 @@
 msgid "The size of the icon to render in pixels."
 msgstr "Maint yr eicon i'w lunio mewn picselau"
 
-#: ../exo/exo-gdk-pixbuf-extensions.c:770 ../exo-mount/exo-mount-fstab.c:146
-#: ../exo-mount/exo-mount-fstab.c:187
+#: ../exo/exo-gdk-pixbuf-extensions.c:770 ../exo-mount/exo-mount-fstab.c:148
+#: ../exo-mount/exo-mount-fstab.c:177 ../exo-mount/exo-mount-fstab.c:203
 #, c-format
 msgid "Failed to open file \"%s\": %s"
 msgstr "Methwyd agor ffeil\"%s\": %s"
@@ -509,7 +509,7 @@
 msgstr "  --build-list      Dadansoddi parau (enw, ffeil)\n"
 
 #: ../exo-csource/main.c:248 ../exo-desktop-item-edit/main.c:153
-#: ../exo-mount/main.c:120 ../exo-mount-notify/main.c:164
+#: ../exo-mount/main.c:120 ../exo-mount-notify/main.c:167
 #: ../exo-open/main.c:129
 #, fuzzy, c-format
 msgid ""
@@ -526,7 +526,7 @@
 "\n"
 
 #: ../exo-csource/main.c:252 ../exo-desktop-item-edit/main.c:157
-#: ../exo-mount/main.c:124 ../exo-mount-notify/main.c:168
+#: ../exo-mount/main.c:124 ../exo-mount-notify/main.c:171
 #: ../exo-open/main.c:133
 #, c-format
 msgid ""
@@ -542,7 +542,7 @@
 "mhecyn tardd %s\n"
 
 #: ../exo-csource/main.c:256 ../exo-desktop-item-edit/main.c:161
-#: ../exo-mount/main.c:128 ../exo-mount-notify/main.c:172
+#: ../exo-mount/main.c:128 ../exo-mount-notify/main.c:175
 #: ../exo-open/main.c:137
 #, c-format
 msgid "Please report bugs to <%s>.\n"
@@ -713,7 +713,7 @@
 msgstr "[FFEIL|PLYGELL]"
 
 #: ../exo-desktop-item-edit/main.c:138 ../exo-mount/main.c:106
-#: ../exo-mount-notify/main.c:150
+#: ../exo-mount-notify/main.c:153
 #, fuzzy
 msgid "Failed to open display"
 msgstr "Methwyd agor sgrïn: %s"
@@ -748,6 +748,94 @@
 msgid "Failed to save \"%s\"."
 msgstr "Methu cadw \"%s\"."
 
+#: ../exo-hal/exo-hal.c:341
+#, c-format
+msgid "External %s Drive"
+msgstr ""
+
+#: ../exo-hal/exo-hal.c:343
+#, c-format
+msgid "%s Drive"
+msgstr ""
+
+#: ../exo-hal/exo-hal.c:352
+msgid "External Floppy Drive"
+msgstr ""
+
+#: ../exo-hal/exo-hal.c:354
+msgid "Floppy Drive"
+msgstr ""
+
+#: ../exo-hal/exo-hal.c:358
+msgid "Compact Flash Drive"
+msgstr ""
+
+#: ../exo-hal/exo-hal.c:362
+msgid "Memory Stick Drive"
+msgstr ""
+
+#: ../exo-hal/exo-hal.c:366
+msgid "Smart Media Drive"
+msgstr ""
+
+#: ../exo-hal/exo-hal.c:370
+msgid "SD/MMC Drive"
+msgstr ""
+
+#: ../exo-hal/exo-hal.c:374
+msgid "Zip Drive"
+msgstr ""
+
+#: ../exo-hal/exo-hal.c:378
+msgid "Jaz Drive"
+msgstr ""
+
+#: ../exo-hal/exo-hal.c:382
+msgid "Pen Drive"
+msgstr ""
+
+#. TRANSLATORS: This string requires special care as %s may be the empty string. Trailing/leading whitespace will be removed.
+#: ../exo-hal/exo-hal.c:391
+#, c-format
+msgid "%s Music Player"
+msgstr ""
+
+#. TRANSLATORS: This string requires special care as %s may be the empty string. Trailing/leading whitespace will be removed.
+#: ../exo-hal/exo-hal.c:406
+#, c-format
+msgid "%s Digital Camera"
+msgstr ""
+
+#. last fallback to "Drive"
+#: ../exo-hal/exo-hal.c:429
+msgid "Drive"
+msgstr ""
+
+#: ../exo-hal/exo-hal.c:656
+#, c-format
+msgid "Blank %s Disc"
+msgstr ""
+
+#: ../exo-hal/exo-hal.c:658
+#, c-format
+msgid "%s Disc"
+msgstr ""
+
+#. special case for pure audio disc
+#: ../exo-hal/exo-hal.c:663
+msgid "Audio CD"
+msgstr ""
+
+#: ../exo-hal/exo-hal.c:699
+#, c-format
+msgid "%s Removable Volume"
+msgstr ""
+
+#: ../exo-hal/exo-hal.c:701
+#, c-format
+msgid "%s Volume"
+msgstr ""
+
 #: ../exo-helper/exo-helper-chooser-dialog.c:100
 #: ../exo-helper/exo-preferred-applications.desktop.in.h:1
 msgid "Preferred Applications"
@@ -1059,55 +1147,55 @@
 msgid "X Terminal"
 msgstr "Terfynell X"
 
-#: ../exo-mount/exo-mount-fstab.c:112
+#: ../exo-mount/exo-mount-fstab.c:115
 msgid "Unknown error"
 msgstr ""
 
 #. generate an appropriate error message
 #. tell the caller that no matching device was found
-#: ../exo-mount/exo-mount-fstab.c:248 ../exo-mount/exo-mount-hal.c:339
+#: ../exo-mount/exo-mount-fstab.c:242 ../exo-mount/exo-mount-hal.c:340
 #, c-format
 msgid "Device \"%s\" not found in file system device table"
 msgstr ""
 
 #. definitely not a device that we're able to mount, eject or unmount
-#: ../exo-mount/exo-mount-hal.c:193 ../exo-mount/exo-mount-hal.c:246
+#: ../exo-mount/exo-mount-hal.c:194 ../exo-mount/exo-mount-hal.c:247
 #, c-format
 msgid "Given device \"%s\" is not a volume or drive"
 msgstr ""
 
 #. TRANSLATORS: The user tried to eject a device although he's not privileged to do so.
-#: ../exo-mount/exo-mount-hal.c:616
+#: ../exo-mount/exo-mount-hal.c:561
 #, c-format
 msgid "You are not privileged to eject the volume \"%s\""
 msgstr ""
 
 #. TRANSLATORS: An application is blocking a mounted volume from being ejected.
-#: ../exo-mount/exo-mount-hal.c:621
+#: ../exo-mount/exo-mount-hal.c:566
 #, c-format
 msgid "An application is preventing the volume \"%s\" from being ejected"
 msgstr ""
 
 #. TRANSLATORS: User tried to mount a volume, but is not privileged to do so.
-#: ../exo-mount/exo-mount-hal.c:846
+#: ../exo-mount/exo-mount-hal.c:791
 #, c-format
 msgid "You are not privileged to mount the volume \"%s\""
 msgstr ""
 
 #. TRANSLATORS: User tried to unmount a volume, but is not privileged to do so.
-#: ../exo-mount/exo-mount-hal.c:935
+#: ../exo-mount/exo-mount-hal.c:880
 #, c-format
 msgid "You are not privileged to unmount the volume \"%s\""
 msgstr ""
 
 #. TRANSLATORS: An application is blocking a volume from being unmounted.
-#: ../exo-mount/exo-mount-hal.c:940
+#: ../exo-mount/exo-mount-hal.c:885
 #, c-format
 msgid "An application is preventing the volume \"%s\" from being unmounted"
 msgstr ""
 
 #. TRANSLATORS: HAL can only unmount volumes that were mounted via HAL.
-#: ../exo-mount/exo-mount-hal.c:945
+#: ../exo-mount/exo-mount-hal.c:890
 #, c-format
 msgid "The volume \"%s\" was probably mounted manually on the command line"
 msgstr ""
@@ -1157,17 +1245,17 @@
 msgid "Cannot eject and unmount simultaneously"
 msgstr ""
 
-#: ../exo-mount/main.c:306
+#: ../exo-mount/main.c:319
 #, fuzzy, c-format
 msgid "Failed to eject \"%s\""
 msgstr "Methu creu \"%s\"."
 
-#: ../exo-mount/main.c:308
+#: ../exo-mount/main.c:321
 #, fuzzy, c-format
 msgid "Failed to unmount \"%s\""
 msgstr "Methu agor \"%s\""
 
-#: ../exo-mount/main.c:310
+#: ../exo-mount/main.c:323
 #, fuzzy, c-format
 msgid "Failed to mount \"%s\""
 msgstr "Methu agor \"%s\""
@@ -1183,21 +1271,21 @@
 msgstr ""
 
 #. read-only, just ejecting
-#: ../exo-mount-notify/main.c:221
+#: ../exo-mount-notify/main.c:224
 msgid "Ejecting device"
 msgstr ""
 
-#: ../exo-mount-notify/main.c:222
+#: ../exo-mount-notify/main.c:225
 #, c-format
 msgid "The device \"%s\" is being ejected. This may take some time."
 msgstr ""
 
 #. read-only, just unmounting
-#: ../exo-mount-notify/main.c:227
+#: ../exo-mount-notify/main.c:230
 msgid "Unmounting device"
 msgstr ""
 
-#: ../exo-mount-notify/main.c:228
+#: ../exo-mount-notify/main.c:231
 #, c-format
 msgid ""
 "The device \"%s\" is being unmounted by the system. Please do not remove the "
@@ -1205,11 +1293,11 @@
 msgstr ""
 
 #. not read-only, writing back data
-#: ../exo-mount-notify/main.c:235
+#: ../exo-mount-notify/main.c:238
 msgid "Writing data to device"
 msgstr ""
 
-#: ../exo-mount-notify/main.c:236
+#: ../exo-mount-notify/main.c:239
 #, c-format
 msgid ""
 "There is data that needs to be written to the device \"%s\" before it can be "

Modified: libexo/trunk/po/de.po
===================================================================
--- libexo/trunk/po/de.po	2007-01-07 20:23:21 UTC (rev 24291)
+++ libexo/trunk/po/de.po	2007-01-07 21:59:39 UTC (rev 24292)
@@ -8,8 +8,8 @@
 msgstr ""
 "Project-Id-Version: exo 0.3.1.13svn\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2007-01-06 18:44+0100\n"
-"PO-Revision-Date:  2007-01-06 18:02+0100\n"
+"POT-Creation-Date: 2007-01-07 17:59+0100\n"
+"PO-Revision-Date:  2007-01-07 18:02+0100\n"
 "Last-Translator: Fabian Nowak <timystery at arcor.de>\n"
 "Language-Team: German <de at li.org>\n"
 "MIME-Version: 1.0\n"
@@ -42,8 +42,8 @@
 msgid "The size of the icon to render in pixels."
 msgstr "Die Größe in der das Symbol gezeichnet werden soll."
 
-#: ../exo/exo-gdk-pixbuf-extensions.c:770 ../exo-mount/exo-mount-fstab.c:146
-#: ../exo-mount/exo-mount-fstab.c:187
+#: ../exo/exo-gdk-pixbuf-extensions.c:770 ../exo-mount/exo-mount-fstab.c:148
+#: ../exo-mount/exo-mount-fstab.c:177 ../exo-mount/exo-mount-fstab.c:203
 #, c-format
 msgid "Failed to open file \"%s\": %s"
 msgstr "Konnte »%s« nicht öffnen: %s"
@@ -515,7 +515,7 @@
 msgstr "  --build-list      (Name, Datei) Paare parsen\n"
 
 #: ../exo-csource/main.c:248 ../exo-desktop-item-edit/main.c:153
-#: ../exo-mount/main.c:120 ../exo-mount-notify/main.c:164
+#: ../exo-mount/main.c:120 ../exo-mount-notify/main.c:167
 #: ../exo-open/main.c:129
 #, c-format
 msgid ""
@@ -532,7 +532,7 @@
 "\n"
 
 #: ../exo-csource/main.c:252 ../exo-desktop-item-edit/main.c:157
-#: ../exo-mount/main.c:124 ../exo-mount-notify/main.c:168
+#: ../exo-mount/main.c:124 ../exo-mount-notify/main.c:171
 #: ../exo-open/main.c:133
 #, c-format
 msgid ""
@@ -549,7 +549,7 @@
 "\n"
 
 #: ../exo-csource/main.c:256 ../exo-desktop-item-edit/main.c:161
-#: ../exo-mount/main.c:128 ../exo-mount-notify/main.c:172
+#: ../exo-mount/main.c:128 ../exo-mount-notify/main.c:175
 #: ../exo-open/main.c:137
 #, c-format
 msgid "Please report bugs to <%s>.\n"
@@ -722,7 +722,7 @@
 msgstr "[DATEI|ORDNER]"
 
 #: ../exo-desktop-item-edit/main.c:138 ../exo-mount/main.c:106
-#: ../exo-mount-notify/main.c:150
+#: ../exo-mount-notify/main.c:153
 msgid "Failed to open display"
 msgstr "Konnte Display nicht öffnen"
 
@@ -756,6 +756,94 @@
 msgid "Failed to save \"%s\"."
 msgstr "Konnte »%s« nicht speichern."
 
+#: ../exo-hal/exo-hal.c:341
+#, c-format
+msgid "External %s Drive"
+msgstr "Externes %s-Laufwerk"
+
+#: ../exo-hal/exo-hal.c:343
+#, c-format
+msgid "%s Drive"
+msgstr "%s-Laufwerk"
+
+#: ../exo-hal/exo-hal.c:352
+msgid "External Floppy Drive"
+msgstr "Externes Diskettenlaufwerk"
+
+#: ../exo-hal/exo-hal.c:354
+msgid "Floppy Drive"
+msgstr "Diskettenlaufwerk"
+
+#: ../exo-hal/exo-hal.c:358
+msgid "Compact Flash Drive"
+msgstr "Compact-Flash-Laufwerk"
+
+#: ../exo-hal/exo-hal.c:362
+msgid "Memory Stick Drive"
+msgstr "Memory-Stick-Laufwerk"
+
+#: ../exo-hal/exo-hal.c:366
+msgid "Smart Media Drive"
+msgstr "Smart-Media-Laufwerk"
+
+#: ../exo-hal/exo-hal.c:370
+msgid "SD/MMC Drive"
+msgstr "SD/MMC-Laufwerk"
+
+#: ../exo-hal/exo-hal.c:374
+msgid "Zip Drive"
+msgstr "ZIP-Laufwerk"
+
+#: ../exo-hal/exo-hal.c:378
+msgid "Jaz Drive"
+msgstr "Jaz-Laufwerk"
+
+#: ../exo-hal/exo-hal.c:382
+msgid "Pen Drive"
+msgstr "USB-Stick-Laufwerk"
+
+#. TRANSLATORS: This string requires special care as %s may be the empty string. Trailing/leading whitespace will be removed.
+#: ../exo-hal/exo-hal.c:391
+#, c-format
+msgid "%s Music Player"
+msgstr "%s Musik-Player"
+
+#. TRANSLATORS: This string requires special care as %s may be the empty string. Trailing/leading whitespace will be removed.
+#: ../exo-hal/exo-hal.c:406
+#, c-format
+msgid "%s Digital Camera"
+msgstr "%s Digitalkamera"
+
+#. last fallback to "Drive"
+#: ../exo-hal/exo-hal.c:429
+msgid "Drive"
+msgstr "Laufwerk"
+
+#: ../exo-hal/exo-hal.c:656
+#, c-format
+msgid "Blank %s Disc"
+msgstr "%s-Rohling"
+
+#: ../exo-hal/exo-hal.c:658
+#, c-format
+msgid "%s Disc"
+msgstr "%s-Medium"
+
+#. special case for pure audio disc
+#: ../exo-hal/exo-hal.c:663
+msgid "Audio CD"
+msgstr "Audio-CD"
+
+#: ../exo-hal/exo-hal.c:699
+#, c-format
+msgid "%s Removable Volume"
+msgstr "%s entfernbarer Datenträger"
+
+#: ../exo-hal/exo-hal.c:701
+#, c-format
+msgid "%s Volume"
+msgstr "%s Datenträger"
+
 #: ../exo-helper/exo-helper-chooser-dialog.c:100
 #: ../exo-helper/exo-preferred-applications.desktop.in.h:1
 msgid "Preferred Applications"
@@ -1070,57 +1158,57 @@
 msgid "X Terminal"
 msgstr "X Terminal"
 
-#: ../exo-mount/exo-mount-fstab.c:112
+#: ../exo-mount/exo-mount-fstab.c:115
 msgid "Unknown error"
 msgstr "Unbekannter Fehler"
 
 #. generate an appropriate error message
 #. tell the caller that no matching device was found
-#: ../exo-mount/exo-mount-fstab.c:248 ../exo-mount/exo-mount-hal.c:339
+#: ../exo-mount/exo-mount-fstab.c:242 ../exo-mount/exo-mount-hal.c:340
 #, c-format
 msgid "Device \"%s\" not found in file system device table"
 msgstr "Das Gerät »%s« ist nicht in der Datenträgertabelle enthalten"
 
 #. definitely not a device that we're able to mount, eject or unmount
-#: ../exo-mount/exo-mount-hal.c:193 ../exo-mount/exo-mount-hal.c:246
+#: ../exo-mount/exo-mount-hal.c:194 ../exo-mount/exo-mount-hal.c:247
 #, c-format
 msgid "Given device \"%s\" is not a volume or drive"
 msgstr "Das Gerät »%s« ist kein gültiger Datenträger"
 
 #. TRANSLATORS: The user tried to eject a device although he's not privileged to do so.
-#: ../exo-mount/exo-mount-hal.c:616
+#: ../exo-mount/exo-mount-hal.c:561
 #, c-format
 msgid "You are not privileged to eject the volume \"%s\""
 msgstr "Sie sind nicht priviligiert den Datenträger »%s« auszuwerfen"
 
 #. TRANSLATORS: An application is blocking a mounted volume from being ejected.
-#: ../exo-mount/exo-mount-hal.c:621
+#: ../exo-mount/exo-mount-hal.c:566
 #, c-format
 msgid "An application is preventing the volume \"%s\" from being ejected"
 msgstr ""
 "Eine Anwendung verhindert, dass der Datenträger »%s« ausgeworfen werden kann"
 
 #. TRANSLATORS: User tried to mount a volume, but is not privileged to do so.
-#: ../exo-mount/exo-mount-hal.c:846
+#: ../exo-mount/exo-mount-hal.c:791
 #, c-format
 msgid "You are not privileged to mount the volume \"%s\""
 msgstr "Sie sind nicht priviligiert den Datenträger »%s« einzubinden"
 
 #. TRANSLATORS: User tried to unmount a volume, but is not privileged to do so.
-#: ../exo-mount/exo-mount-hal.c:935
+#: ../exo-mount/exo-mount-hal.c:880
 #, c-format
 msgid "You are not privileged to unmount the volume \"%s\""
 msgstr "Sie sind nicht priviligiert den Datenträger »%s« auszulösen"
 
 #. TRANSLATORS: An application is blocking a volume from being unmounted.
-#: ../exo-mount/exo-mount-hal.c:940
+#: ../exo-mount/exo-mount-hal.c:885
 #, c-format
 msgid "An application is preventing the volume \"%s\" from being unmounted"
 msgstr ""
 "Eine Anwendung verhindert, dass der Datenträger »%s« ausgeworfen werden kann"
 
 #. TRANSLATORS: HAL can only unmount volumes that were mounted via HAL.
-#: ../exo-mount/exo-mount-hal.c:945
+#: ../exo-mount/exo-mount-hal.c:890
 #, c-format
 msgid "The volume \"%s\" was probably mounted manually on the command line"
 msgstr ""
@@ -1176,17 +1264,17 @@
 msgid "Cannot eject and unmount simultaneously"
 msgstr "Kann nicht gleichzeitig auslösen und auswerfen"
 
-#: ../exo-mount/main.c:306
+#: ../exo-mount/main.c:319
 #, c-format
 msgid "Failed to eject \"%s\""
 msgstr "Der Datenträger »%s« konnte nicht ausgeworfen werden"
 
-#: ../exo-mount/main.c:308
+#: ../exo-mount/main.c:321
 #, c-format
 msgid "Failed to unmount \"%s\""
 msgstr "Der Datenträger »%s« konnte nicht ausgelöst werden"
 
-#: ../exo-mount/main.c:310
+#: ../exo-mount/main.c:323
 #, c-format
 msgid "Failed to mount \"%s\""
 msgstr "Der Datenträger »%s« konnte nicht eingebunden werden"
@@ -1202,21 +1290,21 @@
 msgstr "Datenträger kann entfernt werden"
 
 #. read-only, just ejecting
-#: ../exo-mount-notify/main.c:221
+#: ../exo-mount-notify/main.c:224
 msgid "Ejecting device"
 msgstr "Datenträger auswerfen"
 
-#: ../exo-mount-notify/main.c:222
+#: ../exo-mount-notify/main.c:225
 #, c-format
 msgid "The device \"%s\" is being ejected. This may take some time."
 msgstr "Der Datenträger »%s« wird ausgeworfen. Dies kann einen Moment dauern."
 
 #. read-only, just unmounting
-#: ../exo-mount-notify/main.c:227
+#: ../exo-mount-notify/main.c:230
 msgid "Unmounting device"
 msgstr "Datenträger auslösen"
 
-#: ../exo-mount-notify/main.c:228
+#: ../exo-mount-notify/main.c:231
 #, c-format
 msgid ""
 "The device \"%s\" is being unmounted by the system. Please do not remove the "
@@ -1227,11 +1315,11 @@
 "Computer."
 
 #. not read-only, writing back data
-#: ../exo-mount-notify/main.c:235
+#: ../exo-mount-notify/main.c:238
 msgid "Writing data to device"
 msgstr "Daten werden geschrieben"
 
-#: ../exo-mount-notify/main.c:236
+#: ../exo-mount-notify/main.c:239
 #, c-format
 msgid ""
 "There is data that needs to be written to the device \"%s\" before it can be "

Modified: libexo/trunk/po/dz.po
===================================================================
--- libexo/trunk/po/dz.po	2007-01-07 20:23:21 UTC (rev 24291)
+++ libexo/trunk/po/dz.po	2007-01-07 21:59:39 UTC (rev 24292)
@@ -7,7 +7,7 @@
 msgstr ""
 "Project-Id-Version: exo 0.3.1.12rc2\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2007-01-06 18:44+0100\n"
+"POT-Creation-Date: 2007-01-07 17:59+0100\n"
 "PO-Revision-Date: 2006-10-20 09:45+0530\n"
 "Last-Translator: sonam pelden <sonaa_peldn at yahoo.com>\n"
 "Language-Team: Dzongkha <pgeyleg at dit.gov.bt>\n"
@@ -45,8 +45,8 @@
 msgid "The size of the icon to render in pixels."
 msgstr "པིག་སེལསི་ནང་ལྷག་སྟོན་བཟོ་ནི་ཨིན་པའི་ངོས་དཔར་གྱི་ཚད།"
 
-#: ../exo/exo-gdk-pixbuf-extensions.c:770 ../exo-mount/exo-mount-fstab.c:146
-#: ../exo-mount/exo-mount-fstab.c:187
+#: ../exo/exo-gdk-pixbuf-extensions.c:770 ../exo-mount/exo-mount-fstab.c:148
+#: ../exo-mount/exo-mount-fstab.c:177 ../exo-mount/exo-mount-fstab.c:203
 #, c-format
 msgid "Failed to open file \"%s\": %s"
 msgstr "ཡིག་སྣོད་  \"%s\": %s ཁ་ཕྱེ་ནི་འདི་འཐུས་ཤོར་འབྱུང་ནུག"
@@ -517,7 +517,7 @@
 msgstr "  --build-list      མིང་དཔྱད་འབད་ནི་ (མིང་, ཡིག་སྣོད་) ཟུང་།\n"
 
 #: ../exo-csource/main.c:248 ../exo-desktop-item-edit/main.c:153
-#: ../exo-mount/main.c:120 ../exo-mount-notify/main.c:164
+#: ../exo-mount/main.c:120 ../exo-mount-notify/main.c:167
 #: ../exo-open/main.c:129
 #, fuzzy, c-format
 msgid ""
@@ -534,7 +534,7 @@
 "\n"
 
 #: ../exo-csource/main.c:252 ../exo-desktop-item-edit/main.c:157
-#: ../exo-mount/main.c:124 ../exo-mount-notify/main.c:168
+#: ../exo-mount/main.c:124 ../exo-mount-notify/main.c:171
 #: ../exo-open/main.c:133
 #, c-format
 msgid ""
@@ -551,7 +551,7 @@
 "\n"
 
 #: ../exo-csource/main.c:256 ../exo-desktop-item-edit/main.c:161
-#: ../exo-mount/main.c:128 ../exo-mount-notify/main.c:172
+#: ../exo-mount/main.c:128 ../exo-mount-notify/main.c:175
 #: ../exo-open/main.c:137
 #, c-format
 msgid "Please report bugs to <%s>.\n"
@@ -722,7 +722,7 @@
 msgstr "[FILE|FOLDER]"
 
 #: ../exo-desktop-item-edit/main.c:138 ../exo-mount/main.c:106
-#: ../exo-mount-notify/main.c:150
+#: ../exo-mount-notify/main.c:153
 #, fuzzy
 msgid "Failed to open display"
 msgstr "བཀྲམ་སྟོན་  %s ཁ་ཕྱེ་ནི་ལུ་འཐུས་ཤོར་འབྱུང་ནུག:"
@@ -757,6 +757,94 @@
 msgid "Failed to save \"%s\"."
 msgstr " \"%s\" སྲུང་བཞག་འབད་ནི་ལུ་འཐུས་ཤོར་འབྱུག་ཡོད།"
 
+#: ../exo-hal/exo-hal.c:341
+#, c-format
+msgid "External %s Drive"
+msgstr ""
+
+#: ../exo-hal/exo-hal.c:343
+#, c-format
+msgid "%s Drive"
+msgstr ""
+
+#: ../exo-hal/exo-hal.c:352
+msgid "External Floppy Drive"
+msgstr ""
+
+#: ../exo-hal/exo-hal.c:354
+msgid "Floppy Drive"
+msgstr ""
+
+#: ../exo-hal/exo-hal.c:358
+msgid "Compact Flash Drive"
+msgstr ""
+
+#: ../exo-hal/exo-hal.c:362
+msgid "Memory Stick Drive"
+msgstr ""
+
+#: ../exo-hal/exo-hal.c:366
+msgid "Smart Media Drive"
+msgstr ""
+
+#: ../exo-hal/exo-hal.c:370
+msgid "SD/MMC Drive"
+msgstr ""
+
+#: ../exo-hal/exo-hal.c:374
+msgid "Zip Drive"
+msgstr ""
+
+#: ../exo-hal/exo-hal.c:378
+msgid "Jaz Drive"
+msgstr ""
+
+#: ../exo-hal/exo-hal.c:382
+msgid "Pen Drive"
+msgstr ""
+
+#. TRANSLATORS: This string requires special care as %s may be the empty string. Trailing/leading whitespace will be removed.
+#: ../exo-hal/exo-hal.c:391
+#, c-format
+msgid "%s Music Player"
+msgstr ""
+
+#. TRANSLATORS: This string requires special care as %s may be the empty string. Trailing/leading whitespace will be removed.
+#: ../exo-hal/exo-hal.c:406
+#, c-format
+msgid "%s Digital Camera"
+msgstr ""
+
+#. last fallback to "Drive"
+#: ../exo-hal/exo-hal.c:429
+msgid "Drive"
+msgstr ""
+
+#: ../exo-hal/exo-hal.c:656
+#, c-format
+msgid "Blank %s Disc"
+msgstr ""
+
+#: ../exo-hal/exo-hal.c:658
+#, c-format
+msgid "%s Disc"
+msgstr ""
+
+#. special case for pure audio disc
+#: ../exo-hal/exo-hal.c:663
+msgid "Audio CD"
+msgstr ""
+
+#: ../exo-hal/exo-hal.c:699
+#, c-format
+msgid "%s Removable Volume"
+msgstr ""
+
+#: ../exo-hal/exo-hal.c:701
+#, c-format
+msgid "%s Volume"
+msgstr ""
+
 #: ../exo-helper/exo-helper-chooser-dialog.c:100
 #: ../exo-helper/exo-preferred-applications.desktop.in.h:1
 msgid "Preferred Applications"
@@ -1067,55 +1155,55 @@
 msgid "X Terminal"
 msgstr "ཨེགསི་ཊལ་མི་ནཱལ།"
 
-#: ../exo-mount/exo-mount-fstab.c:112
+#: ../exo-mount/exo-mount-fstab.c:115
 msgid "Unknown error"
 msgstr ""
 
 #. generate an appropriate error message
 #. tell the caller that no matching device was found
-#: ../exo-mount/exo-mount-fstab.c:248 ../exo-mount/exo-mount-hal.c:339
+#: ../exo-mount/exo-mount-fstab.c:242 ../exo-mount/exo-mount-hal.c:340
 #, c-format
 msgid "Device \"%s\" not found in file system device table"
 msgstr ""
 
 #. definitely not a device that we're able to mount, eject or unmount
-#: ../exo-mount/exo-mount-hal.c:193 ../exo-mount/exo-mount-hal.c:246
+#: ../exo-mount/exo-mount-hal.c:194 ../exo-mount/exo-mount-hal.c:247
 #, c-format
 msgid "Given device \"%s\" is not a volume or drive"
 msgstr ""
 
 #. TRANSLATORS: The user tried to eject a device although he's not privileged to do so.
-#: ../exo-mount/exo-mount-hal.c:616
+#: ../exo-mount/exo-mount-hal.c:561
 #, c-format
 msgid "You are not privileged to eject the volume \"%s\""
 msgstr ""
 
 #. TRANSLATORS: An application is blocking a mounted volume from being ejected.
-#: ../exo-mount/exo-mount-hal.c:621
+#: ../exo-mount/exo-mount-hal.c:566
 #, c-format
 msgid "An application is preventing the volume \"%s\" from being ejected"
 msgstr ""
 
 #. TRANSLATORS: User tried to mount a volume, but is not privileged to do so.
-#: ../exo-mount/exo-mount-hal.c:846
+#: ../exo-mount/exo-mount-hal.c:791
 #, c-format
 msgid "You are not privileged to mount the volume \"%s\""
 msgstr ""
 
 #. TRANSLATORS: User tried to unmount a volume, but is not privileged to do so.
-#: ../exo-mount/exo-mount-hal.c:935
+#: ../exo-mount/exo-mount-hal.c:880
 #, c-format
 msgid "You are not privileged to unmount the volume \"%s\""
 msgstr ""
 
 #. TRANSLATORS: An application is blocking a volume from being unmounted.
-#: ../exo-mount/exo-mount-hal.c:940
+#: ../exo-mount/exo-mount-hal.c:885
 #, c-format
 msgid "An application is preventing the volume \"%s\" from being unmounted"
 msgstr ""
 
 #. TRANSLATORS: HAL can only unmount volumes that were mounted via HAL.
-#: ../exo-mount/exo-mount-hal.c:945
+#: ../exo-mount/exo-mount-hal.c:890
 #, c-format
 msgid "The volume \"%s\" was probably mounted manually on the command line"
 msgstr ""
@@ -1165,17 +1253,17 @@
 msgid "Cannot eject and unmount simultaneously"
 msgstr ""
 
-#: ../exo-mount/main.c:306
+#: ../exo-mount/main.c:319
 #, fuzzy, c-format
 msgid "Failed to eject \"%s\""
 msgstr "\"%s\" གསར་བསྐྲུན་འབད་ནི་ལུ་འཐུས་ཤོར་འབྱུང་ཡོད།"
 
-#: ../exo-mount/main.c:308
+#: ../exo-mount/main.c:321
 #, fuzzy, c-format
 msgid "Failed to unmount \"%s\""
 msgstr " \"%s\"འདི་ཁ་ཕྱེ་ནི་ལུ་འཐུས་ཤོར་འབྱུང་ནུག"
 
-#: ../exo-mount/main.c:310
+#: ../exo-mount/main.c:323
 #, fuzzy, c-format
 msgid "Failed to mount \"%s\""
 msgstr " \"%s\"འདི་ཁ་ཕྱེ་ནི་ལུ་འཐུས་ཤོར་འབྱུང་ནུག"
@@ -1191,21 +1279,21 @@
 msgstr ""
 
 #. read-only, just ejecting
-#: ../exo-mount-notify/main.c:221
+#: ../exo-mount-notify/main.c:224
 msgid "Ejecting device"
 msgstr ""
 
-#: ../exo-mount-notify/main.c:222
+#: ../exo-mount-notify/main.c:225
 #, c-format
 msgid "The device \"%s\" is being ejected. This may take some time."
 msgstr ""
 
 #. read-only, just unmounting
-#: ../exo-mount-notify/main.c:227
+#: ../exo-mount-notify/main.c:230
 msgid "Unmounting device"
 msgstr ""
 
-#: ../exo-mount-notify/main.c:228
+#: ../exo-mount-notify/main.c:231
 #, c-format
 msgid ""
 "The device \"%s\" is being unmounted by the system. Please do not remove the "
@@ -1213,11 +1301,11 @@
 msgstr ""
 
 #. not read-only, writing back data
-#: ../exo-mount-notify/main.c:235
+#: ../exo-mount-notify/main.c:238
 msgid "Writing data to device"
 msgstr ""
 
-#: ../exo-mount-notify/main.c:236
+#: ../exo-mount-notify/main.c:239
 #, c-format
 msgid ""
 "There is data that needs to be written to the device \"%s\" before it can be "

Modified: libexo/trunk/po/el.po
===================================================================
--- libexo/trunk/po/el.po	2007-01-07 20:23:21 UTC (rev 24291)
+++ libexo/trunk/po/el.po	2007-01-07 21:59:39 UTC (rev 24292)
@@ -8,7 +8,7 @@
 msgstr ""
 "Project-Id-Version: exo 0.3.1.12rc2\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2007-01-06 18:44+0100\n"
+"POT-Creation-Date: 2007-01-07 17:59+0100\n"
 "PO-Revision-Date: 2006-10-09 22:54+0200\n"
 "Last-Translator: Stavros Giannouris <stavrosg at serverhive.com>\n"
 "Language-Team: Greek <nls at tux.hellug.gr>\n"
@@ -43,8 +43,8 @@
 msgid "The size of the icon to render in pixels."
 msgstr "Το μέγεθος του εικονιδίου σε pixel."
 
-#: ../exo/exo-gdk-pixbuf-extensions.c:770 ../exo-mount/exo-mount-fstab.c:146
-#: ../exo-mount/exo-mount-fstab.c:187
+#: ../exo/exo-gdk-pixbuf-extensions.c:770 ../exo-mount/exo-mount-fstab.c:148
+#: ../exo-mount/exo-mount-fstab.c:177 ../exo-mount/exo-mount-fstab.c:203
 #, c-format
 msgid "Failed to open file \"%s\": %s"
 msgstr "Το άνοιγμα του αρχείου \"%s\" απέτυχε: %s"
@@ -515,7 +515,7 @@
 msgstr "  --build-list         Ανάλυση ζευγαριών (όνομα, αρχείο)\n"
 
 #: ../exo-csource/main.c:248 ../exo-desktop-item-edit/main.c:153
-#: ../exo-mount/main.c:120 ../exo-mount-notify/main.c:164
+#: ../exo-mount/main.c:120 ../exo-mount-notify/main.c:167
 #: ../exo-open/main.c:129
 #, fuzzy, c-format
 msgid ""
@@ -532,7 +532,7 @@
 "\n"
 
 #: ../exo-csource/main.c:252 ../exo-desktop-item-edit/main.c:157
-#: ../exo-mount/main.c:124 ../exo-mount-notify/main.c:168
+#: ../exo-mount/main.c:124 ../exo-mount-notify/main.c:171
 #: ../exo-open/main.c:133
 #, c-format
 msgid ""
@@ -549,7 +549,7 @@
 "\n"
 
 #: ../exo-csource/main.c:256 ../exo-desktop-item-edit/main.c:161
-#: ../exo-mount/main.c:128 ../exo-mount-notify/main.c:172
+#: ../exo-mount/main.c:128 ../exo-mount-notify/main.c:175
 #: ../exo-open/main.c:137
 #, c-format
 msgid "Please report bugs to <%s>.\n"
@@ -722,7 +722,7 @@
 msgstr "[ΑΡΧΕΙΟ|ΦΑΚΕΛΟΣ]"
 
 #: ../exo-desktop-item-edit/main.c:138 ../exo-mount/main.c:106
-#: ../exo-mount-notify/main.c:150
+#: ../exo-mount-notify/main.c:153
 #, fuzzy
 msgid "Failed to open display"
 msgstr "Αποτυχία ανοίγματος οθόνης: %s"
@@ -757,6 +757,94 @@
 msgid "Failed to save \"%s\"."
 msgstr "Η αποθήκευση του \"%s\" απέτυχε"
 
+#: ../exo-hal/exo-hal.c:341
+#, c-format
+msgid "External %s Drive"
+msgstr ""
+
+#: ../exo-hal/exo-hal.c:343
+#, c-format
+msgid "%s Drive"
+msgstr ""
+
+#: ../exo-hal/exo-hal.c:352
+msgid "External Floppy Drive"
+msgstr ""
+
+#: ../exo-hal/exo-hal.c:354
+msgid "Floppy Drive"
+msgstr ""
+
+#: ../exo-hal/exo-hal.c:358
+msgid "Compact Flash Drive"
+msgstr ""
+
+#: ../exo-hal/exo-hal.c:362
+msgid "Memory Stick Drive"
+msgstr ""
+
+#: ../exo-hal/exo-hal.c:366
+msgid "Smart Media Drive"
+msgstr ""
+
+#: ../exo-hal/exo-hal.c:370
+msgid "SD/MMC Drive"
+msgstr ""
+
+#: ../exo-hal/exo-hal.c:374
+msgid "Zip Drive"
+msgstr ""
+
+#: ../exo-hal/exo-hal.c:378
+msgid "Jaz Drive"
+msgstr ""
+
+#: ../exo-hal/exo-hal.c:382
+msgid "Pen Drive"
+msgstr ""
+
+#. TRANSLATORS: This string requires special care as %s may be the empty string. Trailing/leading whitespace will be removed.
+#: ../exo-hal/exo-hal.c:391
+#, c-format
+msgid "%s Music Player"
+msgstr ""
+
+#. TRANSLATORS: This string requires special care as %s may be the empty string. Trailing/leading whitespace will be removed.
+#: ../exo-hal/exo-hal.c:406
+#, c-format
+msgid "%s Digital Camera"
+msgstr ""
+
+#. last fallback to "Drive"
+#: ../exo-hal/exo-hal.c:429
+msgid "Drive"
+msgstr ""
+
+#: ../exo-hal/exo-hal.c:656
+#, c-format
+msgid "Blank %s Disc"
+msgstr ""
+
+#: ../exo-hal/exo-hal.c:658
+#, c-format
+msgid "%s Disc"
+msgstr ""
+
+#. special case for pure audio disc
+#: ../exo-hal/exo-hal.c:663
+msgid "Audio CD"
+msgstr ""
+
+#: ../exo-hal/exo-hal.c:699
+#, c-format
+msgid "%s Removable Volume"
+msgstr ""
+
+#: ../exo-hal/exo-hal.c:701
+#, c-format
+msgid "%s Volume"
+msgstr ""
+
 #: ../exo-helper/exo-helper-chooser-dialog.c:100
 #: ../exo-helper/exo-preferred-applications.desktop.in.h:1
 msgid "Preferred Applications"
@@ -1075,55 +1163,55 @@
 msgid "X Terminal"
 msgstr "Τερματικό X"
 
-#: ../exo-mount/exo-mount-fstab.c:112
+#: ../exo-mount/exo-mount-fstab.c:115
 msgid "Unknown error"
 msgstr ""
 
 #. generate an appropriate error message
 #. tell the caller that no matching device was found
-#: ../exo-mount/exo-mount-fstab.c:248 ../exo-mount/exo-mount-hal.c:339
+#: ../exo-mount/exo-mount-fstab.c:242 ../exo-mount/exo-mount-hal.c:340
 #, c-format
 msgid "Device \"%s\" not found in file system device table"
 msgstr ""
 
 #. definitely not a device that we're able to mount, eject or unmount
-#: ../exo-mount/exo-mount-hal.c:193 ../exo-mount/exo-mount-hal.c:246
+#: ../exo-mount/exo-mount-hal.c:194 ../exo-mount/exo-mount-hal.c:247
 #, c-format
 msgid "Given device \"%s\" is not a volume or drive"
 msgstr ""
 
 #. TRANSLATORS: The user tried to eject a device although he's not privileged to do so.
-#: ../exo-mount/exo-mount-hal.c:616
+#: ../exo-mount/exo-mount-hal.c:561
 #, c-format
 msgid "You are not privileged to eject the volume \"%s\""
 msgstr ""
 
 #. TRANSLATORS: An application is blocking a mounted volume from being ejected.
-#: ../exo-mount/exo-mount-hal.c:621
+#: ../exo-mount/exo-mount-hal.c:566
 #, c-format
 msgid "An application is preventing the volume \"%s\" from being ejected"
 msgstr ""
 
 #. TRANSLATORS: User tried to mount a volume, but is not privileged to do so.
-#: ../exo-mount/exo-mount-hal.c:846
+#: ../exo-mount/exo-mount-hal.c:791
 #, c-format
 msgid "You are not privileged to mount the volume \"%s\""
 msgstr ""
 
 #. TRANSLATORS: User tried to unmount a volume, but is not privileged to do so.
-#: ../exo-mount/exo-mount-hal.c:935
+#: ../exo-mount/exo-mount-hal.c:880
 #, c-format
 msgid "You are not privileged to unmount the volume \"%s\""
 msgstr ""
 
 #. TRANSLATORS: An application is blocking a volume from being unmounted.
-#: ../exo-mount/exo-mount-hal.c:940
+#: ../exo-mount/exo-mount-hal.c:885
 #, c-format
 msgid "An application is preventing the volume \"%s\" from being unmounted"
 msgstr ""
 
 #. TRANSLATORS: HAL can only unmount volumes that were mounted via HAL.
-#: ../exo-mount/exo-mount-hal.c:945
+#: ../exo-mount/exo-mount-hal.c:890
 #, c-format
 msgid "The volume \"%s\" was probably mounted manually on the command line"
 msgstr ""
@@ -1173,17 +1261,17 @@
 msgid "Cannot eject and unmount simultaneously"
 msgstr ""
 
-#: ../exo-mount/main.c:306
+#: ../exo-mount/main.c:319
 #, fuzzy, c-format
 msgid "Failed to eject \"%s\""
 msgstr "Η δημιουργία του \"%s\" απέτυχε."
 
-#: ../exo-mount/main.c:308
+#: ../exo-mount/main.c:321
 #, fuzzy, c-format
 msgid "Failed to unmount \"%s\""
 msgstr "Το άνοιγμα του \"%s\" απέτυχε."
 
-#: ../exo-mount/main.c:310
+#: ../exo-mount/main.c:323
 #, fuzzy, c-format
 msgid "Failed to mount \"%s\""
 msgstr "Το άνοιγμα του \"%s\" απέτυχε."
@@ -1199,21 +1287,21 @@
 msgstr ""
 
 #. read-only, just ejecting
-#: ../exo-mount-notify/main.c:221
+#: ../exo-mount-notify/main.c:224
 msgid "Ejecting device"
 msgstr ""
 
-#: ../exo-mount-notify/main.c:222
+#: ../exo-mount-notify/main.c:225
 #, c-format
 msgid "The device \"%s\" is being ejected. This may take some time."
 msgstr ""
 
 #. read-only, just unmounting
-#: ../exo-mount-notify/main.c:227
+#: ../exo-mount-notify/main.c:230
 msgid "Unmounting device"
 msgstr ""
 
-#: ../exo-mount-notify/main.c:228
+#: ../exo-mount-notify/main.c:231
 #, c-format
 msgid ""
 "The device \"%s\" is being unmounted by the system. Please do not remove the "
@@ -1221,11 +1309,11 @@
 msgstr ""
 
 #. not read-only, writing back data
-#: ../exo-mount-notify/main.c:235
+#: ../exo-mount-notify/main.c:238
 msgid "Writing data to device"
 msgstr ""
 
-#: ../exo-mount-notify/main.c:236
+#: ../exo-mount-notify/main.c:239
 #, c-format
 msgid ""
 "There is data that needs to be written to the device \"%s\" before it can be "

Modified: libexo/trunk/po/en_GB.po
===================================================================
--- libexo/trunk/po/en_GB.po	2007-01-07 20:23:21 UTC (rev 24291)
+++ libexo/trunk/po/en_GB.po	2007-01-07 21:59:39 UTC (rev 24292)
@@ -7,7 +7,7 @@
 msgstr ""
 "Project-Id-Version: exo 0.3.1.12rc2\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2007-01-06 18:44+0100\n"
+"POT-Creation-Date: 2007-01-07 17:59+0100\n"
 "PO-Revision-Date: 2005-10-10 01:45+0900\n"
 "Last-Translator: Dwayne Bailey <dwayne at translate.org.za>\n"
 "Language-Team: British English <en_gb at li.org>\n"
@@ -41,8 +41,8 @@
 msgid "The size of the icon to render in pixels."
 msgstr ""
 
-#: ../exo/exo-gdk-pixbuf-extensions.c:770 ../exo-mount/exo-mount-fstab.c:146
-#: ../exo-mount/exo-mount-fstab.c:187
+#: ../exo/exo-gdk-pixbuf-extensions.c:770 ../exo-mount/exo-mount-fstab.c:148
+#: ../exo-mount/exo-mount-fstab.c:177 ../exo-mount/exo-mount-fstab.c:203
 #, c-format
 msgid "Failed to open file \"%s\": %s"
 msgstr ""
@@ -513,7 +513,7 @@
 msgstr ""
 
 #: ../exo-csource/main.c:248 ../exo-desktop-item-edit/main.c:153
-#: ../exo-mount/main.c:120 ../exo-mount-notify/main.c:164
+#: ../exo-mount/main.c:120 ../exo-mount-notify/main.c:167
 #: ../exo-open/main.c:129
 #, c-format
 msgid ""
@@ -525,7 +525,7 @@
 msgstr ""
 
 #: ../exo-csource/main.c:252 ../exo-desktop-item-edit/main.c:157
-#: ../exo-mount/main.c:124 ../exo-mount-notify/main.c:168
+#: ../exo-mount/main.c:124 ../exo-mount-notify/main.c:171
 #: ../exo-open/main.c:133
 #, c-format
 msgid ""
@@ -537,7 +537,7 @@
 msgstr ""
 
 #: ../exo-csource/main.c:256 ../exo-desktop-item-edit/main.c:161
-#: ../exo-mount/main.c:128 ../exo-mount-notify/main.c:172
+#: ../exo-mount/main.c:128 ../exo-mount-notify/main.c:175
 #: ../exo-open/main.c:137
 #, c-format
 msgid "Please report bugs to <%s>.\n"
@@ -706,7 +706,7 @@
 msgstr ""
 
 #: ../exo-desktop-item-edit/main.c:138 ../exo-mount/main.c:106
-#: ../exo-mount-notify/main.c:150
+#: ../exo-mount-notify/main.c:153
 msgid "Failed to open display"
 msgstr ""
 
@@ -740,6 +740,94 @@
 msgid "Failed to save \"%s\"."
 msgstr ""
 
+#: ../exo-hal/exo-hal.c:341
+#, c-format
+msgid "External %s Drive"
+msgstr ""
+
+#: ../exo-hal/exo-hal.c:343
+#, c-format
+msgid "%s Drive"
+msgstr ""
+
+#: ../exo-hal/exo-hal.c:352
+msgid "External Floppy Drive"
+msgstr ""
+
+#: ../exo-hal/exo-hal.c:354
+msgid "Floppy Drive"
+msgstr ""
+
+#: ../exo-hal/exo-hal.c:358
+msgid "Compact Flash Drive"
+msgstr ""
+
+#: ../exo-hal/exo-hal.c:362
+msgid "Memory Stick Drive"
+msgstr ""
+
+#: ../exo-hal/exo-hal.c:366
+msgid "Smart Media Drive"
+msgstr ""
+
+#: ../exo-hal/exo-hal.c:370
+msgid "SD/MMC Drive"
+msgstr ""
+
+#: ../exo-hal/exo-hal.c:374
+msgid "Zip Drive"
+msgstr ""
+
+#: ../exo-hal/exo-hal.c:378
+msgid "Jaz Drive"
+msgstr ""
+
+#: ../exo-hal/exo-hal.c:382
+msgid "Pen Drive"
+msgstr ""
+
+#. TRANSLATORS: This string requires special care as %s may be the empty string. Trailing/leading whitespace will be removed.
+#: ../exo-hal/exo-hal.c:391
+#, c-format
+msgid "%s Music Player"
+msgstr ""
+
+#. TRANSLATORS: This string requires special care as %s may be the empty string. Trailing/leading whitespace will be removed.
+#: ../exo-hal/exo-hal.c:406
+#, c-format
+msgid "%s Digital Camera"
+msgstr ""
+
+#. last fallback to "Drive"
+#: ../exo-hal/exo-hal.c:429
+msgid "Drive"
+msgstr ""
+
+#: ../exo-hal/exo-hal.c:656
+#, c-format
+msgid "Blank %s Disc"
+msgstr ""
+
+#: ../exo-hal/exo-hal.c:658
+#, c-format
+msgid "%s Disc"
+msgstr ""
+
+#. special case for pure audio disc
+#: ../exo-hal/exo-hal.c:663
+msgid "Audio CD"
+msgstr ""
+
+#: ../exo-hal/exo-hal.c:699
+#, c-format
+msgid "%s Removable Volume"
+msgstr ""
+
+#: ../exo-hal/exo-hal.c:701
+#, c-format
+msgid "%s Volume"
+msgstr ""
+
 #: ../exo-helper/exo-helper-chooser-dialog.c:100
 #: ../exo-helper/exo-preferred-applications.desktop.in.h:1
 msgid "Preferred Applications"
@@ -1031,55 +1119,55 @@
 msgid "X Terminal"
 msgstr ""
 
-#: ../exo-mount/exo-mount-fstab.c:112
+#: ../exo-mount/exo-mount-fstab.c:115
 msgid "Unknown error"
 msgstr ""
 
 #. generate an appropriate error message
 #. tell the caller that no matching device was found
-#: ../exo-mount/exo-mount-fstab.c:248 ../exo-mount/exo-mount-hal.c:339
+#: ../exo-mount/exo-mount-fstab.c:242 ../exo-mount/exo-mount-hal.c:340
 #, c-format
 msgid "Device \"%s\" not found in file system device table"
 msgstr ""
 
 #. definitely not a device that we're able to mount, eject or unmount
-#: ../exo-mount/exo-mount-hal.c:193 ../exo-mount/exo-mount-hal.c:246
+#: ../exo-mount/exo-mount-hal.c:194 ../exo-mount/exo-mount-hal.c:247
 #, c-format
 msgid "Given device \"%s\" is not a volume or drive"
 msgstr ""
 
 #. TRANSLATORS: The user tried to eject a device although he's not privileged to do so.
-#: ../exo-mount/exo-mount-hal.c:616
+#: ../exo-mount/exo-mount-hal.c:561
 #, c-format
 msgid "You are not privileged to eject the volume \"%s\""
 msgstr ""
 
 #. TRANSLATORS: An application is blocking a mounted volume from being ejected.
-#: ../exo-mount/exo-mount-hal.c:621
+#: ../exo-mount/exo-mount-hal.c:566
 #, c-format
 msgid "An application is preventing the volume \"%s\" from being ejected"
 msgstr ""
 
 #. TRANSLATORS: User tried to mount a volume, but is not privileged to do so.
-#: ../exo-mount/exo-mount-hal.c:846
+#: ../exo-mount/exo-mount-hal.c:791
 #, c-format
 msgid "You are not privileged to mount the volume \"%s\""
 msgstr ""
 
 #. TRANSLATORS: User tried to unmount a volume, but is not privileged to do so.
-#: ../exo-mount/exo-mount-hal.c:935
+#: ../exo-mount/exo-mount-hal.c:880
 #, c-format
 msgid "You are not privileged to unmount the volume \"%s\""
 msgstr ""
 
 #. TRANSLATORS: An application is blocking a volume from being unmounted.
-#: ../exo-mount/exo-mount-hal.c:940
+#: ../exo-mount/exo-mount-hal.c:885
 #, c-format
 msgid "An application is preventing the volume \"%s\" from being unmounted"
 msgstr ""
 
 #. TRANSLATORS: HAL can only unmount volumes that were mounted via HAL.
-#: ../exo-mount/exo-mount-hal.c:945
+#: ../exo-mount/exo-mount-hal.c:890
 #, c-format
 msgid "The volume \"%s\" was probably mounted manually on the command line"
 msgstr ""
@@ -1129,17 +1217,17 @@
 msgid "Cannot eject and unmount simultaneously"
 msgstr ""
 
-#: ../exo-mount/main.c:306
+#: ../exo-mount/main.c:319
 #, c-format
 msgid "Failed to eject \"%s\""
 msgstr ""
 
-#: ../exo-mount/main.c:308
+#: ../exo-mount/main.c:321
 #, c-format
 msgid "Failed to unmount \"%s\""
 msgstr ""
 
-#: ../exo-mount/main.c:310
+#: ../exo-mount/main.c:323
 #, c-format
 msgid "Failed to mount \"%s\""
 msgstr ""
@@ -1155,21 +1243,21 @@
 msgstr ""
 
 #. read-only, just ejecting
-#: ../exo-mount-notify/main.c:221
+#: ../exo-mount-notify/main.c:224
 msgid "Ejecting device"
 msgstr ""
 
-#: ../exo-mount-notify/main.c:222
+#: ../exo-mount-notify/main.c:225
 #, c-format
 msgid "The device \"%s\" is being ejected. This may take some time."
 msgstr ""
 
 #. read-only, just unmounting
-#: ../exo-mount-notify/main.c:227
+#: ../exo-mount-notify/main.c:230
 msgid "Unmounting device"
 msgstr ""
 
-#: ../exo-mount-notify/main.c:228
+#: ../exo-mount-notify/main.c:231
 #, c-format
 msgid ""
 "The device \"%s\" is being unmounted by the system. Please do not remove the "
@@ -1177,11 +1265,11 @@
 msgstr ""
 
 #. not read-only, writing back data
-#: ../exo-mount-notify/main.c:235
+#: ../exo-mount-notify/main.c:238
 msgid "Writing data to device"
 msgstr ""
 
-#: ../exo-mount-notify/main.c:236
+#: ../exo-mount-notify/main.c:239
 #, c-format
 msgid ""
 "There is data that needs to be written to the device \"%s\" before it can be "

Modified: libexo/trunk/po/es.po
===================================================================
--- libexo/trunk/po/es.po	2007-01-07 20:23:21 UTC (rev 24291)
+++ libexo/trunk/po/es.po	2007-01-07 21:59:39 UTC (rev 24292)
@@ -7,7 +7,7 @@
 msgstr ""
 "Project-Id-Version: exo 0.3.1.12rc2\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2007-01-06 18:44+0100\n"
+"POT-Creation-Date: 2007-01-07 17:59+0100\n"
 "PO-Revision-Date: 2005-10-10 01:45+0900\n"
 "Last-Translator: Patricio Carr <pato at patocarr.com>\n"
 "Language-Team: os-cillation <info at os-cillation.com>\n"
@@ -41,8 +41,8 @@
 msgid "The size of the icon to render in pixels."
 msgstr ""
 
-#: ../exo/exo-gdk-pixbuf-extensions.c:770 ../exo-mount/exo-mount-fstab.c:146
-#: ../exo-mount/exo-mount-fstab.c:187
+#: ../exo/exo-gdk-pixbuf-extensions.c:770 ../exo-mount/exo-mount-fstab.c:148
+#: ../exo-mount/exo-mount-fstab.c:177 ../exo-mount/exo-mount-fstab.c:203
 #, c-format
 msgid "Failed to open file \"%s\": %s"
 msgstr ""
@@ -514,7 +514,7 @@
 msgstr "  --build-list      Parsear pares (nombre, archivo)\n"
 
 #: ../exo-csource/main.c:248 ../exo-desktop-item-edit/main.c:153
-#: ../exo-mount/main.c:120 ../exo-mount-notify/main.c:164
+#: ../exo-mo