=== added file 'src/Imaging/MediaFile.cs'
--- src/Imaging/MediaFile.cs	1970-01-01 00:00:00 +0000
+++ src/Imaging/MediaFile.cs	2008-02-27 12:25:15 +0000
@@ -0,0 +1,206 @@
+using System;
+using System.IO;
+using FSpot.Utils;
+
+namespace FSpot {
+	public class MediaFile: IDisposable {
+		protected Uri uri;
+		static System.Collections.Hashtable name_table;
+
+		protected MediaFile (string path)
+		{
+			this.uri = UriUtils.PathToFileUri (path);
+		}
+
+		protected MediaFile (Uri uri)
+		{
+			this.uri = uri;
+		}
+
+		static MediaFile ()
+		{
+			// image
+			name_table = new System.Collections.Hashtable ();
+			name_table [".svg"] = typeof (FSpot.Svg.SvgFile);
+			name_table [".gif"] = typeof (ImageFile);
+			name_table [".bmp"] = typeof (ImageFile);
+			name_table [".jpeg"] = typeof (JpegFile);
+			name_table [".jpg"] = typeof (JpegFile);
+			name_table [".png"] = typeof (FSpot.Png.PngFile);
+			name_table [".cr2"] = typeof (FSpot.Tiff.Cr2File);
+			name_table [".nef"] = typeof (FSpot.Tiff.NefFile);
+			name_table [".pef"] = typeof (FSpot.Tiff.NefFile);
+			name_table [".raw"] = typeof (FSpot.Tiff.NefFile);
+			name_table [".kdc"] = typeof (FSpot.Tiff.NefFile);
+			name_table [".tiff"] = typeof (FSpot.Tiff.TiffFile);
+			name_table [".tif"] = typeof (FSpot.Tiff.TiffFile);
+			name_table [".orf"] =  typeof (FSpot.Tiff.NefFile);
+			name_table [".srf"] = typeof (FSpot.Tiff.NefFile);
+			name_table [".dng"] = typeof (FSpot.Tiff.DngFile);
+			name_table [".crw"] = typeof (FSpot.Ciff.CiffFile);
+			name_table [".ppm"] = typeof (FSpot.Pnm.PnmFile);
+			name_table [".mrw"] = typeof (FSpot.Mrw.MrwFile);
+			name_table [".raf"] = typeof (FSpot.Raf.RafFile);
+			name_table [".x3f"] = typeof (FSpot.X3f.X3fFile);
+			// video
+			name_table [".avi"] = typeof (VideoFile);
+			name_table [".mov"] = typeof (VideoFile);
+			name_table [".mpeg"] = typeof (VideoFile);
+			name_table [".mpg"] = typeof (VideoFile);
+		}
+
+		public static MediaFile Create (string path)
+		{
+			return Create (UriUtils.PathToFileUri (path));
+		}
+
+		public static MediaFile Create (Uri uri)
+		{
+			string path = uri.AbsolutePath;
+			string extension = System.IO.Path.GetExtension (path).ToLower ();
+			System.Type t = (System.Type) name_table [extension];
+			if (t == typeof (VideoFile)) {
+				string canon_thumbnail = System.IO.Path.ChangeExtension (path, "thm");
+				if (System.IO.File.Exists (canon_thumbnail))
+					t = typeof (VideoCanonFile);
+			}
+			MediaFile med;
+
+			if (t != null)
+				med = (MediaFile) System.Activator.CreateInstance (t, new object [] { uri });
+			else 
+				med = new MediaFile (uri);
+
+			return med;
+		}
+
+		protected Stream Open ()
+		{
+			//Gnome.Vfs.Uri vfs = new Gnome.Vfs.Uri (uri.ToString ());
+			// FIXME, this seems like the sane thing to do, but vfs streams seem to 
+			// actually be faster and they need more testing.
+			//if (vfs.IsLocal)
+			//	return File.OpenRead (uri.LocalPath);
+
+			return new Gnome.Vfs.VfsStream (uri.ToString (), FileMode.Open);
+		}
+
+		public virtual Stream PixbufStream ()
+		{
+			return Open ();
+		}
+
+		public Uri Uri {
+			get { return this.uri; }
+		}
+
+		public static System.Type GetType (Uri uri)
+		{
+			string extension = System.IO.Path.GetExtension (uri.AbsolutePath).ToLower ();
+			return (System.Type) name_table [extension];
+		}
+
+		public virtual string Description {
+			get { return null; }
+		}
+
+		public virtual void Save (Gdk.Pixbuf pixbuf, System.IO.Stream stream)
+		{
+			throw new NotImplementedException ();
+		}
+
+		public virtual Gdk.Pixbuf Load ()
+		{
+			return null;
+		}
+		
+		public virtual Gdk.Pixbuf Load (int max_width, int max_height)
+		{
+			return null;
+		}
+
+		public virtual PixbufOrientation GetOrientation () 
+		{
+			return PixbufOrientation.TopLeft;
+		}
+
+		public PixbufOrientation Orientation {
+			get { return GetOrientation (); }
+		}
+
+		// FIXME this need to have an intent just like the loading stuff.
+		public virtual Cms.Profile GetProfile ()
+		{
+			return null;
+		}
+
+		public virtual System.DateTime Date {
+			get {
+				// FIXME mono uses the file change time (ctime) incorrectly
+				// as the creation time so we try to work around that slightly
+				Gnome.Vfs.FileInfo info = new Gnome.Vfs.FileInfo (uri.ToString ());
+
+				DateTime create = info.Ctime;
+				DateTime write = info.Mtime;
+
+				if (create < write)
+					return create;
+				else 
+					return write;
+			}
+		}
+		
+		public virtual void SetOrientation (PixbufOrientation orientation)
+		{
+			throw new NotSupportedException ();
+		}
+			
+		public virtual Gdk.Pixbuf Print (Gdk.Pixbuf image)
+		{
+			throw new NotSupportedException();
+		}
+
+		public static bool HasLoader (string path)
+		{
+			return HasLoader (UriUtils.PathToFileUri (path));
+		}
+		
+		public static bool HasLoader (Uri uri)
+		{
+			string path = uri.AbsolutePath;
+			string extension = System.IO.Path.GetExtension (path).ToLower ();
+			System.Type t = (System.Type) name_table [extension];
+			
+			return (t != null);
+		}
+		
+		// FIXME these are horrible hacks to get a temporary name
+		// with the right extension for ImageFile until we use the mime data
+		// properly.  It is here to make sure we can find the places that use
+		// this hack
+		public static string TempPath (string name)
+		{
+			return TempPath (name, System.IO.Path.GetExtension (name));
+		}
+		
+		public static string TempPath (string name, string extension)
+		{
+			string temp = System.IO.Path.GetTempFileName ();
+			string imgtemp = temp + "." + extension;
+
+			System.IO.File.Move (temp, imgtemp);
+
+			return imgtemp;
+		}
+
+		public void Dispose ()
+		{
+			Close ();
+			GC.SuppressFinalize (this);
+		}
+
+		protected virtual void Close ()
+		{
+		}
+	}
+}

=== added file 'src/Imaging/VideoCanonFile.cs'
--- src/Imaging/VideoCanonFile.cs	1970-01-01 00:00:00 +0000
+++ src/Imaging/VideoCanonFile.cs	2008-02-27 11:46:37 +0000
@@ -0,0 +1,342 @@
+/*
+ * VideoCanonFile.cs
+ *
+ * Author(s):
+	Silvano Cirujano-Cuesta <silvanociru@gmail.com>
+ * 
+ * This is free software. See COPYING for details.
+ */
+ 
+using System;
+using System.IO;
+using FSpot.Tiff;
+using FSpot.Xmp;
+using FSpot.Utils;
+
+namespace FSpot {
+	public class VideoCanonFile : VideoFile, SemWeb.StatementSource {
+		private Exif.ExifData exif_data;
+		private JpegHeader header;
+		private XmpFile xmp;
+		private FSpot.Tiff.Header exif_header;
+		
+		// constructors
+		public VideoCanonFile (Uri uri) : base (uri)
+		{
+		}
+		
+		public VideoCanonFile (string path) : base (path)
+		{
+		}
+		
+		// creators
+		public static new VideoCanonFile Create (string path)
+		{
+			return Create (UriUtils.PathToFileUri (path));
+		}
+		
+		public static new VideoCanonFile Create (Uri uri)
+		{
+			return (VideoCanonFile) VideoFile.Create (uri);
+		}
+		
+                // False seems a safe default
+                public bool Distinct {
+                        get { return false; }
+                }
+		
+#if USE_THM_THUMBNAILS
+		public override Gdk.Pixbuf Load ()
+		{
+			return this.Load (120,120);
+		}
+		
+		//get thumbnail of the video
+		public override Gdk.Pixbuf Load (int max_width, int max_height)
+		{
+			Gdk.Pixbuf pixbuf = null;
+			try {
+				string thumbnail = System.IO.Path.ChangeExtension (this.uri.AbsolutePath, "thm");
+				pixbuf = new Gdk.Pixbuf (thumbnail);
+			} catch (System.Exception e) {
+				System.Console.WriteLine (e.ToString ());
+			}
+			return pixbuf;
+		}
+#endif
+		
+		// get metadata of the video
+		public JpegHeader Header {
+			get {
+				if (header == null) {
+					string thmHeader = Path.ChangeExtension (this.uri.AbsolutePath, "thm");
+					using (Stream stream = new Gnome.Vfs.VfsStream (thmHeader, FileMode.Open)) {
+						header = new JpegHeader (stream, true);
+					}
+				}
+				return header;
+			}
+		}
+		
+		public FSpot.Tiff.Header ExifHeader {
+			get {
+				if (exif_header == null) {
+					exif_header = Header.GetExifHeader ();
+				}
+				return exif_header;
+			}
+		}
+		
+		public void Select (SemWeb.StatementSink sink)
+		{
+			Header.Select (sink);
+		}
+
+		// get video description
+		public override string Description {
+			get {
+#if USE_TIFF
+				try {
+					SubdirectoryEntry sub = (SubdirectoryEntry) ExifHeader.Directory.Lookup (TagId.ExifIfdPointer);
+					if (sub != null) {
+						DirectoryEntry entry = sub.Directory [0].Lookup (TagId.UserComment);
+						if (entry != null)
+							return entry.ValueAsString [0];
+					}
+				} catch (System.Exception e) {
+					Console.WriteLine (e);
+				}
+				return null;
+#else
+				try {
+					Exif.ExifContent exif_content = this.ExifData.GetContents (Exif.Ifd.Exif);
+					Exif.ExifEntry entry = exif_content.Lookup (Exif.Tag.UserComment);
+					
+					if (entry == null)
+						return null;
+					
+					UserComment comment = new UserComment (entry.Data, entry.ByteOrder == Exif.ByteOrder.Intel);
+					return comment.Value;
+				} catch (Exception e) {
+					// errors here shouldn't be fatal
+					return null;
+				}
+#endif				
+			}
+		}
+		
+		public void SetDescription (string value)
+		{
+			Exif.ExifContent exif_content = this.ExifData.GetContents (Exif.Ifd.Exif);			
+			Exif.ExifEntry entry = exif_content.GetEntry (Exif.Tag.UserComment);
+
+			UserComment comment = new UserComment (value);
+			byte [] data = comment.GetBytes (entry.ByteOrder == Exif.ByteOrder.Intel);
+			entry.SetData (data);
+		}
+		
+		public void SetXmp (XmpFile xmp)
+		{
+			this.xmp = xmp;
+		}
+
+		private void UpdateMeta ()
+		{
+			Exif.ExifContent image_content = this.ExifData.GetContents (Exif.Ifd.Zero);
+			image_content.GetEntry (Exif.Tag.Software).SetData (FSpot.Defines.PACKAGE + " version " + FSpot.Defines.VERSION);
+
+			// set the write time in the datetime tag
+			image_content.GetEntry (Exif.Tag.DateTime).Reset ();
+		}
+
+		// save metadata in THM file
+		private void SaveMetaData (System.IO.Stream input, System.IO.Stream output)
+		{
+			JpegHeader header = new JpegHeader (input);
+			UpdateMeta ();
+			
+			// Console.WriteLine ("updated metadata");
+			header.SetExif (this.ExifData);
+			// Console.WriteLine ("set exif");
+			if (xmp != null)
+				header.SetXmp (xmp);
+			// Console.WriteLine ("set xmp");
+			header.Save (output);
+			// Console.WriteLine ("saved");
+		}
+		
+		public void SaveMetaData (string path)
+		{
+			UpdateMeta ();
+
+			//Get file permissions... (mkstemp does not keep permissions or ownership)
+			Mono.Unix.Native.Stat stat;
+			int stat_err = Mono.Unix.Native.Syscall.stat (path, out stat);
+
+			string  temp_path = path;
+			using (System.IO.FileStream stream = System.IO.File.OpenRead (path)) {
+				using (System.IO.Stream output = FSpot.Unix.MakeSafeTemp (ref temp_path)) {
+					SaveMetaData (stream, output);
+				}
+			}
+
+			File.SetAttributes (temp_path, File.GetAttributes (path));
+
+			if (FSpot.Unix.Rename (temp_path, path) < 0) {
+				System.IO.File.Delete (temp_path);
+				throw new System.Exception (System.String.Format ("Unable to rename {0} to {1}",
+										  temp_path, path));
+			}
+
+			//Set file permissions and gid...
+			if (stat_err == 0) 
+				try {
+					Mono.Unix.Native.Syscall.chmod (path, stat.st_mode |
+									      Mono.Unix.Native.FilePermissions.S_IRUSR | 
+									      Mono.Unix.Native.FilePermissions.S_IWUSR);
+					Mono.Unix.Native.Syscall.chown (path, Mono.Unix.Native.Syscall.getuid (), stat.st_gid);
+				} catch (Exception) {}
+		}
+
+		public uint GetVideoWidth ()
+		{
+			Exif.ExifEntry e;
+			Exif.ExifContent thumb_content;
+	
+			// update the thumbnail related image fields if they exist.
+			thumb_content = this.ExifData.GetContents (Exif.Ifd.InterOperability);
+			e = thumb_content.Lookup (Exif.Tag.RelatedImageWidth);
+			if (e!=null)
+				return e.GetDataUInt () [0];
+			else
+				return 0;
+		}
+
+		public uint GetVideoHeight ()
+		{
+			Exif.ExifEntry e;
+			Exif.ExifContent thumb_content;
+	
+			// update the thumbnail related image fields if they exist.
+			thumb_content = this.ExifData.GetContents (Exif.Ifd.InterOperability);
+			e = thumb_content.Lookup (Exif.Tag.RelatedImageHeight);
+			if (e!=null)
+				return e.GetDataUInt () [0];
+			else
+				return 0;
+		}
+
+		public override void Save (Gdk.Pixbuf pixbuf, System.IO.Stream stream)
+		{
+
+			// Console.WriteLine ("starting save");
+			// First save the imagedata
+			int quality = Header.GuessQuality ();
+			quality = quality == 0 ? 75 : quality;
+			byte [] image_data = PixbufUtils.Save (pixbuf, "jpeg", new string [] {"quality" }, new string [] { quality.ToString () });
+			System.IO.MemoryStream buffer = new System.IO.MemoryStream ();
+			buffer.Write (image_data, 0, image_data.Length);
+			buffer.Position = 0;
+			
+			// Console.WriteLine ("setting thumbnail");
+//			SetThumbnail (pixbuf);
+//			SetDimensions (pixbuf.Width, pixbuf.Height);
+			pixbuf.Dispose ();
+			
+			// Console.WriteLine ("saving metatdata");
+			SaveMetaData (buffer, stream);
+			// Console.WriteLine ("done");
+			buffer.Close ();
+		}
+		
+		public Exif.ExifData ExifData {
+			get {
+				if (exif_data == null) {
+					exif_data = Header.Exif;
+
+					if (exif_data == null || exif_data.Handle.Handle == System.IntPtr.Zero)
+						exif_data = new Exif.ExifData ();
+				}
+				// System.Console.WriteLine ("loading exif data");
+				return exif_data;
+			}
+			set {
+				this.exif_data = value;
+			}
+		}
+		
+		public override PixbufOrientation GetOrientation () 
+		{
+			PixbufOrientation orientation = PixbufOrientation.TopLeft;
+#if USE_TIFF
+			try {
+				DirectoryEntry e = ExifHeader.Directory.Lookup (TagId.Orientation);
+				orientation = (PixbufOrientation) e.ValueAsLong [0];
+			} catch {
+				System.Console.WriteLine ("error checking orientation");
+			}
+#else						     
+			Exif.ExifEntry e = this.ExifData.GetContents (Exif.Ifd.Zero).Lookup (Exif.Tag.Orientation);
+			
+			if (e != null) {
+				ushort [] value = e.GetDataUShort ();
+				orientation = (PixbufOrientation) value [0];
+			}
+#endif			
+			if (orientation < PixbufOrientation.TopLeft || orientation > PixbufOrientation.LeftBottom)
+				orientation = PixbufOrientation.TopLeft;
+
+			return orientation;
+		}
+		
+		public void SetDateTimeOriginal (DateTime time)
+		{
+			Exif.ExifEntry e = ExifData.LookupFirst (Exif.Tag.DateTimeOriginal);
+			if (e != null)
+				e.SetData (time);
+			else {
+				Exif.ExifContent exif_content = this.ExifData.GetContents (Exif.Ifd.Exif);
+				Exif.ExifEntry entry = exif_content.GetEntry (Exif.Tag.DateTimeOriginal);
+				entry.SetData (time);
+			}		
+		}
+
+		public override System.DateTime Date {
+			get {
+				System.DateTime time;
+				try {
+#if USE_TIFF
+					SubdirectoryEntry sub = (SubdirectoryEntry) ExifHeader.Directory.Lookup (TagId.ExifIfdPointer);
+					DirectoryEntry e;
+					
+					if (sub != null) {
+						e = sub.Directory [0].Lookup (TagId.DateTimeOriginal);
+						
+						if (e != null)
+							return DirectoryEntry.DateTimeFromString (e.StringValue).ToUniversalTime ();
+					}
+					
+					e = ExifHeader.Directory.Lookup (TagId.DateTime);
+					
+					if (e != null)
+						return DirectoryEntry.DateTimeFromString (e.StringValue).ToUniversalTime ();
+					
+					return base.Date;
+#else
+					string time_str = "";				
+					time_str = ExifData.LookupFirstValue (Exif.Tag.DateTimeOriginal);
+					
+					if (time_str == null || time_str == "") 
+						time_str = ExifData.LookupFirstValue (Exif.Tag.DateTime);
+					
+					time = Exif.ExifUtil.DateTimeFromString (time_str).ToUniversalTime (); 
+#endif
+				} catch (System.Exception e) {
+					Console.WriteLine (e);
+					time = base.Date;
+				}
+				return time;
+			}
+		}
+	}
+}

=== added file 'src/Imaging/VideoFile.cs'
--- src/Imaging/VideoFile.cs	1970-01-01 00:00:00 +0000
+++ src/Imaging/VideoFile.cs	2008-02-27 11:46:37 +0000
@@ -0,0 +1,96 @@
+using System;
+using System.IO;
+using FSpot.Utils;
+
+namespace FSpot {
+	public class VideoFormatException : ApplicationException {
+		public VideoFormatException (string msg) : base (msg)
+		{
+		}
+	}
+
+	public class VideoFile : MediaFile {	
+		private const int TIMEOUT = 5000; // Timeout for thumbnailer process is 5 seconds
+		
+		public VideoFile (Uri uri) : base (uri)
+		{
+		}
+
+		public VideoFile (string path) : base (path)
+		{
+		}
+
+		public static new VideoFile Create (string path)
+		{
+			return Create (UriUtils.PathToFileUri (path));
+		}
+
+		public static new VideoFile Create (Uri uri)
+		{
+			return (VideoFile) MediaFile.Create (uri);
+		}
+
+
+		///<summary>Returns a full-size "thumbnail", or screen capture, of the video</summary>
+		///<returns>A Gdk.Pixbuf image of the screen capture</returns>
+		///NOTE: the current implementation only returns a still image.  Later versions should
+		/// set up GStreamer for playback and do the appropriate handling here
+		public override Gdk.Pixbuf Load ()
+		{
+			return Load (-1, -1);
+		}
+
+		///<summary>Loads a thumbnail of the video file using an external thumbnailer</summary>
+		///<param name="max_width">Width of the thumbnail in pixels</param>
+		///<param name="max_height">Height of the thumbnail in pixels</param>
+		///<returns>A Gdk.Pixbuf of the thumbnail image extracted from the video file</returns>
+		public override Gdk.Pixbuf Load (int max_width, int max_height)
+		{
+			Gdk.Pixbuf pixbuf = null;
+			try {
+				string temp_path = GenerateTempPath ();
+				string thumbnailer_command;
+				
+				// Used the following for totem-video-thumbnailer call string formatting:
+				// {0) = input file (eg. "video1.avi")
+				// {1} = output file (eg. "thumb1.png")
+				// {2} = width of thumbnail
+				// {3} = height of thumbnail
+				if (max_width == -1)
+					thumbnailer_command = String.Format ("totem-video-thumbnailer {0} {1}", 
+						this.Uri.AbsolutePath, temp_path);
+				else
+					thumbnailer_command = String.Format ("totem-video-thumbnailer -s {2} {0} {1}", 
+						this.Uri.AbsolutePath, temp_path, max_width);
+				
+				// Create a new process to run the external thumbnailer in, let it run until it
+				// ends or until TIMEOUT milliseconds elapse.
+				System.Diagnostics.Process thumbnailerProcess= new System.Diagnostics.Process ();
+				thumbnailerProcess.StartInfo.FileName=thumbnailer_command;
+				thumbnailerProcess.Start ();
+				thumbnailerProcess.WaitForExit (TIMEOUT);
+
+				pixbuf = new Gdk.Pixbuf (temp_path);
+				System.IO.File.Delete (temp_path);
+			} catch (System.Exception e) {
+				System.Console.WriteLine (e.ToString ());
+			}
+			return pixbuf;
+		}
+
+		///<summary>Uses the given Uri to generate a temporary, unique filename</summary>
+		///<returns>String of the absolute path for the temporary filename</returns>
+		private string GenerateTempPath ()
+		{
+			string result = null;
+			try {
+				result = "." + System.IO.Path.GetFileNameWithoutExtension (this.Uri.AbsolutePath) + ".png";
+				result = FileImportBackend.UniqueName (FSpot.Global.PhotoDirectory, result);
+			} catch (System.Exception e) {
+				System.Console.WriteLine (e.ToString ());
+			}
+			return result;
+		}
+
+	}
+}

=== modified file 'extensions/FacebookExport/FacebookExport.cs'
--- extensions/FacebookExport/FacebookExport.cs	2008-02-11 09:01:43 +0000
+++ extensions/FacebookExport/FacebookExport.cs	2008-02-27 11:46:35 +0000
@@ -415,7 +415,7 @@
 				tag_image.Destroy ();
 			}
 
