changeset 1585:9a64eda3e020

merged
author Yoshiki Yazawa <yaz@honeyplanet.jp>
date Fri, 01 May 2009 15:49:32 +0900
parents c1e22cba4003 (diff) f1d22c2174c1 (current diff)
children 5b59ccf95b2b
files src/image.c src/image.h src/layout.c src/layout_image.c src/layout_image.h src/typedefs.h
diffstat 37 files changed, 1717 insertions(+), 1222 deletions(-) [+]
line wrap: on
line diff
--- a/geeqie.spec.in	Fri May 01 15:49:06 2009 +0900
+++ b/geeqie.spec.in	Fri May 01 15:49:32 2009 +0900
@@ -83,7 +83,8 @@
 %files 
 %defattr(-,root,root)
 %doc %{_docdir}/%{docname}
-%{_bindir}/geeqie
+%{_bindir}/geeqie*
+%{_datadir}/geeqie
 %{_datadir}/locale/*/LC_MESSAGES/*.mo
 %{_datadir}/applications/geeqie.desktop
 %{_datadir}/pixmaps/geeqie.png
--- a/plugins/Makefile.am	Fri May 01 15:49:06 2009 +0900
+++ b/plugins/Makefile.am	Fri May 01 15:49:32 2009 +0900
@@ -2,3 +2,5 @@
 qq_desktoptemplatedir = $(pkgdatadir)
 qq_desktoptemplate_DATA = template.desktop
 
+EXTRA_DIST = \
+	$(qq_desktoptemplate_DATA)
--- a/plugins/symlink/Makefile.am	Fri May 01 15:49:06 2009 +0900
+++ b/plugins/symlink/Makefile.am	Fri May 01 15:49:32 2009 +0900
@@ -1,5 +1,7 @@
+dist_bin_SCRIPTS = geeqie-symlink
 
 qq_desktopdir = $(pkgdatadir)/applications
 qq_desktop_DATA = symlink.desktop
 
-
+EXTRA_DIST = \
+	$(qq_desktop_DATA)
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/plugins/symlink/geeqie-symlink	Fri May 01 15:49:32 2009 +0900
@@ -0,0 +1,18 @@
+#!/bin/sh
+
+# This is a helper script that symlinks grouped files
+# it uses geeqie remote connection to get details about grouped files
+
+
+# iterate over files on commandline
+for file in "$@" ; do
+    # we got only one file for each group, typically the main one
+    # get the sidecars:
+    geeqie -r --get-sidecars:"$file" |while read sidecar ; do
+	# the main file is included in the sidecar file list, no special handling is required
+	# get destination path for each sidecar file:
+        geeqie -r --get-destination:"$sidecar" | if read destination ; then
+            ln -s "$sidecar" "$destination"
+        fi
+    done
+done
--- a/plugins/symlink/symlink.desktop	Fri May 01 15:49:06 2009 +0900
+++ b/plugins/symlink/symlink.desktop	Fri May 01 15:49:32 2009 +0900
@@ -4,11 +4,8 @@
 Name=Symlink
 #Name[cs]=
 
-# FIXME: this can't be an oneliner, it needs to be changed to a full
-# featured script in separate file, with error handling etc.
-# expansion of environment variables directly in Exec is not supported 
-# by the specification and it will be removed
-Exec=ln -s %f "$GEEQIE_DESTINATION"
+# call the helper script
+Exec=geeqie-symlink %f
 
 # Desktop files that are usable only in Geeqie should be marked like this:
 Categories=X-Geeqie;
--- a/po/Makefile.in.in.patch	Fri May 01 15:49:06 2009 +0900
+++ b/po/Makefile.in.in.patch	Fri May 01 15:49:32 2009 +0900
@@ -1,10 +1,20 @@
---- Makefile.in.in	2008-04-19 14:36:53.000000000 +0200
-+++ Makefile.in.in.new	2008-04-19 14:39:19.000000000 +0200
-@@ -216,7 +216,30 @@
+--- Makefile.in.in	2009-04-28 23:27:08.000000000 +0200
++++ Makefile.in.in.new	2009-04-28 23:25:22.000000000 +0200
+@@ -92,7 +92,7 @@
+ all-yes: $(CATALOGS)
+ all-no:
+ 
+-$(srcdir)/$(GETTEXT_PACKAGE).pot: $(POTFILES)
++$(srcdir)/$(GETTEXT_PACKAGE).pot: $(POTFILES) $(srcdir)/POTFILES.in
+ 	$(XGETTEXT) --default-domain=$(GETTEXT_PACKAGE) --directory=$(top_srcdir) \
+ 	  --add-comments --keyword=_ --keyword=N_ \
+           --flag=g_strdup_printf:1:c-format \
+@@ -216,8 +216,31 @@
  	    || cp -p $(srcdir)/$$file $(distdir); \
  	done
  
 -update-po: Makefile
+-	$(MAKE) $(GETTEXT_PACKAGE).pot
 +### Updating po and gmo files
 +#
 +# Update by merging all .po files with the .po template master file.
@@ -12,11 +22,11 @@
 +# It is possible to update only a single .po file by setting the PO variable to
 +# either <lang> or <lang>.po when calling make. Example: make update-po PO=is
 +
-+update-po: Makefile $(GETTEXT_PACKAGE).pot
++update-po: Makefile $(srcdir)/$(GETTEXT_PACKAGE).pot
 +	@cd $(srcdir); \
 +	$(foreach lang,$(basename $(if $(strip $(PO)),$(PO),$(CATALOGS))), \
 +	  echo -n "$(lang): "; \
-+	  if $(MSGMERGE) $(lang).po $(GETTEXT_PACKAGE).pot -o $(lang).new.po; then \
++	  if $(MSGMERGE) $(lang).po $(srcdir)/$(GETTEXT_PACKAGE).pot -o $(lang).new.po; then \
 +	    mv -f $(lang).new.po $(lang).po; \
 +	  else \
 +	    echo "msgmerge failed!"; \
@@ -29,6 +39,16 @@
 +	@:
 +
 +update-po-orig: Makefile
- 	$(MAKE) $(GETTEXT_PACKAGE).pot
++	$(MAKE) $(srcdir)/$(GETTEXT_PACKAGE).pot
  	tmpdir=`pwd`; \
  	cd $(srcdir); \
+ 	catalogs='$(CATALOGS)'; \
+@@ -225,7 +248,7 @@
+ 	  cat=`basename $$cat`; \
+ 	  lang=`echo $$cat | sed 's/\$(CATOBJEXT)$$//'`; \
+ 	  echo "$$lang:"; \
+-	  if $(MSGMERGE) $$lang.po $(GETTEXT_PACKAGE).pot -o $$tmpdir/$$lang.new.po; then \
++	  if $(MSGMERGE) $$lang.po $(srcdir)/$(GETTEXT_PACKAGE).pot -o $$tmpdir/$$lang.new.po; then \
+ 	    if cmp $$lang.po $$tmpdir/$$lang.new.po >/dev/null 2>&1; then \
+ 	      rm -f $$tmpdir/$$lang.new.po; \
+             else \
--- a/po/POTFILES.in	Fri May 01 15:49:06 2009 +0900
+++ b/po/POTFILES.in	Fri May 01 15:49:32 2009 +0900
@@ -7,11 +7,11 @@
 ./src/bar_sort.c
 ./src/cache.c
 ./src/cache_maint.c
-./src/cellrenderericon.c
 ./src/collect-dlg.c
 ./src/collect-io.c
 ./src/collect-table.c
 ./src/collect.c
+./src/color-man.c
 ./src/desktop_file.c
 ./src/dupe.c
 ./src/editors.c
--- a/po/de.po	Fri May 01 15:49:06 2009 +0900
+++ b/po/de.po	Fri May 01 15:49:32 2009 +0900
@@ -10,8 +10,8 @@
 msgstr ""
 "Project-Id-Version: geeqie-1.0alpha3\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-04-12 11:43+0100\n"
-"PO-Revision-Date: 2009-04-12 18:56+0100\n"
+"POT-Creation-Date: 2009-04-13 17:19+0100\n"
+"PO-Revision-Date: 2009-04-13 14:55+0100\n"
 "Last-Translator: Klaus Ethgen <Klaus@Ethgen.de>\n"
 "Language-Team: \n"
 "MIME-Version: 1.0\n"
@@ -21,11 +21,11 @@
 "X-Poedit-SourceCharset: utf-8\n"
 
 #: src/advanced_exif.c:389 src/cache_maint.c:1284 src/preferences.c:86
-#: src/preferences.c:1326 src/preferences.c:1328
+#: src/preferences.c:1327 src/preferences.c:1329
 msgid "Metadata"
 msgstr "Schlüsselworte und Kommentare"
 
-#: src/advanced_exif.c:437 src/preferences.c:1245
+#: src/advanced_exif.c:437 src/preferences.c:1246
 msgid "Description"
 msgstr "Beschreibung"
 
@@ -390,7 +390,7 @@
 msgid "S_tart"
 msgstr "S_tart"
 
-#: src/cache_maint.c:886 src/preferences.c:1470
+#: src/cache_maint.c:886 src/preferences.c:1480
 msgid "Folder:"
 msgstr "Verzeichnis:"
 
@@ -708,7 +708,8 @@
 msgid "%s, %d images"
 msgstr "%s, %d Bilder"
 
-#: src/collect-table.c:223 src/layout.c:463 src/layout_util.c:1101
+#: src/collect-table.c:223 src/layout_util.c:1094 src/layout_util.c:1260
+#: src/layout_util.c:2066
 msgid "Empty"
 msgstr "Leer"
 
@@ -719,7 +720,7 @@
 msgstr "Lade Vorschaubilder..."
 
 #: src/collect-table.c:872 src/dupe.c:2250 src/dupe.c:2561
-#: src/layout_util.c:1147 src/search.c:1006
+#: src/layout_util.c:1306 src/search.c:1006
 msgid "_View"
 msgstr "_Ansicht"
 
@@ -758,26 +759,26 @@
 msgstr "Auswahl umkehren"
 
 #: src/collect-table.c:904 src/dupe.c:2273 src/img-view.c:1295
-#: src/layout_image.c:516 src/layout_util.c:1175 src/pan-view.c:2822
+#: src/layout_image.c:516 src/layout_util.c:1335 src/pan-view.c:2822
 #: src/search.c:1025 src/view_file.c:575
 msgid "_Copy..."
 msgstr "_Kopieren..."
 
 #: src/collect-table.c:906 src/dupe.c:2275 src/img-view.c:1296
-#: src/layout_image.c:518 src/layout_util.c:1176 src/pan-view.c:2824
+#: src/layout_image.c:518 src/layout_util.c:1336 src/pan-view.c:2824
 #: src/search.c:1027 src/view_file.c:577
 msgid "_Move..."
 msgstr "_Verschieben..."
 
 #: src/collect-table.c:908 src/dupe.c:2277 src/img-view.c:1297
-#: src/layout_image.c:520 src/layout_util.c:1177 src/pan-view.c:2826
+#: src/layout_image.c:520 src/layout_util.c:1337 src/pan-view.c:2826
 #: src/search.c:1029 src/view_dir.c:616 src/view_file.c:579
 msgid "_Rename..."
 msgstr "_Umbenennen..."
 
 #: src/collect-table.c:910 src/dupe.c:2279 src/img-view.c:1298
-#: src/layout_image.c:522 src/layout_util.c:1178 src/layout_util.c:1179
-#: src/layout_util.c:1180 src/pan-view.c:2828 src/search.c:1031
+#: src/layout_image.c:522 src/layout_util.c:1338 src/layout_util.c:1339
+#: src/layout_util.c:1340 src/pan-view.c:2828 src/search.c:1031
 #: src/view_dir.c:618 src/view_file.c:581
 msgid "_Delete..."
 msgstr "_Löschen..."
@@ -808,7 +809,7 @@
 msgid "Save collection _as..."
 msgstr "Sammlung speichern _als..."
 
-#: src/collect-table.c:931 src/layout_util.c:1171
+#: src/collect-table.c:931 src/layout_util.c:1331
 msgid "_Find duplicates..."
 msgstr "_Duplikate suchen..."
 
@@ -993,7 +994,7 @@
 msgid "Name case-insensitive"
 msgstr "Name unterscheidet nicht in Groß-/Kleinschreibung"
 
-#: src/dupe.c:2655 src/dupe.c:3168 src/preferences.c:1069 src/print.c:3255
+#: src/dupe.c:2655 src/dupe.c:3168 src/preferences.c:1070 src/print.c:3255
 #: src/search.c:2849 src/view_file_list.c:2030
 msgid "Size"
 msgstr "Größe"
@@ -1039,7 +1040,7 @@
 msgid "Compare by:"
 msgstr "Vergleiche nach:"
 
-#: src/dupe.c:3224 src/preferences.c:907 src/search.c:2865
+#: src/dupe.c:3224 src/preferences.c:908 src/search.c:2865
 msgid "Thumbnails"
 msgstr "Vorschaubilder"
 
@@ -1177,7 +1178,7 @@
 msgid "dot"
 msgstr "Punkt"
 
-#: src/exif-common.c:403 src/exif.c:232 src/layout.c:513
+#: src/exif-common.c:403 src/exif.c:232 src/layout_util.c:1143
 msgid "sRGB"
 msgstr "sRGB"
 
@@ -1203,7 +1204,7 @@
 
 #: src/exif-common.c:515 src/exif.c:361
 msgid "Shutter speed"
-msgstr "Verschlussgeschw."
+msgstr "Belichtungszeit"
 
 #: src/exif-common.c:516 src/exif.c:362
 msgid "Aperture"
@@ -1330,38 +1331,47 @@
 msgstr "anderes"
 
 #: src/exif.c:186 src/exif.c:238
+#, fuzzy
 msgid "not defined"
 msgstr "unbekannt"
 
 #: src/exif.c:187 src/exif.c:266 src/exif.c:273
+#, fuzzy
 msgid "manual"
 msgstr "manuell"
 
 #: src/exif.c:188 src/exif.c:259 src/exif.c:295 src/exif.c:302 src/exif.c:309
+#, fuzzy
 msgid "normal"
 msgstr "normal"
 
 #: src/exif.c:189
+#, fuzzy
 msgid "aperture"
 msgstr "Blendenautomatik"
 
 #: src/exif.c:190
+#, fuzzy
 msgid "shutter"
 msgstr "Verschlusszeitautomatik"
 
 #: src/exif.c:191
+#, fuzzy
 msgid "creative"
 msgstr "kreativ"
 
 #: src/exif.c:192
+#, fuzzy
 msgid "action"
 msgstr "Sport"
 
 #: src/exif.c:193 src/exif.c:280
+#, fuzzy
 msgid "portrait"
 msgstr "Portrait"
 
 #: src/exif.c:194 src/exif.c:279
+#, fuzzy
 msgid "landscape"
 msgstr "Landschaft"
 
@@ -1373,9 +1383,10 @@
 msgid "fluorescent"
 msgstr "Leuchtstofflampe"
 
+# Man verzeihe mir die Übersetung mit Glühobst.
 #: src/exif.c:202
 msgid "tungsten (incandescent)"
-msgstr "Halogenlampe"
+msgstr "Kunstlicht (Glühbirne)"
 
 #: src/exif.c:203
 msgid "flash"
@@ -1575,7 +1586,7 @@
 
 #: src/exif.c:335
 msgid "Camera model"
-msgstr "Kamera Modell"
+msgstr "Kamera-Modell"
 
 #: src/exif.c:336
 msgid "Orientation"
@@ -1884,7 +1895,7 @@
 msgid "source and destination have different extension"
 msgstr "Quelle und Ziel haben unterschiedliche Dateierweiterung"
 
-#: src/fullscreen.c:243 src/preferences.c:1082
+#: src/fullscreen.c:243 src/preferences.c:1083
 msgid "Full screen"
 msgstr "Vollbildmodus"
 
@@ -1902,7 +1913,7 @@
 
 #: src/fullscreen.c:642
 msgid "Stay above other windows"
-msgstr "immer über den anderen Fenstern stehen"
+msgstr "Immer im Vordergrund anzeigen"
 
 #: src/fullscreen.c:649
 msgid "Determined by Window Manager"
@@ -1968,20 +1979,20 @@
 msgid " (Collection %s)"
 msgstr "(Sammlung %s)"
 
-#: src/img-view.c:1278 src/layout_image.c:494 src/layout_util.c:1203
-#: src/layout_util.c:1204 src/layout_util.c:1220 src/layout_util.c:1221
+#: src/img-view.c:1278 src/layout_image.c:494 src/layout_util.c:1363
+#: src/layout_util.c:1364 src/layout_util.c:1380 src/layout_util.c:1381
 #: src/pan-view.c:2806
 msgid "Zoom _in"
 msgstr "Ver_größern"
 
-#: src/img-view.c:1279 src/layout_image.c:495 src/layout_util.c:1205
-#: src/layout_util.c:1206 src/layout_util.c:1222 src/layout_util.c:1223
+#: src/img-view.c:1279 src/layout_image.c:495 src/layout_util.c:1365
+#: src/layout_util.c:1366 src/layout_util.c:1382 src/layout_util.c:1383
 #: src/pan-view.c:2808
 msgid "Zoom _out"
 msgstr "Ver_kleinern"
 
-#: src/img-view.c:1280 src/layout_image.c:496 src/layout_util.c:1207
-#: src/layout_util.c:1208 src/layout_util.c:1224 src/layout_util.c:1225
+#: src/img-view.c:1280 src/layout_image.c:496 src/layout_util.c:1367
+#: src/layout_util.c:1368 src/layout_util.c:1384 src/layout_util.c:1385
 #: src/pan-view.c:2810
 msgid "Zoom _1:1"
 msgstr "_Originalgröße"
@@ -1990,7 +2001,7 @@
 msgid "Fit image to _window"
 msgstr "In _Fenster einpassen"
 
-#: src/img-view.c:1287 src/layout_image.c:504 src/layout_util.c:1201
+#: src/img-view.c:1287 src/layout_image.c:504 src/layout_util.c:1361
 msgid "Set as _wallpaper"
 msgstr "Als _Hindergrundbild verwenden"
 
@@ -2023,7 +2034,7 @@
 msgid "_Full screen"
 msgstr "_Vollbildmodus"
 
-#: src/img-view.c:1335 src/layout_util.c:1182 src/pan-view.c:2884
+#: src/img-view.c:1335 src/layout_util.c:1342 src/pan-view.c:2884
 msgid "C_lose window"
 msgstr "Fenster s_chließen"
 
@@ -2031,140 +2042,108 @@
 msgid "Ascending"
 msgstr "Aufsteigend"
 
-#: src/layout.c:472
-#, c-format
-msgid "This installation of %s was not built with support for color profiles."
-msgstr ""
-
-#: src/layout.c:473
-msgid "Color profiles not supported"
-msgstr ""
-
-#: src/layout.c:498
-msgid "Use _color profiles"
-msgstr ""
-
-#: src/layout.c:503
-msgid "Use profile from _image"
-msgstr ""
-
-#: src/layout.c:514
-msgid "AdobeRGB compatible"
-msgstr "AdobeRGB-kompatibel"
-
-#: src/layout.c:517
-#, c-format
-msgid "Input _%d: %s%s"
-msgstr ""
-
-#: src/layout.c:535
-#, c-format
-msgid "Input _%d: %s"
-msgstr ""
-
-#: src/layout.c:549
-msgid "Screen sRGB"
-msgstr "Bildschirm sRGB"
-
-#: src/layout.c:556
-msgid "_Screen profile"
-msgstr "Bildschirmprofil "
-
-#: src/layout.c:681
+#: src/layout.c:501
 msgid " Slideshow"
 msgstr "Diashow"
 
-#: src/layout.c:685
+#: src/layout.c:505
 msgid " Paused"
 msgstr "Pausiert"
 
-#: src/layout.c:701
+#: src/layout.c:521
 #, c-format
 msgid "%s, %d files (%s, %d)%s"
 msgstr "%s, %d Dateien (%s, %d)%s"
 
-#: src/layout.c:708
+#: src/layout.c:528
 #, c-format
 msgid "%s, %d files%s"
 msgstr "%s, %d Dateien%s"
 
-#: src/layout.c:713
+#: src/layout.c:533
 #, c-format
 msgid "%d files%s"
 msgstr "%d Dateien%s"
 
-#: src/layout.c:758
+#: src/layout.c:580
 #, c-format
 msgid "(no read permission) %s bytes"
 msgstr "(keine Leserechte) %s Byte"
 
-#: src/layout.c:762
+#: src/layout.c:584
 #, c-format
 msgid "( ? x ? ) %s bytes"
 msgstr "( ? x ? ) %s Byte"
 
-#: src/layout.c:770
+#: src/layout.c:592
 #, c-format
 msgid "( %d x %d ) %s bytes"
 msgstr "( %d x %d ) %s Byte"
 
-#: src/layout.c:1467 src/layout_config.c:58
+#: src/layout.c:608
+#, c-format
+msgid ""
+"Image profile: %s\n"
+"Screen profile: %s"
+msgstr ""
+
+#: src/layout.c:1306 src/layout_config.c:58
 msgid "Tools"
 msgstr "Werkzeuge"
 
-#: src/layout.c:2079
+#: src/layout.c:1918
 msgid "Window options and layout"
 msgstr ""
 
-#: src/layout.c:2138
+#: src/layout.c:1977
 msgid "General options"
 msgstr "Allgemeine Optionen"
 
-#: src/layout.c:2140
+#: src/layout.c:1979
 msgid "Home path (empty to use your home directory)"
 msgstr ""
 
-#: src/layout.c:2148
+#: src/layout.c:1987
 msgid "Use current"
 msgstr "Aktuelles benutzen"
 
-#: src/layout.c:2151
+#: src/layout.c:1990
 msgid "Show date in directories list view"
 msgstr ""
 
-#: src/layout.c:2154
+#: src/layout.c:1993
 msgid "Exit program when this window is closed"
 msgstr ""
 
-#: src/layout.c:2157
+#: src/layout.c:1996
 msgid "Start-up directory:"
 msgstr "Startverzeichnis:"
 
-#: src/layout.c:2159
+#: src/layout.c:1998
 msgid "No change"
 msgstr "Keine Änderung"
 
-#: src/layout.c:2162
+#: src/layout.c:2001
 msgid "Restore last path"
 msgstr ""
 
-#: src/layout.c:2165
+#: src/layout.c:2004
 msgid "Home path"
 msgstr ""
 
-#: src/layout.c:2169 src/print.c:3421 src/print.c:3428
+#: src/layout.c:2008 src/print.c:3421 src/print.c:3428
 msgid "Layout"
 msgstr "Layout"
 
-#: src/layout.c:2407
+#: src/layout.c:2246
 msgid "Invalid geometry\n"
 msgstr ""
 
-#: src/layout_config.c:58 src/preferences.c:1179 src/ui_pathsel.c:1179
+#: src/layout_config.c:58 src/preferences.c:1180 src/ui_pathsel.c:1179
 msgid "Files"
 msgstr "Dateien"
 
-#: src/layout_config.c:58 src/preferences.c:84 src/preferences.c:976
+#: src/layout_config.c:58 src/preferences.c:84 src/preferences.c:977
 #: src/print.c:123
 msgid "Image"
 msgstr "Bild"
@@ -2177,405 +2156,472 @@
 msgid "Hide file _list"
 msgstr "Datei_liste verbergen"
 
-#: src/layout_image.c:1557
+#: src/layout_image.c:1549
 #, c-format
 msgid "pos(%*d,%*d) rgb(%3d,%3d,%3d)"
 msgstr ""
 
 # Was zur Hölle!?
 # Gut, man kann auch einen Punkt übersetzen
-#: src/layout_util.c:1003
+#: src/layout_util.c:1005
 #, c-format
 msgid "_%d %s..."
 msgstr "_%d %s ..."
 
-#: src/layout_util.c:1013
+#: src/layout_util.c:1015
 #, c-format
 msgid "_%d empty"
 msgstr "_%d leer"
 
-#: src/layout_util.c:1141
+#: src/layout_util.c:1102
+#, c-format
+msgid "This installation of %s was not built with support for color profiles."
+msgstr ""
+
+#: src/layout_util.c:1103
+msgid "Color profiles not supported"
+msgstr ""
+
+#: src/layout_util.c:1128 src/layout_util.c:1431
+msgid "Use _color profiles"
+msgstr ""
+
+#: src/layout_util.c:1133 src/layout_util.c:1432
+msgid "Use profile from _image"
+msgstr ""
+
+#: src/layout_util.c:1144
+msgid "AdobeRGB compatible"
+msgstr "AdobeRGB-kompatibel"
+
+#: src/layout_util.c:1147
+#, c-format
+msgid "Input _%d: %s%s"
+msgstr ""
+
+#: src/layout_util.c:1165 src/layout_util.c:2106
+#, c-format
+msgid "Input _%d: %s"
+msgstr ""
+
+#: src/layout_util.c:1179
+msgid "Screen sRGB"
+msgstr "Bildschirm sRGB"
+
+#: src/layout_util.c:1186
+msgid "_Screen profile"
+msgstr "Bildschirmprofil "
+
+#: src/layout_util.c:1300
 msgid "_File"
 msgstr "_Datei"
 
-#: src/layout_util.c:1142
+#: src/layout_util.c:1301
 msgid "_Go"
 msgstr ""
 
-#: src/layout_util.c:1143 src/menu.c:109
+#: src/layout_util.c:1302 src/menu.c:109
 msgid "_Edit"
 msgstr "_Bearbeiten"
 
-#: src/layout_util.c:1144
+#: src/layout_util.c:1303
 msgid "_Select"
 msgstr "_Auswahl"
 
-#: src/layout_util.c:1145 src/menu.c:281
+#: src/layout_util.c:1304 src/menu.c:281
 msgid "_Adjust"
 msgstr "_Ausrichten"
 
-#: src/layout_util.c:1146
+#: src/layout_util.c:1305
 msgid "E_xternal Editors"
 msgstr ""
 
-#: src/layout_util.c:1148
+#: src/layout_util.c:1307
 msgid "_View Directory as"
 msgstr ""
 
-#: src/layout_util.c:1149
+#: src/layout_util.c:1308
 msgid "_Zoom"
 msgstr ""
 
-#: src/layout_util.c:1150
+#: src/layout_util.c:1309
+msgid "Color _Management"
+msgstr "Farb_verwaltung"
+
+#: src/layout_util.c:1310
 msgid "_Connected Zoom"
 msgstr ""
 
-#: src/layout_util.c:1151
+#: src/layout_util.c:1311
 msgid "_Split"
 msgstr ""
 
-#: src/layout_util.c:1152
+#: src/layout_util.c:1312
 msgid "_Help"
 msgstr "_Hilfe"
 
-#: src/layout_util.c:1154
+#: src/layout_util.c:1314
 msgid "_First Image"
 msgstr "_Erstes Bild"
 
-#: src/layout_util.c:1155 src/layout_util.c:1156 src/layout_util.c:1157
+#: src/layout_util.c:1315 src/layout_util.c:1316 src/layout_util.c:1317
 msgid "_Previous Image"
 msgstr "_Vorheriges Bild"
 
-#: src/layout_util.c:1158 src/layout_util.c:1159 src/layout_util.c:1160
+#: src/layout_util.c:1318 src/layout_util.c:1319 src/layout_util.c:1320
 msgid "_Next Image"
 msgstr "_Nächstes Bild"
 
-#: src/layout_util.c:1161
+#: src/layout_util.c:1321
 msgid "_Last Image"
 msgstr "_Letztes Bild"
 
-#: src/layout_util.c:1162
+#: src/layout_util.c:1322
 msgid "_Back"
 msgstr "_Zurück"
 
-#: src/layout_util.c:1162
+#: src/layout_util.c:1322
 msgid "Back"
 msgstr "Zurück"
 
-#: src/layout_util.c:1163
+#: src/layout_util.c:1323
 msgid "_Home"
 msgstr ""
 
-#: src/layout_util.c:1163 src/options.c:134 src/ui_bookmark.c:543
+#: src/layout_util.c:1323 src/options.c:134 src/ui_bookmark.c:543
 #: src/ui_pathsel.c:1047
 msgid "Home"
 msgstr "Home"
 
-#: src/layout_util.c:1166
+#: src/layout_util.c:1326
 msgid "New _window"
 msgstr "_Neues Fenster"
 
-#: src/layout_util.c:1167
+#: src/layout_util.c:1327
 msgid "_New collection"
 msgstr "Neue Sa_mmlung"
 
-#: src/layout_util.c:1168
+#: src/layout_util.c:1328
 msgid "_Open collection..."
 msgstr "S_ammlung öffnen"
 
-#: src/layout_util.c:1169
+#: src/layout_util.c:1329
 msgid "Open _recent"
 msgstr "Let_zte Sammlung öffnen..."
 
-#: src/layout_util.c:1170
+#: src/layout_util.c:1330
 msgid "_Search..."
 msgstr "_Suchen..."
 
-#: src/layout_util.c:1172
+#: src/layout_util.c:1332
 msgid "Pan _view"
 msgstr ""
 
-#: src/layout_util.c:1173
+#: src/layout_util.c:1333
 msgid "_Print..."
 msgstr "D_rucken..."
 
-#: src/layout_util.c:1174
+#: src/layout_util.c:1334
 msgid "N_ew folder..."
 msgstr "Neues _Verzeichnis..."
 
-#: src/layout_util.c:1181
+#: src/layout_util.c:1341
 msgid "_Copy path to clipboard"
 msgstr ""
 
-#: src/layout_util.c:1183
+#: src/layout_util.c:1343
 msgid "_Quit"
 msgstr "_Beenden"
 
-#: src/layout_util.c:1185 src/menu.c:219
+#: src/layout_util.c:1345 src/menu.c:219
 msgid "_Rotate clockwise"
 msgstr "Drehen um 90° nach _rechts (jpeg)"
 
-#: src/layout_util.c:1186 src/menu.c:222
+#: src/layout_util.c:1346 src/menu.c:222
 msgid "Rotate _counterclockwise"
 msgstr "Drehen um 90° nach _links (jpeg)"
 
-#: src/layout_util.c:1187
+#: src/layout_util.c:1347
 msgid "Rotate 1_80"
 msgstr "Drehen um _180°"
 
-#: src/layout_util.c:1188 src/menu.c:228
+#: src/layout_util.c:1348 src/menu.c:228
 msgid "_Mirror"
 msgstr "S_piegeln"
 
-#: src/layout_util.c:1189 src/menu.c:231
+#: src/layout_util.c:1349 src/menu.c:231
 msgid "_Flip"
 msgstr "_Wasserspiegelung"
 
-#: src/layout_util.c:1190 src/menu.c:234
+#: src/layout_util.c:1350 src/menu.c:234
 msgid "Toggle _grayscale"
 msgstr ""
 
-#: src/layout_util.c:1191 src/menu.c:237
+#: src/layout_util.c:1351 src/menu.c:237
 msgid "_Original state"
 msgstr ""
 
-#: src/layout_util.c:1193
+#: src/layout_util.c:1353
 msgid "Select _all"
 msgstr "_Alles auswählen"
 
-#: src/layout_util.c:1194
+#: src/layout_util.c:1354
 msgid "Select _none"
 msgstr "_Nichts auswählen"
 
-#: src/layout_util.c:1195
+#: src/layout_util.c:1355
 msgid "_Invert Selection"
 msgstr "Auswahl umkehren"
 
-#: src/layout_util.c:1197
+#: src/layout_util.c:1357
 msgid "P_references..."
 msgstr "_Einstellungen..."
 
-#: src/layout_util.c:1198
+#: src/layout_util.c:1358
 msgid "Configure _Editors..."
 msgstr "Editoren einrichten"
 
-#: src/layout_util.c:1199
+#: src/layout_util.c:1359
 msgid "_Configure this window..."
 msgstr "Dieses Fenster einrichten"
 
-#: src/layout_util.c:1200
+#: src/layout_util.c:1360
 msgid "_Thumbnail maintenance..."
 msgstr "_Vorschaubilder+Metadaten"
 
-#: src/layout_util.c:1203 src/layout_util.c:1204
+#: src/layout_util.c:1363 src/layout_util.c:1364
 msgid "Zoom in"
 msgstr "Vergrößern"
 
-#: src/layout_util.c:1205 src/layout_util.c:1206
+#: src/layout_util.c:1365 src/layout_util.c:1366
 msgid "Zoom out"
 msgstr "Verkleinern"
 
-#: src/layout_util.c:1207 src/layout_util.c:1208
+#: src/layout_util.c:1367 src/layout_util.c:1368
 msgid "Zoom 1:1"
-msgstr ""
-
-#: src/layout_util.c:1209 src/layout_util.c:1210 src/layout_util.c:1226
-#: src/layout_util.c:1227
+msgstr "Originalgröße"
+
+#: src/layout_util.c:1369 src/layout_util.c:1370 src/layout_util.c:1386
+#: src/layout_util.c:1387
 msgid "_Zoom to fit"
 msgstr "In _Fenster einpassen"
 
-#: src/layout_util.c:1209 src/layout_util.c:1210
+#: src/layout_util.c:1369 src/layout_util.c:1370
 msgid "Zoom to fit"
 msgstr ""
 
-#: src/layout_util.c:1211 src/layout_util.c:1228
+#: src/layout_util.c:1371 src/layout_util.c:1388
 msgid "Fit _Horizontally"
 msgstr ""
 
-#: src/layout_util.c:1212 src/layout_util.c:1229
+#: src/layout_util.c:1372 src/layout_util.c:1389
 msgid "Fit _Vertically"
 msgstr ""
 
-#: src/layout_util.c:1213 src/layout_util.c:1230
+#: src/layout_util.c:1373 src/layout_util.c:1390
 msgid "Zoom _2:1"
-msgstr "Zoom 2:1"
-
-#: src/layout_util.c:1214 src/layout_util.c:1231
+msgstr "Zoom _2:1"
+
+#: src/layout_util.c:1374 src/layout_util.c:1391
 msgid "Zoom _3:1"
-msgstr "Zoom 3:1"
-
-#: src/layout_util.c:1215 src/layout_util.c:1232
+msgstr "Zoom _3:1"
+
+#: src/layout_util.c:1375 src/layout_util.c:1392
 msgid "Zoom _4:1"
-msgstr "Zoom 4:1"
-
-#: src/layout_util.c:1216 src/layout_util.c:1233
+msgstr "Zoom _4:1"
+
+#: src/layout_util.c:1376 src/layout_util.c:1393
 msgid "Zoom 1:2"
 msgstr "Zoom 1:2"
 
-#: src/layout_util.c:1217 src/layout_util.c:1234
+#: src/layout_util.c:1377 src/layout_util.c:1394
 msgid "Zoom 1:3"
 msgstr "Zoom 1:3"
 
-#: src/layout_util.c:1218 src/layout_util.c:1235
+#: src/layout_util.c:1378 src/layout_util.c:1395
 msgid "Zoom 1:4"
 msgstr "Zoom 1:4"
 
-#: src/layout_util.c:1238
+#: src/layout_util.c:1398
 msgid "_View in new window"
 msgstr "In _neuem Fenster anzeigen"
 
-#: src/layout_util.c:1240 src/layout_util.c:1241 src/layout_util.c:1242
+#: src/layout_util.c:1400 src/layout_util.c:1401 src/layout_util.c:1402
 msgid "F_ull screen"
 msgstr "_Vollbildmodus"
 
-#: src/layout_util.c:1243 src/layout_util.c:1244
+#: src/layout_util.c:1403 src/layout_util.c:1404
 msgid "Escape"
 msgstr "Verlassen"
 
-#: src/layout_util.c:1245
+#: src/layout_util.c:1405
 msgid "_Image Overlay"
 msgstr "Informationen im Bild"
 
-#: src/layout_util.c:1246
+#: src/layout_util.c:1406
 msgid "Histogram _channels"
 msgstr "Histogramm Kanäle"
 
-#: src/layout_util.c:1247
+#: src/layout_util.c:1407
 msgid "Histogram _log mode"
 msgstr "Histogramm _Log. Modus"
 
-#: src/layout_util.c:1248
+#: src/layout_util.c:1408
 msgid "_Hide file list"
 msgstr "Datei_liste verbergen"
 
-#: src/layout_util.c:1249
+#: src/layout_util.c:1409
 msgid "_Pause slideshow"
 msgstr "Diashow unterbrechen"
 
-#: src/layout_util.c:1250
+#: src/layout_util.c:1410
 msgid "_Refresh"
 msgstr "Dateiliste a_ktualisieren"
 
-#: src/layout_util.c:1252
+#: src/layout_util.c:1412
 msgid "_Contents"
 msgstr "_Inhalt"
 
-#: src/layout_util.c:1253
+#: src/layout_util.c:1413
 msgid "_Keyboard shortcuts"
 msgstr "_Tastenkürzel"
 
-#: src/layout_util.c:1254
+#: src/layout_util.c:1414
 msgid "_Release notes"
 msgstr "_Versionsinformationen"
 
-#: src/layout_util.c:1255
+#: src/layout_util.c:1415
 msgid "_About"
 msgstr "_Info"
 
-#: src/layout_util.c:1256
+#: src/layout_util.c:1416
 msgid "_Log Window"
 msgstr "Protokollfenster"
 
-#: src/layout_util.c:1258
+#: src/layout_util.c:1418
 msgid "E_xif window"
 msgstr "E_XIF-Fenster"
 
-#: src/layout_util.c:1263
+#: src/layout_util.c:1423
 msgid "Show _Thumbnails"
 msgstr "Vorschaubilder anzeigen"
 
-#: src/layout_util.c:1263
+#: src/layout_util.c:1423
 msgid "Show Thumbnails"
 msgstr "Vorschaubilder anzeigen"
 
-#: src/layout_util.c:1264
+#: src/layout_util.c:1424
 msgid "Show _Marks"
 msgstr "Zeige Markierungen"
 
-#: src/layout_util.c:1265
+#: src/layout_util.c:1425
 msgid "_Float file list"
 msgstr "_Werkzeuge schwebend"
 
-#: src/layout_util.c:1266
+#: src/layout_util.c:1426
 msgid "Hide tool_bar"
 msgstr "Werk_zeugleiste verbergen"
 
-#: src/layout_util.c:1267
+#: src/layout_util.c:1427
 msgid "Hide Pi_xel Info"
 msgstr "Verberge Pi_xel-Informationen"
 
-#: src/layout_util.c:1268
+#: src/layout_util.c:1428
 msgid "_Info"
 msgstr "Informationen"
 
-#: src/layout_util.c:1269
+#: src/layout_util.c:1429
 msgid "Sort _manager"
 msgstr "Sortier-_Manager"
 
-#: src/layout_util.c:1270
+#: src/layout_util.c:1430
 msgid "Toggle _slideshow"
 msgstr "Dia_show umschalten"
 
-#: src/layout_util.c:1274
+#: src/layout_util.c:1436
 msgid "View Images as _List"
 msgstr "Zeige Bilder als _Liste"
 
-#: src/layout_util.c:1275
+#: src/layout_util.c:1437
 msgid "View Images as I_cons"
 msgstr "Zeige Bilder als Vors_chaubilder"
 
-#: src/layout_util.c:1279
+#: src/layout_util.c:1441
 msgid "Horizontal"
 msgstr "Horizontal"
 
-#: src/layout_util.c:1280
+#: src/layout_util.c:1442
 msgid "Vertical"
 msgstr "Vertikal"
 
-#: src/layout_util.c:1281
+#: src/layout_util.c:1443
 msgid "Quad"
 msgstr "Vierfach"
 
-#: src/layout_util.c:1282
+#: src/layout_util.c:1444
 msgid "Single"
 msgstr "Einzeln"
 
-#: src/layout_util.c:1514
+#: src/layout_util.c:1448
+msgid "Input _0: sRGB"
+msgstr ""
+
+#: src/layout_util.c:1449
+msgid "Input _1: AdobeRGB compatible"
+msgstr "Eingabe_1: AdobeRGB-kompatibel"
+
+#: src/layout_util.c:1450
+msgid "Input _2"
+msgstr ""
+
+#: src/layout_util.c:1451
+msgid "Input _3"
+msgstr ""
+
+#: src/layout_util.c:1452
+msgid "Input _4"
+msgstr ""
+
+#: src/layout_util.c:1453
+msgid "Input _5"
+msgstr ""
+
+#: src/layout_util.c:1694
 #, c-format
 msgid "Mark _%d"
 msgstr "Markierung _%d"
 
-#: src/layout_util.c:1515 src/view_file.c:523
+#: src/layout_util.c:1695 src/view_file.c:523
 #, c-format
 msgid "_Set mark %d"
 msgstr "_Setze Markierung %d"
 
-#: src/layout_util.c:1516 src/view_file.c:524
+#: src/layout_util.c:1696 src/view_file.c:524
 #, c-format
 msgid "_Reset mark %d"
 msgstr "Entfe_rne Markierung %d"
 
-#: src/layout_util.c:1517 src/layout_util.c:1518 src/view_file.c:525
+#: src/layout_util.c:1697 src/layout_util.c:1698 src/view_file.c:525
 #, c-format
 msgid "_Toggle mark %d"
 msgstr "Markierung %d umschal_ten"
 
-#: src/layout_util.c:1519 src/layout_util.c:1520 src/view_file.c:526
+#: src/layout_util.c:1699 src/layout_util.c:1700 src/view_file.c:526
 #, c-format
 msgid "_Select mark %d"
 msgstr "Wähle Bilder mit Markierung %d aus"
 
-#: src/layout_util.c:1521 src/view_file.c:527
+#: src/layout_util.c:1701 src/view_file.c:527
 #, c-format
 msgid "_Add mark %d"
-msgstr "Füge Bilderr mit Markierung %d zur Auswahl hinzu"
-
-#: src/layout_util.c:1522 src/view_file.c:528
+msgstr "Füge Bilder mit Markierung %d zur Auswahl hinzu"
+
+#: src/layout_util.c:1702 src/view_file.c:528
 #, c-format
 msgid "_Intersection with mark %d"
 msgstr "Schnittmenge mit Markierung %d wählen"
 
-#: src/layout_util.c:1523 src/view_file.c:529
+#: src/layout_util.c:1703 src/view_file.c:529
 #, c-format
 msgid "_Unselect mark %d"
 msgstr "Bilder mit Markierung %d abwählen"
@@ -3023,7 +3069,7 @@
 msgid "Filename:"
 msgstr "Dateiname:"
 
-#: src/pan-view.c:1544 src/pan-view.c:2380 src/preferences.c:1086
+#: src/pan-view.c:1544 src/pan-view.c:2380 src/preferences.c:1087
 msgid "Location:"
 msgstr "Position:"
 
@@ -3031,7 +3077,7 @@
 msgid "Date:"
 msgstr "Datum:"
 
-#: src/pan-view.c:1548 src/preferences.c:910 src/print.c:3262 src/print.c:3473
+#: src/pan-view.c:1548 src/preferences.c:911 src/print.c:3262 src/print.c:3473
 msgid "Size:"
 msgstr "Größe:"
 
@@ -3150,7 +3196,7 @@
 "Optionen eingeschaltet sein müssen um eine Geschwindigkeitsveränderung zu "
 "erreichen."
 
-#: src/pan-view.c:2598 src/preferences.c:913
+#: src/pan-view.c:2598 src/preferences.c:914
 msgid "Cache thumbnails"
 msgstr "Vorschaubilder speichern"
 
@@ -3199,43 +3245,43 @@
 "%s"
 msgstr ""
 
-#: src/preferences.c:434
+#: src/preferences.c:435
 msgid "Nearest (worst, but fastest)"
 msgstr "Sparsam (schlecht, aber schnell)"
 
-#: src/preferences.c:436
+#: src/preferences.c:437
 msgid "Tiles"
 msgstr "Kacheln"
 
-#: src/preferences.c:438
+#: src/preferences.c:439
 msgid "Bilinear"
 msgstr "Bilinear"
 
-#: src/preferences.c:440
+#: src/preferences.c:441
 msgid "Hyper (best, but slowest)"
 msgstr "Hyper (sehr gut, aber langsam)"
 
-#: src/preferences.c:468
+#: src/preferences.c:469
 msgid "None"
 msgstr "Keine"
 
-#: src/preferences.c:469
+#: src/preferences.c:470
 msgid "Normal"
 msgstr "Normal"
 
-#: src/preferences.c:470
+#: src/preferences.c:471
 msgid "Best"
 msgstr "Am Besten"
 
-#: src/preferences.c:532 src/print.c:380
+#: src/preferences.c:533 src/print.c:380
 msgid "Custom"
 msgstr "Eigenes"
 
-#: src/preferences.c:774 src/preferences.c:777
+#: src/preferences.c:775 src/preferences.c:778
 msgid "Reset filters"
 msgstr "Filter entfernen"
 
-#: src/preferences.c:778
+#: src/preferences.c:779
 msgid ""
 "This will reset the file filters to the defaults.\n"
 "Continue?"
@@ -3243,208 +3289,208 @@
 "Die Filter werden auf die Standardeinstellungen zurückgesetzt.\n"
 "Fortfahren?"
 
-#: src/preferences.c:805 src/preferences.c:808
+#: src/preferences.c:806 src/preferences.c:809
 msgid "Clear trash"
 msgstr "Papierkorb leeren"
 
-#: src/preferences.c:809
+#: src/preferences.c:810
 msgid "This will remove the trash contents."
 msgstr ""
 "Der gesamte Inhalt des Papierkorbes im folgenden\n"
 "Verzeichnis wird gelöscht."
 
-#: src/preferences.c:853 src/preferences.c:856
+#: src/preferences.c:854 src/preferences.c:857
 msgid "Reset image overlay template string"
 msgstr ""
 
-#: src/preferences.c:857
+#: src/preferences.c:858
 msgid ""
 "This will reset the image overlay template string to the default.\n"
 "Continue?"
 msgstr ""
 
-#: src/preferences.c:905
+#: src/preferences.c:906
 msgid "General"
 msgstr "Allgemein"
 
-#: src/preferences.c:911 src/preferences.c:984
+#: src/preferences.c:912 src/preferences.c:985
 msgid "Quality:"
 msgstr "Qualität:"
 
-#: src/preferences.c:919
+#: src/preferences.c:920
 msgid "Use standard thumbnail cache, shared with other applications"
 msgstr ""
 
-#: src/preferences.c:925
+#: src/preferences.c:926
 msgid ""
 "Store thumbnails in '.thumbnails' folder, local to image folder (non-"
 "standard)"
 msgstr ""
 
-#: src/preferences.c:929
+#: src/preferences.c:930
 msgid "Use xvpics thumbnails when found (read only)"
 msgstr "xvpics-Vorschaubilder benutzen, wenn gefunden (nur Lesezugriff)"
 
-#: src/preferences.c:933
+#: src/preferences.c:934
 msgid "Use EXIF thumbnails when available (EXIF thumbnails may be outdated)"
 msgstr ""
 "Benutze EXIF-Vorschaubilder wenn vorhanden (EXIF-Vorschaubilder könnten "
 "veraltet sein)"
 
-#: src/preferences.c:936
+#: src/preferences.c:937
 msgid "Slide show"
 msgstr "Diashow"
 
-#: src/preferences.c:939
+#: src/preferences.c:940
 msgid "Delay between image change:"
 msgstr "Pause zwischen dem Bildwechsel:"
 
-#: src/preferences.c:939
+#: src/preferences.c:940
 msgid "seconds"
 msgstr "Sekunden"
 
-#: src/preferences.c:945
+#: src/preferences.c:946
 msgid "Random"
 msgstr "Zufall"
 
-#: src/preferences.c:946
+#: src/preferences.c:947
 msgid "Repeat"
 msgstr "Wiederholung"
 
-#: src/preferences.c:948
+#: src/preferences.c:949
 msgid "Image loading and caching"
 msgstr ""
 
-#: src/preferences.c:951
+#: src/preferences.c:952
 msgid "Offscreen cache size (Mb per image):"
 msgstr "Cache-Größe für Bildbereiche außerhalb des Fensters (MB je Fenster):"
 
-#: src/preferences.c:955
+#: src/preferences.c:956
 msgid "Decoded image cache size (Mb):"
 msgstr ""
 
-#: src/preferences.c:957
+#: src/preferences.c:958
 msgid "Preload next image"
-msgstr "Nächstes Bild vorladen"
-
-#: src/preferences.c:960
+msgstr "Lade nächstes Bild im Hintergrund"
+
+#: src/preferences.c:961
 msgid "Refresh on file change"
 msgstr "Dateiliste bei Änderung aktualisieren"
 
-#: src/preferences.c:978
+#: src/preferences.c:979
 msgid "Zoom"
 msgstr "Zoom"
 
-#: src/preferences.c:981
+#: src/preferences.c:982
 msgid "Dithering method:"
 msgstr "Ditheringmethode:"
 
-#: src/preferences.c:986
+#: src/preferences.c:987
 msgid "Two pass rendering (apply HQ zoom and color correction in second pass)"
 msgstr ""
 
-#: src/preferences.c:989
+#: src/preferences.c:990
 msgid "Allow enlargement of image for zoom to fit"
 msgstr "Bild wenn nötig auch vergrößern, damit Zoomstufe erreicht werden kann"
 
-#: src/preferences.c:993
+#: src/preferences.c:994
 msgid "Limit image size when autofitting (%):"
 msgstr "Größe begrenzen bei automat. Anpassung (%):"
 
-#: src/preferences.c:1001
+#: src/preferences.c:1002
 msgid "Zoom increment:"
-msgstr "Zoomzunahme:"
-
-#: src/preferences.c:1006
+msgstr "Zoomstufen:"
+
+#: src/preferences.c:1007
 msgid "When new image is selected:"
 msgstr "Wenn neues Bild ausgewählt wird:"
 
-#: src/preferences.c:1010
+#: src/preferences.c:1011
 msgid "Zoom to original size"
 msgstr "Zu Ausgangsgröße zoomen"
 
-#: src/preferences.c:1013
+#: src/preferences.c:1014
 msgid "Fit image to window"
 msgstr "In Fenster einpassen"
 
-#: src/preferences.c:1016
+#: src/preferences.c:1017
 msgid "Leave Zoom at previous setting"
 msgstr "Zoom bei vorheriger Einstellung belassen"
 
-#: src/preferences.c:1022
+#: src/preferences.c:1023
 msgid "Scroll to top left corner"
 msgstr ""
 
-#: src/preferences.c:1025
+#: src/preferences.c:1026
 msgid "Scroll to image center"
 msgstr ""
 
-#: src/preferences.c:1028
+#: src/preferences.c:1029
 msgid "Keep the region from previous image"
 msgstr ""
 
-#: src/preferences.c:1033
+#: src/preferences.c:1034
 msgid "Appearance"
 msgstr "Bildansicht"
 
-#: src/preferences.c:1035
+#: src/preferences.c:1036
 msgid "Custom border color"
 msgstr "Angepaßte Rahmenfarbe"
 
-#: src/preferences.c:1038
+#: src/preferences.c:1039
 msgid "Border color"
 msgstr "Rahmenfarbe"
 
-#: src/preferences.c:1041
+#: src/preferences.c:1042
 msgid "Convenience"
 msgstr "Nützliches"
 
-#: src/preferences.c:1043
+#: src/preferences.c:1044
 msgid "Auto rotate image using Exif information"
 msgstr "Automatisch gemäß Exif-Daten drehen"
 
-#: src/preferences.c:1060
+#: src/preferences.c:1061
 msgid "Windows"
 msgstr "Fenster"
 
-#: src/preferences.c:1062
+#: src/preferences.c:1063
 msgid "State"
 msgstr "Status"
 
-#: src/preferences.c:1064
+#: src/preferences.c:1065
 msgid "Remember window positions"
 msgstr "Fensterpositionen merken"
 
-#: src/preferences.c:1066
+#: src/preferences.c:1067
 msgid "Remember tool state (float/hidden)"
 msgstr "Werkzeugstatus merken (schwebend/verborgen)"
 
-#: src/preferences.c:1071
+#: src/preferences.c:1072
 msgid "Fit window to image when tools are hidden/floating"
 msgstr "Bild in Fenster einpassen, wenn Werkzeuge verborgen/schwebend sind"
 
-#: src/preferences.c:1075
+#: src/preferences.c:1076
 msgid "Limit size when auto-sizing window (%):"
 msgstr "Größe begrenzen bei automat. Anpassung (%):"
 
-#: src/preferences.c:1090
+#: src/preferences.c:1091
 msgid "Smooth image flip"
 msgstr ""
 "Glatter Bildwechsel (nächstes Bild erst anzeigen, wenn komplett geladen)"
 
-#: src/preferences.c:1092
+#: src/preferences.c:1093
 msgid "Disable screen saver"
 msgstr "Bildschirmschoner deaktivieren"
 
-#: src/preferences.c:1096
+#: src/preferences.c:1097
 msgid "Overlay Screen Display"
 msgstr ""
 
-#: src/preferences.c:1098
+#: src/preferences.c:1099
 msgid "Image overlay template"
 msgstr ""
 
-#: src/preferences.c:1112
+#: src/preferences.c:1113
 msgid ""
 "<i>%name%</i> results in the filename of the picture.\n"
 "Also available: <i>%collection%</i>, <i>%number%</i>, <i>%total%</i>, <i>%"
@@ -3484,222 +3530,230 @@
 "Eine leere Zeile wird entfernt. Das erlaubt es, Zeilen hinzuzufügen, die "
 "komplett verschwinden, wenn keine Daten verfügbar sind.\n"
 
-#: src/preferences.c:1129 src/preferences.c:1302
+#: src/preferences.c:1130 src/preferences.c:1303
 msgid "Defaults"
 msgstr "Standardeinstellungen"
 
-#: src/preferences.c:1183
+#: src/preferences.c:1184
 msgid "Show hidden files or folders"
 msgstr "Zeige versteckte Dateien und Verzeichnisse"
 
-#: src/preferences.c:1186
+#: src/preferences.c:1187
 msgid "Show dot directory"
 msgstr "Zeige Punkt-Verzeichnisse"
 
-#: src/preferences.c:1189
+#: src/preferences.c:1190
 msgid "Case sensitive sort"
 msgstr "Groß- und Kleinschreibung beim Sortieren beachten"
 
-#: src/preferences.c:1192
+#: src/preferences.c:1193
 msgid "Disable File Filtering"
 msgstr "Dateifilter deaktivieren"
 
-#: src/preferences.c:1196
+#: src/preferences.c:1197
 msgid "Grouping sidecar extensions"
 msgstr ""
 
-#: src/preferences.c:1203
+#: src/preferences.c:1204
 msgid "File types"
 msgstr "Dateitypen"
 
-#: src/preferences.c:1225
+#: src/preferences.c:1226
 msgid "Filter"
 msgstr "Filter"
 
-#: src/preferences.c:1257
+#: src/preferences.c:1258
 msgid "Class"
 msgstr ""
 
-#: src/preferences.c:1274
+#: src/preferences.c:1275
 msgid "Writable"
 msgstr "Schreibbar"
 
-#: src/preferences.c:1285
+#: src/preferences.c:1286
 msgid "Sidecar is allowed"
 msgstr ""
 
-#: src/preferences.c:1330
+#: src/preferences.c:1331
 msgid ""
 "Store metadata in '.metadata' folder, local to image folder (non-standard)"
 msgstr ""
 
-#: src/preferences.c:1333
+#: src/preferences.c:1334
 msgid "Store keywords and comments as XMP tags in image files (standard)"
 msgstr ""
 
-#: src/preferences.c:1339
+#: src/preferences.c:1340
 msgid "Store keywords and comments also in legacy IPTC tags"
 msgstr ""
 
-#: src/preferences.c:1342
+#: src/preferences.c:1343
 msgid "Warn if the image files are unwritable"
 msgstr ""
 
-#: src/preferences.c:1345
+#: src/preferences.c:1346
 msgid "Ask before writing to image files"
 msgstr ""
 
-#: src/preferences.c:1348
+#: src/preferences.c:1349
 msgid "Save metadata in GQview legacy metadata format"
 msgstr ""
 
-#: src/preferences.c:1351
+#: src/preferences.c:1352
 msgid "Write the same keywords and comment to all files in a group"
 msgstr ""
 
-#: src/preferences.c:1354
+#: src/preferences.c:1355
 msgid "Write metadata after timeout"
 msgstr ""
 
-#: src/preferences.c:1360
+#: src/preferences.c:1361
 msgid "Timeout (seconds):"
 msgstr ""
 
-#: src/preferences.c:1363
+#: src/preferences.c:1364
 msgid "Write metadata on image change"
 msgstr ""
 
-#: src/preferences.c:1366
+#: src/preferences.c:1367
 msgid "Write metadata on directory change"
 msgstr ""
 
-#: src/preferences.c:1369
+#: src/preferences.c:1370
 msgid "Allow keywords to differ only in case"
 msgstr ""
 
-#: src/preferences.c:1383
+#: src/preferences.c:1384
 msgid "Color management"
 msgstr "Farbverwaltung"
 
-#: src/preferences.c:1385
-msgid "Color profiles"
-msgstr ""
-
-#: src/preferences.c:1393
+#: src/preferences.c:1386
+msgid "Input profiles"
+msgstr "Quellprofil"
+
+#: src/preferences.c:1394
 msgid "Type"
 msgstr ""
 
-#: src/preferences.c:1396
+#: src/preferences.c:1397
 msgid "Menu name"
 msgstr "Menüname"
 
-#: src/preferences.c:1399
+#: src/preferences.c:1400
 msgid "File"
 msgstr "Datei"
 
-#: src/preferences.c:1424 src/preferences.c:1435
+#: src/preferences.c:1425 src/preferences.c:1445
 msgid "Select color profile"
 msgstr "Farbprofil wählen"
 
-#: src/preferences.c:1432
+#: src/preferences.c:1433
+msgid "Screen profile"
+msgstr "Bildschirmprofil "
+
+#: src/preferences.c:1437
+msgid "Use system screen profile if available"
+msgstr ""
+
+#: src/preferences.c:1442
 msgid "Screen:"
 msgstr ""
 
-#: src/preferences.c:1454 src/preferences.c:1497
+#: src/preferences.c:1464 src/preferences.c:1507
 msgid "Behavior"
 msgstr "Verhalten"
 
-#: src/preferences.c:1456 src/utilops.c:1650
+#: src/preferences.c:1466 src/utilops.c:1650
 msgctxt "physical"
 msgid "Delete"
 msgstr "Löschen"
 
-#: src/preferences.c:1458
+#: src/preferences.c:1468
 msgid "Confirm file delete"
 msgstr "Dateilöschung bestätigen"
 
-#: src/preferences.c:1460
+#: src/preferences.c:1470
 msgid "Enable Delete key"
 msgstr "Entfernen-Taste zum Löschen verwenden"
 
-#: src/preferences.c:1463
+#: src/preferences.c:1473
 msgid "Safe delete"
 msgstr "Papierkorb verwenden"
 
-#: src/preferences.c:1481
+#: src/preferences.c:1491
 msgid "Maximum size:"
 msgstr "maximale Größe:"
 
-#: src/preferences.c:1481
+#: src/preferences.c:1491
 msgid "MB"
 msgstr "MB"
 
-#: src/preferences.c:1484
+#: src/preferences.c:1494
 msgid "Set to 0 for unlimited size"
 msgstr ""
 
-#: src/preferences.c:1486
+#: src/preferences.c:1496
 msgid "View"
 msgstr "Ansicht"
 
-#: src/preferences.c:1499
+#: src/preferences.c:1509
 msgid "Rectangular selection in icon view"
 msgstr "rechteckige Auswahl in der Icon-Ansicht (bei Verwendung der Tastatur)"
 
-#: src/preferences.c:1502
+#: src/preferences.c:1512
 msgid "Descend folders in tree view"
 msgstr "Verzeichnisstruktur beim Start lesen"
 
-#: src/preferences.c:1505
+#: src/preferences.c:1515
 msgid "In place renaming"
 msgstr "schnelles Umbenennen (ohne Dialogfenster)"
 
-#: src/preferences.c:1508
+#: src/preferences.c:1518
 msgid "Open recent list maximum size"
 msgstr ""
 
-#: src/preferences.c:1511
+#: src/preferences.c:1521
 msgid "Drag'n drop icon size"
 msgstr ""
 
-#: src/preferences.c:1514
+#: src/preferences.c:1524
 msgid "Navigation"
 msgstr "Steuerung"
 
-#: src/preferences.c:1516
+#: src/preferences.c:1526
 msgid "Progressive keyboard scrolling"
 msgstr "beschleunigtes Scrollen bei Verwendung der Pfeiltasten"
 
-#: src/preferences.c:1518
+#: src/preferences.c:1528
 msgid "Mouse wheel scrolls image"
 msgstr ""
 "Mausrad scrollt Bild vertikal statt Bildwechsel (Bildwechsel mit Shift)"
 
-#: src/preferences.c:1521
+#: src/preferences.c:1531
 msgid "Miscellaneous"
 msgstr "Verschiedenes"
 
-#: src/preferences.c:1523
+#: src/preferences.c:1533
 msgid "Custom similarity threshold:"
 msgstr "Eigene Ähnlichkeitsschwelle für die Suche nach gleichen Bildern:"
 
-#: src/preferences.c:1528
+#: src/preferences.c:1538
 msgid "Debugging"
 msgstr ""
 
-#: src/preferences.c:1530
+#: src/preferences.c:1540
 msgid "Debug level:"
 msgstr ""
 
-#: src/preferences.c:1546
+#: src/preferences.c:1556
 msgid "Preferences"
 msgstr "Einstellungen"
 
-#: src/preferences.c:1675
+#: src/preferences.c:1685
 msgid "About"
 msgstr "Über"
 
-#: src/preferences.c:1692
+#: src/preferences.c:1702
 #, c-format
 msgid ""
 "%s %s\n"
@@ -3720,7 +3774,7 @@
 "\n"
 "Freigegeben unter der GNU General Public License"
 
-#: src/preferences.c:1711
+#: src/preferences.c:1721
 msgid "Credits..."
 msgstr "Mitwirkende..."
 
@@ -4228,7 +4282,7 @@
 
 #: src/search.c:2733
 msgid "Image dimensions are"
-msgstr "Bildauflösung ist"
+msgstr "Bildgröße ist"
 
 #: src/search.c:2754
 msgid "Image content is"
--- a/po/fr.po	Fri May 01 15:49:06 2009 +0900
+++ b/po/fr.po	Fri May 01 15:49:32 2009 +0900
@@ -13,8 +13,8 @@
 msgstr ""
 "Project-Id-Version: geeqie-1.0alpha\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-04-12 16:58+0200\n"
-"PO-Revision-Date: 2009-04-12 17:06+0100\n"
+"POT-Creation-Date: 2009-04-28 23:29+0200\n"
+"PO-Revision-Date: 2009-04-28 23:30+0100\n"
 "Last-Translator: Laurent Monin <i18n@norz.org>\n"
 "Language-Team: french <geeqie-devel@lists.sourceforge.net>\n"
 "MIME-Version: 1.0\n"
@@ -24,13 +24,14 @@
 "X-Poedit-Language: French\n"
 "X-Poedit-Country: FRANCE\n"
 "X-Poedit-SourceCharset: utf-8\n"
+"X-Poedit-Basepath: .\n"
 
 #: src/advanced_exif.c:389 src/cache_maint.c:1284 src/preferences.c:86
-#: src/preferences.c:1326 src/preferences.c:1328
+#: src/preferences.c:1328 src/preferences.c:1330
 msgid "Metadata"
 msgstr "Méta-données"
 
-#: src/advanced_exif.c:437 src/preferences.c:1245
+#: src/advanced_exif.c:437 src/preferences.c:1247
 msgid "Description"
 msgstr "Description"
 
@@ -38,8 +39,8 @@
 msgid "Value"
 msgstr "Valeur"
 
-#: src/advanced_exif.c:439 src/desktop_file.c:509 src/dupe.c:2653
-#: src/dupe.c:3167 src/print.c:3249 src/search.c:2848 src/utilops.c:439
+#: src/advanced_exif.c:439 src/desktop_file.c:512 src/dupe.c:2653
+#: src/dupe.c:3167 src/print.c:3249 src/search.c:2848 src/utilops.c:446
 #: src/view_file_list.c:2022 src/view_file_list.c:2026
 msgid "Name"
 msgstr "Nom"
@@ -118,43 +119,43 @@
 msgid "Replace existing text in selected files"
 msgstr "Remplacer le texte existant dans les fichiers sélectionnés"
 
-#: src/bar_exif.c:536 src/bar_exif.c:546
+#: src/bar_exif.c:532 src/bar_exif.c:542
 msgid "Configure entry"
 msgstr "Configurer l'entrée"
 
 #. for the pane
-#: src/bar_exif.c:536 src/bar_exif.c:546 src/bar_exif.c:619
+#: src/bar_exif.c:532 src/bar_exif.c:542 src/bar_exif.c:615
 msgid "Add entry"
 msgstr "Ajouter l'entrée"
 
-#: src/bar_exif.c:552
+#: src/bar_exif.c:548
 msgid "Key:"
 msgstr "Clé:"
 
-#: src/bar_exif.c:561
+#: src/bar_exif.c:557
 msgid "Title:"
 msgstr "Titre:"
 
-#: src/bar_exif.c:570
+#: src/bar_exif.c:566
 msgid "Show only if set"
 msgstr "Montrer seulement si défini"
 
-#: src/bar_exif.c:571
+#: src/bar_exif.c:567
 msgid "Editable (supported only for XMP)"
 msgstr "Modifiable (seulement pour XMP)"
 
 #. for the entry
-#: src/bar_exif.c:607
+#: src/bar_exif.c:603
 #, c-format
 msgid "Configure \"%s\""
 msgstr "Configurer « %s »"
 
-#: src/bar_exif.c:608 src/bar_keywords.c:1135
+#: src/bar_exif.c:604 src/bar_keywords.c:1135
 #, c-format
 msgid "Remove \"%s\""
 msgstr "Enlever « %s »"
 
-#: src/bar_exif.c:620
+#: src/bar_exif.c:616
 msgid "Show hidden entries"
 msgstr "Montrer les entrées cachées"
 
@@ -328,15 +329,15 @@
 msgid "Folders"
 msgstr "Dossiers"
 
-#: src/bar_sort.c:607 src/options.c:138
+#: src/bar_sort.c:607 src/options.c:139
 msgid "Collections"
 msgstr "Collections"
 
-#: src/bar_sort.c:615 src/utilops.c:1773
+#: src/bar_sort.c:615 src/utilops.c:2080
 msgid "Copy"
 msgstr "Copier"
 
-#: src/bar_sort.c:618 src/utilops.c:1732
+#: src/bar_sort.c:618 src/utilops.c:2039
 msgid "Move"
 msgstr "Déplacer"
 
@@ -398,7 +399,7 @@
 msgid "S_tart"
 msgstr "Dé_but"
 
-#: src/cache_maint.c:886 src/preferences.c:1470
+#: src/cache_maint.c:886 src/preferences.c:1484
 msgid "Folder:"
 msgstr "Dossier :"
 
@@ -484,110 +485,6 @@
 msgid "Remove orphaned keywords and comments."
 msgstr "Supprimer les mots-clés et commentaires orphelins."
 
-#: src/cellrenderericon.c:152
-msgid "Pixbuf Object"
-msgstr "Objet Pixbuf"
-
-#: src/cellrenderericon.c:153
-msgid "The pixbuf to render"
-msgstr "Le pixbuf à rendre"
-
-#: src/cellrenderericon.c:160 src/print.c:3456
-msgid "Text"
-msgstr "Texte"
-
-#: src/cellrenderericon.c:161
-msgid "Text to render"
-msgstr "Texte à rendre"
-
-#: src/cellrenderericon.c:168
-msgid "Background color"
-msgstr "Couleur du fond"
-
-#: src/cellrenderericon.c:169
-msgid "Background color as a GdkColor"
-msgstr "Couleur d'arrière-plan en tant que GdkColor"
-
-#: src/cellrenderericon.c:176
-msgid "Foreground color"
-msgstr "Couleur de premier plan"
-
-#: src/cellrenderericon.c:177
-msgid "Foreground color as a GdkColor"
-msgstr "Couleur de premier plan en tant que GdkColor"
-
-#: src/cellrenderericon.c:184
-msgid "Focus"
-msgstr "Focus"
-
-#: src/cellrenderericon.c:185
-msgid "Draw focus indicator"
-msgstr "Dessiner l'indicateur de focus"
-
-#: src/cellrenderericon.c:192
-msgid "Fixed width"
-msgstr "Largeur fixe"
-
-#: src/cellrenderericon.c:193
-msgid "Width of cell"
-msgstr "Largeur de cellule"
-
-#: src/cellrenderericon.c:201
-msgid "Fixed height"
-msgstr "Hauteur fixe"
-
-#: src/cellrenderericon.c:202
-msgid "Height of icon excluding text"
-msgstr "Hauteur de l'icone sans le texte"
-
-#: src/cellrenderericon.c:210
-msgid "Background set"
-msgstr "Arrière-plan défini"
-
-#: src/cellrenderericon.c:211
-msgid "Whether this tag affects the background color"
-msgstr "Indique si cette balise affecte la couleur de fond"
-
-#: src/cellrenderericon.c:218
-msgid "Foreground set"
-msgstr "Premier plan défini"
-
-#: src/cellrenderericon.c:219
-msgid "Whether this tag affects the foreground color"
-msgstr "Indique si cette balise affecte la couleur d'avant-plan"
-
-#: src/cellrenderericon.c:226
-msgid "Show text"
-msgstr "Montrer le texte"
-
-#: src/cellrenderericon.c:227
-msgid "Whether the text is displayed"
-msgstr "Indique si ce texte est caché."
-
-#: src/cellrenderericon.c:234
-msgid "Show marks"
-msgstr "Montrer les marques"
-
-#: src/cellrenderericon.c:235
-msgid "Whether the marks are displayed"
-msgstr "Indique si les marques doivent être affichées"
-
-#: src/cellrenderericon.c:242 src/cellrenderericon.c:243
-msgid "Number of marks"
-msgstr "Nombre de marques"
-
-#: src/cellrenderericon.c:251
-msgid "Marks"
-msgstr "Marques"
-
-#: src/cellrenderericon.c:252
-msgid "Marks bit array"
-msgstr "Tableau de bits pour les marques"
-
-#: src/cellrenderericon.c:260 src/cellrenderericon.c:261
-msgid "Toggled mark"
-msgstr "Marque basculée"
-
 #: src/collect-dlg.c:59
 #, c-format
 msgid ""
@@ -686,7 +583,8 @@
 msgid "%s, %d images"
 msgstr "%s, %d images"
 
-#: src/collect-table.c:223 src/layout.c:463 src/layout_util.c:1101
+#: src/collect-table.c:223 src/layout_util.c:1094 src/layout_util.c:1260
+#: src/layout_util.c:2067
 msgid "Empty"
 msgstr "Vide"
 
@@ -697,7 +595,7 @@
 msgstr "Chargement des vignettes ..."
 
 #: src/collect-table.c:872 src/dupe.c:2250 src/dupe.c:2561
-#: src/layout_util.c:1147 src/search.c:1006
+#: src/layout_util.c:1306 src/search.c:1006
 msgid "_View"
 msgstr "_Affichage"
 
@@ -736,26 +634,26 @@
 msgstr "Inverser la sélection"
 
 #: src/collect-table.c:904 src/dupe.c:2273 src/img-view.c:1295
-#: src/layout_image.c:516 src/layout_util.c:1175 src/pan-view.c:2822
+#: src/layout_image.c:516 src/layout_util.c:1335 src/pan-view.c:2822
 #: src/search.c:1025 src/view_file.c:575
 msgid "_Copy..."
 msgstr "_Copier ..."
 
 #: src/collect-table.c:906 src/dupe.c:2275 src/img-view.c:1296
-#: src/layout_image.c:518 src/layout_util.c:1176 src/pan-view.c:2824
+#: src/layout_image.c:518 src/layout_util.c:1336 src/pan-view.c:2824
 #: src/search.c:1027 src/view_file.c:577
 msgid "_Move..."
 msgstr "_Déplacer ..."
 
 #: src/collect-table.c:908 src/dupe.c:2277 src/img-view.c:1297
-#: src/layout_image.c:520 src/layout_util.c:1177 src/pan-view.c:2826
+#: src/layout_image.c:520 src/layout_util.c:1337 src/pan-view.c:2826
 #: src/search.c:1029 src/view_dir.c:616 src/view_file.c:579
 msgid "_Rename..."
 msgstr "_Renommer ..."
 
 #: src/collect-table.c:910 src/dupe.c:2279 src/img-view.c:1298
-#: src/layout_image.c:522 src/layout_util.c:1178 src/layout_util.c:1179
-#: src/layout_util.c:1180 src/pan-view.c:2828 src/search.c:1031
+#: src/layout_image.c:522 src/layout_util.c:1338 src/layout_util.c:1339
+#: src/layout_util.c:1340 src/pan-view.c:2828 src/search.c:1031
 #: src/view_dir.c:618 src/view_file.c:581
 msgid "_Delete..."
 msgstr "_Supprimer ..."
@@ -786,7 +684,7 @@
 msgid "Save collection _as..."
 msgstr "Enregistrer collection _sous ..."
 
-#: src/collect-table.c:931 src/layout_util.c:1171
+#: src/collect-table.c:931 src/layout_util.c:1331
 msgid "_Find duplicates..."
 msgstr "Rechercher les _doublons ..."
 
@@ -847,6 +745,19 @@
 msgid "_Discard"
 msgstr "_Ignorer"
 
+#: src/color-man.c:420 src/exif-common.c:403 src/exif.c:232
+#: src/layout_util.c:1143
+msgid "sRGB"
+msgstr "sRGB"
+
+#: src/color-man.c:422
+msgid "Adobe RGB compatible"
+msgstr "compatible Adobe RGB"
+
+#: src/color-man.c:430
+msgid "Custom profile"
+msgstr "Profil utilisateur"
+
 #: src/desktop_file.c:71 src/desktop_file.c:82
 msgid "Can't save"
 msgstr "Sauvegarde impossible"
@@ -855,11 +766,11 @@
 msgid "Please specify file name."
 msgstr "Merci d'indiquer un nom de fichier."
 
-#: src/desktop_file.c:165 src/desktop_file.c:485
+#: src/desktop_file.c:168 src/desktop_file.c:488
 msgid "Desktop file"
 msgstr "Fichier .desktop"
 
-#: src/desktop_file.c:274 src/ui_pathsel.c:494
+#: src/desktop_file.c:277 src/ui_pathsel.c:494
 #, c-format
 msgid ""
 "Unable to delete file:\n"
@@ -868,17 +779,17 @@
 "Impossible de supprimer le fichier :\n"
 "%s"
 
-#: src/desktop_file.c:275 src/ui_pathsel.c:495 src/utilops.c:1634
-#: src/utilops.c:1654 src/utilops.c:2113
+#: src/desktop_file.c:278 src/ui_pathsel.c:495 src/utilops.c:1934
+#: src/utilops.c:1956 src/utilops.c:2424
 msgid "File deletion failed"
 msgstr "La suppression du fichier a échoué"
 
-#: src/desktop_file.c:317 src/desktop_file.c:325 src/ui_pathsel.c:537
+#: src/desktop_file.c:320 src/desktop_file.c:328 src/ui_pathsel.c:537
 #: src/ui_pathsel.c:545
 msgid "Delete file"
 msgstr "Supprimer fichier"
 
-#: src/desktop_file.c:323 src/ui_pathsel.c:543
+#: src/desktop_file.c:326 src/ui_pathsel.c:543
 #, c-format
 msgid ""
 "About to delete the file:\n"
@@ -887,19 +798,19 @@
 "Sur le point de supprimer le fichier :\n"
 " %s"
 
-#: src/desktop_file.c:355
+#: src/desktop_file.c:358
 msgid "new.desktop"
 msgstr "nouveau.desktop"
 
-#: src/desktop_file.c:428
+#: src/desktop_file.c:431
 msgid "Editors"
 msgstr "Éditeurs"
 
-#: src/desktop_file.c:494
+#: src/desktop_file.c:497
 msgid "Hidden"
 msgstr "Caché"
 
-#: src/desktop_file.c:518 src/dupe.c:2659 src/dupe.c:3171 src/print.c:3251
+#: src/desktop_file.c:521 src/dupe.c:2659 src/dupe.c:3171 src/print.c:3251
 #: src/search.c:2852 src/ui_pathsel.c:1111
 msgid "Path"
 msgstr "Chemin"
@@ -971,7 +882,7 @@
 msgid "Name case-insensitive"
 msgstr "Nom insensible à la casse"
 
-#: src/dupe.c:2655 src/dupe.c:3168 src/preferences.c:1069 src/print.c:3255
+#: src/dupe.c:2655 src/dupe.c:3168 src/preferences.c:1071 src/print.c:3255
 #: src/search.c:2849 src/view_file_list.c:2030
 msgid "Size"
 msgstr "Taille"
@@ -1017,7 +928,7 @@
 msgid "Compare by:"
 msgstr "Comparer par :"
 
-#: src/dupe.c:3224 src/preferences.c:907 src/search.c:2865
+#: src/dupe.c:3224 src/preferences.c:909 src/search.c:2865
 msgid "Thumbnails"
 msgstr "Vignettes"
 
@@ -1156,10 +1067,6 @@
 msgid "dot"
 msgstr "point"
 
-#: src/exif-common.c:403 src/exif.c:232 src/layout.c:513
-msgid "sRGB"
-msgstr "sRGB"
-
 #: src/exif-common.c:408
 msgid "AdobeRGB"
 msgstr "AdobeRGB"
@@ -1864,7 +1771,7 @@
 msgid "source and destination have different extension"
 msgstr "source et destination ont des extensions différentes"
 
-#: src/fullscreen.c:243 src/preferences.c:1082
+#: src/fullscreen.c:243 src/preferences.c:1084
 msgid "Full screen"
 msgstr "Plein écran"
 
@@ -1946,20 +1853,20 @@
 msgid " (Collection %s)"
 msgstr " (Collection %s)"
 
-#: src/img-view.c:1278 src/layout_image.c:494 src/layout_util.c:1203
-#: src/layout_util.c:1204 src/layout_util.c:1220 src/layout_util.c:1221
+#: src/img-view.c:1278 src/layout_image.c:494 src/layout_util.c:1362
+#: src/layout_util.c:1363 src/layout_util.c:1379 src/layout_util.c:1380
 #: src/pan-view.c:2806
 msgid "Zoom _in"
 msgstr "Zoom a_vant"
 
-#: src/img-view.c:1279 src/layout_image.c:495 src/layout_util.c:1205
-#: src/layout_util.c:1206 src/layout_util.c:1222 src/layout_util.c:1223
+#: src/img-view.c:1279 src/layout_image.c:495 src/layout_util.c:1364
+#: src/layout_util.c:1365 src/layout_util.c:1381 src/layout_util.c:1382
 #: src/pan-view.c:2808
 msgid "Zoom _out"
 msgstr "Zoom a_rrière"
 
-#: src/img-view.c:1280 src/layout_image.c:496 src/layout_util.c:1207
-#: src/layout_util.c:1208 src/layout_util.c:1224 src/layout_util.c:1225
+#: src/img-view.c:1280 src/layout_image.c:496 src/layout_util.c:1366
+#: src/layout_util.c:1367 src/layout_util.c:1383 src/layout_util.c:1384
 #: src/pan-view.c:2810
 msgid "Zoom _1:1"
 msgstr "Taille réelle (_1:1)"
@@ -1968,7 +1875,7 @@
 msgid "Fit image to _window"
 msgstr "Mettre à la taille de la _fenêtre"
 
-#: src/img-view.c:1287 src/layout_image.c:504 src/layout_util.c:1201
+#: src/img-view.c:1287 src/layout_image.c:504 src/layout_util.c:1360
 msgid "Set as _wallpaper"
 msgstr "Utiliser comme _papier peint"
 
@@ -2001,7 +1908,7 @@
 msgid "_Full screen"
 msgstr "Plein _écran"
 
-#: src/img-view.c:1335 src/layout_util.c:1182 src/pan-view.c:2884
+#: src/img-view.c:1335 src/layout_util.c:1342 src/pan-view.c:2884
 msgid "C_lose window"
 msgstr "Fermer _la fenêtre"
 
@@ -2009,142 +1916,110 @@
 msgid "Ascending"
 msgstr "Croissant"
 
-#: src/layout.c:472
-#, c-format
-msgid "This installation of %s was not built with support for color profiles."
-msgstr ""
-"Cette installation de %s n'a pas été compilé avec le support des profils "
-"colorimétriques."
-
-#: src/layout.c:473
-msgid "Color profiles not supported"
-msgstr "Profils colorimétriques non supportés"
-
-#: src/layout.c:498
-msgid "Use _color profiles"
-msgstr "Utiliser les profils _colorimétriques"
-
-#: src/layout.c:503
-msgid "Use profile from _image"
-msgstr "Utiliser le profil contenu dans l'_image"
-
-#: src/layout.c:514
-msgid "AdobeRGB compatible"
-msgstr "compatible AdobeRGB"
-
-#: src/layout.c:517
-#, c-format
-msgid "Input _%d: %s%s"
-msgstr "Entrée _%d: %s%s"
-
-#: src/layout.c:535
-#, c-format
-msgid "Input _%d: %s"
-msgstr "Entrée _%d: %s"
-
-#: src/layout.c:549
-msgid "Screen sRGB"
-msgstr "Écran sRGB"
-
-#: src/layout.c:556
-msgid "_Screen profile"
-msgstr "_Profil d'écran"
-
-#: src/layout.c:681
+#: src/layout.c:501
 msgid " Slideshow"
 msgstr " Diaporama"
 
-#: src/layout.c:685
+#: src/layout.c:505
 msgid " Paused"
 msgstr " En pause"
 
-#: src/layout.c:701
+#: src/layout.c:521
 #, c-format
 msgid "%s, %d files (%s, %d)%s"
 msgstr "%s, %d fichiers (%s, %d)%s"
 
-#: src/layout.c:708
+#: src/layout.c:528
 #, c-format
 msgid "%s, %d files%s"
 msgstr "%s, %d fichiers%s"
 
-#: src/layout.c:713
+#: src/layout.c:533
 #, c-format
 msgid "%d files%s"
 msgstr "%d fichiers%s"
 
-#: src/layout.c:758
+#: src/layout.c:580
 #, c-format
 msgid "(no read permission) %s bytes"
 msgstr "(pas de permission en lecture) %s octets"
 
-#: src/layout.c:762
+#: src/layout.c:584
 #, c-format
 msgid "( ? x ? ) %s bytes"
 msgstr "( ? x ? ) %s octets"
 
-#: src/layout.c:770
+#: src/layout.c:592
 #, c-format
 msgid "( %d x %d ) %s bytes"
 msgstr "( %d x %d ) %s octets"
 
-#: src/layout.c:1467 src/layout_config.c:58
+#: src/layout.c:608
+#, c-format
+msgid ""
+"Image profile: %s\n"
+"Screen profile: %s"
+msgstr ""
+"Profil d'image : %s\n"
+"Profil d'écran : %s"
+
+#: src/layout.c:1308 src/layout_config.c:58
 msgid "Tools"
 msgstr "Outils"
 
-#: src/layout.c:2079
+#: src/layout.c:1920
 msgid "Window options and layout"
 msgstr "Options de fenêtre et de disposition"
 
-#: src/layout.c:2138
+#: src/layout.c:1979
 msgid "General options"
 msgstr "Options générales"
 
-#: src/layout.c:2140
+#: src/layout.c:1981
 msgid "Home path (empty to use your home directory)"
 msgstr "Dossier Accueil (laisser vide pour utiliser votre dossier personnel)"
 
-#: src/layout.c:2148
+#: src/layout.c:1989
 msgid "Use current"
 msgstr "Utiliser le dossier courant"
 
-#: src/layout.c:2151
+#: src/layout.c:1992
 msgid "Show date in directories list view"
 msgstr "Montrer la date dans la vue des répertoires sous forme de liste"
 
-#: src/layout.c:2154
+#: src/layout.c:1995
 msgid "Exit program when this window is closed"
 msgstr "Quitter le programme quand cette fenêtre est fermée"
 
-#: src/layout.c:2157
+#: src/layout.c:1998
 msgid "Start-up directory:"
 msgstr "Dossier de démarrage:"
 
-#: src/layout.c:2159
+#: src/layout.c:2000
 msgid "No change"
 msgstr "Pas de changement"
 
-#: src/layout.c:2162
+#: src/layout.c:2003
 msgid "Restore last path"
 msgstr "Restaurer le dernier chemin"
 
-#: src/layout.c:2165
+#: src/layout.c:2006
 msgid "Home path"
 msgstr "Dossier Accueil"
 
-#: src/layout.c:2169 src/print.c:3421 src/print.c:3428
+#: src/layout.c:2010 src/print.c:3421 src/print.c:3428
 msgid "Layout"
 msgstr "Disposition"
 
-#: src/layout.c:2407
+#: src/layout.c:2248
 msgid "Invalid geometry\n"
 msgstr "Géométrie invalide\n"
 
-#: src/layout_config.c:58 src/preferences.c:1179 src/ui_pathsel.c:1179
+#: src/layout_config.c:58 src/preferences.c:1181 src/ui_pathsel.c:1179
 msgid "Files"
 msgstr "Fichiers"
 
-#: src/layout_config.c:58 src/preferences.c:84 src/preferences.c:976
+#: src/layout_config.c:58 src/preferences.c:84 src/preferences.c:978
 #: src/print.c:123
 msgid "Image"
 msgstr "Image"
@@ -2157,403 +2032,472 @@
 msgid "Hide file _list"
 msgstr "Masquer la _liste des fichiers"
 
-#: src/layout_image.c:1557
+#: src/layout_image.c:1565
 #, c-format
 msgid "pos(%*d,%*d) rgb(%3d,%3d,%3d)"
 msgstr "pos(%*d,%*d) rvb(%3d,%3d,%3d)"
 
-#: src/layout_util.c:1003
+#: src/layout_util.c:1005
 #, c-format
 msgid "_%d %s..."
 msgstr "_%d %s ..."
 
-#: src/layout_util.c:1013
+#: src/layout_util.c:1015
 #, c-format
 msgid "_%d empty"
 msgstr "_%d vide"
 
-#: src/layout_util.c:1141
+#: src/layout_util.c:1102
+#, c-format
+msgid "This installation of %s was not built with support for color profiles."
+msgstr ""
+"Cette installation de %s n'a pas été compilé avec le support des profils "
+"colorimétriques."
+
+#: src/layout_util.c:1103
+msgid "Color profiles not supported"
+msgstr "Profils colorimétriques non supportés"
+
+#: src/layout_util.c:1128 src/layout_util.c:1430
+msgid "Use _color profiles"
+msgstr "Utiliser les profils _colorimétriques"
+
+#: src/layout_util.c:1133 src/layout_util.c:1431
+msgid "Use profile from _image"
+msgstr "Utiliser le profil contenu dans l'_image"
+
+#: src/layout_util.c:1144
+msgid "AdobeRGB compatible"
+msgstr "compatible AdobeRGB"
+
+#: src/layout_util.c:1147
+#, c-format
+msgid "Input _%d: %s%s"
+msgstr "Entrée _%d: %s%s"
+
+#: src/layout_util.c:1165 src/layout_util.c:2107
+#, c-format
+msgid "Input _%d: %s"
+msgstr "Entrée _%d: %s"
+
+#: src/layout_util.c:1179
+msgid "Screen sRGB"
+msgstr "Écran sRGB"
+
+#: src/layout_util.c:1186
+msgid "_Screen profile"
+msgstr "_Profil d'écran"
+
+#: src/layout_util.c:1300
 msgid "_File"
 msgstr "_Fichier"
 
-#: src/layout_util.c:1142
+#: src/layout_util.c:1301
 msgid "_Go"
-msgstr "_Aller"
-
-#: src/layout_util.c:1143 src/menu.c:109
+msgstr "A_ller"
+
+#: src/layout_util.c:1302 src/menu.c:109
 msgid "_Edit"
 msgstr "Édit_er"
 
-#: src/layout_util.c:1144
+#: src/layout_util.c:1303
 msgid "_Select"
 msgstr "_Sélection"
 
-#: src/layout_util.c:1145 src/menu.c:281
-msgid "_Adjust"
-msgstr "_Ajuster"
-
-#: src/layout_util.c:1146
+#: src/layout_util.c:1304 src/menu.c:277
+msgid "_Orientation"
+msgstr "_Orientation"
+
+#: src/layout_util.c:1305
 msgid "E_xternal Editors"
 msgstr "Éditeurs e_xternes"
 
-#: src/layout_util.c:1148
+#: src/layout_util.c:1307
 msgid "_View Directory as"
 msgstr "_Voir le répertoire comme"
 
-#: src/layout_util.c:1149
+#: src/layout_util.c:1308
 msgid "_Zoom"
 msgstr "_Zoom"
 
-#: src/layout_util.c:1150
+#: src/layout_util.c:1309
+msgid "Color _Management"
+msgstr "Gestion des _couleurs"
+
+#: src/layout_util.c:1310
 msgid "_Connected Zoom"
 msgstr "Zo_om lié"
 
-#: src/layout_util.c:1151
+#: src/layout_util.c:1311
 msgid "_Split"
 msgstr "_Séparer"
 
-#: src/layout_util.c:1152
+#: src/layout_util.c:1312
 msgid "_Help"
-msgstr "_Aide"
-
-#: src/layout_util.c:1154
+msgstr "A_ide"
+
+#: src/layout_util.c:1314
 msgid "_First Image"
 msgstr "Première _image"
 
-#: src/layout_util.c:1155 src/layout_util.c:1156 src/layout_util.c:1157
+#: src/layout_util.c:1315 src/layout_util.c:1316 src/layout_util.c:1317
 msgid "_Previous Image"
 msgstr "Image _précédente"
 
-#: src/layout_util.c:1158 src/layout_util.c:1159 src/layout_util.c:1160
+#: src/layout_util.c:1318 src/layout_util.c:1319 src/layout_util.c:1320
 msgid "_Next Image"
 msgstr "Image _suivante"
 
-#: src/layout_util.c:1161
+#: src/layout_util.c:1321
 msgid "_Last Image"
 msgstr "_Dernière image"
 
-#: src/layout_util.c:1162
+#: src/layout_util.c:1322
 msgid "_Back"
 msgstr "_Retour"
 
-#: src/layout_util.c:1162
+#: src/layout_util.c:1322
 msgid "Back"
 msgstr "Retour"
 
-#: src/layout_util.c:1163
+#: src/layout_util.c:1323
 msgid "_Home"
 msgstr "_Rép. perso"
 
-#: src/layout_util.c:1163 src/options.c:134 src/ui_bookmark.c:543
+#: src/layout_util.c:1323 src/options.c:135 src/ui_bookmark.c:543
 #: src/ui_pathsel.c:1047
 msgid "Home"
 msgstr "Rép. perso"
 
-#: src/layout_util.c:1166
+#: src/layout_util.c:1326
 msgid "New _window"
 msgstr "Nouvelle _fenêtre"
 
-#: src/layout_util.c:1167
+#: src/layout_util.c:1327
 msgid "_New collection"
 msgstr "_Nouvelle collection"
 
-#: src/layout_util.c:1168
+#: src/layout_util.c:1328
 msgid "_Open collection..."
 msgstr "_Ouvrir collection ..."
 
-#: src/layout_util.c:1169
+#: src/layout_util.c:1329
 msgid "Open _recent"
 msgstr "Ouverts _récemment"
 
-#: src/layout_util.c:1170
+#: src/layout_util.c:1330
 msgid "_Search..."
 msgstr "_Recherche ..."
 
-#: src/layout_util.c:1172
+#: src/layout_util.c:1332
 msgid "Pan _view"
 msgstr "Affichage _panoramique"
 
-#: src/layout_util.c:1173
+#: src/layout_util.c:1333
 msgid "_Print..."
 msgstr "_Imprimer ..."
 
-#: src/layout_util.c:1174
+#: src/layout_util.c:1334
 msgid "N_ew folder..."
 msgstr "Nouv_eau dossier ..."
 
-#: src/layout_util.c:1181
+#: src/layout_util.c:1341
 msgid "_Copy path to clipboard"
 msgstr "_Copier chemin dans le presse-papiers"
 
-#: src/layout_util.c:1183
+#: src/layout_util.c:1343
 msgid "_Quit"
 msgstr "_Quitter"
 
-#: src/layout_util.c:1185 src/menu.c:219
+#: src/layout_util.c:1345 src/menu.c:219
 msgid "_Rotate clockwise"
 msgstr "_Rotation sens horaire"
 
-#: src/layout_util.c:1186 src/menu.c:222
+#: src/layout_util.c:1346 src/menu.c:222
 msgid "Rotate _counterclockwise"
 msgstr "Rotation sens _anti-horaire"
 
-#: src/layout_util.c:1187
+#: src/layout_util.c:1347
 msgid "Rotate 1_80"
 msgstr "Rotation de 1_80°"
 
-#: src/layout_util.c:1188 src/menu.c:228
+#: src/layout_util.c:1348 src/menu.c:228
 msgid "_Mirror"
 msgstr "Retournement _horizontal"
 
-#: src/layout_util.c:1189 src/menu.c:231
+#: src/layout_util.c:1349 src/menu.c:231
 msgid "_Flip"
 msgstr "Retournement _vertical"
 
-#: src/layout_util.c:1190 src/menu.c:234
-msgid "Toggle _grayscale"
-msgstr "Bascule niveaux de _gris"
-
-#: src/layout_util.c:1191 src/menu.c:237
+#: src/layout_util.c:1350 src/menu.c:234
 msgid "_Original state"
 msgstr "Etat _original"
 
-#: src/layout_util.c:1193
+#: src/layout_util.c:1352
 msgid "Select _all"
 msgstr "_Tout sélectionner"
 
-#: src/layout_util.c:1194
+#: src/layout_util.c:1353
 msgid "Select _none"
 msgstr "_Désélectionner"
 
-#: src/layout_util.c:1195
+#: src/layout_util.c:1354
 msgid "_Invert Selection"
 msgstr "_Inverser la sélection"
 
-#: src/layout_util.c:1197
+#: src/layout_util.c:1356
 msgid "P_references..."
 msgstr "P_références ..."
 
-#: src/layout_util.c:1198
+#: src/layout_util.c:1357
 msgid "Configure _Editors..."
 msgstr "Configur_er les éditeurs"
 
-#: src/layout_util.c:1199
+#: src/layout_util.c:1358
 msgid "_Configure this window..."
 msgstr "_Configurer cette fenêtre"
 
-#: src/layout_util.c:1200
+#: src/layout_util.c:1359
 msgid "_Thumbnail maintenance..."
 msgstr "Maintenance des _vignettes ..."
 
-#: src/layout_util.c:1203 src/layout_util.c:1204
+#: src/layout_util.c:1362 src/layout_util.c:1363
 msgid "Zoom in"
 msgstr "Zoom avant"
 
-#: src/layout_util.c:1205 src/layout_util.c:1206
+#: src/layout_util.c:1364 src/layout_util.c:1365
 msgid "Zoom out"
 msgstr "Zoom arrière"
 
-#: src/layout_util.c:1207 src/layout_util.c:1208
+#: src/layout_util.c:1366 src/layout_util.c:1367
 msgid "Zoom 1:1"
 msgstr "Taille réelle (1:1)"
 
-#: src/layout_util.c:1209 src/layout_util.c:1210 src/layout_util.c:1226
-#: src/layout_util.c:1227
+#: src/layout_util.c:1368 src/layout_util.c:1369 src/layout_util.c:1385
+#: src/layout_util.c:1386
 msgid "_Zoom to fit"
 msgstr "Taille de la fenê_tre"
 
-#: src/layout_util.c:1209 src/layout_util.c:1210
+#: src/layout_util.c:1368 src/layout_util.c:1369
 msgid "Zoom to fit"
 msgstr "Taille de la fenêtre"
 
-#: src/layout_util.c:1211 src/layout_util.c:1228
+#: src/layout_util.c:1370 src/layout_util.c:1387
 msgid "Fit _Horizontally"
 msgstr "Maximiser _Horizontalement"
 
-#: src/layout_util.c:1212 src/layout_util.c:1229
+#: src/layout_util.c:1371 src/layout_util.c:1388
 msgid "Fit _Vertically"
 msgstr "Maximiser _Verticalement"
 
-#: src/layout_util.c:1213 src/layout_util.c:1230
+#: src/layout_util.c:1372 src/layout_util.c:1389
 msgid "Zoom _2:1"
 msgstr "Zoom _2:1"
 
-#: src/layout_util.c:1214 src/layout_util.c:1231
+#: src/layout_util.c:1373 src/layout_util.c:1390
 msgid "Zoom _3:1"
 msgstr "Zoom _3:1"
 
-#: src/layout_util.c:1215 src/layout_util.c:1232
+#: src/layout_util.c:1374 src/layout_util.c:1391
 msgid "Zoom _4:1"
 msgstr "Zoom _4:1"
 
-#: src/layout_util.c:1216 src/layout_util.c:1233
+#: src/layout_util.c:1375 src/layout_util.c:1392
 msgid "Zoom 1:2"
 msgstr "Zoom 1:2"
 
-#: src/layout_util.c:1217 src/layout_util.c:1234
+#: src/layout_util.c:1376 src/layout_util.c:1393
 msgid "Zoom 1:3"
 msgstr "Zoom 1:3"
 
-#: src/layout_util.c:1218 src/layout_util.c:1235
+#: src/layout_util.c:1377 src/layout_util.c:1394
 msgid "Zoom 1:4"
 msgstr "Zoom 1:4"
 
-#: src/layout_util.c:1238
+#: src/layout_util.c:1397
 msgid "_View in new window"
 msgstr "_Voir dans une _nouvelle fenêtre"
 
-#: src/layout_util.c:1240 src/layout_util.c:1241 src/layout_util.c:1242
+#: src/layout_util.c:1399 src/layout_util.c:1400 src/layout_util.c:1401
 msgid "F_ull screen"
 msgstr "Plein _écran"
 
-#: src/layout_util.c:1243 src/layout_util.c:1244
+#: src/layout_util.c:1402 src/layout_util.c:1403
 msgid "Escape"
 msgstr "Echappement"
 
-#: src/layout_util.c:1245
+#: src/layout_util.c:1404
 msgid "_Image Overlay"
 msgstr "Aff_ichage en surimpression"
 
-#: src/layout_util.c:1246
+#: src/layout_util.c:1405
 msgid "Histogram _channels"
-msgstr "_Canaux histogramme"
-
-#: src/layout_util.c:1247
+msgstr "Canaux _histogramme"
+
+#: src/layout_util.c:1406
 msgid "Histogram _log mode"
 msgstr "Mode _log histogramme"
 
-#: src/layout_util.c:1248
+#: src/layout_util.c:1407
 msgid "_Hide file list"
 msgstr "Masquer la _liste des fichiers"
 
-#: src/layout_util.c:1249
+#: src/layout_util.c:1408
 msgid "_Pause slideshow"
 msgstr "Sus_pendre le diaporama"
 
-#: src/layout_util.c:1250
+#: src/layout_util.c:1409
 msgid "_Refresh"
 msgstr "_Rafraîchir"
 
-#: src/layout_util.c:1252
+#: src/layout_util.c:1411
 msgid "_Contents"
 msgstr "_Contenu"
 
-#: src/layout_util.c:1253
+#: src/layout_util.c:1412
 msgid "_Keyboard shortcuts"
 msgstr "_Raccourcis clavier"
 
-#: src/layout_util.c:1254
+#: src/layout_util.c:1413
 msgid "_Release notes"
 msgstr "_Notes pour cette version"
 
-#: src/layout_util.c:1255
+#: src/layout_util.c:1414
 msgid "_About"
 msgstr "À _propos"
 
-#: src/layout_util.c:1256
+#: src/layout_util.c:1415
 msgid "_Log Window"
 msgstr "_Journal"
 
-#: src/layout_util.c:1258
+#: src/layout_util.c:1417
 msgid "E_xif window"
 msgstr "Fenêtre E_xif"
 
-#: src/layout_util.c:1263
+#: src/layout_util.c:1422
 msgid "Show _Thumbnails"
 msgstr "Montrer les vigne_ttes"
 
-#: src/layout_util.c:1263
+#: src/layout_util.c:1422
 msgid "Show Thumbnails"
 msgstr "Montrer les vignettes"
 
-#: src/layout_util.c:1264
+#: src/layout_util.c:1423
 msgid "Show _Marks"
 msgstr "Montrer les _Marques"
 
-#: src/layout_util.c:1265
+#: src/layout_util.c:1424
 msgid "_Float file list"
 msgstr "Liste des fichiers _flottante"
 
-#: src/layout_util.c:1266
+#: src/layout_util.c:1425
 msgid "Hide tool_bar"
 msgstr "Masquer la _barre d'outils"
 
-#: src/layout_util.c:1267
+#: src/layout_util.c:1426
 msgid "Hide Pi_xel Info"
 msgstr "Cacher les infos sur le pi_xel"
 
-#: src/layout_util.c:1268
+#: src/layout_util.c:1427
 msgid "_Info"
 msgstr "_Informations"
 
-#: src/layout_util.c:1269
+#: src/layout_util.c:1428
 msgid "Sort _manager"
 msgstr "_Gestionnaire de tris"
 
-#: src/layout_util.c:1270
+#: src/layout_util.c:1429
 msgid "Toggle _slideshow"
 msgstr "Mode _Diaporama"
 
-#: src/layout_util.c:1274
+#: src/layout_util.c:1432
+msgid "Toggle _grayscale"
+msgstr "Bascule niveaux de _gris"
+
+#: src/layout_util.c:1436
 msgid "View Images as _List"
 msgstr "Images en _liste"
 
-#: src/layout_util.c:1275
+#: src/layout_util.c:1437
 msgid "View Images as I_cons"
 msgstr "Images en _Icônes"
 
-#: src/layout_util.c:1279
+#: src/layout_util.c:1441
 msgid "Horizontal"
 msgstr "Horizontal"
 
-#: src/layout_util.c:1280
+#: src/layout_util.c:1442
 msgid "Vertical"
 msgstr "Vertical"
 
-#: src/layout_util.c:1281
+#: src/layout_util.c:1443
 msgid "Quad"
 msgstr "Quatre"
 
-#: src/layout_util.c:1282
+#: src/layout_util.c:1444
 msgid "Single"
 msgstr "Unique"
 
-#: src/layout_util.c:1514
+#: src/layout_util.c:1448
+msgid "Input _0: sRGB"
+msgstr "Entrée _0: sRGB"
+
+#: src/layout_util.c:1449
+msgid "Input _1: AdobeRGB compatible"
+msgstr "Entrée _1: compatible AdobeRGB"
+
+#: src/layout_util.c:1450
+msgid "Input _2"
+msgstr "Entrée _2"
+
+#: src/layout_util.c:1451
+msgid "Input _3"
+msgstr "Entrée _3"
+
+#: src/layout_util.c:1452
+msgid "Input _4"
+msgstr "Entrée _4"
+
+#: src/layout_util.c:1453
+msgid "Input _5"
+msgstr "Entrée _5"
+
+#: src/layout_util.c:1695
 #, c-format
 msgid "Mark _%d"
 msgstr "Marque _%d"
 
-#: src/layout_util.c:1515 src/view_file.c:523
+#: src/layout_util.c:1696 src/view_file.c:523
 #, c-format
 msgid "_Set mark %d"
 msgstr "_Ajout marque %d"
 
-#: src/layout_util.c:1516 src/view_file.c:524
+#: src/layout_util.c:1697 src/view_file.c:524
 #, c-format
 msgid "_Reset mark %d"
 msgstr "_Suppression marque %d"
 
-#: src/layout_util.c:1517 src/layout_util.c:1518 src/view_file.c:525
+#: src/layout_util.c:1698 src/layout_util.c:1699 src/view_file.c:525
 #, c-format
 msgid "_Toggle mark %d"
 msgstr "_Bascule marque %d"
 
-#: src/layout_util.c:1519 src/layout_util.c:1520 src/view_file.c:526
+#: src/layout_util.c:1700 src/layout_util.c:1701 src/view_file.c:526
 #, c-format
 msgid "_Select mark %d"
 msgstr "_Sélectionner la marque %d"
 
-#: src/layout_util.c:1521 src/view_file.c:527
+#: src/layout_util.c:1702 src/view_file.c:527
 #, c-format
 msgid "_Add mark %d"
 msgstr "Ajouter la marque %d"
 
-#: src/layout_util.c:1522 src/view_file.c:528
+#: src/layout_util.c:1703 src/view_file.c:528
 #, c-format
 msgid "_Intersection with mark %d"
 msgstr "_Intersection avec marque %d"
 
-#: src/layout_util.c:1523 src/view_file.c:529
+#: src/layout_util.c:1704 src/view_file.c:529
 #, c-format
 msgid "_Unselect mark %d"
 msgstr "_Déselection marque %d"
@@ -2713,7 +2657,7 @@
 "Des collections ont été modifiées.\n"
 "Tout de même quitter ?"
 
-#: src/main.c:836 src/remote.c:552
+#: src/main.c:836 src/remote.c:601
 msgid "Command line"
 msgstr "Ligne de commande"
 
@@ -2749,239 +2693,239 @@
 msgid "Rotate _180"
 msgstr "Rotation de _180°"
 
-#: src/metadata.c:1316
+#: src/metadata.c:1342
 msgid "People"
 msgstr "Personnes"
 
-#: src/metadata.c:1317
+#: src/metadata.c:1343
 msgid "Family"
 msgstr "Famille"
 
-#: src/metadata.c:1318
+#: src/metadata.c:1344
 msgid "Free time"
 msgstr "Temps libre"
 
-#: src/metadata.c:1319
-msgid "Children"
-msgstr "Enfants"
-
-#: src/metadata.c:1320
-msgid "Sport"
-msgstr "Sport"
-
-#: src/metadata.c:1321
-msgid "Culture"
-msgstr "Culture"
-
-#: src/metadata.c:1322
-msgid "Festival"
-msgstr "Festival"
-
-#: src/metadata.c:1323
-msgid "Nature"
-msgstr "Nature"
-
-#: src/metadata.c:1324
-msgid "Animal"
-msgstr "Animal"
-
-#: src/metadata.c:1325
-msgid "Bird"
-msgstr "Oiseau"
-
-#: src/metadata.c:1326
-msgid "Insect"
-msgstr "Insecte"
-
-#: src/metadata.c:1327
-msgid "Pets"
-msgstr "Animaux familiers"
-
-#: src/metadata.c:1328
-msgid "Wildlife"
-msgstr "Vie sauvage"
-
-#: src/metadata.c:1329
-msgid "Zoo"
-msgstr "Zoo"
-
-#: src/metadata.c:1330
-msgid "Plant"
-msgstr "Plante"
-
-#: src/metadata.c:1331
-msgid "Tree"
-msgstr "Arbre"
-
-#: src/metadata.c:1332
-msgid "Flower"
-msgstr "Fleur"
-
-#: src/metadata.c:1333
-msgid "Water"
-msgstr "Eau"
-
-#: src/metadata.c:1334
-msgid "River"
-msgstr "Rivière"
-
-#: src/metadata.c:1335
-msgid "Lake"
-msgstr "Lac"
-
-#: src/metadata.c:1336
-msgid "Sea"
-msgstr "Mer"
-
-#: src/metadata.c:1337 src/print.c:375
-msgid "Landscape"
-msgstr "Paysage"
-
-#: src/metadata.c:1338
-msgid "Art"
-msgstr "Art"
-
-#: src/metadata.c:1339
-msgid "Statue"
-msgstr "Statue"
-
-#: src/metadata.c:1340
-msgid "Painting"
-msgstr "Peinture"
-
-#: src/metadata.c:1341 src/metadata.c:1355
-msgid "Historic"
-msgstr "Historique"
-
-#: src/metadata.c:1342 src/metadata.c:1356
-msgid "Modern"
-msgstr "Moderne"
-
-#: src/metadata.c:1343
-msgid "City"
-msgstr "Ville"
-
-#: src/metadata.c:1344
-msgid "Park"
-msgstr "Parc"
-
 #: src/metadata.c:1345
-msgid "Street"
-msgstr "Rue"
+msgid "Children"
+msgstr "Enfants"
 
 #: src/metadata.c:1346
-msgid "Square"
-msgstr "Square"
+msgid "Sport"
+msgstr "Sport"
 
 #: src/metadata.c:1347
-msgid "Architecture"
-msgstr "Architecture"
+msgid "Culture"
+msgstr "Culture"
 
 #: src/metadata.c:1348
-msgid "Buildings"
-msgstr "Constructions"
+msgid "Festival"
+msgstr "Festival"
 
 #: src/metadata.c:1349
-msgid "House"
-msgstr "Maison"
+msgid "Nature"
+msgstr "Nature"
 
 #: src/metadata.c:1350
-msgid "Cathedral"
-msgstr "Cathédrale"
+msgid "Animal"
+msgstr "Animal"
 
 #: src/metadata.c:1351
-msgid "Palace"
-msgstr "Palais"
+msgid "Bird"
+msgstr "Oiseau"
 
 #: src/metadata.c:1352
+msgid "Insect"
+msgstr "Insecte"
+
+#: src/metadata.c:1353
+msgid "Pets"
+msgstr "Animaux familiers"
+
+#: src/metadata.c:1354
+msgid "Wildlife"
+msgstr "Vie sauvage"
+
+#: src/metadata.c:1355
+msgid "Zoo"
+msgstr "Zoo"
+
+#: src/metadata.c:1356
+msgid "Plant"
+msgstr "Plante"
+
+#: src/metadata.c:1357
+msgid "Tree"
+msgstr "Arbre"
+
+#: src/metadata.c:1358
+msgid "Flower"
+msgstr "Fleur"
+
+#: src/metadata.c:1359
+msgid "Water"
+msgstr "Eau"
+
+#: src/metadata.c:1360
+msgid "River"
+msgstr "Rivière"
+
+#: src/metadata.c:1361
+msgid "Lake"
+msgstr "Lac"
+
+#: src/metadata.c:1362
+msgid "Sea"
+msgstr "Mer"
+
+#: src/metadata.c:1363 src/print.c:375
+msgid "Landscape"
+msgstr "Paysage"
+
+#: src/metadata.c:1364
+msgid "Art"
+msgstr "Art"
+
+#: src/metadata.c:1365
+msgid "Statue"
+msgstr "Statue"
+
+#: src/metadata.c:1366
+msgid "Painting"
+msgstr "Peinture"
+
+#: src/metadata.c:1367 src/metadata.c:1381
+msgid "Historic"
+msgstr "Historique"
+
+#: src/metadata.c:1368 src/metadata.c:1382
+msgid "Modern"
+msgstr "Moderne"
+
+#: src/metadata.c:1369
+msgid "City"
+msgstr "Ville"
+
+#: src/metadata.c:1370
+msgid "Park"
+msgstr "Parc"
+
+#: src/metadata.c:1371
+msgid "Street"
+msgstr "Rue"
+
+#: src/metadata.c:1372
+msgid "Square"
+msgstr "Square"
+
+#: src/metadata.c:1373
+msgid "Architecture"
+msgstr "Architecture"
+
+#: src/metadata.c:1374
+msgid "Buildings"
+msgstr "Constructions"
+
+#: src/metadata.c:1375
+msgid "House"
+msgstr "Maison"
+
+#: src/metadata.c:1376
+msgid "Cathedral"
+msgstr "Cathédrale"
+
+#: src/metadata.c:1377
+msgid "Palace"
+msgstr "Palais"
+
+#: src/metadata.c:1378
 msgid "Castle"
 msgstr "Château"
 
-#: src/metadata.c:1353
+#: src/metadata.c:1379
 msgid "Bridge"
 msgstr "Pont"
 
-#: src/metadata.c:1354
+#: src/metadata.c:1380
 msgid "Interior"
 msgstr "Intérieur"
 
-#: src/metadata.c:1357
+#: src/metadata.c:1383
 msgid "Places"
 msgstr "Lieux"
 
-#: src/metadata.c:1358
+#: src/metadata.c:1384
 msgid "Conditions"
 msgstr "Conditions"
 
-#: src/metadata.c:1359
+#: src/metadata.c:1385
 msgid "Night"
 msgstr "Nuit"
 
-#: src/metadata.c:1360
+#: src/metadata.c:1386
 msgid "Lights"
 msgstr "Lumières"
 
-#: src/metadata.c:1361
+#: src/metadata.c:1387
 msgid "Reflections"
 msgstr "Réflexions"
 
-#: src/metadata.c:1362
+#: src/metadata.c:1388
 msgid "Sun"
 msgstr "Soleil"
 
-#: src/metadata.c:1363
+#: src/metadata.c:1389
 msgid "Weather"
 msgstr "Méteorologie"
 
-#: src/metadata.c:1364
+#: src/metadata.c:1390
 msgid "Fog"
 msgstr "Brouillard"
 
-#: src/metadata.c:1365
+#: src/metadata.c:1391
 msgid "Rain"
 msgstr "Pluie"
 
-#: src/metadata.c:1366
+#: src/metadata.c:1392
 msgid "Clouds"
 msgstr "Nuages"
 
-#: src/metadata.c:1367
+#: src/metadata.c:1393
 msgid "Snow"
 msgstr "Neige"
 
-#: src/metadata.c:1368
+#: src/metadata.c:1394
 msgid "Sunny weather"
 msgstr "Temps ensoleillé"
 
-#: src/metadata.c:1369
+#: src/metadata.c:1395
 msgid "Photo"
 msgstr "Photo"
 
-#: src/metadata.c:1370
+#: src/metadata.c:1396
 msgid "Edited"
 msgstr "Editée"
 
-#: src/metadata.c:1371
+#: src/metadata.c:1397
 msgid "Detail"
 msgstr "Détail"
 
-#: src/metadata.c:1372
+#: src/metadata.c:1398
 msgid "Macro"
 msgstr "Macro"
 
-#: src/metadata.c:1373 src/print.c:374
+#: src/metadata.c:1399 src/print.c:374
 msgid "Portrait"
 msgstr "Portrait"
 
-#: src/metadata.c:1374
+#: src/metadata.c:1400
 msgid "Black and White"
 msgstr "Noir et blanc"
 
-#: src/metadata.c:1375
+#: src/metadata.c:1401
 msgid "Perspective"
 msgstr "Perspective"
 
-#: src/options.c:136 src/ui_bookmark.c:550
+#: src/options.c:137 src/ui_bookmark.c:550
 msgid "Desktop"
 msgstr "Bureau"
 
@@ -3011,7 +2955,7 @@
 msgid "Filename:"
 msgstr "Nom du fichier :"
 
-#: src/pan-view.c:1544 src/pan-view.c:2380 src/preferences.c:1086
+#: src/pan-view.c:1544 src/pan-view.c:2380 src/preferences.c:1088
 msgid "Location:"
 msgstr "Emplacement :"
 
@@ -3019,7 +2963,7 @@
 msgid "Date:"
 msgstr "Date :"
 
-#: src/pan-view.c:1548 src/preferences.c:910 src/print.c:3262 src/print.c:3473
+#: src/pan-view.c:1548 src/preferences.c:912 src/print.c:3262 src/print.c:3473
 msgid "Size:"
 msgstr "Taille :"
 
@@ -3138,7 +3082,7 @@
 "options doivent être validées pour apprécier un changement dans les "
 "performances."
 
-#: src/pan-view.c:2598 src/preferences.c:913
+#: src/pan-view.c:2598 src/preferences.c:915
 msgid "Cache thumbnails"
 msgstr "Mettre en cache les vignettes"
 
@@ -3189,43 +3133,43 @@
 "n°%d « %s »:\n"
 "%s"
 
-#: src/preferences.c:434
+#: src/preferences.c:436
 msgid "Nearest (worst, but fastest)"
 msgstr "Au plus près (moins bon, plus rapide)"
 
-#: src/preferences.c:436
-msgid "Tiles"
-msgstr "Tuiles"
-
 #: src/preferences.c:438
-msgid "Bilinear"
-msgstr "Bilinéaire"
+msgid "Tiles"
+msgstr "Tuiles"
 
 #: src/preferences.c:440
+msgid "Bilinear"
+msgstr "Bilinéaire"
+
+#: src/preferences.c:442
 msgid "Hyper (best, but slowest)"
 msgstr "Hyper (meilleur, plus lent)"
 
-#: src/preferences.c:468
+#: src/preferences.c:470
 msgid "None"
 msgstr "Aucune"
 
-#: src/preferences.c:469
+#: src/preferences.c:471
 msgid "Normal"
 msgstr "Normale"
 
-#: src/preferences.c:470
+#: src/preferences.c:472
 msgid "Best"
 msgstr "Meilleure"
 
-#: src/preferences.c:532 src/print.c:380
+#: src/preferences.c:534 src/print.c:380
 msgid "Custom"
 msgstr "Spécifique"
 
-#: src/preferences.c:774 src/preferences.c:777
+#: src/preferences.c:776 src/preferences.c:779
 msgid "Reset filters"
 msgstr "RAZ des filtres"
 
-#: src/preferences.c:778
+#: src/preferences.c:780
 msgid ""
 "This will reset the file filters to the defaults.\n"
 "Continue?"
@@ -3233,19 +3177,19 @@
 "Ceci va remettre les filtres de fichiers à leur état par défaut.\n"
 "Continuer ?"
 
-#: src/preferences.c:805 src/preferences.c:808
+#: src/preferences.c:807 src/preferences.c:810
 msgid "Clear trash"
 msgstr "Vider la corbeille"
 
-#: src/preferences.c:809
+#: src/preferences.c:811
 msgid "This will remove the trash contents."
 msgstr "Ceci va supprimer le contenu de la corbeille"
 
-#: src/preferences.c:853 src/preferences.c:856
+#: src/preferences.c:855 src/preferences.c:858
 msgid "Reset image overlay template string"
 msgstr "Restaurer le modèle par défaut pour l'affichage en surimpression"
 
-#: src/preferences.c:857
+#: src/preferences.c:859
 msgid ""
 "This will reset the image overlay template string to the default.\n"
 "Continue?"
@@ -3254,20 +3198,20 @@
 "défaut.\n"
 "Continuer ?"
 
-#: src/preferences.c:905
+#: src/preferences.c:907
 msgid "General"
 msgstr "Général"
 
-#: src/preferences.c:911 src/preferences.c:984
+#: src/preferences.c:913 src/preferences.c:986
 msgid "Quality:"
 msgstr "Qualité :"
 
-#: src/preferences.c:919
+#: src/preferences.c:921
 msgid "Use standard thumbnail cache, shared with other applications"
 msgstr ""
 "Utiliser le cache de vignettes standard, partagé avec les autres applications"
 
-#: src/preferences.c:925
+#: src/preferences.c:927
 msgid ""
 "Store thumbnails in '.thumbnails' folder, local to image folder (non-"
 "standard)"
@@ -3275,173 +3219,173 @@
 "Sauver les vignettes dans le dossier « .thumbnails », local au dossier de "
 "l'image (non-standard)"
 
-#: src/preferences.c:929
+#: src/preferences.c:931
 msgid "Use xvpics thumbnails when found (read only)"
 msgstr "Utiliser les vignettes xvpics si existantes (lecture seule)"
 
-#: src/preferences.c:933
+#: src/preferences.c:935
 msgid "Use EXIF thumbnails when available (EXIF thumbnails may be outdated)"
 msgstr ""
 "Utiliser les vignettes EXIF si disponibles (les vignettes EXIF peuvent ne "
 "pas être à jour)"
 
-#: src/preferences.c:936
+#: src/preferences.c:938
 msgid "Slide show"
 msgstr "Diaporama"
 
-#: src/preferences.c:939
+#: src/preferences.c:941
 msgid "Delay between image change:"
 msgstr "Délai entre deux images :"
 
-#: src/preferences.c:939
+#: src/preferences.c:941
 msgid "seconds"
 msgstr "secondes"
 
-#: src/preferences.c:945
+#: src/preferences.c:947
 msgid "Random"
 msgstr "Aléatoire"
 
-#: src/preferences.c:946
+#: src/preferences.c:948
 msgid "Repeat"
 msgstr "En boucle"
 
-#: src/preferences.c:948
+#: src/preferences.c:950
 msgid "Image loading and caching"
 msgstr "Chargement et cache des images"
 
-#: src/preferences.c:951
+#: src/preferences.c:953
 msgid "Offscreen cache size (Mb per image):"
 msgstr "Taille du cache mémoire hors-écran (Mo par image) :"
 
-#: src/preferences.c:955
+#: src/preferences.c:957
 msgid "Decoded image cache size (Mb):"
 msgstr "Taille du cache mémoire pour les images décodées (Mo) :"
 
-#: src/preferences.c:957
+#: src/preferences.c:959
 msgid "Preload next image"
 msgstr "Précharger l'image suivante"
 
-#: src/preferences.c:960
+#: src/preferences.c:962
 msgid "Refresh on file change"
 msgstr "Rafraîchir la liste des fichiers"
 
-#: src/preferences.c:978
+#: src/preferences.c:980
 msgid "Zoom"
 msgstr "Zoom"
 
-#: src/preferences.c:981
+#: src/preferences.c:983
 msgid "Dithering method:"
 msgstr "Méthode de dithering :"
 
-#: src/preferences.c:986
+#: src/preferences.c:988
 msgid "Two pass rendering (apply HQ zoom and color correction in second pass)"
 msgstr ""
 "Rendu en 2 passes (applique le zoom haute qualité et la correction "
 "colorimétrique durant la seconde passe)"
 
-#: src/preferences.c:989
+#: src/preferences.c:991
 msgid "Allow enlargement of image for zoom to fit"
 msgstr "Permettre d'agrandir les images pour que le zoom convienne"
 
-#: src/preferences.c:993
+#: src/preferences.c:995
 msgid "Limit image size when autofitting (%):"
 msgstr "Limiter la taille de l'image lors de l'auto-dimensionnement  (%):"
 
-#: src/preferences.c:1001
+#: src/preferences.c:1003
 msgid "Zoom increment:"
 msgstr "Incrément de zoom :"
 
-#: src/preferences.c:1006
+#: src/preferences.c:1008
 msgid "When new image is selected:"
 msgstr "Sélection d'une nouvelle image :"
 
-#: src/preferences.c:1010
+#: src/preferences.c:1012
 msgid "Zoom to original size"
 msgstr "Zoom à sa taille d'origine"
 
-#: src/preferences.c:1013
+#: src/preferences.c:1015
 msgid "Fit image to window"
 msgstr "Mettre à la taille de la fenêtre"
 
-#: src/preferences.c:1016
+#: src/preferences.c:1018
 msgid "Leave Zoom at previous setting"
 msgstr "Garder la valeur précédente du zoom"
 
-#: src/preferences.c:1022
+#: src/preferences.c:1024
 msgid "Scroll to top left corner"
 msgstr "Défiler au coin en haut à gauche"
 
-#: src/preferences.c:1025
+#: src/preferences.c:1027
 msgid "Scroll to image center"
 msgstr "Défiler au centre de l'image"
 
-#: src/preferences.c:1028
+#: src/preferences.c:1030
 msgid "Keep the region from previous image"
 msgstr "Garder la région de l'image précédente"
 
-#: src/preferences.c:1033
+#: src/preferences.c:1035
 msgid "Appearance"
 msgstr "Apparence"
 
-#: src/preferences.c:1035
+#: src/preferences.c:1037
 msgid "Custom border color"
 msgstr "Couleur de bordure personnalisée"
 
-#: src/preferences.c:1038
+#: src/preferences.c:1040
 msgid "Border color"
 msgstr "Couleur de bordure"
 
-#: src/preferences.c:1041
+#: src/preferences.c:1043
 msgid "Convenience"
 msgstr "Commodités"
 
-#: src/preferences.c:1043
+#: src/preferences.c:1045
 msgid "Auto rotate image using Exif information"
 msgstr "Rotation automatique de l'image à l'aide des informations Exif"
 
-#: src/preferences.c:1060
+#: src/preferences.c:1062
 msgid "Windows"
 msgstr "Fenêtres"
 
-#: src/preferences.c:1062
-msgid "State"
-msgstr "État"
-
 #: src/preferences.c:1064
-msgid "Remember window positions"
-msgstr "Se rappeler la position des fenêtres"
+msgid "State"
+msgstr "État"
 
 #: src/preferences.c:1066
+msgid "Remember window positions"
+msgstr "Se rappeler la position des fenêtres"
+
+#: src/preferences.c:1068
 msgid "Remember tool state (float/hidden)"
 msgstr "Se rappeler l'état des outils (flottants/cachés)"
 
-#: src/preferences.c:1071
+#: src/preferences.c:1073
 msgid "Fit window to image when tools are hidden/floating"
 msgstr ""
 "Mettre la fenêtre à la taille de l'image quand les outils sont cachés/"
 "flottants"
 
-#: src/preferences.c:1075
+#: src/preferences.c:1077
 msgid "Limit size when auto-sizing window (%):"
 msgstr "Limiter la taille quand la fenêtre est auto-dimensionnable (%) :"
 
-#: src/preferences.c:1090
+#: src/preferences.c:1092
 msgid "Smooth image flip"
 msgstr "Lisser le basculement d'image"
 
-#: src/preferences.c:1092
+#: src/preferences.c:1094
 msgid "Disable screen saver"
 msgstr "Inhiber l'économiseur d'écran"
 
-#: src/preferences.c:1096
+#: src/preferences.c:1098
 msgid "Overlay Screen Display"
 msgstr "Affichage en surimpression (OSD)"
 
-#: src/preferences.c:1098
+#: src/preferences.c:1100
 msgid "Image overlay template"
 msgstr "Modèle pour l'affichage en surimpression"
 
-#: src/preferences.c:1112
+#: src/preferences.c:1114
 msgid ""
 "<i>%name%</i> results in the filename of the picture.\n"
 "Also available: <i>%collection%</i>, <i>%number%</i>, <i>%total%</i>, <i>%"
@@ -3482,226 +3426,238 @@
 "Si une ligne est vide, elle n'est pas affichée. Cela permet d'ajouter des "
 "lignes qui disparaitront totalement si aucune donnée n'est disponible.\n"
 
-#: src/preferences.c:1129 src/preferences.c:1302
+#: src/preferences.c:1131 src/preferences.c:1304
 msgid "Defaults"
 msgstr "Configuration par défaut"
 
-#: src/preferences.c:1183
+#: src/preferences.c:1185
 msgid "Show hidden files or folders"
 msgstr "Montrer les fichiers ou dossiers cachés"
 
-#: src/preferences.c:1186
+#: src/preferences.c:1188
 msgid "Show dot directory"
 msgstr "Montrer le répertoire point"
 
-#: src/preferences.c:1189
+#: src/preferences.c:1191
 msgid "Case sensitive sort"
 msgstr "Tri sensible à la casse"
 
-#: src/preferences.c:1192
+#: src/preferences.c:1194
 msgid "Disable File Filtering"
 msgstr "Désactiver les filtres de fichiers"
 
-#: src/preferences.c:1196
+#: src/preferences.c:1198
 msgid "Grouping sidecar extensions"
 msgstr "Groupage des extensions de fichiers sidecar"
 
-#: src/preferences.c:1203
+#: src/preferences.c:1205
 msgid "File types"
 msgstr "Types de fichier"
 
-#: src/preferences.c:1225
+#: src/preferences.c:1227
 msgid "Filter"
 msgstr "Filtre"
 
-#: src/preferences.c:1257
+#: src/preferences.c:1259
 msgid "Class"
 msgstr "Classe"
 
-#: src/preferences.c:1274
+#: src/preferences.c:1276
 msgid "Writable"
 msgstr "Inscriptible"
 
-#: src/preferences.c:1285
+#: src/preferences.c:1287
 msgid "Sidecar is allowed"
 msgstr "Sidecar permis"
 
-#: src/preferences.c:1330
+#: src/preferences.c:1332
 msgid ""
 "Store metadata in '.metadata' folder, local to image folder (non-standard)"
 msgstr ""
 "Sauver les métadonnées dans le dossier « .metadata », local au dossier de "
 "l'image (non-standard)"
 
-#: src/preferences.c:1333
+#: src/preferences.c:1335
 msgid "Store keywords and comments as XMP tags in image files (standard)"
 msgstr ""
 "Enregistrer les mots-clés et commentaires en tant que balises XMP dans les "
 "fichiers images (standard)"
 
-#: src/preferences.c:1339
+#: src/preferences.c:1341
 msgid "Store keywords and comments also in legacy IPTC tags"
 msgstr "Enregistrer aussi les mots-clés et commentaires dans les tags IPTC"
 
-#: src/preferences.c:1342
+#: src/preferences.c:1344
 msgid "Warn if the image files are unwritable"
 msgstr "Prévenir si les images sont protégés en écriture"
 
-#: src/preferences.c:1345
+#: src/preferences.c:1347
 msgid "Ask before writing to image files"
 msgstr "Demander avant l'écriture dans les images"
 
-#: src/preferences.c:1348
+#: src/preferences.c:1350
 msgid "Save metadata in GQview legacy metadata format"
 msgstr "Sauver les méta-données dans le format de GQview"
 
-#: src/preferences.c:1351
+#: src/preferences.c:1353
 msgid "Write the same keywords and comment to all files in a group"
 msgstr ""
 "Écrire les mêmes mots-clés et commentaires dans tous les fichiers d'un groupe"
 
-#: src/preferences.c:1354
+#: src/preferences.c:1356
 msgid "Write metadata after timeout"
 msgstr "Écrire les méta-données après un délai"
 
-#: src/preferences.c:1360
+#: src/preferences.c:1362
 msgid "Timeout (seconds):"
 msgstr "Délai (secondes):"
 
-#: src/preferences.c:1363
+#: src/preferences.c:1365
 msgid "Write metadata on image change"
 msgstr "Écrire les méta-données en cas de modification d'image"
 
-#: src/preferences.c:1366
+#: src/preferences.c:1368
 msgid "Write metadata on directory change"
 msgstr "Écrire les méta-données après une modification de dossier"
 
-#: src/preferences.c:1369
+#: src/preferences.c:1371
 msgid "Allow keywords to differ only in case"
 msgstr "Permettre aux mots-clés de différer sur la casse"
 
-#: src/preferences.c:1383
+#: src/preferences.c:1374
+msgid "Write altered image orientation to the metadata"
+msgstr "Sauver l'orientation modifiée dans les méta-données"
+
+#: src/preferences.c:1388
 msgid "Color management"
 msgstr "Gestion des couleurs"
 
-#: src/preferences.c:1385
-msgid "Color profiles"
-msgstr "Profils colorimétriques"
-
-#: src/preferences.c:1393
+#: src/preferences.c:1390
+msgid "Input profiles"
+msgstr "Profils d'entrée"
+
+#: src/preferences.c:1398
 msgid "Type"
 msgstr "Type"
 
-#: src/preferences.c:1396
+#: src/preferences.c:1401
 msgid "Menu name"
 msgstr "Nom du menu"
 
-#: src/preferences.c:1399
+#: src/preferences.c:1404
 msgid "File"
 msgstr "Fichier"
 
-#: src/preferences.c:1424 src/preferences.c:1435
+#: src/preferences.c:1429 src/preferences.c:1449
 msgid "Select color profile"
 msgstr "Sélectionner un profil colorimétrique"
 
-#: src/preferences.c:1432
+#: src/preferences.c:1437
+msgid "Screen profile"
+msgstr "Profil d'écran"
+
+#: src/preferences.c:1441
+msgid "Use system screen profile if available"
+msgstr "Utiliser le profil d'écran du système si disponible"
+
+#: src/preferences.c:1446
 msgid "Screen:"
 msgstr "Écran:"
 
-#: src/preferences.c:1454 src/preferences.c:1497
+#: src/preferences.c:1468 src/preferences.c:1511
 msgid "Behavior"
 msgstr "Comportement"
 
-#: src/preferences.c:1456 src/utilops.c:1650
+#: src/preferences.c:1470 src/utilops.c:1952
 msgctxt "physical"
 msgid "Delete"
 msgstr "Suppression"
 
-#: src/preferences.c:1458
+#: src/preferences.c:1472
 msgid "Confirm file delete"
 msgstr "Confirmer la suppression des fichiers"
 
-#: src/preferences.c:1460
+#: src/preferences.c:1474
 msgid "Enable Delete key"
 msgstr "Utiliser la touche [Suppr]"
 
-#: src/preferences.c:1463
+#: src/preferences.c:1477
 msgid "Safe delete"
 msgstr "Suppression récupérable"
 
-#: src/preferences.c:1481
+#: src/preferences.c:1495
 msgid "Maximum size:"
 msgstr "Taille maximale :"
 
-#: src/preferences.c:1481
+#: src/preferences.c:1495
 msgid "MB"
 msgstr "Mo"
 
-#: src/preferences.c:1484
+#: src/preferences.c:1498
 msgid "Set to 0 for unlimited size"
 msgstr "Mettre à zéro pour taille infinie"
 
-#: src/preferences.c:1486
+#: src/preferences.c:1500
 msgid "View"
 msgstr "Vue"
 
-#: src/preferences.c:1499
+#: src/preferences.c:1513
 msgid "Rectangular selection in icon view"
 msgstr "Sélection rectangulaire dans la vue en icônes"
 
-#: src/preferences.c:1502
+#: src/preferences.c:1516
 msgid "Descend folders in tree view"
 msgstr "Parcourir les dossiers dans la vue arborescente"
 
-#: src/preferences.c:1505
+#: src/preferences.c:1519
 msgid "In place renaming"
 msgstr "Renommer en place"
 
-#: src/preferences.c:1508
+#: src/preferences.c:1522
 msgid "Open recent list maximum size"
 msgstr "Taille maximale de la liste des fichiers récemment ouverts"
 
-#: src/preferences.c:1511
+#: src/preferences.c:1525
 msgid "Drag'n drop icon size"
 msgstr "Taille de l'icône du glisser-déplacer"
 
-#: src/preferences.c:1514
+#: src/preferences.c:1528
 msgid "Navigation"
 msgstr "Navigation"
 
-#: src/preferences.c:1516
+#: src/preferences.c:1530
 msgid "Progressive keyboard scrolling"
 msgstr "Défilement clavier progressif"
 
-#: src/preferences.c:1518
+#: src/preferences.c:1532
 msgid "Mouse wheel scrolls image"
-msgstr "Défilement des images avec la molette de la souris"
-
-#: src/preferences.c:1521
+msgstr "Navigation dans l'image avec la molette de la souris"
+
+#: src/preferences.c:1535
 msgid "Miscellaneous"
 msgstr "Divers"
 
-#: src/preferences.c:1523
+#: src/preferences.c:1537
 msgid "Custom similarity threshold:"
 msgstr "Seuil de similarité personalisé :"
 
-#: src/preferences.c:1528
+#: src/preferences.c:1542
 msgid "Debugging"
 msgstr "Déboguage"
 
-#: src/preferences.c:1530
+#: src/preferences.c:1544
 msgid "Debug level:"
 msgstr "Niveau de déboguage:"
 
-#: src/preferences.c:1546
+#: src/preferences.c:1560
 msgid "Preferences"
 msgstr "Préférences"
 
-#: src/preferences.c:1675
+#: src/preferences.c:1689
 msgid "About"
 msgstr "À propos"
 
-#: src/preferences.c:1692
+#: src/preferences.c:1706
 #, c-format
 msgid ""
 "%s %s\n"
@@ -3730,7 +3686,7 @@
 "\n"
 "Distribué sous GNU General Public License"
 
-#: src/preferences.c:1711
+#: src/preferences.c:1725
 msgid "Credits..."
 msgstr "Crédits ..."
 
@@ -3972,6 +3928,10 @@
 msgid "Proof size:"
 msgstr "Taille de l'aperçu :"
 
+#: src/print.c:3456
+msgid "Text"
+msgstr "Texte"
+
 #: src/print.c:3466
 msgid "Paper"
 msgstr "Papier"
@@ -4020,12 +3980,12 @@
 msgid "Remember print settings"
 msgstr "Conserver les paramètres d'impression"
 
-#: src/rcfile.c:492
+#: src/rcfile.c:493
 #, c-format
 msgid "error saving config file: %s\n"
 msgstr "erreur à la sauvegarde du fichier de configuration : %s\n"
 
-#: src/rcfile.c:550
+#: src/rcfile.c:551
 #, c-format
 msgid ""
 "error saving config file: %s\n"
@@ -4035,88 +3995,96 @@
 "erreur : %s\n"
 
 #. short, long                  callback,               extra, prefer,description
-#: src/remote.c:590
+#: src/remote.c:639
 msgid "next image"
 msgstr "image suivante"
 
-#: src/remote.c:591
+#: src/remote.c:640
 msgid "previous image"
 msgstr "image précédente"
 
-#: src/remote.c:592
+#: src/remote.c:641
 msgid "first image"
 msgstr "première image"
 
-#: src/remote.c:593
+#: src/remote.c:642
 msgid "last image"
 msgstr "dernière image"
 
-#: src/remote.c:594
+#: src/remote.c:643
 msgid "toggle full screen"
 msgstr "bascule le mode plein écran"
 
-#: src/remote.c:595
+#: src/remote.c:644
 msgid "start full screen"
 msgstr "démarre le mode plein écran"
 
-#: src/remote.c:596
+#: src/remote.c:645
 msgid "stop full screen"
 msgstr "arrête le mode plein écran"
 
-#: src/remote.c:597
+#: src/remote.c:646
 msgid "toggle slide show"
 msgstr "bascule le mode diaporama"
 
-#: src/remote.c:598
+#: src/remote.c:647
 msgid "start slide show"
 msgstr "démarre le diaporama"
 
-#: src/remote.c:599
+#: src/remote.c:648
 msgid "stop slide show"
 msgstr "arrête le diaporama"
 
-#: src/remote.c:600
+#: src/remote.c:649
 msgid "start recursive slide show"
 msgstr "démarre le diaporama récursif"
 
-#: src/remote.c:601
+#: src/remote.c:650
 msgid "set slide show delay in seconds"
 msgstr "définit le délai entre les diapos en secondes"
 
-#: src/remote.c:602
+#: src/remote.c:651
 msgid "show tools"
 msgstr "montre les outils"
 
-#: src/remote.c:603
+#: src/remote.c:652
 msgid "hide tools"
 msgstr "cache les outils"
 
-#: src/remote.c:604
+#: src/remote.c:653
 msgid "quit"
 msgstr "quitte le programme"
 
-#: src/remote.c:605
+#: src/remote.c:654
 msgid "load config file"
 msgstr "charge le fichier de configuration"
 
-#: src/remote.c:606
+#: src/remote.c:655
+msgid "get list of sidecars of the given file"
+msgstr "obtient la liste des sidecars pour le fichier donné"
+
+#: src/remote.c:656
+msgid "get destination path for the given file"
+msgstr "obtient le chemin de destination pour le fichier donné"
+
+#: src/remote.c:657
 msgid "open file"
 msgstr "ouvre le fichier indiqué"
 
-#: src/remote.c:607
+#: src/remote.c:658
 msgid "open file in new window"
 msgstr "ouvre le fichier indiqué dans une nouvelle fenêtre"
 
-#: src/remote.c:673
+#: src/remote.c:724
 msgid "Remote command list:\n"
 msgstr "Liste des commandes à distance :\n"
 
-#: src/remote.c:730
+#: src/remote.c:781
 #, c-format
 msgid "Remote %s not running, starting..."
 msgstr "Pas de %s distant, lancement ..."
 
-#: src/remote.c:866
+#: src/remote.c:917
 msgid "Remote not available\n"
 msgstr "Commande à distance indisponible\n"
 
@@ -4295,7 +4263,7 @@
 msgid "Thumbnail image in cache failed to load, trying to recreate.\n"
 msgstr "Impossible de charger la vignette depuis le cache, regénération.\n"
 
-#: src/trash.c:80 src/utilops.c:2052 src/utilops.c:2063 src/utilops.c:2120
+#: src/trash.c:80 src/utilops.c:2363 src/utilops.c:2374 src/utilops.c:2431
 msgid "Delete failed"
 msgstr "Échec de la suppression"
 
@@ -4451,8 +4419,8 @@
 "Impossible de lancer la commande :\n"
 "%s"
 
-#: src/ui_pathsel.c:433 src/ui_pathsel.c:439 src/utilops.c:1796
-#: src/utilops.c:1816 src/utilops.c:2240
+#: src/ui_pathsel.c:433 src/ui_pathsel.c:439 src/utilops.c:2103
+#: src/utilops.c:2125 src/utilops.c:2551
 msgid "Rename failed"
 msgstr "Échec de renommage"
 
@@ -4473,7 +4441,7 @@
 msgid "_Delete"
 msgstr "_Supprimer"
 
-#: src/ui_pathsel.c:748 src/ui_pathsel.c:1049 src/utilops.c:2274
+#: src/ui_pathsel.c:748 src/ui_pathsel.c:1049 src/utilops.c:2585
 msgid "New folder"
 msgstr "Nouveau dossier"
 
@@ -4510,12 +4478,12 @@
 msgid "All files"
 msgstr "Tous les fichiers"
 
-#: src/utilops.c:435
+#: src/utilops.c:442
 msgctxt "filesystem"
 msgid "Location"
 msgstr "Emplacement"
 
-#: src/utilops.c:524
+#: src/utilops.c:531
 msgid ""
 "\n"
 " Continue multiple file operation?"
@@ -4523,11 +4491,11 @@
 "\n"
 " Continuer l'opération de suppression multiple ?"
 
-#: src/utilops.c:531 src/utilops.c:955
+#: src/utilops.c:538 src/utilops.c:961
 msgid "Co_ntinue"
 msgstr "Co_ntinuer"
 
-#: src/utilops.c:709
+#: src/utilops.c:715
 #, c-format
 msgid ""
 "Removal of folder contents failed at this file:\n"
@@ -4538,7 +4506,7 @@
 "\n"
 "%s"
 
-#: src/utilops.c:844
+#: src/utilops.c:850
 #, c-format
 msgid ""
 "%s\n"
@@ -4547,168 +4515,220 @@
 "%s\n"
 "Impossible de démarrer la commande externe.\n"
 
-#: src/utilops.c:923
+#: src/utilops.c:929
 #, c-format
 msgid "%s is not a directory"
 msgstr "%s n'est pas un répertoire"
 
-#: src/utilops.c:953
+#: src/utilops.c:959
 msgid "Really continue?"
 msgstr "Vraiment continuer ?"
 
-#: src/utilops.c:967
+#: src/utilops.c:973
 msgid "This operation can't continue:"
 msgstr "Cette opération ne peut continuer:"
 
-#: src/utilops.c:1328 src/utilops.c:1422
+#: src/utilops.c:1336 src/utilops.c:1449 src/utilops.c:1846
+msgid "Discard changes"
+msgstr "Ignorer les changements"
+
+#: src/utilops.c:1337 src/utilops.c:1450 src/utilops.c:1797 src/utilops.c:1813
+msgid "File details"
+msgstr "Détails du fichier"
+
+#: src/utilops.c:1359 src/utilops.c:1457
 msgid "Sidecars"
 msgstr "Sidecars"
 
-#: src/utilops.c:1330
+#: src/utilops.c:1361
 msgid "Write to file"
 msgstr "Écrire dans le fichier"
 
-#: src/utilops.c:1370
+#: src/utilops.c:1401
 msgid "Choose the destination folder."
 msgstr "Choisir le dossier de destination."
 
-#: src/utilops.c:1424
+#: src/utilops.c:1459
 msgid "New name"
 msgstr "Nouveau nom"
 
-#: src/utilops.c:1454
+#: src/utilops.c:1489
 msgid "Manual rename"
 msgstr "Renommage manuel"
 
-#: src/utilops.c:1459
+#: src/utilops.c:1494
 msgid "Original name:"
 msgstr "Nom d'origine :"
 
-#: src/utilops.c:1462
+#: src/utilops.c:1497
 msgid "New name:"
 msgstr "Nouveau nom :"
 
-#: src/utilops.c:1475
+#: src/utilops.c:1510
 msgid "Auto rename"
 msgstr "Renommage auto"
 
-#: src/utilops.c:1481
+#: src/utilops.c:1516
 msgid "Begin text"
 msgstr "Texte de début"
 
-#: src/utilops.c:1489 src/utilops.c:1521
+#: src/utilops.c:1524 src/utilops.c:1556
 msgid "Start #"
 msgstr "N° début"
 
-#: src/utilops.c:1495
+#: src/utilops.c:1530
 msgid "End text"
 msgstr "Texte de fin"
 
-#: src/utilops.c:1503
+#: src/utilops.c:1538
 msgid "Padding:"
 msgstr "Bourrage :"
 
-#: src/utilops.c:1508
+#: src/utilops.c:1543
 msgid "Formatted rename"
 msgstr "Renommage formaté"
 
-#: src/utilops.c:1513
+#: src/utilops.c:1548
 msgid "Format (* = original name, ## = numbers)"
 msgstr "Format (* = nom original, ## = nombres)"
 
-#: src/utilops.c:1603
+#: src/utilops.c:1686
 msgid "Another operation in progress.\n"
 msgstr "Autre opération en cours\n"
 
-#: src/utilops.c:1651
+#: src/utilops.c:1756
+#, c-format
+msgid "File: '%s'\n"
+msgstr "Fichier: « %s »\n"
+
+#: src/utilops.c:1761
+msgid "with sidecar files:\n"
+msgstr "avec les fichiers sidecars:\n"
+
+#: src/utilops.c:1767
+#, c-format
+msgid " '%s'\n"
+msgstr "« %s »\n"
+
+#: src/utilops.c:1771
+msgid ""
+"\n"
+"Status: "
+msgstr ""
+"\n"
+"Etat:"
+
+#: src/utilops.c:1783
+msgid "no problem detected"
+msgstr "aucun problème détecté"
+
+#: src/utilops.c:1799 src/utilops.c:1845
+msgid "Exclude file"
+msgstr "Exclure le fichier"
+
+#: src/utilops.c:1843 src/utilops.c:1868
+msgid "Overview of changed metadata"
+msgstr "Aperçu des méta-données modifiées"
+
+#: src/utilops.c:1861
+#, c-format
+msgid "The following metadata tags will be written to '%s'."
+msgstr "Les méta-données suivantes seront écrites dans « %s »."
+
+#: src/utilops.c:1865
+#, c-format
+msgid "The following metadata tags will be written to the image file itself."
+msgstr "Les méta-données suivantes seront écrites dans le fichier de l'image."
+
+#: src/utilops.c:1953
 msgid "Delete files?"
 msgstr "Supprimer les fichiers ?"
 
-#: src/utilops.c:1652
+#: src/utilops.c:1954
 msgid "This will delete the following files"
 msgstr "Ceci supprimera les fichiers suivants"
 
-#: src/utilops.c:1671
+#: src/utilops.c:1974
 msgid "Can't write metadata"
 msgstr "Impossible d'écrire les méta-données"
 
-#: src/utilops.c:1690
+#: src/utilops.c:1997
 msgid "Write metadata"
 msgstr "Écrire les méta-données"
 
-#: src/utilops.c:1691
+#: src/utilops.c:1998
 msgid "Write metadata?"
 msgstr "Écrire les méta-données ?"
 
-#: src/utilops.c:1692
+#: src/utilops.c:1999
 msgid "This will write the changed metadata into the following files"
 msgstr "Cela écrira les méta-données modifiées dans les fichiers suivants"
 
-#: src/utilops.c:1694
+#: src/utilops.c:2001
 msgid "Metadata writting failed"
 msgstr "Échec de l'écriture des méta-données"
 
-#: src/utilops.c:1714 src/utilops.c:1736
+#: src/utilops.c:2021 src/utilops.c:2043
 msgid "Move failed"
 msgstr "Échec du déplacement"
 
-#: src/utilops.c:1733
+#: src/utilops.c:2040
 msgid "Move files?"
 msgstr "Déplacer les fichiers ?"
 
-#: src/utilops.c:1734
+#: src/utilops.c:2041
 msgid "This will move the following files"
 msgstr "Ceci déplacera les fichiers suivants"
 
-#: src/utilops.c:1755 src/utilops.c:1777
+#: src/utilops.c:2062 src/utilops.c:2084
 msgid "Copy failed"
 msgstr "Échec de la copie"
 
-#: src/utilops.c:1774
+#: src/utilops.c:2081
 msgid "Copy files?"
 msgstr "Copier les fichiers ?"
 
-#: src/utilops.c:1775 src/utilops.c:1864
+#: src/utilops.c:2082 src/utilops.c:2175
 msgid "This will copy the following files"
 msgstr "Ceci copiera les fichiers suivants"
 
-#: src/utilops.c:1812 src/utilops.c:2236
+#: src/utilops.c:2121 src/utilops.c:2547
 msgid "Rename"
 msgstr "Renommer"
 
-#: src/utilops.c:1813
+#: src/utilops.c:2122
 msgid "Rename files?"
 msgstr "Renommer les fichiers ?"
 
-#: src/utilops.c:1814
+#: src/utilops.c:2123
 msgid "This will rename the following files"
 msgstr "Ceci renommera les fichiers suivants"
 
-#: src/utilops.c:1835
+#: src/utilops.c:2144
 msgid "Can't run external editor"
 msgstr "Ne peut exécuter l'éditeur externe."
 
-#: src/utilops.c:1862
+#: src/utilops.c:2173
 msgid "Editor"
 msgstr "Éditeur"
 
-#: src/utilops.c:1863
+#: src/utilops.c:2174
 msgid "Run editor?"
 msgstr "Exécuter l'éditeur ?"
 
-#: src/utilops.c:1866
+#: src/utilops.c:2177
 msgid "External command failed"
 msgstr "Échec de la commande externe"
 
-#: src/utilops.c:2035 src/utilops.c:2108
+#: src/utilops.c:2346 src/utilops.c:2419
 msgid "Delete folder"
 msgstr "Supprimer un dossier"
 
-#: src/utilops.c:2036
+#: src/utilops.c:2347
 msgid "Delete symbolic link?"
 msgstr "Supprimer le lien symbolique ?"
 
-#: src/utilops.c:2038
+#: src/utilops.c:2349
 msgid ""
 "This will delete the symbolic link.\n"
 "The folder this link points to will not be deleted."
@@ -4716,11 +4736,11 @@
 "Cela supprimera le lien symbolique.\n"
 "Le dossier pointé par ce lien symbolique ne sera pas supprimé."
 
-#: src/utilops.c:2040
+#: src/utilops.c:2351
 msgid "Link deletion failed"
 msgstr "La suppression du lien a échoué"
 
-#: src/utilops.c:2050
+#: src/utilops.c:2361
 #, c-format
 msgid ""
 "Unable to remove folder %s\n"
@@ -4729,16 +4749,16 @@
 "Impossible de supprimer le dossier %s\n"
 "Pas de permission pour l'écriture."
 
-#: src/utilops.c:2062 src/utilops.c:2119
+#: src/utilops.c:2373 src/utilops.c:2430
 #, c-format
 msgid "Unable to list contents of folder %s"
 msgstr "Impossible de lister le contenu du dossier %s"
 
-#: src/utilops.c:2076 src/utilops.c:2084
+#: src/utilops.c:2387 src/utilops.c:2395
 msgid "Folder contains subfolders"
 msgstr "Dossier contenant des sous-dossiers"
 
-#: src/utilops.c:2080
+#: src/utilops.c:2391
 #, c-format
 msgid ""
 "Unable to delete the folder:\n"
@@ -4754,19 +4774,19 @@
 "Ce dossier contient des sous-dossiers qui doivent être déplacés avant sa "
 "suppression."
 
-#: src/utilops.c:2088
+#: src/utilops.c:2399
 msgid "Subfolders:"
 msgstr "Sous-dossiers:"
 
-#: src/utilops.c:2109
+#: src/utilops.c:2420
 msgid "Delete folder?"
 msgstr "Supprimer le dossier ?"
 
-#: src/utilops.c:2110
+#: src/utilops.c:2421
 msgid "The folder contains these files:"
 msgstr "Ce dossier contient ces fichiers:"
 
-#: src/utilops.c:2111
+#: src/utilops.c:2422
 msgid ""
 "This will delete the folder.\n"
 "The contents of this folder will also be deleted."
@@ -4774,23 +4794,23 @@
 "Cela supprimera le dossier.\n"
 "Le contenu de ce dossier sera aussi supprimé."
 
-#: src/utilops.c:2237
+#: src/utilops.c:2548
 msgid "Rename folder?"
 msgstr "Renommer le dossier ?"
 
-#: src/utilops.c:2238
+#: src/utilops.c:2549
 msgid "The folder contains the following files"
 msgstr "Ce dossier contient les fichiers suivants"
 
-#: src/utilops.c:2284
+#: src/utilops.c:2595
 msgid "Create Folder"
 msgstr "Créer un dossier"
 
-#: src/utilops.c:2285
+#: src/utilops.c:2596
 msgid "Create folder?"
 msgstr "Créer un dossier ?"
 
-#: src/utilops.c:2288
+#: src/utilops.c:2599
 msgid "Can't create folder"
 msgstr "Impossible de créer le dossier"
 
@@ -4870,73 +4890,3 @@
 #: src/window.c:251
 msgid "Help"
 msgstr "Aide"
-
-#~ msgid "Delete \"%s\""
-#~ msgstr "Supprimer « %s »"
-
-#~ msgid "Reset editors"
-#~ msgstr "RAZ des éditeurs"
-
-#~ msgid ""
-#~ "This will reset the edit commands to the defaults.\n"
-#~ "Continue?"
-#~ msgstr ""
-#~ "Ceci va remettre les commandes d'édition à leur état par défaut.\n"
-#~ "Continuer ?"
-
-#~ msgid "Startup"
-#~ msgstr "Démarrage"
-
-#~ msgid "Restore folder on startup"
-#~ msgstr "Restaurer le répertoire au démarrage"
-
-#~ msgid "Cache thumbnails into .thumbnails"
-#~ msgstr "Mettre en cache les vignettes dans .thumbnails"
-
-#~ msgid "Faster jpeg thumbnailing (may reduce quality)"
-#~ msgstr "Vignettes JPEG plus rapides (qualité dégradée)"
-
-#~ msgid "Two pass zooming"
-#~ msgstr "Zoom en 2 passes"
-
-#~ msgid "Scroll reset method:"
-#~ msgstr "Méthode de ré-initialisation du défilement:"
-
-#~ msgid "Top left"
-#~ msgstr "Haut gauche"
-
-#~ msgid "Center"
-#~ msgstr "Centre"
-
-#~ msgid "Filtering"
-#~ msgstr "Filtres"
-
-#~ msgid "#"
-#~ msgstr "N°"
-
-#~ msgid "Command Line"
-#~ msgstr "Ligne de commande"
-
-#~ msgid "What to show in properties dialog:"
-#~ msgstr "Que montrer dans le dialogue Propriétés:"
-
-#~ msgid "Advanced"
-#~ msgstr "Avancées"
-
-#~ msgid ""
-#~ "Show \"Copy path\" menu item which write the path of selected files to "
-#~ "clipboard"
-#~ msgstr ""
-#~ "Montrer l'entrée de menu \"Copier chemin\"  qui écrit le chemin des "
-#~ "fichiers sélectionnés dans le presse-papiers"
-
-#~ msgid "Store metadata and cache files in source image's directory"
-#~ msgstr ""
-#~ "Enregistrer les fichiers de cache et de méta-données dans le répertoire "
-#~ "des images source"
-
-#~ msgid "Image read buffer size (bytes):"
-#~ msgstr "Taille du tampon de lecture des images (octets):"
-
-#~ msgid "Image idle loop read count:"
-#~ msgstr "Compteur de la boucle de lecture des images lorsque inoccupé:"
--- a/src/Makefile.am	Fri May 01 15:49:06 2009 +0900
+++ b/src/Makefile.am	Fri May 01 15:49:32 2009 +0900
@@ -18,6 +18,7 @@
 
 module_SLIK = \
 	intl.h		\
+	gettext.h	\
 	ui_bookmark.c	\
 	ui_bookmark.h	\
 	ui_fileops.c	\
--- a/src/bar.c	Fri May 01 15:49:06 2009 +0900
+++ b/src/bar.c	Fri May 01 15:49:32 2009 +0900
@@ -95,7 +95,7 @@
 "                <entry key = 'formatted.ColorProfile' if_set = 'true' editable = 'false' />"
 "                <entry key = 'formatted.SubjectDistance' if_set = 'true' editable = 'false' />"
 "                <entry key = 'formatted.Resolution' if_set = 'true' editable = 'false' />"
-"                <entry key = 'Exif.Image.Orientation' if_set = 'true' editable = 'false' />"
+"                <entry key = '" ORIENTATION_KEY "' if_set = 'true' editable = 'false' />"
 "            </pane_exif>"
 "        </bar>"
 "    </layout>"
--- a/src/bar_exif.c	Fri May 01 15:49:06 2009 +0900
+++ b/src/bar_exif.c	Fri May 01 15:49:32 2009 +0900
@@ -235,16 +235,12 @@
 			g_signal_handlers_block_by_func(ee->value_widget, bar_pane_exif_entry_changed, ee);
 			gtk_entry_set_text(GTK_ENTRY(ee->value_widget), text ? text : "");
 			g_signal_handlers_unblock_by_func(ee->value_widget, bar_pane_exif_entry_changed, ee);
-#if GTK_CHECK_VERSION(2,12,0)
 			gtk_widget_set_tooltip_text(ee->box, NULL);
-#endif
 			}
 		else
 			{
 			gtk_label_set_text(GTK_LABEL(ee->value_widget), text);
-#if GTK_CHECK_VERSION(2,12,0)
 			gtk_widget_set_tooltip_text(ee->box, text);
-#endif
 			}
 		gtk_widget_show(entry);
 		ped->all_hidden = FALSE;
--- a/src/cellrenderericon.c	Fri May 01 15:49:06 2009 +0900
+++ b/src/cellrenderericon.c	Fri May 01 15:49:32 2009 +0900
@@ -149,48 +149,48 @@
 	g_object_class_install_property(object_class,
 					PROP_PIXBUF,
 					g_param_spec_object("pixbuf",
-							_("Pixbuf Object"),
-							_("The pixbuf to render"),
+							"Pixbuf Object",
+							"The pixbuf to render",
 							GDK_TYPE_PIXBUF,
 							G_PARAM_READWRITE));
 
 	g_object_class_install_property(object_class,
 					PROP_TEXT,
 					g_param_spec_string("text",
-							_("Text"),
-							_("Text to render"),
+							"Text",
+							"Text to render",
 							NULL,
 							G_PARAM_READWRITE));
 
 	g_object_class_install_property(object_class,
 					PROP_BACKGROUND_GDK,
 					g_param_spec_boxed("background_gdk",
-							_("Background color"),
-							_("Background color as a GdkColor"),
+							"Background color",
+							"Background color as a GdkColor",
 							GDK_TYPE_COLOR,
 							G_PARAM_READWRITE));
 
 	g_object_class_install_property(object_class,
 					PROP_FOREGROUND_GDK,
 					g_param_spec_boxed("foreground_gdk",
-							_("Foreground color"),
-							_("Foreground color as a GdkColor"),
+							"Foreground color",
+							"Foreground color as a GdkColor",
 							GDK_TYPE_COLOR,
 							G_PARAM_READWRITE));
 
 	g_object_class_install_property(object_class,
 					PROP_FOCUSED,
 					g_param_spec_boolean("has_focus",
-							_("Focus"),
-							_("Draw focus indicator"),
+							"Focus",
+							"Draw focus indicator",
 							FALSE,
 							G_PARAM_READWRITE));
 
 	g_object_class_install_property(object_class,
 					PROP_FIXED_WIDTH,
 					g_param_spec_int("fixed_width",
-							_("Fixed width"),
-							_("Width of cell"),
+							"Fixed width",
+							"Width of cell",
 							-1, FIXED_ICON_SIZE_MAX,
 							-1,
 							G_PARAM_READWRITE));
@@ -198,8 +198,8 @@
 	g_object_class_install_property(object_class,
 					PROP_FIXED_HEIGHT,
 					g_param_spec_int("fixed_height",
-							_("Fixed height"),
-							_("Height of icon excluding text"),
+							"Fixed height",
+							"Height of icon excluding text",
 							-1, FIXED_ICON_SIZE_MAX,
 							-1,
 							G_PARAM_READWRITE));
@@ -207,40 +207,40 @@
 	g_object_class_install_property(object_class,
 					PROP_BACKGROUND_SET,
 					g_param_spec_boolean("background_set",
-							_("Background set"),
-							_("Whether this tag affects the background color"),
+							"Background set",
+							"Whether this tag affects the background color",
 							FALSE,
 							G_PARAM_READWRITE));
 
 	g_object_class_install_property(object_class,
 					PROP_FOREGROUND_SET,
 					g_param_spec_boolean("foreground_set",
-							_("Foreground set"),
-							_("Whether this tag affects the foreground color"),
+							"Foreground set",
+							"Whether this tag affects the foreground color",
 							FALSE,
 							G_PARAM_READWRITE));
 
 	g_object_class_install_property(object_class,
 					PROP_SHOW_TEXT,
 					g_param_spec_boolean("show_text",
-							_("Show text"),
-							_("Whether the text is displayed"),
+							"Show text",
+							"Whether the text is displayed",
 							TRUE,
 							G_PARAM_READWRITE));
 
 	g_object_class_install_property(object_class,
 					PROP_SHOW_MARKS,
 					g_param_spec_boolean("show_marks",
-							_("Show marks"),
-							_("Whether the marks are displayed"),
+							"Show marks",
+							"Whether the marks are displayed",
 							TRUE,
 							G_PARAM_READWRITE));
 
 	g_object_class_install_property(object_class,
 					PROP_NUM_MARKS,
 					g_param_spec_int("num_marks",
-							_("Number of marks"),
-							_("Number of marks"),
+							"Number of marks",
+							"Number of marks",
 							0, 32,
 							6,
 							G_PARAM_READWRITE));
@@ -248,8 +248,8 @@
 	g_object_class_install_property(object_class,
 					PROP_MARKS,
 					g_param_spec_uint("marks",
-							_("Marks"),
-							_("Marks bit array"),
+							"Marks",
+							"Marks bit array",
 							0, 0xffffffff,
 							0,
 							G_PARAM_READWRITE));
@@ -257,8 +257,8 @@
 	g_object_class_install_property(object_class,
 					PROP_TOGGLED,
 					g_param_spec_uint("toggled_mark",
-							_("Toggled mark"),
-							_("Toggled mark"),
+							"Toggled mark",
+							"Toggled mark",
 							0, 32,
 							0,
 							G_PARAM_READWRITE));
--- a/src/compat.c	Fri May 01 15:49:06 2009 +0900
+++ b/src/compat.c	Fri May 01 15:49:32 2009 +0900
@@ -35,4 +35,24 @@
 		}
 #endif
 }
+
+#if !GLIB_CHECK_VERSION(2, 14, 0)
+static void hash_table_add(gpointer key, gpointer value, gpointer user_data)
+{
+	GList **list = user_data;
+	*list = g_list_prepend(*list, key);
+}
+#endif
+
+GList* hash_table_get_keys(GHashTable *hash_table)
+{
+#if GLIB_CHECK_VERSION(2, 14, 0)
+	return g_hash_table_get_keys(hash_table);
+#else
+	GList *list = NULL;
+	g_hash_table_foreach(hash_table, hash_table_add, &list);
+	return list;
+#endif
+}
+
 /* vim: set shiftwidth=8 softtabstop=0 cindent cinoptions={1s: */
--- a/src/compat.h	Fri May 01 15:49:06 2009 +0900
+++ b/src/compat.h	Fri May 01 15:49:32 2009 +0900
@@ -14,6 +14,12 @@
 #define COMPAT_H
 
 void radio_action_set_current_value(GtkRadioAction *action, gint current_value);
+GList* hash_table_get_keys(GHashTable *hash_table);
+
+#if !GTK_CHECK_VERSION(2,12,0)
+#define gtk_widget_set_tooltip_text(widget, text) /* ignored */
+#endif
+
 
 #endif /* COMPAT_H */
 /* vim: set shiftwidth=8 softtabstop=0 cindent cinoptions={1s: */
--- a/src/desktop_file.c	Fri May 01 15:49:06 2009 +0900
+++ b/src/desktop_file.c	Fri May 01 15:49:32 2009 +0900
@@ -113,6 +113,9 @@
 		{
 		editor_window_save(ew);
 		}
+
+	gtk_widget_set_sensitive(ew->save_button, FALSE);
+	ew->modified = FALSE;
 }
 
 static void editor_window_text_modified_cb(GtkWidget *widget, gpointer data)
@@ -205,7 +208,7 @@
 	gtk_widget_show(ew->save_button);
 	ct_button = ew->save_button;
 
-	button = pref_button_new(NULL, GTK_STOCK_CANCEL, NULL, FALSE,
+	button = pref_button_new(NULL, GTK_STOCK_CLOSE, NULL, FALSE,
 				 G_CALLBACK(editor_window_close_cb), ew);
 	gtk_container_add(GTK_CONTAINER(button_hbox), button);
 	GTK_WIDGET_SET_FLAGS(button, GTK_CAN_DEFAULT);
--- a/src/exif.c	Fri May 01 15:49:06 2009 +0900
+++ b/src/exif.c	Fri May 01 15:49:32 2009 +0900
@@ -1605,6 +1605,9 @@
 	
 	if (!key) return NULL;
 	
+	/* convert xmp key to exif key */
+	if (strcmp(key, "Xmp.tiff.Orientation") == 0) key = "Exif.Image.Orientation";
+	
 	if (format == METADATA_FORMATTED)
 		{
 		gchar *text;
--- a/src/exiv2.cc	Fri May 01 15:49:06 2009 +0900
+++ b/src/exiv2.cc	Fri May 01 15:49:32 2009 +0900
@@ -982,12 +982,12 @@
 #if EXIV2_TEST_VERSION(0,16,0)
 			Exiv2::Xmpdatum *xmpdatum;
 #endif
-			if ((exifdatum = dynamic_cast<Exiv2::Exifdatum *>(metadatum)))
+			if ((exifdatum = dynamic_cast<Exiv2::Exifdatum *>(&item)))
 				stream << *exifdatum;
-			else if ((iptcdatum = dynamic_cast<Exiv2::Iptcdatum *>(metadatum)))
+			else if ((iptcdatum = dynamic_cast<Exiv2::Iptcdatum *>(&item)))
 				stream << *iptcdatum;
 #if EXIV2_TEST_VERSION(0,16,0)
-			else if ((xmpdatum = dynamic_cast<Exiv2::Xmpdatum *>(metadatum)))
+			else if ((xmpdatum = dynamic_cast<Exiv2::Xmpdatum *>(&item)))
 				stream << *xmpdatum;
 #endif
 			str = stream.str();
--- a/src/image-load.c	Fri May 01 15:49:06 2009 +0900
+++ b/src/image-load.c	Fri May 01 15:49:32 2009 +0900
@@ -96,7 +96,7 @@
 	il->data_mutex = g_mutex_new();
 	il->can_destroy_cond = g_cond_new();
 #endif
-	DEBUG_1("new image loader %p, bufsize=%u idle_loop=%u", il, il->read_buffer_size, il->idle_read_loop_count);
+	DEBUG_1("new image loader %p, bufsize=%" G_GSIZE_FORMAT " idle_loop=%u", il, il->read_buffer_size, il->idle_read_loop_count);
 }
 
 static void image_loader_class_init(ImageLoaderClass *class)
@@ -160,7 +160,7 @@
 
 	if (il->error) DEBUG_1("%s", image_loader_get_error(il));
 
-	DEBUG_1("freeing image loader %p bytes_read=%d", il, il->bytes_read);
+	DEBUG_1("freeing image loader %p bytes_read=%" G_GSIZE_FORMAT, il, il->bytes_read);
 
 	if (il->idle_done_id)
 		{
@@ -619,9 +619,9 @@
 		ExifData *exif = exif_read_fd(il->fd);
 
 		if (options->thumbnails.use_exif)
-			il->mapped_file = exif_get_preview(exif, &il->bytes_total, il->requested_width, il->requested_height);
+			il->mapped_file = exif_get_preview(exif, (guint *)&il->bytes_total, il->requested_width, il->requested_height);
 		else
-			il->mapped_file = exif_get_preview(exif, &il->bytes_total, 0, 0); /* get the largest available preview image or NULL for normal images*/
+			il->mapped_file = exif_get_preview(exif, (guint *)&il->bytes_total, 0, 0); /* get the largest available preview image or NULL for normal images*/
 
 		if (il->mapped_file)
 			{
--- a/src/image-load.h	Fri May 01 15:49:06 2009 +0900
+++ b/src/image-load.h	Fri May 01 15:49:32 2009 +0900
@@ -58,7 +58,7 @@
 
 	guchar *mapped_file;
 	gsize read_buffer_size;
-	gint idle_read_loop_count;
+	guint idle_read_loop_count;
 };
 
 struct _ImageLoaderClass {
--- a/src/image.c	Fri May 01 15:49:06 2009 +0900
+++ b/src/image.c	Fri May 01 15:49:32 2009 +0900
@@ -405,10 +405,18 @@
 			break;
 		}
 
-	if (type != ALTER_NONE && type != ALTER_DESATURATE)
+	if (imd->orientation != imd->image_fd->exif_orientation ? imd->image_fd->exif_orientation : 1)
 		{
-		if (imd->image_fd->user_orientation == 0) file_data_ref(imd->image_fd);
-		imd->image_fd->user_orientation = imd->orientation;
+		if (!options->metadata.write_orientation)
+			{
+			/* user_orientation does not work together with options->metadata.write_orientation,
+			   use either one or the other.
+			   we must however handle switching metadata.write_orientation on and off, therefore
+			   we just disable referencing new fd's, not unreferencing the old ones
+			*/
+			if (imd->image_fd->user_orientation == 0) file_data_ref(imd->image_fd);
+			imd->image_fd->user_orientation = imd->orientation;
+			}
 		}
 	else
 		{
@@ -416,6 +424,18 @@
 		imd->image_fd->user_orientation = 0;
 		}
 
+	if (options->metadata.write_orientation)
+		{
+		if (type == ALTER_NONE)
+			{
+			metadata_write_revert(imd->image_fd, ORIENTATION_KEY);
+			}
+		else
+			{
+			metadata_write_int(imd->image_fd, ORIENTATION_KEY, imd->orientation);
+			}
+		}
+
 	pixbuf_renderer_set_orientation((PixbufRenderer *)imd->pr, imd->orientation);
 	if (imd->cm || imd->desaturate)
 		pixbuf_renderer_set_post_process_func((PixbufRenderer *)imd->pr, image_post_process_tile_color_cb, (gpointer) imd, (imd->cm != NULL) );
@@ -1073,7 +1093,7 @@
 			}
 		else if (options->image.exif_rotate_enable)
 			{
-			imd->orientation = metadata_read_int(imd->image_fd, "Exif.Image.Orientation", EXIF_ORIENTATION_TOP_LEFT);
+			imd->orientation = metadata_read_int(imd->image_fd, ORIENTATION_KEY, EXIF_ORIENTATION_TOP_LEFT);
 			imd->image_fd->exif_orientation = imd->orientation;
 			}
 		}