-			using (ImageFile image = new ImageFile (thumbnail_path)) {
+			using (MediaFile image = MediaFile.Create (thumbnail_path)) {
 				Gdk.Pixbuf data = image.Load ();
 				data = PixbufUtils.ScaleToMaxSize (data, 400, 400);
 				tag_image_height = data.Height;

=== modified file 'extensions/PicasaWebExport/PicasaWebExport.cs'
--- extensions/PicasaWebExport/PicasaWebExport.cs	2008-02-11 15:46:22 +0000
+++ extensions/PicasaWebExport/PicasaWebExport.cs	2008-02-27 11:46:35 +0000
@@ -285,7 +285,7 @@
 
 			if (show_captcha) {
 				try {
-					using  (ImageFile img = ImageFile.Create(new Uri(captcha_exception.CaptchaUrl))) {
+					using  (MediaFile img = MediaFile.Create(new Uri(captcha_exception.CaptchaUrl))) {
 						captcha_image.Pixbuf = img.Load();
 						token = captcha_exception.Token;
 					}

=== modified file 'po/ru.po'
--- po/ru.po	2008-01-18 08:30:48 +0000
+++ po/ru.po	2008-02-25 10:55:07 +0000
@@ -7,8 +7,8 @@
 msgstr ""
 "Project-Id-Version: f-spot trunk\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2008-01-18 11:26+0300\n"
-"PO-Revision-Date: 2008-01-18 11:01+0300\n"
+"POT-Creation-Date: 2007-10-27 01:07+0400\n"
+"PO-Revision-Date: 2007-10-25 09:43+0300\n"
 "Last-Translator: Alexandre Prokoudine <alexandre.prokoudine@gmail.com>\n"
 "Language-Team: Russian <gnome-cyr@gnome.org>\n"
 "MIME-Version: 1.0\n"
@@ -30,75 +30,67 @@
 msgstr "Авторские права:"
 
 #: ../mono-addins/Mono.Addins.Gui/Mono.Addins.Gui/AddinInfoDialog.cs:71
-msgid "Extension Dependencies:"
+msgid "Add-in Dependencies:"
 msgstr "Зависимости расширения:"
 
-#: ../mono-addins/Mono.Addins.Gui/Mono.Addins.Gui/AddinInstallDialog.cs:97
+#: ../mono-addins/Mono.Addins.Gui/Mono.Addins.Gui/AddinInstallDialog.cs:96
 msgid "All registered repositories"
 msgstr "Все зарегистрированные репозитории"
 
-#: ../mono-addins/Mono.Addins.Gui/Mono.Addins.Gui/AddinInstallDialog.cs:184
+#: ../mono-addins/Mono.Addins.Gui/Mono.Addins.Gui/AddinInstallDialog.cs:180
 msgid "Are you sure you want to cancel the installation?"
 msgstr "Вы действительно хотите отменить установку?"
 
+#: ../mono-addins/Mono.Addins.Gui/Mono.Addins.Gui/AddinInstallDialog.cs:303
+msgid "The following packages will be uninstalled:"
+msgstr "Следующие пакеты будут удалены:"
+
 #: ../mono-addins/Mono.Addins.Gui/Mono.Addins.Gui/AddinInstallDialog.cs:308
-msgid "The following packages will be uninstalled:"
-msgstr "Следующие пакеты будут удалены:"
-
-#: ../mono-addins/Mono.Addins.Gui/Mono.Addins.Gui/AddinInstallDialog.cs:313
 msgid ""
-"There are other extensions that depend on the previous ones which will also "
-"be uninstalled:"
+"There are other add-ins that depend on the previous ones which will also be "
+"uninstalled:"
 msgstr "Есть расширения, зависящие от предыдущих, и они тоже будут удалены:"
 
-#: ../mono-addins/Mono.Addins.Gui/Mono.Addins.Gui/AddinInstallDialog.cs:384
+#: ../mono-addins/Mono.Addins.Gui/Mono.Addins.Gui/AddinInstallDialog.cs:379
 msgid ""
-"The selected extensions can't be installed because there are dependency "
+"The selected add-ins can't be installed because there are dependency "
 "conflicts."
 msgstr ""
 "Выбранные расширения не могут быть установлены из-за конфликта зависимостей."
 
-#: ../mono-addins/Mono.Addins.Gui/Mono.Addins.Gui/AddinInstallDialog.cs:398
+#: ../mono-addins/Mono.Addins.Gui/Mono.Addins.Gui/AddinInstallDialog.cs:393
 msgid "The following packages will be installed:"
 msgstr "Будут установлены следующие пакеты:"
 
-#: ../mono-addins/Mono.Addins.Gui/Mono.Addins.Gui/AddinInstallDialog.cs:402
+#: ../mono-addins/Mono.Addins.Gui/Mono.Addins.Gui/AddinInstallDialog.cs:397
 msgid " (in user directory)"
 msgstr " (в пользовательский каталог)"
 
-#: ../mono-addins/Mono.Addins.Gui/Mono.Addins.Gui/AddinInstallDialog.cs:408
+#: ../mono-addins/Mono.Addins.Gui/Mono.Addins.Gui/AddinInstallDialog.cs:403
 msgid "The following packages need to be uninstalled:"
 msgstr "Следующие пакеты будут удалены:"
 
-#: ../mono-addins/Mono.Addins.Gui/Mono.Addins.Gui/AddinInstallDialog.cs:416
+#: ../mono-addins/Mono.Addins.Gui/Mono.Addins.Gui/AddinInstallDialog.cs:411
 msgid "The following dependencies could not be resolved:"
 msgstr "Следующие зависимости не удалось удовлетворить:"
 
-#: ../mono-addins/Mono.Addins.Gui/Mono.Addins.Gui/AddinInstallDialog.cs:441
+#: ../mono-addins/Mono.Addins.Gui/Mono.Addins.Gui/AddinInstallDialog.cs:435
 msgid "The installation has been successfully completed."
 msgstr "Установка успешно завершена."
 
-#: ../mono-addins/Mono.Addins.Gui/Mono.Addins.Gui/AddinInstallDialog.cs:442
+#: ../mono-addins/Mono.Addins.Gui/Mono.Addins.Gui/AddinInstallDialog.cs:436
 msgid "The installation failed!"
 msgstr "Установка закончилась неудачей"
 
-#: ../mono-addins/Mono.Addins.Gui/Mono.Addins.Gui/AddinInstallDialog.cs:443
-msgid "The installation has completed with warnings."
-msgstr "Установка завершилась с предупреждениями."
-
-#: ../mono-addins/Mono.Addins.Gui/Mono.Addins.Gui/AddinInstallDialog.cs:446
+#: ../mono-addins/Mono.Addins.Gui/Mono.Addins.Gui/AddinInstallDialog.cs:439
 msgid "The uninstallation has been successfully completed."
 msgstr "Удаление успешно завершено."
 
-#: ../mono-addins/Mono.Addins.Gui/Mono.Addins.Gui/AddinInstallDialog.cs:447
+#: ../mono-addins/Mono.Addins.Gui/Mono.Addins.Gui/AddinInstallDialog.cs:440
 msgid "The uninstallation failed!"
 msgstr "Удаление закончилась неудачей"
 
-#: ../mono-addins/Mono.Addins.Gui/Mono.Addins.Gui/AddinInstallDialog.cs:448
-msgid "The uninstallation has completed with warnings."
-msgstr "Удаление завершилось с предупреждениями."
-
-#: ../mono-addins/Mono.Addins.Gui/Mono.Addins.Gui/AddinInstallDialog.cs:616
+#: ../mono-addins/Mono.Addins.Gui/Mono.Addins.Gui/AddinInstallDialog.cs:599
 msgid "Repository"
 msgstr "Репозиторий"
 
@@ -107,7 +99,7 @@
 msgstr "Установка отменена"
 
 #: ../mono-addins/Mono.Addins.Gui/Mono.Addins.Gui/AddinInstallerDialog.cs:159
-msgid "Some of the required extensions were not found"
+msgid "Some of the required add-ins were not found"
 msgstr "Несколько необходимых расширений не найдено"
 
 #: ../mono-addins/Mono.Addins.Gui/Mono.Addins.Gui/AddinInstallerDialog.cs:171
@@ -115,7 +107,7 @@
 msgstr "Установка закончилась неудачей"
 
 #: ../mono-addins/Mono.Addins.Gui/Mono.Addins.Gui/AddinTreeWidget.cs:91
-msgid "Extension"
+msgid "Add-in"
 msgstr "Расширение"
 
 #: ../mono-addins/Mono.Addins.Gui/Mono.Addins.Gui/AddinTreeWidget.cs:112
@@ -141,139 +133,140 @@
 msgstr "Возникла исключительная ситуация: {0}"
 
 #: ../mono-addins/Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInfoDialog.cs:32
-msgid "Package"
-msgstr "Пакет"
+msgid "F-Spot Package"
+msgstr "Пакет F-Spot"
 
 #: ../mono-addins/Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInstallDialog.cs:110
-msgid "Extension Installation"
+msgid "Add-in Installation"
 msgstr "Установка расширения"
 
-#: ../mono-addins/Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInstallDialog.cs:136
-msgid "<b>Select the extensions to install and click on Next</b>"
+#: ../mono-addins/Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInstallDialog.cs:134
+msgid "<b>Select the add-ins to install and click on Next</b>"
 msgstr "<b>Выберите устанавливаемые расширения и нажмите «Дальше»</b>"
 
-#: ../mono-addins/Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInstallDialog.cs:150
+#: ../mono-addins/Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInstallDialog.cs:148
 msgid "Install from:"
 msgstr "Установить из:"
 
-#: ../mono-addins/Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInstallDialog.cs:179
-#: ../mono-addins/Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:180
+#: ../mono-addins/Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInstallDialog.cs:177
+#: ../mono-addins/Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:181
 msgid "_Repositories..."
 msgstr "_Репозитории..."
 
-#: ../mono-addins/Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInstallDialog.cs:220
+#: ../mono-addins/Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInstallDialog.cs:217
 msgid "Show all packages"
 msgstr "Показывать все пакеты"
 
-#: ../mono-addins/Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInstallDialog.cs:221
+#: ../mono-addins/Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInstallDialog.cs:218
 msgid "Show new versions only"
 msgstr "Показывать только новые версии"
 
-#: ../mono-addins/Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInstallDialog.cs:222
+#: ../mono-addins/Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInstallDialog.cs:219
 msgid "Show updates only"
 msgstr "Показывать только обновления"
 
-#: ../mono-addins/Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInstallDialog.cs:247
+#: ../mono-addins/Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInstallDialog.cs:244
 msgid "_Unselect All"
 msgstr "С_нять выделение"
 
-#: ../mono-addins/Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInstallDialog.cs:259
-#: ../src/f-spot.glade.h:194
+#: ../mono-addins/Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInstallDialog.cs:256
+#: ../src/f-spot.glade.h:192
 msgid "Select _All"
 msgstr "_Выделить все"
 
-#: ../mono-addins/Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInstallDialog.cs:334
+#: ../mono-addins/Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInstallDialog.cs:331
 msgid "label124"
 msgstr "label124"
 
-#: ../mono-addins/Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInstallDialog.cs:346
+#: ../mono-addins/Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInstallDialog.cs:342
 msgid "Overall Progress:"
 msgstr "Общий прогресс:"
 
-#: ../mono-addins/Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInstallDialog.cs:374
-msgid "Downloading extensions..."
+#: ../mono-addins/Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInstallDialog.cs:370
+msgid "Downloading add-ins..."
 msgstr "Скачиваются расширения..."
 
 #: ../mono-addins/Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInstallerDialog.cs:36
-#: ../mono-addins/Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:58
-msgid "Extension Manager"
+msgid "Add-in Manager"
 msgstr "Управление расширениями"
 
-#: ../mono-addins/Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInstallerDialog.cs:54
+#: ../mono-addins/Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInstallerDialog.cs:52
 msgid "Additional extensions are required to perform this operation."
 msgstr ""
 "Необходимо установить дополнительные расширения для выполнения этой операции."
 
-#: ../mono-addins/Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInstallerDialog.cs:64
-msgid "The following extensions will be installed:"
+#: ../mono-addins/Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinInstallerDialog.cs:62
+msgid "The following add-ins will be installed:"
 msgstr "Будут установлены следующие расширения:"
 
-#: ../mono-addins/Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:90
-msgid "<big><b>Extension Manager</b></big>"
+#: ../mono-addins/Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:58
+msgid "F-Spot Add-in Manager"
+msgstr "Управление расширениями F-Spot"
+
+#: ../mono-addins/Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:88
+msgid "<big><b>F-Spot Add-in Manager</b></big>"
 msgstr "<big><b>Управление расширениями F-Spot</b></big>"
 
-#: ../mono-addins/Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:110
-msgid "The following extensions are currently installed:"
-msgstr "Уже установлены следующие расширения:"
-
-#: ../mono-addins/Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:165
-msgid "_Install Extensions..."
-msgstr "У_становить расширения..."
-
-#: ../mono-addins/Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:210
+#: ../mono-addins/Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:108
+msgid "The following add-ins are currently installed:"
+msgstr "Установлены следующие расширения:"
+
+#: ../mono-addins/Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:166
+msgid "_Install Add-ins..."
+msgstr "_Установить расширения..."
+
+#: ../mono-addins/Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:215
 msgid "_Uninstall..."
 msgstr "_Удалить..."
 
-#: ../mono-addins/Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:236
+#: ../mono-addins/Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:245
 msgid "Enable"
 msgstr "Включить"
 
-#: ../mono-addins/Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:262
+#: ../mono-addins/Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.AddinManagerDialog.cs:275
 msgid "Disable"
 msgstr "Отключить"
 
 #: ../mono-addins/Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ErrorDialog.cs:40
-#: ../src/FlickrExport.cs:314 ../src/FolderExport.cs:204
-#: ../src/GalleryExport.cs:733 ../src/PicasaWebExport.cs:637
-#: ../src/SmugMugExport.cs:573
-msgid "Error"
-msgstr "Ошибка"
+#: ../src/f-spot.glade.h:118
+msgid "F-Spot"
+msgstr "F-Spot"
 
 #: ../mono-addins/Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ErrorDialog.cs:111
 msgid "Details"
 msgstr "Подробности"
 
 #: ../mono-addins/Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.ManageSitesDialog.cs:34
-msgid "Extension Repository Management"
+msgid "Add-in Repository Management"
 msgstr "Управление репозиториями расширений"
 
 #: ../mono-addins/Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:52
 msgid "Add New Repository"
 msgstr "Добавить репозиторий"
 
-#: ../mono-addins/Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:70
+#: ../mono-addins/Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:68
 msgid "Select the location of the repository you want to register:"
 msgstr "Укажите расположение регистрируемого репозитория:"
 
 #. Container child vbox89.Gtk.Box+BoxChild
-#: ../mono-addins/Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:77
+#: ../mono-addins/Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:75
 msgid "Register an on-line repository"
 msgstr "Зарегистрировать сетевой репозиторий"
 
-#: ../mono-addins/Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:106
+#: ../mono-addins/Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:104
 msgid "Url:"
 msgstr "URL:"
 
 #. Container child vbox89.Gtk.Box+BoxChild
-#: ../mono-addins/Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:127
+#: ../mono-addins/Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:125
 msgid "Register a local repository"
 msgstr "Зарегистрировать локальный репозиторий"
 
-#: ../mono-addins/Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:155
+#: ../mono-addins/Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:153
 msgid "Path:"
 msgstr "Путь:"
 
-#: ../mono-addins/Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:179
+#: ../mono-addins/Mono.Addins.Gui/gtk-gui/Mono.Addins.Gui.NewSiteDialog.cs:177
 msgid "Browse..."
 msgstr "Просмотреть..."
 
@@ -282,48 +275,48 @@
 msgid "(provided by {0})"
 msgstr "(предоставлено {0})"
 
-#: ../mono-addins/Mono.Addins/Mono.Addins/AddinSessionService.cs:154
-msgid "Disabled extensions can't be loaded."
+#: ../mono-addins/Mono.Addins/Mono.Addins/AddinSessionService.cs:108
+msgid "Disabled add-ins can't be loaded."
 msgstr "Отключённые расширения не могут быть загружены."
 
-#: ../mono-addins/Mono.Addins/Mono.Addins/AddinSessionService.cs:179
+#: ../mono-addins/Mono.Addins/Mono.Addins/AddinSessionService.cs:133
 #, csharp-format
-msgid "Loading {0} extension"
+msgid "Loading {0} add-in"
 msgstr "Загружается расширение {0}"
 
-#: ../mono-addins/Mono.Addins/Mono.Addins/AddinSessionService.cs:265
+#: ../mono-addins/Mono.Addins/Mono.Addins/AddinSessionService.cs:216
 #, csharp-format
-msgid "The required extension '{0}' is disabled."
+msgid "The required addin '{0}' is disabled."
 msgstr "Требуемое расширение '{0}' отключено."
 
-#: ../mono-addins/Mono.Addins/Mono.Addins/AddinSessionService.cs:267
+#: ../mono-addins/Mono.Addins/Mono.Addins/AddinSessionService.cs:218
 #, csharp-format
-msgid "The required extension '{0}' is not installed."
+msgid "The required addin '{0}' is not installed."
 msgstr "Требуемое расширение '{0}' не установлено."
 
 #: ../extensions/DefaultExporters/DefaultExporters.addin.xml.h:1
-msgid "F_older..."
-msgstr "_Папка..."
+msgid "23hq..."
+msgstr "23hq..."
 
 #: ../extensions/DefaultExporters/DefaultExporters.addin.xml.h:2
-msgid "_23hq..."
-msgstr "_23hq..."
+msgid "CD..."
+msgstr "Компакт-диск..."
 
 #: ../extensions/DefaultExporters/DefaultExporters.addin.xml.h:3
-msgid "_CD..."
-msgstr "_Компакт-диск..."
+msgid "Flickr..."
+msgstr "Flickr..."
 
 #: ../extensions/DefaultExporters/DefaultExporters.addin.xml.h:4
-msgid "_Flickr..."
-msgstr "_Flickr..."
+msgid "Folder..."
+msgstr "Папка..."
 
 #: ../extensions/DefaultExporters/DefaultExporters.addin.xml.h:5
-msgid "_PicasaWeb..."
-msgstr "_PicasaWeb..."
+msgid "PicasaWeb..."
+msgstr "PicasaWeb..."
 
 #: ../extensions/DefaultExporters/DefaultExporters.addin.xml.h:6
-msgid "_SmugMug..."
-msgstr "_SmugMug..."
+msgid "SmugMug..."
+msgstr "SmugMug..."
 
 #: ../f-spot-view.desktop.in.in.h:1
 msgid "F-Spot Photo Viewer"
@@ -478,47 +471,47 @@
 msgid "Operation failed"
 msgstr "Операция закончилась неудачей"
 
-#: ../src/CDExport.cs:117
+#: ../src/CDExport.cs:116
 #, csharp-format
 msgid "Transferring picture \"{0}\" To CD"
 msgstr "Передаётся снимок \"{0}\" на CD"
 
 #. This indicates the current photo is photo {0} of {1} out of photos
-#: ../src/CDExport.cs:119 ../src/FlickrExport.cs:289
-#: ../src/FolderExport.cs:199 ../src/GalleryExport.cs:717
-#: ../src/ProgressDialog.cs:82 ../src/TimeDialog.cs:148
+#: ../src/CDExport.cs:118 ../src/FlickrExport.cs:288
+#: ../src/FolderExport.cs:197 ../src/GalleryExport.cs:704
+#: ../src/ProgressDialog.cs:82 ../src/TimeDialog.cs:147
 #, csharp-format
 msgid "{0} of {1}"
 msgstr "{0} из {1}"
 
-#: ../src/CDExport.cs:132 ../src/FlickrExport.cs:306
-#: ../src/FolderExport.cs:230 ../src/GalleryExport.cs:741
-#: ../src/PicasaWebExport.cs:645 ../src/SmugMugExport.cs:581
+#: ../src/CDExport.cs:131 ../src/FlickrExport.cs:305
+#: ../src/FolderExport.cs:228 ../src/GalleryExport.cs:728
+#: ../src/PicasaWebExport.cs:644 ../src/SmugMugExport.cs:579
 msgid "Done Sending Photos"
 msgstr "Пересылка снимков завершена"
 
-#: ../src/CDExport.cs:134 ../src/FolderExport.cs:232
+#: ../src/CDExport.cs:133 ../src/FolderExport.cs:230
 msgid "Transfer Complete"
 msgstr "Передача завершена"
 
-#: ../src/CDExport.cs:141 ../src/FolderExport.cs:237
+#: ../src/CDExport.cs:140 ../src/FolderExport.cs:235
 msgid "Error While Transferring"
 msgstr "Ошибка при передаче файлов"
 
-#: ../src/CDExport.cs:148 ../src/FolderExport.cs:254
+#: ../src/CDExport.cs:147 ../src/FolderExport.cs:252
 msgid "Error Transferring"
 msgstr "Ошибка при передаче"
 
-#: ../src/CDExport.cs:169 ../src/FolderExport.cs:276
+#: ../src/CDExport.cs:168 ../src/FolderExport.cs:274
 msgid "Error: Error while transferring; Aborting"
 msgstr "Ошибка: Ошибка при передаче; Прерывание"
 
-#: ../src/CDExport.cs:172 ../src/FolderExport.cs:279
+#: ../src/CDExport.cs:171 ../src/FolderExport.cs:277
 msgid "Error: File Already Exists; Aborting"
 msgstr "Ошибка: Файл с таким именем уже существует; Прерывание"
 
-#: ../src/CDExport.cs:211 ../src/CameraFileSelectionDialog.cs:194
-#: ../src/FolderExport.cs:333
+#: ../src/CDExport.cs:210 ../src/CameraFileSelectionDialog.cs:194
+#: ../src/FolderExport.cs:331
 msgid "Transferring Pictures"
 msgstr "Идёт копирование снимков"
 
@@ -530,11 +523,11 @@
 msgid "Path"
 msgstr "Путь"
 
-#: ../src/CameraFileSelectionDialog.cs:77 ../src/f-spot.glade.h:126
+#: ../src/CameraFileSelectionDialog.cs:77 ../src/f-spot.glade.h:121
 msgid "File"
 msgstr "Файл"
 
-#: ../src/CameraFileSelectionDialog.cs:79 ../src/FolderExport.cs:857
+#: ../src/CameraFileSelectionDialog.cs:79 ../src/FolderExport.cs:855
 msgid "Index"
 msgstr "Индекс"
 
@@ -586,17 +579,17 @@
 msgstr "Ошибка при сохранении изменённого снимка"
 
 #: ../src/ColorDialog.cs:212 ../src/HigMessageDialog.cs:15 ../src/Loupe.cs:58
-#: ../src/MainWindow.cs:2057 ../src/PhotoView.cs:276
+#: ../src/MainWindow.cs:2043 ../src/PhotoView.cs:265
 #, csharp-format
 msgid "Received exception \"{0}\". Unable to save photo {1}"
 msgstr "Полученое прерывание \"{0}\". Невозможно сохранить снимок {1}"
 
-#: ../src/Core.cs:192
+#: ../src/Core.cs:190
 #, csharp-format
 msgid "No photos matching {0} found"
 msgstr "Снимков с меткой {0} не найдено"
 
-#: ../src/Core.cs:193
+#: ../src/Core.cs:191
 #, csharp-format
 msgid ""
 "The tag \"{0}\" is not applied to any photos. Try adding\n"
@@ -607,11 +600,11 @@
 "применить её к каким-нибудь снимкам или выбрать другую метку\n"
 "в диалоге настройки F-Spot."
 
-#: ../src/Core.cs:197
+#: ../src/Core.cs:195
 msgid "Search returned no results"
 msgstr "Ничего не найдено"
 
-#: ../src/Core.cs:198
+#: ../src/Core.cs:196
 msgid ""
 "The tag F-Spot is looking for does not exist. Try\n"
 "selecting a different tag in the F-Spot preference\n"
@@ -621,43 +614,43 @@
 "Попробуйте выбрать другую метку в диалоге\n"
 "настройки F-Spot."
 
-#: ../src/DateCommands.cs:56
+#: ../src/DateCommands.cs:54
 msgid "Today"
 msgstr "Сегодня"
 
-#: ../src/DateCommands.cs:58
+#: ../src/DateCommands.cs:56
 msgid "Yesterday"
 msgstr "Вчера"
 
-#: ../src/DateCommands.cs:60
+#: ../src/DateCommands.cs:58
 msgid "Last 7 days"
 msgstr "Последние 7 дней"
 
-#: ../src/DateCommands.cs:62
+#: ../src/DateCommands.cs:60
 msgid "Last 30 days"
 msgstr "Последние 30 дней"
 
-#: ../src/DateCommands.cs:64
+#: ../src/DateCommands.cs:62
 msgid "Last 90 days"
 msgstr "Последние 90 дней"
 
-#: ../src/DateCommands.cs:66
+#: ../src/DateCommands.cs:64
 msgid "Last 360 days"
 msgstr "Последние 360 дней"
 
-#: ../src/DateCommands.cs:68
+#: ../src/DateCommands.cs:66
 msgid "Current Week (Mon-Sun)"
 msgstr "Текущая неделя (ПН-ВС)"
 
-#: ../src/DateCommands.cs:70
+#: ../src/DateCommands.cs:68
 msgid "Previous Week (Mon-Sun)"
 msgstr "Предыдущая неделя (ПН-ВС)"
 
-#: ../src/DateCommands.cs:86 ../src/f-spot.glade.h:79
+#: ../src/DateCommands.cs:84 ../src/f-spot.glade.h:75
 msgid "All Images"
 msgstr "Все снимки"
 
-#: ../src/DateCommands.cs:88
+#: ../src/DateCommands.cs:86
 msgid "Customized Range"
 msgstr "Заказной диапазон"
 
@@ -665,7 +658,7 @@
 msgid "Soft Focus"
 msgstr "Мягкий фокус"
 
-#: ../src/Editors/SoftFocus.cs:55 ../src/PhotoVersionCommands.cs:137
+#: ../src/Editors/SoftFocus.cs:55 ../src/PhotoVersionCommands.cs:136
 msgid "Cancel"
 msgstr "Отменить"
 
@@ -694,51 +687,47 @@
 msgstr "Нет доступных приложений"
 
 #: ../src/FSpot.addin.xml.h:1
-msgid "Copy Photo Locat_ion"
-msgstr "Скопировать _расположение снимка"
+msgid "Attach Tag"
+msgstr "Назначить метку"
 
 #: ../src/FSpot.addin.xml.h:2
+msgid "Copy Photo Location"
+msgstr "Скопировать местоположение"
+
+#: ../src/FSpot.addin.xml.h:3
+msgid "Delete From Drive"
+msgstr "Удалить с диска"
+
+#: ../src/FSpot.addin.xml.h:4
 msgid "Export to"
 msgstr "Экспорт"
 
-#: ../src/FSpot.addin.xml.h:3
-msgid "Open _With"
-msgstr "Открыть _в"
-
-#: ../src/FSpot.addin.xml.h:4 ../src/f-spot.glade.h:187
-msgid "Rem_ove Tag"
-msgstr "У_брать метку"
-
-#: ../src/FSpot.addin.xml.h:5 ../src/SingleView.cs:429
-#: ../src/f-spot.glade.h:190
-msgid "Rotate _Left"
-msgstr "Повернуть в_лево"
-
-#: ../src/FSpot.addin.xml.h:6 ../src/SingleView.cs:430
-#: ../src/f-spot.glade.h:191
-msgid "Rotate _Right"
-msgstr "Повернуть в_право"
+#: ../src/FSpot.addin.xml.h:5
+msgid "Open With"
+msgstr "Открыть в"
+
+#: ../src/FSpot.addin.xml.h:6
+msgid "Remove From Catalog"
+msgstr "Удалить из каталога"
 
 #: ../src/FSpot.addin.xml.h:7
-msgid "Set ra_ting"
-msgstr "О_ценить"
-
-#: ../src/FSpot.addin.xml.h:8
+msgid "Remove Tag"
+msgstr "Снять метку"
+
+#: ../src/FSpot.addin.xml.h:8 ../src/ItemAction.cs:80 ../src/MainWindow.cs:255
+#: ../src/SingleView.cs:73
+msgid "Rotate Left"
+msgstr "Повернуть влево"
+
+#: ../src/FSpot.addin.xml.h:9 ../src/ItemAction.cs:92 ../src/MainWindow.cs:259
+#: ../src/SingleView.cs:78
+msgid "Rotate Right"
+msgstr "Повернуть вправо"
+
+#: ../src/FSpot.addin.xml.h:10
 msgid "Tools"
 msgstr "Сервис"
 
-#: ../src/FSpot.addin.xml.h:9 ../src/f-spot.glade.h:244
-msgid "_Attach Tag"
-msgstr "_Назначить метку"
-
-#: ../src/FSpot.addin.xml.h:10 ../src/f-spot.glade.h:257
-msgid "_Delete From Drive"
-msgstr "Уд_алить с диска"
-
-#: ../src/FSpot.addin.xml.h:11 ../src/f-spot.glade.h:295
-msgid "_Remove From Catalog"
-msgstr "Удалить из _каталога"
-
 #: ../src/FileImportBackend.cs:265
 msgid "Import error"
 msgstr "Ошибка импорта"
@@ -748,20 +737,16 @@
 msgid "Error importing {0}{2}{2}{1}"
 msgstr "Ошибка при импорте {0}{2}{2}{1}"
 
-#: ../src/FileImportBackend.cs:267 ../src/ThreadProgressDialog.cs:68
-msgid "Skip"
-msgstr "Пропустить"
-
 #: ../src/Filters/ResizeFilter.cs:70 ../src/Filters/SharpFilter.cs:52
 #, csharp-format
 msgid "No way to save files of type \"{0}\""
 msgstr "Нет способа сохранить файлы типа \"{0}\""
 
-#: ../src/FlickrExport.cs:74 ../src/f-spot.glade.h:87
+#: ../src/FlickrExport.cs:73 ../src/f-spot.glade.h:82
 msgid "Authorize"
 msgstr "Авторизоваться"
 
-#: ../src/FlickrExport.cs:79
+#: ../src/FlickrExport.cs:78
 #, csharp-format
 msgid ""
 "Return to this window after you have finished the authorization process on "
@@ -770,59 +755,65 @@
 "Вернитесь к этому окну по завершении авторизации на {0} и нажмите внизу "
 "кнопку «Завершить авторизацию»."
 
-#: ../src/FlickrExport.cs:80
+#: ../src/FlickrExport.cs:79
 msgid "Complete Authorization"
 msgstr "Завершить авторизацию"
 
-#: ../src/FlickrExport.cs:84
+#: ../src/FlickrExport.cs:83
 #, csharp-format
 msgid "Logging into {0}"
 msgstr "Идёт авторизация на {0}"
 
-#: ../src/FlickrExport.cs:85
+#: ../src/FlickrExport.cs:84
 msgid "Checking credentials..."
 msgstr "Производится идентификация.."
 
-#: ../src/FlickrExport.cs:91
+#: ../src/FlickrExport.cs:90
 #, csharp-format
 msgid "Welcome {0} you are connected to {1}"
 msgstr "Добро пожаловать, {0}. Вы соединились с {1}"
 
-#: ../src/FlickrExport.cs:94
+#: ../src/FlickrExport.cs:93
 #, csharp-format
 msgid "Sign in as a different user"
 msgstr "Зайти с другим именем пользователя"
 
-#: ../src/FlickrExport.cs:245
+#: ../src/FlickrExport.cs:244
 msgid "Unable to log on"
 msgstr "Невозможно авторизоваться"
 
-#: ../src/FlickrExport.cs:265
+#: ../src/FlickrExport.cs:264
 #, csharp-format
 msgid "Waiting for response {0} of {1}"
 msgstr "Ожидание отклика {0} из {1}"
 
-#: ../src/FlickrExport.cs:284 ../src/FolderExport.cs:196
-#: ../src/GalleryExport.cs:713
+#: ../src/FlickrExport.cs:283 ../src/FolderExport.cs:194
+#: ../src/GalleryExport.cs:700
 #, csharp-format
 msgid "Uploading picture \"{0}\""
 msgstr "Закачивается снимок \"{0}\""
 
-#: ../src/FlickrExport.cs:308 ../src/GalleryExport.cs:743
-#: ../src/PicasaWebExport.cs:647 ../src/SmugMugExport.cs:583
+#: ../src/FlickrExport.cs:307 ../src/GalleryExport.cs:730
+#: ../src/PicasaWebExport.cs:646 ../src/SmugMugExport.cs:581
 msgid "Upload Complete"
 msgstr "Закачка завершена"
 
-#: ../src/FlickrExport.cs:311
+#: ../src/FlickrExport.cs:310
 #, csharp-format
 msgid "Error Uploading To {0}: {1}"
 msgstr "Ошибка при закачивании на {0}: {1}"
 
+#: ../src/FlickrExport.cs:313 ../src/FolderExport.cs:202
+#: ../src/GalleryExport.cs:720 ../src/PicasaWebExport.cs:636
+#: ../src/SmugMugExport.cs:571
+msgid "Error"
+msgstr "Ошибка"
+
+#: ../src/FlickrExport.cs:378
+msgid "Unable to log on."
+msgstr "Невозможно авторизоваться"
+
 #: ../src/FlickrExport.cs:379
-msgid "Unable to log on."
-msgstr "Невозможно авторизоваться"
-
-#: ../src/FlickrExport.cs:380
 #, csharp-format
 msgid ""
 "F-Spot was unable to log on to {0}.  Make sure you have given the "
@@ -831,55 +822,55 @@
 "F-Spot не удалось авторизоваться на {0}. Убедитесь, что включена "
 "аутентификация через веб-интерфейс {0}."
 
-#: ../src/FlickrExport.cs:398 ../src/GalleryExport.cs:666
-#: ../src/PicasaWebExport.cs:549 ../src/SmugMugExport.cs:499
+#: ../src/FlickrExport.cs:397 ../src/GalleryExport.cs:653
+#: ../src/PicasaWebExport.cs:548 ../src/SmugMugExport.cs:497
 msgid "Uploading Pictures"
 msgstr "Закачиваются снимки"
 
-#: ../src/FolderExport.cs:113
+#: ../src/FolderExport.cs:111
 msgid "Select Export Folder"
 msgstr "Выберите папку для экспорта"
 
-#: ../src/FolderExport.cs:158
+#: ../src/FolderExport.cs:156
 msgid "Building Gallery"
 msgstr "Создаётся галерея"
 
-#: ../src/FolderExport.cs:202
+#: ../src/FolderExport.cs:200
 #, csharp-format
 msgid "Error uploading picture \"{0}\" to Gallery:{2}{1}"
 msgstr "Ошибка при закачке снимка \"{0}\" в Gallery:{2}{1}"
 
-#: ../src/FolderExport.cs:711
+#: ../src/FolderExport.cs:709
 msgid "Light"
 msgstr "Светлый"
 
-#: ../src/FolderExport.cs:712
+#: ../src/FolderExport.cs:710
 msgid "Dark"
 msgstr "Тёмный"
 
 #. Abbreviation of previous
-#: ../src/FolderExport.cs:855
+#: ../src/FolderExport.cs:853
 msgid "Prev"
 msgstr "Пред."
 
-#: ../src/FolderExport.cs:860 ../src/ItemAction.cs:103
-#: ../src/f-spot.glade.h:154
+#: ../src/FolderExport.cs:858 ../src/ItemAction.cs:103
+#: ../src/f-spot.glade.h:151
 msgid "Next"
 msgstr "След."
 
-#: ../src/FolderExport.cs:913 ../src/FolderExport.cs:1086
+#: ../src/FolderExport.cs:911 ../src/FolderExport.cs:1084
 msgid "Show Styles"
 msgstr "Показать стили"
 
-#: ../src/FolderExport.cs:914 ../src/FolderExport.cs:1087
+#: ../src/FolderExport.cs:912 ../src/FolderExport.cs:1085
 msgid "Hide Styles"
 msgstr "Спрятать стили"
 
-#: ../src/FolderExport.cs:971
+#: ../src/FolderExport.cs:969
 msgid "Gallery generated by"
 msgstr "Галерею создал(а)"
 
-#: ../src/FolderExport.cs:1016
+#: ../src/FolderExport.cs:1014
 msgid "Page:"
 msgstr "Страница:"
 
@@ -907,7 +898,7 @@
 msgid "Exit fullscreen"
 msgstr "Вернуться"
 
-#: ../src/FullScreenView.cs:76 ../src/MainWindow.cs:292
+#: ../src/FullScreenView.cs:76 ../src/MainWindow.cs:288
 #: ../src/SingleView.cs:90
 msgid "Slideshow"
 msgstr "Слайдшоу"
@@ -920,61 +911,49 @@
 msgid "Slide transition: "
 msgstr "Тип перехода слайда:"
 
-#: ../src/GalleryExport.cs:377
+#: ../src/GalleryExport.cs:376
 msgid "Invalid URL"
 msgstr "Неверный URL"
 
-#: ../src/GalleryExport.cs:378
+#: ../src/GalleryExport.cs:377
 msgid "The gallery URL entry does not appear to be a valid URL"
 msgstr "Введённый URL галереи неверен"
 
-#: ../src/GalleryExport.cs:388 ../src/GalleryExport.cs:403
+#: ../src/GalleryExport.cs:387 ../src/GalleryExport.cs:402
 msgid "Error while connecting to Gallery"
 msgstr "Ошибки при соединении с Gallery"
 
-#: ../src/GalleryExport.cs:389 ../src/GalleryExport.cs:404
+#: ../src/GalleryExport.cs:388 ../src/GalleryExport.cs:403
 #, csharp-format
 msgid "The following error was encountered while attempting to log in: {0}"
 msgstr "При попытке авторизоваться произошла следующая ошибка: {0}"
 
-#: ../src/GalleryExport.cs:482
+#: ../src/GalleryExport.cs:481
 msgid "(TopLevel)"
 msgstr "(Верхний уровень)"
 
-#: ../src/GalleryExport.cs:544
-msgid "Invalid Gallery name"
-msgstr "Некорректное название галереи"
-
-#: ../src/GalleryExport.cs:545
-msgid ""
-"The gallery name contains invalid characters.\n"
-"Only letters, numbers, - and _ are allowed"
-msgstr ""
-"Название галереи содержит недопустимые символы.\n"
-"Разрешено использование только букв, чисел, - и _."
-
-#: ../src/GalleryExport.cs:732
+#: ../src/GalleryExport.cs:719
 #, csharp-format
 msgid "Error uploading picture \"{0}\" to Gallery: {1}"
 msgstr "Ошибка при закачке снимка \"{0}\" в Gallery: {1}"
 
-#: ../src/GalleryExport.cs:759 ../src/PicasaWebExport.cs:668
-#: ../src/SmugMugExport.cs:604
+#: ../src/GalleryExport.cs:746 ../src/PicasaWebExport.cs:667
+#: ../src/SmugMugExport.cs:602
 msgid "(No Gallery)"
 msgstr "(нет галерей)"
 
-#: ../src/GalleryExport.cs:846 ../src/PicasaWebExport.cs:795
-#: ../src/SmugMugExport.cs:702
+#: ../src/GalleryExport.cs:833 ../src/PicasaWebExport.cs:794
+#: ../src/SmugMugExport.cs:700
 msgid "(Not Connected)"
 msgstr "(нет соединения)"
 
-#: ../src/GalleryExport.cs:847 ../src/PicasaWebExport.cs:796
-#: ../src/SmugMugExport.cs:703
+#: ../src/GalleryExport.cs:834 ../src/PicasaWebExport.cs:795
+#: ../src/SmugMugExport.cs:701
 msgid "(No Albums)"
 msgstr "(нет альбомов)"
 
-#: ../src/GalleryExport.cs:899 ../src/PicasaWebExport.cs:840
-#: ../src/SmugMugExport.cs:747
+#: ../src/GalleryExport.cs:886 ../src/PicasaWebExport.cs:839
+#: ../src/SmugMugExport.cs:745
 msgid "No account selected"
 msgstr "Учётная запись не выбрана"
 
@@ -1035,15 +1014,15 @@
 msgid "Arrange by _Folder"
 msgstr "Отсортировать по _папкам"
 
-#: ../src/GroupSelector.cs:523 ../src/f-spot.glade.h:299
+#: ../src/GroupSelector.cs:523 ../src/f-spot.glade.h:292
 msgid "_Reverse Order"
 msgstr "В _обратном порядке"
 
-#: ../src/GroupSelector.cs:529 ../src/f-spot.glade.h:251
+#: ../src/GroupSelector.cs:529
 msgid "_Clear Date Range"
 msgstr "О_чистить диапазон дат"
 
-#: ../src/HigMessageDialog.cs:28 ../src/PhotoView.cs:275
+#: ../src/HigMessageDialog.cs:28 ../src/PhotoView.cs:264
 msgid "Error editing photo"
 msgstr "Ошибка при редактировании снимка"
 
@@ -1204,28 +1183,28 @@
 msgid "Unknown IIM DataSet"
 msgstr "Неизвестный IIM DataSet"
 
-#: ../src/ImportCommand.cs:46 ../src/SingleView.cs:330
+#: ../src/ImportCommand.cs:44 ../src/SingleView.cs:329
 msgid "Select Folder"
 msgstr "Выберите папку"
 
-#: ../src/ImportCommand.cs:258
+#: ../src/ImportCommand.cs:256
 msgid "(No Cameras Detected)"
 msgstr "(камера не обнаружена)"
 
-#: ../src/ImportCommand.cs:402
+#: ../src/ImportCommand.cs:400
 #, csharp-format
 msgid "Loading {0} of {1}"
 msgstr "Копируется файл {0} из {1}"
 
-#: ../src/ImportCommand.cs:470
+#: ../src/ImportCommand.cs:468
 msgid "Done Loading"
 msgstr "Загрузка завершена"
 
-#: ../src/ImportCommand.cs:667
+#: ../src/ImportCommand.cs:665
 msgid "Directory does not exist."
 msgstr "Каталог не существует"
 
-#: ../src/ImportCommand.cs:668
+#: ../src/ImportCommand.cs:666
 #, csharp-format
 msgid ""
 "The directory you selected \"{0}\" does not exist.  Please choose a "
@@ -1234,8 +1213,8 @@
 "Выбранный вами каталог \"{0}\" не существует. Выберите какой-нибудь другой"
 
 #. Prepare the Last Import root tag
-#: ../src/ImportCommand.cs:720 ../src/ImportCommand.cs:722
-#: ../src/XmpTagsImporter.cs:88
+#: ../src/ImportCommand.cs:718 ../src/ImportCommand.cs:720
+#: ../src/XmpTagsImporter.cs:86
 msgid "Import Tags"
 msgstr "Импортированные метки"
 
@@ -1260,7 +1239,7 @@
 msgstr "Экспозиция"
 
 #. The label for the root category is used in new and edit tag dialogs
-#: ../src/InfoBox.cs:232 ../src/TagStore.cs:258
+#: ../src/InfoBox.cs:232 ../src/TagStore.cs:451
 msgid "(None)"
 msgstr "(ничего)"
 
@@ -1268,14 +1247,14 @@
 msgid "(Unknown)"
 msgstr "(неизвестно)"
 
-#: ../src/InfoDisplay.cs:14 ../src/MainWindow.cs:1558
-#: ../src/f-spot.glade.h:152
+#: ../src/InfoDisplay.cs:14 ../src/MainWindow.cs:1547
+#: ../src/f-spot.glade.h:149
 msgid "Metadata Browser"
 msgstr "Просмотр метаданных"
 
 #. Obsolete, remove after db rev4
 #: ../src/InfoDisplay.cs:135 ../src/InfoDisplay.cs:137
-#: ../src/f-spot.glade.h:129
+#: ../src/f-spot.glade.h:124
 msgid "Folder"
 msgstr "Папка"
 
@@ -1312,23 +1291,15 @@
 msgid "No metadata available"
 msgstr "Метаданные недоступны"
 
-#: ../src/ItemAction.cs:80 ../src/MainWindow.cs:259 ../src/SingleView.cs:73
-msgid "Rotate Left"
-msgstr "Повернуть влево"
-
 #: ../src/ItemAction.cs:81 ../src/ItemAction.cs:93
 msgid "Rotate picture left"
 msgstr "Повернуть снимок влево"
 
-#: ../src/ItemAction.cs:92 ../src/MainWindow.cs:263 ../src/SingleView.cs:78
-msgid "Rotate Right"
-msgstr "Повернуть вправо"
-
 #: ../src/ItemAction.cs:104
 msgid "Next picture"
 msgstr "Следующий снимок"
 
-#: ../src/ItemAction.cs:125 ../src/f-spot.glade.h:180
+#: ../src/ItemAction.cs:125 ../src/f-spot.glade.h:177
 msgid "Previous"
 msgstr "Предыдущий"
 
@@ -1360,7 +1331,7 @@
 msgid "Create a soft focus visual effect"
 msgstr "Создать эффект мягкого фокуса"
 
-#: ../src/Loupe.cs:57 ../src/MainWindow.cs:2056
+#: ../src/Loupe.cs:57 ../src/MainWindow.cs:2042
 msgid "Error saving sharpened photo"
 msgstr "Ошибка при сохранения снимка с увеличенной резкостью"
 
@@ -1368,59 +1339,59 @@
 msgid "Sharpen"
 msgstr "Увеличение резкости"
 
-#: ../src/Loupe.cs:97 ../src/MainWindow.cs:2023
+#: ../src/Loupe.cs:97 ../src/MainWindow.cs:2009
 msgid "Amount:"
 msgstr "Величина:"
 
-#: ../src/Loupe.cs:98 ../src/MainWindow.cs:2024
+#: ../src/Loupe.cs:98 ../src/MainWindow.cs:2010
 msgid "Radius:"
 msgstr "Радиус:"
 
-#: ../src/Loupe.cs:99 ../src/MainWindow.cs:2025
+#: ../src/Loupe.cs:99 ../src/MainWindow.cs:2011
 msgid "Threshold:"
 msgstr "Порог:"
 
-#: ../src/MainWindow.cs:252 ../src/f-spot.glade.h:144
+#: ../src/MainWindow.cs:248 ../src/f-spot.glade.h:139
 msgid "Import"
 msgstr "Импорт"
 
-#: ../src/MainWindow.cs:254
+#: ../src/MainWindow.cs:250
 msgid "Import new images"
 msgstr "Импортировать новые снимки"
 
-#: ../src/MainWindow.cs:270 ../src/f-spot.glade.h:89
+#: ../src/MainWindow.cs:266 ../src/f-spot.glade.h:85
 msgid "Browse"
 msgstr "Просмотреть"
 
-#: ../src/MainWindow.cs:274
+#: ../src/MainWindow.cs:270
 msgid "Browse many photos simultaneously"
 msgstr "Просмотреть несколько снимков одновременно"
 
-#: ../src/MainWindow.cs:278
+#: ../src/MainWindow.cs:274
 msgid "Edit Image"
 msgstr "Изменить снимок"
 
-#: ../src/MainWindow.cs:282
+#: ../src/MainWindow.cs:278
 msgid "View and edit a photo"
 msgstr "Просмотреть и изменить один снимок"
 
-#: ../src/MainWindow.cs:287 ../src/SingleView.cs:85
+#: ../src/MainWindow.cs:283 ../src/SingleView.cs:85
 msgid "Fullscreen"
 msgstr "Во весь экран"
 
-#: ../src/MainWindow.cs:289 ../src/SingleView.cs:87
+#: ../src/MainWindow.cs:285 ../src/SingleView.cs:87
 msgid "View photos fullscreen"
 msgstr "Развернуть на весь экран"
 
-#: ../src/MainWindow.cs:294 ../src/SingleView.cs:92
+#: ../src/MainWindow.cs:290 ../src/SingleView.cs:92
 msgid "View photos in a slideshow"
 msgstr "Просмотреть в режиме слайдшоу"
 
-#: ../src/MainWindow.cs:856
+#: ../src/MainWindow.cs:867
 msgid "Error loading database."
 msgstr "Ошибка при загрузки базы данных."
 
-#: ../src/MainWindow.cs:857
+#: ../src/MainWindow.cs:868
 #, csharp-format
 msgid ""
 "F-Spot encountered an error while loading the photo database. The old "
@@ -1429,11 +1400,11 @@
 "В работе F-Spot произошла ошибка при загрузке базы данных снимков. Старая "
 "база данных перемещена в {0} и вместо неё создана новая."
 
-#: ../src/MainWindow.cs:1476
+#: ../src/MainWindow.cs:1465
 msgid "No cameras detected."
 msgstr "Камера не обнаружена."
 
-#: ../src/MainWindow.cs:1477
+#: ../src/MainWindow.cs:1466
 msgid ""
 "F-Spot was unable to find any cameras attached to this system.  Double check "
 "that the camera is connected and has power"
@@ -1441,11 +1412,11 @@
 "Не удалось обнаружить подключённую к компьютеру камеру. Проверьте, включена "
 "ли она и подключена ли к компьютеру."
 
-#: ../src/MainWindow.cs:1517
+#: ../src/MainWindow.cs:1506
 msgid "Error connecting to camera"
 msgstr "Ошибки при соединении с камерой"
 
-#: ../src/MainWindow.cs:1518
+#: ../src/MainWindow.cs:1507
 #, csharp-format
 msgid "Received error \"{0}\" while connecting to camera"
 msgstr "Получена ошибка \"{0}\" при соединении с камерой"
@@ -1453,16 +1424,16 @@
 #. Translators should localize the following string
 #. * which will give them credit in the About box.
 #. * E.g. "Martin Willemoes Hansen"
-#: ../src/MainWindow.cs:1663
+#: ../src/MainWindow.cs:1650
 msgid "translator-credits"
 msgstr "Alexandre Prokoudine (alexandre.prokoudine@gmail.com)"
 
-#: ../src/MainWindow.cs:1671
+#: ../src/MainWindow.cs:1658
 msgid "Copyright © 2003-2007 Novell Inc."
 msgstr "Авторские права © 2003-2007 Novell Inc."
 
 #. Translators, The singular case will never happen here.
-#: ../src/MainWindow.cs:1936
+#: ../src/MainWindow.cs:1922
 #, csharp-format
 msgid "Merge the selected tag"
 msgid_plural "Merge the {0} selected tags?"
@@ -1470,21 +1441,21 @@
 msgstr[1] "_Удалить {0} выбранных метки"
 msgstr[2] "_Удалить {0} выбранных меток"
 
-#: ../src/MainWindow.cs:1963
+#: ../src/MainWindow.cs:1949
 msgid ""
 "This operation will merge the selected tags and any sub-tags into a single "
 "tag."
 msgstr "Это приведёт к объединению всех выбранных меток кроме в одну."
 
-#: ../src/MainWindow.cs:1965
+#: ../src/MainWindow.cs:1951
 msgid "_Merge Tags"
 msgstr "О_бъединить метки"
 
-#: ../src/MainWindow.cs:2014
+#: ../src/MainWindow.cs:2000
 msgid "Unsharp Mask"
 msgstr "Нерезкая маска"
 
-#: ../src/MainWindow.cs:2224 ../src/SingleView.cs:472
+#: ../src/MainWindow.cs:2203 ../src/SingleView.cs:471
 #, csharp-format
 msgid "{0} Photo"
 msgid_plural "{0} Photos"
@@ -1492,12 +1463,12 @@
 msgstr[1] "{0} снимка"
 msgstr[2] "{0} снимков"
 
-#: ../src/MainWindow.cs:2231
+#: ../src/MainWindow.cs:2210
 #, csharp-format
 msgid " out of {0}"
 msgstr " из {0}"
 
-#: ../src/MainWindow.cs:2234
+#: ../src/MainWindow.cs:2213
 #, csharp-format
 msgid " ({0} selected)"
 msgid_plural " ({0} selected)"
@@ -1505,25 +1476,25 @@
 msgstr[1] " ({0} выбраны)"
 msgstr[2] " ({0} выбрано)"
 
-#: ../src/MainWindow.cs:2321
+#: ../src/MainWindow.cs:2300
 msgid "_Ok"
 msgstr "_ОК"
 
-#: ../src/MainWindow.cs:2322
+#: ../src/MainWindow.cs:2301
 msgid "Error Deleting Picture"
 msgstr "Ошибка при удалении снимка"
 
-#: ../src/MainWindow.cs:2327
+#: ../src/MainWindow.cs:2306
 #, csharp-format
 msgid "No permission to delete the file:{1}{0}"
 msgstr "Нет прав на удаление файла: {1}{0}"
 
-#: ../src/MainWindow.cs:2331
+#: ../src/MainWindow.cs:2310
 #, csharp-format
 msgid "An error of type {0} occurred while deleting the file:{2}{1}"
 msgstr "Произошла ошибка типа {0} при удалении файла: {2}{1}"
 
-#: ../src/MainWindow.cs:2357
+#: ../src/MainWindow.cs:2336
 #, csharp-format
 msgid "Delete the selected photo permanently?"
 msgid_plural "Delete the {0} selected photos permanently?"
@@ -1531,7 +1502,7 @@
 msgstr[1] "Удалить {0} выбранных снимка насовсем?"
 msgstr[2] "Удалить {0} выбранных снимков насовсем?"
 
-#: ../src/MainWindow.cs:2361
+#: ../src/MainWindow.cs:2340
 msgid "This deletes all versions of the selected photo from your drive."
 msgid_plural ""
 "This deletes all versions of the selected photos from your drive."
@@ -1539,14 +1510,14 @@
 msgstr[1] "Это приведёт к удалению всех выбранных снимков с жёсткого диска"
 msgstr[2] "Это приведёт к удалению всех выбранных снимков с жёсткого диска"
 
-#: ../src/MainWindow.cs:2364
+#: ../src/MainWindow.cs:2343
 msgid "_Delete photo"
 msgid_plural "_Delete photos"
 msgstr[0] "Удалить снимок"
 msgstr[1] "_Удалить снимки"
 msgstr[2] "_Удалить снимки"
 
-#: ../src/MainWindow.cs:2395
+#: ../src/MainWindow.cs:2374
 #, csharp-format
 msgid "Remove the selected photo from F-Spot?"
 msgid_plural "Remove the {0} selected photos from F-Spot?"
@@ -1554,47 +1525,35 @@
 msgstr[1] "Удалить {0} выбранных снимка из F-Spot?"
 msgstr[2] "Удалить {0} выбранных снимков из F-Spot?"
 
-#: ../src/MainWindow.cs:2400
+#: ../src/MainWindow.cs:2379
 msgid ""
 "If you remove photos from the F-Spot catalog all tag information will be "
 "lost. The photos remain on your computer and can be imported into F-Spot "
 "again."
 msgstr ""
-"Если вы удалите фотоснимки из каталога F‑Spot, вся информация о метках будет "
+"Если вы удалите фотоснимки из каталога F-Spot, вся информация о метках будет "
 "потеряна. Снимки останутся на вашем компьютере; их можно будет импортировать "
 "снова."
 
-#: ../src/MainWindow.cs:2401
+#: ../src/MainWindow.cs:2380
 msgid "_Remove from Catalog"
 msgstr "_Удалить из каталога"
 
-#: ../src/MainWindow.cs:2464
+#: ../src/MainWindow.cs:2437
 #, csharp-format
 msgid "Delete tag \"{0}\"?"
 msgstr "Удалить метку \"{0}\"?"
 
-#: ../src/MainWindow.cs:2466
+#: ../src/MainWindow.cs:2439
 #, csharp-format
 msgid "Delete the {0} selected tags?"
 msgstr "Удалить выбранные метки ({0})?"
 
-#: ../src/MainWindow.cs:2471
-msgid "photo"
-msgid_plural "photos"
-msgstr[0] "снимок"
-msgstr[1] "снимка"
-msgstr[2] "снимков"
-
-#: ../src/MainWindow.cs:2473
-#, csharp-format
-msgid "If you delete this tag, the association with {0} {1} will be lost."
-msgid_plural ""
-"If you delete these tags, the association with {0} {1} will be lost."
-msgstr[0] "Если удалить эту метку, связь с {0} {1} будет потеряна."
-msgstr[1] "Если удалить эти метки, связь с {0} {1} будет потеряна."
-msgstr[2] "Если удалить эти метки, связь с {0} {1} будет потеряна."
-
-#: ../src/MainWindow.cs:2478
+#: ../src/MainWindow.cs:2442
+msgid "If you delete a tag, all associations with photos are lost."
+msgstr "Если удалить метку, все связи со снимками будут потеряны."
+
+#: ../src/MainWindow.cs:2443
 msgid "_Delete tag"
 msgid_plural "_Delete tags"
 msgstr[0] "_Удалить метку"
@@ -1602,11 +1561,11 @@
 msgstr[2] "_Удалить метки"
 
 #. A Category is not empty. Can not delete it.
-#: ../src/MainWindow.cs:2492
+#: ../src/MainWindow.cs:2457
 msgid "Tag is not empty"
 msgstr "Метка не пуста"
 
-#: ../src/MainWindow.cs:2493
+#: ../src/MainWindow.cs:2458
 #, csharp-format
 msgid ""
 "Can not delete tags that have tags within them.  Please delete tags under "
@@ -1615,44 +1574,44 @@
 "Невозможно удалить метки со вложенными в них метками. Сначала удалите метки "
 "уровнем ниже \"{0}\"."
 
-#: ../src/MainWindow.cs:2947
+#: ../src/MainWindow.cs:2885
 msgid "Rotate selected photo left"
 msgid_plural "Rotate selected photos left"
 msgstr[0] "Повернуть {0} выбранный снимок влево"
 msgstr[1] "Повернуть {0} выбранных снимка влево"
 msgstr[2] "Повернуть {0} выбранных снимков влево"
 
-#: ../src/MainWindow.cs:2960
+#: ../src/MainWindow.cs:2898
 msgid "Rotate selected photo right"
 msgid_plural "Rotate selected photos right"
 msgstr[0] "Повернуть {0} выбранный снимок вправо"
 msgstr[1] "Повернуть {0} выбранных снимка вправо"
 msgstr[2] "Повернуть {0} выбранных снимков вправо"
 
-#: ../src/MainWindow.cs:2968
-#, csharp-format
-msgid "Find _Selected Tag"
-msgid_plural "Find _Selected Tags"
-msgstr[0] "Найти _выбранную метку"
-msgstr[1] "Найти _выбранные метки"
-msgstr[2] "Найти _выбранные метки"
-
-#: ../src/MainWindow.cs:2972
-#, csharp-format
-msgid "Find Selected Tag _With"
-msgid_plural "Find Selected Tags _With"
-msgstr[0] "Найти в_ыбранную метку с"
-msgstr[1] "Найти в_ыбранные метки с"
-msgstr[2] "Найти в_ыбранные метки с"
-
-#: ../src/MainWindow.cs:3010
+#: ../src/MainWindow.cs:2906
+#, csharp-format
+msgid "Find Selected Tag"
+msgid_plural "Find Selected Tags"
+msgstr[0] "Найти выбранную метку"
+msgstr[1] "Найти выбранные метки"
+msgstr[2] "Найти выбранные метки"
+
+#: ../src/MainWindow.cs:2910
+#, csharp-format
+msgid "Find Selected Tag With"
+msgid_plural "Find Selected Tags With"
+msgstr[0] "Найти выбранную метку с"
+msgstr[1] "Найти выбранные метки с"
+msgstr[2] "Найти выбранные метки с"
+
+#: ../src/MainWindow.cs:2927
 msgid "Create New Version?"
 msgid_plural "Create New Versions?"
 msgstr[0] "Создать новую версию?"
 msgstr[1] "Создать новые версии?"
 msgstr[2] "Создать новые версии?"
 
-#: ../src/MainWindow.cs:3012
+#: ../src/MainWindow.cs:2929
 #, csharp-format
 msgid ""
 "Before launching {1}, should F-Spot create a new version of the selected "
@@ -1774,7 +1733,7 @@
 msgid "Scene Type"
 msgstr "Тип сцены"
 
-#: ../src/PhotoStore.cs:424
+#: ../src/PhotoStore.cs:446
 #, csharp-format
 msgid "Reparented"
 msgid_plural "Reparented ({0})"
@@ -1782,7 +1741,7 @@
 msgstr[1] "Перемещены ({0})"
 msgstr[2] "Перемещено ({0})"
 
-#: ../src/PhotoStore.cs:441
+#: ../src/PhotoStore.cs:463
 #, csharp-format
 msgid "Modified"
 msgid_plural "Modified ({0})"
@@ -1790,7 +1749,7 @@
 msgstr[1] "Версия ({0})"
 msgstr[2] "Версия ({0})"
 
-#: ../src/PhotoStore.cs:460
+#: ../src/PhotoStore.cs:482
 #, csharp-format
 msgid "Modified in {1}"
 msgid_plural "Modified in {1} ({0})"
@@ -1800,69 +1759,69 @@
 
 #. Note that the original version is never stored in the photo_versions table in the
 #. database.
-#: ../src/PhotoStore.cs:653 ../src/f-spot.glade.h:167
+#: ../src/PhotoStore.cs:666 ../src/f-spot.glade.h:164
 msgid "Original"
 msgstr "Исходная"
 
 #. Fixme this should really set parent menu
 #. items insensitve
-#: ../src/PhotoTagMenu.cs:74
+#: ../src/PhotoTagMenu.cs:72
 msgid "(No Tags)"
 msgstr "(без меток)"
 
-#: ../src/PhotoVersionCommands.cs:56
+#: ../src/PhotoVersionCommands.cs:55
 msgid "Create New Version"
 msgstr "Создать новую версию"
 
-#: ../src/PhotoVersionCommands.cs:57
+#: ../src/PhotoVersionCommands.cs:56
 msgid "Name:"
 msgstr "Имя:"
 
-#: ../src/PhotoVersionCommands.cs:61
+#: ../src/PhotoVersionCommands.cs:60
 msgid "Rename Version"
 msgstr "Переименовать версию"
 
-#: ../src/PhotoVersionCommands.cs:62
+#: ../src/PhotoVersionCommands.cs:61
 msgid "New name:"
 msgstr "Новое имя:"
 
-#: ../src/PhotoVersionCommands.cs:108
+#: ../src/PhotoVersionCommands.cs:107
 msgid "Could not create a new version"
 msgstr "Не удалось создать новую версию"
 
-#: ../src/PhotoVersionCommands.cs:109
+#: ../src/PhotoVersionCommands.cs:108
 #, csharp-format
 msgid "Received exception \"{0}\". Unable to create version \"{1}\""
 msgstr "Получено прерывание \"{0}\". Невозможно создать версию \"{1}\""
 
-#: ../src/PhotoVersionCommands.cs:136
+#: ../src/PhotoVersionCommands.cs:135
 msgid "Really Delete?"
 msgstr "Действительно удалить?"
 
-#: ../src/PhotoVersionCommands.cs:138
+#: ../src/PhotoVersionCommands.cs:137
 msgid "Delete"
 msgstr "Удалить"
 
-#: ../src/PhotoVersionCommands.cs:142
+#: ../src/PhotoVersionCommands.cs:141
 #, csharp-format
 msgid "Really delete version \"{0}\"?"
 msgstr "Действительно удалить версию \"{0}\"?"
 
 #. FIXME show error dialog.
-#: ../src/PhotoVersionCommands.cs:152
+#: ../src/PhotoVersionCommands.cs:151
 msgid "Could not delete a version"
 msgstr "Не удалось удалить версию"
 
-#: ../src/PhotoVersionCommands.cs:153
+#: ../src/PhotoVersionCommands.cs:152
 #, csharp-format
 msgid "Received exception \"{0}\". Unable to delete version \"{1}\""
 msgstr "Полученое прерывание \"{0}\". Невозможно удалить версию \"{1}\""
 
-#: ../src/PhotoVersionCommands.cs:194
+#: ../src/PhotoVersionCommands.cs:193
 msgid "Could not rename a version"
 msgstr "Не удалось переименовать версию"
 
-#: ../src/PhotoVersionCommands.cs:195
+#: ../src/PhotoVersionCommands.cs:194
 #, csharp-format
 msgid "Received exception \"{0}\". Unable to rename version to \"{1}\""
 msgstr ""
@@ -1872,23 +1831,23 @@
 msgid "(No Edits)"
 msgstr "(без правки)"
 
-#: ../src/PhotoView.cs:63
+#: ../src/PhotoView.cs:62
 msgid "No Constraint"
 msgstr "Свободное выделение"
 
-#: ../src/PhotoView.cs:64
+#: ../src/PhotoView.cs:63
 msgid "4 x 3 (Book)"
 msgstr "4 x 3 (книга)"
 
-#: ../src/PhotoView.cs:65
+#: ../src/PhotoView.cs:64
 msgid "4 x 6 (Postcard)"
 msgstr "4 x 6 (открытка)"
 
-#: ../src/PhotoView.cs:66
+#: ../src/PhotoView.cs:65
 msgid "5 x 7 (L, 2L)"
 msgstr "5 x 7 (L, 2L)"
 
-#: ../src/PhotoView.cs:67
+#: ../src/PhotoView.cs:66
 msgid "8 x 10"
 msgstr "8 x 10"
 
@@ -1896,31 +1855,31 @@
 #. new SelectionConstraint (Catalog.GetString ("4 x 6 Portrait (Postcard)"), 4.0 / 6.0),
 #. new SelectionConstraint (Catalog.GetString ("5 x 7 Portrait (L, 2L)"), 5.0 / 7.0),
 #. new SelectionConstraint (Catalog.GetString ("8 x 10 Portrait"), 8.0 / 10.0),
-#: ../src/PhotoView.cs:72
+#: ../src/PhotoView.cs:71
 msgid "Square"
 msgstr "Квадрат"
 
-#: ../src/PhotoView.cs:152
+#: ../src/PhotoView.cs:151
 msgid "Crop photo to selected area"
 msgstr "Кадрировать по выделению"
 
-#: ../src/PhotoView.cs:153
+#: ../src/PhotoView.cs:152
 msgid "Remove redeye from selected area"
 msgstr "Убрать эффект красных глаз из выделенной области"
 
-#: ../src/PhotoView.cs:155
+#: ../src/PhotoView.cs:154
 msgid "Select an area to crop"
 msgstr "Выберите область кадрирования"
 
-#: ../src/PhotoView.cs:156
+#: ../src/PhotoView.cs:155
 msgid "Select an area to remove redeye"
 msgstr "Выберите область, из которой удалить эффект красных глаз"
 
-#: ../src/PhotoView.cs:327
+#: ../src/PhotoView.cs:316
 msgid "No selection available"
 msgstr "Ничего не выделено"
 
-#: ../src/PhotoView.cs:328
+#: ../src/PhotoView.cs:317
 msgid ""
 "This tool requires an active selection. Please select a region of the photo "
 "and try the operation again"
@@ -1928,127 +1887,119 @@
 "Для этого инструмента нужно активное выделение. Сначала выделите область "
 "снимка, а потом попробуйте применить инструмент ещё раз."
 
-#: ../src/PhotoView.cs:505
+#: ../src/PhotoView.cs:475
 msgid "Comment:"
 msgstr "Комментарий:"
 
-#: ../src/PhotoView.cs:525
+#: ../src/PhotoView.cs:491
 msgid "Constrain the aspect ratio of the selection"
 msgstr "Заблокировать соотношение сторон выделенной области"
 
-#: ../src/PhotoView.cs:527
+#: ../src/PhotoView.cs:493
 msgid "Crop"
 msgstr "Кадрировать"
 
-#: ../src/PhotoView.cs:531
+#: ../src/PhotoView.cs:497
 msgid "Reduce Red-Eye"
 msgstr "Убрать эффект красных глаз"
 
-#: ../src/PhotoView.cs:535
+#: ../src/PhotoView.cs:501
 msgid "Adjust Colors"
 msgstr "Скорректировать цвета"
 
-#: ../src/PhotoView.cs:537
+#: ../src/PhotoView.cs:503
 msgid "Adjust the photo colors"
 msgstr "Скорректировать цвета снимка"
 
-#: ../src/PhotoView.cs:540
+#: ../src/PhotoView.cs:506
 msgid "Desaturate"
 msgstr "Обесцветить"
 
-#: ../src/PhotoView.cs:542
+#: ../src/PhotoView.cs:508
 msgid "Convert the photo to black and white"
 msgstr "Сделать снимок чёрно-белым"
 
-#: ../src/PhotoView.cs:545
+#: ../src/PhotoView.cs:511
 msgid "Sepia Tone"
 msgstr "Тонировать в сепию"
 
-#: ../src/PhotoView.cs:547
+#: ../src/PhotoView.cs:513
 msgid "Convert the photo to sepia tones"
 msgstr "Применить к снимку эффект сепии"
 
-#: ../src/PhotoView.cs:577
+#: ../src/PhotoView.cs:543
 msgid "Previous photo"
 msgstr "Предыдущий снимок"
 
-#: ../src/PhotoView.cs:582
+#: ../src/PhotoView.cs:548
 msgid "Next photo"
 msgstr "Следующий снимок"
 
-#: ../src/PicasaWebExport.cs:417
+#: ../src/PicasaWebExport.cs:416
 msgid "Error while creating Album"
 msgstr "Ошибка при создании альбома"
 
-#: ../src/PicasaWebExport.cs:418
+#: ../src/PicasaWebExport.cs:417
 #, csharp-format
 msgid ""
 "The following error was encountered while attempting to create an album: {0}"
 msgstr "При попытке создать альбом произошла следующая ошибка: {0}"
 
-#: ../src/PicasaWebExport.cs:572
+#: ../src/PicasaWebExport.cs:571
 #, csharp-format
 msgid "{0} Sent"
 msgstr "Переслано {0}"
 
-#: ../src/PicasaWebExport.cs:574
+#: ../src/PicasaWebExport.cs:573
 #, csharp-format
 msgid "{0} of approx. {1}"
 msgstr "{0} из примерно {1}"
 
-#: ../src/PicasaWebExport.cs:604 ../src/SmugMugExport.cs:542
+#: ../src/PicasaWebExport.cs:603 ../src/SmugMugExport.cs:540
 #, csharp-format
 msgid "Uploading picture \"{0}\" ({1} of {2})"
 msgstr "Закачивается снимок \"{0}\" ({1} из {2})"
 
-#: ../src/PicasaWebExport.cs:635 ../src/SmugMugExport.cs:571
+#: ../src/PicasaWebExport.cs:634 ../src/SmugMugExport.cs:569
 #, csharp-format
 msgid "Error Uploading To Gallery: {0}"
 msgstr "Ошибка при закачке в галерею: {0}"
 
-#: ../src/PicasaWebExport.cs:719
+#: ../src/PicasaWebExport.cs:718
 msgid "Available space :"
 msgstr "Свободного пространства:"
 
-#: ../src/Preferences.cs:199
+#: ../src/Preferences.cs:194
 msgid "Photos"
 msgstr "Снимки"
 
-#: ../src/QueryWidget.cs:40
+#: ../src/QueryWidget.cs:37
 msgid "Find: "
 msgstr "Найти: "
 
-#: ../src/QueryWidget.cs:45
+#: ../src/QueryWidget.cs:42
 msgid "Untagged photos"
 msgstr "Некатегоризованные снимки"
 
-#: ../src/QueryWidget.cs:53
-msgid "Unrated photos"
-msgstr "Снимки без оценки"
-
-#: ../src/QueryWidget.cs:57
-msgid "Rated photos"
-msgstr "Снимки с оценкой"
-
-#: ../src/QueryWidget.cs:65
+#: ../src/QueryWidget.cs:50
 msgid "Import roll"
 msgstr "Сеанс импорта"
 
-#: ../src/QueryWidget.cs:85
+#: ../src/QueryWidget.cs:70
 msgid "Clear search"
 msgstr "Очистить результаты поиска"
 
-#: ../src/QueryWidget.cs:87
+#: ../src/QueryWidget.cs:72
 msgid "No matching photos found"
 msgstr "Совпадающих условиям поиска снимков не найдено"
 
-#: ../src/QueryWidget.cs:120
-msgid "Hide _Find Bar"
-msgstr "_Скрыть панель поиска"
+#: ../src/QueryWidget.cs:103
+msgid "Hide Find Bar"
+msgstr "Спрятать панель поиска"
 
-#: ../src/QueryWidget.cs:126
-msgid "Show _Find Bar"
-msgstr "_Показать панель поиска"
+#: ../src/QueryWidget.cs:109
+msgid "Show Find Bar"
+msgstr "Показать панель поиска"
 
 #: ../src/RotateCommand.cs:200
 msgid "Rotating photos"
@@ -2097,17 +2048,17 @@
 msgid "Error while rotating photo."
 msgstr "Ошибка при вращении снимка"
 
-#: ../src/SendEmail.cs:234
+#: ../src/SendEmail.cs:233
 msgid "Preparing email"
 msgstr "Подготавливается письмо"
 
-#: ../src/SendEmail.cs:286
+#: ../src/SendEmail.cs:285
 #, csharp-format
 msgid "Exporting picture \"{0}\""
 msgstr "Экспортируется снимок \"{0}\""
 
 #. Send the mail :)
-#: ../src/SendEmail.cs:311
+#: ../src/SendEmail.cs:310
 msgid "my photos"
 msgstr "мои снимки"
 
@@ -2119,50 +2070,58 @@
 msgid "Rotate photo right"
 msgstr "Повернуть снимок вправо"
 
-#: ../src/SingleView.cs:327
+#: ../src/SingleView.cs:326
 msgid "Open"
 msgstr "Открыть"
 
-#: ../src/SingleView.cs:432
+#: ../src/SingleView.cs:428 ../src/f-spot.glade.h:187
+msgid "Rotate _Left"
+msgstr "Повернуть в_лево"
+
+#: ../src/SingleView.cs:429 ../src/f-spot.glade.h:188
+msgid "Rotate _Right"
+msgstr "Повернуть в_право"
+
+#: ../src/SingleView.cs:431
 msgid "Set as Background"
 msgstr "Поместить на рабочий стол"
 
-#: ../src/TagCommands.cs:90 ../src/TagCommands.cs:218
-#: ../src/TagSelectionWidget.cs:507
+#: ../src/TagCommands.cs:89 ../src/TagCommands.cs:217
+#: ../src/TagSelectionWidget.cs:506
 msgid "This name is already in use"
 msgstr "Это имя уже используется"
 
-#: ../src/TagCommands.cs:137
+#: ../src/TagCommands.cs:136
 msgid "Create New Tag"
 msgstr "Создать новую метку"
 
-#: ../src/TagCommands.cs:138
+#: ../src/TagCommands.cs:137
 msgid "Name of New Tag:"
 msgstr "Имя новой метки:"
 
-#: ../src/TagCommands.cs:277
+#: ../src/TagCommands.cs:287
 msgid "Edit Tag"
 msgstr "Изменить метку"
 
-#: ../src/TagCommands.cs:278
+#: ../src/TagCommands.cs:288
 msgid "Tag Name:"
 msgstr "Имя метки:"
 
-#: ../src/TagCommands.cs:411
+#: ../src/TagCommands.cs:421
 #, csharp-format
 msgid "Photo {0} of {1}"
 msgstr "Снимок {0} из {1}"
 
-#: ../src/TagCommands.cs:441
+#: ../src/TagCommands.cs:451
 #, csharp-format
 msgid "Edit Icon for Tag {0}"
 msgstr "Изменить значок метки {0}"
 
-#: ../src/TagCommands.cs:457
+#: ../src/TagCommands.cs:467
 msgid "Select Photo from file"
 msgstr "Выберите файл со снимком"
 
-#: ../src/TagCommands.cs:480
+#: ../src/TagCommands.cs:490
 #, csharp-format
 msgid ""
 "\n"
@@ -2179,11 +2138,11 @@
 "хотя бы один снимок. Примените метку '{0}' к тому или иному снимку\n"
 "и снова откройте этот диалог."
 
-#: ../src/TagMenu.cs:90 ../src/TagPopup.cs:35
+#: ../src/TagMenu.cs:89 ../src/TagPopup.cs:34
 msgid "Create New Tag..."
 msgstr "Создать новую метку..."
 
-#: ../src/TagPopup.cs:25
+#: ../src/TagPopup.cs:24
 #, csharp-format
 msgid "Find"
 msgid_plural "Find"
@@ -2191,32 +2150,32 @@
 msgstr[1] "Искать"
 msgstr[2] "Искать"
 
-#: ../src/TagPopup.cs:41
+#: ../src/TagPopup.cs:40
 msgid "Edit Selected Tag..."
 msgstr "Изменить выбранную метку..."
 
-#: ../src/TagPopup.cs:45
+#: ../src/TagPopup.cs:44
 msgid "Delete Tag"
 msgid_plural "Delete Tags"
 msgstr[0] "Удалить метку"
 msgstr[1] "Удалить метки"
 msgstr[2] "Удалить метки"
 
-#: ../src/TagPopup.cs:51
+#: ../src/TagPopup.cs:50
 msgid "Attach Tag to Selection"
 msgid_plural "Attach Tags to Selection"
 msgstr[0] "Назначить метку выбранному"
 msgstr[1] "Назначить метки выбранному"
 msgstr[2] "Назначить метки выбранному"
 
-#: ../src/TagPopup.cs:55
+#: ../src/TagPopup.cs:54
 msgid "Remove Tag From Selection"
 msgid_plural "Remove Tags From Selection"
 msgstr[0] "Убрать метку из выбранного"
 msgstr[1] "Убрать метки из выбранного"
 msgstr[2] "Убрать метки из выбранного"
 
-#: ../src/TagPopup.cs:61
+#: ../src/TagPopup.cs:60
 msgid "Merge Tags"
 msgstr "Объединить метки"
 
@@ -2255,27 +2214,27 @@
 msgid "Drag tags here to search for them"
 msgstr "Перетащите сюда метки для поиска по ним"
 
-#: ../src/TagSelectionWidget.cs:506
+#: ../src/TagSelectionWidget.cs:505
 msgid "Error renaming tag"
 msgstr "Ошибка при переименовании снимка"
 
-#: ../src/TagStore.cs:222
+#: ../src/TagStore.cs:415
 msgid "Favorites"
 msgstr "Любимое"
 
-#: ../src/TagStore.cs:227
+#: ../src/TagStore.cs:420
 msgid "Hidden"
 msgstr "Скрытое"
 
-#: ../src/TagStore.cs:235
+#: ../src/TagStore.cs:428
 msgid "People"
 msgstr "Люди"
 
-#: ../src/TagStore.cs:240
+#: ../src/TagStore.cs:433
 msgid "Places"
 msgstr "Места"
 
-#: ../src/TagStore.cs:245
+#: ../src/TagStore.cs:438
 msgid "Events"
 msgstr "События"
 
@@ -2292,7 +2251,7 @@
 msgid " or "
 msgstr " или "
 
-#: ../src/Term.cs:379 ../src/f-spot.glade.h:333
+#: ../src/Term.cs:379 ../src/f-spot.glade.h:327
 msgid "or"
 msgstr "или"
 
@@ -2300,14 +2259,18 @@
 msgid "Retry"
 msgstr "Попытаться снова"
 
+#: ../src/ThreadProgressDialog.cs:68
+msgid "Skip"
+msgstr "Пропустить"
+
 #. The preceding text here is the second checkbutton in the Time dialog
 #. that says "Space all photos by []"
-#: ../src/TimeDialog.cs:126 ../src/f-spot.glade.h:332
+#: ../src/TimeDialog.cs:125 ../src/f-spot.glade.h:326
 #, csharp-format
 msgid "min. Starting at {0}"
 msgstr "мин. Начиная с {0}"
 
-#: ../src/TimeDialog.cs:131 ../src/f-spot.glade.h:206
+#: ../src/TimeDialog.cs:130 ../src/f-spot.glade.h:204
 #, csharp-format
 msgid "Shift all photos by {0}"
 msgstr "Сдвинуть все снимки на {0}"
@@ -2317,11 +2280,11 @@
 msgid "Unable to create temporary file"
 msgstr "Невозможно создать временный файл"
 
-#: ../src/Updater.cs:273
+#: ../src/Updater.cs:230
 msgid "Updating F-Spot Database"
 msgstr "Обновляется база данных F-Spot"
 
-#: ../src/Updater.cs:274
+#: ../src/Updater.cs:231
 msgid ""
 "Please wait while your F-Spot gallery's database is updated. This may take "
 "some time."
@@ -2354,19 +2317,19 @@
 msgid "Find:"
 msgstr "Искать:"
 
-#: ../src/XmpTagsImporter.cs:89
+#: ../src/XmpTagsImporter.cs:87
 msgid "Location"
 msgstr "Местоположение"
 
-#: ../src/XmpTagsImporter.cs:90
+#: ../src/XmpTagsImporter.cs:88
 msgid "Country"
 msgstr "Страна"
 
-#: ../src/XmpTagsImporter.cs:91
+#: ../src/XmpTagsImporter.cs:89
 msgid "City"
 msgstr "Город"
 
-#: ../src/XmpTagsImporter.cs:92
+#: ../src/XmpTagsImporter.cs:90
 msgid "State"
 msgstr "Штат"
 
@@ -2488,106 +2451,94 @@
 msgstr "<b>Параметры импорта</b>"
 
 #: ../src/f-spot.glade.h:31
-msgid "<b>Interoperability</b>"
-msgstr "<b>Взаимодействие</b>"
-
-#: ../src/f-spot.glade.h:32
-msgid "<b>Max Rating</b>"
-msgstr "<b>Макс. оценка</b>"
-
-#: ../src/f-spot.glade.h:33
 msgid "<b>Metadata</b>"
 msgstr "<b>Метаданные</b>"
 
-#: ../src/f-spot.glade.h:34
-msgid "<b>Min Rating</b>"
-msgstr "<b>Мин. оценка</b>"
-
-#: ../src/f-spot.glade.h:35
+#: ../src/f-spot.glade.h:32
 msgid "<b>Photograph Layout</b>"
 msgstr "<b>Вид фотографии</b>"
 
-#: ../src/f-spot.glade.h:36
+#: ../src/f-spot.glade.h:33
 msgid "<b>Photos to Burn</b>"
 msgstr "<b>Что записать</b>"
 
-#: ../src/f-spot.glade.h:37
+#: ../src/f-spot.glade.h:34
 msgid "<b>Photos</b>"
 msgstr "<b>Снимки</b>"
 
-#: ../src/f-spot.glade.h:38
+#: ../src/f-spot.glade.h:35
 msgid "<b>PicasaWeb Export</b>"
 msgstr "<b>Экспорт в PicasaWeb</b>"
 
-#: ../src/f-spot.glade.h:39
+#: ../src/f-spot.glade.h:36
 msgid "<b>Predefined</b>"
 msgstr "<b>Предустановлено</b>"
 
-#: ../src/f-spot.glade.h:40
+#: ../src/f-spot.glade.h:37
 msgid "<b>Preview</b>"
 msgstr "<b>Предпросмотр</b>"
 
-#: ../src/f-spot.glade.h:41
+#: ../src/f-spot.glade.h:38
 msgid "<b>Printer Details</b>"
 msgstr "<b>Подробнее о принтере</b>"
 
-#: ../src/f-spot.glade.h:42
+#: ../src/f-spot.glade.h:39
 msgid "<b>Reference Photo</b>"
 msgstr "<b>Исходный снимок</b>"
 
-#: ../src/f-spot.glade.h:43
+#: ../src/f-spot.glade.h:40
 msgid "<b>Screensaver</b>"
 msgstr "<b>Хранитель экрана</b>"
 
-#: ../src/f-spot.glade.h:44
+#: ../src/f-spot.glade.h:41
 msgid "<b>Select period</b>"
 msgstr "<b>Выберите период</b>"
 
-#: ../src/f-spot.glade.h:45
+#: ../src/f-spot.glade.h:42
 msgid "<b>Size</b>"
 msgstr "<b>Размер</b>"
 
-#: ../src/f-spot.glade.h:46
+#: ../src/f-spot.glade.h:43
 msgid "<b>SmugMug Export</b>"
 msgstr "<b>Экспорт на SmugMug</b>"
 
-#: ../src/f-spot.glade.h:47
+#: ../src/f-spot.glade.h:44
 msgid "<b>Start Date</b>"
 msgstr "<b>Начальная дата</b>"
 
-#: ../src/f-spot.glade.h:48
+#: ../src/f-spot.glade.h:45
 msgid "<b>Style</b>"
 msgstr "<b>Стиль</b>"
 
-#: ../src/f-spot.glade.h:49
+#: ../src/f-spot.glade.h:46
 msgid "<b>Summary</b>"
 msgstr "<b>Сводка</b>"
 
-#: ../src/f-spot.glade.h:50
+#: ../src/f-spot.glade.h:47
 msgid "<b>Transparent Parts</b>"
 msgstr "<b>Прозрачные области отображаются</b>"
 
-#: ../src/f-spot.glade.h:51
+#: ../src/f-spot.glade.h:48
 msgid "<b>View all pictures imported</b>"
 msgstr "<b>Просматривать все импортированные снимки</b>"
 
-#: ../src/f-spot.glade.h:52
+#: ../src/f-spot.glade.h:49
 msgid "<b>Viewing permissions</b>"
 msgstr "<b>Просмотр разрешений</b>"
 
-#: ../src/f-spot.glade.h:53
+#: ../src/f-spot.glade.h:50
 msgid "<b>_White Balance</b>"
 msgstr "<b>_Баланс белого</b>"
 
-#: ../src/f-spot.glade.h:54
+#: ../src/f-spot.glade.h:51
 msgid "<small> </small>"
 msgstr "<small> </small>"
 
-#: ../src/f-spot.glade.h:55
+#: ../src/f-spot.glade.h:52
 msgid "<small></small>"
 msgstr "<small></small>"
 
-#: ../src/f-spot.glade.h:56
+#: ../src/f-spot.glade.h:53
 msgid ""
 "<small><i>Choose the folder where F-Spot should store newly imported photos</"
 "i></small>"
@@ -2595,15 +2546,7 @@
 "<small><i>Выберите папку, в которой F-Spot будет хранить импортируемые "
 "снимки</i></small>"
 
-#: ../src/f-spot.glade.h:57
-msgid ""
-"<small><i>Enable this option if you want to allow other programs to import "
-"or delete photos and tags over DBus.</i></small>"
-msgstr ""
-"<small><i>Включите этот параметр, если хотите, чтобы другие программы могли "
-"импортировать в каталог снимки или удалять их оттуда через D-Bus.</i></small>"
-
-#: ../src/f-spot.glade.h:58
+#: ../src/f-spot.glade.h:54
 msgid ""
 "<small><i>Enable this option to store tags and descriptions inside \n"
 "supported image formats.</i></small>"
@@ -2611,9 +2554,9 @@
 "<small><i>Включите этот параметр, чтобы хранить метки и описания\n"
 "внутри файлов поддерживаемых форматов.</i></small>"
 
-#: ../src/f-spot.glade.h:60
+#: ../src/f-spot.glade.h:56
 msgid ""
-"<small><i>Enable this to allow interpolation on zoomed images. You shouldn't "
+"<small><i>Enable this to allow interpolation on zoomed images. You should'nt "
 "disable this for viewing photos, but disabling the interpolation could be "
 "usefull in icon design.</i></small>"
 msgstr ""
@@ -2621,7 +2564,7 @@
 "масштабировании снимков. Отключать эту функцию при просмотре снимков не "
 "стоит, хотя при просмотре значков она будет лишней.</i></small>"
 
-#: ../src/f-spot.glade.h:61
+#: ../src/f-spot.glade.h:57
 msgid ""
 "<small><i>While acting as a screensaver, F-Spot can display all of your "
 "images, or a small subset based on tags.</i></small>"
@@ -2629,7 +2572,7 @@
 "<small><i>Работая хранителем экрана, F-Spot может отображать все снимки или "
 "только некоторое отмеченное подмножество.</i></small>"
 
-#: ../src/f-spot.glade.h:62
+#: ../src/f-spot.glade.h:58
 msgid ""
 "<small><i>You can choose how to display transparent parts in images. This "
 "option has no effect on photos, but setting this as check pattern or custom "
@@ -2641,240 +2584,232 @@
 "и прочих предметов дизайна шахматные клетки или собственный цвет заливки "
 "прозрачных областей могут быть полезны.</i></small>"
 
-#: ../src/f-spot.glade.h:63
+#: ../src/f-spot.glade.h:59
 msgid "<small>C_ontrast:</small>"
 msgstr "<small>_Контрастность:</small>"
 
-#: ../src/f-spot.glade.h:64
+#: ../src/f-spot.glade.h:60
 msgid "<small>Te_mp:</small>"
 msgstr "<small>Те_мпература:</small>"
 
-#: ../src/f-spot.glade.h:65
+#: ../src/f-spot.glade.h:61
 msgid "<small>_Brightness:</small>"
 msgstr "<small>_Яркость:</small>"
 
-#: ../src/f-spot.glade.h:66
+#: ../src/f-spot.glade.h:62
 msgid "<small>_Exposure:</small>"
 msgstr "<small>_Экспозиция:</small>"
 
-#: ../src/f-spot.glade.h:67
+#: ../src/f-spot.glade.h:63
 msgid "<small>_Hue:</small>"
 msgstr "<small>_Тон:</small>"
 
-#: ../src/f-spot.glade.h:68
+#: ../src/f-spot.glade.h:64
 msgid "<small>_Saturation:</small>"
 msgstr "<small>_Насыщенность:</small>"
 
-#: ../src/f-spot.glade.h:69
+#: ../src/f-spot.glade.h:65
 msgid "<small>_Tint:</small>"
 msgstr "<small>_Интенсивность:</small>"
 
-#: ../src/f-spot.glade.h:70
+#: ../src/f-spot.glade.h:66
 msgid "<span weight='bold' size='larger'>Error Connecting to Gallery</span>\n"
 msgstr "<span weight='bold' size='larger'>Ошибка соединения с Gallery</span>\n"
 
-#: ../src/f-spot.glade.h:72
+#: ../src/f-spot.glade.h:68
 msgid ""
 "<span weight='bold' size='larger'>Your Google Account is locked</span>\n"
 msgstr ""
 "<span weight='bold' size='larger'>Ваша учётная запись на Google "
 "заблокирована</span>\n"
 
-#: ../src/f-spot.glade.h:74
+#: ../src/f-spot.glade.h:70
 msgid "Ad_just Color..."
 msgstr "Скорректировать _цвета..."
 
-#: ../src/f-spot.glade.h:75
+#: ../src/f-spot.glade.h:71
 msgid "Adjust Color"
 msgstr "Скорректировать цвета"
 
-#: ../src/f-spot.glade.h:76
+#: ../src/f-spot.glade.h:72
 msgid "Adjust Time"
 msgstr "Скорректировать время"
 
-#: ../src/f-spot.glade.h:77
+#: ../src/f-spot.glade.h:73
 msgid "Adjust _Time..."
 msgstr "Скорректировать _время"
 
-#: ../src/f-spot.glade.h:78
+#: ../src/f-spot.glade.h:74
 msgid "Adjusted date: "
 msgstr "Новое время: "
 
-#: ../src/f-spot.glade.h:80
-msgid "Allow other programs to manipulate F-Spot"
-msgstr "Другие приложения могут управлять F-Spot"
-
-#: ../src/f-spot.glade.h:81
+#: ../src/f-spot.glade.h:76
 msgid "Arrange _by"
 msgstr "О_тсортировать по"
 
-#: ../src/f-spot.glade.h:82
+#: ../src/f-spot.glade.h:77
 msgid "As _background"
 msgstr "_Фоновым цветом"
 
-#: ../src/f-spot.glade.h:83
+#: ../src/f-spot.glade.h:78
 msgid "As check pattern"
 msgstr "Шахматными клетками"
 
-#: ../src/f-spot.glade.h:84
+#: ../src/f-spot.glade.h:79
 msgid "As custom color: "
 msgstr "Заданным цветом: "
 
-#: ../src/f-spot.glade.h:85
+#: ../src/f-spot.glade.h:80
 msgid "Attach Tags:"
 msgstr "Назначить метки:"
 
-#: ../src/f-spot.glade.h:86
+#: ../src/f-spot.glade.h:81
 msgid "Attach tag:"
 msgstr "Назначить метку:"
 
-#: ../src/f-spot.glade.h:88
+#: ../src/f-spot.glade.h:83
 msgid "Autorotate"
 msgstr "Автоматически повернуть"
 
-#: ../src/f-spot.glade.h:90
-msgid "By _Date"
-msgstr "По _дате"
-
-#: ../src/f-spot.glade.h:91
-msgid "By _Import Roll"
-msgstr "По сеансу _импорта"
-
-#: ../src/f-spot.glade.h:92
-msgid "By _Rating"
-msgstr "По _оценке"
-
-#: ../src/f-spot.glade.h:93
+#: ../src/f-spot.glade.h:84
+msgid "Beneath _Photos"
+msgstr "Под сн_имками"
+
+#: ../src/f-spot.glade.h:86
 msgid "CD"
 msgstr "CD"
 
-#: ../src/f-spot.glade.h:94
+#: ../src/f-spot.glade.h:87
 msgid "C_aption:"
 msgstr "По_дпись:"
 
-#: ../src/f-spot.glade.h:95
+#: ../src/f-spot.glade.h:88
 msgid "C_ontrast:"
 msgstr "Ко_нтрастность:"
 
-#: ../src/f-spot.glade.h:96
+#: ../src/f-spot.glade.h:89
 msgid "Camera Selection"
 msgstr "Выбор камеры"
 
-#: ../src/f-spot.glade.h:97
+#: ../src/f-spot.glade.h:90
 msgid "Cancel, do not change the current timeline. "
 msgstr "Отменить, ничего не менять в шкале времени"
 
-#: ../src/f-spot.glade.h:98
+#: ../src/f-spot.glade.h:91
+msgid "Clea_r Date Range"
+msgstr "О_чистить диапазон дат"
+
+#: ../src/f-spot.glade.h:92
+msgid "Clear Roll Filter"
+msgstr "Очистить фильтр сеансов импорта"
+
+#: ../src/f-spot.glade.h:93
 msgid "Co_nfigure"
 msgstr "Н_астроить"
 
-#: ../src/f-spot.glade.h:99
+#: ../src/f-spot.glade.h:94
 msgid "Copy Locat_ion"
 msgstr "Копировать _местоположение"
 
-#: ../src/f-spot.glade.h:100
+#: ../src/f-spot.glade.h:95
 msgid "Copy files to the Photos folder"
 msgstr "Копировать файлы в папку Photos"
 
-#: ../src/f-spot.glade.h:101
+#: ../src/f-spot.glade.h:96
 msgid "Create CD"
 msgstr "Создать CD"
 
-#: ../src/f-spot.glade.h:102
+#: ../src/f-spot.glade.h:97
 msgid "Create Mail"
 msgstr "Создать письмо"
 
-#: ../src/f-spot.glade.h:103
+#: ../src/f-spot.glade.h:98
 msgid "Create New _Tag..."
 msgstr "Создать _новую метку..."
 
-#: ../src/f-spot.glade.h:104
+#: ../src/f-spot.glade.h:99
 msgid "Create _New Version..."
 msgstr "_Создать новую версию..."
 
-#: ../src/f-spot.glade.h:105
+#: ../src/f-spot.glade.h:100
 msgid "Create _gallery using \"Original\""
 msgstr "Создать гале_рею при помощи \"Original\""
 
-#: ../src/f-spot.glade.h:106
+#: ../src/f-spot.glade.h:101
 msgid "Create a mail with the selected photos (possible resized) attached"
 msgstr "Создать письмо с вложенными в него выбранными снимками"
 
-#: ../src/f-spot.glade.h:107
+#: ../src/f-spot.glade.h:102
 msgid "Create standalone _web gallery"
 msgstr "Создать от_дельную веб-галерею"
 
-#: ../src/f-spot.glade.h:108
+#: ../src/f-spot.glade.h:103
 msgid "Crop photo to _fit"
 msgstr "Обрезать, _чтобы поместилось"
 
-#: ../src/f-spot.glade.h:109
+#: ../src/f-spot.glade.h:104
 msgid "Current date:"
 msgstr "Текущая дата:"
 
-#: ../src/f-spot.glade.h:110
+#: ../src/f-spot.glade.h:105
 msgid "D_escription:"
 msgstr "Оп_исание:"
 
-#: ../src/f-spot.glade.h:111
+#: ../src/f-spot.glade.h:106
 msgid "Display File Names"
 msgstr "Показать имена файлов"
 
-#: ../src/f-spot.glade.h:112
+#: ../src/f-spot.glade.h:107
 msgid "Display only those photos that were imported in specified Rolls."
 msgstr ""
 "Показывать только те снимки, что были импортированы в определённый момент "
 "времени"
 
-#: ../src/f-spot.glade.h:113
+#: ../src/f-spot.glade.h:108
 msgid "Do not send a mail"
 msgstr "Не посылать письмо"
 
-#: ../src/f-spot.glade.h:114
+#: ../src/f-spot.glade.h:109
 msgid "E-_Mail:"
 msgstr "E-_Mail:"
 
-#: ../src/f-spot.glade.h:115
+#: ../src/f-spot.glade.h:110
 msgid "E_xport titles and comments"
 msgstr "Э_кспортировать названия и комментарии"
 
-#: ../src/f-spot.glade.h:116
+#: ../src/f-spot.glade.h:111
 msgid "Edit"
 msgstr "Правка"
 
-#: ../src/f-spot.glade.h:117
+#: ../src/f-spot.glade.h:112
 msgid "Edit Tag Icon"
 msgstr "Изменить значок метки"
 
-#: ../src/f-spot.glade.h:118
+#: ../src/f-spot.glade.h:113
 msgid "Edit icon"
 msgstr "Изменить значок"
 
-#: ../src/f-spot.glade.h:119
+#: ../src/f-spot.glade.h:114
 msgid "Estimated new size"
 msgstr "Вычисленный новый размер"
 
-#: ../src/f-spot.glade.h:120
+#: ../src/f-spot.glade.h:115
 msgid "Export"
 msgstr "Экспорт"
 
-#: ../src/f-spot.glade.h:121
+#: ../src/f-spot.glade.h:116
 msgid "Export _titles and comments"
 msgstr "Экспортировать _названия и комментарии"
 
-#: ../src/f-spot.glade.h:122
+#: ../src/f-spot.glade.h:117
 msgid "Extra large"
 msgstr "Очень большой"
 
-#: ../src/f-spot.glade.h:123
-msgid "F-Spot"
-msgstr "F-Spot"
-
-#: ../src/f-spot.glade.h:124
+#: ../src/f-spot.glade.h:119
 msgid "F-Spot View"
 msgstr "Просмотр в F-Spot"
 
-#: ../src/f-spot.glade.h:125
+#: ../src/f-spot.glade.h:120
 msgid ""
 "F-Spot needs your authorization in order to upload photos to your {0} "
 "account. Press the \"Authorize\" button to open a web browser and give F-"
@@ -2884,19 +2819,19 @@
 "«Авторизоваться», чтобы открыть окно или вкладку браузера и авторизовать F-"
 "Spot."
 
-#: ../src/f-spot.glade.h:127
+#: ../src/f-spot.glade.h:122
 msgid "Filter on selected rolls"
 msgstr "Фильтр по выбранным сеансам импорта"
 
-#: ../src/f-spot.glade.h:128
+#: ../src/f-spot.glade.h:123
 msgid "Fin_d"
 msgstr "П_оиск"
 
-#: ../src/f-spot.glade.h:130
+#: ../src/f-spot.glade.h:125
 msgid "Folder Export"
 msgstr "Экспорт в папку"
 
-#: ../src/f-spot.glade.h:131
+#: ../src/f-spot.glade.h:126
 msgid ""
 "From Screen\n"
 "Standard RGB"
@@ -2904,7 +2839,7 @@
 "С экрана\n"
 "Standard RGB"
 
-#: ../src/f-spot.glade.h:133
+#: ../src/f-spot.glade.h:128
 msgid ""
 "Full Page\n"
 "Standard - 4x6"
@@ -2912,19 +2847,19 @@
 "Целая страница\n"
 "Стандарт - 4x6"
 
-#: ../src/f-spot.glade.h:135
+#: ../src/f-spot.glade.h:130
 msgid "G_allery Name:"
 msgstr "_Имя галереи:"
 
-#: ../src/f-spot.glade.h:136
+#: ../src/f-spot.glade.h:131
 msgid "G_allery:"
 msgstr "G_allery:"
 
-#: ../src/f-spot.glade.h:137
+#: ../src/f-spot.glade.h:132
 msgid "Gallery"
 msgstr "Галерея"
 
-#: ../src/f-spot.glade.h:138
+#: ../src/f-spot.glade.h:133
 msgid ""
 "Hairline\n"
 "0.25\"\n"
@@ -2936,47 +2871,55 @@
 "0.5\"\n"
 "1\"\n"
 
-#: ../src/f-spot.glade.h:143
+#: ../src/f-spot.glade.h:138
 msgid "Images tagged with:"
 msgstr "Помеченные снимки:"
 
-#: ../src/f-spot.glade.h:145
+#: ../src/f-spot.glade.h:140
+msgid "Import Rolls"
+msgstr "Сеансы импорта"
+
+#: ../src/f-spot.glade.h:141
 msgid "Import Source:"
 msgstr "Откуда добавить:"
 
-#: ../src/f-spot.glade.h:146
+#: ../src/f-spot.glade.h:142
 msgid "Include subfolders"
 msgstr "Включая вложенные папки"
 
-#: ../src/f-spot.glade.h:147
+#: ../src/f-spot.glade.h:143
 msgid "Interpolate image on zoom"
 msgstr "Выполнять интерполяцию при масштабировании"
 
-#: ../src/f-spot.glade.h:148
+#: ../src/f-spot.glade.h:144
 msgid "Large"
 msgstr "Большой"
 
-#: ../src/f-spot.glade.h:149
+#: ../src/f-spot.glade.h:145
+msgid "Last Import Roll"
+msgstr "Последний сеанс импорта"
+
+#: ../src/f-spot.glade.h:146
 msgid "Make F-Spot your screensaver"
 msgstr "Сделайте F-Spot своим хранителем экрана"
 
-#: ../src/f-spot.glade.h:150
+#: ../src/f-spot.glade.h:147
 msgid "Manage _Extensions"
 msgstr "Настроить рас_ширения"
 
-#: ../src/f-spot.glade.h:151
+#: ../src/f-spot.glade.h:148
 msgid "Medium"
 msgstr "Средний"
 
-#: ../src/f-spot.glade.h:153
+#: ../src/f-spot.glade.h:150
 msgid "N_umber of Copies:"
 msgstr "Коли_чество копий:"
 
-#: ../src/f-spot.glade.h:155
+#: ../src/f-spot.glade.h:152
 msgid "No _image"
 msgstr "_Снимков нет"
 
-#: ../src/f-spot.glade.h:156
+#: ../src/f-spot.glade.h:153
 msgid ""
 "None\n"
 "Title\n"
@@ -2990,63 +2933,63 @@
 "Дата\n"
 "Подробности о снимке"
 
-#: ../src/f-spot.glade.h:161
+#: ../src/f-spot.glade.h:158
 msgid "Number of photos in selected rolls :"
 msgstr "Снимков в выбранных сеансах импорта:"
 
-#: ../src/f-spot.glade.h:162
+#: ../src/f-spot.glade.h:159
 msgid "Number of pictures"
 msgstr "Количество снимков"
 
-#: ../src/f-spot.glade.h:163
+#: ../src/f-spot.glade.h:160
 msgid "Only photos taken within these dates will be displayed."
 msgstr "Будут показаны фотографии только за указанный период времени"
 
-#: ../src/f-spot.glade.h:164
+#: ../src/f-spot.glade.h:161
 msgid "Open _Folder..."
 msgstr "Открыть _папку..."
 
-#: ../src/f-spot.glade.h:165
+#: ../src/f-spot.glade.h:162
 msgid "Open _album in browser when done uploading"
 msgstr "Открыть альбом в браузере по _завершении закачки"
 
-#: ../src/f-spot.glade.h:166
+#: ../src/f-spot.glade.h:163
 msgid "Open _destination when done exporting"
 msgstr "Открыть _каталог по завершении экспорта"
 
-#: ../src/f-spot.glade.h:168
+#: ../src/f-spot.glade.h:165
 msgid "Original size (possible very large file size)"
 msgstr "Исходный размер (размер файла может быть очень большим)"
 
-#: ../src/f-spot.glade.h:169
+#: ../src/f-spot.glade.h:166
 msgid "P_arent Tag:"
 msgstr "_Родительская метка:"
 
-#: ../src/f-spot.glade.h:170
+#: ../src/f-spot.glade.h:167
 msgid "P_hoto Source:"
 msgstr "_Источник снимков:"
 
-#: ../src/f-spot.glade.h:171
+#: ../src/f-spot.glade.h:168
 msgid "Page 1 of 3"
 msgstr "Страница 1 из 3"
 
-#: ../src/f-spot.glade.h:172
+#: ../src/f-spot.glade.h:169
 msgid "Pause"
 msgstr "Пауза"
 
-#: ../src/f-spot.glade.h:173
+#: ../src/f-spot.glade.h:170
 msgid "Photo 0 of 0"
 msgstr "Снимок 0 из 0"
 
-#: ../src/f-spot.glade.h:174
+#: ../src/f-spot.glade.h:171
 msgid "Photo _Size:"
 msgstr "_Размер снимка:"
 
-#: ../src/f-spot.glade.h:175
+#: ../src/f-spot.glade.h:172
 msgid "Please verify that the settings for this gallery are correct."
 msgstr "Проверьте, все ли параметры этой галереи верны"
 
-#: ../src/f-spot.glade.h:176
+#: ../src/f-spot.glade.h:173
 msgid ""
 "Please verify that the settings for this gallery are correct.\n"
 "Enter the letters as they are shown in the image in\n"
@@ -3056,67 +2999,75 @@
 "Введите в поле 'Captcha' символы, изображённые на рисунке.\n"
 "<i>Регистр не имеет значения</i>"
 
-#: ../src/f-spot.glade.h:179
+#: ../src/f-spot.glade.h:176
 msgid "Preferences"
 msgstr "Параметры"
 
-#: ../src/f-spot.glade.h:181
+#: ../src/f-spot.glade.h:178
 msgid "Print"
 msgstr "Напечатать"
 
-#: ../src/f-spot.glade.h:182
+#: ../src/f-spot.glade.h:179
 msgid "Print crop _marks"
 msgstr "Напечатать метки под о_брез"
 
-#: ../src/f-spot.glade.h:183
+#: ../src/f-spot.glade.h:180
 msgid "Private"
 msgstr "Личные"
 
-#: ../src/f-spot.glade.h:184
+#: ../src/f-spot.glade.h:181
 msgid "Public"
 msgstr "Общедоступные"
 
-#: ../src/f-spot.glade.h:185
+#: ../src/f-spot.glade.h:182
 msgid "Public Album"
 msgstr "Общедоступный альбом"
 
-#: ../src/f-spot.glade.h:186
+#: ../src/f-spot.glade.h:183
 msgid "Re_fresh Thumbnail"
 msgstr "_Обновить миниатюру"
 
-#: ../src/f-spot.glade.h:188
+#: ../src/f-spot.glade.h:184
+msgid "Rem_ove Tag"
+msgstr "У_брать метку"
+
+#: ../src/f-spot.glade.h:185
 msgid "Repair"
 msgstr "Восстановить"
 
-#: ../src/f-spot.glade.h:189
+#: ../src/f-spot.glade.h:186
 msgid "Reset"
 msgstr "Сбросить"
 
-#: ../src/f-spot.glade.h:192
+#: ../src/f-spot.glade.h:189
 msgid "Select A Folder"
 msgstr "Выберите папку"
 
-#: ../src/f-spot.glade.h:193
+#: ../src/f-spot.glade.h:190
+msgid "Select Import Rolls..."
+msgstr "Выберите сеансы импорта..."
+
+#: ../src/f-spot.glade.h:191
 msgid "Select Photos to Copy From Camera..."
 msgstr "Выберите снимки для копирования с камеры..."
 
-#: ../src/f-spot.glade.h:195
+#: ../src/f-spot.glade.h:193
 msgid "Select _None"
 msgstr "_Снять выделение"
 
-#: ../src/f-spot.glade.h:196
+#: ../src/f-spot.glade.h:194
 msgid "Select a Tag..."
 msgstr "Выберите метку..."
 
-#: ../src/f-spot.glade.h:197
+#: ../src/f-spot.glade.h:195
 msgid "Select the camera from which you want to transfer files"
 msgstr "Выберите камеру, с которой хотите забрать снимки"
 
-#: ../src/f-spot.glade.h:198
+#: ../src/f-spot.glade.h:196
 msgid "Selected Camera: "
 msgstr "Выбранная камера: "
 
-#: ../src/f-spot.glade.h:199
+#: ../src/f-spot.glade.h:197
 msgid ""
 "Selection\n"
 "Gallery\n"
@@ -3126,63 +3077,63 @@
 "Галерея\n"
 "Область просмотра"
 
-#: ../src/f-spot.glade.h:202
+#: ../src/f-spot.glade.h:200
 msgid "Send by _Mail..."
 msgstr "Послать по_чтой..."
 
-#: ../src/f-spot.glade.h:203
-msgid "Set Rating Filter"
-msgstr "Фильтр оценки"
+#: ../src/f-spot.glade.h:201
+msgid "Set _Date Range..."
+msgstr "_Установить диапазон дат"
 
-#: ../src/f-spot.glade.h:204
+#: ../src/f-spot.glade.h:202
 msgid "Set as _Background"
 msgstr "Поместить на _рабочий стол"
 
-#: ../src/f-spot.glade.h:205
+#: ../src/f-spot.glade.h:203
 msgid "Set date range"
 msgstr "Установите диапазон дат"
 
-#: ../src/f-spot.glade.h:207
+#: ../src/f-spot.glade.h:205
 msgid "Show all photos."
 msgstr "Показывать все снимки."
 
-#: ../src/f-spot.glade.h:208
+#: ../src/f-spot.glade.h:206
 msgid "Show or hide the side pane"
 msgstr "Показать или спрятать боковую панель"
 
-#: ../src/f-spot.glade.h:209
+#: ../src/f-spot.glade.h:207
 msgid "Show or hide the toolbar"
 msgstr "Показать или спрятать панель инструментов"
 
-#: ../src/f-spot.glade.h:210
+#: ../src/f-spot.glade.h:208
 msgid "Side _pane"
 msgstr "_Боковая панель"
 
-#: ../src/f-spot.glade.h:211
+#: ../src/f-spot.glade.h:209
 msgid "Side_bar"
 msgstr "_Боковая панель"
 
-#: ../src/f-spot.glade.h:212
+#: ../src/f-spot.glade.h:210
 msgid "Size"
 msgstr "Размер"
 
-#: ../src/f-spot.glade.h:213
+#: ../src/f-spot.glade.h:211
 msgid "Size of the exported selection :"
 msgstr "Размер экспортируемого выделения :"
 
-#: ../src/f-spot.glade.h:214
+#: ../src/f-spot.glade.h:212
 msgid "Small"
 msgstr "Маленький"
 
-#: ../src/f-spot.glade.h:215
+#: ../src/f-spot.glade.h:213
 msgid "So_urce Temp"
 msgstr "_Исходная температура"
 
-#: ../src/f-spot.glade.h:216
+#: ../src/f-spot.glade.h:214
 msgid "Space all photos by"
 msgstr "Установить временной интервал между снимками в"
 
-#: ../src/f-spot.glade.h:217
+#: ../src/f-spot.glade.h:215
 msgid ""
 "Specify if an original size picture should be rotated or not. Smaller sizes "
 "are automatically rotated."
@@ -3190,7 +3141,7 @@
 "Укажите, поворачивать ли снимок исходного размера. Снимки меньшего размера "
 "поворачиваются автоматически."
 
-#: ../src/f-spot.glade.h:218
+#: ../src/f-spot.glade.h:216
 msgid ""
 "Standard RGB\n"
 "Image Profile\n"
@@ -3200,404 +3151,380 @@
 "Профиль снимка\n"
 "Другой профиль\n"
 
-#: ../src/f-spot.glade.h:222
+#: ../src/f-spot.glade.h:220
 msgid "Strip _metadata"
 msgstr "Убрать _метаданные"
 
-#: ../src/f-spot.glade.h:223
+#: ../src/f-spot.glade.h:221
 msgid "Strip image _metadata"
 msgstr "У_брать метаданные снимка"
 
+#: ../src/f-spot.glade.h:222
+msgid "T_ags"
+msgstr "_Метки"
+
+#: ../src/f-spot.glade.h:223
+msgid "Tag Icons"
+msgstr "Значки меток"
+
 #: ../src/f-spot.glade.h:224
-msgid "T_ags"
-msgstr "_Метки"
-
-#: ../src/f-spot.glade.h:225
 msgid "Tags: "
 msgstr "Метки: "
 
-#: ../src/f-spot.glade.h:226
-msgid "Thumbnail _elements"
-msgstr "Эскизы содержат"
-
-#: ../src/f-spot.glade.h:227
+#: ../src/f-spot.glade.h:225
 msgid "Tiny"
 msgstr "Крошечный"
 
-#: ../src/f-spot.glade.h:228
+#: ../src/f-spot.glade.h:226
 msgid "Too_lbar"
 msgstr "_Панель инструментов"
 
-#: ../src/f-spot.glade.h:229
+#: ../src/f-spot.glade.h:227
 msgid "Toolbar"
 msgstr "Панель инструментов"
 
-#: ../src/f-spot.glade.h:230
+#: ../src/f-spot.glade.h:228
 msgid "Total original size"
 msgstr "Общий размер оригиналов"
 
-#: ../src/f-spot.glade.h:231
+#: ../src/f-spot.glade.h:229
 msgid "U_RL:"
 msgstr "U_RL:"
 
-#: ../src/f-spot.glade.h:232
+#: ../src/f-spot.glade.h:230
 msgid "View"
 msgstr "Вид"
 
-#: ../src/f-spot.glade.h:233
+#: ../src/f-spot.glade.h:231
 msgid "Visible to Family"
 msgstr "Видны для членов семьи"
 
-#: ../src/f-spot.glade.h:234
+#: ../src/f-spot.glade.h:232
 msgid "Visible to Friends"
 msgstr "Видны для друзей"
 
-#: ../src/f-spot.glade.h:235
+#: ../src/f-spot.glade.h:233
 msgid "Will print using: US Letter size on Generic Postscript"
 msgstr "Напечатает: на бумаге US Letter в Generic Postscript"
 
-#: ../src/f-spot.glade.h:236
+#: ../src/f-spot.glade.h:234
 msgid "Write _metadata to file"
 msgstr "Записывать _метаданные в файлы"
 
-#: ../src/f-spot.glade.h:237
+#: ../src/f-spot.glade.h:235
 msgid "Zoom _in"
 msgstr "_Приблизить"
 
-#: ../src/f-spot.glade.h:238
+#: ../src/f-spot.glade.h:236
 msgid "Zoom _out"
 msgstr "_Отдалить"
 
-#: ../src/f-spot.glade.h:239
+#: ../src/f-spot.glade.h:237
 msgid "Zoom in"
 msgstr "Приблизить"
 
-#: ../src/f-spot.glade.h:240
+#: ../src/f-spot.glade.h:238
 msgid "Zoom out"
 msgstr "Отдалить"
 
-#: ../src/f-spot.glade.h:241
+#: ../src/f-spot.glade.h:239
 msgid "_Account:"
 msgstr "_Учётная запись:"
 
-#: ../src/f-spot.glade.h:242
+#: ../src/f-spot.glade.h:240
 msgid "_Album Name:"
 msgstr "_Имя альбома:"
 
-#: ../src/f-spot.glade.h:243
+#: ../src/f-spot.glade.h:241
 msgid "_Album Title:"
 msgstr "_Название альбома:"
 
-#: ../src/f-spot.glade.h:245
+#: ../src/f-spot.glade.h:242
+msgid "_Attach Tag"
+msgstr "_Назначить метку"
+
+#: ../src/f-spot.glade.h:243
 msgid "_Attach Tag to Selection"
 msgstr "_Назначить метку выбранному"
 
-#: ../src/f-spot.glade.h:246
+#: ../src/f-spot.glade.h:244
 msgid "_Autorotate"
 msgstr "А_втоматически повернуть"
 
-#: ../src/f-spot.glade.h:247
+#: ../src/f-spot.glade.h:245
 msgid "_Border:"
 msgstr "_Граница:"
 
-#: ../src/f-spot.glade.h:248
+#: ../src/f-spot.glade.h:246
 msgid "_Brightness:"
 msgstr "_Яркость:"
 
-#: ../src/f-spot.glade.h:249
+#: ../src/f-spot.glade.h:247
 msgid "_Browse Previously Scheduled Files"
 msgstr "_Просмотреть ранее отложенные файлы"
 
-#: ../src/f-spot.glade.h:250
+#: ../src/f-spot.glade.h:248
 msgid "_Captcha:"
 msgstr "_Captcha:"
 
-#: ../src/f-spot.glade.h:252
-msgid "_Clear Rating Filter"
-msgstr "_Убрать фильтр оценки"
-
-#: ../src/f-spot.glade.h:253
-msgid "_Clear Roll Filter"
-msgstr "_Убрать фильтр сеансов импорта"
-
-#: ../src/f-spot.glade.h:254
+#: ../src/f-spot.glade.h:249
 msgid "_Components"
 msgstr "П_анели"
 
-#: ../src/f-spot.glade.h:255
+#: ../src/f-spot.glade.h:250
 msgid "_Contents"
 msgstr "_Содержание"
 
-#: ../src/f-spot.glade.h:256
+#: ../src/f-spot.glade.h:251
 msgid "_Dates"
-msgstr "_Дату"
-
-#: ../src/f-spot.glade.h:258
+msgstr "_Даты"
+
+#: ../src/f-spot.glade.h:252
+msgid "_Delete From Drive"
+msgstr "Уд_алить с диска"
+
+#: ../src/f-spot.glade.h:253
 msgid "_Delete Selected Tag"
 msgstr "_Удалить выбранную метку"
 
-#: ../src/f-spot.glade.h:259
+#: ../src/f-spot.glade.h:254
 msgid "_Delete Version"
 msgstr "_Удалить версию"
 
-#: ../src/f-spot.glade.h:260
+#: ../src/f-spot.glade.h:255
 msgid "_Description:"
 msgstr "_Описание:"
 
-#: ../src/f-spot.glade.h:261
+#: ../src/f-spot.glade.h:256
 msgid "_Destination Temp"
 msgstr "Н_овая температура"
 
-#: ../src/f-spot.glade.h:262
+#: ../src/f-spot.glade.h:257
 msgid "_Display:"
 msgstr "_Отображение:"
 
-#: ../src/f-spot.glade.h:263
+#: ../src/f-spot.glade.h:258
 msgid "_Edit"
 msgstr "_Правка"
 
-#: ../src/f-spot.glade.h:264
+#: ../src/f-spot.glade.h:259
 msgid "_Edit Selected Tag..."
 msgstr "_Изменить выбранную метку"
 
-#: ../src/f-spot.glade.h:265
+#: ../src/f-spot.glade.h:260
 msgid "_Export"
 msgstr "_Экспортировать"
 
-#: ../src/f-spot.glade.h:266
+#: ../src/f-spot.glade.h:261
 msgid "_Export tags"
 msgstr "Э_кспортировать метки"
 
-#: ../src/f-spot.glade.h:267
+#: ../src/f-spot.glade.h:262
 msgid "_Export to"
 msgstr "_Экспортировать"
 
-#: ../src/f-spot.glade.h:268
+#: ../src/f-spot.glade.h:263
 msgid "_Export to Album:"
 msgstr "Экспортировать в _альбом:"
 
-#: ../src/f-spot.glade.h:269
+#: ../src/f-spot.glade.h:264
 msgid "_File"
 msgstr "_Файл"
 
-#: ../src/f-spot.glade.h:270
+#: ../src/f-spot.glade.h:265
 msgid "_Flickr"
 msgstr "_Flickr"
 
-#: ../src/f-spot.glade.h:271
+#: ../src/f-spot.glade.h:266
 msgid "_Folder"
 msgstr "_Папка"
 
-#: ../src/f-spot.glade.h:272
+#: ../src/f-spot.glade.h:267
 msgid "_Folder:"
 msgstr "_Папка:"
 
-#: ../src/f-spot.glade.h:273
+#: ../src/f-spot.glade.h:268
 msgid "_Fullscreen"
 msgstr "_Во весь экран"
 
-#: ../src/f-spot.glade.h:274
+#: ../src/f-spot.glade.h:269
 msgid "_Gallery"
 msgstr "_Галерея"
 
-#: ../src/f-spot.glade.h:275
+#: ../src/f-spot.glade.h:270
 msgid "_Gallery Name:"
 msgstr "_Имя галереи:"
 
-#: ../src/f-spot.glade.h:276
+#: ../src/f-spot.glade.h:271
 msgid "_Gallery:"
 msgstr "_Галерея:"
 
-#: ../src/f-spot.glade.h:277
+#: ../src/f-spot.glade.h:272
 msgid "_Help"
 msgstr "_Справка"
 
-#: ../src/f-spot.glade.h:278
+#: ../src/f-spot.glade.h:273
 msgid "_Hidden"
 msgstr "_Скрыты"
 
-#: ../src/f-spot.glade.h:279
+#: ../src/f-spot.glade.h:274
 msgid "_Hue:"
 msgstr "_Тон:"
 
-#: ../src/f-spot.glade.h:280
+#: ../src/f-spot.glade.h:275
 msgid "_Icon:"
 msgstr "_Значок:"
 
-#: ../src/f-spot.glade.h:281
+#: ../src/f-spot.glade.h:276
 msgid "_Import..."
 msgstr "_Добавить..."
 
-#: ../src/f-spot.glade.h:282
+#: ../src/f-spot.glade.h:277
 msgid "_Large"
 msgstr "_Большие"
 
-#: ../src/f-spot.glade.h:283
-msgid "_Last Import Roll"
-msgstr "По_следний сеанс импорта"
-
-#: ../src/f-spot.glade.h:284
+#: ../src/f-spot.glade.h:278
 msgid "_Medium"
 msgstr "Ср_еднего размера"
 
-#: ../src/f-spot.glade.h:285
+#: ../src/f-spot.glade.h:279
 msgid "_Metadata Browser"
 msgstr "Посмотреть _метаданные"
 
-#: ../src/f-spot.glade.h:286
+#: ../src/f-spot.glade.h:280
 msgid "_Month"
 msgstr "_Месяц"
 
-#: ../src/f-spot.glade.h:287
+#: ../src/f-spot.glade.h:281
 msgid "_New Window"
 msgstr "_Новое окно"
 
-#: ../src/f-spot.glade.h:288
+#: ../src/f-spot.glade.h:282
 msgid "_Open album in browser when done uploading"
 msgstr "Открыть _альбом в браузере по завершении закачки"
 
-#: ../src/f-spot.glade.h:289
+#: ../src/f-spot.glade.h:283
 msgid "_Open destination when done exporting"
 msgstr "Открыть _каталог по завершении экспорта"
 
-#: ../src/f-spot.glade.h:290
+#: ../src/f-spot.glade.h:284
 msgid "_Output:"
 msgstr "На _выходе:"
 
-#: ../src/f-spot.glade.h:291
+#: ../src/f-spot.glade.h:285
 msgid "_Parent Album:"
 msgstr "_Родительская метка:"
 
-#: ../src/f-spot.glade.h:292
+#: ../src/f-spot.glade.h:286
 msgid "_Password:"
 msgstr "_Пароль:"
 
-#: ../src/f-spot.glade.h:293
+#: ../src/f-spot.glade.h:287
 msgid "_Quit"
 msgstr "В_ыход"
 
-#: ../src/f-spot.glade.h:294
-msgid "_Ratings"
-msgstr "О_ценки"
+#: ../src/f-spot.glade.h:288
+msgid "_Remove From Catalog"
+msgstr "Удалить из _каталога"
 
-#: ../src/f-spot.glade.h:296
+#: ../src/f-spot.glade.h:289
 msgid "_Remove Tag From Selection"
 msgstr "Снять _метку с выбранного"
 
-#: ../src/f-spot.glade.h:297
+#: ../src/f-spot.glade.h:290
 msgid "_Rename Version"
 msgstr "Пере_именовать версию"
 
-#: ../src/f-spot.glade.h:298
+#: ../src/f-spot.glade.h:291
 msgid "_Resize to: "
 msgstr "_Масштабировать до: "
 
-#: ../src/f-spot.glade.h:300
+#: ../src/f-spot.glade.h:293
 msgid "_Saturation:"
 msgstr "_Насыщенность:"
 
-#: ../src/f-spot.glade.h:301
+#: ../src/f-spot.glade.h:294
 msgid "_Save the files only"
 msgstr "_Сохранить только файлы"
 
-#: ../src/f-spot.glade.h:302
+#: ../src/f-spot.glade.h:295
 msgid "_Scale photos to no larger than: "
 msgstr "_Масштабировать снимки до не более чем: "
 
-#: ../src/f-spot.glade.h:303
-msgid "_Select Import Rolls..."
-msgstr "_Выбрать сеансы импорта..."
-
-#: ../src/f-spot.glade.h:304
-msgid "_Set Date Range..."
-msgstr "_Установить диапазон дат..."
-
-#: ../src/f-spot.glade.h:305
-msgid "_Set Rating filter..."
-msgstr "_Включить фильтр оценок..."
-
-#: ../src/f-spot.glade.h:306
+#: ../src/f-spot.glade.h:296
 msgid "_Sharpen..."
 msgstr "_Увеличить резкость..."
 
-#: ../src/f-spot.glade.h:307
+#: ../src/f-spot.glade.h:297
 msgid "_Slideshow"
 msgstr "_Слайдшоу"
 
-#: ../src/f-spot.glade.h:308
+#: ../src/f-spot.glade.h:298
 msgid "_Small"
 msgstr "_Маленькие"
 
-#: ../src/f-spot.glade.h:309
+#: ../src/f-spot.glade.h:299
 msgid "_Strip metadata"
 msgstr "_Убрать метаданные"
 
-#: ../src/f-spot.glade.h:310
-msgid "_Tag Icons"
-msgstr "Значки _меток"
-
-#: ../src/f-spot.glade.h:311
+#: ../src/f-spot.glade.h:300
 msgid "_Tag Name:"
 msgstr "_Имя метки:"
 
-#: ../src/f-spot.glade.h:312
+#: ../src/f-spot.glade.h:301
 msgid "_Tags"
 msgstr "_Метки"
 
-#: ../src/f-spot.glade.h:313
+#: ../src/f-spot.glade.h:302
 msgid "_Timeline"
 msgstr "_Шкала времени"
 
-#: ../src/f-spot.glade.h:314
+#: ../src/f-spot.glade.h:303
 msgid "_Title:"
 msgstr "_Название:"
 
-#: ../src/f-spot.glade.h:315
+#: ../src/f-spot.glade.h:304
 msgid "_Tools"
 msgstr "С_ервис"
 
-#: ../src/f-spot.glade.h:316
+#: ../src/f-spot.glade.h:305
 msgid "_URI:"
 msgstr "_URI:"
 
-#: ../src/f-spot.glade.h:317
-msgid "_Unrated Photos"
-msgstr "_Снимки без оценки"
-
-#: ../src/f-spot.glade.h:318
+#: ../src/f-spot.glade.h:306
 msgid "_Untagged Photos"
 msgstr "_Некатегоризованные снимки"
 
-#: ../src/f-spot.glade.h:319
+#: ../src/f-spot.glade.h:307
 msgid "_Username:"
 msgstr "И_мя пользователя:"
 
-#: ../src/f-spot.glade.h:320
+#: ../src/f-spot.glade.h:308
 msgid "_Version"
 msgstr "_Версия"
 
-#: ../src/f-spot.glade.h:321
+#: ../src/f-spot.glade.h:309
 msgid "_View"
 msgstr "_Вид"
 
-#: ../src/f-spot.glade.h:322
+#: ../src/f-spot.glade.h:310
 msgid "_View photos in browser when done uploading"
 msgstr "Просмотреть в _браузере по завершении загрузки"
 
-#: ../src/f-spot.glade.h:323
+#: ../src/f-spot.glade.h:311
 msgid "_Virtual Filesystem"
 msgstr "_Виртуальная файловая система"
 
-#: ../src/f-spot.glade.h:324
+#: ../src/f-spot.glade.h:312
 msgid "_Write only these photos to CD"
 msgstr "З_аписать на CD только эти снимки"
 
-#: ../src/f-spot.glade.h:325
+#: ../src/f-spot.glade.h:313
 msgid "and"
 msgstr "и"
 
 #. at, or after a date, or between dates
-#: ../src/f-spot.glade.h:327
+#: ../src/f-spot.glade.h:315
 msgid ""
 "at\n"
 "after\n"
@@ -3607,19 +3534,43 @@
 "после\n"
 "между"
 
-#: ../src/f-spot.glade.h:330
+#: ../src/f-spot.glade.h:318
+msgid "dialog1"
+msgstr "dialog1"
+
+#: ../src/f-spot.glade.h:319
 msgid "difference:"
 msgstr "с разницей в:"
 
-#: ../src/f-spot.glade.h:331
+#: ../src/f-spot.glade.h:320
+msgid "gtk-about"
+msgstr "gtk-about"
+
+#: ../src/f-spot.glade.h:321
+msgid "gtk-close"
+msgstr "gtk-close"
+
+#: ../src/f-spot.glade.h:322
+msgid "gtk-open"
+msgstr "gtk-open"
+
+#: ../src/f-spot.glade.h:323
+msgid "gtk-preferences"
+msgstr "gtk-preferences"
+
+#: ../src/f-spot.glade.h:324
+msgid "gtk-print"
+msgstr "gtk-print"
+
+#: ../src/f-spot.glade.h:325
 msgid "img_000.jpg"
 msgstr "img_000.jpg"
 
-#: ../src/f-spot.glade.h:334
+#: ../src/f-spot.glade.h:328
 msgid "pixels"
 msgstr "пикселов"
 
-#: ../src/f-spot.glade.h:335
+#: ../src/f-spot.glade.h:329
 msgid "x"
 msgstr "x"
 
@@ -3631,54 +3582,9 @@
 msgid "F-Spot photos"
 msgstr "Снимки в F-Spot"
 
-#~ msgid "Beneath _Photos"
-#~ msgstr "Под сн_имками"
-
-#~ msgid "Clea_r Date Range"
-#~ msgstr "О_чистить диапазон дат"
-
-#~ msgid "Attach Tag"
-#~ msgstr "Назначить метку"
-
-#~ msgid "Delete From Drive"
-#~ msgstr "Удалить с диска"
-
-#~ msgid "Remove From Catalog"
-#~ msgstr "Удалить из каталога"
-
-#~ msgid "Remove Tag"
-#~ msgstr "Снять метку"
-
-#~ msgid "Add-in"
-#~ msgstr "Расширение"
-
-#~ msgid "Add-in Manager"
-#~ msgstr "Управление расширениями"
-
-#~ msgid "F-Spot Add-in Manager"
-#~ msgstr "Управление расширениями F-Spot"
-
 #~ msgid "Create mail..."
 #~ msgstr "Создать письмо..."
 
-#~ msgid "dialog1"
-#~ msgstr "dialog1"
-
-#~ msgid "gtk-about"
-#~ msgstr "gtk-about"
-
-#~ msgid "gtk-close"
-#~ msgstr "gtk-close"
-
-#~ msgid "gtk-open"
-#~ msgstr "gtk-open"
-
-#~ msgid "gtk-preferences"
-#~ msgstr "gtk-preferences"
-
-#~ msgid "gtk-print"
-#~ msgstr "gtk-print"
-
 #~ msgid "Web Gallery..."
 #~ msgstr "Веб-галерея..."
 
@@ -3694,6 +3600,9 @@
 #~ msgid "Remove"
 #~ msgstr "Удалить"
 
+#~ msgid "Display T_ags"
+#~ msgstr "Показать _метки"
+
 #~ msgid "Display Too_lbar"
 #~ msgstr "Показать панель _инструментов"
 

=== modified file 'src/AsyncPixbufLoader.cs'
--- src/AsyncPixbufLoader.cs	2007-03-13 20:45:44 +0000
+++ src/AsyncPixbufLoader.cs	2008-02-27 11:46:37 +0000
@@ -92,7 +92,7 @@
 			get { return loader; }
 		}
 		
-		private void FileLoad (ImageFile img)
+		private void FileLoad (MediaFile img)
 		{
 			pixbuf = img.Load ();
 			done_reading = true;
@@ -113,7 +113,7 @@
 			area_prepared = false;
 			damage = Gdk.Rectangle.Zero;
 
-			using (ImageFile img = ImageFile.Create (uri)) {
+			using (MediaFile img = MediaFile.Create (uri)) {
 				orientation = Accelerometer.GetViewOrientation (img.Orientation);
 			
 				try {

=== modified file 'src/ColorAdjustment.cs'
--- src/ColorAdjustment.cs	2007-10-24 23:32:54 +0000
+++ src/ColorAdjustment.cs	2008-02-27 11:46:37 +0000
@@ -44,7 +44,7 @@
 		public void Adjust ()
 		{
 			bool create_version = photo.DefaultVersion.IsProtected;
-			using (ImageFile img = ImageFile.Create (photo.DefaultVersionUri)) {
+			using (MediaFile img = MediaFile.Create (photo.DefaultVersionUri)) {
 				if (image == null)
 					image = img.Load ();
 			

=== modified file 'src/ColorDialog.cs'
--- src/ColorDialog.cs	2008-01-18 20:55:09 +0000
+++ src/ColorDialog.cs	2008-02-27 11:46:37 +0000
@@ -257,7 +257,7 @@
 				if (!view.Item.IsValid)
  					throw new Exception ("Invalid Image");
 				
-				using (FSpot.ImageFile img = FSpot.ImageFile.Create (((Photo)view.Item.Current).DefaultVersionUri)) {
+				using (FSpot.MediaFile img = FSpot.MediaFile.Create (((Photo)view.Item.Current).DefaultVersionUri)) {
  					try {
  						image_profile = img.GetProfile ();
  					} catch (System.Exception e) {

=== modified file 'src/Core/Photo.cs'
--- src/Core/Photo.cs	2008-02-20 15:30:51 +0000
+++ src/Core/Photo.cs	2008-02-27 11:46:36 +0000
@@ -283,7 +283,7 @@
 		public uint SaveVersion (Gdk.Pixbuf buffer, bool create_version)
 		{
 			uint version = DefaultVersionId;
-			using (ImageFile img = ImageFile.Create (DefaultVersionUri)) {
+			using (MediaFile img = MediaFile.Create (DefaultVersionUri)) {
 				// Always create a version if the source is not a jpeg for now.
 				create_version = create_version || !(img is FSpot.JpegFile);
 	

=== modified file 'src/Editors/SoftFocus.cs'
--- src/Editors/SoftFocus.cs	2008-01-30 11:23:58 +0000
+++ src/Editors/SoftFocus.cs	2008-02-27 11:46:36 +0000
@@ -75,7 +75,7 @@
 			BrowsablePointer item = view.Item;
 			EditTarget target = new EditTarget (item);
 			try { 
-				using (ImageFile img = ImageFile.Create (item.Current.DefaultVersionUri)) {
+				using (MediaFile img = MediaFile.Create (item.Current.DefaultVersionUri)) {
 
 					Cairo.Format format = view.CompletePixbuf ().HasAlpha ? Cairo.Format.Argb32 : Cairo.Format.Rgb24;
 
@@ -87,7 +87,7 @@
 					effect.OnExpose (ctx, info.Bounds);
 					((IDisposable)ctx).Dispose ();
 
-					string tmp = ImageFile.TempPath (item.Current.DefaultVersionUri.LocalPath);
+					string tmp = MediaFile.TempPath (item.Current.DefaultVersionUri.LocalPath);
 					using (Gdk.Pixbuf output = Widgets.CairoUtils.CreatePixbuf (dest)) {
 						using (System.IO.Stream stream = System.IO.File.OpenWrite (tmp)) {
 							img.Save (output, stream);

=== modified file 'src/FileBrowsableItem.cs'
--- src/FileBrowsableItem.cs	2008-01-30 11:23:58 +0000
+++ src/FileBrowsableItem.cs	2008-02-27 11:46:37 +0000
@@ -18,7 +18,7 @@
 namespace FSpot {
 	public class FileBrowsableItem : IBrowsableItem, IDisposable
 	{
-		ImageFile img;
+		MediaFile img;
 		Uri uri;
 		bool attempted;
 
@@ -32,10 +32,10 @@
 			this.uri = UriUtils.PathToFileUri (path);
 		}
 
-		protected ImageFile Image {
+		protected MediaFile Image {
 			get {
 				if (!attempted) {
-					img = ImageFile.Create (uri);
+					img = MediaFile.Create (uri);
 					attempted = true;
 				}
 

=== modified file 'src/FileImportBackend.cs'
--- src/FileImportBackend.cs	2008-02-20 15:05:04 +0000
+++ src/FileImportBackend.cs	2008-02-27 11:46:37 +0000
@@ -56,7 +56,7 @@
 	
 	private void AddPath (string path)
 	{
-		if (FSpot.ImageFile.HasLoader (path))
+		if (FSpot.MediaFile.HasLoader (path))
 			import_info.Add (new ImportInfo (path));
 	}
 
@@ -149,7 +149,7 @@
 	{
 		string name = System.IO.Path.GetFileName (path);
 		DateTime time;
-		using (FSpot.ImageFile img = FSpot.ImageFile.Create (path)) {
+		using (FSpot.MediaFile img = FSpot.MediaFile.Create (path)) {
 			time = img.Date;
 		}
 
@@ -218,6 +218,11 @@
 				photo = store.Create (info.DestinationPath, roll.Id, out thumbnail);
 			} else {
 				System.IO.File.Copy (info.OriginalPath, destination);
+				string canon_thumbnail = System.IO.Path.ChangeExtension (info.OriginalPath, "thm");
+				if (System.IO.File.Exists (canon_thumbnail)) {
+					string destinationThumbnail = System.IO.Path.ChangeExtension (destination, "thm");
+					System.IO.File.Copy (canon_thumbnail, destinationThumbnail);
+				}
 				info.DestinationPath = destination;
 
 				photo = store.Create (info.DestinationPath, info.OriginalPath, roll.Id, out thumbnail);

=== modified file 'src/Filters/ColorFilter.cs'
--- src/Filters/ColorFilter.cs	2007-03-13 21:01:13 +0000
+++ src/Filters/ColorFilter.cs	2008-02-27 11:46:37 +0000
@@ -92,7 +92,7 @@
 					Assert.IsTrue (new FileInfo (req.Current.LocalPath).Length > 0,
 						       "Error: " + req.Current.LocalPath + "is Zero length");
 					//req.Preserve (req.Current);
-					using (ImageFile img = ImageFile.Create (req.Current)) {
+					using (MediaFile img = MediaFile.Create (req.Current)) {
 						Pixbuf pixbuf = img.Load ();
 						Assert.IsNotNull (pixbuf);
 					}
@@ -164,7 +164,7 @@
 		public bool Convert (FilterRequest req)
 		{
 			Uri source = req.Current;
-			using (ImageFile img = ImageFile.Create (source)) {
+			using (MediaFile img = MediaFile.Create (source)) {
 				pixbuf = img.Load ();
 				profile = img.GetProfile ();
 	
@@ -273,7 +273,7 @@
 						       "Error: Did not create " + req.Current);
 					Assert.IsTrue (new FileInfo (req.Current.LocalPath).Length > 0,
 						       "Error: " + req.Current + "is Zero length");
-					using (ImageFile img = ImageFile.Create (req.Current)) {
+					using (MediaFile img = MediaFile.Create (req.Current)) {
 						Pixbuf pixbuf = img.Load ();
 						Assert.IsNotNull (pixbuf);
 					}
@@ -296,7 +296,7 @@
 						       "Error: Did not create " + req.Current);
 					Assert.IsTrue (new FileInfo (req.Current.LocalPath).Length > 0,
 						       "Error: " + req.Current + "is Zero length");
-					using (ImageFile img = ImageFile.Create (req.Current)) {
+					using (MediaFile img = MediaFile.Create (req.Current)) {
 						Pixbuf pixbuf = img.Load ();
 						Assert.IsNotNull (pixbuf);
 						// We linearized to all black so this should pass the gray test

=== modified file 'src/Filters/JpegFilter.cs'
--- src/Filters/JpegFilter.cs	2007-03-13 20:45:44 +0000
+++ src/Filters/JpegFilter.cs	2008-02-27 11:47:40 +0000
@@ -36,7 +36,7 @@
 			// even when the source is not a jpeg
 			string source = req.Current.LocalPath;
 
-			using (ImageFile img = ImageFile.Create (source)) {
+			using (MediaFile img = MediaFile.Create (source)) {
 				if (img is JpegFile)
 					return false;
 
@@ -79,7 +79,7 @@
 				IFilter filter = new JpegFilter ();
 				FilterRequest req = new FilterRequest (path);
 				filter.Convert (req);
-				using (ImageFile img = new JpegFile (req.Current)) {
+				using (MediaFile img = new JpegFile (req.Current)) {
 					Assert.IsTrue (img != null, "result is null");
 					Assert.IsTrue (img is JpegFile, "result is not a jpg");
 				}

=== modified file 'src/Filters/OrientationFilter.cs'
--- src/Filters/OrientationFilter.cs	2007-03-13 20:45:44 +0000
+++ src/Filters/OrientationFilter.cs	2008-02-27 11:46:37 +0000
@@ -20,7 +20,7 @@
 			System.Uri dest_uri = req.TempUri (System.IO.Path.GetExtension (source));
 			string dest = dest_uri.LocalPath;
 
-			using (ImageFile img = ImageFile.Create (source)) {
+			using (MediaFile img = MediaFile.Create (source)) {
 				bool changed = false;
 				
 				if (img.Orientation != PixbufOrientation.TopLeft && img is JpegFile) {
@@ -45,7 +45,7 @@
 					
 					int width, height;
 	
-					jimg = ImageFile.Create (dest) as JpegFile;
+					jimg = MediaFile.Create (dest) as JpegFile;
 					
 					PixbufUtils.GetSize (dest, out width, out height);
 	

=== modified file 'src/Filters/ResizeFilter.cs'
--- src/Filters/ResizeFilter.cs	2007-03-13 20:45:44 +0000
+++ src/Filters/ResizeFilter.cs	2008-02-27 11:46:37 +0000
@@ -43,7 +43,7 @@
 			System.Uri dest_uri = req.TempUri (System.IO.Path.GetExtension (source));
 			string dest = dest_uri.LocalPath;
 
-			using (ImageFile img = ImageFile.Create (source)) {
+			using (MediaFile img = MediaFile.Create (source)) {
 
 				using (Pixbuf pixbuf = img.Load ()) {
 					if (pixbuf.Width < size && pixbuf.Height < size)

=== modified file 'src/Filters/SharpFilter.cs'
--- src/Filters/SharpFilter.cs	2007-03-13 20:45:44 +0000
+++ src/Filters/SharpFilter.cs	2008-02-27 11:46:37 +0000
@@ -30,7 +30,7 @@
 		{
 			Uri dest_uri = req.TempUri (System.IO.Path.GetExtension (req.Current.LocalPath));
 
-			using (ImageFile img = ImageFile.Create (req.Current)) {
+			using (MediaFile img = MediaFile.Create (req.Current)) {
 				using (Pixbuf in_pixbuf = img.Load ()) {
 					using (Pixbuf out_pixbuf = PixbufUtils.UnsharpMask (in_pixbuf, radius, amount, threshold)) {
 						string destination_extension = Path.GetExtension (dest_uri.LocalPath);

=== modified file 'src/Filters/TiltFilter.cs'
--- src/Filters/TiltFilter.cs	2007-07-26 15:29:51 +0000
+++ src/Filters/TiltFilter.cs	2008-02-27 11:46:37 +0000
@@ -34,7 +34,7 @@
 			string source = req.Current.LocalPath;
 			Uri dest = req.TempUri (System.IO.Path.GetExtension (source));
 			
-			using (ImageFile img = ImageFile.Create (source)) {
+			using (MediaFile img = MediaFile.Create (source)) {
 				using (Pixbuf pixbuf = img.Load ()) {
 					using (ImageInfo info = new ImageInfo (pixbuf)) {
 						MemorySurface surface = new MemorySurface (Format.Argb32, 

=== modified file 'src/Imaging/ImageFile.cs'
--- src/Imaging/ImageFile.cs	2008-01-30 11:23:58 +0000
+++ src/Imaging/ImageFile.cs	2008-02-27 12:25:08 +0000
@@ -9,83 +9,16 @@
 		}
 	}
 
-	public class ImageFile : IDisposable {
-		protected Uri uri;
-
-		static System.Collections.Hashtable name_table;
-
-		public ImageFile (string path) 
-		{
-			this.uri = UriUtils.PathToFileUri (path);
-		}
-		
-		public ImageFile (Uri uri)
-		{
-			this.uri = uri;
-		}
-		
-		protected Stream Open ()
-		{
-			//Gnome.Vfs.Uri vfs = new Gnome.Vfs.Uri (uri.ToString ());
-			// FIXME, this seems like the sane thing to do, but vfs streams seem to 
-			// actually be faster and they need more testing.
-			//if (vfs.IsLocal)
-			//	return File.OpenRead (uri.LocalPath);
-
-			System.Console.WriteLine ("open uri = {0}", uri.ToString ());
-			return new Gnome.Vfs.VfsStream (uri.ToString (), FileMode.Open);
-		}
-
-		public virtual Stream PixbufStream ()
-		{
-			return Open ();
-		}
-
-		static ImageFile ()
-		{
-			name_table = new System.Collections.Hashtable ();
-			name_table [".svg"] = typeof (FSpot.Svg.SvgFile);
-			name_table [".gif"] = typeof (ImageFile);
-			name_table [".bmp"] = typeof (ImageFile);
-			name_table [".jpeg"] = typeof (JpegFile);
-			name_table [".jpg"] = typeof (JpegFile);
-			name_table [".png"] = typeof (FSpot.Png.PngFile);
-			name_table [".cr2"] = typeof (FSpot.Tiff.Cr2File);
-			name_table [".nef"] = typeof (FSpot.Tiff.NefFile);
-			name_table [".pef"] = typeof (FSpot.Tiff.NefFile);
-			name_table [".raw"] = typeof (FSpot.Tiff.NefFile);
-			name_table [".kdc"] = typeof (FSpot.Tiff.NefFile);
-			name_table [".arw"] = typeof (FSpot.Tiff.NefFile);
-			name_table [".tiff"] = typeof (FSpot.Tiff.TiffFile);
-			name_table [".tif"] = typeof (FSpot.Tiff.TiffFile);
-			name_table [".orf"] =  typeof (FSpot.Tiff.NefFile);
-			name_table [".srf"] = typeof (FSpot.Tiff.NefFile);
-			name_table [".dng"] = typeof (FSpot.Tiff.DngFile);
-			name_table [".crw"] = typeof (FSpot.Ciff.CiffFile);
-			name_table [".ppm"] = typeof (FSpot.Pnm.PnmFile);
-			name_table [".mrw"] = typeof (FSpot.Mrw.MrwFile);
-			name_table [".raf"] = typeof (FSpot.Raf.RafFile);
-			name_table [".x3f"] = typeof (FSpot.X3f.X3fFile);
-		}
-
-		public Uri Uri {
-			get { return this.uri; }
-		}
-
-		public PixbufOrientation Orientation {
-			get { return GetOrientation (); }
-		}
-
-		public virtual string Description
-		{
-			get { return null; }
-		}
-		
-		public virtual void Save (Gdk.Pixbuf pixbuf, System.IO.Stream stream)
-		{
-			throw new NotImplementedException ();
-		}
-
+	public class ImageFile : MediaFile {
+
+		public ImageFile (Uri uri) : base (uri)
+		{
+		}
+		
+		public ImageFile (string path) : base (path)
+		{
+		}
+		
 		protected Gdk.Pixbuf TransformAndDispose (Gdk.Pixbuf orig)
 		{
 			if (orig == null)
@@ -99,7 +32,7 @@
 			return rotated;
 		}
 		
-		public virtual Gdk.Pixbuf Load ()
+		public override Gdk.Pixbuf Load ()
 		{
 			using (Stream stream = PixbufStream ()) {
 				Gdk.Pixbuf orig = new Gdk.Pixbuf (stream);
@@ -107,7 +40,7 @@
 			}
 		}
 		
-		public virtual Gdk.Pixbuf Load (int max_width, int max_height)
+		public override Gdk.Pixbuf Load (int max_width, int max_height)
 		{
 			System.IO.Stream stream = PixbufStream ();
 			if (stream == null) {
@@ -123,97 +56,16 @@
 			}	
 		}
 	
-		public virtual PixbufOrientation GetOrientation () 
-		{
-			return PixbufOrientation.TopLeft;
-		}
-		
-		// FIXME this need to have an intent just like the loading stuff.
-		public virtual Cms.Profile GetProfile ()
-		{
-			return null;
-		}
-		
-		public virtual System.DateTime Date 
-		{
-			get {
-				// FIXME mono uses the file change time (ctime) incorrectly
-				// as the creation time so we try to work around that slightly
-				Gnome.Vfs.FileInfo info = new Gnome.Vfs.FileInfo (uri.ToString ());
-
-				DateTime create = info.Ctime;
-				DateTime write = info.Mtime;
-
-				if (create < write)
-					return create;
-				else 
-					return write;
-			}
-		}
-
-		public static bool HasLoader (string path)
-		{
-			return HasLoader (UriUtils.PathToFileUri (path));
-		}
-		
-		public static bool HasLoader (Uri uri)
-		{
-			string path = uri.AbsolutePath;
-			string extension = System.IO.Path.GetExtension (path).ToLower ();
-			System.Type t = (System.Type) name_table [extension];
-			
-			return (t != null);
-		}
-
-		public static ImageFile Create (string path)
+ 		public static ImageFile Create (string path)
 		{
 			return Create (UriUtils.PathToFileUri (path));
 		}
 
-		public static ImageFile Create (Uri uri)
-		{
-			string path = uri.AbsolutePath;
-			string extension = System.IO.Path.GetExtension (path).ToLower ();
-			System.Type t = (System.Type) name_table [extension];
-			ImageFile img;
-
-			if (t != null)
-				img = (ImageFile) System.Activator.CreateInstance (t, new object[] { uri });
-			else 
-				img = new ImageFile (uri);
-
-			return img;
-		}
-		
-		// FIXME these are horrible hacks to get a temporary name
-		// with the right extension for ImageFile until we use the mime data
-		// properly.  It is here to make sure we can find the places that use
-		// this hack
-		public static string TempPath (string name)
-		{
-			return TempPath (name, System.IO.Path.GetExtension (name));
-		}
-		
-		public static string TempPath (string name, string extension)
-		{
-			string temp = System.IO.Path.GetTempFileName ();
-			string imgtemp = temp + "." + extension;
-
-			System.IO.File.Move (temp, imgtemp);
-
-			return imgtemp;
-		}
-
-		public void Dispose ()
-		{
-			Close ();
-			GC.SuppressFinalize (this);
-		}
-
-		protected virtual void Close ()
-		{
-		}
-
+ 		public static ImageFile Create (Uri uri)
+		{
+ 			return (ImageFile) MediaFile.Create (uri);
+		}
+		
 		public static bool IsRaw (string name)
 		{
 			string [] raw_extensions = {".nef", ".crw", ".cr2", ".arw", ".mrw", ".pef", ".dng"};
@@ -231,5 +83,11 @@
 					return true;
 			return false;
 		}
+		
+		public override Gdk.Pixbuf Print(Gdk.Pixbuf image)
+		{
+			image.Dispose ();
+			return image;
+		}		
 	} 
 }

=== modified file 'src/Imaging/JpegFile.cs'
--- src/Imaging/JpegFile.cs	2007-02-28 14:02:55 +0000
+++ src/Imaging/JpegFile.cs	2008-02-27 11:46:37 +0000
@@ -287,7 +287,7 @@
 			return orientation;
 		}
 		
-		public void SetOrientation (PixbufOrientation orientation)
+		public override void SetOrientation (PixbufOrientation orientation)
 		{
 			Exif.ExifEntry e = this.ExifData.GetContents (Exif.Ifd.Zero).GetEntry (Exif.Tag.Orientation);
 			// System.Console.WriteLine ("Saving orientation as {0}", orientation);

=== modified file 'src/InfoBox.cs'
--- src/InfoBox.cs	2008-02-20 16:49:48 +0000
+++ src/InfoBox.cs	2008-02-27 11:46:37 +0000
@@ -143,7 +143,7 @@
 #if USE_EXIF_DATE
 		DateTime date;
 #endif
-		public ImageInfo (ImageFile img) 
+		public ImageInfo (MediaFile img) 
 		{
 			// FIXME We use the memory store to hold the anonymous statements
 			// as they are added so that we can query for them later to 
@@ -165,6 +165,12 @@
 				}
 			}
 
+			string imgPath = img.Uri.AbsolutePath;
+			if (img is VideoCanonFile) {
+				VideoCanonFile vcf = (VideoCanonFile)img;
+				width = vcf.GetVideoWidth ().ToString ();
+				height = vcf.GetVideoHeight ().ToString ();
+			}
 			if (img is JpegFile) {
 				int real_width;
 				int real_height;
@@ -268,8 +274,7 @@
 		name_label.Text = photo.Name != null ? System.Uri.UnescapeDataString(photo.Name) : String.Empty;
 		try {
 			//using (new Timer ("building info")) {
-				using (ImageFile img = ImageFile.Create (photo.DefaultVersionUri))
-				{
+ 				using (MediaFile img = MediaFile.Create (photo.DefaultVersionUri)) {
 					info = new ImageInfo (img);
 				}
 				//}

=== modified file 'src/InfoDisplay.cs'
--- src/InfoDisplay.cs	2008-01-18 20:35:47 +0000
+++ src/InfoDisplay.cs	2008-02-27 11:46:37 +0000
@@ -44,8 +44,13 @@
 					exif_info.Dispose ();
 
 				if (photo != null) {
-					if (File.Exists (photo.DefaultVersionUri.LocalPath))
-						exif_info = new Exif.ExifData (photo.DefaultVersionUri.LocalPath);
+					if (File.Exists (photo.DefaultVersionUri.LocalPath)) {
+						string metadata_file = System.IO.Path.ChangeExtension (photo.DefaultVersionUri.LocalPath, "thm");
+						if (File.Exists (metadata_file))
+							exif_info = new Exif.ExifData (metadata_file);
+						else
+							exif_info = new Exif.ExifData (photo.DefaultVersionUri.LocalPath);
+					}
 				} else {
 					exif_info = null;
 				}
@@ -201,7 +206,7 @@
 			if (photo != null) {
 				MetadataStore store = new MetadataStore ();
 				try {
-					using (ImageFile img = ImageFile.Create (photo.DefaultVersionUri)) {
+					using (MediaFile img = MediaFile.Create (photo.DefaultVersionUri)) {
 						if (img is SemWeb.StatementSource) {
 							StatementSource source = (StatementSource)img;
 							source.Select (store);

=== modified file 'src/Jobs/SyncMetadataJob.cs'
--- src/Jobs/SyncMetadataJob.cs	2008-02-15 08:33:51 +0000
+++ src/Jobs/SyncMetadataJob.cs	2008-02-27 11:46:37 +0000
@@ -47,25 +47,38 @@
 		void WriteMetadataToImage (Photo photo)
 		{
 			string path = photo.DefaultVersionUri.LocalPath;
-	
-			using (FSpot.ImageFile img = FSpot.ImageFile.Create (photo.DefaultVersionUri)) {
-				if (img is FSpot.JpegFile) {
-					FSpot.JpegFile jimg = img as FSpot.JpegFile;
-				
-					jimg.SetDescription (photo.Description);
-					jimg.SetDateTimeOriginal (photo.Time.ToLocalTime ());
-					jimg.SetXmp (UpdateXmp (photo, jimg.Header.GetXmp ()));
-	
-					jimg.SaveMetaData (path);
-				} else if (img is FSpot.Png.PngFile) {
-					FSpot.Png.PngFile png = img as FSpot.Png.PngFile;
-				
-					if (img.Description != photo.Description)
-						png.SetDescription (photo.Description);
-				
-					png.SetXmp (UpdateXmp (photo, png.GetXmp ()));
-	
-					png.Save (path);
+			string canon_thumbnail = System.IO.Path.ChangeExtension(path, "thm");
+	
+			if (System.IO.Path.GetExtension (path) == ".avi") {
+				if (System.IO.File.Exists (canon_thumbnail)) {
+				       using (FSpot.VideoCanonFile vid = FSpot.VideoCanonFile.Create (photo.DefaultVersionUri)) {
+					       vid.SetDescription (photo.Description);
+					       vid.SetDateTimeOriginal (photo.Time.ToLocalTime ());
+					       vid.SetXmp (UpdateXmp (photo, vid.Header.GetXmp ()));
+					       
+					       vid.SaveMetaData (canon_thumbnail);
+				       }
+			       }
+		       } else {
+				using (FSpot.MediaFile img = FSpot.MediaFile.Create (photo.DefaultVersionUri)) {
+					if (img is FSpot.JpegFile) {
+						FSpot.JpegFile jimg = img as FSpot.JpegFile;
+					
+						jimg.SetDescription (photo.Description);
+						jimg.SetDateTimeOriginal (photo.Time.ToLocalTime ());
+						jimg.SetXmp (UpdateXmp (photo, jimg.Header.GetXmp ()));
+		
+						jimg.SaveMetaData (path);
+					} else if (img is FSpot.Png.PngFile) {
+						FSpot.Png.PngFile png = img as FSpot.Png.PngFile;
+					
+						if (img.Description != photo.Description)
+							png.SetDescription (photo.Description);
+					
+						png.SetXmp (UpdateXmp (photo, png.GetXmp ()));
+		
+						png.Save (path);
+					}
 				}
 			}
 		}

=== modified file 'src/Makefile.am'
--- src/Makefile.am	2008-02-19 09:31:57 +0000
+++ src/Makefile.am	2008-02-25 10:55:07 +0000
@@ -148,6 +148,7 @@
 	$(srcdir)/Imaging/DCRawFile.cs		\
 	$(srcdir)/Imaging/Bim.cs		\
 	$(srcdir)/Imaging/Ciff.cs		\
+	$(srcdir)/Imaging/MediaFile.cs	\
 	$(srcdir)/Imaging/Exif.cs		\
 	$(srcdir)/Imaging/ImageFile.cs		\
 	$(srcdir)/Imaging/IptcFile.cs		\
@@ -163,6 +164,8 @@
 	$(srcdir)/Imaging/X3fFile.cs		\
 	$(srcdir)/Imaging/XmpFile.cs		\
 	$(srcdir)/Imaging/Tiff.cs		\
+	$(srcdir)/Imaging/VideoFile.cs	\
+	$(srcdir)/Imaging/VideoCanonFile.cs	\
 	$(srcdir)/JobStore.cs			\
 	$(srcdir)/Jobs/FSpotCompat.cs		\
 	$(srcdir)/Jobs/IInstanceCriticalJob.cs	\

=== modified file 'src/PhotoLoader.cs'
--- src/PhotoLoader.cs	2008-01-30 11:23:58 +0000
+++ src/PhotoLoader.cs	2008-02-27 11:46:37 +0000
@@ -16,7 +16,7 @@
 
 		static public Gdk.Pixbuf Load (IBrowsableItem item) 
 		{
-			using (ImageFile img = ImageFile.Create (item.DefaultVersionUri)) {
+			using (MediaFile img = MediaFile.Create (item.DefaultVersionUri)) {
 				Gdk.Pixbuf pixbuf = img.Load ();
 				ValidateThumbnail (item, pixbuf);
 				return pixbuf;
@@ -25,7 +25,7 @@
 
 		static public Gdk.Pixbuf LoadAtMaxSize (IBrowsableItem item, int width, int height) 
 		{
-			using (ImageFile img = ImageFile.Create (item.DefaultVersionUri)) {
+			using (MediaFile img = MediaFile.Create (item.DefaultVersionUri)) {
 				Gdk.Pixbuf pixbuf = img.Load (width, height);
 				ValidateThumbnail (item.DefaultVersionUri, pixbuf);
 				return pixbuf;

=== modified file 'src/PhotoStore.cs'
--- src/PhotoStore.cs	2008-02-20 20:14:36 +0000
+++ src/PhotoStore.cs	2008-02-27 11:46:37 +0000
@@ -61,12 +61,12 @@
 
 	public static Pixbuf GenerateThumbnail (System.Uri uri)
 	{
-		using (FSpot.ImageFile img = FSpot.ImageFile.Create (uri)) {
+		using (FSpot.MediaFile img = FSpot.MediaFile.Create (uri)) {
 			return GenerateThumbnail (uri, img);
 		}
 	}
 
-	public static Pixbuf GenerateThumbnail (System.Uri uri, ImageFile img)
+	public static Pixbuf GenerateThumbnail (System.Uri uri, MediaFile img)
 	{
 		Pixbuf thumbnail = null;
 
@@ -165,7 +165,7 @@
 	public Photo Create (System.Uri new_uri, System.Uri orig_uri, uint roll_id, out Pixbuf thumbnail)
 	{
 		Photo photo;
-		using (FSpot.ImageFile img = FSpot.ImageFile.Create (orig_uri)) {
+		using (FSpot.MediaFile img = FSpot.MediaFile.Create (orig_uri)) {
 			long unix_time = DbUtils.UnixTimeFromDateTime (img.Date);
 			string description = img.Description != null  ? img.Description.Split ('\0') [0] : String.Empty;
 	

=== modified file 'src/PixbufLoader.cs'
--- src/PixbufLoader.cs	2007-03-13 20:45:44 +0000
+++ src/PixbufLoader.cs	2008-02-27 11:46:37 +0000
@@ -145,7 +145,7 @@
 	{
 		Pixbuf orig_image;
 		try {
-			using (FSpot.ImageFile img = System.IO.File.Exists (request.path) ? FSpot.ImageFile.Create (request.path) : FSpot.ImageFile.Create (new Uri (request.path))) {
+			using (FSpot.MediaFile img = System.IO.File.Exists (request.path) ? FSpot.MediaFile.Create (request.path) : FSpot.MediaFile.Create (new Uri (request.path))) {
 				if (request.width > 0) {
 					orig_image = img.Load (request.width, request.height);
 				} else {

=== modified file 'src/PixbufUtils.cs'
--- src/PixbufUtils.cs	2008-01-18 13:35:48 +0000
+++ src/PixbufUtils.cs	2008-02-27 11:46:37 +0000
@@ -758,7 +758,7 @@
 	
 	public static PixbufOrientation GetOrientation (string path)
 	{
-		using (FSpot.ImageFile img = FSpot.ImageFile.Create (path)) {
+		using (FSpot.MediaFile img = FSpot.MediaFile.Create (path)) {
 			return img.Orientation;
 		}
 	}

=== modified file 'src/PrintDialog.cs'
--- src/PrintDialog.cs	2008-02-19 09:31:57 +0000
+++ src/PrintDialog.cs	2008-02-27 12:25:20 +0000
@@ -1,4 +1,5 @@
 using System;
+using Mono.Unix;
 using System.Collections;
 using Gtk;
 using FSpot.UI.Dialog;
@@ -18,6 +19,12 @@
 			Userspace = (1 << 3)      /* Mathematical coordinates */
 		}
 
+		private enum IndividualNotification {
+			FirstRun = 1,
+			Notify = 2,
+			DoNotNotify = 3
+		}
+
 		public static string PAPER_SIZE                = "Settings.Output.Media.PhysicalSize"; /* Paper name, such as A4 or Letter */
 		public static string PAPER_WIDTH               = "Settings.Output.Media.PhysicalSize.Width"; /* Arbitrary units - use conversion */
 		public static string PAPER_HEIGHT              = "Settings.Output.Media.PhysicalSize.Height"; /* Arbitrary units - use conversion */
@@ -81,6 +88,7 @@
 			double page_width, page_height;
 			print_job.GetPageSize (out page_width, out page_height);
 			Gnome.PrintContext ctx = print_job.Context;
+			IndividualNotification notification_status = IndividualNotification.FirstRun;
 
 			ArrayList exceptions = new ArrayList ();
 
@@ -97,9 +105,16 @@
 					continue;
 				}
 
+				FSpot.MediaFile mediaFile = FSpot.MediaFile.Create (photo.DefaultVersionUri.LocalPath);
 				Gdk.Pixbuf flat = PixbufUtils.Flatten (image);
 				if (flat != null) {
-					image.Dispose ();
+					try {
+						image = mediaFile.Print(image);
+					} catch (NotSupportedException nse) {
+						if (notification_status != IndividualNotification.DoNotNotify)
+							notification_status = RunNotSupportedError (photo.DefaultVersionUri.LocalPath, notification_status);
+						continue;
+					}
 					image = flat;
 				}
 
@@ -198,6 +213,36 @@
 			RunGnomePrintDialog ();
 #endif
 		}
+		
+		private IndividualNotification RunNotSupportedError (string path, IndividualNotification notificate_status)
+		{
+			string longmsg;
+			
+			longmsg = String.Format (Catalog.GetString ("Print not supported for file {0}"),
+							System.IO.Path.GetFileName (path));
+
+			HigMessageDialog.RunHigMessageDialog (print_dialog, DialogFlags.DestroyWithParent,
+									MessageType.Warning, ButtonsType.Ok,
+									Catalog.GetString ("Print not supported"),
+									longmsg);
+
+
+			if (notificate_status != IndividualNotification.FirstRun)
+				return notificate_status;
+			else {
+				longmsg = String.Format (Catalog.GetString ("Do you want to get this notification for each selected file for which print is not supported?"),
+								System.IO.Path.GetFileName (path));
+			
+				Gtk.ResponseType response = HigMessageDialog.RunHigMessageDialog (print_dialog, 
+										DialogFlags.DestroyWithParent, MessageType.Question, 
+										ButtonsType.YesNo,	Catalog.GetString ("Individual notification"),
+										longmsg);
+				if (response == Gtk.ResponseType.Yes)
+					return IndividualNotification.Notify;
+				else
+					return IndividualNotification.DoNotNotify;
+			}
+		}
 	}
 }
 #endif

=== modified file 'src/PrintOperation.cs'
--- src/PrintOperation.cs	2008-02-19 09:31:57 +0000
+++ src/PrintOperation.cs	2008-02-27 13:20:40 +0000
@@ -11,8 +11,11 @@
 extern alias MCairo;
 using System;
 using System.Runtime.InteropServices;
+using Mono.Unix;
+using Gtk;
 
 using FSpot.Widgets;
+using FSpot.UI.Dialog;
 
 namespace FSpot
 {
@@ -24,10 +27,33 @@
 		bool repeat, white_borders, crop_marks;
 		string comment;
 
+		private enum IndividualNotification {
+			FirstRun = 1,
+			Notify = 2,
+			DoNotNotify = 3
+		}
+
 		public PrintOperation (IBrowsableItem [] selected_photos) : base ()
 		{
-			this.selected_photos = selected_photos;
-			NPages = selected_photos.Length;
+			IndividualNotification notification_status = IndividualNotification.FirstRun;
+			System.Collections.ArrayList selected_printable_photos = new System.Collections.ArrayList();
+
+			foreach (IBrowsableItem item in selected_photos) {
+				using (MediaFile img = MediaFile.Create (item.DefaultVersionUri))
+				{
+					Gdk.Pixbuf pixbuf = img.Load ();
+					try {
+						img.Print(pixbuf);
+					} catch (NotSupportedException nse) {
+						if (notification_status != IndividualNotification.DoNotNotify)
+							notification_status = RunNotSupportedError (img.Uri.LocalPath, notification_status);
+						continue;
+					}
+					selected_printable_photos.Add (item);
+				}
+			}
+			this.selected_photos = (IBrowsableItem []) selected_printable_photos.ToArray (typeof (IBrowsableItem));
+			NPages = this.selected_photos.Length;
 		}
 
 		protected override void OnBeginPrint (Gtk.PrintContext context)
@@ -99,7 +125,7 @@
 						DrawCropMarks (cr, x*w, y*h, w*.1);
 					if (x == ppx || y == ppy || p_index >= selected_photos.Length)
 						continue;
-					using (ImageFile img = new ImageFile (selected_photos[p_index].DefaultVersionUri))
+					using (MediaFile img = MediaFile.Create (selected_photos[p_index].DefaultVersionUri))
 					{
 						Gdk.Pixbuf pixbuf = img.Load ();
 						//Gdk.Pixbuf pixbuf = img.Load (100, 100);
@@ -220,6 +246,36 @@
 			IntPtr result = f_pixbuf_from_cairo_surface (s.Handle);
 			return (Gdk.Pixbuf) GLib.Object.GetObject (result, true);
 		}
+		
+		private IndividualNotification RunNotSupportedError (string path, IndividualNotification notificate_status)
+		{
+			string longmsg;
+			
+			longmsg = String.Format (Catalog.GetString ("Print not supported for file {0}"),
+							System.IO.Path.GetFileName (path));
+
+			HigMessageDialog.RunHigMessageDialog (null, DialogFlags.DestroyWithParent,
+									MessageType.Warning, ButtonsType.Ok,
+									Catalog.GetString ("Print not supported"),
+									longmsg);
+
+
+			if (notificate_status != IndividualNotification.FirstRun)
+				return notificate_status;
+			else {
+				longmsg = String.Format (Catalog.GetString ("Do you want to get this notification for each selected file for which print is not supported?"),
+								System.IO.Path.GetFileName (path));
+			
+				Gtk.ResponseType response = HigMessageDialog.RunHigMessageDialog (null, 
+										DialogFlags.DestroyWithParent, MessageType.Question, 
+										ButtonsType.YesNo,	Catalog.GetString ("Individual notification"),
+										longmsg);
+				if (response == Gtk.ResponseType.Yes)
+					return IndividualNotification.Notify;
+				else
+					return IndividualNotification.DoNotNotify;
+			}
+		}
 	}
 }
 #endif

=== modified file 'src/QueryWidget.cs'
--- src/QueryWidget.cs	2008-02-09 21:15:19 +0000
+++ src/QueryWidget.cs	2008-02-27 11:46:37 +0000
@@ -8,7 +8,7 @@
 	public class QueryWidget : HighlightedBox {
 		PhotoQuery query;
 		LogicWidget logic_widget;
-	        Gtk.HBox box;
+        Gtk.HBox box;
 		Gtk.Label label;
 		Gtk.Label untagged;
 		Gtk.Label rated;

=== modified file 'src/RotateCommand.cs'
--- src/RotateCommand.cs	2008-01-30 12:30:12 +0000
+++ src/RotateCommand.cs	2008-02-27 11:49:19 +0000
@@ -68,17 +68,17 @@
 
 		private static void RotateOrientation (string original_path, RotateDirection direction)
 		{
-			using (FSpot.ImageFile img = FSpot.ImageFile.Create (original_path)) {
-				if (img is JpegFile) {
-					FSpot.JpegFile jimg = img as FSpot.JpegFile;
+			using (FSpot.MediaFile media = FSpot.MediaFile.Create (original_path)) {
+				if (media is JpegFile) {
+					FSpot.JpegFile jimg = media as FSpot.JpegFile;
 					PixbufOrientation orientation = direction == RotateDirection.Clockwise
-						? PixbufUtils.Rotate90 (img.Orientation)
-						: PixbufUtils.Rotate270 (img.Orientation);
+						? PixbufUtils.Rotate90 (media.Orientation)
+						: PixbufUtils.Rotate270 (media.Orientation);
 				
 					jimg.SetOrientation (orientation);
 					jimg.SaveMetaData (original_path);
-				} else if (img is PngFile) {
-					PngFile png = img as PngFile;
+				} else if (media is PngFile) {
+					PngFile png = media as PngFile;
 					bool supported = false;
 
 					//FIXME there isn't much png specific here except the check
@@ -96,28 +96,27 @@
 						throw new RotateException (Catalog.GetString ("Unable to rotate this type of photo"), original_path);
 					}
 
-					string backup = ImageFile.TempPath (original_path);
+					string backup = MediaFile.TempPath (original_path);
 					using (Stream stream = File.Open (backup, FileMode.Truncate, FileAccess.Write)) {
-						using (Pixbuf pixbuf = img.Load ()) {
+						using (Pixbuf pixbuf = media.Load ()) {
 							PixbufOrientation fake = (direction == RotateDirection.Clockwise) ? PixbufOrientation.RightTop : PixbufOrientation.LeftBottom;
 							using (Pixbuf rotated = PixbufUtils.TransformOrientation (pixbuf, fake)) {
-								img.Save (rotated, stream);
+								media.Save (rotated, stream);
 							}
 						}
 					}
 					File.Copy (backup, original_path, true);
 					File.Delete (backup);
+				} else if (media is VideoFile) {
+					FSpot.VideoFile vid = media as FSpot.VideoFile;
+					
+					vid.SetOrientation (PixbufOrientation.LeftBottom);
 				} else {
 					throw new RotateException (Catalog.GetString ("Unable to rotate this type of photo"), original_path);
 				}
 			}
 		}
 		       
-		private void Rotate (string original_path, RotateDirection dir)
-		{
-			RotateOrientation (original_path, dir);
-		}
-		
 		public override bool Step () {
 			string original_path;
 
@@ -138,7 +137,7 @@
 				throw new RotateException (Catalog.GetString ("Unable to rotate readonly file"), original_path, true);
 			}
 
-			Rotate (original_path, direction);
+			RotateOrientation (original_path, direction);
 
 			Gdk.Pixbuf thumb = FSpot.ThumbnailGenerator.Create (original_path);
 			if (thumb != null)
@@ -169,15 +168,30 @@
 			index = 0;
 		}
 		
+		// returns false if no next item exists because last item reached
+		public bool SkipToNext ()
+		{
+			index++;
+			return (index >= items.Length);
+		}
+		
 		public override bool Step ()
 		{
+			bool no_more_version = false;
+			
 			if (index >= items.Length)  
 				return false;
 
 			if (op == null) 
 				op = new RotateOperation (items [index], direction);
 			
-			if (op.Step ())
+			try {
+				no_more_version = op.Step ();
+			} catch (NotSupportedException nse) {
+				op = null;
+				throw new NotSupportedException();
+			}
+			if (no_more_version)
 				return true;
 			else {
 				index++;
@@ -192,6 +206,12 @@
 public class RotateCommand {
 	private Gtk.Window parent_window;
 
+	private enum IndividualNotification {
+		FirstRun = 1,
+		Notify = 2,
+		DoNotNotify = 3
+	}
+
 	public RotateCommand (Gtk.Window parent_window)
 	{
 		this.parent_window = parent_window;
@@ -209,6 +229,7 @@
 	        RotateMultiple op = new RotateMultiple (items, direction);
 		int readonly_count = 0;
 		bool done = false;
+		IndividualNotification notification_status = IndividualNotification.FirstRun;
 		int index = -1;
 
 		while (!done) {
@@ -229,6 +250,10 @@
 				RunGenericError (e, op.Items [op.Index].DefaultVersionUri.LocalPath, Catalog.GetString ("Directory not found"));
 			} catch (FileNotFoundException e) {
 				RunGenericError (e, op.Items [op.Index].DefaultVersionUri.LocalPath, Catalog.GetString ("File not found"));
+			} catch (NotSupportedException nse) {
+				if (notification_status != IndividualNotification.DoNotNotify)
+					notification_status = RunNotSupportedError (op.Items [op.Index].DefaultVersionUri.LocalPath, notification_status);
+				done = op.SkipToNext();
 			} catch (Exception e) {
 				RunGenericError (e, op.Items [op.Index].DefaultVersionUri.LocalPath);
 			}
@@ -255,14 +280,12 @@
 		notice = String.Format (notice, readonly_count);
 		desc = String.Format (desc, readonly_count);
 		
-		HigMessageDialog md = new HigMessageDialog (parent_window, 
+		HigMessageDialog.RunHigMessageDialog (parent_window, 
 							    DialogFlags.DestroyWithParent,
 							    MessageType.Error,
 							    ButtonsType.Close,
 							    notice, 
 							    desc);
-		md.Run();
-		md.Destroy();
 	}
 	
 	// FIXME shouldn't need this method, should catch all exceptions explicitly
@@ -277,11 +300,39 @@
 		string longmsg = String.Format (Catalog.GetString ("Received error \"{0}\" while attempting to rotate {1}"),
 						msg, System.IO.Path.GetFileName (path));
 
-		HigMessageDialog md = new HigMessageDialog (parent_window, DialogFlags.DestroyWithParent,
+		HigMessageDialog.RunHigMessageDialog (parent_window, DialogFlags.DestroyWithParent,
 							    MessageType.Warning, ButtonsType.Ok,
 							    Catalog.GetString ("Error while rotating photo."),
 							    longmsg);
-		md.Run ();
-		md.Destroy ();
+	}
+	
+	private IndividualNotification RunNotSupportedError (string path, IndividualNotification notificate_status)
+	{
+		string longmsg;
+		
+		longmsg = String.Format (Catalog.GetString ("Rotation not supported for file {0}"),
+						System.IO.Path.GetFileName (path));
+
+		HigMessageDialog.RunHigMessageDialog (parent_window, DialogFlags.DestroyWithParent,
+								MessageType.Warning, ButtonsType.Ok,
+								Catalog.GetString ("Rotation not supported"),
+								longmsg);
+
+
+		if (notificate_status != IndividualNotification.FirstRun)
+			return notificate_status;
+		else {
+			longmsg = String.Format (Catalog.GetString ("Do you want to get this notification for each selected file for which rotation is not supported?"),
+							System.IO.Path.GetFileName (path));
+		
+			Gtk.ResponseType response = HigMessageDialog.RunHigMessageDialog (parent_window, 
+									DialogFlags.DestroyWithParent, MessageType.Question, 
+									ButtonsType.YesNo,	Catalog.GetString ("Individual notification"),
+									longmsg);
+			if (response == Gtk.ResponseType.Yes)
+				return IndividualNotification.Notify;
+			else
+				return IndividualNotification.DoNotNotify;
+		}
 	}
 }

=== modified file 'src/TagCommands.cs'
--- src/TagCommands.cs	2008-01-18 13:35:48 +0000
+++ src/TagCommands.cs	2008-02-27 11:46:37 +0000
@@ -377,7 +377,7 @@
 
 		private void CreateTagIconFromExternalPhoto ()
 		{
-			using (FSpot.ImageFile img = FSpot.ImageFile.Create(new Uri(external_photo_chooser.Uri))) {
+			using (FSpot.MediaFile img = FSpot.MediaFile.Create(new Uri(external_photo_chooser.Uri))) {
 				using (Gdk.Pixbuf external_image = img.Load ()) {
 					PreviewPixbuf = PixbufUtils.TagIconFromPixbuf (external_image);
 				}

=== modified file 'src/TextureDisplay.cs'
--- src/TextureDisplay.cs	2007-10-18 08:28:02 +0000
+++ src/TextureDisplay.cs	2008-02-27 11:46:37 +0000
@@ -153,7 +153,7 @@
 
 			Texture tex;
 			try {
-				using (ImageFile img = ImageFile.Create (item.Current.DefaultVersionUri)) {
+				using (MediaFile img = MediaFile.Create (item.Current.DefaultVersionUri)) {
 					using (Gdk.Pixbuf pixbuf = img.Load ()) {
 					        tex = new Texture (pixbuf);
 					}

=== modified file 'src/ThumbnailGenerator.cs'
--- src/ThumbnailGenerator.cs	2008-01-30 12:30:12 +0000
+++ src/ThumbnailGenerator.cs	2008-02-27 11:46:37 +0000
@@ -20,7 +20,7 @@
 		public static Gdk.Pixbuf Create (Uri uri)
 		{
 			try {
-				using (ImageFile img = ImageFile.Create (uri)) {
+				using (MediaFile img = MediaFile.Create (uri)) {
 					Gdk.Pixbuf thumb = img.Load (256, 256);
 
 					if (thumb != null)

=== modified file 'src/UriCollection.cs'
--- src/UriCollection.cs	2007-12-21 09:16:57 +0000
+++ src/UriCollection.cs	2008-02-27 11:46:37 +0000
@@ -31,7 +31,7 @@
 
 		public void Add (Uri uri)
 		{
-			if (FSpot.ImageFile.HasLoader (uri)) {
+			if (FSpot.MediaFile.HasLoader (uri)) {
 				//Console.WriteLine ("using image loader {0}", uri.ToString ());
 				Add (new FileBrowsableItem (uri));
 			} else {
@@ -131,7 +131,7 @@
 					Uri file = new Uri (vfs.ToString ());
 					System.Console.WriteLine ("tesing uri = {0}", file.ToString ());
 
-					if (FSpot.ImageFile.HasLoader (file))
+					if (FSpot.MediaFile.HasLoader (file))
 						items.Add (new FileBrowsableItem (file));
 				}
 
@@ -145,7 +145,7 @@
 		{
 			ArrayList items = new ArrayList ();
 			foreach (FileInfo f in files) {
-				if (FSpot.ImageFile.HasLoader (f.FullName)) {
+				if (FSpot.MediaFile.HasLoader (f.FullName)) {
 					Console.WriteLine (f.FullName);
 					items.Add (new FileBrowsableItem (f.FullName));
 				}

=== modified file 'src/Widgets/ImageInfo.cs'
--- src/Widgets/ImageInfo.cs	2007-03-13 20:45:44 +0000
+++ src/Widgets/ImageInfo.cs	2008-02-27 11:46:37 +0000
@@ -18,7 +18,7 @@
 		
 		public ImageInfo (Uri uri)
 		{
-				using (ImageFile img = ImageFile.Create (uri)) {
+				using (MediaFile img = MediaFile.Create (uri)) {
 					Pixbuf pixbuf = img.Load ();
 					SetPixbuf (pixbuf);
 					pixbuf.Dispose ();

=== modified file 'src/XmpTagsImporter.cs'
--- src/XmpTagsImporter.cs	2008-01-17 12:47:58 +0000
+++ src/XmpTagsImporter.cs	2008-02-27 11:46:37 +0000
@@ -292,7 +292,7 @@
 				xmp = new XmpFile ();
 			}
 			
-			using (ImageFile img = ImageFile.Create (path)) {
+			using (MediaFile img = MediaFile.Create (path)) {
 				StatementSource source = img as StatementSource;
 				if (source != null) {
 					source.Select (xmp);