--- a/src/layout.c	Fri May 01 15:49:06 2009 +0900
+++ b/src/layout.c	Fri May 01 15:49:32 2009 +0900
@@ -924,6 +924,7 @@
 gboolean layout_set_fd(LayoutWindow *lw, FileData *fd)
 {
 	gboolean have_file = FALSE;
+	gboolean dir_changed = TRUE;
 
 	if (!layout_valid(&lw)) return FALSE;
 
@@ -951,6 +952,7 @@
 		if (lw->dir_fd && strcmp(lw->dir_fd->path, base) == 0)
 			{
 			g_free(base);
+			dir_changed = FALSE;
 			}
 		else if (isdir(base))
 			{
@@ -994,7 +996,7 @@
 		layout_image_set_index(lw, 0);
 		}
 
-	if (options->metadata.confirm_on_dir_change)
+	if (options->metadata.confirm_on_dir_change && dir_changed)
 		metadata_write_queue_confirm(NULL, NULL);
 
 	return TRUE;
--- a/src/main.h	Fri May 01 15:49:06 2009 +0900
+++ b/src/main.h	Fri May 01 15:49:32 2009 +0900
@@ -57,6 +57,7 @@
 #include <gdk-pixbuf/gdk-pixbuf.h>
 #include <gdk-pixbuf/gdk-pixbuf-loader.h>
 
+#include "compat.h"
 
 /*
  *----------------------------------------------------------------------------
--- a/src/metadata.c	Fri May 01 15:49:06 2009 +0900
+++ b/src/metadata.c	Fri May 01 15:49:32 2009 +0900
@@ -189,6 +189,25 @@
 	return FALSE;
 }
 
+gboolean metadata_write_revert(FileData *fd, const gchar *key)
+{
+	if (!fd->modified_xmp) return FALSE;
+	
+	g_hash_table_remove(fd->modified_xmp, key);
+	
+	if (g_hash_table_size(fd->modified_xmp) == 0)
+		{
+		metadata_write_queue_remove(fd);
+		}
+	else
+		{
+		/* reread the metadata to restore the original value */
+		file_data_increment_version(fd);
+		file_data_send_notification(fd, NOTIFY_REREAD);
+		}
+	return TRUE;
+}
+
 gboolean metadata_write_list(FileData *fd, const gchar *key, const GList *values)
 {
 	if (!fd->modified_xmp)
@@ -231,6 +250,13 @@
 	return ret;
 }
 
+gboolean metadata_write_int(FileData *fd, const gchar *key, guint64 value)
+{
+	gchar string[50];
+	
+	g_snprintf(string, sizeof(string), "%ld", value);
+	return metadata_write_string(fd, key, string);
+}
 
 /*
  *-------------------------------------------------------------------
--- a/src/metadata.h	Fri May 01 15:49:06 2009 +0900
+++ b/src/metadata.h	Fri May 01 15:49:32 2009 +0900
@@ -16,6 +16,7 @@
 
 #define COMMENT_KEY "Xmp.dc.description"
 #define KEYWORD_KEY "Xmp.dc.subject"
+#define ORIENTATION_KEY "Xmp.tiff.Orientation"
 
 gboolean metadata_write_queue_remove(FileData *fd);
 gboolean metadata_write_queue_remove_list(GList *list);
@@ -24,8 +25,10 @@
 
 gint metadata_queue_length(void);
 
+gboolean metadata_write_revert(FileData *fd, const gchar *key);
 gboolean metadata_write_list(FileData *fd, const gchar *key, const GList *values);
 gboolean metadata_write_string(FileData *fd, const gchar *key, const char *value);
+gboolean metadata_write_int(FileData *fd, const gchar *key, guint64 value);
 
 GList *metadata_read_list(FileData *fd, const gchar *key, MetadataFormat format);
 gchar *metadata_read_string(FileData *fd, const gchar *key, MetadataFormat format);
--- a/src/options.c	Fri May 01 15:49:06 2009 +0900
+++ b/src/options.c	Fri May 01 15:49:32 2009 +0900
@@ -104,6 +104,7 @@
 	options->metadata.confirm_on_image_change = FALSE;
 	options->metadata.confirm_on_dir_change = TRUE;
 	options->metadata.tags_case_sensitive = FALSE;
+	options->metadata.write_orientation = TRUE;
 	
 	options->show_icon_names = TRUE;
 
--- a/src/options.h	Fri May 01 15:49:06 2009 +0900
+++ b/src/options.h	Fri May 01 15:49:32 2009 +0900
@@ -178,6 +178,7 @@
 		gboolean confirm_on_image_change;
 		gboolean confirm_on_dir_change;
 		gboolean tags_case_sensitive;
+		gboolean write_orientation;
 	} metadata;
 
 };
--- a/src/preferences.c	Fri May 01 15:49:06 2009 +0900
+++ b/src/preferences.c	Fri May 01 15:49:32 2009 +0900
@@ -325,6 +325,7 @@
 	options->metadata.confirm_on_image_change = c_options->metadata.confirm_on_image_change;
 	options->metadata.confirm_on_dir_change = c_options->metadata.confirm_on_dir_change;
 	options->metadata.tags_case_sensitive = c_options->metadata.tags_case_sensitive;
+	options->metadata.write_orientation = c_options->metadata.write_orientation;
 
 #ifdef DEBUG
 	set_debug_level(debug_c);
@@ -1369,6 +1370,9 @@
 
 	pref_checkbox_new_int(group, _("Allow keywords to differ only in case"),
 			      options->metadata.tags_case_sensitive, &c_options->metadata.tags_case_sensitive);
+
+	pref_checkbox_new_int(group, _("Write altered image orientation to the metadata"),
+			      options->metadata.write_orientation, &c_options->metadata.write_orientation);
 }
 
 /* metadata tab */
--- a/src/rcfile.c	Fri May 01 15:49:06 2009 +0900
+++ b/src/rcfile.c	Fri May 01 15:49:32 2009 +0900
@@ -438,6 +438,7 @@
 	WRITE_NL(); WRITE_BOOL(*options, metadata.confirm_on_image_change);
 	WRITE_NL(); WRITE_BOOL(*options, metadata.confirm_on_dir_change);
 	WRITE_NL(); WRITE_BOOL(*options, metadata.tags_case_sensitive);
+	WRITE_NL(); WRITE_BOOL(*options, metadata.write_orientation);
 
 }
 
@@ -697,6 +698,7 @@
 		if (READ_BOOL(*options, metadata.confirm_on_image_change)) continue;
 		if (READ_BOOL(*options, metadata.confirm_on_dir_change)) continue;
 		if (READ_BOOL(*options, metadata.tags_case_sensitive)) continue;
+		if (READ_BOOL(*options, metadata.write_orientation)) continue;
 
 		log_printf("unknown attribute %s = %s\n", option, value);
 		}
--- a/src/remote.c	Fri May 01 15:49:06 2009 +0900
+++ b/src/remote.c	Fri May 01 15:49:32 2009 +0900
@@ -67,8 +67,6 @@
 
 	if (condition & G_IO_IN)
 		{
-		GList *queue = NULL;
-		GList *work;
 		gchar *buffer = NULL;
 		GError *error = NULL;
 		gsize termpos;
@@ -81,12 +79,11 @@
 
 				if (strlen(buffer) > 0)
 					{
-					queue = g_list_append(queue, buffer);
+					if (rc->read_func) rc->read_func(rc, buffer, source, rc->read_data);
+					g_io_channel_write_chars(source, "\n", -1, NULL, NULL); /* empty line finishes the command */
+					g_io_channel_flush(source, NULL);
 					}
-				else
-					{
-					g_free(buffer);
-					}
+				g_free(buffer);
 
 				buffer = NULL;
 				}
@@ -97,18 +94,6 @@
 			log_printf("error reading socket: %s\n", error->message);
 			g_error_free(error);
 			}
-
-		work = queue;
-		while (work)
-			{
-			gchar *command = work->data;
-			work = work->next;
-
-			if (rc->read_func) rc->read_func(rc, command, rc->read_data);
-			g_free(command);
-			}
-
-		g_list_free(queue);
 		}
 
 	if (condition & G_IO_HUP || status == G_IO_STATUS_EOF || status == G_IO_STATUS_ERROR)
@@ -279,9 +264,6 @@
 	rc->fd = fd;
 	rc->path = g_strdup(path);
 
-	/* this might fix the freezes on freebsd, solaris, etc. - completely untested */
-	remote_client_send(rc, "\n");
-
 	return rc;
 }
 
@@ -296,6 +278,8 @@
 {
 	struct sigaction new_action, old_action;
 	gboolean ret = FALSE;
+	GError *error = NULL;
+	GIOChannel *channel;
 
 	if (!rc || rc->server) return FALSE;
 	if (!text) return TRUE;
@@ -309,17 +293,16 @@
 	/* setup our signal handler */
 	sigaction(SIGPIPE, &new_action, &old_action);
 
-	if (write(rc->fd, text, strlen(text)) == -1 ||
-	    write(rc->fd, "\n", 1) == -1)
+	channel = g_io_channel_unix_new(rc->fd);
+
+	g_io_channel_write_chars(channel, text, -1, NULL, &error);
+	g_io_channel_write_chars(channel, "\n", -1, NULL, &error);
+	g_io_channel_flush(channel, &error);
+
+	if (error)
 		{
-		if (sigpipe_occured)
-			{
-			log_printf("SIGPIPE writing to socket: %s\n", rc->path);
-			}
-		else
-			{
-			log_printf("error writing to socket: %s\n", strerror(errno));
-			}
+		log_printf("error reading socket: %s\n", error->message);
+		g_error_free(error);
 		ret = FALSE;;
 		}
 	else
@@ -327,9 +310,39 @@
 		ret = TRUE;
 		}
 
+	if (ret)
+		{
+		gchar *buffer = NULL;
+		gsize termpos;
+		while (g_io_channel_read_line(channel, &buffer, NULL, &termpos, &error) == G_IO_STATUS_NORMAL)
+			{
+			if (buffer)
+				{
+				if (buffer[0] == '\n') /* empty line finishes the command */
+					{
+					g_free(buffer);
+					fflush(stdout);
+					break;
+					}
+				buffer[termpos] = '\0';
+				printf("%s\n", buffer);
+				g_free(buffer);
+				buffer = NULL;
+				}
+			}
+
+		if (error)
+			{
+			log_printf("error reading socket: %s\n", error->message);
+			g_error_free(error);
+			ret = FALSE;
+			}
+		}
+		
+
 	/* restore the original signal handler */
 	sigaction(SIGPIPE, &old_action, NULL);
-
+	g_io_channel_unref(channel);
 	return ret;
 }
 
@@ -360,42 +373,42 @@
  *-----------------------------------------------------------------------------
  */
 
-static void gr_image_next(const gchar *text, gpointer data)
+static void gr_image_next(const gchar *text, GIOChannel *channel, gpointer data)
 {
 	layout_image_next(NULL);
 }
 
-static void gr_image_prev(const gchar *text, gpointer data)
+static void gr_image_prev(const gchar *text, GIOChannel *channel, gpointer data)
 {
 	layout_image_prev(NULL);
 }
 
-static void gr_image_first(const gchar *text, gpointer data)
+static void gr_image_first(const gchar *text, GIOChannel *channel, gpointer data)
 {
 	layout_image_first(NULL);
 }
 
-static void gr_image_last(const gchar *text, gpointer data)
+static void gr_image_last(const gchar *text, GIOChannel *channel, gpointer data)
 {
 	layout_image_last(NULL);
 }
 
-static void gr_fullscreen_toggle(const gchar *text, gpointer data)
+static void gr_fullscreen_toggle(const gchar *text, GIOChannel *channel, gpointer data)
 {
 	layout_image_full_screen_toggle(NULL);
 }
 
-static void gr_fullscreen_start(const gchar *text, gpointer data)
+static void gr_fullscreen_start(const gchar *text, GIOChannel *channel, gpointer data)
 {
 	layout_image_full_screen_start(NULL);
 }
 
-static void gr_fullscreen_stop(const gchar *text, gpointer data)
+static void gr_fullscreen_stop(const gchar *text, GIOChannel *channel, gpointer data)
 {
 	layout_image_full_screen_stop(NULL);
 }
 
-static void gr_slideshow_start_rec(const gchar *text, gpointer data)
+static void gr_slideshow_start_rec(const gchar *text, GIOChannel *channel, gpointer data)
 {
 	GList *list;
 	FileData *dir_fd = file_data_new_simple(text);
@@ -407,22 +420,22 @@
 	layout_image_slideshow_start_from_list(NULL, list);
 }
 
-static void gr_slideshow_toggle(const gchar *text, gpointer data)
+static void gr_slideshow_toggle(const gchar *text, GIOChannel *channel, gpointer data)
 {
 	layout_image_slideshow_toggle(NULL);
 }
 
-static void gr_slideshow_start(const gchar *text, gpointer data)
+static void gr_slideshow_start(const gchar *text, GIOChannel *channel, gpointer data)
 {
 	layout_image_slideshow_start(NULL);
 }
 
-static void gr_slideshow_stop(const gchar *text, gpointer data)
+static void gr_slideshow_stop(const gchar *text, GIOChannel *channel, gpointer data)
 {
 	layout_image_slideshow_stop(NULL);
 }
 
-static void gr_slideshow_delay(const gchar *text, gpointer data)
+static void gr_slideshow_delay(const gchar *text, GIOChannel *channel, gpointer data)
 {
 	gdouble n;
 
@@ -436,7 +449,7 @@
 	options->slideshow.delay = (gint)(n * 10.0 + 0.01);
 }
 
-static void gr_tools_show(const gchar *text, gpointer data)
+static void gr_tools_show(const gchar *text, GIOChannel *channel, gpointer data)
 {
 	gboolean popped;
 	gboolean hidden;
@@ -447,7 +460,7 @@
 		}
 }
 
-static void gr_tools_hide(const gchar *text, gpointer data)
+static void gr_tools_hide(const gchar *text, GIOChannel *channel, gpointer data)
 {
 	gboolean popped;
 	gboolean hidden;
@@ -465,7 +478,7 @@
 	return FALSE;
 }
 
-static void gr_quit(const gchar *text, gpointer data)
+static void gr_quit(const gchar *text, GIOChannel *channel, gpointer data)
 {
 	/* schedule exit when idle, if done from within a
 	 * remote handler remote_close will crash
@@ -473,7 +486,7 @@
 	g_idle_add(gr_quit_idle_cb, NULL);
 }
 
-static void gr_file_load(const gchar *text, gpointer data)
+static void gr_file_load(const gchar *text, GIOChannel *channel, gpointer data)
 {
 	gchar *filename = expand_tilde(text);
 
@@ -500,7 +513,7 @@
 	g_free(filename);
 }
 
-static void gr_config_load(const gchar *text, gpointer data)
+static void gr_config_load(const gchar *text, GIOChannel *channel, gpointer data)
 {
 	gchar *filename = expand_tilde(text);
 
@@ -516,7 +529,43 @@
 	g_free(filename);
 }
 
-static void gr_file_view(const gchar *text, gpointer data)
+static void gr_get_sidecars(const gchar *text, GIOChannel *channel, gpointer data)
+{
+	gchar *filename = expand_tilde(text);
+	FileData *fd = file_data_new_simple(filename);
+	
+	GList *work;
+	if (fd->parent) fd = fd->parent;
+
+	g_io_channel_write_chars(channel, fd->path, -1, NULL, NULL);
+	g_io_channel_write_chars(channel, "\n", -1, NULL, NULL);
+
+	work = fd->sidecar_files;
+
+	while (work)
+		{
+		fd = work->data;
+		work = work->next;
+		g_io_channel_write_chars(channel, fd->path, -1, NULL, NULL);
+		g_io_channel_write_chars(channel, "\n", -1, NULL, NULL);
+		}
+	g_free(filename);
+}
+
+static void gr_get_destination(const gchar *text, GIOChannel *channel, gpointer data)
+{
+	gchar *filename = expand_tilde(text);
+	FileData *fd = file_data_new_simple(filename);
+	
+	if (fd->change && fd->change->dest)
+		{
+		g_io_channel_write_chars(channel, fd->change->dest, -1, NULL, NULL);
+		g_io_channel_write_chars(channel, "\n", -1, NULL, NULL);
+		}
+	g_free(filename);
+}
+
+static void gr_file_view(const gchar *text, GIOChannel *channel, gpointer data)
 {
 	gchar *filename = expand_tilde(text);
 
@@ -524,7 +573,7 @@
 	g_free(filename);
 }
 
-static void gr_list_clear(const gchar *text, gpointer data)
+static void gr_list_clear(const gchar *text, GIOChannel *channel, gpointer data)
 {
 	RemoteData *remote_data = data;
 
@@ -535,7 +584,7 @@
 		}
 }
 
-static void gr_list_add(const gchar *text, gpointer data)
+static void gr_list_add(const gchar *text, GIOChannel *channel, gpointer data)
 {
 	RemoteData *remote_data = data;
 	gboolean new = TRUE;
@@ -565,7 +614,7 @@
 		}
 }
 
-static void gr_raise(const gchar *text, gpointer data)
+static void gr_raise(const gchar *text, GIOChannel *channel, gpointer data)
 {
 	LayoutWindow *lw = NULL;
 
@@ -579,7 +628,7 @@
 struct _RemoteCommandEntry {
 	gchar *opt_s;
 	gchar *opt_l;
-	void (*func)(const gchar *text, gpointer data);
+	void (*func)(const gchar *text, GIOChannel *channel, gpointer data);
 	gboolean needs_extra;
 	gboolean prefer_command_line;
 	gchar *description;
@@ -603,6 +652,8 @@
 	{ "-t", "--tools-hide",	        gr_tools_hide,          FALSE, TRUE,  N_("hide tools") },
 	{ "-q", "--quit",               gr_quit,                FALSE, FALSE, N_("quit") },
 	{ NULL, "--config-load:",       gr_config_load,         TRUE,  FALSE, N_("load config file") },
+	{ NULL, "--get-sidecars:",      gr_get_sidecars,        TRUE,  FALSE, N_("get list of sidecars of the given file") },
+	{ NULL, "--get-destination:",  	gr_get_destination,     TRUE,  FALSE, N_("get destination path for the given file") },
 	{ NULL, "file:",                gr_file_load,           TRUE,  FALSE, N_("open file") },
 	{ NULL, "view:",		gr_file_view,		TRUE,  FALSE, N_("open file in new window") },
 	{ NULL, "--list-clear",         gr_list_clear,          FALSE, FALSE, NULL },
@@ -650,7 +701,7 @@
 	return NULL;
 }
 
-static void remote_cb(RemoteConnection *rc, const gchar *text, gpointer data)
+static void remote_cb(RemoteConnection *rc, const gchar *text, GIOChannel *channel, gpointer data)
 {
 	RemoteCommandEntry *entry;
 	const gchar *offset;
@@ -658,7 +709,7 @@
 	entry = remote_command_find(text, &offset);
 	if (entry && entry->func)
 		{
-		entry->func(offset, data);
+		entry->func(offset, channel, data);
 		}
 	else
 		{
--- a/src/remote.h	Fri May 01 15:49:06 2009 +0900
+++ b/src/remote.h	Fri May 01 15:49:32 2009 +0900
@@ -17,7 +17,7 @@
 
 typedef struct _RemoteConnection RemoteConnection;
 
-typedef void RemoteReadFunc(RemoteConnection *rc, const gchar *text, gpointer data);
+typedef void RemoteReadFunc(RemoteConnection *rc, const gchar *text, GIOChannel *channel, gpointer data);
 
 struct _RemoteConnection {
 	gint server;
--- a/src/thumb.c	Fri May 01 15:49:06 2009 +0900
+++ b/src/thumb.c	Fri May 01 15:49:32 2009 +0900
@@ -142,7 +142,7 @@
 		{
 		if (!tl->fd->exif_orientation)
 			{
-			tl->fd->exif_orientation = metadata_read_int(tl->fd, "Exif.Image.Orientation", EXIF_ORIENTATION_TOP_LEFT);
+			tl->fd->exif_orientation = metadata_read_int(tl->fd, ORIENTATION_KEY, EXIF_ORIENTATION_TOP_LEFT);
 			}
 		
 		if (tl->fd->exif_orientation != EXIF_ORIENTATION_TOP_LEFT)
--- a/src/thumb_standard.c	Fri May 01 15:49:06 2009 +0900
+++ b/src/thumb_standard.c	Fri May 01 15:49:32 2009 +0900
@@ -388,7 +388,7 @@
 		{
 		if (!tl->fd->exif_orientation)
 			{
-			tl->fd->exif_orientation = metadata_read_int(tl->fd, "Exif.Image.Orientation", EXIF_ORIENTATION_TOP_LEFT);
+			tl->fd->exif_orientation = metadata_read_int(tl->fd, ORIENTATION_KEY, EXIF_ORIENTATION_TOP_LEFT);
 			}
 		
 		if (tl->fd->exif_orientation != EXIF_ORIENTATION_TOP_LEFT)
--- a/src/ui_fileops.c	Fri May 01 15:49:06 2009 +0900
+++ b/src/ui_fileops.c	Fri May 01 15:49:32 2009 +0900
@@ -44,7 +44,7 @@
 	gchar *text_l;
 
 	text_l = g_locale_from_utf8(text_utf8, -1, NULL, NULL, NULL);
-	fputs((text_l) ? text_l : text_utf8, stdout);
+	fputs((text_l) ? text_l : text_utf8, stderr);
 	g_free(text_l);
 }
 
--- a/src/utilops.c	Fri May 01 15:49:06 2009 +0900
+++ b/src/utilops.c	Fri May 01 15:49:32 2009 +0900
@@ -32,6 +32,7 @@
 #include "ui_tabcomp.h"
 #include "editors.h"
 #include "metadata.h"
+#include "exif.h"
 
 static GdkPixbuf *file_util_get_error_icon(FileData *fd, GtkWidget *widget);
 
@@ -251,7 +252,8 @@
 	UTILITY_PHASE_ENTERING,
 	UTILITY_PHASE_CHECKED,
 	UTILITY_PHASE_DONE,
-	UTILITY_PHASE_CANCEL
+	UTILITY_PHASE_CANCEL,
+	UTILITY_PHASE_DISCARD
 } UtilityPhase;
 
 enum {
@@ -278,6 +280,8 @@
 	FileData *dir_fd;
 	GList *content_list;
 	GList *flist;
+	
+	FileData *sel_fd;
 
 	GtkWidget *parent;
 	GenericDialog *gd;
@@ -315,6 +319,9 @@
 	gpointer resume_data;
 	
 	FileUtilDoneFunc done_func;
+	void (*details_func)(UtilityData *ud, FileData *fd);
+	gboolean (*finalize_func)(FileData *fd);
+	gboolean (*discard_func)(FileData *fd);
 	gpointer done_data;
 };
 
@@ -556,10 +563,9 @@
 		
 		ud->flist = g_list_remove(ud->flist, fd);
 		
-		/* FIXME: put it here for now */
-		if (ud->type == UTILITY_TYPE_WRITE_METADATA)
+		if (ud->finalize_func)
 			{
-			metadata_write_queue_remove(fd);
+			ud->finalize_func(fd);
 			}
 
 		if (ud->with_sidecars) 
@@ -987,6 +993,18 @@
 	file_util_dialog_run(ud);
 }
 
+static void file_util_discard_cb(GenericDialog *gd, gpointer data)
+{
+	UtilityData *ud = data;
+	
+	generic_dialog_close(gd);
+
+	ud->gd = NULL;
+	
+	ud->phase = UTILITY_PHASE_DISCARD;
+	file_util_dialog_run(ud);
+}
+
 static void file_util_ok_cb(GenericDialog *gd, gpointer data)
 {
 	UtilityData *ud = data;
@@ -1252,6 +1270,8 @@
 	gtk_tree_model_get(store, &iter, UTILITY_COLUMN_FD, &fd, -1);
 	generic_dialog_image_set(ud->gd, fd);
 	
+	ud->sel_fd = fd;
+	
 	if (ud->type == UTILITY_TYPE_RENAME)
 		{
 		const gchar *name = filename_from_path(fd->change->dest);
@@ -1282,6 +1302,14 @@
 	gtk_widget_set_sensitive(label, FALSE);
 }
 
+static void file_util_details_cb(GenericDialog *gd, gpointer data)
+{
+	UtilityData *ud = data;
+	if (ud->details_func && ud->sel_fd)
+		{
+		ud->details_func(ud, ud->sel_fd);
+		}
+}
 
 static void file_util_dialog_init_simple_list(UtilityData *ud)
 {
@@ -1291,6 +1319,7 @@
 
 	const gchar *stock_id;
 
+	/* FIXME: use ud->stock_id */
 	if (ud->type == UTILITY_TYPE_DELETE ||
 	    ud->type == UTILITY_TYPE_DELETE_LINK ||
 	    ud->type == UTILITY_TYPE_DELETE_FOLDER)
@@ -1304,9 +1333,11 @@
 
 	ud->gd = file_util_gen_dlg(ud->messages.title, "dlg_confirm",
 				   ud->parent, FALSE,  file_util_cancel_cb, ud);
+	if (ud->discard_func) generic_dialog_add_button(ud->gd, GTK_STOCK_REVERT_TO_SAVED, _("Discard changes"), file_util_discard_cb, FALSE);
+	if (ud->details_func) generic_dialog_add_button(ud->gd, GTK_STOCK_INFO, _("File details"), file_util_details_cb, FALSE);
+
 	generic_dialog_add_button(ud->gd, stock_id, NULL, file_util_ok_cb, TRUE);
 
-
 	if (ud->dir_fd)
 		{
 		dir_msg = g_strdup_printf("%s\n\n%s\n", ud->messages.desc_source_fd, ud->dir_fd->path);
@@ -1414,6 +1445,10 @@
 				   ud->parent, FALSE,  file_util_cancel_cb, ud);
 
 	box = generic_dialog_add_message(ud->gd, NULL, ud->messages.question, NULL);
+
+	if (ud->discard_func) generic_dialog_add_button(ud->gd, GTK_STOCK_REVERT_TO_SAVED, _("Discard changes"), file_util_discard_cb, FALSE);
+	if (ud->details_func) generic_dialog_add_button(ud->gd, GTK_STOCK_INFO, _("File details"), file_util_details_cb, FALSE);
+
 	generic_dialog_add_button(ud->gd, GTK_STOCK_OK, ud->messages.title, file_util_ok_cb, TRUE);
 
 	box = pref_group_new(box, TRUE, ud->messages.desc_flist, GTK_ORIENTATION_HORIZONTAL);
@@ -1529,6 +1564,56 @@
 	file_util_dialog_list_select(ud->listview, 0);
 }
 
+static void file_util_finalize_all(UtilityData *ud)
+{
+	GList *work = ud->flist;
+	
+	if (ud->phase == UTILITY_PHASE_CANCEL) return;
+	if (ud->phase == UTILITY_PHASE_DONE && !ud->finalize_func) return;
+	if (ud->phase == UTILITY_PHASE_DISCARD && !ud->discard_func) return;
+	
+	while (work)
+		{
+		FileData *fd = work->data;
+		work = work->next;
+		if (ud->phase == UTILITY_PHASE_DONE) ud->finalize_func(fd);
+		else if (ud->phase == UTILITY_PHASE_DISCARD) ud->discard_func(fd);
+		}
+}
+
+static gboolean file_util_exclude_fd(UtilityData *ud, FileData *fd)
+{
+	GtkTreeModel *store;
+	GtkTreeIter iter;
+	gboolean valid;
+
+	if (!g_list_find(ud->flist, fd)) return FALSE;
+
+	store = gtk_tree_view_get_model(GTK_TREE_VIEW(ud->listview));
+	valid = gtk_tree_model_get_iter_first(store, &iter);
+	while (valid)
+		{
+		FileData *store_fd;
+		gtk_tree_model_get(store, &iter, UTILITY_COLUMN_FD, &store_fd, -1);
+
+		if (store_fd == fd)
+			{
+			gtk_list_store_remove(GTK_LIST_STORE(store), &iter);
+			break;
+			}
+		valid = gtk_tree_model_iter_next(store, &iter);
+		}
+
+	ud->flist = g_list_remove(ud->flist, fd);
+
+	if (ud->with_sidecars)
+		file_data_sc_free_ci(fd);
+	else
+		file_data_free_ci(fd);
+	
+	file_data_unref(fd);
+	return TRUE;
+}
 
 void file_util_dialog_run(UtilityData *ud)
 {
@@ -1571,15 +1656,13 @@
 			break;
 		case UTILITY_PHASE_CANCEL:
 		case UTILITY_PHASE_DONE:
-
-			/* FIXME: put it here for now */
-			if (ud->type == UTILITY_TYPE_WRITE_METADATA)
-				{
-				metadata_write_queue_remove_list(ud->flist);
-				}
+		case UTILITY_PHASE_DISCARD:
+
+			file_util_finalize_all(ud);
 			
+			/* both DISCARD and DONE finishes the operation for good */
 			if (ud->done_func)
-				ud->done_func((ud->phase == UTILITY_PHASE_DONE), ud->dest_path, ud->done_data);
+				ud->done_func((ud->phase != UTILITY_PHASE_CANCEL), ud->dest_path, ud->done_data);
 				
 			if (ud->with_sidecars)
 				file_data_sc_free_ci_list(ud->flist);
@@ -1617,6 +1700,223 @@
 		
 }
 
+static void file_util_details_dialog_close_cb(GtkWidget *widget, gpointer data)
+{
+	gtk_widget_destroy(data);
+
+}
+
+static void file_util_details_dialog_destroy_cb(GtkWidget *widget, gpointer data)
+{
+	UtilityData *ud = data;
+	g_signal_handlers_disconnect_by_func(ud->gd->dialog, G_CALLBACK(file_util_details_dialog_close_cb), widget);
+}
+
+
+static void file_util_details_dialog_ok_cb(GenericDialog *gd, gpointer data)
+{
+	/* no op */
+}
+
+static void file_util_details_dialog_exclude(GenericDialog *gd, gpointer data, gboolean discard)
+{
+	UtilityData *ud = data;
+	FileData *fd = g_object_get_data(G_OBJECT(gd->dialog), "file_data");
+	
+	if (!fd) return;
+	file_util_exclude_fd(ud, fd);
+	
+	if (discard && ud->discard_func) ud->discard_func(fd);
+	
+	/* all files were excluded, this has the same effect as pressing the cancel button in the confirmation dialog*/
+	if (!ud->flist) 
+		{
+		/* both dialogs will be closed anyway, the signals would cause duplicate calls */
+		g_signal_handlers_disconnect_by_func(ud->gd->dialog, G_CALLBACK(file_util_details_dialog_close_cb), gd->dialog);
+		g_signal_handlers_disconnect_by_func(gd->dialog, G_CALLBACK(file_util_details_dialog_destroy_cb), ud);
+
+		file_util_cancel_cb(ud->gd, ud);
+		}
+}
+
+static void file_util_details_dialog_exclude_cb(GenericDialog *gd, gpointer data)
+{
+	file_util_details_dialog_exclude(gd, data, FALSE);
+}
+
+static void file_util_details_dialog_discard_cb(GenericDialog *gd, gpointer data)
+{
+	file_util_details_dialog_exclude(gd, data, TRUE);
+}
+
+static gchar *file_util_details_get_message(UtilityData *ud, FileData *fd, const gchar **stock_id)
+{
+	GString *message = g_string_new("");
+	gint error;
+	g_string_append_printf(message, _("File: '%s'\n"), fd->path);
+	
+	if (ud->with_sidecars && fd->sidecar_files)
+		{
+		GList *work = fd->sidecar_files;
+		g_string_append(message, _("with sidecar files:\n"));
+		
+		while (work)
+			{
+			FileData *sfd = work->data;
+			work =work->next;
+			g_string_append_printf(message, _(" '%s'\n"), sfd->path);
+			}
+		}
+	
+	g_string_append(message, _("\nStatus: "));
+	
+	error = ud->with_sidecars ? file_data_sc_verify_ci(fd) : file_data_verify_ci(fd);
+
+	if (error)
+		{
+		gchar *err_msg = file_data_get_error_string(error);
+		g_string_append(message, err_msg);
+		if (stock_id) *stock_id = (error & CHANGE_ERROR_MASK) ? GTK_STOCK_DIALOG_ERROR : GTK_STOCK_DIALOG_WARNING;
+		}
+	else
+		{
+		g_string_append(message, _("no problem detected"));
+		if (stock_id) *stock_id = GTK_STOCK_DIALOG_INFO;
+		}
+
+	return g_string_free(message, FALSE);;
+}
+
+static void file_util_details_dialog(UtilityData *ud, FileData *fd)
+{
+	GenericDialog *gd;
+	GtkWidget *box;
+	gchar *message;
+	const gchar *stock_id;
+	
+	gd = file_util_gen_dlg(_("File details"), "details", ud->gd->dialog, TRUE, NULL, ud);
+	generic_dialog_add_button(gd, GTK_STOCK_CLOSE, NULL, file_util_details_dialog_ok_cb, TRUE);
+	generic_dialog_add_button(gd, GTK_STOCK_REMOVE, _("Exclude file"), file_util_details_dialog_exclude_cb, FALSE);
+
+	g_object_set_data(G_OBJECT(gd->dialog), "file_data", fd);
+
+	g_signal_connect(G_OBJECT(gd->dialog), "destroy",
+			 G_CALLBACK(file_util_details_dialog_destroy_cb), ud);
+
+	/* in case the ud->gd->dialog is closed during editing */
+	g_signal_connect(G_OBJECT(ud->gd->dialog), "destroy",
+			 G_CALLBACK(file_util_details_dialog_close_cb), gd->dialog);
+
+
+	message = file_util_details_get_message(ud, fd, &stock_id);
+
+	box = generic_dialog_add_message(gd, stock_id, _("File details"), message);
+
+	generic_dialog_add_image(gd, box, fd, NULL, NULL, NULL, FALSE);
+
+	gtk_widget_show(gd->dialog);
+	
+	g_free(message);
+}
+
+static void file_util_write_metadata_details_dialog(UtilityData *ud, FileData *fd)
+{
+	GenericDialog *gd;
+	GtkWidget *box;
+	GtkWidget *table;
+	GtkWidget *frame;
+	GList *keys = NULL;
+	GList *work;
+	gchar *message1;
+	gchar *message2;
+	gint i;
+	const gchar *stock_id;
+	
+	if (fd && fd->modified_xmp)
+		{
+		keys = hash_table_get_keys(fd->modified_xmp);
+		}
+	
+	g_assert(keys);
+	
+	
+	gd = file_util_gen_dlg(_("Overview of changed metadata"), "details", ud->gd->dialog, TRUE, NULL, ud);
+	generic_dialog_add_button(gd, GTK_STOCK_CLOSE, NULL, file_util_details_dialog_ok_cb, TRUE);
+	generic_dialog_add_button(gd, GTK_STOCK_REMOVE, _("Exclude file"), file_util_details_dialog_exclude_cb, FALSE);
+	generic_dialog_add_button(gd, GTK_STOCK_REVERT_TO_SAVED, _("Discard changes"), file_util_details_dialog_discard_cb, FALSE);
+
+	g_object_set_data(G_OBJECT(gd->dialog), "file_data", fd);
+
+	g_signal_connect(G_OBJECT(gd->dialog), "destroy",
+			 G_CALLBACK(file_util_details_dialog_destroy_cb), ud);
+
+	/* in case the ud->gd->dialog is closed during editing */
+	g_signal_connect(G_OBJECT(ud->gd->dialog), "destroy",
+			 G_CALLBACK(file_util_details_dialog_close_cb), gd->dialog);
+
+	message1 = file_util_details_get_message(ud, fd, &stock_id);
+
+	if (fd->change && fd->change->dest)
+		{
+		message2 = g_strdup_printf(_("The following metadata tags will be written to '%s'."), fd->change->dest);
+		}
+	else
+		{
+		message2 = g_strdup_printf(_("The following metadata tags will be written to the image file itself."));
+		}
+
+	box = generic_dialog_add_message(gd, stock_id, _("Overview of changed metadata"), message1);
+
+	box = pref_group_new(box, TRUE, message2, GTK_ORIENTATION_HORIZONTAL);
+
+	frame = pref_frame_new(box, TRUE, NULL, GTK_ORIENTATION_HORIZONTAL, 2);
+	table = pref_table_new(frame, 2, g_list_length(keys), FALSE, TRUE);
+
+	work = keys;
+	i = 0;
+	while (work)
+		{
+		GtkWidget *label;
+		const gchar *key = work->data;
+		gchar *title = exif_get_description_by_key(key);
+		gchar *title_f = g_strdup_printf("%s:", title);
+		gchar *value = metadata_read_string(fd, key, METADATA_FORMATTED);
+		work = work->next;
+		
+		
+		label = gtk_label_new(title_f);
+		gtk_misc_set_alignment(GTK_MISC(label), 1.0, 0.0);
+		pref_label_bold(label, TRUE, FALSE);
+		gtk_table_attach(GTK_TABLE(table), label,
+				 0, 1, i, i + 1,
+				 GTK_FILL, GTK_FILL,
+				 2, 2);
+		gtk_widget_show(label);
+
+		label = gtk_label_new(value);
+		
+		gtk_misc_set_alignment(GTK_MISC(label), 0.0, 0.0);
+		gtk_table_attach(GTK_TABLE(table), label,
+				 1, 2, i, i + 1,
+				 GTK_FILL, GTK_FILL,
+				 2, 2);
+		gtk_widget_show(label);
+
+		g_free(title);
+		g_free(title_f);
+		g_free(value);
+		i++;
+		}
+
+	generic_dialog_add_image(gd, box, fd, NULL, NULL, NULL, FALSE);
+
+	gtk_widget_show(gd->dialog);
+	
+	g_list_free(keys);
+	g_free(message1);
+	g_free(message2);
+}
+
 static void file_util_delete_full(FileData *source_fd, GList *source_list, GtkWidget *parent, UtilityPhase phase)
 {
 	UtilityData *ud;
@@ -1647,7 +1947,9 @@
 	ud->content_list = NULL;
 	ud->parent = parent;
 	
-	ud->messages.title = pgettext("physical","Delete");
+	ud->details_func = file_util_details_dialog;
+
+	ud->messages.title = (gchar *)pgettext("physical","Delete");
 	ud->messages.question = _("Delete files?");
 	ud->messages.desc_flist = _("This will delete the following files");
 	ud->messages.desc_source_fd = "";
@@ -1656,6 +1958,7 @@
 	file_util_dialog_run(ud);
 }
 
+
 static void file_util_write_metadata_full(FileData *source_fd, GList *source_list, GtkWidget *parent, UtilityPhase phase, FileUtilDoneFunc done_func, gpointer done_data)
 {
 	UtilityData *ud;
@@ -1687,6 +1990,10 @@
 	ud->done_func = done_func;
 	ud->done_data = done_data;
 	
+	ud->details_func = file_util_write_metadata_details_dialog;
+	ud->finalize_func = metadata_write_queue_remove;
+	ud->discard_func = metadata_write_queue_remove;
+	
 	ud->messages.title = _("Write metadata");
 	ud->messages.question = _("Write metadata?");
 	ud->messages.desc_flist = _("This will write the changed metadata into the following files");
@@ -1808,6 +2115,8 @@
 	ud->flist = flist;
 	ud->content_list = NULL;
 	ud->parent = parent;
+
+	ud->details_func = file_util_details_dialog;
 	
 	ud->messages.title = _("Rename");
 	ud->messages.question = _("Rename files?");
@@ -1857,6 +2166,8 @@
 	ud->content_list = NULL;
 	ud->parent = parent;
 
+	ud->details_func = file_util_details_dialog;
+
 	if (dest_path) ud->dest_path = g_strdup(dest_path);
 	
 	ud->messages.title = _("Editor");
--- a/src/view_dir.c	Fri May 01 15:49:06 2009 +0900
+++ b/src/view_dir.c	Fri May 01 15:49:32 2009 +0900
@@ -229,7 +229,7 @@
 	GtkTreePath *tpath;
 	GtkTreeIter iter;
 
-	if (!fd || vd_find_row(vd, fd, &iter) < 0) return;
+	if (!fd || !vd_find_row(vd, fd, &iter)) return;
 	store = gtk_tree_view_get_model(GTK_TREE_VIEW(vd->view));
 	tpath = gtk_tree_model_get_path(store, &iter);
 
@@ -244,7 +244,7 @@
 	GtkTreeModel *store;
 	GtkTreeIter iter;
 
-	if (vd_find_row(vd, fd, &iter) < 0) return;
+	if (!vd_find_row(vd, fd, &iter)) return;
 	store = gtk_tree_view_get_model(GTK_TREE_VIEW(vd->view));
 
 	switch (vd->type)
@@ -917,7 +917,7 @@
 	GtkTreePath *tpath;
 	gint cw, ch;
 
-	if (vd_find_row(vd, vd->click_fd, &iter) < 0) return;
+	if (!vd_find_row(vd, vd->click_fd, &iter)) return;
 	store = gtk_tree_view_get_model(GTK_TREE_VIEW(vd->view));
 	tpath = gtk_tree_model_get_path(store, &iter);
 	tree_view_get_cell_clamped(GTK_TREE_VIEW(vd->view), tpath, 0, TRUE, x, y, &cw, &ch);
--- a/src/view_dir_list.c	Fri May 01 15:49:06 2009 +0900
+++ b/src/view_dir_list.c	Fri May 01 15:49:32 2009 +0900
@@ -96,7 +96,7 @@
 {
 	GtkTreeIter iter;
 
-	if (GTK_WIDGET_REALIZED(vd->view) && vd_find_row(vd, fd, &iter) >= 0)
+	if (GTK_WIDGET_REALIZED(vd->view) && vd_find_row(vd, fd, &iter))
 		{
 		GtkTreeModel *store;
 		GtkTreePath *tpath;