[Pkg-cli-apps-commits] r3797 - in /packages/banshee/trunk/debian: changelog patches/02_stable-branch-r3416.patch patches/02_stable-branch-r3417.patch
slomo at users.alioth.debian.org
slomo at users.alioth.debian.org
Tue Mar 11 11:00:00 UTC 2008
Author: slomo
Date: Tue Mar 11 10:59:59 2008
New Revision: 3797
URL: http://svn.debian.org/wsvn/pkg-cli-apps/?sc=1&rev=3797
Log:
* fix patch
Added:
packages/banshee/trunk/debian/patches/02_stable-branch-r3417.patch
Removed:
packages/banshee/trunk/debian/patches/02_stable-branch-r3416.patch
Modified:
packages/banshee/trunk/debian/changelog
Modified: packages/banshee/trunk/debian/changelog
URL: http://svn.debian.org/wsvn/pkg-cli-apps/packages/banshee/trunk/debian/changelog?rev=3797&op=diff
==============================================================================
--- packages/banshee/trunk/debian/changelog (original)
+++ packages/banshee/trunk/debian/changelog Tue Mar 11 10:59:59 2008
@@ -1,7 +1,7 @@
banshee (0.13.2+dfsg-4) unstable; urgency=low
* debian/patches/02_stable-branch-r3201.patch,
- debian/patches/02_stable-branch-r3416.patch:
+ debian/patches/02_stable-branch-r3417.patch:
+ Another update from the stable branch, fixing the audioscrobbler plugin
even more (Closes: #469510).
Added: packages/banshee/trunk/debian/patches/02_stable-branch-r3417.patch
URL: http://svn.debian.org/wsvn/pkg-cli-apps/packages/banshee/trunk/debian/patches/02_stable-branch-r3417.patch?rev=3797&op=file
==============================================================================
--- packages/banshee/trunk/debian/patches/02_stable-branch-r3417.patch (added)
+++ packages/banshee/trunk/debian/patches/02_stable-branch-r3417.patch Tue Mar 11 10:59:59 2008
@@ -1,0 +1,11948 @@
+Index: ChangeLog
+===================================================================
+--- ChangeLog (Revision 2958)
++++ ChangeLog (Revision 3417)
+@@ -1,3 +1,245 @@
++2008-03-11 Sebastian Dröge <slomo at circular-chaos.org>
++
++ * src/Plugins/Banshee.Plugins.Audioscrobbler/Engine.cs: ...and don't
++ warnings/errors to the user unless really necessary.
++
++2008-03-11 Sebastian Dröge <slomo at circular-chaos.org>
++
++ * src/Plugins/Banshee.Plugins.Audioscrobbler/Engine.cs: Convert some
++ errors to warnings as they're not fatal and will be corrected next
++ time it is possible (BGO #501405).
++
++2008-03-09 Aaron Bockover <abock at gnome.org>
++
++ * src/Core/Banshee.Base/ActionManager.cs:
++ * src/Core/Banshee.Widgets/ActionButton.cs:
++ * src/Core/Banshee/PlayerInterface.cs:
++ * src/Plugins/Banshee.Plugins.Radio/RadioSource.cs: Force 'Action' to
++ mean 'Gtk.Action' since now there is an API in .NET called 'System.Action'
++ and the compiler could not resolve which 'Action' to use
++
++ * src/Core/Banshee.Base/Gui/SourceView.cs:
++ * src/Core/Banshee.Base/Gui/LogCoreDialog.cs: Fix some syntax bugs
++ exposed by newer C# 2.0 compilers in Mono
++
++2008-02-10 Ruben Vermeersch <ruben at savanne.be>
++
++ * src/Plugins/Banshee.Plugins.Audioscrobbler/AudioscrobblerPlugin.cs:
++ * src/Plugins/Banshee.Plugins.Audioscrobbler/Engine.cs:
++ * src/Plugins/Banshee.Plugins.Audioscrobbler/Queue.cs: Updated to the
++ new audioscrobbler protocol (1.2) and connection failure guidelines.
++ (BGO: #404965, #501405). Add connection time-out. (BGO: #469490).
++ Patch by Pepijn van de Geer (pvandegeer at gmail.com).
++
++2008-02-01 Gabriel Burt <gabriel.burt at gmail.com>
++
++ * src/Core/Banshee.Base/Dap/Dap.cs:
++ * src/Dap/Banshee.Dap.Mtp/MtpDap.cs:
++ * src/Dap/Banshee.Dap.Mtp/MtpDapTrackInfo.cs: Revert accidental commit.
++
++2008-02-01 Aaron Bockover <abock at gnome.org>
++
++ * src/Plugins/Banshee.Plugins.NotificationAreaIcon/NotificationAreaIconPlugin.cs:
++ Use Visible instead of IsActive when hiding the main window; fixes the
++ Alt+F4 problem, BNC #257350
++
++2008-02-01 Gabriel Burt <gabriel.burt at gmail.com>
++
++ * src/Plugins/Banshee.Plugins.Podcast/UI/PodcastSubscribeDialog.cs: Make
++ "Advanced" string translatable. Fixes BNC #265687.
++
++2008-01-31 Gabriel Burt <gabriel.burt at gmail.com>
++
++ * src/Dap/Banshee.Dap.Mtp/AlbumSet.cs:
++ * src/Dap/Banshee.Dap.Mtp/MtpDap.cs: Add GGonf keys to allow suppressing
++ album art transfer even if a device supports it, and to set the max width
++ for cover art.
++
++2008-01-31 Gabriel Burt <gabriel.burt at gmail.com>
++
++ * src/Dap/Banshee.Dap.Mtp/AlbumSet.cs: Return a progress float between
++ each cover art delete/save.
++
++ * src/Dap/Banshee.Dap.Mtp/MtpDap.cs: Use bilinear scaling, allow
++ cancelling, and display cover art sync progress.
++
++2008-01-31 Gabriel Burt <gabriel.burt at gmail.com>
++
++ * src/Core/Banshee/PlayerInterface.cs: Make the 'Write CD' action
++ insensitive if there are no tracks selected or if the source is a
++ BurnerSource and it has no tracks. Fixes BNC #293774.
++
++2008-01-31 Gabriel Burt <gabriel.burt at gmail.com>
++
++ * src/Dap/Banshee.Dap.Mtp/MtpDap.cs: Log exceptions thrown during MTP
++ sync.
++
++2008-01-31 Gabriel Burt <gabriel.burt at gmail.com>
++
++ * src/Core/Banshee.Base/Dap/Dap.cs: Actually fix it (hopefully..)
++
++2008-01-31 Gabriel Burt <gabriel.burt at gmail.com>
++
++ * src/Core/Banshee.Base/Dap/Dap.cs: Fix IsPortableAudioPlayerType method.
++
++2008-01-31 Gabriel Burt <gabriel.burt at gmail.com>
++
++ This commits fixes more MTP support bugs, and happily, adds support for
++ cover art where supported.
++
++ * src/Core/Banshee.Base/Dap/DapMisc.cs: Add support for passing file
++ extension when trying to determine mimetype.
++
++ * src/Dap/Banshee.Dap.Mtp/Makefile.am:
++ * src/Dap/Banshee.Dap.Mtp/AlbumSet.cs: New file for keeping track of what
++ album/artwork should be deleted/added when synching.
++
++ * src/Dap/Banshee.Dap.Mtp/MtpDap.cs: Detect what formats the DAP actually
++ supports instead of assuming mp3/wma. If the device supports JPEGS, send
++ cover art on sync if we have it. Properly convert between the different
++ rating sytems (0-100 vs 0-5) and UseCount/PlayCount, and consolidate
++ conversion logic. Translate some untranslated strings. Avoid spewing
++ horribly long exception message when libmtpsharp catches an error.
++
++ * src/Dap/Banshee.Dap.Mtp/MtpDapTrackInfo.cs: Properly round trip rating
++ and play count.
++ * ext/libmtp-sharp/Base/Enums.cs: Remove leading LIBMTP_FILETYPE_ on a
++ million enum values.
++
++ * ext/libmtp-sharp/MtpDevice.cs: Rename handle to Handle. Add GetAlbums
++ and GetFileTypes methods.
++
++ * ext/libmtp-sharp/Folder.cs:
++ Use device.Handle instead of handle.
++
++ * ext/libmtp-sharp/Base/Album.cs: Rename struct to AlbumStruct.
++
++ * ext/libmtp-sharp/Makefile.am:
++ * ext/libmtp-sharp/Album.cs: New class for supporting cover art.
++
++ * ext/libmtp-sharp/Base/FileSampleData.cs: Make usable.
++
++ * ext/libmtp-sharp/Functions/AlbumManagement.cs:
++ * ext/libmtp-sharp/Functions/FileManagement.cs: Make some libmtp methods
++ public.
++
++ * ext/libmtp-sharp/Functions/FunctionCalls.cs: Add GetFileTypes method.
++
++ * ext/libmtp-sharp/Track.cs: Enum updates and Handle update.
++
++2008-01-29 Gabriel Burt <gabriel.burt at gmail.com>
++
++ * src/Core/Banshee.Base/Dap/Dap.cs: Add new IsPortableAudioPlayerType
++ method that checks a Hal.Device for old and new indications it is a
++ certain type.
++
++ * src/Dap/Banshee.Dap.Ipod/IpodDap.cs:
++ * src/Dap/Banshee.Dap.MassStorage/MassStorageDap.cs:
++ * src/Dap/Banshee.Dap.Mtp/MtpDap.cs: Use new method for type detection.
++
++2008-01-29 Gabriel Burt <gabriel.burt at gmail.com>
++
++ * src/Dap/Banshee.Dap.Mtp/MtpDap.cs: Support the new
++ portable_audio_player.access_method.protocols way of specifying a player
++ is MTP.
++
++2008-01-29 Gabriel Burt <gabriel.burt at gmail.com>
++
++ * src/Dap/Banshee.Dap.Mtp/MtpDap.cs: Update copyright.
++
++2008-01-29 Alan McGovern <alan.mcgovern at gmail.com>
++
++ * src/Dap/Banshee.Dap.Mtp/MtpDap.cs: Using .Contains() to match the
++ serial numbers. Some devices truncate the start, others truncate the end
++
++2008-01-29 Gabriel Burt <gabriel.burt at gmail.com>
++
++ * src/Dap/Banshee.Dap.Mtp/MtpDap.cs: Fix typo.
++
++2008-01-29 Gabriel Burt <gabriel.burt at gmail.com>
++
++ * src/Dap/Banshee.Dap.Mtp/MtpDap.cs: Fix bug; forgot to set the MtpDap
++ singleton.
++
++2008-01-29 Gabriel Burt <gabriel.burt at gmail.com>
++
++ * ext/libmtp-sharp/Functions/TrackManagement.cs: Remove debug WriteLine,
++ and more importantly, Console.ReadLine from SendTrack.
++
++ * ext/libmtp-sharp/Functions/FunctionCalls.cs: Add DeviceVersion and
++ Serialnumber getters, and FriendlyName setter.
++
++ * ext/libmtp-sharp/MtpDevice.cs: Add Name setter (Set_FriendlyName) and
++ Version (Deviceversion) and SerialNumber properties. Don't throw an error
++ just because the track list is empty. Remove debug WriteLine.
++
++ * src/Dap/Banshee.Dap.Mtp/MtpDap.cs: Rely much more heavily on HAL. Only
++ allow one instance of MtpDap, since at the moment libmtp only lets us be
++ connected to one at a time. When MtpDap.Initialize is called, only
++ actually initialize the/a MTP device iff its libmtp serialize number
++ matches the HAL device we're checking. Add support for renaming the
++ device. Add Version property information. Update the remove/add progress
++ after actually removing an item (so if you transfer one item, it doesn't
++ go to 100% until after it's done). Clean up Reload methods. Get rid of
++ 'camera' terminology.
++
++ * src/Dap/Banshee.Dap.Mtp/MtpDapTrackInfo.cs: Use properties instead of
++ protected variables.
++
++2008-01-23 Alan McGovern <alan.mcgovern at gmail.com>
++
++ * ChangeLog: To decide if a device is an MTP device, check for either
++ portable_audio_player.type == 'mtp' or usb.interface.description == 'Mtp
++ Interface'.
++
++2008-01-23 Alan McGovern <alan.mcgovern at gmail.com>
++
++ * src/Dap/Banshee.Dap.Mtp/MtpDap.cs: Slightly smarter usage of HAL
++ properties to check if a device is an MTP device or not.
++
++2008-01-22 Gabriel Burt <gabriel.burt at gmail.com>
++
++ * src/Plugins/Banshee.Plugins.LastFM/Editor.cs: Fix bug where songs
++ wouldn't be visible on new stations until you switched away from them and
++ back, or restarted Banshee.
++
++ * src/Plugins/Banshee.Plugins.LastFM/LastFMSource.cs:
++ * src/Plugins/Banshee.Plugins.LastFM/Plugin.cs: Update copyright year.
++
++2008-01-22 Gabriel Burt <gabriel.burt at gmail.com>
++
++ * src/Plugins/Banshee.Plugins.LastFM/LastFMSource.cs:
++ * src/Plugins/Banshee.Plugins.LastFM/Plugin.cs:
++ * src/Plugins/Banshee.Plugins.LastFM/banshee-plugin-lastfm.schemas.in:
++ Only auto expand the Last.fm radio source if it was expanded the last time
++ Banshee was closed.
++
++2008-01-22 Ruben Vermeersch <ruben at savanne.be>
++
++ * src/Core/Banshee.Base/ActionManager.cs: Add icon to Select All item.
++ Fixes BGO #393039, thanks Gabriel Cornejo.
++
++2008-01-22 Gabriel Burt <gabriel.burt at gmail.com>
++
++ * src/Dap/Banshee.Dap.Mtp/*:
++ * configure.ac:
++ * ext/libmtp-sharp/*: Rename libmtpsharp namespace and dll to Mtp.
++
++2008-01-22 Gabriel Burt <gabriel.burt at gmail.com>
++
++ * src/Dap/Banshee.Dap.Mtp/MtpDap.cs: Improve translatability, fix style
++ issues.
++
++ * src/Dap/Banshee.Dap.Mtp/ChangeLog: Remove old ChangeLog to avoid
++ confusion.
++
++2008-01-18 Gabriel Burt <gabriel.burt at gmail.com>
++
++ * data/banshee.desktop.in.in: Add x-content/* support, patch from Matthias
++ Clasen, fixes BGO #510324.
++
++ * NEWS: Add comma.
++
+ 2008-01-08 Aaron Bockover <abock at gnome.org>
+
+ 0.13.2 Released
+Index: src/Plugins/Banshee.Plugins.Podcast/UI/PodcastSubscribeDialog.cs
+===================================================================
+--- src/Plugins/Banshee.Plugins.Podcast/UI/PodcastSubscribeDialog.cs (Revision 2958)
++++ src/Plugins/Banshee.Plugins.Podcast/UI/PodcastSubscribeDialog.cs (Revision 3417)
+@@ -85,7 +85,7 @@
+ message.Justify = Justification.Left;
+ message.SetAlignment (0.0f, 0.0f);
+
+- Expander advanced_expander = new Expander ("Advanced");
++ Expander advanced_expander = new Expander (Catalog.GetString ("Advanced"));
+
+ VBox expander_children = new VBox();
+ expander_children.BorderWidth = 6;
+Index: src/Plugins/Banshee.Plugins.Radio/RadioSource.cs
+===================================================================
+--- src/Plugins/Banshee.Plugins.Radio/RadioSource.cs (Revision 2958)
++++ src/Plugins/Banshee.Plugins.Radio/RadioSource.cs (Revision 3417)
+@@ -32,6 +32,8 @@
+ using Mono.Unix;
+ using Gtk;
+
++using Action = Gtk.Action;
++
+ using Banshee.Base;
+ using Banshee.Widgets;
+ using Banshee.Sources;
+Index: src/Plugins/Banshee.Plugins.Audioscrobbler/AudioscrobblerPlugin.cs
+===================================================================
+--- src/Plugins/Banshee.Plugins.Audioscrobbler/AudioscrobblerPlugin.cs (Revision 2958)
++++ src/Plugins/Banshee.Plugins.Audioscrobbler/AudioscrobblerPlugin.cs (Revision 3417)
+@@ -75,7 +75,8 @@
+ get {
+ return new string [] {
+ "Chris Toshok",
+- "Aaron Bockover"
++ "Aaron Bockover",
++ "Pepijn van de Geer"
+ };
+ }
+ }
+Index: src/Plugins/Banshee.Plugins.Audioscrobbler/Queue.cs
+===================================================================
+--- src/Plugins/Banshee.Plugins.Audioscrobbler/Queue.cs (Revision 2958)
++++ src/Plugins/Banshee.Plugins.Audioscrobbler/Queue.cs (Revision 3417)
+@@ -50,21 +50,23 @@
+ this.artist = track.Artist;
+ this.album = track.Album;
+ this.title = track.Title;
+- this.duration = (int)track.Duration.TotalSeconds;
+- this.start_time = start_time.ToUniversalTime ();
++ this.track_number = (int) track.TrackNumber;
++ this.duration = (int) track.Duration.TotalSeconds;
++ this.start_time = DateTimeUtil.ToTimeT(start_time.ToUniversalTime ());
+ }
+
+ public QueuedTrack (string artist, string album,
+- string title, int duration, DateTime start_time)
++ string title, int track_number, int duration, long start_time)
+ {
+ this.artist = artist;
+ this.album = album;
+ this.title = title;
++ this.track_number = track_number;
+ this.duration = duration;
+ this.start_time = start_time;
+ }
+
+- public DateTime StartTime {
++ public long StartTime {
+ get { return start_time; }
+ }
+ public string Artist {
+@@ -73,6 +75,9 @@
+ public string Album {
+ get { return album; }
+ }
++ public int TrackNumber {
++ get { return track_number; }
++ }
+ public string Title {
+ get { return title; }
+ }
+@@ -83,8 +88,9 @@
+ string artist;
+ string album;
+ string title;
++ int track_number;
+ int duration;
+- DateTime start_time;
++ long start_time;
+ }
+
+ ArrayList queue;
+@@ -120,8 +126,9 @@
+ writer.WriteElementString ("Artist", track.Artist);
+ writer.WriteElementString ("Album", track.Album);
+ writer.WriteElementString ("Title", track.Title);
++ writer.WriteElementString ("TrackNumber", track.TrackNumber.ToString());
+ writer.WriteElementString ("Duration", track.Duration.ToString());
+- writer.WriteElementString ("StartTime", DateTimeUtil.ToTimeT(track.StartTime).ToString());
++ writer.WriteElementString ("StartTime", track.StartTime.ToString());
+ writer.WriteEndElement (); // Track
+ }
+ writer.WriteEndElement (); // AudioscrobblerQueue
+@@ -144,8 +151,9 @@
+ string artist = "";
+ string album = "";
+ string title = "";
++ int track_number = 0;
+ int duration = 0;
+- DateTime start_time = new DateTime (0);
++ long start_time = 0;
+
+ foreach (XmlNode child in node.ChildNodes) {
+ if (child.Name == "Artist" && child.ChildNodes.Count != 0) {
+@@ -154,15 +162,16 @@
+ album = child.ChildNodes [0].Value;
+ } else if (child.Name == "Title" && child.ChildNodes.Count != 0) {
+ title = child.ChildNodes [0].Value;
++ } else if (child.Name == "TrackNumber" && child.ChildNodes.Count != 0) {
++ track_number = Convert.ToInt32 (child.ChildNodes [0].Value);
+ } else if (child.Name == "Duration" && child.ChildNodes.Count != 0) {
+ duration = Convert.ToInt32 (child.ChildNodes [0].Value);
+ } else if (child.Name == "StartTime" && child.ChildNodes.Count != 0) {
+- long time = Convert.ToInt64 (child.ChildNodes [0].Value);
+- start_time = DateTimeUtil.FromTimeT (time);
++ start_time = Convert.ToInt64 (child.ChildNodes [0].Value);
+ }
+ }
+
+- queue.Add (new QueuedTrack (artist, album, title, duration, start_time));
++ queue.Add (new QueuedTrack (artist, album, title, track_number, duration, start_time));
+ }
+ } catch {
+ }
+@@ -170,24 +179,31 @@
+
+ public string GetTransmitInfo (out int num_tracks)
+ {
++ string str_track_number = "";
+ StringBuilder sb = new StringBuilder ();
+-
++
+ int i;
+ for (i = 0; i < queue.Count; i ++) {
+- /* we queue a maximum of 10 tracks per request */
+- if (i == 9) break;
++ /* Last.FM 1.2 can handle up to 50 songs in one request */
++ if (i == 49) break;
+
+ QueuedTrack track = (QueuedTrack)queue[i];
+
++ if (track.TrackNumber != 0)
++ str_track_number = track.TrackNumber.ToString();
++
+ sb.AppendFormat (
+- "&a[{6}]={0}&t[{6}]={1}&b[{6}]={2}&m[{6}]={3}&l[{6}]={4}&i[{6}]={5}",
+- HttpUtility.UrlEncode (track.Artist),
+- HttpUtility.UrlEncode (track.Title),
+- HttpUtility.UrlEncode (track.Album),
+- "" /* musicbrainz id */,
+- track.Duration.ToString (),
+- HttpUtility.UrlEncode (track.StartTime.ToString ("yyyy-MM-dd HH:mm:ss")),
+- i);
++ "&a[{9}]={0}&t[{9}]={1}&i[{9}]={2}&o[{9}]={3}&r[{9}]={4}&l[{9}]={5}&b[{9}]={6}&n[{9}]={7}&m[{9}]={8}",
++ HttpUtility.UrlEncode (track.Artist),
++ HttpUtility.UrlEncode (track.Title),
++ track.StartTime.ToString (),
++ "P" /* source: chosen by user */,
++ "" /* rating: L/B/S */,
++ track.Duration.ToString (),
++ HttpUtility.UrlEncode (track.Album),
++ str_track_number,
++ "" /* musicbrainz id */,
++ i);
+ }
+
+ num_tracks = i;
+Index: src/Plugins/Banshee.Plugins.Audioscrobbler/Engine.cs
+===================================================================
+--- src/Plugins/Banshee.Plugins.Audioscrobbler/Engine.cs (Revision 2958)
++++ src/Plugins/Banshee.Plugins.Audioscrobbler/Engine.cs (Revision 3417)
+@@ -56,15 +56,18 @@
+ const int TICK_INTERVAL = 2000; /* 2 seconds */
+ const int FAILURE_LOG_MINUTES = 5; /* 5 minute delay on logging failure to upload information */
+ const int RETRY_SECONDS = 60; /* 60 second delay for transmission retries */
++ const int MAX_RETRY_SECONDS = 7200; /* 2 hours, as defined in the last.fm protocol */
++ const int TIME_OUT = 5000; /* 5 seconds timeout for webrequests */
+ const string CLIENT_ID = "bsh";
+ const string CLIENT_VERSION = "0.1";
+ const string SCROBBLER_URL = "http://post.audioscrobbler.com/";
+- const string SCROBBLER_VERSION = "1.1";
++ const string SCROBBLER_VERSION = "1.2";
+
+ string username;
+ string md5_pass;
++ string session_id = null;
+ string post_url;
+- string security_token;
++ string now_playing_url;
+
+ uint timeout_id;
+ DateTime next_interval;
+@@ -72,10 +75,17 @@
+
+ Queue queue;
+
++ int hard_failures = 0;
++ int hard_failure_retry_sec = 60;
++
++ bool now_playing_submitted;
+ bool song_started; /* if we were watching the current song from the beginning */
+ bool queued; /* if current_track has been queued */
+- bool sought; /* if the user has sought in the current playing song */
+
++ DateTime song_start_time;
++ TrackInfo last_track;
++
++ WebRequest now_playing_post;
+ WebRequest current_web_req;
+ IAsyncResult current_async_result;
+ State state;
+@@ -91,6 +101,7 @@
+ {
+ song_started = false;
+ PlayerEngineCore.EventChanged += OnPlayerEngineEventChanged;
++ PlayerEngineCore.StateChanged += OnPlayerEngineStateChanged;
+ queue.TrackAdded += delegate(object o, EventArgs args) {
+ StartTransitionHandler ();
+ };
+@@ -106,8 +117,12 @@
+
+ public void Stop ()
+ {
++ // Queue the current track for later submission
++ Queue(PlayerEngineCore.CurrentTrack);
++
+ PlayerEngineCore.EventChanged -= OnPlayerEngineEventChanged;
+-
++ PlayerEngineCore.StateChanged -= OnPlayerEngineStateChanged;
++
+ StopTransitionHandler ();
+
+ if (current_web_req != null) {
+@@ -133,8 +148,8 @@
+ this.username = username;
+ this.md5_pass = MD5Encode (pass);
+
+- if (security_token != null) {
+- security_token = null;
++ if (session_id != null) {
++ session_id = null;
+ state = State.NEED_HANDSHAKE;
+ }
+ }
+@@ -151,39 +166,60 @@
+ return CryptoConvert.ToHex (hash).ToLower ();
+ }
+
++ void OnPlayerEngineStateChanged(object o, PlayerEngineStateArgs args)
++ {
++ if (PlayerEngineCore.CurrentState == PlayerEngineState.Paused &&
++ PlayerEngineCore.LastState == PlayerEngineState.Playing) {
++ st.Stop();
++ }
++ else if (PlayerEngineCore.CurrentState == PlayerEngineState.Playing &&
++ PlayerEngineCore.LastState == PlayerEngineState.Paused) {
++ st.Start();
++ }
++ }
++
++ // We need to time how long the song has played
++ class SongTimer
++ {
++ private DateTime start_time;
++ public int PlayTime = 0;
++ public void Start() { start_time = DateTime.Now; }
++ public void Stop() { PlayTime += (int) (DateTime.Now - start_time).TotalSeconds;}
++ public void Reset() { PlayTime = 0; }
++ }
++
++ SongTimer st = new SongTimer();
++
++ void Queue (TrackInfo track) {
++ if (song_started && !queued && track.Duration.TotalSeconds > 30 &&
++ track.Artist != "" && track.Title != "" &&
++ (st.PlayTime > track.Duration.TotalSeconds / 2 || st.PlayTime > 240)) {
++ queue.Add (track, song_start_time);
++ queued = true;
++ }
++ }
++
+ void OnPlayerEngineEventChanged(object o, PlayerEngineEventArgs args)
+ {
+ switch (args.Event) {
+- /* Queue if we're watching this song from the beginning,
+- * it isn't queued yet and the user didn't seek until now,
+- * we're actually playing, song position and length are greater than 0
+- * and we already played half of the song or 240 seconds */
+- case PlayerEngineEvent.Iterate:
+- if (song_started && !queued && !sought && PlayerEngineCore.CurrentState == PlayerEngineState.Playing &&
+- PlayerEngineCore.Length > 0 && PlayerEngineCore.Position > 0 &&
+- (PlayerEngineCore.Position > PlayerEngineCore.Length / 2 || PlayerEngineCore.Position > 240)) {
+- TrackInfo track = PlayerEngineCore.CurrentTrack;
+- if (track == null) {
+- queued = sought = false;
+- } else {
+- queue.Add (track, DateTime.Now - TimeSpan.FromSeconds (PlayerEngineCore.Position));
+- queued = true;
+- }
+- }
+- break;
+- /* Start of Stream: new song started */
+ case PlayerEngineEvent.StartOfStream:
+- queued = sought = false;
++ // Queue the previous track in case of a skip
++ st.Stop();
++ Queue(last_track);
++
++ st.Reset(); st.Start();
++ song_start_time = DateTime.Now;
++ last_track = PlayerEngineCore.CurrentTrack;
++ now_playing_submitted = queued = false;
+ song_started = true;
++
++ StartTransitionHandler();
+ break;
+- /* End of Stream: song finished */
+ case PlayerEngineEvent.EndOfStream:
+- song_started = queued = sought = false;
++ st.Stop();
++ Queue(PlayerEngineCore.CurrentTrack);
++ queued = true;
+ break;
+- /* Did the user seek? */
+- case PlayerEngineEvent.Seek:
+- sought = true;
+- break;
+ }
+ }
+
+@@ -193,17 +229,22 @@
+ * involving the network. */
+ if (!Globals.Network.Connected)
+ return true;
+-
++
++ if ((state == State.IDLE || state == State.NEED_TRANSMIT) && hard_failures > 2) {
++ state = State.NEED_HANDSHAKE;
++ hard_failures = 0;
++ }
++
+ /* and address changes in our engine state */
+ switch (state) {
+ case State.IDLE:
+- if (queue.Count > 0) {
+- if (username != null && md5_pass != null && security_token == null)
+- state = State.NEED_HANDSHAKE;
+- else
++ if (username != null && md5_pass != null && session_id == null) {
++ state = State.NEED_HANDSHAKE;
++ } else {
++ if (queue.Count > 0)
+ state = State.NEED_TRANSMIT;
+- } else {
+- StopTransitionHandler ();
++ else if (now_playing_submitted)
++ StopTransitionHandler ();
+ }
+ break;
+ case State.NEED_HANDSHAKE:
+@@ -222,6 +263,12 @@
+ /* nothing here */
+ break;
+ }
++
++ // Only submit if queue is empty, otherwise the submission
++ // gets overruled by the queue submission by Last.fm
++ if (queue.Count == 0 && !now_playing_submitted && state == State.IDLE
++ && PlayerEngineCore.CurrentState == PlayerEngineState.Playing)
++ NowPlaying(PlayerEngineCore.CurrentTrack);
+
+ return true;
+ }
+@@ -251,7 +298,7 @@
+
+ StringBuilder sb = new StringBuilder ();
+
+- sb.AppendFormat ("u={0}&s={1}", HttpUtility.UrlEncode (username), security_token);
++ sb.AppendFormat ("s={0}", session_id);
+
+ sb.Append (queue.GetTransmitInfo (out num_tracks_transmitted));
+
+@@ -259,29 +306,33 @@
+ current_web_req.Method = "POST";
+ current_web_req.ContentType = "application/x-www-form-urlencoded";
+ current_web_req.ContentLength = sb.Length;
+-
++
+ TransmitState ts = new TransmitState ();
+ ts.Count = num_tracks_transmitted;
+ ts.StringBuilder = sb;
+
+ state = State.WAITING_FOR_REQ_STREAM;
+ current_async_result = current_web_req.BeginGetRequestStream (TransmitGetRequestStream, ts);
+- if (current_async_result == null) {
++ if (!(current_async_result.AsyncWaitHandle.WaitOne (TIME_OUT, false))) {
++ LogCore.Instance.PushWarning("Audioscrobbler upload failed",
++ "The request timed out and was aborted", false);
+ next_interval = DateTime.Now + new TimeSpan (0, 0, RETRY_SECONDS);
++ hard_failures++;
+ state = State.IDLE;
+- }
++ current_web_req.Abort();
++
++ }
+ }
+
+ void TransmitGetRequestStream (IAsyncResult ar)
+ {
+ Stream stream;
+-
+ try {
+ stream = current_web_req.EndGetRequestStream (ar);
+ }
+ catch (Exception e) {
+- Console.WriteLine ("Failed to get the request stream: {0}", e);
+-
++ LogCore.Instance.PushWarning ("Audioscrobbler upload failed",
++ String.Format("Failed to get the request stream: {0}", e, false));
+ state = State.IDLE;
+ next_interval = DateTime.Now + new TimeSpan (0, 0, RETRY_SECONDS);
+ return;
+@@ -298,6 +349,7 @@
+ current_async_result = current_web_req.BeginGetResponse (TransmitGetResponse, ts);
+ if (current_async_result == null) {
+ next_interval = DateTime.Now + new TimeSpan (0, 0, RETRY_SECONDS);
++ hard_failures++;
+ state = State.IDLE;
+ }
+ }
+@@ -310,17 +362,15 @@
+ resp = current_web_req.EndGetResponse (ar);
+ }
+ catch (Exception e) {
+- Console.WriteLine ("Failed to get the response: {0}", e);
+-
++ LogCore.Instance.PushWarning ("Audioscrobbler upload failed",
++ String.Format("Failed to get the response: {0}", e, false));
+ state = State.IDLE;
+ next_interval = DateTime.Now + new TimeSpan (0, 0, RETRY_SECONDS);
+ return;
+ }
+
+ TransmitState ts = (TransmitState) ar.AsyncState;
+-
+ Stream s = resp.GetResponseStream ();
+-
+ StreamReader sr = new StreamReader (s, Encoding.UTF8);
+
+ string line;
+@@ -333,18 +383,18 @@
+ last_upload_failed_logged = now;
+ }
+ /* retransmit the queue on the next interval */
++ hard_failures++;
+ state = State.NEED_TRANSMIT;
+ }
+- else if (line.StartsWith ("BADUSER")
+- || line.StartsWith ("BADAUTH")) {
++ else if (line.StartsWith ("BADSESSION")) {
+ if (now - last_upload_failed_logged > TimeSpan.FromMinutes(FAILURE_LOG_MINUTES)) {
+- LogCore.Instance.PushWarning ("Audioscrobbler upload failed", "invalid authentication", false);
++ LogCore.Instance.PushWarning ("Audioscrobbler upload failed", "Session ID sent was invalid", false);
+ last_upload_failed_logged = now;
+ }
+ /* attempt to re-handshake (and retransmit) on the next interval */
+- security_token = null;
++ session_id = null;
+ next_interval = DateTime.Now + new TimeSpan (0, 0, RETRY_SECONDS);
+- state = State.IDLE;
++ state = State.NEED_HANDSHAKE;
+ return;
+ }
+ else if (line.StartsWith ("OK")) {
+@@ -356,58 +406,64 @@
+ /* we succeeded, pop the elements off our queue */
+ queue.RemoveRange (0, ts.Count);
+ queue.Save ();
++ hard_failures = 0;
+ state = State.IDLE;
+ }
+ else {
+ if (now - last_upload_failed_logged > TimeSpan.FromMinutes(FAILURE_LOG_MINUTES)) {
+- LogCore.Instance.PushDebug ("Audioscrobbler upload failed", String.Format ("Unrecognized response: {0}", line), false);
++ LogCore.Instance.PushWarning("Audioscrobbler upload failed", String.Format ("Unrecognized response: {0}", line), false);
+ last_upload_failed_logged = now;
+ }
++ hard_failures++;
+ state = State.IDLE;
+ }
+-
+- /* now get the next interval */
+- line = sr.ReadLine ();
+- if (line.StartsWith ("INTERVAL")) {
+- int interval_seconds = Int32.Parse (line.Substring ("INTERVAL".Length));
+- next_interval = DateTime.Now + new TimeSpan (0, 0, interval_seconds);
+- }
+- else {
+- Console.WriteLine ("expected INTERVAL..");
+- }
+ }
+
+ //
+ // Async code for handshaking
+ //
+- void Handshake ()
++ private string UnixTime ()
+ {
+- string uri = String.Format ("{0}?hs=true&p={1}&c={2}&v={3}&u={4}",
++ return ((int) (DateTime.UtcNow - new DateTime (1970, 1, 1)).TotalSeconds).ToString ();
++ }
++
++ void Handshake ()
++ {
++ string timestamp = UnixTime();
++ string security_token = MD5Encode (md5_pass + timestamp);
++
++ string uri = String.Format ("{0}?hs=true&p={1}&c={2}&v={3}&u={4}&t={5}&a={6}",
+ SCROBBLER_URL,
+ SCROBBLER_VERSION,
+ CLIENT_ID, CLIENT_VERSION,
+- HttpUtility.UrlEncode (username));
+-
++ HttpUtility.UrlEncode (username),
++ timestamp,
++ security_token);
+ current_web_req = WebRequest.Create (uri);
+
+ state = State.WAITING_FOR_HANDSHAKE_RESP;
+ current_async_result = current_web_req.BeginGetResponse (HandshakeGetResponse, null);
+ if (current_async_result == null) {
+- next_interval = DateTime.Now + new TimeSpan (0, 0, RETRY_SECONDS);
+- state = State.IDLE;
++ next_interval = DateTime.Now + new TimeSpan (0, 0, hard_failure_retry_sec);
++ hard_failures++;
++ if (hard_failure_retry_sec < MAX_RETRY_SECONDS)
++ hard_failure_retry_sec *= 2;
++ state = State.NEED_HANDSHAKE;
+ }
+ }
+
+ void HandshakeGetResponse (IAsyncResult ar)
+ {
+ bool success = false;
++ bool hard_failure = false;
+ WebResponse resp;
+
+ try {
+ resp = current_web_req.EndGetResponse (ar);
+ }
+ catch (Exception e) {
+- Console.WriteLine ("failed to handshake: {0}", e);
++ LogCore.Instance.PushWarning ("Audioscrobbler init failed",
++ String.Format("Failed to handshake: {0}", e, false));
+
+ /* back off for a time before trying again */
+ state = State.IDLE;
+@@ -422,45 +478,113 @@
+ string line;
+
+ line = sr.ReadLine ();
+- if (line.StartsWith ("FAILED")) {
+- LogCore.Instance.PushWarning ("Audioscrobbler sign-on failed", line.Substring ("FAILED".Length).Trim(), false);
++ if (line.StartsWith ("BANNED")) {
++ LogCore.Instance.PushWarning ("Audioscrobbler sign-on failed", "Player is banned", false);
+
+ }
+- else if (line.StartsWith ("BADUSER")) {
++ else if (line.StartsWith ("BADAUTH")) {
+ LogCore.Instance.PushWarning ("Audioscrobbler sign-on failed", "unrecognized user/password", false);
+ }
+- else if (line.StartsWith ("UPDATE")) {
+- LogCore.Instance.PushInformation ("Audioscrobbler plugin needs updating",
+- String.Format ("Fetch a newer version at {0}\nor update to a newer version of Banshee",
+- line.Substring ("UPDATE".Length).Trim()), false);
+- success = true;
++ else if (line.StartsWith ("BADTIME")) {
++ LogCore.Instance.PushWarning ("Audioscrobbler sign-on failed",
++ "timestamp provided was not close enough to the current time", false);
+ }
+- else if (line.StartsWith ("UPTODATE")) {
++ else if (line.StartsWith ("FAILED")) {
++ LogCore.Instance.PushWarning ("Audioscrobbler sign-on failed",
++ String.Format ("Temporary server failure: {0}",
++ line.Substring ("FAILED".Length).Trim()), false);
++ hard_failure = true;
++ }
++ else if (line.StartsWith ("OK")) {
+ success = true;
+ }
++ else {
++ LogCore.Instance.PushError ("Audioscrobbler sign-on failed",
++ String.Format ("Unknown error: {0}",
++ line.Trim()), false);
++ hard_failure = true;
++ }
+
+- /* read the challenge string and post url, if
+- * this was a successful handshake */
+ if (success == true) {
+- string challenge = sr.ReadLine ().Trim ();
++ LogCore.Instance.PushInformation ("Audioscrobbler sign-on succeeded", "Session ID received", false);
++ session_id = sr.ReadLine ().Trim ();
++ now_playing_url = sr.ReadLine ().Trim ();
+ post_url = sr.ReadLine ().Trim ();
+-
+- security_token = MD5Encode (md5_pass + challenge);
+- //Console.WriteLine ("security token = {0}", security_token);
++ hard_failures = 0;
++ hard_failure_retry_sec = 60;
++
+ }
+-
+- /* read the trailing interval */
+- line = sr.ReadLine ();
+- if (line.StartsWith ("INTERVAL")) {
+- int interval_seconds = Int32.Parse (line.Substring ("INTERVAL".Length));
+- next_interval = DateTime.Now + new TimeSpan (0, 0, interval_seconds);
++ if (hard_failure == true) {
++ next_interval = DateTime.Now + new TimeSpan (0, 0, hard_failure_retry_sec);
++ hard_failures++;
++ if (hard_failure_retry_sec < MAX_RETRY_SECONDS)
++ hard_failure_retry_sec *= 2;
++
+ }
+- else {
+- Console.WriteLine ("expected INTERVAL..");
+- }
+
+ /* XXX we shouldn't just try to handshake again for BADUSER */
+ state = success ? State.IDLE : State.NEED_HANDSHAKE;
+ }
++
++ //
++ // Async code for now playing
++
++ void NowPlaying (TrackInfo track)
++ {
++ if (session_id != null && track.Artist != "" && track.Title != "") {
++
++ string str_track_number = "";
++ if (track.TrackNumber != 0)
++ str_track_number = track.TrackNumber.ToString();
++
++ string uri = String.Format ("{0}?s={1}&a={2}&t={3}&b={4}&l={5}&n={6}&m={7}",
++ now_playing_url,
++ session_id,
++ HttpUtility.UrlEncode(track.Artist),
++ HttpUtility.UrlEncode(track.Title),
++ HttpUtility.UrlEncode(track.Album),
++ track.Duration.TotalSeconds.ToString(),
++ str_track_number,
++ "" /* musicbrainz id */);
++
++ now_playing_post = WebRequest.Create (uri);
++ now_playing_post.Method = "POST";
++ now_playing_post.ContentType = "application/x-www-form-urlencoded";
++ now_playing_post.ContentLength = uri.Length;
++ now_playing_post.BeginGetResponse (NowPlayingGetResponse, null);
++ now_playing_submitted = true;
++ }
++ }
++
++ void NowPlayingGetResponse (IAsyncResult ar)
++ {
++ try {
++
++ WebResponse my_resp = now_playing_post.EndGetResponse (ar);
++
++ Stream s = my_resp.GetResponseStream ();
++ StreamReader sr = new StreamReader (s, Encoding.UTF8);
++
++ string line = sr.ReadLine ();
++ if (line.StartsWith ("BADSESSION")) {
++ LogCore.Instance.PushWarning ("Audioscrobbler NowPlaying failed", "Session ID sent was invalid", false);
++ /* attempt to re-handshake on the next interval */
++ session_id = null;
++ next_interval = DateTime.Now + new TimeSpan (0, 0, RETRY_SECONDS);
++ state = State.NEED_HANDSHAKE;
++ return;
++ }
++ else if (line.StartsWith ("OK")) {
++ // NowPlaying submitted
++ }
++ else {
++ LogCore.Instance.PushWarning ("Audioscrobbler NowPlaying failed", "Unexpected or no response", false);
++ }
++ }
++ catch (Exception e) {
++ LogCore.Instance.PushWarning ("Audioscrobbler NowPlaying failed",
++ String.Format("Failed to post NowPlaying: {0}", e, false));
++ }
++ }
+ }
+ }
+Index: src/Plugins/Banshee.Plugins.LastFM/Plugin.cs
+===================================================================
+--- src/Plugins/Banshee.Plugins.LastFM/Plugin.cs (Revision 2958)
++++ src/Plugins/Banshee.Plugins.LastFM/Plugin.cs (Revision 3417)
+@@ -1,7 +1,7 @@
+ /***************************************************************************
+ * Plugin.cs
+ *
+- * Copyright (C) 2007 Novell, Inc.
++ * Copyright (C) 2007-2008 Novell, Inc.
+ * Written by Gabriel Burt <gabriel.burt at gmail.com>
+ ****************************************************************************/
+
+@@ -262,5 +262,9 @@
+ public static readonly SchemaEntry<string> LastUserSchema = new SchemaEntry<string> (
+ "plugins.lastfm", "username", "", "Last.fm user", "Last.fm username"
+ );
++
++ public static readonly SchemaEntry<bool> ExpandedSchema = new SchemaEntry<bool> (
++ "plugins.lastfm", "expanded", false, "Last.fm expanded", "Last.fm expanded"
++ );
+ }
+ }
+Index: src/Plugins/Banshee.Plugins.LastFM/Editor.cs
+===================================================================
+--- src/Plugins/Banshee.Plugins.LastFM/Editor.cs (Revision 2958)
++++ src/Plugins/Banshee.Plugins.LastFM/Editor.cs (Revision 3417)
+@@ -1,7 +1,7 @@
+ /***************************************************************************
+ * Editor.cs
+ *
+- * Copyright (C) 2007 Novell, Inc.
++ * Copyright (C) 2007-2008 Novell, Inc.
+ * Written by Gabriel Burt <gabriel.burt at gmail.com>
+ ****************************************************************************/
+
+@@ -123,6 +123,7 @@
+ if (source == null) {
+ source = new StationSource (name, type.Name, arg);
+ LastFMPlugin.Instance.Source.AddChildSource (source);
++ SourceManager.AddSource (source);
+ } else {
+ source.Rename (name);
+ source.Type = type;
+Index: src/Plugins/Banshee.Plugins.LastFM/LastFMSource.cs
+===================================================================
+--- src/Plugins/Banshee.Plugins.LastFM/LastFMSource.cs (Revision 2958)
++++ src/Plugins/Banshee.Plugins.LastFM/LastFMSource.cs (Revision 3417)
+@@ -1,7 +1,7 @@
+ /***************************************************************************
+ * LastFMSource.cs
+ *
+- * Copyright (C) 2007 Novell, Inc.
++ * Copyright (C) 2007-2008 Novell, Inc.
+ * Written by Gabriel Burt <gabriel.burt at gmail.com>
+ ****************************************************************************/
+
+@@ -193,9 +193,14 @@
+ }
+
+ public override bool? AutoExpand {
+- get { return true; }
++ get { return LastFMPlugin.ExpandedSchema.Get (); }
+ }
+
++ public override bool Expanded {
++ get { return LastFMPlugin.ExpandedSchema.Get (); }
++ set { LastFMPlugin.ExpandedSchema.Set (value); }
++ }
++
+ public override bool CanActivate {
+ get { return false; }
+ }
+Index: src/Plugins/Banshee.Plugins.LastFM/banshee-plugin-lastfm.schemas.in
+===================================================================
+--- src/Plugins/Banshee.Plugins.LastFM/banshee-plugin-lastfm.schemas.in (Revision 2958)
++++ src/Plugins/Banshee.Plugins.LastFM/banshee-plugin-lastfm.schemas.in (Revision 3417)
+@@ -13,6 +13,17 @@
+ </locale>
+ </schema>
+ <schema>
++ <key>/schemas/apps/banshee/plugins/lastfm/expanded</key>
++ <applyto>/apps/banshee/plugins/lastfm/expanded</applyto>
++ <owner>banshee</owner>
++ <type>bool</type>
++ <default>false</default>
++ <locale name="C">
++ <short>Last.fm expanded</short>
++ <long>Last.fm expanded</long>
++ </locale>
++ </schema>
++ <schema>
+ <key>/schemas/apps/banshee/plugins/lastfm/station_sort</key>
+ <applyto>/apps/banshee/plugins/lastfm/station_sort</applyto>
+ <owner>banshee</owner>
+Index: src/Plugins/Banshee.Plugins.NotificationAreaIcon/NotificationAreaIconPlugin.cs
+===================================================================
+--- src/Plugins/Banshee.Plugins.NotificationAreaIcon/NotificationAreaIconPlugin.cs (Revision 2958)
++++ src/Plugins/Banshee.Plugins.NotificationAreaIcon/NotificationAreaIconPlugin.cs (Revision 3417)
+@@ -241,7 +241,7 @@
+
+ private void ShowHideMainWindow()
+ {
+- if (InterfaceElements.MainWindow.IsActive) {
++ if (InterfaceElements.MainWindow.Visible) {
+ SaveWindowSizePosition();
+ InterfaceElements.MainWindow.Visible = false;
+ } else {
+Index: src/Dap/Banshee.Dap.MassStorage/MassStorageDap.cs
+===================================================================
+--- src/Dap/Banshee.Dap.MassStorage/MassStorageDap.cs (Revision 2958)
++++ src/Dap/Banshee.Dap.MassStorage/MassStorageDap.cs (Revision 3417)
+@@ -69,6 +69,7 @@
+ protected Hal.Device volume_device = null;
+ protected Gnome.Vfs.Volume volume = null;
+
++
+ public override InitializeResult Initialize(Hal.Device halDevice)
+ {
+ volume_device = halDevice;
+@@ -89,7 +90,7 @@
+ return WaitForVolumeMount(volume_device);
+ }
+
+- if(player_device["portable_audio_player.type"] == "ipod") {
++ if(IsPortableAudioPlayerType (player_device, "ipod")) {
+ if(File.Exists(IsAudioPlayerPath)) {
+ LogCore.Instance.PushInformation(
+ "Mass Storage Support Loading iPod",
+@@ -108,8 +109,7 @@
+ }
+
+ // Detect player via HAL property or presence of .is_audo_player file in root
+- if(player_device["portable_audio_player.access_method"] != "storage" &&
+- !File.Exists(IsAudioPlayerPath)) {
++ if(!IsMassStorage (player_device) && !File.Exists(IsAudioPlayerPath)) {
+ return InitializeResult.Invalid;
+ }
+
+@@ -804,5 +804,13 @@
+ get { return Path.Combine(MountPoint, ".is_audio_player"); }
+ }
+
++ protected static bool IsMassStorage (Hal.Device device)
++ {
++ if (device.PropertyExists ("portable_audio_player.access_method")) {
++ return device["portable_audio_player.access_method"] == "storage";
++ }
++
++ return IsPortableAudioPlayerType (device, "storage");
++ }
+ }
+ }
+Index: src/Dap/Banshee.Dap.Ipod/IpodDap.cs
+===================================================================
+--- src/Dap/Banshee.Dap.Ipod/IpodDap.cs (Revision 2958)
++++ src/Dap/Banshee.Dap.Ipod/IpodDap.cs (Revision 3417)
+@@ -83,7 +83,7 @@
+ if(!hal_device.PropertyExists("block.device") ||
+ !hal_device.PropertyExists("block.is_volume") ||
+ !hal_device.GetPropertyBoolean("block.is_volume") ||
+- hal_device.Parent["portable_audio_player.type"] != "ipod") {
++ !IsPortableAudioPlayerType (hal_device.Parent, "ipod")) {
+ return InitializeResult.Invalid;
+ } else if(!hal_device.GetPropertyBoolean("volume.is_mounted")) {
+ return WaitForVolumeMount(hal_device);
+Index: src/Dap/Banshee.Dap.Mtp/ChangeLog
+===================================================================
+--- src/Dap/Banshee.Dap.Mtp/ChangeLog (Revision 2958)
++++ src/Dap/Banshee.Dap.Mtp/ChangeLog (Revision 3417)
+@@ -1,160 +0,0 @@
+-2008-01-06 Alan McGovern <alan.mcgovern at gmail.com>
+-
+- * MtpDap.cs: Removed checks for hal properties which i don't use - increases
+- compatibility with systems which don't have those properties.
+-
+-2008-01-05 Alan McGovern <alan.mcgovern at gmail.com>
+-
+- * MtpDap.cs: Added some better error handling so that i can deal with common
+- issues on the wiki.
+-
+-2008-01-05 Alan McGovern <alan.mcgovern at gmail.com>
+-
+- * MtpDap.cs: Fixed stupid typo...
+-
+-2008-01-05 Alan McGovern <alan.mcgovern at gmail.com>
+-
+- * MtpDap.cs: Added a little extra debug spew
+-
+-2008-01-05 Alan McGovern <alan.mcgovern at gmail.com>
+-
+- * MtpDap.cs: Removed checks for libgphoto support - we no longer use
+- libgphoto so these shouldn't be there.
+-
+-2007-12-03 Alan McGovern <alan.mcgovern at gmail.com>
+-
+- * Banshee.Dap.Mtp.mdp: Pushing MTP code into banshee. Huzzah!
+-
+-2007-11-14 Alan McGovern <alan.mcgovern at gmail.com>
+-
+- * MtpDap.cs: Cosmetic changes to the debug output
+-
+-2007-10-21 Alan McGovern <alan.mcgovern at gmail.com>
+-
+- * MtpDap.cs: If the camera hasn't initialised, return sane values rather
+- than blowing up (fixed it this time)
+-
+-2007-10-20 Alan McGovern <alan.mcgovern at gmail.com>
+-
+- * MtpDap.cs: Updated the warning message a bit
+-
+-2007-10-20 Alan McGovern <alan.mcgovern at gmail.com>
+-
+- * MtpDap.cs: When the import is complete, dispose the user event
+-
+-2007-10-14 Alan McGovern <alan.mcgovern at gmail.com>
+-
+- * MtpDap.cs: if there's no space on the device, give a warning when trying
+- to upload. Removed unneeded logic from AddTrack. Added some debug
+- output.
+-
+-2007-10-14 Alan McGovern <alan.mcgovern at gmail.com>
+-
+- * MtpDap.cs: Updated to latest libgphoto-sharp API
+-
+-2007-10-14 Alan McGovern <alan.mcgovern at gmail.com>
+-
+- * MtpDap.cs: Removed debug speedup which i accidently commited
+-
+-2007-10-13 Alan McGovern <alan.mcgovern at gmail.com>
+-
+- * MtpDap.cs: Implemented IImportable. Added speedups for library refreshing.
+- Enabled metadata updating.
+- * MtpDapTrackInfo.cs: Adding a URI (even though it's useless). Overrode
+- WriteUpdate so changing metadata can be detected.
+-
+-2007-10-13 Alan McGovern <alan.mcgovern at gmail.com>
+-
+- * MtpDap.cs: Added logic to resolve folder/filename collisions and also
+- intelligently create directories for files
+-
+-2007-10-07 Alan McGovern <alan.mcgovern at gmail.com>
+-
+- * MtpDap.cs: Reverted the change to AddTrack. Added in time information to
+- show user how long it took to load the filesystem.
+-
+-2007-10-07 Alan McGovern <alan.mcgovern at gmail.com>
+-
+- * MtpDap.cs: Removed excess debugging messages, bugfixed 'AddTrack'
+-
+-2007-10-07 Alan McGovern <alan.mcgovern at gmail.com>
+-
+- * MtpDap.cs: Spaces/tabs fix
+-
+-2007-10-06 Alan McGovern <alan.mcgovern at gmail.com>
+-
+- * Makefile.am: Updated makefiles to fix compilation
+-
+-2007-10-06 Alan McGovern <alan.mcgovern at gmail.com>
+-
+- * MtpDap.cs: Added internal property to expose the camera. updated logic in
+- AddTrack to be more like what i think it should be.
+- * MtpDapTrackInfo.cs: Cosmetic
+- * MtpDapPlaylistSource.cs: Initial version of MtpDapPlaylistSource
+-
+-2007-10-06 Alan McGovern <alan.mcgovern at gmail.com>
+-
+- * Banshee.Dap.Mtp.mdp, GPhotoDevicePlaylist.cs: Removed old unneeded file
+-
+-2007-10-06 Alan McGovern <alan.mcgovern at gmail.com>
+-
+- * GPhotoDevicePlaylist.cs: Began refactor of the 'Playlist' class.
+- * MtpDap.cs: Removed useless debug message
+-
+-2007-10-02 Alan McGovern <alan.mcgovern at gmail.com>
+-
+- * MtpDap.cs: Now identifying devices using the usb bus and device numbers.
+- Multiple instances of the same mp3 player can be correctly used now.
+- Removed debug speedup which shouldn't have hit SVN.
+-
+-2007-10-01 Alan McGovern <alan.mcgovern at gmail.com>
+-
+- * MtpDap.cs: Implemented track adding/removing so synching works.
+- * MtpDapTrackInfo.cs: Added method to make it easy to check if the file is
+- on a camera. overrode equals.
+-
+-2007-10-01 Alan McGovern <alan.mcgovern at gmail.com>
+-
+- * MtpDap.cs: Cosmetic
+-
+-2007-10-01 Alan McGovern <alan.mcgovern at gmail.com>
+-
+- * MtpDap.cs: base.Initialize(HalDevice) was being called twice. Fixed some
+- debug spew
+-
+-2007-10-01 Alan McGovern <alan.mcgovern at gmail.com>
+-
+- * MtpDap.cs: Added useful debug-spew when trying to connect to devices.
+-
+-2007-09-30 Alan McGovern <alan.mcgovern at gmail.com>
+-
+- * MtpDap.cs: Giving some stats about how many tracks were loaded
+-
+-2007-09-30 Alan McGovern <alan.mcgovern at gmail.com>
+-
+- * MtpDap.cs: Removed excess dead code
+-
+-2007-09-30 Alan McGovern <alan.mcgovern at gmail.com>
+-
+- * MtpDap.cs: Remvoed other half of speedup-hack
+-
+-2007-09-30 Alan McGovern <alan.mcgovern at gmail.com>
+-
+- * MtpDap.cs: Removed my debugging speedup-hack
+-
+-2007-09-30 Alan McGovern <alan.mcgovern at gmail.com>
+-
+- * GPhotoDeviceFile.cs, Banshee.Dap.Mtp.mdp, GPhotoUtilities.cs, Makefile.am:
+- Deleted useless files
+- * MtpDap.cs, MtpDapTrackInfo.cs: Began initial work on updating the MTP code
+- to work with the new API
+- * MtpDapPlaylistSource.cs, GPhotoDevicePlaylist.cs: Commented it all out, it
+- needs to be redone
+-
+-2007-09-07 Alan McGovern <alan.mcgovern at gmail.com>
+-
+- * GPhotoDevice.cs, GPhotoDeviceFile.cs: Updated the parsing of the metadata
+- so it only reads through the string once rather than doing lengthy full
+- linear searches for each attribute. Replaced the DisposeCameraFile
+- method with a standard Dispose
+-
+Index: src/Dap/Banshee.Dap.Mtp/AlbumSet.cs
+===================================================================
+--- src/Dap/Banshee.Dap.Mtp/AlbumSet.cs (Revision 0)
++++ src/Dap/Banshee.Dap.Mtp/AlbumSet.cs (Revision 3417)
+@@ -0,0 +1,115 @@
++/***************************************************************************
++ * AlbumSet.cs
++ *
++ * Copyright (C) 2008 Novell, Inc.
++ * Authors:
++ * Gabriel Burt (gburt at novell.com)
++ ****************************************************************************/
++
++/* THIS FILE IS LICENSED UNDER THE MIT LICENSE AS OUTLINED IMMEDIATELY BELOW:
++ *
++ * Permission is hereby granted, free of charge, to any person obtaining a
++ * copy of this software and associated documentation files (the "Software"),
++ * to deal in the Software without restriction, including without limitation
++ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
++ * and/or sell copies of the Software, and to permit persons to whom the
++ * Software is furnished to do so, subject to the following conditions:
++ *
++ * The above copyright notice and this permission notice shall be included in
++ * all copies or substantial portions of the Software.
++ *
++ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
++ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
++ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
++ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
++ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
++ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
++ * DEALINGS IN THE SOFTWARE.
++ */
++
++using System;
++using System.Collections.Generic;
++
++using Mono.Unix;
++using Gdk;
++
++using Banshee.Dap;
++using Banshee.Base;
++
++using Mtp;
++
++namespace Banshee.Dap.Mtp
++{
++ public class AlbumSet
++ {
++ private MtpDevice device;
++ private List<Album> old_list;
++ private List<Album> new_list = new List<Album> ();
++ private Dictionary<string, Album> hash = new Dictionary<string, Album> ();
++ private Dictionary<Album, TrackInfo> tracks = new Dictionary<Album, TrackInfo> ();
++
++ public AlbumSet (MtpDevice device)
++ {
++ this.device = device;
++ old_list = device.GetAlbums ();
++ hash.Clear ();
++ }
++
++ public void Ref (MtpDapTrackInfo track)
++ {
++ string key = track.Album + track.Artist;
++ if (!hash.ContainsKey (key)) {
++ Album album = new Album (device, track.Album, track.Artist, track.Genre);
++ new_list.Add (album);
++ hash[key] = album;
++ }
++
++ hash [key].AddTrack (track.OriginalFile);
++ tracks [hash[key]] = track;
++ }
++
++ /*public void Unref (MtpDapTrackInfo track)
++ {
++ Unref (track.OriginalFile);
++ }
++
++ public void Unref (Track track)
++ {
++ string key = track.Album + track.Artist;
++ if (hash.ContainsKey (key)) {
++ hash [key].RemoveTrack (track);
++ }
++ }*/
++
++ public IEnumerable<double> Save ()
++ {
++ int MAX_THUMB_WIDTH = MtpDap.AlbumArtWidthSchema.Get ();
++ double total = old_list.Count + new_list.Count;
++ double current = 0;
++ foreach (Album album in old_list) {
++ album.Remove ();
++ yield return (current++ / total);
++ }
++
++ foreach (Album album in new_list) {
++ if (tracks.ContainsKey (album)) {
++ string cover_art_file = tracks[album].CoverArtFileName;
++ if (cover_art_file != null) {
++ Gdk.Pixbuf pic = new Gdk.Pixbuf (cover_art_file);
++
++ int new_h = pic.Height * MAX_THUMB_WIDTH / pic.Width;
++ Gdk.Pixbuf scaled = pic.ScaleSimple (MAX_THUMB_WIDTH, new_h, InterpType.Bilinear);
++
++ byte [] bytes = scaled.SaveToBuffer ("jpeg");
++ album.Save (bytes, (uint)scaled.Width, (uint)scaled.Height);
++ scaled.Dispose ();
++ pic.Dispose ();
++ }
++ }
++ yield return (current++ / total);
++ }
++
++ tracks.Clear ();
++ }
++ }
++}
+Index: src/Dap/Banshee.Dap.Mtp/Makefile.am
+===================================================================
+--- src/Dap/Banshee.Dap.Mtp/Makefile.am (Revision 2958)
++++ src/Dap/Banshee.Dap.Mtp/Makefile.am (Revision 3417)
+@@ -5,6 +5,7 @@
+
+ ASSEMBLY_SOURCES = \
+ $(top_srcdir)/src/AssemblyInfo.cs \
++ $(srcdir)/AlbumSet.cs \
+ $(srcdir)/MtpDap.cs \
+ $(srcdir)/MtpDapTrackInfo.cs \
+ $(srcdir)/MtpDapPlaylistSource.cs
+@@ -15,7 +16,7 @@
+ endif
+
+ $(ASSEMBLY): $(ASSEMBLY_SOURCES)
+- $(BUILD_LIB_BANSHEE_CORE) -out:$@ $(LINK_HAL) $(LINK_GTK) $(LINK_MONO_UNIX) -r:$(top_builddir)/ext/libmtp-sharp/libmtp-sharp.dll $(ASSEMBLY_SOURCES)
++ $(BUILD_LIB_BANSHEE_CORE) -out:$@ $(LINK_HAL) $(LINK_GTK) $(LINK_MONO_UNIX) -r:$(top_builddir)/ext/libmtp-sharp/Mtp.dll $(ASSEMBLY_SOURCES)
+
+ EXTRA_DIST = $(ASSEMBLY_SOURCES)
+ CLEANFILES = $(ASSEMBLY) $(ASSEMBLY).mdb
+Index: src/Dap/Banshee.Dap.Mtp/MtpDap.cs
+===================================================================
+--- src/Dap/Banshee.Dap.Mtp/MtpDap.cs (Revision 2958)
++++ src/Dap/Banshee.Dap.Mtp/MtpDap.cs (Revision 3417)
+@@ -1,10 +1,11 @@
+ /***************************************************************************
+ * MtpDap.cs
+ *
+- * Copyright (C) 2006-2007 Novell and Patrick van Staveren
++ * Copyright (C) 2006-2008 Novell and Patrick van Staveren
+ * Authors:
+ * Patrick van Staveren (trick at vanstaveren.us)
+ * Alan McGovern (alan.mcgovern at gmail.com)
++ * Gabriel Burt (gburt at novell.com)
+ ****************************************************************************/
+
+ /* THIS FILE IS LICENSED UNDER THE MIT LICENSE AS OUTLINED IMMEDIATELY BELOW:
+@@ -34,613 +35,641 @@
+ using System.Collections.Generic;
+ using System.Text;
+ using System.Threading;
++
+ using Hal;
++using Mono;
++using Mono.Unix;
++using Gtk;
++using Gdk;
++
+ using Banshee.Dap;
+ using Banshee.Base;
+ using Banshee.Widgets;
+ using Banshee.Sources;
+-using Mono;
+-using Mono.Unix;
+-using Gtk;
+-using libmtpsharp;
++using Banshee.Configuration;
+
++using Mtp;
++
+ public static class PluginModuleEntry
+ {
+- public static Type [] GetTypes()
++ public static Type [] GetTypes ()
+ {
+- return new Type [] { typeof(Banshee.Dap.Mtp.MtpDap) };
++ return new Type [] { typeof (Banshee.Dap.Mtp.MtpDap) };
+ }
+ }
+
+ namespace Banshee.Dap.Mtp
+ {
+- [DapProperties(DapType = DapType.NonGeneric)]
+- [SupportedCodec(CodecType.Mp3)]
+- [SupportedCodec(CodecType.Wma)]
+-// [SupportedCodec(CodecType.Wav)] // for some reason, files get sent to the device as Wav's when this is enabled. wtf?
+-
++ [DapProperties (DapType = DapType.NonGeneric)]
+ public sealed class MtpDap : DapDevice, IImportable//, IPlaylistCapable
+ {
+- private MtpDevice camera;
++ private static MtpDap mtp_dap;
++
++ private MtpDevice device;
++ private Hal.Device hal_device;
+ private List<MtpDapTrackInfo> metadataChangedQueue;
+ private Queue<MtpDapTrackInfo> removeQueue;
+- private List<MtpDapTrackInfo> allTracks;
++ private List<MtpDapTrackInfo> all_tracks;
+
+-
+- internal MtpDevice Camera
+- {
+- get { return camera; }
+- }
++ private bool supports_jpegs = false;
++
++ private string hal_name = String.Empty;
+
+- public override bool CanSynchronize
++ public MtpDap ()
+ {
+- get { return true; }
++ all_tracks = new List<MtpDapTrackInfo> ();
++ metadataChangedQueue = new List<MtpDapTrackInfo> ();
++ removeQueue = new Queue<MtpDapTrackInfo> ();
+ }
+
+- public MtpDap()
++ public override InitializeResult Initialize (Hal.Device halDevice)
+ {
+- allTracks = new List<MtpDapTrackInfo>();
+- metadataChangedQueue = new List<MtpDapTrackInfo>();
+- removeQueue = new Queue<MtpDapTrackInfo>();
+- }
+-
+-
+- public override void Eject ()
+- {
+- camera.Dispose();
+- base.Eject();
+- }
+-
+- public override InitializeResult Initialize(Hal.Device halDevice)
+- {
+- HalDevice = halDevice;
+- if (!halDevice.PropertyExists("usb.vendor_id"))
+- {
+- LogCore.Instance.PushDebug("Missing Properties", "Cannot find usb.vendor_id");
+- }
+- if (!halDevice.PropertyExists("usb.product_id"))
+- {
+- LogCore.Instance.PushDebug("Missing Properties", "Cannot find usb.product_id");
+- }
+- if (!halDevice.PropertyExists("portable_audio_player.type"))
+- {
+- LogCore.Instance.PushDebug("Missing Properties", "Cannot find portable_audio_player.type. Attempting to continue...");
+- }
+-
+- short product_id = 0;//(short) halDevice.GetPropertyInteger("usb.product_id");
+- short vendor_id = 0;//(short) halDevice.GetPropertyInteger("usb.vendor_id");
+- string type = halDevice.PropertyExists("portable_audio_player.type") ? halDevice.GetPropertyString("portable_audio_player.type") : "mtp";
+- string name = halDevice.PropertyExists("usb_device.product") ? halDevice.GetPropertyString("usb_device.product") : "Mtp Device";
+- int deviceNumber = 0;//halDevice.GetPropertyInteger("usb.linux.device_number");
+- int busNumber = 0;//halDevice.GetPropertyInteger("usb.bus_number");
++ hal_device = halDevice;
+
+- if (type != "mtp")
+- {
+- LogCore.Instance.PushDebug("MTP: Unsupported Device", "The device's portable_audio_player.type IS NOT mtp");
++ // Make sure it's an MTP device.
++ if (!IsPortableAudioPlayerType (hal_device, "mtp")) {
+ return InitializeResult.Invalid;
+- }
++ }
++
++ // libmtp only allows us to have one MTP device active
++ if (mtp_dap != null) {
++ LogCore.Instance.PushInformation(
++ Catalog.GetString ("MTP Support Ignoring Device"),
++ Catalog.GetString ("Banshee's MTP audio player support can only handle one device at a time."),
++ true
++ );
++ return InitializeResult.Invalid;
++ }
++
++ try {
++ hal_name = hal_device.Parent ["info.product"];
++ } catch {}
++
++ int product_id = hal_device.GetPropertyInteger ("usb.product_id");
++ int vendor_id = hal_device.GetPropertyInteger ("usb.vendor_id");
++ string serial = hal_device ["usb.serial"];
+
+- LogCore.Instance.PushDebug("MTP: Starting initialization",
+- string.Format("Name: {0}, Device: {1}, Bus:{2}",
+- name, deviceNumber, busNumber));
+-
+- List<MtpDevice> cameras = null;
+- try
+- {
+- cameras = MtpDevice.Detect();
+- }
+- catch(TypeInitializationException ex)
+- {
+- string message = "Required libraries could not be found. Read http://www.banshee-project.org/Guide/DAPs/MTP for more information. ";
+- message += (Environment.NewLine + Environment.NewLine);
+- message += ex.InnerException.Message;
+- message += " could not be found";
+- LogCore.Instance.PushError("Initialisation error", message);
++ List<MtpDevice> devices = null;
++ try {
++ devices = MtpDevice.Detect ();
++ } catch (TypeInitializationException ex) {
++ LogCore.Instance.PushError (
++ Catalog.GetString ("Error Initializing MTP Device Support"),
++ Catalog.GetString ("There was an error intializing MTP device support. See http://www.banshee-project.org/Guide/DAPs/MTP for more information.")
++ );
+ return InitializeResult.Invalid;
+- }
+- catch (Exception ex)
+- {
+- ShowGeneralExceptionDialog(ex);
++ } catch (Exception ex) {
++ ShowGeneralExceptionDialog (ex);
+ return InitializeResult.Invalid;
+ }
+- //camera = cameras.Find(delegate (Camera c) { return c.UsbBusNumber == busNumber && c.UsbDeviceNumber == deviceNumber; });
+-
+- if(cameras == null || cameras.Count != 1)
+- {
+- //LogCore.Instance.PushDebug("Connection failed", string.Format("MTP: found {0} devices, but not the one we're looking for.", cameras.Count));
+- //foreach (MtpDap cam in cameras)
+- // LogCore.Instance.PushDebug("Found", string.Format("name={2}, vendor={0}, prod={1}", cam.Vendor, cam.Product, cam.Name));
+-
+- LogCore.Instance.PushDebug("Connection failed", "We can only handle 1 connected mtp device at a time.");
+- return Banshee.Dap.InitializeResult.Invalid;
+- }
+- camera = cameras[0];
+- LogCore.Instance.PushDebug("MTP: device found", String.Format("vendor={0}, prod={1}", vendor_id, product_id));
+
+- base.Initialize(halDevice);
++ bool device_found = false;
++
++ if (devices == null || devices.Count == 0) {
++ LogCore.Instance.PushError (
++ Catalog.GetString ("Error Finding MTP Device Support"),
++ Catalog.GetString ("An MTP device was detected, but Banshee was unable to load support for it.")
++ );
++ } else {
++ string mtp_serial = devices[0].SerialNumber;
++ if (!String.IsNullOrEmpty (mtp_serial) && !String.IsNullOrEmpty (serial)) {
++ if (mtp_serial.Contains (serial)) {
++ device_found = true;
++ device = devices[0];
++ mtp_dap = this;
++ }
++ }
++
++ if (!device_found) {
++ LogCore.Instance.PushInformation(
++ Catalog.GetString ("MTP Support Ignoring Device"),
++ Catalog.GetString ("Banshee's MTP audio player support can only handle one device at a time."),
++ true
++ );
++ }
++ }
++
++ if (!device_found) {
++ return InitializeResult.Invalid;
++ }
++
++ LogCore.Instance.PushDebug ("Loading MTP Device",
++ String.Format ("Name: {0}, ProductID: {1}, VendorID: {2}, Serial: {3}",
++ hal_name, product_id, vendor_id, serial
++ )
++ );
++
++ base.Initialize (hal_device);
++
++ List<string> extensions = new List<string>();
++ List<string> mimetypes = new List<string>();
++
++ FileType [] file_types = device.GetFileTypes ();
++ StringBuilder format_sb = new StringBuilder ();
++ bool first_format = true;
++ foreach (FileType format in file_types) {
++ if (format == FileType.JPEG) {
++ supports_jpegs = true;
++ continue;
++ }
++
++ string codec = Banshee.Dap.CodecType.GetCodec (format.ToString ().ToLower ());
++
++ if(codec != null) {
++ extensions.AddRange (CodecType.GetExtensions(codec));
++ mimetypes.AddRange (CodecType.GetMimeTypes(codec));
++ if (first_format) {
++ first_format = false;
++ } else {
++ format_sb.Append (", ");
++ }
++ format_sb.Append (codec);
++ }
++ }
++
++ SupportedExtensions = extensions.ToArray();
++ SupportedPlaybackMimeTypes = mimetypes.ToArray();
+
+- InstallProperty("Model", camera.Name);
+- InstallProperty("Vendor", halDevice["usb.vendor"]);
+- InstallProperty("Serial Number", halDevice["usb.serial"]);
+- ThreadAssist.Spawn(InitializeBackgroundThread);
++ InstallProperty (Catalog.GetString ("Vendor"), hal_device["usb.vendor"]);
++ InstallProperty (Catalog.GetString ("Model"), hal_name);
++ InstallProperty (Catalog.GetString ("Audio Format(s)"), format_sb.ToString ());
++ InstallProperty (Catalog.GetString ("Album Art"), supports_jpegs ? Catalog.GetString ("Yes") : Catalog.GetString ("No"));
++ InstallProperty (Catalog.GetString ("Version"), device.Version);
++ InstallProperty (Catalog.GetString ("Serial Number"), serial);
+
+- CanCancelSave = false;
++ // Don't continue until the UI is initialized
++ if(!Globals.UIManager.IsInitialized) {
++ Globals.UIManager.Initialized += OnUIManagerInitialized;
++ } else {
++ Reload ();
++ }
++
++ CanCancelSave = true;
+ return InitializeResult.Valid;
+ }
+
+- public void InitializeBackgroundThread()
++ private void OnUIManagerInitialized (object o, EventArgs args)
++ {
++ Globals.UIManager.Initialized -= OnUIManagerInitialized;
++ Reload ();
++ }
++
++ private bool ejecting;
++ public override void Eject ()
+ {
+- ActiveUserEvent userEvent = new ActiveUserEvent("MTP Initialization");
+- try
+- {
+- userEvent.CanCancel = true;
+- userEvent.Header = Catalog.GetString(string.Format("{0}: Found", camera.Name));
+- userEvent.Message = Catalog.GetString("Connecting...");
+- try
+- {
+- ReloadDatabase(userEvent);
+- }
+- catch (Exception e)
+- {
+- ShowGeneralExceptionDialog(e);
+- Dispose();
+- return;
+- }
+- }
+- finally
+- {
+- GLib.Timeout.Add(4000, delegate {
+- userEvent.Dispose();
+- return false;
+- });
+- }
++ if (ejecting)
++ return;
++ ejecting = true;
++ // TODO this isn't needed atm since we don't support playback directly off MTP devices
++ UnmapPlayback(typeof(MtpDapTrackInfo));
++ Dispose ();
++ base.Eject ();
++ ejecting = false;
+ }
+
+- public override void Dispose() {
+- camera.Dispose();
+- base.Dispose();
++ public override void Dispose ()
++ {
++ device.Dispose ();
++ base.Dispose ();
++ mtp_dap = null;
+ }
+
+- private void OnMetadataChanged(object sender, EventArgs e)
++ private void OnMetadataChanged (object sender, EventArgs e)
+ {
+ MtpDapTrackInfo info = (MtpDapTrackInfo)sender;
+- if (!metadataChangedQueue.Contains(info))
+- metadataChangedQueue.Add(info);
++ if (!metadataChangedQueue.Contains (info))
++ metadataChangedQueue.Add (info);
+ }
+-
+- private void ReloadDatabase(bool reconnect)
++
++
++
++ protected override void Reload ()
+ {
+- ActiveUserEvent userEvent = new ActiveUserEvent("MTP Initialization");
+- try
+- {
+- ReloadDatabase(userEvent);
+- }
+- finally
+- {
+- GLib.Timeout.Add(4000, delegate {
+- userEvent.Dispose();
+- return false;
+- });
+- }
+- }
+-
+- // FIXME: Try/catch this entire block?
+- private void ReloadDatabase(ActiveUserEvent userEvent)
+- {
+- double startTime = Environment.TickCount;
+-
+ // Clear the list of tracks that banshee keeps
+- ClearTracks(false);
+-
+-
+- userEvent.Message = string.Format(Catalog.GetString("Loading database..."));
+-
+- List<Track> files = camera.GetAllTracks(delegate (ulong current, ulong total, IntPtr data) {
+- userEvent.Progress = (double)current / total;
+- return userEvent.IsCancelRequested ? 1 : 0;
+- });
+-
+- if(userEvent.IsCancelRequested)
+- {
+- userEvent.Message = Catalog.GetString("Cancelled...");
+- return;
++ lock (Source.TracksMutex) {
++ ClearTracks (false);
++ }
++
++ ActiveUserEvent user_event = new ActiveUserEvent (
++ String.Format (Catalog.GetString ("Loading {0}"), Name)
++ );
++
++ try {
++ List<Track> files = device.GetAllTracks (delegate (ulong current, ulong total, IntPtr data) {
++ user_event.Progress = (double)current / total;
++ return user_event.IsCancelRequested ? 1 : 0;
++ });
++
++ if (user_event.IsCancelRequested) {
++ return;
++ }
++
++ all_tracks = new List<MtpDapTrackInfo> (files.Count + 50);
++ foreach (Track f in files) {
++ MtpDapTrackInfo track = new MtpDapTrackInfo (device, f);
++ track.Changed += OnMetadataChanged;
++ AddTrack (track);
++ all_tracks.Add (track);
++ }
++ } finally {
++ user_event.Dispose ();
+ }
+-
+- allTracks = new List<MtpDapTrackInfo>(files.Count + 50);
+- foreach (Track f in files)
+- {
+- MtpDapTrackInfo track = new MtpDapTrackInfo(camera, f);
+- track.Changed += new EventHandler(OnMetadataChanged);
+- AddTrack(track);
+- allTracks.Add(track);
+- }
+-
+- startTime = (Environment.TickCount - startTime) / 1000.0;
+- userEvent.Message = string.Format(Catalog.GetString("Loaded {0} files in {1:0.00}sec"), this.tracks.Count, startTime);
+- userEvent.Header = Catalog.GetString(string.Format("{0}: Ready", camera.Name));
+ }
+
+- protected override void OnTrackRemoved(TrackInfo track)
++ protected override void OnTrackRemoved (TrackInfo track)
+ {
+- base.OnTrackRemoved(track);
++ base.OnTrackRemoved (track);
+
+ MtpDapTrackInfo t = track as MtpDapTrackInfo;
+- if (IsReadOnly || t == null || !t.OnCamera(camera))
++ if (IsReadOnly || t == null || !t.OnCamera (device)) {
+ return;
++ }
+
+- // This means we have write access and the file is on the camera.
+- removeQueue.Enqueue((MtpDapTrackInfo)track);
++ // This means we have write access and the file is on the device.
++ removeQueue.Enqueue ((MtpDapTrackInfo) track);
+ }
+
+- public override void AddTrack(TrackInfo track)
++ public override void AddTrack (TrackInfo track)
+ {
+ //FIXME: DO i need to check if i already have the track in the list?
+- //if ((mtpTrack != null && mtpTrack.OnCamera(camera)))
++ //if ((mtpTrack != null && mtpTrack.OnCamera (device)))
+ // return;
+
+- base.AddTrack(track);
++ base.AddTrack (track);
+ }
+
+ /*PL*
+- private void AddDevicePlaylist(MtpDapPlaylistSource playlist) {
+- this.Source.AddChildSource(playlist);
+- playlists.Add(playlist);
++ private void AddDevicePlaylist (MtpDapPlaylistSource playlist) {
++ this.Source.AddChildSource (playlist);
++ playlists.Add (playlist);
+ }
+
+- public DapPlaylistSource AddPlaylist(Source source) {
+- ArrayList playlist_tracks = new ArrayList();
++ public DapPlaylistSource AddPlaylist (Source source) {
++ ArrayList playlist_tracks = new ArrayList ();
+
+ foreach (TrackInfo track in source.Tracks) {
+- if (!TrackExistsInList(track, Tracks)) {
+- AddTrack(track);
+- playlist_tracks.Add(track);
++ if (!TrackExistsInList (track, Tracks)) {
++ AddTrack (track);
++ playlist_tracks.Add (track);
+ } else {
+- playlist_tracks.Add(find_existing_track(track) as TrackInfo);
++ playlist_tracks.Add (find_existing_track (track) as TrackInfo);
+ }
+ }
+
+- MtpDapPlaylistSource playlist = new MtpDapPlaylistSource(this, source.Name, playlist_tracks);
+- playlists.Add(playlist);
+- dev.Playlists.Add(playlist.GetDevicePlaylist());
++ MtpDapPlaylistSource playlist = new MtpDapPlaylistSource (this, source.Name, playlist_tracks);
++ playlists.Add (playlist);
++ dev.Playlists.Add (playlist.GetDevicePlaylist ());
+
+- this.Source.AddChildSource(playlist); // fixme: this should happen automatically in DapDevice or DapSource or something.
++ this.Source.AddChildSource (playlist); // fixme: this should happen automatically in DapDevice or DapSource or something.
+ return playlist;
+ }
+ */
+
+- private Track ToMusicFile(TrackInfo track, string name, ulong length)
++ private Track ToMusicFile (TrackInfo track, string name, ulong length)
+ {
+ // FIXME: Set the length properly
+ // Fixme: update the reference i'm holding to the original music file?
+ // Why am i holding it anyway?
+- Track f = new Track(name, length);
++ Track f = new Track (name, length);
++ TrackInfoToMtpTrack (track, f);
++ return f;
++ }
++
++ public void TrackInfoToMtpTrack (TrackInfo track, Track f)
++ {
+ f.Album = track.Album;
+ f.Artist = track.Artist;
+ f.Duration = (uint)track.Duration.TotalMilliseconds;
+ f.Genre = track.Genre;
+- f.Rating = (ushort)track.Rating;
++ f.Rating = (ushort)(track.Rating * 20);
+ f.Title = track.Title;
+ f.TrackNumber = (ushort)track.TrackNumber;
+- f.UseCount = track.TrackCount;
+-#warning FIX THIS
+- //f.Year = track.Year > 0 ? track.Year : 0;
+- return f;
++ f.UseCount = (uint)track.PlayCount;
++ f.Date = track.Year + "0101T0000.0";
+ }
+
+- private void RemoveTracks()
++ private void RemoveTracks ()
+ {
+ int count = removeQueue.Count;
+- while(removeQueue.Count > 0)
+- {
+- MtpDapTrackInfo track = removeQueue.Dequeue();
+- string message = string.Format("Removing {0}/{1}: {2} - {3}", count - removeQueue.Count,
+- count, track.Artist, track.Title);
+- UpdateSaveProgress("Synchronising...", message, ((double)count - removeQueue.Count) / count);
++ while (removeQueue.Count > 0) {
++ MtpDapTrackInfo track = removeQueue.Dequeue ();
++ string message = string.Format ("Removing: {0} - {1}", track.DisplayArtist, track.DisplayTitle);
+
+- // Quick check to see if the track is on this camera - possibly needed in
++ // Quick check to see if the track is on this device - possibly needed in
+ // case we have multiple MTP devices connected simultaenously
+- if(!track.OnCamera(camera))
++ if (!track.OnCamera (device)) {
+ continue;
++ }
++
++ device.Remove (track.OriginalFile);
++ all_tracks.Remove (track);
+
+- camera.Remove (track.OriginalFile);
+- allTracks.Remove(track);
++ if (metadataChangedQueue.Contains (track)) {
++ metadataChangedQueue.Remove (track);
++ }
+
+- if (metadataChangedQueue.Contains(track))
+- metadataChangedQueue.Remove(track);
++ track.Changed -= OnMetadataChanged;
++
++ UpdateSaveProgress (sync_title, message, ((double) count - removeQueue.Count) / count);
+
+- track.Changed -= new EventHandler(OnMetadataChanged);
+-
+ // Optimisation - Delete the folder if it's empty
+ }
+ }
+
+- private void UploadTracks()
++ private void UploadTracks ()
+ {
+ // For all the tracks that are listed to upload, find only the ones
+ // which exist and can be read.
+ // FIXME: I can upload 'MtpDapTrackInfo' types. Just make sure they dont
+ // exist on *this* device already
+- List<TrackInfo> tracks = new List<TrackInfo>(Tracks);
+- tracks = tracks.FindAll(delegate (TrackInfo t) {
+- if (t == null || t is MtpDapTrackInfo || t.Uri == null)
++ List<TrackInfo> tracks = new List<TrackInfo> (Tracks);
++ tracks = tracks.FindAll (delegate (TrackInfo t) {
++ if (t == null || t is MtpDapTrackInfo || t.Uri == null) {
+ return false;
+- return System.IO.File.Exists(t.Uri.LocalPath);
++ }
++ return System.IO.File.Exists (t.Uri.LocalPath);
+ });
+
+- for (int i = 0; i < tracks.Count; i++)
+- {
+- FileInfo info = new FileInfo(tracks[i].Uri.AbsolutePath);
+- Track f = ToMusicFile(tracks[i], info.Name, (ulong)info.Length);
++ for (int i = 0; i < tracks.Count; i++) {
++ FileInfo info = new FileInfo (tracks[i].Uri.AbsolutePath);
++ Track f = ToMusicFile (tracks[i], info.Name, (ulong)info.Length);
+
+- string message = string.Format("Adding {0}/{1}: {2} - {3}",
+- i + 1, tracks.Count, f.Artist, f.Title);
+- UpdateSaveProgress("Synchronising...", message, (double)(i + 1) / tracks.Count);
+- camera.UploadTrack(tracks[i].Uri.AbsolutePath, f);
++ device.UploadTrack (tracks[i].Uri.AbsolutePath, f);
+
+ // Create an MtpDapTrackInfo for the new file and add it to our lists
+- MtpDapTrackInfo newTrackInfo = new MtpDapTrackInfo(camera, f);
+- newTrackInfo.Changed += new EventHandler(OnMetadataChanged);
++ MtpDapTrackInfo newTrackInfo = new MtpDapTrackInfo (device, f);
++ newTrackInfo.Changed += OnMetadataChanged;
+
+- allTracks.Add(newTrackInfo);
+- AddTrack(newTrackInfo);
++ UpdateSaveProgress (sync_title,
++ String.Format ("Adding: {0} - {1}", f.Artist, f.Title),
++ (double) (i + 1) / tracks.Count
++ );
++ all_tracks.Add (newTrackInfo);
++ AddTrack (newTrackInfo);
+ }
+ }
+
+- private void UpdateMetadata()
++ private void UpdateMetadata ()
+ {
+- try
+- {
+- for (int i = 0; i < metadataChangedQueue.Count; i++)
+- {
++ try {
++ for (int i = 0; i < metadataChangedQueue.Count; i++) {
+ MtpDapTrackInfo info = metadataChangedQueue[i];
+ Track file = info.OriginalFile;
+- file.Album = info.Album;
+- file.Artist = info.Artist;
+- //file.DateAdded = info.DateAdded;
+- file.Duration = (uint) info.Duration.TotalMilliseconds;
+- file.Genre = info.Genre;
+- //file.LastPlayed = info.LastPlayed;
+- file.Rating = (ushort) info.Rating;
+- file.Title = info.Title;
+- file.TrackNumber = (ushort) info.TrackNumber;
+- file.UseCount = info.PlayCount;
+- file.Date = info.Year + "0101T0000.0";
+- file.UpdateMetadata();
++ TrackInfoToMtpTrack (info, file);
++ file.UpdateMetadata ();
+ }
++ } finally {
++ metadataChangedQueue.Clear ();
+ }
+- finally
+- {
+- metadataChangedQueue.Clear();
+- }
+ }
+-
+- public override void Synchronize()
++
++ private string sync_title;
++ public override void Synchronize ()
+ {
+ // 1. remove everything in the remove queue if it's on the device
+ // 2. Add everything in the tracklist that isn't on the device
+ // 3. Sync playlists?
+- try
+- {
+- RemoveTracks();
+- UpdateMetadata();
+- UploadTracks();
+- }
+- catch (Exception e)
+- {
+- LogCore.Instance.PushWarning("There was an error while synchronizing the current track. Please file a bug report.", e.ToString());
+- }
+- finally
+- {
+- ClearTracks(false);
++ sync_title = String.Format (Catalog.GetString ("Synchronizing {0}"), Name);
++ try {
++ RemoveTracks ();
++ UpdateMetadata ();
++ UploadTracks ();
+
+- for (int i = 0; i < allTracks.Count; i++)
+- AddTrack(allTracks[i]);
++ if (supports_jpegs && NeverSyncAlbumArtSchema.Get () == false) {
++ UpdateSaveProgress (sync_title, Catalog.GetString ("Syncing album art"), 0);
++ AlbumSet album_set = new AlbumSet (device);
++ foreach (MtpDapTrackInfo track in all_tracks) {
++ album_set.Ref (track);
++ }
+
+- FinishSave();
++ foreach (double percent in album_set.Save ()) {
++ UpdateSaveProgress (sync_title, Catalog.GetString ("Syncing album art"), percent);
++ }
++ }
++ } catch (Exception e) {
++ LogCore.Instance.PushWarning (String.Format (
++ Catalog.GetString ("There was an unknown error while synchronizing {0}."), Name
++ ), String.Empty);
++ LogCore.Instance.PushDebug ("MTP Sync Error", e.ToString ());
++ } finally {
++ ClearTracks (false);
++
++ for (int i = 0; i < all_tracks.Count; i++) {
++ AddTrack (all_tracks[i]);
++ }
++
++ FinishSave ();
+ }
+ }
+
+- private void ShowGeneralExceptionDialog(Exception ex)
++ private void ShowGeneralExceptionDialog (Exception ex)
+ {
+- string message = "There was an error using the device. Read http://www.banshee-project.org/Guide/DAPs/MTP for more information. ";
+- message += (Environment.NewLine + Environment.NewLine);
+- message += ex.ToString();
+- LogCore.Instance.PushError ("Device error", message);
++ LogCore.Instance.PushError (Catalog.GetString ("MTP Device Error"), ex.ToString ());
+ }
+
+- public void Import(IEnumerable<TrackInfo> tracks, PlaylistSource playlist)
++ public void Import (IEnumerable<TrackInfo> tracks, PlaylistSource playlist)
+ {
+- LogCore.Instance.PushDebug("MTP: importing tracks", "");
+- if (playlist != null)
+- LogCore.Instance.PushDebug("Playlist importing not supported",
++ LogCore.Instance.PushDebug ("MTP: importing tracks", String.Empty);
++ if (playlist != null) {
++ LogCore.Instance.PushDebug ("Playlist importing not supported",
+ "Banshee does not support importing playlists from MTP devices yet...");
++ }
+
+ QueuedOperationManager importer = new QueuedOperationManager ();
+
+- importer = new QueuedOperationManager();
++ importer = new QueuedOperationManager ();
+ importer.HandleActveUserEvent = false;
+- importer.UserEvent.Icon = GetIcon(22);
+- importer.UserEvent.Header = String.Format(Catalog.GetString("Importing from {0}"), Name);
+- importer.UserEvent.Message = Catalog.GetString("Scanning...");
++ importer.UserEvent.Icon = GetIcon (22);
++ importer.UserEvent.Header = String.Format (Catalog.GetString ("Importing from {0}"), Name);
++ importer.UserEvent.Message = Catalog.GetString ("Scanning...");
+ importer.OperationRequested += OnImportOperationRequested;
+ importer.Finished += delegate {
+- importer.UserEvent.Message = "Import complete...";
+- importer.UserEvent.Dispose();
++ importer.UserEvent.Dispose ();
+ };
+
+ // For each track in the list, check to make sure it is on this MTP
+ // device and then add it to the import queue.
+- foreach (TrackInfo track in tracks)
+- {
+- if (!(track is MtpDapTrackInfo))
+- LogCore.Instance.PushDebug("Not MTP track", "Tried to import a non-mtp track");
++ foreach (TrackInfo track in tracks) {
++ if (! (track is MtpDapTrackInfo)) {
++ LogCore.Instance.PushDebug ("Not MTP track", "Tried to import a non-mtp track");
++ }
+
+- if(!((MtpDapTrackInfo)track).OnCamera(this.camera))
+- LogCore.Instance.PushDebug("Track not on this device", "The track to import did not come from this camera");
++ if (! ((MtpDapTrackInfo) track).OnCamera (this.device)) {
++ LogCore.Instance.PushDebug ("Track not on this device", "The track to import did not come from this device");
++ }
+
+- importer.Enqueue(track);
++ importer.Enqueue (track);
+ }
+ }
+
+- private void OnImportOperationRequested(object o, QueuedOperationArgs args)
++ private void OnImportOperationRequested (object o, QueuedOperationArgs args)
+ {
+- if (!(args.Object is MtpDapTrackInfo))
+- {
+- LogCore.Instance.PushDebug("Import failure", string.Format("An attempt to import a '{0}' was detected. Can only import MtpDapTrackInfo objects", args.Object.GetType().Name));
++ if (!(args.Object is MtpDapTrackInfo)) {
++ LogCore.Instance.PushDebug ("Import failure",
++ String.Format ("An attempt to import a '{0}' was detected. Can only import MtpDapTrackInfo objects",
++ args.Object.GetType ().Name
++ )
++ );
+ return;
+ }
+
+ QueuedOperationManager importer = (QueuedOperationManager)o;
+- MtpDapTrackInfo track = (MtpDapTrackInfo)args.Object;
+
+- if (importer.UserEvent.IsCancelRequested)
+- {
+- importer.UserEvent.Message = "Cancelled";
++ if (importer.UserEvent.IsCancelRequested) {
+ return;
+ }
++
++ MtpDapTrackInfo track = (MtpDapTrackInfo)args.Object;
+
+ importer.UserEvent.Progress = importer.ProcessedCount / (double)importer.TotalCount;
+- importer.UserEvent.Message = string.Format("{0}/{1}: {2} - {3}", importer.ProcessedCount, importer.TotalCount, track.Artist, track.Title);
++ importer.UserEvent.Message = string.Format ("{0}/{1}: {2} - {3}", importer.ProcessedCount, importer.TotalCount, track.DisplayArtist, track.DisplayTitle);
+
+ // This is the path where the file will be saved on-disk
+- string destination = FileNamePattern.BuildFull(track, Path.GetExtension(track.OriginalFile.Filename));
++ string destination = FileNamePattern.BuildFull (track, Path.GetExtension (track.OriginalFile.Filename));
+
+- try
+- {
+- if (System.IO.File.Exists(destination))
+- {
+- FileInfo to_info = new FileInfo(destination);
++ try {
++ if (System.IO.File.Exists (destination)) {
++ FileInfo to_info = new FileInfo (destination);
+
+ // FIXME: Probably already the same file. Is this ok?
+- if (track.OriginalFile.Filesize == (ulong)to_info.Length)
+- {
+- try
+- {
+- new LibraryTrackInfo(new SafeUri(destination, false), track);
+- }
+- catch
+- {
++ if (track.OriginalFile.Filesize == (ulong)to_info.Length) {
++ try {
++ new LibraryTrackInfo (new SafeUri (destination, false), track);
++ } catch {
+ // was already in the library
+ }
+- LogCore.Instance.PushDebug("Import warning",
+- string.Format("Track {0} - {1} - {2} already exists in the library",
+- track.Artist, track.Album, track.Title));
++ LogCore.Instance.PushDebug ("Import warning", String.Format (
++ "Track {0} - {1} - {2} already exists in the library",
++ track.DisplayArtist, track.DisplayAlbum, track.DisplayTitle
++ ));
+ return;
+ }
+ }
+- }
+- catch (Exception ex)
+- {
+- LogCore.Instance.PushDebug("Import Warning", "Could not check if the file already exists, skipping");
+- LogCore.Instance.PushDebug("Exception", ex.ToString());
++ } catch (Exception ex) {
++ LogCore.Instance.PushDebug ("Import Warning", "Could not check if the file already exists, skipping");
++ LogCore.Instance.PushDebug ("Exception", ex.ToString ());
+ return;
+ }
+
+- try
+- {
+- LogCore.Instance.PushDebug("Import Operation", string.Format("Importing song to {0}", destination));
++ try {
++ LogCore.Instance.PushDebug ("Import Operation", String.Format ("Importing song to {0}", destination));
+ // Copy the track from the device to the destination file
+- track.OriginalFile.Download(destination);
++ track.OriginalFile.Download (destination);
+
+ // Add the track to the library
+- new LibraryTrackInfo(new SafeUri(destination, false), track);
+- }
+-
+- catch(Exception e)
+- {
+- try
+- {
+- LogCore.Instance.PushDebug("Critical error", "Could not import tracks");
+- LogCore.Instance.PushDebug("Exception", e.ToString());
++ new LibraryTrackInfo (new SafeUri (destination, false), track);
++ } catch (Exception e) {
++ try {
++ LogCore.Instance.PushDebug ("Critical error", "Could not import tracks");
++ LogCore.Instance.PushDebug ("Exception", e.ToString ());
+ // FIXME: Is this ok?
+- System.IO.File.Delete(destination);
+- }
+- catch
+- {
++ System.IO.File.Delete (destination);
++ } catch {
+ // Do nothing
+ }
+ }
+ }
+
+- public void Import(IEnumerable<TrackInfo> tracks) {
+- Import(tracks, null);
++ public void Import (IEnumerable<TrackInfo> tracks)
++ {
++ Import (tracks, null);
+ }
+
+- public override Gdk.Pixbuf GetIcon(int size) {
+- string prefix = "multimedia-player-";
+- string id = "dell-pocket-dj";
+- Gdk.Pixbuf icon = IconThemeUtils.LoadIcon(prefix + id, size);
+- return icon == null? base.GetIcon(size) : icon;
++ string icon_name = "multimedia-player-dell-pocket-dj";
++ public override Gdk.Pixbuf GetIcon (int size)
++ {
++ return IconThemeUtils.HasIcon (icon_name) ? IconThemeUtils.LoadIcon (icon_name, size) : base.GetIcon (size);
+ }
+ /*
+ public DapPlaylistSource AddPlaylist (Source playlist)
+ {
+- IPodPlaylistSource ips = new IPodPlaylistSource(this, playlist.Name);
++ IPodPlaylistSource ips = new IPodPlaylistSource (this, playlist.Name);
+
+- LogCore.Instance.PushDebug("In IPodDap.AddPlaylist" , "");
++ LogCore.Instance.PushDebug ("In IPodDap.AddPlaylist" , "");
+
+- foreach(TrackInfo ti in playlist.Tracks) {
+- LogCore.Instance.PushDebug("Adding track " + ti.ToString() , " to new playlist " + ips.Name);
+- IpodDapTrackInfo idti = new IpodDapTrackInfo(ti, device.TrackDatabase);
+- ips.AddTrack(idti);
+- AddTrack(idti);
++ foreach (TrackInfo ti in playlist.Tracks) {
++ LogCore.Instance.PushDebug ("Adding track " + ti.ToString () , " to new playlist " + ips.Name);
++ IpodDapTrackInfo idti = new IpodDapTrackInfo (ti, device.TrackDatabase);
++ ips.AddTrack (idti);
++ AddTrack (idti);
+ }
+
+ return (DapPlaylistSource) ips;
+ }
+ */
+- public override string Name
+- {
+- get
+- {
+- if (camera == null)
+- return "";
+-
+- return camera.Name;
+- }
++
++ public override void SetName(string name)
++ {
++ if (device != null) {
++ device.Name = name;
++ }
++ }
++
++ public override bool CanSynchronize {
++ get { return true; }
+ }
+
+- public override string GenericName
+- {
+- get { return Name; }
++ public override string Name {
++ get {
++ if (device == null) {
++ return hal_name;
++ }
++
++ return device.Name;
++ }
+ }
+
+- public override ulong StorageCapacity
+- {
+- get
+- {
+- if (camera == null)
++ public override ulong StorageCapacity {
++ get {
++ if (device == null)
+ return 0;
+
+ ulong count = 0;
+- foreach (DeviceStorage s in camera.GetStorage())
++ foreach (DeviceStorage s in device.GetStorage ()) {
+ count += s.MaxCapacity;
++ }
+ return count;
+ }
+ }
+
+- public override ulong StorageUsed
+- {
+- get
+- {
+- if (camera == null)
++ public override ulong StorageUsed {
++ get {
++ if (device == null)
+ return 0;
+ ulong count = 0;
+- foreach (DeviceStorage s in this.camera.GetStorage())
++ foreach (DeviceStorage s in device.GetStorage ()) {
+ count += s.MaxCapacity - s.FreeSpace;
++ }
+ return count;
+ }
+ }
+
+- public override bool IsReadOnly
+- {
++ public override bool IsReadOnly {
+ get { return false; }
+ }
+
+ public override bool IsPlaybackSupported {
+- get {
+- return false;
+- }
++ get { return false; }
+ }
++
++ public static readonly SchemaEntry<bool> NeverSyncAlbumArtSchema = new SchemaEntry<bool>(
++ "plugins.mtp", "never_sync_albumart",
++ false,
++ "Album art disabled",
++ "Regardless of device's capabilities, do not sync album art"
++ );
++
++ public static readonly SchemaEntry<int> AlbumArtWidthSchema = new SchemaEntry<int>(
++ "plugins.mtp", "albumart_max_width",
++ 170,
++ "Album art max width",
++ "The maximum width to allow for album art."
++ );
++
++ static MtpDap () {
++ // Make sure these get created
++ NeverSyncAlbumArtSchema.Set (NeverSyncAlbumArtSchema.Get ());
++ AlbumArtWidthSchema.Set (AlbumArtWidthSchema.Get ());
++ }
+ }
+ }
+Index: src/Dap/Banshee.Dap.Mtp/MtpDapTrackInfo.cs
+===================================================================
+--- src/Dap/Banshee.Dap.Mtp/MtpDapTrackInfo.cs (Revision 2958)
++++ src/Dap/Banshee.Dap.Mtp/MtpDapTrackInfo.cs (Revision 3417)
+@@ -28,10 +28,12 @@
+
+ using System;
+ using System.IO;
++
+ using Banshee.Base;
+ using Banshee.Dap;
+-using libmtpsharp;
+
++using Mtp;
++
+ namespace Banshee.Dap.Mtp
+ {
+ public sealed class MtpDapTrackInfo : DapTrackInfo
+@@ -49,20 +51,24 @@
+ this.camera = camera;
+ this.file = file;
+
+- album = file.Album;
+- artist = file.Artist;
+- duration = TimeSpan.FromMilliseconds(file.Duration);
+- genre = file.Genre;
+- play_count = file.UseCount < 0 ? (uint)0 : (uint)file.UseCount;
+- rating = file.Rating < 0 ? (uint)0 : (uint)file.Rating;
+- title = file.Title;
+- track_number = file.TrackNumber < 0 ? (uint)0 : file.TrackNumber;
+- year = (file.Date != null && file.Date.Length >= 4) ? int.Parse(file.Date.Substring(0, 4)) : 0;
+- can_play = false; // This can be implemented if there's enough people requesting it
+- can_save_to_database = true;
++ Album = file.Album;
++ Artist = file.Artist;
++ Duration = TimeSpan.FromMilliseconds(file.Duration);
++ Genre = file.Genre;
++ PlayCount = file.UseCount < 0 ? (uint)0 : (uint)file.UseCount;
++ Rating = file.Rating < 0 ? (uint) 0 : (uint) (file.Rating / 20);
++ Title = file.Title;
++ TrackNumber = file.TrackNumber < 0 ? (uint)0 : file.TrackNumber;
++ Year = (file.Date != null && file.Date.Length >= 4) ? int.Parse(file.Date.Substring(0, 4)) : 0;
++ //Filesize = file.Filesize; // Unfortunately this info is currently stat'd when needed
++
++ // This can be implemented if there's enough people requesting it
++ CanPlay = false;
++ CanSaveToDatabase = true;
+ NeedSync = false;
++
+ // Set a URI even though it's not actually accessible through normal API's.
+- uri = new SafeUri("mtp://invalid");
++ uri = new SafeUri(String.Format ("mtp://{0}", file.Filename));
+ }
+
+ public override bool Equals (object o)
+Index: src/Core/Banshee/PlayerInterface.cs
+===================================================================
+--- src/Core/Banshee/PlayerInterface.cs (Revision 2958)
++++ src/Core/Banshee/PlayerInterface.cs (Revision 3417)
+@@ -40,6 +40,8 @@
+ using Gdk;
+ using Glade;
+
++using Action = Gtk.Action;
++
+ using Banshee.Widgets;
+ using Banshee.Base;
+ using Banshee.MediaEngine;
+@@ -1027,16 +1029,16 @@
+ bool have_selection = count > 0;
+ Source source = SourceManager.ActiveSource;
+
+- if(!have_selection) {
++ if(!have_selection && source != null) {
+ Globals.ActionManager.SongActions.Sensitive = false;
+- Globals.ActionManager["WriteCDAction"].Sensitive = source is Banshee.Burner.BurnerSource;
++ Globals.ActionManager["WriteCDAction"].Sensitive = (source is Banshee.Burner.BurnerSource && source.Count > 0);
+ return;
+ } else if(source == null) {
+ return;
+ }
+
+ Globals.ActionManager.SongActions.Sensitive = true;
+- Globals.ActionManager["WriteCDAction"].Sensitive = !(source is AudioCdSource);
++ Globals.ActionManager["WriteCDAction"].Sensitive = have_selection && !(source is AudioCdSource);
+ Globals.ActionManager["RemoveSongsAction"].Sensitive = !(source is AudioCdSource || source is Banshee.SmartPlaylist.SmartPlaylistSource);
+ Globals.ActionManager["DeleteSongsFromDriveAction"].Sensitive =
+ !(source is AudioCdSource || source is DapSource);
+Index: src/Core/Banshee.Widgets/ActionButton.cs
+===================================================================
+--- src/Core/Banshee.Widgets/ActionButton.cs (Revision 2958)
++++ src/Core/Banshee.Widgets/ActionButton.cs (Revision 3417)
+@@ -31,6 +31,8 @@
+ using System.Collections;
+ using Gtk;
+
++using Action = Gtk.Action;
++
+ namespace Banshee.Widgets
+ {
+ public class ActionButton : Button
+Index: src/Core/Banshee.Base/Gui/SourceView.cs
+===================================================================
+--- src/Core/Banshee.Base/Gui/SourceView.cs (Revision 2958)
++++ src/Core/Banshee.Base/Gui/SourceView.cs (Revision 3417)
+@@ -214,7 +214,7 @@
+
+ if(source is ChildSource) {
+ ChildSource child = source as ChildSource;
+- if(child.Parent.AutoExpand) {
++ if(child.Parent.AutoExpand != null && child.Parent.AutoExpand.Value) {
+ Expand(FindSource(child.Parent));
+ }
+ }
+Index: src/Core/Banshee.Base/Gui/LogCoreDialog.cs
+===================================================================
+--- src/Core/Banshee.Base/Gui/LogCoreDialog.cs (Revision 2958)
++++ src/Core/Banshee.Base/Gui/LogCoreDialog.cs (Revision 3417)
+@@ -99,7 +99,7 @@
+ } catch(Exception) {
+ (cell as CellRendererText).Text = "";
+ }
+- } as TreeCellDataFunc);
++ });
+ date_column.SortColumnId = 1;
+
+ log_tree.AppendColumn(date_column);
+Index: src/Core/Banshee.Base/Dap/DapMisc.cs
+===================================================================
+--- src/Core/Banshee.Base/Dap/DapMisc.cs (Revision 2958)
++++ src/Core/Banshee.Base/Dap/DapMisc.cs (Revision 3417)
+@@ -108,14 +108,14 @@
+ public static string GetCodec(string mimeType)
+ {
+ foreach (string codec in MimeTypeMap.Keys) {
+- if (System.Array.IndexOf(MimeTypeMap[codec], mimeType) != -1) {
++ if (codec == mimeType || System.Array.IndexOf(MimeTypeMap[codec], mimeType) != -1) {
+ return codec;
+ }
+- }
++ }
+
+ LogCore.Instance.PushWarning("Unknown DAP mimetype " + mimeType, "", false);
+ return null;
+- }
++ }
+
+ public static string [] GetExtensions(string codec)
+ {
+Index: src/Core/Banshee.Base/Dap/Dap.cs
+===================================================================
+--- src/Core/Banshee.Base/Dap/Dap.cs (Revision 2958)
++++ src/Core/Banshee.Base/Dap/Dap.cs (Revision 3417)
+@@ -712,5 +712,23 @@
+ public abstract ulong StorageUsed { get; }
+ public abstract bool IsReadOnly { get; }
+ public abstract bool IsPlaybackSupported { get; }
++
++ // The second check (against 'type') is from an old HAL spec.
++ protected static bool IsPortableAudioPlayerType (Hal.Device device, string type)
++ {
++ if (device.PropertyExists ("portable_audio_player.type")) {
++ if (device ["portable_audio_player.type"] == type) {
++ return true;
++ }
++ }
++
++ if (device.PropertyExists ("portable_audio_player.access_method.protocols")) {
++ if (Array.IndexOf (device.GetPropertyStringList ("portable_audio_player.access_method.protocols"), type) != -1) {
++ return true;
++ }
++ }
++
++ return false;
++ }
+ }
+ }
+Index: src/Core/Banshee.Base/ActionManager.cs
+===================================================================
+--- src/Core/Banshee.Base/ActionManager.cs (Revision 2958)
++++ src/Core/Banshee.Base/ActionManager.cs (Revision 3417)
+@@ -31,6 +31,8 @@
+ using Gtk;
+ using Mono.Unix;
+
++using Action = Gtk.Action;
++
+ namespace Banshee.Base
+ {
+ public class ActionManager : IEnumerable
+@@ -115,7 +117,7 @@
+ "Unmap", "<shift>Delete",
+ null, null),
+
+- new ActionEntry("SelectAllAction", null,
++ new ActionEntry("SelectAllAction", Stock.SelectAll,
+ Catalog.GetString("Select _All"), "<control>A",
+ Catalog.GetString("Select all songs in song list"), null),
+
+Index: ext/libmtp-sharp/libmtp-sharp.dll.config.in
+===================================================================
+--- ext/libmtp-sharp/libmtp-sharp.dll.config.in (Revision 2958)
++++ ext/libmtp-sharp/libmtp-sharp.dll.config.in (Revision 3417)
+@@ -1,4 +0,0 @@
+-<configuration>
+- <dllmap dll="libmtp.dll" target="@LIBMTP_SO_MAP@"/>
+-</configuration>
+-
+Index: ext/libmtp-sharp/AssemblyInfo.cs
+===================================================================
+--- ext/libmtp-sharp/AssemblyInfo.cs (Revision 2958)
++++ ext/libmtp-sharp/AssemblyInfo.cs (Revision 3417)
+@@ -36,7 +36,7 @@
+ // change them to the information which is associated with the assembly
+ // you compile.
+
+-[assembly: AssemblyTitle("libmtp-sharp")]
++[assembly: AssemblyTitle("Mtp")]
+ [assembly: AssemblyDescription("A .NET binding for libmtp")]
+ [assembly: AssemblyConfiguration("")]
+ [assembly: AssemblyCompany("")]
+Index: ext/libmtp-sharp/Folder.cs
+===================================================================
+--- ext/libmtp-sharp/Folder.cs (Revision 2958)
++++ ext/libmtp-sharp/Folder.cs (Revision 3417)
+@@ -31,7 +31,7 @@
+ using System.Collections.Generic;
+ using System.Runtime.InteropServices;
+
+-namespace libmtpsharp
++namespace Mtp
+ {
+ public class Folder
+ {
+@@ -75,7 +75,7 @@
+ throw new ArgumentNullException("name");
+
+ // First create the folder on the device and check for error
+- uint id = FolderManagement.CreateFolder (device.handle, name, FolderId);
++ uint id = FolderManagement.CreateFolder (device.Handle, name, FolderId);
+
+ FolderStruct f = new FolderStruct();
+ f.folder_id = id;
+@@ -87,7 +87,7 @@
+
+ public List<Folder> GetChildren ()
+ {
+- using (FolderHandle handle = FolderManagement.GetFolderList(device.handle))
++ using (FolderHandle handle = FolderManagement.GetFolderList(device.Handle))
+ {
+ // Find the pointer to the folderstruct representing this folder
+ IntPtr ptr = handle.DangerousGetHandle();
+@@ -110,13 +110,13 @@
+
+ public void Remove()
+ {
+- LibMtp.DeleteObject(device.handle, FolderId);
++ LibMtp.DeleteObject(device.Handle, FolderId);
+ }
+
+ internal static List<Folder> GetRootFolders (MtpDevice device)
+ {
+ List<Folder> folders = new List<Folder>();
+- using (FolderHandle handle = FolderManagement.GetFolderList (device.handle))
++ using (FolderHandle handle = FolderManagement.GetFolderList (device.Handle))
+ {
+ for (IntPtr ptr = handle.DangerousGetHandle(); ptr != IntPtr.Zero;)
+ {
+Index: ext/libmtp-sharp/Mtp.dll.config.in
+===================================================================
+--- ext/libmtp-sharp/Mtp.dll.config.in (Revision 0)
++++ ext/libmtp-sharp/Mtp.dll.config.in (Revision 3417)
+@@ -0,0 +1,4 @@
++<configuration>
++ <dllmap dll="libmtp.dll" target="@LIBMTP_SO_MAP@"/>
++</configuration>
++
+Index: ext/libmtp-sharp/Album.cs
+===================================================================
+--- ext/libmtp-sharp/Album.cs (Revision 0)
++++ ext/libmtp-sharp/Album.cs (Revision 3417)
+@@ -0,0 +1,188 @@
++/***************************************************************************
++ * Album.cs
++ *
++ * Copyright (C) 2008 Novell
++ * Authors:
++ * Gabriel Burt (gburt at novell.com)
++ ****************************************************************************/
++
++/* THIS FILE IS LICENSED UNDER THE MIT LICENSE AS OUTLINED IMMEDIATELY BELOW:
++ *
++ * Permission is hereby granted, free of charge, to any person obtaining a
++ * copy of this software and associated documentation files (the "Software"),
++ * to deal in the Software without restriction, including without limitation
++ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
++ * and/or sell copies of the Software, and to permit persons to whom the
++ * Software is furnished to do so, subject to the following conditions:
++ *
++ * The above copyright notice and this permission notice shall be included in
++ * all copies or substantial portions of the Software.
++ *
++ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
++ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
++ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
++ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
++ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
++ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
++ * DEALINGS IN THE SOFTWARE.
++ */
++
++using System;
++using System.Collections.Generic;
++using System.Runtime.InteropServices;
++
++namespace Mtp
++{
++ public class Album
++ {
++ private AlbumStruct album;
++ private MtpDevice device;
++ private bool saved;
++ private List<int> track_ids;
++
++ public uint AlbumId {
++ get { return saved ? album.album_id : 0; }
++ }
++
++ public List<int> TrackIds {
++ get { return track_ids; }
++ }
++
++ public bool Saved {
++ get { return saved; }
++ }
++
++ public string Name {
++ get { return album.name; }
++ set {
++ album.name = value;
++ }
++ }
++
++ public string Artist {
++ get { return album.artist; }
++ set {
++ album.artist = value;
++ }
++ }
++
++ public string Genre {
++ get { return album.genre; }
++ set {
++ album.genre = value;
++ }
++ }
++
++ public uint TrackCount {
++ get { return album.no_tracks; }
++ set {
++ album.no_tracks = value;
++ }
++ }
++
++ public Album (MtpDevice device, string name, string artist, string genre)
++ {
++ this.device = device;
++ this.album = new AlbumStruct ();
++ Name = name;
++ Artist = artist;
++ Genre = genre;
++ TrackCount = 0;
++ track_ids = new List<int> ();
++ }
++
++ internal Album (MtpDevice device, AlbumStruct album)
++ {
++ this.device = device;
++ this.album = album;
++ this.saved = true;
++
++ if (album.tracks != IntPtr.Zero) {
++ int [] vals = new int [TrackCount];
++ Marshal.Copy ((IntPtr)album.tracks, (int[])vals, 0, (int)TrackCount);
++ track_ids = new List<int> (vals);
++ } else {
++ track_ids = new List<int> ();
++ }
++ }
++
++ public void Save ()
++ {
++ Save (null, 0, 0);
++ }
++
++ public void Save (byte [] cover_art, uint width, uint height)
++ {
++ TrackCount = (uint) track_ids.Count;
++
++ if (album.tracks != IntPtr.Zero) {
++ Marshal.FreeHGlobal (album.tracks);
++ }
++
++ if (TrackCount == 0) {
++ album.tracks = IntPtr.Zero;
++ } else {
++ album.tracks = Marshal.AllocHGlobal (Marshal.SizeOf (typeof (int)) * (int)TrackCount);
++ Marshal.Copy (track_ids.ToArray (), 0, album.tracks, (int)TrackCount);
++ }
++
++ if (saved) {
++ saved = AlbumManagement.LIBMTP_Update_Album (device.Handle, album) == 0;
++ } else {
++ saved = AlbumManagement.LIBMTP_Create_New_Album (device.Handle, ref album, 0) == 0;
++ }
++
++ if (album.tracks != IntPtr.Zero) {
++ Marshal.FreeHGlobal (album.tracks);
++ }
++
++ if (!saved)
++ return;
++
++ if (cover_art == null) {
++ return;
++ }
++
++ FileSampleData cover = new FileSampleData ();
++ cover.data = Marshal.AllocHGlobal (Marshal.SizeOf (typeof (byte)) * cover_art.Length);
++ Marshal.Copy (cover_art, 0, cover.data, cover_art.Length);
++ cover.size = (ulong)cover_art.Length;
++ cover.width = width;
++ cover.height = height;
++ cover.filetype = FileType.JPEG;
++
++ if (FileManagement.LIBMTP_Send_Representative_Sample (device.Handle, AlbumId, ref cover) != 0) {
++ //Console.WriteLine ("failed to send representative sample file");
++ }
++ Marshal.FreeHGlobal (cover.data);
++ }
++
++ public void AddTrack (Track track)
++ {
++ track_ids.Add ((int)track.FileId);
++ TrackCount++;
++ }
++
++ public void RemoveTrack (Track track)
++ {
++ track_ids.Remove ((int)track.FileId);
++ TrackCount--;
++ }
++
++ public void ClearTracks ()
++ {
++ track_ids.Clear ();
++ TrackCount = 0;
++ }
++
++ public void Remove ()
++ {
++ LibMtp.LIBMTP_Delete_Object(device.Handle, AlbumId);
++ }
++
++ public override string ToString ()
++ {
++ return String.Format ("Album < Id: {4}, '{0}' by '{1}', genre '{2}', tracks {3} >", Name, Artist, Genre, TrackCount, AlbumId);
++ }
++ }
++}
+Index: ext/libmtp-sharp/MtpDevice.cs
+===================================================================
+--- ext/libmtp-sharp/MtpDevice.cs (Revision 2958)
++++ ext/libmtp-sharp/MtpDevice.cs (Revision 3417)
+@@ -31,11 +31,11 @@
+ using System.Collections.Generic;
+ using System.Runtime.InteropServices;
+
+-namespace libmtpsharp
++namespace Mtp
+ {
+ public class MtpDevice : IDisposable
+ {
+- internal MtpDeviceHandle handle;
++ internal MtpDeviceHandle Handle;
+ private MtpDeviceStruct device;
+ private string name;
+ private Folder albumFolder;
+@@ -46,72 +46,73 @@
+ private Folder podcastFolder;
+ private Folder textFolder;
+ private Folder videoFolder;
+-
+- public Folder AlbumFolder
+- {
+- get { return albumFolder; }
++
++ static MtpDevice() {
++ LibMtp.Init();
+ }
+
+- public int BatteryLevel
+- {
+- get
+- {
++ public int BatteryLevel {
++ get {
+ ushort level, maxLevel;
+- LibMtp.GetBatteryLevel (handle, out maxLevel, out level);
++ LibMtp.GetBatteryLevel (Handle, out maxLevel, out level);
+ return (int)((level * 100.0) / maxLevel);
+ }
+ }
+
+- public Folder MusicFolder
+- {
+- get { return musicFolder;}
+- }
+-
+- public string Name
+- {
++ public string SerialNumber {
++ get { return LibMtp.GetSerialnumber (Handle); }
++ }
++
++ public string Version {
++ get { return LibMtp.GetDeviceversion (Handle); }
++ }
++
++ public string Name {
+ get { return name; }
++ set {
++ if (LibMtp.SetFriendlyName (Handle, value)) {
++ name = value;
++ }
++ }
+ }
+
+- public Folder OrganizerFolder
+- {
++ public Folder AlbumFolder {
++ get { return albumFolder; }
++ }
++
++ public Folder MusicFolder {
++ get { return musicFolder; }
++ }
++
++ public Folder OrganizerFolder {
+ get { return organizerFolder; }
+ }
+
+- public Folder PictureFolder
+- {
++ public Folder PictureFolder {
+ get { return pictureFolder; }
+ }
+
+- public Folder PlaylistFolder
+- {
++ public Folder PlaylistFolder {
+ get { return playlistFolder; }
+ }
+
+- public Folder PodcastFolder
+- {
++ public Folder PodcastFolder {
+ get { return podcastFolder; }
+ }
+
+- public Folder TextFolder
+- {
++ public Folder TextFolder {
+ get { return textFolder; }
+ }
+
+- public Folder VideoFolder
+- {
++ public Folder VideoFolder {
+ get { return videoFolder; }
+ }
+
+- static MtpDevice()
+- {
+- LibMtp.Init();
+- }
+-
+ internal MtpDevice (MtpDeviceHandle handle, MtpDeviceStruct device)
+ {
+ this.device = device;
+- this.handle = handle;
+- this.name = LibMtp.GetFriendlyName(handle);
++ this.Handle = handle;
++ this.name = LibMtp.GetFriendlyName(Handle);
+ SetDefaultFolders ();
+ }
+
+@@ -127,7 +128,7 @@
+ /// </summary>
+ private void SetDefaultFolders ()
+ {
+- List<Folder> folders = new List<Folder>();
++ List<Folder> folders = GetRootFolders();
+
+ foreach (Folder f in folders)
+ {
+@@ -152,8 +153,8 @@
+
+ public void Dispose ()
+ {
+- if (!handle.IsClosed)
+- handle.Close();
++ if (!Handle.IsClosed)
++ Handle.Close();
+ }
+
+ public List<Folder> GetRootFolders()
+@@ -168,12 +169,10 @@
+
+ public List<Track> GetAllTracks(ProgressFunction callback)
+ {
+- IntPtr ptr = TrackManagement.GetTrackListing(handle, callback, IntPtr.Zero);
++ IntPtr ptr = TrackManagement.GetTrackListing(Handle, callback, IntPtr.Zero);
+
+- if (ptr == IntPtr.Zero)
+- throw new LibMtpException(ErrorCode.LIBMTP_ERROR_PTP_LAYER);
++ List<Track> tracks = new List<Track>();
+
+- List<Track> tracks = new List<Track>();
+ while (ptr != IntPtr.Zero)
+ {
+ TrackStruct track = (TrackStruct)Marshal.PtrToStructure(ptr, typeof(TrackStruct));
+@@ -184,6 +183,21 @@
+
+ return tracks;
+ }
++
++ public List<Album> GetAlbums ()
++ {
++ List<Album> albums = new List<Album> ();
++
++ IntPtr ptr = AlbumManagement.LIBMTP_Get_Album_List (Handle);
++ while (ptr != IntPtr.Zero)
++ {
++ AlbumStruct d = (AlbumStruct)Marshal.PtrToStructure(ptr, typeof(AlbumStruct));
++ albums.Add (new Album(this, d));
++ ptr = d.next;
++ }
++
++ return albums;
++ }
+
+
+ public List<DeviceStorage> GetStorage ()
+@@ -201,8 +215,7 @@
+
+ public void Remove (Track track)
+ {
+- Console.WriteLine("Removing: {0}", track.FileId);
+- LibMtp.DeleteObject(handle, track.FileId);
++ LibMtp.DeleteObject(Handle, track.FileId);
+ }
+
+ public void UploadTrack (string path, Track track, Folder folder)
+@@ -228,9 +241,20 @@
+ throw new ArgumentNullException("track");
+
+ // We send the trackstruct by ref so that when the file_id gets filled in, our copy is updated
+- TrackManagement.SendTrack (handle, path, ref track.trackStruct, callback, IntPtr.Zero, folder.FolderId);
+- // LibMtp.GetStorage (handle, 0);
++ TrackManagement.SendTrack (Handle, path, ref track.trackStruct, callback, IntPtr.Zero, folder.FolderId);
++ // LibMtp.GetStorage (Handle, 0);
+ }
++
++ public FileType [] GetFileTypes ()
++ {
++ Int16 [] ints = LibMtp.GetFileTypes (Handle);
++ FileType [] file_types = new FileType [ints.Length];
++ for (int i = 0; i < ints.Length; i++) {
++ file_types[i] = (FileType) ints[i];
++ }
++
++ return file_types;
++ }
+
+ public static List<MtpDevice> Detect ()
+ {
+Index: ext/libmtp-sharp/Functions/FileManagement.cs
+===================================================================
+--- ext/libmtp-sharp/Functions/FileManagement.cs (Revision 2958)
++++ ext/libmtp-sharp/Functions/FileManagement.cs (Revision 3417)
+@@ -30,7 +30,7 @@
+ using System;
+ using System.Runtime.InteropServices;
+
+-namespace libmtpsharp
++namespace Mtp
+ {
+ public delegate int ProgressFunction(ulong sent, ulong total, IntPtr data);
+
+@@ -50,13 +50,22 @@
+ private static extern IntPtr LIBMTP_Get_Filemetadata (MtpDeviceHandle handle, uint fileid); // LIBMTP_file_t *
+ [DllImport("libmtp.dll")]
+ private static extern int LIBMTP_Get_File_To_File (MtpDeviceHandle handle, uint fileId, string path, ProgressFunction function, IntPtr data);
++
+ [DllImport("libmtp.dll")]
+ private static extern int LIBMTP_Send_File_From_File (MtpDeviceHandle handle, string path, ref File fileData, ProgressFunction function, IntPtr data, uint parentHandle);
+ //int LIBMTP_Get_File_To_File_Descriptor (MtpDeviceHandle handle, uint32_t const, int const, ProgressFunction function, void const *const)
+ //int LIBMTP_Send_File_From_File_Descriptor (MtpDeviceHandle handle, int const, LIBMTP_file_t *const, ProgressFunction function, void const *const, uint32_t const)
+- //IntPtr LIBMTP_new_filesampledata_t (); // LIBMTP_filesampledata_t *
+- //void LIBMTP_destroy_filesampledata_t (ref FileSampleData data); // LIBMTP_filesampledata_t *
+- //int LIBMTP_Get_Representative_Sample_Format (MtpDeviceHandle handle, LIBMTP_filetype_t const, LIBMTP_filesampledata_t **)
+- //int LIBMTP_Send_Representative_Sample (MtpDeviceHandle handle, uint32_t const, LIBMTP_filesampledata_t *)
+- }
++
++ //[DllImport("libmtp.dll")]
++ //public static extern IntPtr LIBMTP_new_filesampledata_t (); // LIBMTP_filesampledata_t *
++
++ [DllImport("libmtp.dll")]
++ public static extern void LIBMTP_destroy_filesampledata_t (ref FileSampleData data); // LIBMTP_filesampledata_t *
++
++ [DllImport("libmtp.dll")]
++ public static extern int LIBMTP_Get_Representative_Sample_Format (MtpDeviceHandle handle, FileType type, IntPtr data_array);
++
++ [DllImport("libmtp.dll")]
++ public static extern int LIBMTP_Send_Representative_Sample (MtpDeviceHandle handle, uint id, ref FileSampleData sample);
++ }
+ }
+Index: ext/libmtp-sharp/Functions/AlbumManagement.cs
+===================================================================
+--- ext/libmtp-sharp/Functions/AlbumManagement.cs (Revision 2958)
++++ ext/libmtp-sharp/Functions/AlbumManagement.cs (Revision 3417)
+@@ -30,21 +30,21 @@
+ using System;
+ using System.Runtime.InteropServices;
+
+-namespace libmtpsharp
++namespace Mtp
+ {
+ internal class AlbumManagement
+ {
+ [DllImport("libmtp.dll")]
+- private static extern IntPtr LIBMTP_new_album_t (); // LIBMTP_album_t*
++ internal static extern IntPtr LIBMTP_new_album_t (); // LIBMTP_album_t*
+ [DllImport("libmtp.dll")]
+- private static extern void LIBMTP_destroy_album_t (ref Album album);
++ internal static extern void LIBMTP_destroy_album_t (ref AlbumStruct album);
+ [DllImport("libmtp.dll")]
+- private static extern IntPtr LIBMTP_Get_Album_List (MtpDeviceHandle handle); // LIBMTP_album_t*
++ internal static extern IntPtr LIBMTP_Get_Album_List (MtpDeviceHandle handle); // LIBMTP_album_t*
+ [DllImport("libmtp.dll")]
+- private static extern IntPtr LIBMTP_Get_Album (MtpDeviceHandle handle, uint albumId); // LIBMTP_album_t*
++ internal static extern IntPtr LIBMTP_Get_Album (MtpDeviceHandle handle, uint albumId); // LIBMTP_album_t*
+ [DllImport("libmtp.dll")]
+- private static extern int LIBMTP_Create_New_Album (MtpDeviceHandle handle, ref Album album, uint parentId);
++ internal static extern int LIBMTP_Create_New_Album (MtpDeviceHandle handle, ref AlbumStruct album, uint parentId);
+ [DllImport("libmtp.dll")]
+- private static extern int LIBMTP_Update_Album (MtpDeviceHandle handle, Album album);
++ internal static extern int LIBMTP_Update_Album (MtpDeviceHandle handle, AlbumStruct album);
+ }
+ }
+Index: ext/libmtp-sharp/Functions/PlaylistManagement.cs
+===================================================================
+--- ext/libmtp-sharp/Functions/PlaylistManagement.cs (Revision 2958)
++++ ext/libmtp-sharp/Functions/PlaylistManagement.cs (Revision 3417)
+@@ -30,7 +30,7 @@
+ using System;
+ using System.Runtime.InteropServices;
+
+-namespace libmtpsharp
++namespace Mtp
+ {
+ internal class PlaylistManagement
+ {
+Index: ext/libmtp-sharp/Functions/TrackManagement.cs
+===================================================================
+--- ext/libmtp-sharp/Functions/TrackManagement.cs (Revision 2958)
++++ ext/libmtp-sharp/Functions/TrackManagement.cs (Revision 3417)
+@@ -30,7 +30,7 @@
+ using System;
+ using System.Runtime.InteropServices;
+
+-namespace libmtpsharp
++namespace Mtp
+ {
+ internal class TrackManagement
+ {
+@@ -52,14 +52,11 @@
+ }
+ internal static void SendTrack (MtpDeviceHandle handle, string path, ref TrackStruct metadata, ProgressFunction callback, IntPtr data, uint parent)
+ {
+- Console.WriteLine("Sending: {0}", metadata.item_id);
+ if (LIBMTP_Send_Track_From_File (handle, path, ref metadata, callback, data, parent) != 0)
+ {
+ LibMtpException.CheckErrorStack(handle);
+ throw new LibMtpException (ErrorCode.LIBMTP_ERROR_GENERAL, "Could not upload the track");
+ }
+- Console.WriteLine("Got: {0}", metadata.item_id);
+- Console.ReadLine();
+ }
+ internal static void UpdateTrackMetadata(MtpDeviceHandle handle, ref TrackStruct metadata)
+ {
+Index: ext/libmtp-sharp/Functions/FunctionCalls.cs
+===================================================================
+--- ext/libmtp-sharp/Functions/FunctionCalls.cs (Revision 2958)
++++ ext/libmtp-sharp/Functions/FunctionCalls.cs (Revision 3417)
+@@ -30,7 +30,7 @@
+ using System;
+ using System.Runtime.InteropServices;
+
+-namespace libmtpsharp
++namespace Mtp
+ {
+ internal class LibMtp
+ {
+@@ -54,35 +54,69 @@
+ if (result != 0)
+ throw new LibMtpException (ErrorCode.LIBMTP_ERROR_GENERAL, "Could not retrieve battery stats");
+ }
+-
++
+ public static void GetConnectedDevices (out IntPtr list)
+ {
+ Error.CheckError (LIBMTP_Get_Connected_Devices (out list));
+ }
++
+ public static IntPtr GetErrorStack (MtpDeviceHandle handle)
+ {
+ return LIBMTP_Get_Errorstack(handle);
+ }
++
++ public static string GetDeviceversion(MtpDeviceHandle handle)
++ {
++ IntPtr ptr = LibMtp.LIBMTP_Get_Deviceversion(handle);
++ if (ptr == IntPtr.Zero)
++ return null;
++
++ return StringFromIntPtr (ptr);
++ }
++
+
+ public static string GetFriendlyName(MtpDeviceHandle handle)
+ {
+ IntPtr ptr = LibMtp.LIBMTP_Get_Friendlyname(handle);
+ if (ptr == IntPtr.Zero)
+- return "Mtp Device";
++ return null;
+
+- int i = 0;
+- while (Marshal.ReadByte (ptr, i) != (byte) 0) ++i;
+- byte[] s_buf = new byte [i];
+- Marshal.Copy (ptr, s_buf, 0, s_buf.Length);
+- string s = System.Text.Encoding.UTF8.GetString (s_buf);
+- Marshal.FreeCoTaskMem(ptr);
+- return s;
++ return StringFromIntPtr (ptr);
+ }
++
++ public static bool SetFriendlyName(MtpDeviceHandle handle, string name)
++ {
++ bool success = LIBMTP_Set_Friendlyname (handle, name) == 0;
++ return success;
++ }
++
++ public static string GetSerialnumber(MtpDeviceHandle handle)
++ {
++ IntPtr ptr = LibMtp.LIBMTP_Get_Serialnumber(handle);
++ if (ptr == IntPtr.Zero)
++ return null;
++
++ return StringFromIntPtr (ptr);
++ }
+
+ public static void GetStorage (MtpDeviceHandle handle, int sortMode)
+ {
+ LIBMTP_Get_Storage (handle, sortMode);
+ }
++
++ public static Int16 [] GetFileTypes (MtpDeviceHandle handle)
++ {
++ IntPtr types = IntPtr.Zero;
++ ushort count = 0;
++ if (LIBMTP_Get_Supported_Filetypes (handle, ref types, ref count) == 0) {
++ Int16 [] type_ary = new Int16 [count];
++ Marshal.Copy (types, type_ary, 0, (int)count);
++ Marshal.FreeHGlobal (types);
++ return type_ary;
++ }
++
++ return new Int16[0];
++ }
+
+ public static void Init ()
+ {
+@@ -92,6 +126,17 @@
+ {
+ LIBMTP_Release_Device(handle);
+ }
++
++ private static string StringFromIntPtr (IntPtr ptr)
++ {
++ int i = 0;
++ while (Marshal.ReadByte (ptr, i) != (byte) 0) ++i;
++ byte[] s_buf = new byte [i];
++ Marshal.Copy (ptr, s_buf, 0, s_buf.Length);
++ string s = System.Text.Encoding.UTF8.GetString (s_buf);
++ Marshal.FreeCoTaskMem(ptr);
++ return s;
++ }
+
+ [DllImport("libmtp.dll")]
+ private static extern void LIBMTP_Init ();
+@@ -101,7 +146,7 @@
+ private static extern void LIBMTP_Clear_Errorstack (MtpDeviceHandle handle);
+
+ [DllImport("libmtp.dll")]
+- private static extern int LIBMTP_Delete_Object (MtpDeviceHandle handle, uint object_id);
++ public static extern int LIBMTP_Delete_Object (MtpDeviceHandle handle, uint object_id);
+
+ // Gets the first connected device:
+ [DllImport("libmtp.dll")]
+@@ -144,8 +189,8 @@
+ [DllImportAttribute("libmtp.dll")]
+ private static extern IntPtr LIBMTP_Get_Friendlyname (MtpDeviceHandle handle); // char *
+
+- //[DllImport("libmtp.dll")]
+- //private static extern int LIBMTP_Set_Friendlyname (MtpDeviceHandle handle, char const *const)
++ [DllImport("libmtp.dll")]
++ private static extern int LIBMTP_Set_Friendlyname (MtpDeviceHandle handle, string name);
+
+ [DllImportAttribute("libmtp.dll")]
+ private static extern IntPtr LIBMTP_Get_Errorstack (MtpDeviceHandle handle); // LIBMTP_error_t *
+Index: ext/libmtp-sharp/Functions/FolderManagement.cs
+===================================================================
+--- ext/libmtp-sharp/Functions/FolderManagement.cs (Revision 2958)
++++ ext/libmtp-sharp/Functions/FolderManagement.cs (Revision 3417)
+@@ -30,7 +30,7 @@
+ using System;
+ using System.Runtime.InteropServices;
+
+-namespace libmtpsharp
++namespace Mtp
+ {
+ internal class FolderManagement
+ {
+Index: ext/libmtp-sharp/Track.cs
+===================================================================
+--- ext/libmtp-sharp/Track.cs (Revision 2958)
++++ ext/libmtp-sharp/Track.cs (Revision 3417)
+@@ -29,7 +29,7 @@
+
+ using System;
+
+-namespace libmtpsharp
++namespace Mtp
+ {
+ public class Track
+ {
+@@ -154,50 +154,50 @@
+ if (string.IsNullOrEmpty(path))
+ throw new ArgumentException ("Cannot be null or empty", "path");
+
+- TrackManagement.GetTrack (device.handle, trackStruct.item_id, path, callback, IntPtr.Zero);
++ TrackManagement.GetTrack (device.Handle, trackStruct.item_id, path, callback, IntPtr.Zero);
+ }
+
+ public void UpdateMetadata()
+ {
+- TrackManagement.UpdateTrackMetadata(device.handle, ref trackStruct);
++ TrackManagement.UpdateTrackMetadata(device.Handle, ref trackStruct);
+ }
+
+ private static FileType DetectFiletype(Track track)
+ {
+ if(track.Filename.EndsWith(".asf", System.StringComparison.OrdinalIgnoreCase))
+- return FileType.LIBMTP_FILETYPE_ASF;
++ return FileType.ASF;
+
+ if(track.Filename.EndsWith(".avi", System.StringComparison.OrdinalIgnoreCase))
+- return FileType.LIBMTP_FILETYPE_AVI;
++ return FileType.AVI;
+
+ if(track.Filename.EndsWith(".BMP", System.StringComparison.OrdinalIgnoreCase))
+- return FileType.LIBMTP_FILETYPE_BMP;
++ return FileType.BMP;
+
+ if(track.Filename.EndsWith(".JPEG", System.StringComparison.OrdinalIgnoreCase)
+ || track.Filename.EndsWith(".JPG", System.StringComparison.OrdinalIgnoreCase))
+- return FileType.LIBMTP_FILETYPE_JPEG;
++ return FileType.JPEG;
+
+ if(track.Filename.EndsWith(".MP3", System.StringComparison.OrdinalIgnoreCase))
+- return FileType.LIBMTP_FILETYPE_MP3;
++ return FileType.MP3;
+
+ if(track.Filename.EndsWith(".MPG", System.StringComparison.OrdinalIgnoreCase)
+ || track.Filename.EndsWith(".MPEG", System.StringComparison.OrdinalIgnoreCase))
+- return FileType.LIBMTP_FILETYPE_MPEG;
++ return FileType.MPEG;
+
+ if(track.Filename.EndsWith(".OGG", System.StringComparison.OrdinalIgnoreCase)
+ || track.Filename.EndsWith(".OGM", System.StringComparison.OrdinalIgnoreCase))
+- return FileType.LIBMTP_FILETYPE_OGG;
++ return FileType.OGG;
+
+ if(track.Filename.EndsWith(".PNG", System.StringComparison.OrdinalIgnoreCase))
+- return FileType.LIBMTP_FILETYPE_PNG;
++ return FileType.PNG;
+
+ if(track.Filename.EndsWith(".WAV", System.StringComparison.OrdinalIgnoreCase))
+- return FileType.LIBMTP_FILETYPE_WAV;
++ return FileType.WAV;
+
+ if(track.Filename.EndsWith(".WMA", System.StringComparison.OrdinalIgnoreCase))
+- return FileType.LIBMTP_FILETYPE_WMA;
++ return FileType.WMA;
+
+- return FileType.LIBMTP_FILETYPE_UNKNOWN;
++ return FileType.UNKNOWN;
+ }
+ }
+ }
+Index: ext/libmtp-sharp/Makefile.am
+===================================================================
+--- ext/libmtp-sharp/Makefile.am (Revision 2958)
++++ ext/libmtp-sharp/Makefile.am (Revision 3417)
+@@ -1,6 +1,6 @@
+ include $(top_srcdir)/build/Common.Makefile
+
+-ASSEMBLY_NAME = libmtp-sharp
++ASSEMBLY_NAME = Mtp
+ ASSEMBLY = $(ASSEMBLY_NAME).dll
+
+ asmdir = $(pkglibdir)/Banshee.Dap
+@@ -18,10 +18,11 @@
+ $(srcdir)/Base/Error.cs \
+ $(srcdir)/Base/FileSampleData.cs \
+ $(srcdir)/Base/MtpDeviceStruct.cs \
++ $(srcdir)/Album.cs \
++ $(srcdir)/AssemblyInfo.cs \
++ $(srcdir)/Folder.cs \
+ $(srcdir)/MtpDevice.cs \
+- $(srcdir)/AssemblyInfo.cs \
+ $(srcdir)/Track.cs \
+- $(srcdir)/Folder.cs \
+ $(srcdir)/Functions/AlbumManagement.cs \
+ $(srcdir)/Functions/FunctionCalls.cs \
+ $(srcdir)/Functions/FolderManagement.cs \
+Index: ext/libmtp-sharp/Base/FileSampleData.cs
+===================================================================
+--- ext/libmtp-sharp/Base/FileSampleData.cs (Revision 2958)
++++ ext/libmtp-sharp/Base/FileSampleData.cs (Revision 3417)
+@@ -30,17 +30,16 @@
+ using System;
+ using System.Runtime.InteropServices;
+
+-namespace libmtpsharp
++namespace Mtp
+ {
+ [StructLayout(LayoutKind.Sequential)]
+ internal struct FileSampleData
+ {
+- int width;
+- int height;
+- int duration;
+- FileType filetype;
+- long size;
+- [MarshalAs(UnmanagedType.LPStr)] string data; // Make it byte maybe?
+- //FIXME THIS IS BUGGY!
++ public uint width;
++ public uint height;
++ public uint duration;
++ public FileType filetype;
++ public ulong size;
++ public IntPtr data;
+ }
+ }
+Index: ext/libmtp-sharp/Base/File.cs
+===================================================================
+--- ext/libmtp-sharp/Base/File.cs (Revision 2958)
++++ ext/libmtp-sharp/Base/File.cs (Revision 3417)
+@@ -30,7 +30,7 @@
+ using System;
+ using System.Runtime.InteropServices;
+
+-namespace libmtpsharp
++namespace Mtp
+ {
+ [StructLayout(LayoutKind.Sequential)]
+ internal struct File
+Index: ext/libmtp-sharp/Base/Album.cs
+===================================================================
+--- ext/libmtp-sharp/Base/Album.cs (Revision 2958)
++++ ext/libmtp-sharp/Base/Album.cs (Revision 3417)
+@@ -30,17 +30,25 @@
+ using System;
+ using System.Runtime.InteropServices;
+
+-namespace libmtpsharp
++namespace Mtp
+ {
+ [StructLayout(LayoutKind.Sequential)]
+- internal struct Album
++ internal struct AlbumStruct
+ {
+ public uint album_id;
+- [MarshalAs(UnmanagedType.LPStr)] public string name;
+- [MarshalAs(UnmanagedType.LPStr)] public string artist;
+- [MarshalAs(UnmanagedType.LPStr)] public string genre;
+- public IntPtr tracks; // int*
++
++ [MarshalAs(UnmanagedType.LPStr)]
++ public string name;
++
++ [MarshalAs(UnmanagedType.LPStr)]
++ public string artist;
++
++ [MarshalAs(UnmanagedType.LPStr)]
++ public string genre;
++
++ public IntPtr tracks;
+ public uint no_tracks;
++
+ public IntPtr next; // LIBMTP_album_t*
+
+ /*
+Index: ext/libmtp-sharp/Base/FolderStruct.cs
+===================================================================
+--- ext/libmtp-sharp/Base/FolderStruct.cs (Revision 2958)
++++ ext/libmtp-sharp/Base/FolderStruct.cs (Revision 3417)
+@@ -31,7 +31,7 @@
+ using System.Collections.Generic;
+ using System.Runtime.InteropServices;
+
+-namespace libmtpsharp
++namespace Mtp
+ {
+ internal class FolderHandle : SafeHandle
+ {
+Index: ext/libmtp-sharp/Base/DeviceEntry.cs
+===================================================================
+--- ext/libmtp-sharp/Base/DeviceEntry.cs (Revision 2958)
++++ ext/libmtp-sharp/Base/DeviceEntry.cs (Revision 3417)
+@@ -30,7 +30,7 @@
+ using System;
+ using System.Runtime.InteropServices;
+
+-namespace libmtpsharp
++namespace Mtp
+ {
+ [StructLayout(LayoutKind.Sequential)]
+ internal struct DeviceEntry
+Index: ext/libmtp-sharp/Base/Playlist.cs
+===================================================================
+--- ext/libmtp-sharp/Base/Playlist.cs (Revision 2958)
++++ ext/libmtp-sharp/Base/Playlist.cs (Revision 3417)
+@@ -30,7 +30,7 @@
+ using System;
+ using System.Runtime.InteropServices;
+
+-namespace libmtpsharp
++namespace Mtp
+ {
+ [StructLayout(LayoutKind.Sequential)]
+ internal struct Playlist
+Index: ext/libmtp-sharp/Base/DeviceStorage.cs
+===================================================================
+--- ext/libmtp-sharp/Base/DeviceStorage.cs (Revision 2958)
++++ ext/libmtp-sharp/Base/DeviceStorage.cs (Revision 3417)
+@@ -30,7 +30,7 @@
+ using System;
+ using System.Runtime.InteropServices;
+
+-namespace libmtpsharp
++namespace Mtp
+ {
+ [StructLayout(LayoutKind.Sequential)]
+ public struct DeviceStorage
+Index: ext/libmtp-sharp/Base/MtpDeviceStruct.cs
+===================================================================
+--- ext/libmtp-sharp/Base/MtpDeviceStruct.cs (Revision 2958)
++++ ext/libmtp-sharp/Base/MtpDeviceStruct.cs (Revision 3417)
+@@ -31,7 +31,7 @@
+ using System.Runtime.InteropServices;
+ using System.Collections.Generic;
+
+-namespace libmtpsharp
++namespace Mtp
+ {
+ internal class MtpDeviceHandle : SafeHandle
+ {
+Index: ext/libmtp-sharp/Base/Enums.cs
+===================================================================
+--- ext/libmtp-sharp/Base/Enums.cs (Revision 2958)
++++ ext/libmtp-sharp/Base/Enums.cs (Revision 3417)
+@@ -29,52 +29,52 @@
+
+ using System;
+
+-namespace libmtpsharp
++namespace Mtp
+ {
+ public enum FileType
+ {
+- LIBMTP_FILETYPE_WAV,
+- LIBMTP_FILETYPE_MP3,
+- LIBMTP_FILETYPE_WMA,
+- LIBMTP_FILETYPE_OGG,
+- LIBMTP_FILETYPE_AUDIBLE,
+- LIBMTP_FILETYPE_MP4,
+- LIBMTP_FILETYPE_UNDEF_AUDIO,
+- LIBMTP_FILETYPE_WMV,
+- LIBMTP_FILETYPE_AVI,
+- LIBMTP_FILETYPE_MPEG,
+- LIBMTP_FILETYPE_ASF,
+- LIBMTP_FILETYPE_QT,
+- LIBMTP_FILETYPE_UNDEF_VIDEO,
+- LIBMTP_FILETYPE_JPEG,
+- LIBMTP_FILETYPE_JFIF,
+- LIBMTP_FILETYPE_TIFF,
+- LIBMTP_FILETYPE_BMP,
+- LIBMTP_FILETYPE_GIF,
+- LIBMTP_FILETYPE_PICT,
+- LIBMTP_FILETYPE_PNG,
+- LIBMTP_FILETYPE_VCALENDAR1,
+- LIBMTP_FILETYPE_VCALENDAR2,
+- LIBMTP_FILETYPE_VCARD2,
+- LIBMTP_FILETYPE_VCARD3,
+- LIBMTP_FILETYPE_WINDOWSIMAGEFORMAT,
+- LIBMTP_FILETYPE_WINEXEC,
+- LIBMTP_FILETYPE_TEXT,
+- LIBMTP_FILETYPE_HTML,
+- LIBMTP_FILETYPE_FIRMWARE,
+- LIBMTP_FILETYPE_AAC,
+- LIBMTP_FILETYPE_MEDIACARD,
+- LIBMTP_FILETYPE_FLAC,
+- LIBMTP_FILETYPE_MP2,
+- LIBMTP_FILETYPE_M4A,
+- LIBMTP_FILETYPE_DOC,
+- LIBMTP_FILETYPE_XML,
+- LIBMTP_FILETYPE_XLS,
+- LIBMTP_FILETYPE_PPT,
+- LIBMTP_FILETYPE_MHT,
+- LIBMTP_FILETYPE_JP2,
+- LIBMTP_FILETYPE_JPX,
+- LIBMTP_FILETYPE_UNKNOWN
++ WAV,
++ MP3,
++ WMA,
++ OGG,
++ AUDIBLE,
++ MP4,
++ UNDEF_AUDIO,
++ WMV,
++ AVI,
++ MPEG,
++ ASF,
++ QT,
++ UNDEF_VIDEO,
++ JPEG,
++ JFIF,
++ TIFF,
++ BMP,
++ GIF,
++ PICT,
++ PNG,
++ VCALENDAR1,
++ VCALENDAR2,
++ VCARD2,
++ VCARD3,
++ WINDOWSIMAGEFORMAT,
++ WINEXEC,
++ TEXT,
++ HTML,
++ FIRMWARE,
++ AAC,
++ MEDIACARD,
++ FLAC,
++ MP2,
++ M4A,
++ DOC,
++ XML,
++ XLS,
++ PPT,
++ MHT,
++ JP2,
++ JPX,
++ UNKNOWN
+ }
+
+ public enum ErrorCode
+Index: ext/libmtp-sharp/Base/Error.cs
+===================================================================
+--- ext/libmtp-sharp/Base/Error.cs (Revision 2958)
++++ ext/libmtp-sharp/Base/Error.cs (Revision 3417)
+@@ -30,7 +30,7 @@
+ using System;
+ using System.Runtime.InteropServices;
+
+-namespace libmtpsharp
++namespace Mtp
+ {
+ public class LibMtpException : Exception
+ {
+Index: ext/libmtp-sharp/Base/TrackStruct.cs
+===================================================================
+--- ext/libmtp-sharp/Base/TrackStruct.cs (Revision 2958)
++++ ext/libmtp-sharp/Base/TrackStruct.cs (Revision 3417)
+@@ -30,7 +30,7 @@
+ using System;
+ using System.Runtime.InteropServices;
+
+-namespace libmtpsharp
++namespace Mtp
+ {
+ [StructLayout(LayoutKind.Sequential)]
+ internal struct TrackStruct
+Index: configure.ac
+===================================================================
+--- configure.ac (Revision 2958)
++++ configure.ac (Revision 3417)
+@@ -116,7 +116,7 @@
+ ext/dbus-sharp/Makefile
+ ext/dbus-sharp/NDesk.DBus.GLib.dll.config
+ ext/libmtp-sharp/Makefile
+-ext/libmtp-sharp/libmtp-sharp.dll.config
++ext/libmtp-sharp/Mtp.dll.config
+
+ src/Makefile
+ src/AssemblyInfo.cs
+Index: data/banshee.desktop.in.in
+===================================================================
+--- data/banshee.desktop.in.in (Revision 2958)
++++ data/banshee.desktop.in.in (Revision 3417)
+@@ -14,4 +14,5 @@
+ X-GNOME-Bugzilla-Product=banshee
+ X-GNOME-Bugzilla-Component=General
+ X-GNOME-Bugzilla-Version=@VERSION@
+-MimeType=application/musepack;application/x-musepack;audio/musepack;audio/x-musepack;audio/mp;audio/x-mp;audio/mpc;audio/x-mpc;audio/x-mod;audio/x-it;audio/x-s3m;audio/x-xm;application/ogg;application/x-ogg;audio/ogg;audio/x-ogg;application/x-flac;audio/flac;audio/x-flac;audio/vorbis;audio/x-vorbis;application/x-ape;audio/ape;audio/x-ape;application/x-id3;audio/mp3;audio/mpeg;audio/mpeg3;audio/x-mp3;audio/x-mpeg;audio/x-mpeg-3;audio/x-m4a;
++MimeType=application/musepack;application/x-musepack;audio/musepack;audio/x-musepack;audio/mp;audio/x-mp;audio/mpc;audio/x-mpc;audio/x-mod;audio/x-it;audio/x-s3m;audio/x-xm;application/ogg;application/x-ogg;audio/ogg;audio/x-ogg;application/x-flac;audio/flac;audio/x-flac;audio/vorbis;audio/x-vorbis;application/x-ape;audio/ape;audio/x-ape;application/x-id3;audio/mp3;audio/mpeg;audio/mpeg3;audio/x-mp3;audio/x-mpeg;audio/x-mpeg-3;audio/x-m4a;x-content/audio-cdda;x-content/audio-dvd;x-content/audio-player;
++
+Index: NEWS
+===================================================================
+--- NEWS (Revision 2958)
++++ NEWS (Revision 3417)
+@@ -166,7 +166,7 @@
+ Community makes Open Source work!
+
+ Aaron Bockover, Alan McGovern, Gabriel Burt, Jackson Harper, James Willcox,
+- Michael Monreal, Mike Urbanski Sebastian Dröge, Stephane Loeuillet,
++ Michael Monreal, Mike Urbanski, Sebastian Dröge, Stephane Loeuillet,
+ Wade Menard
+
+ Contributors for past releases [1]
+Index: po/POTFILES.in
+===================================================================
+--- po/POTFILES.in (Revision 2958)
++++ po/POTFILES.in (Revision 3417)
+@@ -135,6 +135,14 @@
+ src/Plugins/Banshee.Plugins.Daap/DaapLoginDialog.cs
+ src/Plugins/Banshee.Plugins.Daap/DaapPlugin.cs
+ src/Plugins/Banshee.Plugins.Daap/DaapSource.cs
++src/Plugins/Banshee.Plugins.LastFM/Connection.cs
++src/Plugins/Banshee.Plugins.LastFM/Editor.cs
++src/Plugins/Banshee.Plugins.LastFM/LastFMSource.cs
++src/Plugins/Banshee.Plugins.LastFM/Plugin.cs
++src/Plugins/Banshee.Plugins.LastFM/StationSource.cs
++src/Plugins/Banshee.Plugins.LastFM/StationType.cs
++src/Plugins/Banshee.Plugins.LastFM/Resources/lastfm.glade
++src/Plugins/Banshee.Plugins.LastFM/banshee-plugin-lastfm.schemas.in
+ src/Plugins/Banshee.Plugins.MetadataSearch/banshee-plugin-metadatasearcher.schemas.in
+ src/Plugins/Banshee.Plugins.MetadataSearch/MetadataSearchPlugin.cs
+ src/Plugins/Banshee.Plugins.MiniMode/banshee-plugin-minimode.schemas.in
+@@ -176,9 +184,4 @@
+ src/Plugins/Banshee.Plugins.Recommendation/banshee-plugin-recommendation.schemas.in
+ src/Plugins/Banshee.Plugins.Recommendation/RecommendationPane.cs
+ src/Plugins/Banshee.Plugins.Recommendation/RecommendationPlugin.cs
+-src/Plugins/Banshee.Plugins.LastFM/Connection.cs
+-src/Plugins/Banshee.Plugins.LastFM/Editor.cs
+-src/Plugins/Banshee.Plugins.LastFM/LastFMSource.cs
+-src/Plugins/Banshee.Plugins.LastFM/Plugin.cs
+-src/Plugins/Banshee.Plugins.LastFM/StationSource.cs
+-src/Plugins/Banshee.Plugins.LastFM/StationType.cs
++
+Index: po/POTFILES.skip
+===================================================================
+--- po/POTFILES.skip (Revision 0)
++++ po/POTFILES.skip (Revision 3417)
+@@ -0,0 +1,4 @@
++# List of source files that should NOT be translated.
++# Please keep this file sorted alphabetically.
++data/audio-profiles/aac.xml.in
++data/audio-profiles/wav.xml.in
+Index: po/ChangeLog
+===================================================================
+--- po/ChangeLog (Revision 2958)
++++ po/ChangeLog (Revision 3417)
+@@ -1,3 +1,23 @@
++2008-02-08 Luca Ferretti <elle.uca at libero.it>
++
++ * it.po: Updated Italian translation by Gianvito Cavasoli.
++
++2008-02-01 Luca Ferretti <elle.uca at libero.it>
++
++ * it.po: Updated Italian translation by Gianvito Cavasoli.
++ * POTFILES.in: added missing sources for LastFM plugin and
++ sort them alphabetically.
++ * POTFILE.skip: new file, with aac.xml.in and waw.xml.in to
++ make `intltool-update -m` happy.
++
++2008-01-20 Lasse Bang Mikkelsen <lbm at lbm.dk>
++
++ * da.po: Updated Danish translation.
++
++2008-01-13 Lasse Bang Mikkelsen <lbm at lbm.dk>
++
++ * da.po: Updated Danish translation.
++
+ 2007-11-04 Gabriel Burt <gabriel.burt at gmail.com>
+
+ * POTFILES.in: Updated files
+Index: po/it.po
+===================================================================
+--- po/it.po (Revision 2958)
++++ po/it.po (Revision 3417)
+@@ -1,241 +1,179 @@
+ # Italian translation of Banshee.
+-# Copyright (C) 2006 Alessandro Gervaso
++# Copyright (C) 2007 Gianvito Cavasoli
+ # This file is distributed under the same license as the Banshee package.
+ # Alessandro Gervaso <alessandro at truelite.it>, 2006.
++# Alessandro Gervaso <alessandro at truelite.it>, 2007.
++# Gianvito Cavasoli <gianvito at nectarine.it>, 2007-2008.
+ #
+ #
+ msgid ""
+ msgstr ""
+-"Project-Id-Version: Banshee 0.10.4\n"
++"Project-Id-Version: Banshee 0.13.2\n"
+ "Report-Msgid-Bugs-To: \n"
+-"POT-Creation-Date: 2006-10-19 09:14+0200\n"
+-"PO-Revision-Date: 2006-10-19 11:45+0200\n"
+-"Last-Translator: Alessandro Gervaso <alessandro at truelite.it>\n"
++"POT-Creation-Date: 2008-02-08 22:21+0100\n"
++"PO-Revision-Date: 2008-02-08 22:25+0100\n"
++"Last-Translator: Gianvito Cavasoli <gianvito at nectarine.it>\n"
+ "Language-Team: Italian <tp at lists.linux.it>\n"
+ "MIME-Version: 1.0\n"
+ "Content-Type: text/plain; charset=UTF-8\n"
+ "Content-Transfer-Encoding: 8bit\n"
+ "Plural-Forms: nplurals=2; plural=(n != 1)\n"
+
+-#: ../data/banshee.desktop.in.in.h:1 ../data/banshee.glade.h:2
+-#: ../src/Banshee.Base/BansheeBranding.cs:76
+-msgid "Banshee Music Player"
+-msgstr "Banshee - Riproduttore musicale"
++#: ../data/audio-profiles/base.xml.in.h:1
++msgid "Channels"
++msgstr "Canali"
+
+-#: ../data/banshee.desktop.in.in.h:2
+-msgid "Music Player"
+-msgstr "Riproduttore musicale"
++#: ../data/audio-profiles/flac.xml.in.h:1
++msgid "Free Lossless Audio Codec"
++msgstr "Free Lossless Audio Codec"
+
+-#: ../data/banshee.glade.h:1
+-msgid "<b>Loading...</b>"
+-msgstr "<b>Caricamento...</b>"
+-
+-#: ../data/banshee.glade.h:3
+-msgid "Disk Usage:"
+-msgstr "Utilizzo del disco:"
+-
+-#: ../data/banshee.glade.h:4
+-msgid "_Search:"
+-msgstr "C_erca:"
+-
+-#: ../data/banshee.schemas.in.h:1
++#: ../data/audio-profiles/flac.xml.in.h:2
+ msgid ""
+-"Can be either \"systemio\" (.NET System.IO), \"unix\" (Native Unix), or "
+-"\"gnomevfs\" (GNOME VFS); takes effect on Banshee start (restart necessary)"
++"Free Lossless Audio Codec (FLAC) is an open source codec that compresses but "
++"does not degrade audio quality."
+ msgstr ""
++"Free Lossless Audio Codec (FLAC) è un formato a sorgente aperto che comprime "
++"ma non degrada l'audio."
+
+-#: ../data/banshee.schemas.in.h:2
+-msgid "Copy and rename music to banshee music library directory when importing"
++#: ../data/audio-profiles/mp3-lame.xml.in.h:1
++#: ../data/audio-profiles/mp3-xing.xml.in.h:1
++msgid ""
++"A proprietary and older, but also popular, lossy audio format that produces "
++"larger files at lower bitrates."
+ msgstr ""
++"Un proprietario e vecchio, ma anche popolare, formato audio con perdita che "
++"produce grossi file a bassi bitrate."
+
+-#: ../data/banshee.schemas.in.h:3
+-msgid "Copy music on import"
+-msgstr "Copia la musica importata"
++#: ../data/audio-profiles/mp3-lame.xml.in.h:2
++msgid "Average Bitrate"
++msgstr "Bitrate medio"
+
+-#: ../data/banshee.schemas.in.h:4
+-msgid "Enable Special Keys"
+-msgstr "Abilita i tasti speciali"
++#: ../data/audio-profiles/mp3-lame.xml.in.h:3
++#: ../data/audio-profiles/wavpack.xml.in.h:2
++#: ../data/audio-profiles/wma.xml.in.h:3
++#: ../data/audio-profiles/vorbis.xml.in.h:2
++msgid "Best"
++msgstr "Migliore"
+
+-#: ../data/banshee.schemas.in.h:5
+-msgid ""
+-"Enabled Special Keys (Multimedia Keys) support for Play/Pause/Next/Previous; "
+-"works with mappings set through Gnome Shortcuts capplet"
+-msgstr ""
++#: ../data/audio-profiles/mp3-lame.xml.in.h:4
++#: ../data/audio-profiles/mp3-xing.xml.in.h:2
++#: ../data/audio-profiles/wavpack.xml.in.h:3
++#: ../data/audio-profiles/wma.xml.in.h:4
++msgid "Bitrate"
++msgstr "Bitrate"
+
+-#: ../data/banshee.schemas.in.h:6
+-msgid "File Name Pattern"
+-msgstr "Modello nome di file"
++#: ../data/audio-profiles/mp3-lame.xml.in.h:5
++msgid "Constant Bitrate"
++msgstr "Bitrate costante"
+
+-#: ../data/banshee.schemas.in.h:8
+-#, no-c-format
+-msgid ""
+-"Format for creating filenames/directories for ripped tracks, imported music, "
+-"etc. Format is relative to the Banshee music directory... do not form an "
+-"absolute path! Tokens: %artist%, %album%, %title%, %track_number%, %"
+-"track_count%, %track_number_nz% (No prefixed zero), %track_count_nz% (No "
+-"prefixed zero)."
+-msgstr ""
++#: ../data/audio-profiles/mp3-lame.xml.in.h:6
++msgid "MP3 (LAME Encoder)"
++msgstr "MP3 (codificatore LAME)"
+
+-#: ../data/banshee.schemas.in.h:9
+-msgid "Height of the main interface window."
+-msgstr "Altezza della finestra principale."
++#: ../data/audio-profiles/mp3-lame.xml.in.h:7
++msgid "VBR Mode"
++msgstr "Modo VBR"
+
+-#: ../data/banshee.schemas.in.h:10
+-msgid "Move music on info save"
+-msgstr "Sposta la musica al salvataggio delle informazioni"
++#: ../data/audio-profiles/mp3-lame.xml.in.h:8
++msgid "VBR Quality"
++msgstr "Qualità VBR"
+
+-#: ../data/banshee.schemas.in.h:11
+-msgid ""
+-"Move music within banshee music library directory when saving track info"
+-msgstr ""
+-"Sposta la musica nella collezione musicale di Banshee al salvataggio delle "
+-"informazioni su una traccia"
++#: ../data/audio-profiles/mp3-lame.xml.in.h:9
++msgid "Variable Bitrate"
++msgstr "Bitrate variabile"
+
+-#: ../data/banshee.schemas.in.h:12
+-msgid "Name of media playback engine."
+-msgstr "Nome del motore utilizzato per la riproduzione."
++#: ../data/audio-profiles/mp3-lame.xml.in.h:10
++#: ../data/audio-profiles/wavpack.xml.in.h:11
++#: ../data/audio-profiles/wma.xml.in.h:7
++#: ../data/audio-profiles/vorbis.xml.in.h:5
++msgid "Worst"
++msgstr "Peggiore"
+
+-#: ../data/banshee.schemas.in.h:13
+-msgid "Pixel position of Main Player Window on the X Axis"
+-msgstr ""
++#: ../data/audio-profiles/mp3-xing.xml.in.h:3
++msgid "MP3 (Xing Encoder)"
++msgstr "MP3 (codificatore Xing)"
+
+-#: ../data/banshee.schemas.in.h:14
+-msgid "Pixel position of Main Player Window on the Y Axis"
++#: ../data/audio-profiles/wavpack.xml.in.h:1
++msgid ""
++"A fast and efficient open source audio format offering lossless and high-"
++"quality lossy encoding with great dynamic range."
+ msgstr ""
++"Un veloce ed efficiente formato di compressione audio a sorgente aperto che "
++"offre alta qualità e ottima gamma dinamica."
+
+-#: ../data/banshee.schemas.in.h:15
+-msgid "Player Engine Name"
+-msgstr "Nome del motore di riproduzione"
++#: ../data/audio-profiles/wavpack.xml.in.h:4
++msgid "Default"
++msgstr "Predefinito"
+
+-#: ../data/banshee.schemas.in.h:16
+-msgid "Set the IO backend in Banshee"
+-msgstr ""
++#: ../data/audio-profiles/wavpack.xml.in.h:5
++msgid "Extra processing"
++msgstr "Elaborazione extra"
+
+-#: ../data/banshee.schemas.in.h:17
+-msgid "Show advanced track properties"
+-msgstr "Mostra le proprietà avanzate delle tracce"
++#: ../data/audio-profiles/wavpack.xml.in.h:6
++msgid "Highest"
++msgstr "Molto alta"
+
+-#: ../data/banshee.schemas.in.h:18
+-msgid "Show the Initial Import Dialog"
+-msgstr ""
++#: ../data/audio-profiles/wavpack.xml.in.h:7
++msgid "Lossy mode"
++msgstr "Modo con perdita"
+
+-#: ../data/banshee.schemas.in.h:19
+-msgid "Show the Initial Import Dialog when the Banshee library is empty"
+-msgstr ""
++#: ../data/audio-profiles/wavpack.xml.in.h:8
++msgid "Mode"
++msgstr "Modo"
+
+-#: ../data/banshee.schemas.in.h:20
+-msgid "Source View Width"
+-msgstr "Larghezza della visualizzazione sorgente"
++#: ../data/audio-profiles/wavpack.xml.in.h:9
++msgid "Store MD5 sum in the file"
++msgstr "Salva somma MD5 nel file"
+
+-#: ../data/banshee.schemas.in.h:21
+-msgid "True if main window is to be maximized, false if it is not."
+-msgstr ""
+-"True se la finestra principale deve essere massimizzata, false in caso "
+-"contrario"
++#: ../data/audio-profiles/wavpack.xml.in.h:10
++msgid "Wavpack"
++msgstr "Wavpack"
+
+-#: ../data/banshee.schemas.in.h:22
++#: ../data/audio-profiles/wma.xml.in.h:1
+ msgid ""
+-"True if the advanced expander should be expanded in the track properties "
+-"dialog, false if it should be closed"
++"A proprietary lossy audio format with high quality output at a lower file "
++"size than MP3. A 96 kbps WMA is equivalent to a 128 kbps MP3."
+ msgstr ""
++"Formato audio proprietario con perdita che crea file audio di alta qualità "
++"con dimensioni minori dell'MP3. Un WMA a 96 kbps equivale ad un MP3 di 128 "
++"kbps."
+
+-#: ../data/banshee.schemas.in.h:23
+-msgid "Visibility of Album Column."
+-msgstr "Visibilità della colonna Album."
++#: ../data/audio-profiles/wma.xml.in.h:2
++msgid "Audio Quality"
++msgstr "Qualità audio"
+
+-#: ../data/banshee.schemas.in.h:24
+-msgid "Visibility of Artist Column."
+-msgstr "Visibilità della colonna Artista."
++#: ../data/audio-profiles/wma.xml.in.h:5
++msgid "Use a variable bitrate"
++msgstr "Usa un bitrate variabile"
+
+-#: ../data/banshee.schemas.in.h:25
+-msgid "Visibility of Time Column."
+-msgstr "Visibilità della colonna Durata."
++#: ../data/audio-profiles/wma.xml.in.h:6
++msgid "Windows Media Audio"
++msgstr "Windows Media Audio"
+
+-#: ../data/banshee.schemas.in.h:26
+-msgid "Visibility of Title Column."
+-msgstr "Visibilità della colonna Titolo."
++#: ../data/audio-profiles/vorbis.xml.in.h:1
++msgid "Audio quality"
++msgstr "Qualità audio"
+
+-#: ../data/banshee.schemas.in.h:27
+-msgid "Visibility of Track Column."
+-msgstr "Visibilità della colonna Traccia."
++#: ../data/audio-profiles/vorbis.xml.in.h:3
++msgid "Ogg Vorbis"
++msgstr "Ogg Vorbis"
+
+-#: ../data/banshee.schemas.in.h:28
+-msgid "Visibility of Year Column."
+-msgstr "Visibilità della colonna Anno."
+-
+-#: ../data/banshee.schemas.in.h:29
+-msgid "Volume Output Level"
+-msgstr "Livello del volume in uscita"
+-
+-#: ../data/banshee.schemas.in.h:30
++#: ../data/audio-profiles/vorbis.xml.in.h:4
+ msgid ""
+-"Volume of playback relative to mixer output (except on Helix, which sets "
+-"volume directly on PCM"
+-msgstr "Volume della riproduzione relativo al mixer di uscita (eccetto con Helix che imposta il volume direttamente su PCM)"
+-
+-#: ../data/banshee.schemas.in.h:31
+-msgid "Width of Album Column."
+-msgstr "Larghezza della colonna Album."
+-
+-#: ../data/banshee.schemas.in.h:32
+-msgid "Width of Artist Column."
+-msgstr "Larghezza della colonna Artista."
+-
+-#: ../data/banshee.schemas.in.h:33
+-msgid "Width of Last Played Column."
+-msgstr "Larghezza della colonna Ultimo passaggio."
+-
+-#: ../data/banshee.schemas.in.h:34
+-msgid "Width of Plays Column."
+-msgstr "Larghezza della colonna Numero di passaggi."
+-
+-#: ../data/banshee.schemas.in.h:35
+-msgid "Width of Rating Column."
+-msgstr "Larghezza della colonna Giudizio."
+-
+-#: ../data/banshee.schemas.in.h:36
+-msgid "Width of Source View Column."
+-msgstr "Larghezza della colonna della visualizzazione sorgente."
+-
+-#: ../data/banshee.schemas.in.h:37
+-msgid "Width of Time Column."
+-msgstr "Larghezza della colonna Durata."
+-
+-#: ../data/banshee.schemas.in.h:38
+-msgid "Width of Title Column."
+-msgstr "Larghezza della colonna Titolo."
+-
+-#: ../data/banshee.schemas.in.h:39
+-msgid "Width of Track Column."
+-msgstr "Larghezza della colonna Traccia."
+-
+-#: ../data/banshee.schemas.in.h:40
+-msgid "Width of Year Column."
+-msgstr "Larghezza della colonna Anno."
+-
+-#: ../data/banshee.schemas.in.h:41
+-msgid "Width of the main interface window."
+-msgstr "Larghezza della finestra principale"
+-
+-#: ../data/banshee.schemas.in.h:42
+-msgid "Window Height"
+-msgstr "Altezza della finestra"
+-
+-#: ../data/banshee.schemas.in.h:43
+-msgid "Window Maximized"
+-msgstr "Finestra massimizzata"
+-
+-#: ../data/banshee.schemas.in.h:44
+-msgid "Window Position X"
++"Vorbis is an open source, lossy audio codec with high quality output at a "
++"lower file size than MP3."
+ msgstr ""
++"Vorbis è un formato audio con perdita a sorgente aperto, che crea file audio "
++"di grande qualità ma con dimensioni minori dell'MP3."
+
+-#: ../data/banshee.schemas.in.h:45
+-msgid "Window Position Y"
+-msgstr ""
++#: ../data/banshee.desktop.in.in.h:1 ../data/banshee.glade.h:2
++#: ../src/Core/Banshee.Base/BansheeBranding.cs:79
++msgid "Banshee Music Player"
++msgstr "Banshee - Riproduttore musicale"
+
+-#: ../data/banshee.schemas.in.h:46
+-msgid "Window Width"
+-msgstr "Larghezza della finestra"
++#: ../data/banshee.desktop.in.in.h:2
++msgid "Music Player"
++msgstr "Riproduttore musicale"
+
+ #: ../data/banshee-dialogs.glade.h:1
+ msgid "0"
+@@ -278,242 +216,261 @@
+ msgstr "<b>Durata:</b>"
+
+ #: ../data/banshee-dialogs.glade.h:11
++msgid "<b>File System Organization</b>"
++msgstr "<b>Organizzazione della gerarchia</b>"
++
++#: ../data/banshee-dialogs.glade.h:12
+ msgid "<b>File name:</b>"
+ msgstr "<b>Nome del file:</b>"
+
+-#: ../data/banshee-dialogs.glade.h:12
++#: ../data/banshee-dialogs.glade.h:13
+ msgid "<b>File size:</b>"
+ msgstr "<b>Dimensione del file:</b>"
+
+-#: ../data/banshee-dialogs.glade.h:13
++#: ../data/banshee-dialogs.glade.h:14
+ msgid "<b>Imported on:</b>"
+ msgstr "<b>Data importazione:</b>"
+
+-#: ../data/banshee-dialogs.glade.h:14
++#: ../data/banshee-dialogs.glade.h:15
+ msgid "<b>Last played:</b>"
+-msgstr "<b>Ultimo ascolto:</b>"
++msgstr "<b>Ultima riproduzione:</b>"
+
+-#: ../data/banshee-dialogs.glade.h:15
++#: ../data/banshee-dialogs.glade.h:16
+ msgid "<b>Location:</b>"
+ msgstr "<b>Posizione:</b>"
+
+-#: ../data/banshee-dialogs.glade.h:16
+-msgid "<b>Music Library</b>"
+-msgstr "<b>Libreria musicale</b>"
++#: ../data/banshee-dialogs.glade.h:17
++msgid "<b>Music _Library</b>"
++msgstr "<b>_Libreria musicale</b>"
+
+-#: ../data/banshee-dialogs.glade.h:17
++#: ../data/banshee-dialogs.glade.h:18
+ msgid "<b>Play count:</b>"
+-msgstr "<b>Contatore ascolti:</b>"
++msgstr "<b>Contatore riproduzioni:</b>"
+
+-#: ../data/banshee-dialogs.glade.h:18
++#: ../data/banshee-dialogs.glade.h:19
+ msgid "<b>Sample rate:</b>"
+-msgstr "<b>Sample rate:</b>"
++msgstr "<b>Campionatura:</b>"
+
+ # relativo alla scrittura di audio CD
+-#: ../data/banshee-dialogs.glade.h:19
++#: ../data/banshee-dialogs.glade.h:20
+ msgid "<b>Session Information</b>"
+ msgstr "<b>Informazioni di sessione</b>"
+
+-#: ../data/banshee-dialogs.glade.h:20
++#: ../data/banshee-dialogs.glade.h:21
+ msgid "<b>Track _count:</b>"
+ msgstr "<b>_Totale tracce:</b>"
+
+-#: ../data/banshee-dialogs.glade.h:21
++#: ../data/banshee-dialogs.glade.h:22
+ msgid "<b>Track _number:</b>"
+ msgstr "<b>_Numero traccia</b>"
+
+-#: ../data/banshee-dialogs.glade.h:22
++#: ../data/banshee-dialogs.glade.h:23
+ msgid "<b>Write Options</b>"
+ msgstr "<b>Operazioni di scrittura</b>"
+
+-#: ../data/banshee-dialogs.glade.h:23
++#: ../data/banshee-dialogs.glade.h:24
+ msgid "<b>_Artist:</b>"
+ msgstr "<b>_Artista:</b>"
+
+-#: ../data/banshee-dialogs.glade.h:24
++#: ../data/banshee-dialogs.glade.h:25
+ msgid "<b>_Genre:</b>"
+ msgstr "<b>_Genere:</b>"
+
+-#: ../data/banshee-dialogs.glade.h:25
++#: ../data/banshee-dialogs.glade.h:26
+ msgid "<b>_Rating:</b>"
+-msgstr "<b>Gi_udizio:</b>"
++msgstr "<b>_Giudizio:</b>"
+
+-#: ../data/banshee-dialogs.glade.h:26
++#: ../data/banshee-dialogs.glade.h:27
+ msgid "<b>_Title:</b>"
+ msgstr "<b>_Titolo:</b>"
+
+-#: ../data/banshee-dialogs.glade.h:27
++#: ../data/banshee-dialogs.glade.h:28
+ msgid "<b>_Year:</b>"
+-msgstr "<b>A_nno:</b>"
++msgstr "<b>_Anno:</b>"
+
+-#: ../data/banshee-dialogs.glade.h:28
++#: ../data/banshee-dialogs.glade.h:29
+ msgid "<big><b>Import Music to Library</b></big>"
+ msgstr "<big><b>Importa musica nella libreria</b></big>"
+
+-#: ../data/banshee-dialogs.glade.h:29
++#: ../data/banshee-dialogs.glade.h:30
++msgid "Apply common field values to all tracks"
++msgstr "Applica i valori di campo comuni a tutte le tracce"
++
++#: ../data/banshee-dialogs.glade.h:31
+ msgid "Artwork"
+ msgstr "Copertina"
+
+-#: ../data/banshee-dialogs.glade.h:30
++#: ../data/banshee-dialogs.glade.h:32
++#: ../src/Plugins/Banshee.Plugins.Daap/DaapErrorView.cs:79
+ msgid "Back"
+ msgstr "Indietro"
+
+-#: ../data/banshee-dialogs.glade.h:31
++#: ../data/banshee-dialogs.glade.h:33
+ msgid "Choose an import source:"
+ msgstr "Scegliere una sorgente di importazione:"
+
+-#: ../data/banshee-dialogs.glade.h:32
+-msgid "Copy all common fields"
+-msgstr "Copia tutti i campi comuni"
++#: ../data/banshee-dialogs.glade.h:34
++msgid "Co_py files to music folder when importing"
++msgstr "Co_piare i file nella cartella della musica quando importati"
+
+-#: ../data/banshee-dialogs.glade.h:33
+-msgid "Copy files to music folder when importing"
+-msgstr "Copiare i file nella cartella della musica quando importati"
+-
+ # riferito immagine della cover, pulsante per copiare l'immagine
+ # su tutte le canzoni selezionate (credo sia attivo quando si sceglie embed)
+ #
+-#: ../data/banshee-dialogs.glade.h:34
++#: ../data/banshee-dialogs.glade.h:35
+ msgid "Copy to all"
+-msgstr "Copia su tutte"
++msgstr "Copia a tutti"
+
+-#: ../data/banshee-dialogs.glade.h:35
++#: ../data/banshee-dialogs.glade.h:36
+ msgid "Create a new preset"
+ msgstr "Crea una nuova preselezione"
+
+-#: ../data/banshee-dialogs.glade.h:36
++#: ../data/banshee-dialogs.glade.h:37
+ msgid "Delete the active preset"
+ msgstr "Elimina la preselezione attiva"
+
+-#: ../data/banshee-dialogs.glade.h:37
++#: ../data/banshee-dialogs.glade.h:38
+ msgid "Details"
+ msgstr "Dettagli"
+
+-#: ../data/banshee-dialogs.glade.h:38
++#: ../data/banshee-dialogs.glade.h:39
+ msgid "Disc Options"
+ msgstr "Opzioni del disco"
+
+-#: ../data/banshee-dialogs.glade.h:39
++#: ../data/banshee-dialogs.glade.h:40
+ msgid "Disc format:"
+ msgstr "Formato del disco:"
+
+-#: ../data/banshee-dialogs.glade.h:40
++#: ../data/banshee-dialogs.glade.h:41
+ msgid "Disc name:"
+ msgstr "Nome del disco:"
+
+-#: ../data/banshee-dialogs.glade.h:41
++#: ../data/banshee-dialogs.glade.h:42
+ msgid "Do not show this dialog again"
+ msgstr "Non mostrare più questo dialogo"
+
+-#: ../data/banshee-dialogs.glade.h:42
++#: ../data/banshee-dialogs.glade.h:43
+ msgid "Eject disc after writing"
+ msgstr "Espelli il disco dopo la scrittura"
+
+ # riferito all'immagine della cover, checkbox
+-#: ../data/banshee-dialogs.glade.h:43
++#: ../data/banshee-dialogs.glade.h:44
+ msgid "Embed directly in song"
+-msgstr "Incorpora direttamente nella canzone"
++msgstr "Incorpora direttamente nella traccia"
+
+-#: ../data/banshee-dialogs.glade.h:44
+-#: ../src/Banshee.Base/Plugins/PluginDialog.cs:70
++#: ../data/banshee-dialogs.glade.h:45
++#: ../src/Core/Banshee.Base/Plugins/PluginDialog.cs:70
+ msgid "Enabled"
+ msgstr "Abilitato"
+
+-#: ../data/banshee-dialogs.glade.h:45
++#: ../data/banshee-dialogs.glade.h:46
+ msgid "Enter Next"
+ msgstr "Inserisci successiva"
+
+-#: ../data/banshee-dialogs.glade.h:46
++#: ../data/banshee-dialogs.glade.h:47
+ msgid "Enter the address of the file you would like to open:"
+ msgstr "Inserire l'indirizzo del file da aprire:"
+
+-#: ../data/banshee-dialogs.glade.h:47 ../src/Banshee.Base/ActionManager.cs:140
++#: ../data/banshee-dialogs.glade.h:48
++#: ../src/Core/Banshee.Base/ActionManager.cs:154
+ msgid "Equalizer"
+ msgstr "Equalizzatore"
+
+-#: ../data/banshee-dialogs.glade.h:48
++#: ../data/banshee-dialogs.glade.h:49
+ msgid "Error"
+ msgstr "Errore"
+
+-#: ../data/banshee-dialogs.glade.h:49
++#: ../data/banshee-dialogs.glade.h:50
++msgid "File _name:"
++msgstr "_Nome del file"
++
++#: ../data/banshee-dialogs.glade.h:51
++msgid "Folder hie_rarchy:"
++msgstr "Ge_rarchia cartella:"
++
++#: ../data/banshee-dialogs.glade.h:52
+ msgid "Forward"
+ msgstr "Avanti"
+
+-#: ../data/banshee-dialogs.glade.h:50
++#: ../data/banshee-dialogs.glade.h:53
+ msgid "Import Music Source"
+ msgstr "Importa sorgente musicale"
+
+-#: ../data/banshee-dialogs.glade.h:51
++#: ../data/banshee-dialogs.glade.h:54
+ msgid "Import Music to Library"
+ msgstr "Importa musica nella libreria"
+
+-#: ../data/banshee-dialogs.glade.h:52
++#: ../data/banshee-dialogs.glade.h:55
+ msgid "Metadata"
+ msgstr "Metadati"
+
+-#: ../data/banshee-dialogs.glade.h:53
+-#: ../src/Banshee.Base/Gui/OpenLocationDialog.cs:97
++#: ../data/banshee-dialogs.glade.h:56
++msgid "O_utput format:"
++msgstr "Formato di u_scita:"
++
++#: ../data/banshee-dialogs.glade.h:57
++#: ../src/Core/Banshee.Base/Gui/OpenLocationDialog.cs:98
+ msgid "Open Location"
+ msgstr "Apri posizione"
+
+-#: ../data/banshee-dialogs.glade.h:54
++#: ../data/banshee-dialogs.glade.h:58
+ msgid "Open in editor"
+ msgstr "Apri nell'editor"
+
+-#: ../data/banshee-dialogs.glade.h:55
+-msgid "Output Format:"
+-msgstr "Formato di uscita:"
+-
+-#: ../data/banshee-dialogs.glade.h:56
++#: ../data/banshee-dialogs.glade.h:59
+ msgid "Playlist _Name: "
+ msgstr "_Nome della scaletta: "
+
+-#: ../data/banshee-dialogs.glade.h:57
++#: ../data/banshee-dialogs.glade.h:60
+ msgid "Predefined Smart Playlists"
+ msgstr "Scalette intelligenti predefinite"
+
+-#: ../data/banshee-dialogs.glade.h:58
++#: ../data/banshee-dialogs.glade.h:61
+ msgid "Preferences"
+ msgstr "Preferenze"
+
+-#: ../data/banshee-dialogs.glade.h:59
++#: ../data/banshee-dialogs.glade.h:62
+ msgid "Reset"
+ msgstr "Azzera"
+
+ # riferito alla copertina, checkbox
+-#: ../data/banshee-dialogs.glade.h:60
++#: ../data/banshee-dialogs.glade.h:63
+ msgid "Save to song directory"
+-msgstr "Salva nella directory delle canzoni"
++msgstr "Salva nella cartella delle canzoni"
+
+-#: ../data/banshee-dialogs.glade.h:61
++#: ../data/banshee-dialogs.glade.h:64
+ msgid "Seek to Position"
+ msgstr "Scorri alla posizione"
+
+-#: ../data/banshee-dialogs.glade.h:62
++#: ../data/banshee-dialogs.glade.h:65
+ msgid "Select for use"
+ msgstr "Seleziona per l'uso"
+
+-#: ../data/banshee-dialogs.glade.h:63
+-#: ../src/Banshee.Base/Banshee.Cdrom.Gui/RecorderSpeedComboBox.cs:64
+-#: ../src/Banshee.Base/Dap/Dap.cs:647
+-#: ../src/Banshee.Base/Gui/TrackEditor.cs:273
+-#: ../src/Banshee.Base/Gui/TrackEditor.cs:296
++#: ../data/banshee-dialogs.glade.h:66
++#: ../src/Core/Banshee.Base/Banshee.Cdrom.Gui/RecorderSpeedComboBox.cs:64
++#: ../src/Core/Banshee.Base/Dap/Dap.cs:661
++#: ../src/Core/Banshee.Base/Gui/TrackEditor.cs:302
++#: ../src/Core/Banshee.Base/Gui/TrackEditor.cs:325
++#: ../src/Dap/Banshee.Dap.Ipod/IpodDap.cs:99
+ msgid "Unknown"
+ msgstr "Sconosciuto"
+
+-#: ../data/banshee-dialogs.glade.h:64
++#: ../data/banshee-dialogs.glade.h:67
++msgid "Use error correction when importing"
++msgstr "Usa correzione errori nell'importazione"
++
++#: ../data/banshee-dialogs.glade.h:68
++msgid "Write _metadata to files"
++msgstr "Scrivere i _metadati nei file"
++
++#: ../data/banshee-dialogs.glade.h:69
+ msgid "Write disc to:"
+ msgstr "Scrivi disco su:"
+
+-#: ../data/banshee-dialogs.glade.h:65
+-msgid "Write metadata to files"
+-msgstr "Scrivere i metadati nei file"
+-
+-#: ../data/banshee-dialogs.glade.h:66
++#: ../data/banshee-dialogs.glade.h:70
+ msgid "Write speed:"
+ msgstr "Velocità di scrittura:"
+
+-#: ../data/banshee-dialogs.glade.h:67
++#: ../data/banshee-dialogs.glade.h:71
+ msgid ""
+ "Your music library is empty. You may import new music into your library now, "
+ "or choose to do so later."
+@@ -521,2402 +478,4529 @@
+ "La libreria musicale è vuota. à possibile importare adesso della nuova "
+ "musica nella libreria, oppure decidere di farlo in un secondo momento."
+
+-#: ../data/banshee-dialogs.glade.h:68
++#: ../data/banshee-dialogs.glade.h:72
+ msgid "_Write"
+ msgstr "_Scrivi"
+
+-#: ../libbanshee/gst-cd-rip-0.10.c:248
++#: ../data/banshee.glade.h:1
++msgid "<b>Loading...</b>"
++msgstr "<b>Caricamento...</b>"
++
++#: ../data/banshee.glade.h:3
++msgid "Disk Usage:"
++msgstr "Uso del disco:"
++
++#: ../data/banshee.glade.h:4
++msgid "_Search:"
++msgstr "_Cerca:"
++
++#: ../libbanshee/gst-cd-rip-0.10.c:222
+ msgid "Could not create pipeline"
+ msgstr "Non è stato possibile creare la pipeline"
+
+-#: ../libbanshee/gst-cd-rip-0.10.c:254
+-msgid "Could not initialize cdparanoia"
+-msgstr "Non è stato possibile inizializzare cdparanoia"
++#: ../libbanshee/gst-cd-rip-0.10.c:228
++msgid "Could not initialize element from cdda URI"
++msgstr "Impossibile inizializzare il componente da cdda URI"
+
+-#: ../libbanshee/gst-cd-rip-0.10.c:265
++#: ../libbanshee/gst-cd-rip-0.10.c:242
+ msgid "Could not create mbtrm plugin"
+ msgstr "Non è stato possibile creare il plugin mbtrm"
+
+-#: ../libbanshee/gst-cd-rip-0.10.c:277
++#: ../libbanshee/gst-cd-rip-0.10.c:254
+ msgid "Could not create encoder pipeline"
+-msgstr "Non è stato possibile creare la pipeline di codifica"
++msgstr "Non è stato possibile creare la pipeline del codificatore"
+
+-#: ../libbanshee/gst-cd-rip-0.10.c:283
++#: ../libbanshee/gst-cd-rip-0.10.c:260
+ msgid "Could not create queue plugin"
+ msgstr "Non è stato possibile creare il plugin queue"
+
+-#: ../libbanshee/gst-cd-rip-0.10.c:291
++#: ../libbanshee/gst-cd-rip-0.10.c:268
+ msgid "Could not create GNOME VFS output plugin"
+ msgstr "Non è stato possibile creare un plugin per l'output su GNOME VFS"
+
+-#: ../libbanshee/gst-cd-rip-0.10.c:307
+-msgid "Could not link pipeline elements"
+-msgstr "Non è stato possibile collegare gli elementi di una pipeline"
++#: ../libbanshee/gst-cd-rip-0.10.c:284
++msgid "Could not link cddasrcsrc to mbtrm"
++msgstr "Impossibile collegare cddasrcsrc a mbtrm"
+
+-#: ../libbanshee/gst-cd-rip-0.10.c:398
+-#: ../src/Banshee.Base/BansheeBranding.cs:80
+-#: ../src/Banshee.Plugins/NotificationAreaIcon/NotificationAreaIconPlugin.cs:121
++#: ../libbanshee/gst-cd-rip-0.10.c:289
++msgid "Could not link mbtrm to queue"
++msgstr "Impossibile collegare mbtrm a queue"
++
++#: ../libbanshee/gst-cd-rip-0.10.c:294
++msgid "Could not link queue to encoder"
++msgstr "Impossibile collegare queue a encoder"
++
++#: ../libbanshee/gst-cd-rip-0.10.c:299
++msgid "Could not link encoder to gnomevfssink"
++msgstr "Impossibile collegare encoder a gnomevfssink"
++
++#: ../libbanshee/gst-cd-rip-0.10.c:409
++#: ../src/Core/Banshee.Base/BansheeBranding.cs:83
++#: ../src/Plugins/Banshee.Plugins.MiniMode/minimode.glade.h:3
++#: ../src/Plugins/Banshee.Plugins.NotificationAreaIcon/NotificationAreaIconPlugin.cs:171
+ msgid "Banshee"
+ msgstr "Banshee"
+
+-#: ../libbanshee/gst-cd-rip-0.10.c:424
++#: ../libbanshee/gst-cd-rip-0.10.c:446
+ msgid "Encoding element does not support tagging!"
+-msgstr ""
++msgstr "L'elemento codificato non supporta l'applicazione di tag!"
+
+ #: ../libbanshee/gst-transcode-0.10.c:160
+ msgid "No decoder could be found for source format."
+ msgstr ""
+-"Non è stato possibile trovare alcun decodificatore per il formato sorgente"
++"Non è stato possibile trovare alcun decodificatore per la sorgente del "
++"formato"
+
+ #: ../libbanshee/gst-transcode-0.10.c:165
+ msgid "Could not stat encoded file"
+-msgstr ""
++msgstr "Impossibile accedere al file codificato"
+
+-#: ../libbanshee/gst-transcode-0.10.c:258
++#: ../libbanshee/gst-transcode-0.10.c:249
+ msgid "Could not create 'gnomevfssrc' plugin"
+-msgstr ""
++msgstr "Impossibile creare il plugin 'gnomevfssrc'"
+
+-#: ../libbanshee/gst-transcode-0.10.c:264
++#: ../libbanshee/gst-transcode-0.10.c:255
+ msgid "Could not create 'decodebin' plugin"
+-msgstr ""
++msgstr "Impossibile creare il plugin 'decodebin'"
+
+-#: ../libbanshee/gst-transcode-0.10.c:270
++#: ../libbanshee/gst-transcode-0.10.c:261
+ msgid "Could not create 'gnomevfssink' plugin"
+-msgstr ""
++msgstr "Impossibile creare il plugin 'gnomevfssink'"
+
+-#: ../libbanshee/gst-transcode-0.10.c:276
++#: ../libbanshee/gst-transcode-0.10.c:267
+ msgid "Could not create 'sinkben' plugin"
+-msgstr ""
++msgstr "Impossibile creare il plugin 'sinkben'"
+
+-#: ../libbanshee/gst-transcode-0.10.c:282
++#: ../libbanshee/gst-transcode-0.10.c:273
+ msgid "Could not create 'audioconvert' plugin"
+-msgstr ""
++msgstr "Impossibile creare il plugin 'audioconvert'"
+
+-#: ../libbanshee/gst-transcode-0.10.c:288
++#: ../libbanshee/gst-transcode-0.10.c:279
+ msgid "Could not create encoding pipeline"
+-msgstr ""
++msgstr "Impossibile creare il canale di codifica"
+
+-#: ../libbanshee/gst-transcode-0.10.c:294
++#: ../libbanshee/gst-transcode-0.10.c:285
+ msgid "Could not get sink pad from encoder"
+-msgstr ""
++msgstr "Impossibile connettersi alla fonte pad del codificatore"
+
+-#: ../libbanshee/gst-transcode-0.10.c:377
++#: ../libbanshee/gst-transcode-0.10.c:368
+ msgid "Could not construct pipeline"
+-msgstr ""
++msgstr "Impossibile creare la pipeline"
+
+-#: ../src/Banshee.Base/ActionManager.cs:65
++#: ../src/Core/Banshee/banshee-interface.schemas.in.h:1
++msgid "Order"
++msgstr "Disponi"
++
++#: ../src/Core/Banshee/banshee-interface.schemas.in.h:2
++msgid "Order of Album column"
++msgstr "Disposizione della colonna Album"
++
++#: ../src/Core/Banshee/banshee-interface.schemas.in.h:3
++msgid "Order of Artist column"
++msgstr "Disposizione della colonna Artista"
++
++#: ../src/Core/Banshee/banshee-interface.schemas.in.h:4
++msgid "Order of Date Added column"
++msgstr "Disposizione colonna Data di aggiunta"
++
++#: ../src/Core/Banshee/banshee-interface.schemas.in.h:5
++msgid "Order of Genre column"
++msgstr "Disposizione della colonna Genere"
++
++#: ../src/Core/Banshee/banshee-interface.schemas.in.h:6
++msgid "Order of Last Played column"
++msgstr "Disposizione della colonna Ultima riproduzione"
++
++#: ../src/Core/Banshee/banshee-interface.schemas.in.h:7
++msgid "Order of Play Count column"
++msgstr "Disposizione della colonna Numero di passaggi"
++
++#: ../src/Core/Banshee/banshee-interface.schemas.in.h:8
++msgid "Order of Rating column"
++msgstr "Disposizione della colonna Giudizio"
++
++#: ../src/Core/Banshee/banshee-interface.schemas.in.h:9
++msgid "Order of Time column"
++msgstr "Disposizione della colonna Durata"
++
++#: ../src/Core/Banshee/banshee-interface.schemas.in.h:10
++msgid "Order of Title column"
++msgstr "Disposizione della colonna Titolo"
++
++#: ../src/Core/Banshee/banshee-interface.schemas.in.h:11
++msgid "Order of Track column"
++msgstr "Disposizione della colonna Traccia"
++
++#: ../src/Core/Banshee/banshee-interface.schemas.in.h:12
++msgid "Order of Uri column"
++msgstr "Disposizione della colonna Uri"
++
++#: ../src/Core/Banshee/banshee-interface.schemas.in.h:13
++msgid "Order of Year column"
++msgstr "Disposizione della colonna Anno"
++
++#: ../src/Core/Banshee/banshee-interface.schemas.in.h:14
++msgid "Visibility of Album column"
++msgstr "Visibilità della colonna Album"
++
++#: ../src/Core/Banshee/banshee-interface.schemas.in.h:15
++msgid "Visibility of Artist column"
++msgstr "Visibilità della colonna Artista"
++
++#: ../src/Core/Banshee/banshee-interface.schemas.in.h:16
++msgid "Visibility of Date Added column"
++msgstr "Visibilità della colonna Data importazione"
++
++#: ../src/Core/Banshee/banshee-interface.schemas.in.h:17
++msgid "Visibility of Genre column"
++msgstr "Visibilità della colonna Genere"
++
++#: ../src/Core/Banshee/banshee-interface.schemas.in.h:18
++msgid "Visibility of Last Played column"
++msgstr "Visibilità della colonna Ultima riproduzione"
++
++#: ../src/Core/Banshee/banshee-interface.schemas.in.h:19
++msgid "Visibility of Play Count column"
++msgstr "Visibilità della colonna Numero di passaggi"
++
++#: ../src/Core/Banshee/banshee-interface.schemas.in.h:20
++msgid "Visibility of Rating column"
++msgstr "Visibilità della colonna Giudizio"
++
++#: ../src/Core/Banshee/banshee-interface.schemas.in.h:21
++msgid "Visibility of Time column"
++msgstr "Visibilità della colonna Durata"
++
++#: ../src/Core/Banshee/banshee-interface.schemas.in.h:22
++msgid "Visibility of Title column"
++msgstr "Visibilità della colonna Titolo"
++
++#: ../src/Core/Banshee/banshee-interface.schemas.in.h:23
++msgid "Visibility of Track column"
++msgstr "Visibilità della colonna Traccia"
++
++#: ../src/Core/Banshee/banshee-interface.schemas.in.h:24
++msgid "Visibility of Uri column"
++msgstr "Visibilità della colonna Uri"
++
++#: ../src/Core/Banshee/banshee-interface.schemas.in.h:25
++msgid "Visibility of Year column"
++msgstr "Visibilità della colonna Anno"
++
++#: ../src/Core/Banshee/banshee-interface.schemas.in.h:26
++msgid "Visiblity"
++msgstr "Visibilità "
++
++#: ../src/Core/Banshee/banshee-interface.schemas.in.h:27
++msgid "Width"
++msgstr "Larghezza"
++
++#: ../src/Core/Banshee/banshee-interface.schemas.in.h:28
++msgid "Width of Album column"
++msgstr "Larghezza della colonna Album"
++
++#: ../src/Core/Banshee/banshee-interface.schemas.in.h:29
++msgid "Width of Artist column"
++msgstr "Larghezza della colonna Artista"
++
++#: ../src/Core/Banshee/banshee-interface.schemas.in.h:30
++msgid "Width of Date Added column"
++msgstr "Larghezza della colonna Data importazione"
++
++#: ../src/Core/Banshee/banshee-interface.schemas.in.h:31
++msgid "Width of Genre column"
++msgstr "Larghezza della colonna Genere"
++
++#: ../src/Core/Banshee/banshee-interface.schemas.in.h:32
++msgid "Width of Last Played column"
++msgstr "Larghezza della colonna Ultima riproduzione"
++
++#: ../src/Core/Banshee/banshee-interface.schemas.in.h:33
++msgid "Width of Play Count column"
++msgstr "Larghezza della colonna Numero di passaggi"
++
++#: ../src/Core/Banshee/banshee-interface.schemas.in.h:34
++msgid "Width of Time column"
++msgstr "Larghezza della colonna Durata"
++
++#: ../src/Core/Banshee/banshee-interface.schemas.in.h:35
++msgid "Width of Title column"
++msgstr "Larghezza della colonna Titolo"
++
++#: ../src/Core/Banshee/banshee-interface.schemas.in.h:36
++msgid "Width of Uri column"
++msgstr "Larghezza della colonna Uri"
++
++#: ../src/Core/Banshee/banshee-interface.schemas.in.h:37
++msgid "Width of Year column"
++msgstr "Larghezza della colonna Anno"
++
++#: ../src/Core/Banshee/Banshee.TrackView.Columns/AlbumColumn.cs:42
++#: ../src/Core/Banshee.Base/Banshee.SmartPlaylist/QueryBuilderModel.cs:46
++#: ../src/Core/Banshee.Base/Banshee.SmartPlaylist/QueryBuilderModel.cs:788
++#: ../src/Core/Banshee.Base/FileNamePattern.cs:91
++msgid "Album"
++msgstr "Album"
++
++#: ../src/Core/Banshee/Banshee.TrackView.Columns/ArtistColumn.cs:42
++#: ../src/Core/Banshee.Base/Banshee.SmartPlaylist/QueryBuilderModel.cs:47
++#: ../src/Core/Banshee.Base/Banshee.SmartPlaylist/QueryBuilderModel.cs:786
++#: ../src/Core/Banshee.Base/FileNamePattern.cs:86
++msgid "Artist"
++msgstr "Artista"
++
++#: ../src/Core/Banshee/Banshee.TrackView.Columns/DateAddedColumn.cs:42
++#: ../src/Core/Banshee.Base/Banshee.SmartPlaylist/QueryBuilderModel.cs:790
++msgid "Date Added"
++msgstr "Data di aggiunta"
++
++#: ../src/Core/Banshee/Banshee.TrackView.Columns/DurationColumn.cs:42
++msgid "Time"
++msgstr "Durata"
++
++#: ../src/Core/Banshee/Banshee.TrackView.Columns/DurationColumn.cs:56
++msgid "N/A"
++msgstr "N/D"
++
++#: ../src/Core/Banshee/Banshee.TrackView.Columns/GenreColumn.cs:42
++#: ../src/Core/Banshee.Base/Banshee.SmartPlaylist/QueryBuilderModel.cs:48
++#: ../src/Core/Banshee.Base/Banshee.SmartPlaylist/QueryBuilderModel.cs:789
++#: ../src/Core/Banshee/PlayerInterface.cs:475
++msgid "Genre"
++msgstr "Genere"
++
++#: ../src/Core/Banshee/Banshee.TrackView.Columns/LastPlayedColumn.cs:42
++#: ../src/Core/Banshee.Base/Banshee.SmartPlaylist/QueryBuilderModel.cs:791
++msgid "Last Played"
++msgstr "Ultima riproduzione"
++
++#: ../src/Core/Banshee/Banshee.TrackView.Columns/PlayCountColumn.cs:42
++msgid "Plays"
++msgstr "Passaggi"
++
++#: ../src/Core/Banshee/Banshee.TrackView.Columns/RatingColumn.cs:43
++#: ../src/Core/Banshee.Base/Banshee.SmartPlaylist/QueryBuilderModel.cs:814
++msgid "Rating"
++msgstr "Giudizio"
++
++#: ../src/Core/Banshee/Banshee.TrackView.Columns/TitleColumn.cs:42
++#: ../src/Core/Banshee.Base/Banshee.SmartPlaylist/QueryBuilderModel.cs:49
++#: ../src/Core/Banshee.Base/Banshee.SmartPlaylist/QueryBuilderModel.cs:787
++#: ../src/Core/Banshee.Base/FileNamePattern.cs:96
++msgid "Title"
++msgstr "Titolo"
++
++#: ../src/Core/Banshee/Banshee.TrackView.Columns/TitleColumn.cs:59
++#: ../src/Plugins/Banshee.Plugins.Radio/CellRendererStation.cs:126
++msgid "Missing"
++msgstr "Mancante"
++
++#: ../src/Core/Banshee/Banshee.TrackView.Columns/TitleColumn.cs:65
++#: ../src/Plugins/Banshee.Plugins.Radio/CellRendererStation.cs:129
++msgid "No Codec"
++msgstr "Nessun codec"
++
++#: ../src/Core/Banshee/Banshee.TrackView.Columns/TitleColumn.cs:68
++#: ../src/Engines/Banshee.MediaEngine.GStreamer/GstPlayerEngine.cs:229
++#: ../src/Plugins/Banshee.Plugins.Radio/CellRendererStation.cs:132
++msgid "Unknown Error"
++msgstr "Errore sconosciuto"
++
++#: ../src/Core/Banshee/Banshee.TrackView.Columns/TrackNumberColumn.cs:42
++msgid "Track"
++msgstr "Traccia"
++
++#: ../src/Core/Banshee/Banshee.TrackView.Columns/TrackViewColumn.cs:141
++msgid "Columns..."
++msgstr "Colonne..."
++
++#. Translators: {0} is the title of the column, e.g. 'Hide Artist'
++#: ../src/Core/Banshee/Banshee.TrackView.Columns/TrackViewColumn.cs:144
++#, csharp-format
++msgid "Hide {0}"
++msgstr "Nascondi {0}"
++
++#: ../src/Core/Banshee/Banshee.TrackView.Columns/UriColumn.cs:42
++msgid "Location"
++msgstr "Posizione"
++
++#: ../src/Core/Banshee/Banshee.TrackView.Columns/YearColumn.cs:42
++#: ../src/Core/Banshee.Base/Banshee.SmartPlaylist/QueryBuilderModel.cs:816
++#: ../src/Core/Banshee.Base/FileNamePattern.cs:121
++#: ../src/Core/Banshee/PlayerInterface.cs:476
++msgid "Year"
++msgstr "Anno"
++
++#: ../src/Core/Banshee.Base/ActionManager.cs:65
+ msgid "_Music"
+ msgstr "_Musica"
+
+-#: ../src/Banshee.Base/ActionManager.cs:68
+-#: ../src/Banshee.Base/Sources/PlaylistSource.cs:76
+-#: ../src/Banshee.Base/Sources/PlaylistSource.cs:438
+-#: ../src/Banshee.Base/Sources/PlaylistSource.cs:444
+-#: ../src/PlayerInterface.cs:1572
+-msgid "New Playlist"
+-msgstr "Nuova scaletta"
++#: ../src/Core/Banshee.Base/ActionManager.cs:68
++msgid "_New Playlist"
++msgstr "_Nuova scaletta"
+
+-#: ../src/Banshee.Base/ActionManager.cs:69
++#: ../src/Core/Banshee.Base/ActionManager.cs:69
+ msgid "Create a new empty playlist"
+ msgstr "Crea una nuova scaletta vuota"
+
+-#: ../src/Banshee.Base/ActionManager.cs:72
++#: ../src/Core/Banshee.Base/ActionManager.cs:72
+ msgid "Import _Folder..."
+ msgstr "Importa _cartella..."
+
+-#: ../src/Banshee.Base/ActionManager.cs:73
++#: ../src/Core/Banshee.Base/ActionManager.cs:73
+ msgid "Import the contents of an entire folder"
+ msgstr "Importa il contenuto di una intera cartella"
+
+-#: ../src/Banshee.Base/ActionManager.cs:76
++#: ../src/Core/Banshee.Base/ActionManager.cs:76
+ msgid "Import Files..."
+ msgstr "Importa file..."
+
+-#: ../src/Banshee.Base/ActionManager.cs:77
++#: ../src/Core/Banshee.Base/ActionManager.cs:77
+ msgid "Import files inside a folder"
+ msgstr "Importa i file all'interno di una cartella"
+
+-#: ../src/Banshee.Base/ActionManager.cs:80
+-msgid "Import Music..."
+-msgstr "Importa musica..."
++#: ../src/Core/Banshee.Base/ActionManager.cs:80
++msgid "Import _Music..."
++msgstr "Importa _musica..."
+
+-#: ../src/Banshee.Base/ActionManager.cs:81
++#: ../src/Core/Banshee.Base/ActionManager.cs:81
+ msgid "Import music from a variety of sources"
+-msgstr "Importa della musica da sorgenti diverse"
++msgstr "Importa musica da sorgenti diverse"
+
+-#: ../src/Banshee.Base/ActionManager.cs:84
+-msgid "Open Location..."
+-msgstr "Apri posizione..."
++#: ../src/Core/Banshee.Base/ActionManager.cs:84
++msgid "Open _Location..."
++msgstr "Apri _posizione..."
+
+-#: ../src/Banshee.Base/ActionManager.cs:85
++#: ../src/Core/Banshee.Base/ActionManager.cs:85
+ msgid "Open a remote location for playback"
+ msgstr "Apre una posizione remota per la riproduzione"
+
+-#: ../src/Banshee.Base/ActionManager.cs:88
++#: ../src/Core/Banshee.Base/ActionManager.cs:88
+ msgid "Write CD"
+ msgstr "Scrivi CD"
+
+-#: ../src/Banshee.Base/ActionManager.cs:89
++#: ../src/Core/Banshee.Base/ActionManager.cs:89
+ msgid "Write selection to audio CD"
+ msgstr "Scrive la selezione su un CD audio"
+
+-#: ../src/Banshee.Base/ActionManager.cs:92
++#: ../src/Core/Banshee.Base/ActionManager.cs:92
+ msgid "Import Source"
+ msgstr "Importa sorgente"
+
+-#: ../src/Banshee.Base/ActionManager.cs:93
++#: ../src/Core/Banshee.Base/ActionManager.cs:93
+ msgid "Import source to library"
+ msgstr "Importa una sorgente nella libreria"
+
+-#: ../src/Banshee.Base/ActionManager.cs:96
+-msgid "Source Properties..."
+-msgstr "Proprietà sorgente..."
++#: ../src/Core/Banshee.Base/ActionManager.cs:100
++msgid "User Scripts"
++msgstr "Script utente"
+
+-#: ../src/Banshee.Base/ActionManager.cs:97
+-msgid "View source properties"
+-msgstr "Visualizza le proprietà della sorgente"
++#: ../src/Core/Banshee.Base/ActionManager.cs:101
++msgid "Run available user scripts"
++msgstr "Avvia script utente disponibili"
+
+-#: ../src/Banshee.Base/ActionManager.cs:100
++#: ../src/Core/Banshee.Base/ActionManager.cs:104
+ msgid "_Quit"
+ msgstr "_Esci"
+
+-#: ../src/Banshee.Base/ActionManager.cs:101
++#: ../src/Core/Banshee.Base/ActionManager.cs:105
+ msgid "Quit Banshee"
+ msgstr "Esce da Banshee"
+
+-#: ../src/Banshee.Base/ActionManager.cs:104
++#: ../src/Core/Banshee.Base/ActionManager.cs:108
+ msgid "_Edit"
+ msgstr "_Modifica"
+
+-#: ../src/Banshee.Base/ActionManager.cs:115
+-msgid "Select All"
+-msgstr "Seleziona tutto"
++#: ../src/Core/Banshee.Base/ActionManager.cs:119
++msgid "Select _All"
++msgstr "Seleziona _tutto"
+
+-#: ../src/Banshee.Base/ActionManager.cs:116
++#: ../src/Core/Banshee.Base/ActionManager.cs:120
+ msgid "Select all songs in song list"
+-msgstr "Seleziona tutte le canzoni nell'elenco delle canzoni"
++msgstr "Seleziona tutte le tracce nell'elenco delle canzoni"
+
+-#: ../src/Banshee.Base/ActionManager.cs:119
+-msgid "Select None"
+-msgstr "Deseleziona tutto"
++#: ../src/Core/Banshee.Base/ActionManager.cs:123
++msgid "Select _None"
++msgstr "Deseleziona _tutto"
+
+-#: ../src/Banshee.Base/ActionManager.cs:120
++#: ../src/Core/Banshee.Base/ActionManager.cs:124
+ msgid "Unselect all songs in song list"
+-msgstr "Deseleziona tutte le canzoni nell'elenco di canzoni"
++msgstr "Deseleziona tutte le tracce nell'elenco di canzoni"
+
+-#: ../src/Banshee.Base/ActionManager.cs:123
+-msgid "Jump to playing song"
+-msgstr "Salta alla canzone in riproduzione"
++#: ../src/Core/Banshee.Base/ActionManager.cs:127
++msgid "_Jump to playing song"
++msgstr "_Salta alla traccia in riproduzione"
+
+-#: ../src/Banshee.Base/ActionManager.cs:127
+-msgid "Plugins..."
+-msgstr "Plugins..."
++#: ../src/Core/Banshee.Base/ActionManager.cs:131
++msgid "Plu_gins..."
++msgstr "Plu_gin..."
+
+-#: ../src/Banshee.Base/ActionManager.cs:128
++#: ../src/Core/Banshee.Base/ActionManager.cs:132
+ msgid "Configure Banshee plugins"
+ msgstr "Configura i plugin di Banshee"
+
+-#: ../src/Banshee.Base/ActionManager.cs:133
++#: ../src/Core/Banshee.Base/ActionManager.cs:137
++msgid "_Tools"
++msgstr "_Strumenti"
++
++#: ../src/Core/Banshee.Base/ActionManager.cs:140
+ msgid "_View"
+ msgstr "_Visualizza"
+
+-#: ../src/Banshee.Base/ActionManager.cs:136
+-msgid "Columns..."
+-msgstr "Colonne..."
++#: ../src/Core/Banshee.Base/ActionManager.cs:143
++msgid "_Columns..."
++msgstr "_Colonne..."
+
+-#: ../src/Banshee.Base/ActionManager.cs:137
++#: ../src/Core/Banshee.Base/ActionManager.cs:144
+ msgid "Select which columns to display in the song list"
+-msgstr "Seleziona quali colonne visualizzare nell'elenco delle canzoni"
++msgstr "Seleziona quali colonne visualizzare nell'elenco delle tracce"
+
+-#: ../src/Banshee.Base/ActionManager.cs:141
++#: ../src/Core/Banshee.Base/ActionManager.cs:147
++msgid "_Boo Buddy..."
++msgstr "_Boo Buddy..."
++
++#: ../src/Core/Banshee.Base/ActionManager.cs:148
++msgid "Open Boo Buddy"
++msgstr "Apri Boo buddy"
++
++#: ../src/Core/Banshee.Base/ActionManager.cs:155
+ msgid "Display the equalizer."
+ msgstr "Mostra l'equalizzatore."
+
+-#: ../src/Banshee.Base/ActionManager.cs:144
+-msgid "Logged Events Viewer..."
+-msgstr "Visualizzatore eventi registrati..."
++#: ../src/Core/Banshee.Base/ActionManager.cs:158
++msgid "_Logged Events Viewer..."
++msgstr "Visualizzatore _eventi registrati..."
+
+-#: ../src/Banshee.Base/ActionManager.cs:145
++#: ../src/Core/Banshee.Base/ActionManager.cs:159
+ msgid "View a detailed log of events"
+ msgstr "Visualizza un registro dettagliato degli eventi"
+
+-#: ../src/Banshee.Base/ActionManager.cs:148
++#: ../src/Core/Banshee.Base/ActionManager.cs:162
+ msgid "_Help"
+-msgstr "A_iuto"
++msgstr "_Aiuto"
+
+-#: ../src/Banshee.Base/ActionManager.cs:151
+-msgid "Version Information..."
+-msgstr "Informazioni versione..."
++#: ../src/Core/Banshee.Base/ActionManager.cs:165
++msgid "_Version Information..."
++msgstr "Informazioni _versione..."
+
+-#: ../src/Banshee.Base/ActionManager.cs:152
++#: ../src/Core/Banshee.Base/ActionManager.cs:166
+ msgid "View detailed version and configuration information"
+ msgstr ""
+ "Visualizza informazioni dettagliate sulla versione e sulla configurazione"
+
+-#: ../src/Banshee.Base/ActionManager.cs:155
+-msgid "Web Resources"
+-msgstr "Risorse web"
++#: ../src/Core/Banshee.Base/ActionManager.cs:169
++msgid "_Web Resources"
++msgstr "Risorse in _rete"
+
+-#: ../src/Banshee.Base/ActionManager.cs:158
+-msgid "Banshee User Guide (Wiki)"
+-msgstr "Guida utente di Banshee (wiki)"
++#: ../src/Core/Banshee.Base/ActionManager.cs:172
++msgid "Banshee _User Guide (Wiki)"
++msgstr "Guida _utente di Banshee (wiki)"
+
+-#: ../src/Banshee.Base/ActionManager.cs:159
++#: ../src/Core/Banshee.Base/ActionManager.cs:173
+ msgid "Learn about how to use Banshee"
+ msgstr "Per imparare a usare Banshee"
+
+-#: ../src/Banshee.Base/ActionManager.cs:164
+-msgid "Banshee Home Page"
+-msgstr "Homepage di Banshee"
++#: ../src/Core/Banshee.Base/ActionManager.cs:178
++msgid "Banshee _Home Page"
++msgstr "Pagina web di Banshee"
+
+-#: ../src/Banshee.Base/ActionManager.cs:165
++#: ../src/Core/Banshee.Base/ActionManager.cs:179
+ msgid "Visit the Banshee Home Page"
+ msgstr "Per visitare la homepage di Banshee"
+
+-#: ../src/Banshee.Base/ActionManager.cs:170
+-msgid "Get Involved"
+-msgstr "Partecipare"
++#: ../src/Core/Banshee.Base/ActionManager.cs:184
++msgid "_Get Involved"
++msgstr "_Contribuire"
+
+-#: ../src/Banshee.Base/ActionManager.cs:171
++#: ../src/Core/Banshee.Base/ActionManager.cs:185
+ msgid "Become a contributor to Banshee"
+ msgstr "Per diventare un contributore di Banshee"
+
+-#: ../src/Banshee.Base/ActionManager.cs:178
++#: ../src/Core/Banshee.Base/ActionManager.cs:192
+ msgid "_Playback"
+-msgstr "_Controlli"
++msgstr "_Riproduci"
+
+ #. Translators: Source being the generic word for playlist, device, library, etc
+-#: ../src/Banshee.Base/ActionManager.cs:181
+-#: ../src/Banshee.Base/Gui/SourceView.cs:102 ../src/Banshee.Base/Source.cs:289
++#: ../src/Core/Banshee.Base/ActionManager.cs:195
++#: ../src/Core/Banshee.Base/Gui/SourceView.cs:105
++#: ../src/Core/Banshee.Base/Source.cs:323
+ msgid "Source"
+ msgstr "Sorgente"
+
+-#: ../src/Banshee.Base/ActionManager.cs:184
++#: ../src/Core/Banshee.Base/ActionManager.cs:198
+ msgid "Song Menu"
+-msgstr "Menù canzone"
++msgstr "Menù traccia"
+
+-#: ../src/Banshee.Base/ActionManager.cs:187
+-msgid "Debug"
+-msgstr "Debug"
++#: ../src/Core/Banshee.Base/ActionManager.cs:201
++msgid "_Debug"
++msgstr "_Debug"
+
+-#: ../src/Banshee.Base/ActionManager.cs:192
+-msgid "Fullscreen"
+-msgstr "Schermo intero"
++#: ../src/Core/Banshee.Base/ActionManager.cs:204
++msgid "Import Playlist..."
++msgstr "Importa scaletta..."
+
+-#: ../src/Banshee.Base/ActionManager.cs:193
++#: ../src/Core/Banshee.Base/ActionManager.cs:205
++msgid "Import a playlist"
++msgstr "Importa una scaletta"
++
++#: ../src/Core/Banshee.Base/ActionManager.cs:208
++msgid "Export Playlist..."
++msgstr "Esporta scaletta..."
++
++#: ../src/Core/Banshee.Base/ActionManager.cs:209
++msgid "Export a playlist"
++msgstr "Esporta la scaletta"
++
++#: ../src/Core/Banshee.Base/ActionManager.cs:214
++msgid "_Fullscreen"
++msgstr "_Schermo intero"
++
++#: ../src/Core/Banshee.Base/ActionManager.cs:215
+ msgid "Toggle Fullscreen Mode"
+ msgstr "Commuta modalità a tutto schermo"
+
+-#: ../src/Banshee.Base/ActionManager.cs:196
+-msgid "Show Cover Art"
+-msgstr "Mostra la copertina"
++#: ../src/Core/Banshee.Base/ActionManager.cs:218
++msgid "Show Cover _Art"
++msgstr "Mostra la _copertina"
+
+-#: ../src/Banshee.Base/ActionManager.cs:197
++#: ../src/Core/Banshee.Base/ActionManager.cs:219
+ msgid "Toggle display of album cover art"
+ msgstr "Commuta la visualizzazione delle copertine degli album"
+
+-#: ../src/Banshee.Base/ActionManager.cs:208
+-msgid "Remove Song(s)"
+-msgstr "Rimuovi canzoni"
++#: ../src/Core/Banshee.Base/ActionManager.cs:230
++msgid "_Copy"
++msgstr "_Copia"
+
+-#: ../src/Banshee.Base/ActionManager.cs:209
++#: ../src/Core/Banshee.Base/ActionManager.cs:231
++msgid "Copy selected song(s) to clipboard"
++msgstr "Elimina la o le tracce selezionate nella clipboard"
++
++#: ../src/Core/Banshee.Base/ActionManager.cs:234
++msgid "_Remove"
++msgstr "_Rimuovi"
++
++#: ../src/Core/Banshee.Base/ActionManager.cs:235
+ msgid "Remove selected song(s) from library"
+-msgstr "Elimina la o le canzoni selezionate dalla libreria"
++msgstr "Elimina la o le tracce selezionate dalla libreria"
+
+-#: ../src/Banshee.Base/ActionManager.cs:212
+-msgid "Delete Song(s) From Drive"
+-msgstr "Elimina canzoni dall'unità "
++#: ../src/Core/Banshee.Base/ActionManager.cs:238
++msgid "_Delete From Drive"
++msgstr "_Elimina dall'unità "
+
+-#: ../src/Banshee.Base/ActionManager.cs:213
++#: ../src/Core/Banshee.Base/ActionManager.cs:239
+ msgid "Permanently delete selected song(s) from storage medium"
+ msgstr ""
+-"Elimina permanentemente la o le canzoni selezionate dal supporto di "
++"Elimina permanentemente la o le tracce selezionate dal supporto di "
+ "memorizzazione"
+
+-#: ../src/Banshee.Base/ActionManager.cs:216
+-msgid "Edit Song Metadata"
+-msgstr "Modifica metadati canzone"
++#: ../src/Core/Banshee.Base/ActionManager.cs:242
++msgid "_Edit Song Metadata"
++msgstr "_Modifica metadati traccia"
+
+-#: ../src/Banshee.Base/ActionManager.cs:217
++#: ../src/Core/Banshee.Base/ActionManager.cs:243
+ msgid "Edit metadata on selected songs"
+-msgstr "Modifica i metadati delle canzoni selezionate"
++msgstr "Modifica i metadati delle tracce selezionate"
+
+-#: ../src/Banshee.Base/ActionManager.cs:220
+-msgid "Search for songs"
+-msgstr "Ricerca canzoni"
++#: ../src/Core/Banshee.Base/ActionManager.cs:246
++msgid "_Search for Songs"
++msgstr "_Ricerca per tracce"
+
+-#: ../src/Banshee.Base/ActionManager.cs:221
++#: ../src/Core/Banshee.Base/ActionManager.cs:247
+ msgid "Search for songs matching certain criteria"
+-msgstr "Ricerca le canzoni che corrispondono a certi criteri"
++msgstr "Ricerca le tracce che corrispondono a certi criteri"
+
+-#: ../src/Banshee.Base/ActionManager.cs:224
+-msgid "By matching album"
+-msgstr "Per album"
++#: ../src/Core/Banshee.Base/ActionManager.cs:250
++msgid "By Matching _Album"
++msgstr "Ordina per _album"
+
+-#: ../src/Banshee.Base/ActionManager.cs:225
++#: ../src/Core/Banshee.Base/ActionManager.cs:251
+ msgid "Search all songs of this album"
+-msgstr "Cerca tutte le canzoni di questo album"
++msgstr "Cerca tutte le tracce di questo album"
+
+-#: ../src/Banshee.Base/ActionManager.cs:228
+-msgid "By matching artist"
+-msgstr "Per artista"
++#: ../src/Core/Banshee.Base/ActionManager.cs:254
++msgid "By Matching A_rtist"
++msgstr "Ordina per a_rtista"
+
+-#: ../src/Banshee.Base/ActionManager.cs:229
++#: ../src/Core/Banshee.Base/ActionManager.cs:255
+ msgid "Search all songs of this artist"
+ msgstr "Cerca tutte le canzoni di questo artista"
+
+-#: ../src/Banshee.Base/ActionManager.cs:232
+-msgid "By matching genre"
+-msgstr "Per genere"
++#: ../src/Core/Banshee.Base/ActionManager.cs:258
++msgid "By Matching _Genre"
++msgstr "Ordina per _genere"
+
+-#: ../src/Banshee.Base/ActionManager.cs:233
++#: ../src/Core/Banshee.Base/ActionManager.cs:259
+ msgid "Search all songs of this genre"
+ msgstr "Cerca tutte le canzoni di questo genere"
+
+-#: ../src/Banshee.Base/ActionManager.cs:236
+-msgid "Add to Playlist"
+-msgstr "Aggiungi alla scaletta"
++#: ../src/Core/Banshee.Base/ActionManager.cs:262
++msgid "Add _to Playlist"
++msgstr "Aggiungi _alla scaletta"
+
+-#: ../src/Banshee.Base/ActionManager.cs:237
++#: ../src/Core/Banshee.Base/ActionManager.cs:263
+ msgid "Append selected songs to playlist or create new playlist from selection"
+ msgstr ""
+-"Accoda le canzoni selezionate alla scaletta oppure crea una nuova scaletta "
++"Accoda le tracce selezionate alla scaletta oppure crea una nuova scaletta "
+ "dalla selezione"
+
+-#: ../src/Banshee.Base/ActionManager.cs:240
+-#: ../src/Banshee.Base/Banshee.SmartPlaylist/QueryBuilderModel.cs:716
+-#: ../src/PlaylistView.cs:124
+-msgid "Rating"
+-msgstr "Giudizio"
+-
+-#: ../src/Banshee.Base/ActionManager.cs:241
+-msgid "Set rating for selected songs"
+-msgstr "Imposta il giudizio delle canzoni selezionate"
+-
+-#: ../src/Banshee.Base/ActionManager.cs:250
++#: ../src/Core/Banshee.Base/ActionManager.cs:272
+ msgid "Import CD"
+ msgstr "Importa CD"
+
+-#: ../src/Banshee.Base/ActionManager.cs:251
++#: ../src/Core/Banshee.Base/ActionManager.cs:273
+ msgid "Import audio CD to library"
+ msgstr "Importa un audio CD nella libreria"
+
+-#: ../src/Banshee.Base/ActionManager.cs:260 ../src/PlayerInterface.cs:805
+-#: ../src/PlayerInterface.cs:813
+-msgid "Play"
+-msgstr "Riproduci"
++#: ../src/Core/Banshee.Base/ActionManager.cs:282
++msgid "_Play"
++msgstr "_Riproduci"
+
+-#: ../src/Banshee.Base/ActionManager.cs:261
++#: ../src/Core/Banshee.Base/ActionManager.cs:283
+ msgid "Play or pause the current song"
+-msgstr "Riproduce o mette in pausa la canzone corrente"
++msgstr "Riproduci o mette in pausa la traccia corrente"
+
+-#: ../src/Banshee.Base/ActionManager.cs:264
+-msgid "Next"
+-msgstr "Successiva"
++#: ../src/Core/Banshee.Base/ActionManager.cs:286
++msgid "_Next"
++msgstr "_Successiva"
+
+-#: ../src/Banshee.Base/ActionManager.cs:265
++#: ../src/Core/Banshee.Base/ActionManager.cs:287
+ msgid "Play the next song"
+-msgstr "Riproduce la canzone successiva"
++msgstr "Riproduci la traccia successiva"
+
+-#: ../src/Banshee.Base/ActionManager.cs:268
+-msgid "Previous"
+-msgstr "Precedente"
++#: ../src/Core/Banshee.Base/ActionManager.cs:290
++msgid "Pre_vious"
++msgstr "Pre_cedente"
+
+-#: ../src/Banshee.Base/ActionManager.cs:269
++#: ../src/Core/Banshee.Base/ActionManager.cs:291
+ msgid "Play the previous song"
+-msgstr "Riproduce la canzone precedente"
++msgstr "Riproduci la traccia precedente"
+
+-#: ../src/Banshee.Base/ActionManager.cs:274
+-#: ../src/Banshee.Base/Gui/ToggleStates.cs:40
+-msgid "Repeat None"
+-msgstr "Non ripetere"
++#: ../src/Core/Banshee.Base/ActionManager.cs:296
++msgid "Repeat N_one"
++msgstr "N_on ripetere"
+
+-#: ../src/Banshee.Base/ActionManager.cs:275
++#: ../src/Core/Banshee.Base/ActionManager.cs:297
+ msgid "Do not repeat playlist"
+ msgstr "Non ripetere la scaletta"
+
+-#: ../src/Banshee.Base/ActionManager.cs:278
+-#: ../src/Banshee.Base/Gui/ToggleStates.cs:58
+-msgid "Repeat All"
+-msgstr "Ripeti tutte"
++#: ../src/Core/Banshee.Base/ActionManager.cs:300
++msgid "Repeat _All"
++msgstr "Ripeti _tutte"
+
+-#: ../src/Banshee.Base/ActionManager.cs:279
++#: ../src/Core/Banshee.Base/ActionManager.cs:301
+ msgid "Play all songs before repeating playlist"
+-msgstr "Riproduce tutte le canzoni prima di ripetere la scaletta"
++msgstr "Riproduci tutte le tracce prima di ripetere la scaletta"
+
+-#: ../src/Banshee.Base/ActionManager.cs:282
+-#: ../src/Banshee.Base/Gui/ToggleStates.cs:49
+-msgid "Repeat Single"
+-msgstr "Ripeti singolo"
++#: ../src/Core/Banshee.Base/ActionManager.cs:304
++msgid "Repeat Si_ngle"
++msgstr "Ripeti si_ngolo"
+
+-#: ../src/Banshee.Base/ActionManager.cs:283
++#: ../src/Core/Banshee.Base/ActionManager.cs:305
+ msgid "Repeat the current playing song"
+-msgstr "Ripete la canzone attualmente in riproduzione"
++msgstr "Ripete la traccia attualmente in riproduzione"
+
+-#: ../src/Banshee.Base/ActionManager.cs:288
+-#: ../src/Banshee.Base/Gui/ToggleStates.cs:67
+-msgid "Shuffle"
+-msgstr "Casuale"
++#: ../src/Core/Banshee.Base/ActionManager.cs:310
++msgid "Shu_ffle"
++msgstr "Ca_suale"
+
+-#: ../src/Banshee.Base/ActionManager.cs:289
++#: ../src/Core/Banshee.Base/ActionManager.cs:311
+ msgid "Toggle between shuffle or continuous playback modes"
+ msgstr "Commuta tra la modalità di riproduzione casuale oppure continua"
+
+-#: ../src/Banshee.Base/ActionManager.cs:292
+-msgid "Stop when finished"
+-msgstr "Ferma al termine"
++#: ../src/Core/Banshee.Base/ActionManager.cs:314
++msgid "_Stop When Finished"
++msgstr "_Ferma al termine della traccia"
+
+-#: ../src/Banshee.Base/ActionManager.cs:293
++#: ../src/Core/Banshee.Base/ActionManager.cs:315
+ msgid "Stop playback after the current song finishes playing"
+-msgstr "Ferma la riproduzione dopo che la canzone corrente è terminata"
++msgstr "Ferma la riproduzione dopo che la traccia corrente è terminata"
+
+-#: ../src/Banshee.Base/ActionManager.cs:302
+-msgid "Seek Backward"
+-msgstr "Scorri avanti"
++#: ../src/Core/Banshee.Base/ActionManager.cs:324
++msgid "Seek _Backward"
++msgstr "Scorri _indietro"
+
+-#: ../src/Banshee.Base/ActionManager.cs:303
++#: ../src/Core/Banshee.Base/ActionManager.cs:325
+ msgid "Seek backward in current song"
+-msgstr "Scorre avanti nella canzone corrente"
++msgstr "Scorre avanti nella traccia corrente"
+
+-#: ../src/Banshee.Base/ActionManager.cs:306
+-msgid "Seek Forward"
+-msgstr "Scorri indietro"
++#: ../src/Core/Banshee.Base/ActionManager.cs:328
++msgid "Seek _Forward"
++msgstr "Scorri _avanti"
+
+-#: ../src/Banshee.Base/ActionManager.cs:307
++#: ../src/Core/Banshee.Base/ActionManager.cs:329
+ msgid "Seek forward in current song"
+-msgstr "Scorre indientro nella canzone corrente"
++msgstr "Scorre indientro nella traccia corrente"
+
+-#: ../src/Banshee.Base/ActionManager.cs:310
+-msgid "Seek To..."
+-msgstr "Scorri a..."
++#: ../src/Core/Banshee.Base/ActionManager.cs:332
++msgid "Seek _to..."
++msgstr "Scorri _a..."
+
+-#: ../src/Banshee.Base/ActionManager.cs:311
++#: ../src/Core/Banshee.Base/ActionManager.cs:333
+ msgid "Seek to a specific location in current song"
+-msgstr "Scorre a una specifica posizione nella canzone corrente"
++msgstr "Scorre a una specifica posizione nella traccia corrente"
+
+-#: ../src/Banshee.Base/ActionManager.cs:314
+-msgid "Restart Song"
+-msgstr "Riavvia canzone"
++#: ../src/Core/Banshee.Base/ActionManager.cs:336
++msgid "_Restart Song"
++msgstr "_Riavvia traccia"
+
+-#: ../src/Banshee.Base/ActionManager.cs:315
++#: ../src/Core/Banshee.Base/ActionManager.cs:337
+ msgid "Restart the current song"
+-msgstr "Riavvia la canzone in riproduzione"
++msgstr "Riavvia la traccia in riproduzione"
+
+-#: ../src/Banshee.Base/ActionManager.cs:324 ../src/PlayerInterface.cs:1065
++#: ../src/Core/Banshee.Base/ActionManager.cs:346
++#: ../src/Core/Banshee.Base/SourceManager.cs:276
+ msgid "Synchronize"
+ msgstr "Sincronizza"
+
+-#: ../src/Banshee.Base/ActionManager.cs:325
++#: ../src/Core/Banshee.Base/ActionManager.cs:347
+ msgid "Save changes to device or synchronize music library"
+ msgstr ""
+ "Salva i cambiamenti sul dispositivo oppure sincronizza libreria musicale"
+
+-#: ../src/Banshee.Base/AudioCd/AudioCdCore.cs:80
++#: ../src/Core/Banshee.Base/AudioCd/AudioCdCore.cs:80
+ msgid "HAL is not initialized"
+ msgstr "HAL non è stato inizializzato"
+
+-#: ../src/Banshee.Base/AudioCd/AudioCdCore.cs:86
++#: ../src/Core/Banshee.Base/AudioCd/AudioCdCore.cs:86
+ msgid "Audio CD Core Initialized"
+-msgstr "Core CD audio inizializzato"
++msgstr "Nucleo CD audio inizializzato"
+
+ #. work around mcs #76642
+-#: ../src/Banshee.Base/AudioCd/AudioCdCore.cs:103
++#: ../src/Core/Banshee.Base/AudioCd/AudioCdCore.cs:103
+ msgid "Could not Read Audio CD"
+ msgstr "Impossibile leggere il CD audio"
+
+-#: ../src/Banshee.Base/AudioCd/AudioCdDisk.cs:86
+-#: ../src/Banshee.Base/TrackInfo.cs:383
++#: ../src/Core/Banshee.Base/AudioCd/AudioCdDisk.cs:86
++#: ../src/Core/Banshee.Base/TrackInfo.cs:291
+ msgid "Unknown Artist"
+ msgstr "Artista sconosciuto"
+
+-#: ../src/Banshee.Base/AudioCd/AudioCdDisk.cs:87
+-#: ../src/Banshee.Base/TrackInfo.cs:391
++#: ../src/Core/Banshee.Base/AudioCd/AudioCdDisk.cs:87
++#: ../src/Core/Banshee.Base/TrackInfo.cs:299
+ msgid "Unknown Album"
+ msgstr "Album sconosciuto"
+
+-#: ../src/Banshee.Base/AudioCd/AudioCdDisk.cs:88
++#: ../src/Core/Banshee.Base/AudioCd/AudioCdDisk.cs:88
+ #, csharp-format
+ msgid "Track {0}"
+ msgstr "Traccia {0}"
+
+-#: ../src/Banshee.Base/AudioCd/AudioCdDisk.cs:93
+-#: ../src/Banshee.Base/Sources/AudioCdSource.cs:59
++#: ../src/Core/Banshee.Base/AudioCd/AudioCdDisk.cs:93
++#: ../src/Core/Banshee.Base/Sources/AudioCdSource.cs:60
+ msgid "Audio CD"
+ msgstr "CD audio"
+
+-#: ../src/Banshee.Base/AudioCd/AudioCdDisk.cs:241
++#: ../src/Core/Banshee.Base/AudioCd/AudioCdDisk.cs:244
+ msgid "Cannot Eject CD"
+ msgstr "Impossibile espellere il CD"
+
+-#: ../src/Banshee.Base/AudioCd/AudioCdDisk.cs:242
++#: ../src/Core/Banshee.Base/AudioCd/AudioCdDisk.cs:245
+ msgid "The CD cannot be ejected while it is importing. Stop the import first."
+ msgstr ""
+ "Non è possibile espellere il CD mentre lo si sta importando. Fermare prima "
+ "l'importazione."
+
+-#: ../src/Banshee.Base/AudioCdRipper.cs:84
++#: ../src/Core/Banshee.Base/AudioCdRipper.cs:85
+ msgid "Could not create CD Ripper"
+ msgstr "Impossibile creare l'estrattore di CD"
+
+-#: ../src/Banshee.Base/AudioCdRipper.cs:274
++#: ../src/Core/Banshee.Base/AudioCdRipper.cs:275
+ msgid "Importing CD"
+-msgstr ""
++msgstr "Importazione CD"
+
+-#: ../src/Banshee.Base/AudioCdRipper.cs:283
++#: ../src/Core/Banshee.Base/AudioCdRipper.cs:284
+ #, csharp-format
+ msgid ""
+ "<i>{0}</i> is still being imported into the music library. Would you like to "
+ "stop it?"
+ msgstr ""
++"<i>{0}</i> sta importando nella libreria musicale. Si desidera fermare?"
+
+-#: ../src/Banshee.Base/AudioCdRipper.cs:291
++#: ../src/Core/Banshee.Base/AudioCdRipper.cs:292
+ #, csharp-format
+ msgid ""
+ "The device node '{0}' differs from the device node already set for "
+ "previously queued tracks ({1})"
+ msgstr ""
++"Il nodo del dispositivo '{0}' differisce da quello già selezionato per le "
++"precedenti tracce in coda ({1})"
+
+-#: ../src/Banshee.Base/AudioCdRipper.cs:304
++#: ../src/Core/Banshee.Base/AudioCdRipper.cs:305
+ msgid "Importing Audio CD"
+ msgstr "Importazione CD audio"
+
+-#: ../src/Banshee.Base/AudioCdRipper.cs:305
++#: ../src/Core/Banshee.Base/AudioCdRipper.cs:306
+ msgid "Initializing Drive"
+ msgstr "Inizializzazione unità "
+
+-#: ../src/Banshee.Base/AudioCdRipper.cs:312
++#: ../src/Core/Banshee.Base/AudioCdRipper.cs:313
+ msgid "No encoder was found on your system."
+-msgstr "Non è stato trovato alcun encoder nel sistema in uso."
++msgstr "Non è stato trovato alcun codificatore nel sistema in uso."
+
+-#: ../src/Banshee.Base/AudioCdRipper.cs:332
+-#: ../src/Banshee.Base/AudioCdRipper.cs:404
++#: ../src/Core/Banshee.Base/AudioCdRipper.cs:343
++#: ../src/Core/Banshee.Base/AudioCdRipper.cs:415
+ msgid "Cannot Import CD"
+ msgstr "Impossibile importare il CD"
+
+-#: ../src/Banshee.Base/AudioCdRipper.cs:352
+-#: ../src/Banshee.Base/ImportManager.cs:120
++#: ../src/Core/Banshee.Base/AudioCdRipper.cs:363
++#: ../src/Core/Banshee.Base/Banshee.PlayerMigration/PlayerImport.cs:55
++#: ../src/Core/Banshee.Base/ImportManager.cs:291
+ #, csharp-format
+ msgid "Importing {0} of {1}"
+ msgstr "Importazione di {0} su {1}"
+
+-#: ../src/Banshee.Base/Banshee.AudioProfiles.Gui/ProfileComboBox.cs:83
++#: ../src/Core/Banshee.Base/Banshee.AudioProfiles.Gui/ProfileComboBox.cs:84
+ msgid "No available profiles"
+ msgstr "Nessun profilo disponibile"
+
+-#: ../src/Banshee.Base/Banshee.AudioProfiles.Gui/ProfileConfigurationDialog.cs:47
++#: ../src/Core/Banshee.Base/Banshee.AudioProfiles.Gui/ProfileConfigurationDialog.cs:71
++#: ../src/Plugins/Banshee.Plugins.Podcast/UI/PodcastSubscribeDialog.cs:88
+ msgid "Advanced"
+ msgstr "Avanzate"
+
+-#: ../src/Banshee.Base/Banshee.Burner/BurnerConfigurationPane.cs:69
++#: ../src/Core/Banshee.Base/Banshee.Burner/BurnerConfigurationPane.cs:69
+ msgid "Audio Disc:"
+ msgstr "Disco audio:"
+
+-#: ../src/Banshee.Base/Banshee.Burner/BurnerConfigurationPane.cs:73
++#: ../src/Core/Banshee.Base/Banshee.Burner/BurnerConfigurationPane.cs:73
+ msgid "Data Disc:"
+ msgstr "Disco di dati:"
+
+-#: ../src/Banshee.Base/Banshee.Burner/BurnerConfigurationPane.cs:130
++#: ../src/Core/Banshee.Base/Banshee.Burner/BurnerConfigurationPane.cs:130
+ #, csharp-format
+ msgid "{0}:{1:00} of {2}"
+ msgstr "{0}:{1:00} di {2}"
+
+-#: ../src/Banshee.Base/Banshee.Burner/BurnerConfigurationPane.cs:132
++#: ../src/Core/Banshee.Base/Banshee.Burner/BurnerConfigurationPane.cs:132
+ msgid "Unknown Minutes"
+-msgstr ""
++msgstr "Minuti sconosciuti"
+
+-#: ../src/Banshee.Base/Banshee.Burner/BurnerConfigurationPane.cs:133
++#: ../src/Core/Banshee.Base/Banshee.Burner/BurnerConfigurationPane.cs:133
+ #, csharp-format
+ msgid "{0} Minutes"
+ msgstr "{0} minuti"
+
+-#: ../src/Banshee.Base/Banshee.Burner/BurnerConfigurationPane.cs:136
+-#: ../src/Banshee.Base/Sources/DapSource.cs:312
+-#: ../src/Banshee.Widgets/StreamPositionLabel.cs:87
++#: ../src/Core/Banshee.Base/Banshee.Burner/BurnerConfigurationPane.cs:136
++#: ../src/Core/Banshee.Base/Sources/DapSource.cs:336
++#: ../src/Core/Banshee.Widgets/StreamPositionLabel.cs:90
+ #, csharp-format
+ msgid "{0} of {1}"
+ msgstr "{0} di {1}"
+
+-#: ../src/Banshee.Base/Banshee.Burner/BurnerConfigurationPane.cs:137
++#: ../src/Core/Banshee.Base/Banshee.Burner/BurnerConfigurationPane.cs:137
+ msgid "Unknown MB"
+-msgstr ""
++msgstr "MB sconociuti"
+
+-#: ../src/Banshee.Base/Banshee.Burner/BurnerConfigurationPane.cs:138
+-#: ../src/Banshee.Base/Utilities.cs:77
++#: ../src/Core/Banshee.Base/Banshee.Burner/BurnerConfigurationPane.cs:138
++#: ../src/Core/Banshee.Base/Utilities.cs:77
+ #, csharp-format
+ msgid "{0} MB"
+ msgstr "{0} MB"
+
+-#: ../src/Banshee.Base/Banshee.Burner/BurnerCore.cs:122
+-#: ../src/Banshee.Base/Banshee.Burner/BurnerSource.cs:63
+-msgid "New Audio CD"
+-msgstr "Nuovo CD audio"
++#: ../src/Core/Banshee.Base/Banshee.Burner/BurnerCore.cs:118
++msgid "New Audio C_D"
++msgstr "Nuovo C_D audio"
+
+-#: ../src/Banshee.Base/Banshee.Burner/BurnerCore.cs:123
++#: ../src/Core/Banshee.Base/Banshee.Burner/BurnerCore.cs:119
+ msgid "Create a new audio CD"
+ msgstr "Crea un nuovo CD audio"
+
+-#: ../src/Banshee.Base/Banshee.Burner/BurnerCore.cs:165
+-#: ../src/Banshee.Base/Banshee.Burner/BurnerSessionPreparer.cs:108
+-#: ../src/Banshee.Base/Banshee.Burner/BurnerSessionPreparer.cs:192
++#: ../src/Core/Banshee.Base/Banshee.Burner/BurnerCore.cs:161
++#: ../src/Core/Banshee.Base/Banshee.Burner/BurnerSessionPreparer.cs:108
++#: ../src/Core/Banshee.Base/Banshee.Burner/BurnerSessionPreparer.cs:192
+ msgid "Problem creating CD"
+ msgstr "Problema nel creare il CD"
+
+-#: ../src/Banshee.Base/Banshee.Burner/BurnerCore.cs:166
++#: ../src/Core/Banshee.Base/Banshee.Burner/BurnerCore.cs:162
+ msgid "No CD recording hardware was found."
+ msgstr "Non è stato trovato alcun hardware per la masterizzazione di CD."
+
+-#: ../src/Banshee.Base/Banshee.Burner/BurnerFormatList.cs:62
++#: ../src/Core/Banshee.Base/Banshee.Burner/BurnerFormatList.cs:62
+ msgid "Audio"
+ msgstr "Audio"
+
+-#: ../src/Banshee.Base/Banshee.Burner/BurnerSessionPreparer.cs:101
++#: ../src/Core/Banshee.Base/Banshee.Burner/BurnerSessionPreparer.cs:101
+ msgid "Some songs could not be found."
+-msgstr ""
++msgstr "Non è possibile trovare alcune tracce."
+
+-#: ../src/Banshee.Base/Banshee.Burner/BurnerSessionPreparer.cs:109
++#: ../src/Core/Banshee.Base/Banshee.Burner/BurnerSessionPreparer.cs:109
+ msgid "No CD writers were found on your system."
+-msgstr "Nel sistema in uso non sono stati rilevati dispositivi di scrittura CD."
++msgstr ""
++"Nel sistema in uso non sono stati rilevati dispositivi di scrittura CD."
+
+-#: ../src/Banshee.Base/Banshee.Burner/BurnerSessionPreparer.cs:115
++#: ../src/Core/Banshee.Base/Banshee.Burner/BurnerSessionPreparer.cs:115
+ msgid "Insert Blank CD"
+ msgstr "Inserire un CD vuoto"
+
+-#: ../src/Banshee.Base/Banshee.Burner/BurnerSessionPreparer.cs:116
++#: ../src/Core/Banshee.Base/Banshee.Burner/BurnerSessionPreparer.cs:116
+ msgid "Please insert a blank CD disk for the write process."
+ msgstr "Inserire un disco CD vuoto per il processo di scrittura."
+
+-#: ../src/Banshee.Base/Banshee.Burner/BurnerSessionPreparer.cs:136
+-#: ../src/Banshee.Base/Banshee.Burner/BurnerSessionPreparer.cs:156
++#: ../src/Core/Banshee.Base/Banshee.Burner/BurnerSessionPreparer.cs:136
++#: ../src/Core/Banshee.Base/Banshee.Burner/BurnerSessionPreparer.cs:156
+ #, csharp-format
+ msgid "The inserted media is not large enough to hold your selected music."
+ msgstr ""
++"Il dispositivo inserito non è abbastanza capiente da includere la musica "
++"selezionata."
+
+-#: ../src/Banshee.Base/Banshee.Burner/BurnerSessionPreparer.cs:138
++#: ../src/Core/Banshee.Base/Banshee.Burner/BurnerSessionPreparer.cs:138
+ #, csharp-format
+ msgid "{0} more minute is needed on the media."
+ msgid_plural "{0} more minutes are needed on the media."
+-msgstr[0] ""
+-msgstr[1] ""
++msgstr[0] "{0} minuti liberi servono sul supporto."
++msgstr[1] "{0} minuti servono sul supporto."
+
+-#: ../src/Banshee.Base/Banshee.Burner/BurnerSessionPreparer.cs:142
+-#: ../src/Banshee.Base/Banshee.Burner/BurnerSessionPreparer.cs:162
++#: ../src/Core/Banshee.Base/Banshee.Burner/BurnerSessionPreparer.cs:142
++#: ../src/Core/Banshee.Base/Banshee.Burner/BurnerSessionPreparer.cs:162
+ msgid "Not Enough Space on Disc"
+ msgstr "Spazio non sufficiente su disco"
+
+-#: ../src/Banshee.Base/Banshee.Burner/BurnerSessionPreparer.cs:158
++#: ../src/Core/Banshee.Base/Banshee.Burner/BurnerSessionPreparer.cs:158
+ #, csharp-format
+ msgid "{0} more megabyte is needed on the media."
+ msgid_plural "{0} more megabytes are needed on the media."
+-msgstr[0] ""
+-msgstr[1] ""
++msgstr[0] "{0} megabyte liberi servono sul supporto."
++msgstr[1] "{0} megabyte servono sul supporto."
+
+-#: ../src/Banshee.Base/Banshee.Burner/BurnerSessionPreparer.cs:175
++#: ../src/Core/Banshee.Base/Banshee.Burner/BurnerSessionPreparer.cs:175
+ msgid "Insufficient Disk Space"
+-msgstr ""
++msgstr "Spazio sul disco insufficiente"
+
+-#: ../src/Banshee.Base/Banshee.Burner/BurnerSessionPreparer.cs:176
++#: ../src/Core/Banshee.Base/Banshee.Burner/BurnerSessionPreparer.cs:176
+ #, csharp-format
+ msgid "Creating this CD requires at least {0} MiB of free disk space."
+-msgstr ""
++msgstr "Creare questo CD richiede almeno {0} MiB di spazio libero sul disco."
+
+-#: ../src/Banshee.Base/Banshee.Burner/BurnerSessionPreparer.cs:195
++#: ../src/Core/Banshee.Base/Banshee.Burner/BurnerSessionPreparer.cs:195
+ msgid "Continue Anyway"
+-msgstr ""
++msgstr "Continua comunque"
+
+-#: ../src/Banshee.Base/Banshee.Burner/BurnerSessionPreparer.cs:239
++#: ../src/Core/Banshee.Base/Banshee.Burner/BurnerSessionPreparer.cs:239
+ msgid "Could Not Write CD"
+ msgstr "Impossibile scrivere il CD"
+
+-#: ../src/Banshee.Base/Banshee.Burner/BurnerSessionPreparer.cs:240
++#: ../src/Core/Banshee.Base/Banshee.Burner/BurnerSessionPreparer.cs:240
+ msgid "No suitable encoder could be found to convert selected songs."
+ msgstr ""
++"Non è stato trovato nessun codificatore adatto a convertire le tracce "
++"selezionate."
+
+-#: ../src/Banshee.Base/Banshee.Burner/BurnerSessionRecorder.cs:48
++#: ../src/Core/Banshee.Base/Banshee.Burner/BurnerSessionRecorder.cs:48
+ msgid "Writing a disc"
+ msgstr "Scrittura di un disco"
+
+-#: ../src/Banshee.Base/Banshee.Burner/BurnerSessionRecorder.cs:55
+-#: ../src/Banshee.Base/Banshee.Burner/BurnerSessionRecorder.cs:56
++#: ../src/Core/Banshee.Base/Banshee.Burner/BurnerSessionRecorder.cs:55
++#: ../src/Core/Banshee.Base/Banshee.Burner/BurnerSessionRecorder.cs:56
+ msgid "Writing Disc"
+ msgstr "Scrittura disco"
+
+-#: ../src/Banshee.Base/Banshee.Burner/BurnerSessionRecorder.cs:57
++#: ../src/Core/Banshee.Base/Banshee.Burner/BurnerSessionRecorder.cs:57
+ msgid ""
+ "Stopping the disc writing process will render it useless. Would you like to "
+ "stop writing the disc?"
+ msgstr ""
++"Fermare la scrittura del disco potrebbe renderlo inutilizzabile.Fermare la "
++"scrittura?"
+
+-#: ../src/Banshee.Base/Banshee.Burner/BurnerSessionRecorder.cs:95
+-#: ../src/Banshee.Base/Banshee.Burner/BurnerSessionRecorder.cs:110
++#: ../src/Core/Banshee.Base/Banshee.Burner/BurnerSessionRecorder.cs:95
++#: ../src/Core/Banshee.Base/Banshee.Burner/BurnerSessionRecorder.cs:110
+ msgid "Error writing disc"
+ msgstr "Errore nello scrivere il disco"
+
+-#: ../src/Banshee.Base/Banshee.Burner/BurnerSessionRecorder.cs:99
++#: ../src/Core/Banshee.Base/Banshee.Burner/BurnerSessionRecorder.cs:99
+ msgid "An unknown error occurred when attempting to write the disc."
+-msgstr "Si è verificato un errore sconosciuto nel tentativo di scrittura del disco."
++msgstr ""
++"Si è verificato un errore sconosciuto nel tentativo di scrittura del disco."
+
+-#: ../src/Banshee.Base/Banshee.Burner/BurnerSessionRecorder.cs:105
++#: ../src/Core/Banshee.Base/Banshee.Burner/BurnerSessionRecorder.cs:105
+ msgid "Disc writing complete"
+ msgstr "Scrittura del disco completata"
+
+-#: ../src/Banshee.Base/Banshee.Burner/BurnerSessionRecorder.cs:106
++#: ../src/Core/Banshee.Base/Banshee.Burner/BurnerSessionRecorder.cs:106
+ msgid "The selected audio was successfully written to the disc."
+ msgstr "L'audio selezionato è stata scritto con successo sul disco."
+
+-#: ../src/Banshee.Base/Banshee.Burner/BurnerSessionRecorder.cs:142
++#: ../src/Core/Banshee.Base/Banshee.Burner/BurnerSessionRecorder.cs:142
+ msgid "Preparing to record"
+ msgstr "Preparazione della registrazione"
+
+-#: ../src/Banshee.Base/Banshee.Burner/BurnerSessionRecorder.cs:146
++#: ../src/Core/Banshee.Base/Banshee.Burner/BurnerSessionRecorder.cs:146
+ msgid "Recording contents"
+ msgstr "Registrazione contenuti"
+
+-#: ../src/Banshee.Base/Banshee.Burner/BurnerSessionRecorder.cs:150
++#: ../src/Core/Banshee.Base/Banshee.Burner/BurnerSessionRecorder.cs:150
+ msgid "Fixating disc"
+ msgstr "Chiusura del disco"
+
+-#: ../src/Banshee.Base/Banshee.Burner/BurnerSessionRecorder.cs:168
++#: ../src/Core/Banshee.Base/Banshee.Burner/BurnerSessionRecorder.cs:168
++#: ../src/Dap/Banshee.Dap.Ipod/IpodDap.cs:319
+ msgid "Waiting for Media"
+ msgstr "In attesa di un supporto"
+
+-#: ../src/Banshee.Base/Banshee.Burner/BurnerSessionRecorder.cs:172
+-#: ../src/Banshee.Base/Banshee.Burner/BurnerSessionRecorder.cs:175
++#: ../src/Core/Banshee.Base/Banshee.Burner/BurnerSessionRecorder.cs:172
++#: ../src/Core/Banshee.Base/Banshee.Burner/BurnerSessionRecorder.cs:175
+ msgid "Insert blank disc"
+ msgstr "Inserire un disco vuoto"
+
+-#: ../src/Banshee.Base/Banshee.Burner/BurnerSessionRecorder.cs:173
++#: ../src/Core/Banshee.Base/Banshee.Burner/BurnerSessionRecorder.cs:173
+ msgid "Please insert a blank disc for the write process."
+ msgstr "Inserire un disco vuoto per il processo di scrittura."
+
+-#: ../src/Banshee.Base/Banshee.Burner/BurnerSource.cs:233
++#: ../src/Core/Banshee.Base/Banshee.Burner/BurnerSource.cs:63
++msgid "New Audio CD"
++msgstr "Nuovo CD audio"
++
++#: ../src/Core/Banshee.Base/Banshee.Burner/BurnerSource.cs:233
+ msgid "CD Session"
+-msgstr ""
++msgstr "Sessione CD"
+
+-#: ../src/Banshee.Base/Banshee.Cdrom.Gui/RecorderSpeedComboBox.cs:69
++#: ../src/Core/Banshee.Base/Banshee.Cdrom.Gui/RecorderSpeedComboBox.cs:69
+ msgid "Maximum"
+-msgstr ""
++msgstr "Massima"
+
+-#: ../src/Banshee.Base/Banshee.Cdrom.Gui/RecorderSpeedComboBox.cs:70
++#: ../src/Core/Banshee.Base/Banshee.Cdrom.Gui/RecorderSpeedComboBox.cs:70
+ msgid "High"
+-msgstr ""
++msgstr "Alta"
+
+-#: ../src/Banshee.Base/Banshee.Cdrom.Gui/RecorderSpeedComboBox.cs:71
++#: ../src/Core/Banshee.Base/Banshee.Cdrom.Gui/RecorderSpeedComboBox.cs:71
+ msgid "Medium"
+-msgstr ""
++msgstr "Media"
+
+-#: ../src/Banshee.Base/Banshee.Cdrom.Gui/RecorderSpeedComboBox.cs:72
++#: ../src/Core/Banshee.Base/Banshee.Cdrom.Gui/RecorderSpeedComboBox.cs:72
+ msgid "Low"
+-msgstr ""
++msgstr "Bassa"
+
+-#: ../src/Banshee.Base/Banshee.Cdrom.Gui/RecorderSpeedComboBox.cs:77
+-#: ../src/Banshee.Base/Banshee.Cdrom.Gui/RecorderSpeedComboBox.cs:90
++#: ../src/Core/Banshee.Base/Banshee.Cdrom.Gui/RecorderSpeedComboBox.cs:77
++#: ../src/Core/Banshee.Base/Banshee.Cdrom.Gui/RecorderSpeedComboBox.cs:90
+ #, csharp-format
+ msgid "{0}x"
+ msgstr "{0}x"
+
+-#: ../src/Banshee.Base/Banshee.Cdrom.Nautilus/NautilusDiscDuplicator.cs:46
++#: ../src/Core/Banshee.Base/Banshee.Cdrom.Nautilus/NautilusDiscDuplicator.cs:46
+ msgid "Copy CD failed"
+-msgstr ""
++msgstr "Copia CD fallita"
+
+-#: ../src/Banshee.Base/Banshee.Cdrom.Nautilus/NautilusDiscDuplicator.cs:47
++#: ../src/Core/Banshee.Base/Banshee.Cdrom.Nautilus/NautilusDiscDuplicator.cs:47
+ msgid "Could not run nautilus-cd-burner"
+ msgstr "Impossibile eseguire nautilus-cd-burner"
+
+-#. Console.WriteLine(Catalog.GetString("Cannot Import: {0} ({1}, {2})"),
+-#. args.FileName, e.GetType(), e.Message);
+-#: ../src/Banshee.Base/Banshee.Library/Import.cs:69
+-#: ../src/Banshee.Dap/MassStorage/MassStorageDap.cs:177
++#: ../src/Core/Banshee.Base/banshee-core.schemas.in.h:1
++msgid "Backend"
++msgstr "Backend"
++
++#: ../src/Core/Banshee.Base/banshee-core.schemas.in.h:2
++msgid "Base location for library music"
++msgstr "Posizione della libreria musicale"
++
++#: ../src/Core/Banshee.Base/banshee-core.schemas.in.h:3
++msgid ""
++"Can be either \"systemio\" (.NET System.IO), \"unix\" (Native Unix), or "
++"\"gnomevfs\" (GNOME VFS); takes effect on Banshee start (restart necessary)"
++msgstr ""
++"Può essere sia \"systemio\" (.NET System.IO), \"unix\" (Unix nativo), oppure "
++"\"gnomevfs\" (GNOME VFS); il cambiamento sarà effettivo al riavvio di "
++"Banshee (necessario)"
++
++#: ../src/Core/Banshee.Base/banshee-core.schemas.in.h:4
++msgid "Column index"
++msgstr "Colonna indice"
++
++#: ../src/Core/Banshee.Base/banshee-core.schemas.in.h:5
++msgid "Column index for sorting the library source. -1 for unset."
++msgstr ""
++"Indice colonna di ordinamento della libreria sorgente. -1 per non impostarlo."
++
++#: ../src/Core/Banshee.Base/banshee-core.schemas.in.h:6
++msgid "Column sort type"
++msgstr "Disponi tipo colonna"
++
++#: ../src/Core/Banshee.Base/banshee-core.schemas.in.h:7
++msgid ""
++"Column sort type for the library source. Ascending (0) or Descending (1)"
++msgstr ""
++"Disponi colonna tipo per la sorgente della libreria. Ascendente (0) oppure "
++"discendente (1)"
++
++#: ../src/Core/Banshee.Base/banshee-core.schemas.in.h:8
++msgid "Copy and rename music to banshee music library directory when importing"
++msgstr ""
++"Copia e rinomina la musica importata nella libreria musicale di Banshee"
++
++#: ../src/Core/Banshee.Base/banshee-core.schemas.in.h:9
++msgid "Copy music on import"
++msgstr "Copia musica nell'importazione"
++
++#: ../src/Core/Banshee.Base/banshee-core.schemas.in.h:10
++msgid "Enable error correction"
++msgstr "Abilita correzione errore"
++
++#: ../src/Core/Banshee.Base/banshee-core.schemas.in.h:11
++msgid "Enable shuffle mode"
++msgstr "Abilita modo casuale"
++
++#: ../src/Core/Banshee.Base/banshee-core.schemas.in.h:12
++msgid "Export Format"
++msgstr "Esporta formato"
++
++#: ../src/Core/Banshee.Base/banshee-core.schemas.in.h:14
++#, no-c-format
++msgid ""
++"Format for creating a track filename inside the library. Do not use path "
++"tokens/characters here. See LibraryFolderPattern. Legal tokens: %artist%, %"
++"album%, %title%, %track_number%, %track_count%, %track_number_nz% (No "
++"prefixed zero), %track_count_nz% (No prefixed zero)."
++msgstr ""
++"Formato per creare il nome al file traccia all'interno della libreria. Non "
++"usare caratteri e simboli speciali. Fare riferimento a Modello file di "
++"Libreria. Variabili permesse: %artist%, %album%, %title%, %track_number%, %"
++"track_count%, %track_number_nz% (No 0 come prefisso), %track_count_nz% (No 0 "
++"come prefisso)."
++
++#: ../src/Core/Banshee.Base/banshee-core.schemas.in.h:16
++#, no-c-format
++msgid ""
++"Format for creating a track folder inside the library. Do not create an "
++"absolute path. Path here is relative to the Banshee music directory. See "
++"LibraryLocation. Legal tokens: %artist%, %album%, %title%, %track_number%, %"
++"track_count%, %track_number_nz% (No prefixed zero), %track_count_nz% (No "
++"prefixed zero), %path_sep% (portable directory separator (/))."
++msgstr ""
++"Formato per creare cartella delle tracce all'interno della libreria. Non "
++"creare un percorso assoluto. Il percorso è relativo alla cartella musicale "
++"di Banshee. Maggiori informazioni in Posizione Libreria. Variabili permesse %"
++"artist%, %album%, %title%, %track_number%,%track_count%, %track_number_nz% "
++"(No 0 come prefisso), %track_count_nz% (No 0 come prefisso), %path_sep% "
++"(Separatore percorso directory (/))"
++
++#: ../src/Core/Banshee.Base/banshee-core.schemas.in.h:17
++msgid "Height of the main interface window."
++msgstr "Altezza finestra dell'interfaccia principale."
++
++#: ../src/Core/Banshee.Base/banshee-core.schemas.in.h:18
++msgid ""
++"If enabled, metadata (tags) will be written back to audio files when using "
++"the track metadata editor."
++msgstr ""
++"Se abilitato, verranno scritti i metadata (etichette) nei file audio quando "
++"si userà l'editore di metadata delle tracce."
++
++#: ../src/Core/Banshee.Base/banshee-core.schemas.in.h:19
++msgid "Library File Pattern"
++msgstr "Modello file di libreria"
++
++#: ../src/Core/Banshee.Base/banshee-core.schemas.in.h:20
++msgid "Library Folder Pattern"
++msgstr "Modello file di libreria"
++
++#: ../src/Core/Banshee.Base/banshee-core.schemas.in.h:21
++msgid "Library location"
++msgstr "Posizione libreria"
++
++#: ../src/Core/Banshee.Base/banshee-core.schemas.in.h:22
++msgid "Library source expansion"
++msgstr "Espansione sorgente della libreria"
++
++#: ../src/Core/Banshee.Base/banshee-core.schemas.in.h:23
++msgid "List of URIs in the history drop-down for the open location dialog"
++msgstr ""
++"Lista degli URI della cronologia a cascata nel dialogo di apertura posizione"
++
++#: ../src/Core/Banshee.Base/banshee-core.schemas.in.h:24
++msgid "Move music on info save"
++msgstr "Sposta la musica al salvataggio delle informazioni"
++
++#: ../src/Core/Banshee.Base/banshee-core.schemas.in.h:25
++msgid ""
++"Move music within banshee music library directory when saving track info"
++msgstr ""
++"Sposta la musica all'interno della cartella della libreria musicale di "
++"Banshee quando vengono salvate le informazioni nella traccia."
++
++#: ../src/Core/Banshee.Base/banshee-core.schemas.in.h:26
++msgid "Name of media playback engine backend"
++msgstr "Nome del motore utilizzato per la riproduzione"
++
++#: ../src/Core/Banshee.Base/banshee-core.schemas.in.h:27
++msgid "Pixel position of Main Player Window on the X Axis"
++msgstr "Posizione pixel della finestra principale sull'asse X"
++
++#: ../src/Core/Banshee.Base/banshee-core.schemas.in.h:28
++msgid "Pixel position of Main Player Window on the Y Axis"
++msgstr "Posizione pixel della finestra principale sull'asse Y"
++
++#: ../src/Core/Banshee.Base/banshee-core.schemas.in.h:29
++msgid "Repeat mode (0 = None, 1 = All, 2 = Single)"
++msgstr "Modo ripetizione (0 = Nessuno, 1 = Tutto, 2 = Singolo)"
++
++#: ../src/Core/Banshee.Base/banshee-core.schemas.in.h:30
++msgid "Repeat playback"
++msgstr "Riproduzione ripetizione"
++
++#: ../src/Core/Banshee.Base/banshee-core.schemas.in.h:31
++msgid "Set the IO backend in Banshee"
++msgstr "Scegli il backend IO di Banshee"
++
++#: ../src/Core/Banshee.Base/banshee-core.schemas.in.h:32
++msgid "Show cover art"
++msgstr "Mostra la copertina"
++
++#: ../src/Core/Banshee.Base/banshee-core.schemas.in.h:33
++msgid "Show cover art below source view if available"
++msgstr "Se disponibile mostra la copertina sotto la visualizzazione sorgente"
++
++#: ../src/Core/Banshee.Base/banshee-core.schemas.in.h:34
++msgid "Show the Initial Import Dialog"
++msgstr "Mostra il dialogo iniziale di importazione"
++
++#: ../src/Core/Banshee.Base/banshee-core.schemas.in.h:35
++msgid "Show the Initial Import Dialog when the Banshee library is empty"
++msgstr ""
++"Mostra il dialogo iniziale di importazione quando la libreria di Banshee è "
++"vuota"
++
++#: ../src/Core/Banshee.Base/banshee-core.schemas.in.h:36
++msgid "Shuffle playback"
++msgstr "Riproduzione casuale"
++
++#: ../src/Core/Banshee.Base/banshee-core.schemas.in.h:37
++msgid ""
++"Sort criteria of library playlists in the source view (0 = Name, 1 = Size)"
++msgstr ""
++"Disponi criterio della libreria delle scalette nella visualizzazione "
++"sorgente (0 = nome, 1 = dimensione)"
++
++#: ../src/Core/Banshee.Base/banshee-core.schemas.in.h:38
++msgid "Sort criteria of playlists"
++msgstr "Disponi criterio delle scalette"
++
++#: ../src/Core/Banshee.Base/banshee-core.schemas.in.h:39
++msgid ""
++"Sort order of library playlists in the source view (0 = Ascending, 1 = "
++"Descending)"
++msgstr ""
++"Disponi ordine della libreria delle scalette nella visualizzazione sorgente "
++"(0 = ascendente, 1 = discendente)"
++
++#: ../src/Core/Banshee.Base/banshee-core.schemas.in.h:40
++msgid "Sort order of playlists"
++msgstr "Disponi ordine delle scalette"
++
++#: ../src/Core/Banshee.Base/banshee-core.schemas.in.h:41
++msgid "Source View Width"
++msgstr "Lunghezza sorgente di visualizzazione"
++
++#: ../src/Core/Banshee.Base/banshee-core.schemas.in.h:42
++msgid "The default playlist export format"
++msgstr "Formato predefinito di esportazione scaletta"
++
++#: ../src/Core/Banshee.Base/banshee-core.schemas.in.h:43
++msgid "True if main window is to be maximized, false if it is not."
++msgstr "Vero se la finestra principale è massimizzata, falso se non lo è."
++
++#: ../src/Core/Banshee.Base/banshee-core.schemas.in.h:44
++msgid "URI"
++msgstr "URI"
++
++#: ../src/Core/Banshee.Base/banshee-core.schemas.in.h:45
++msgid "URI List"
++msgstr "Lista URI"
++
++#: ../src/Core/Banshee.Base/banshee-core.schemas.in.h:46
++msgid "URI of last file folder"
++msgstr "URI dell'ultima cartella"
++
++#: ../src/Core/Banshee.Base/banshee-core.schemas.in.h:47
++msgid "Volume"
++msgstr "Volume"
++
++#: ../src/Core/Banshee.Base/banshee-core.schemas.in.h:48
++msgid "Volume of playback relative to mixer output"
++msgstr "Volume della riproduzione relativo al mixer di uscita"
++
++#: ../src/Core/Banshee.Base/banshee-core.schemas.in.h:49
++msgid "When importing an audio CD, enable error correction (paranoia mode)"
++msgstr ""
++"Quando importi un CD audio, abilita la correzione errore (modo paranoia)"
++
++#: ../src/Core/Banshee.Base/banshee-core.schemas.in.h:50
++msgid "Whether to expand the library node in the source view"
++msgstr "Espande il nodo libreria nella visualizzazione sorgente"
++
++#: ../src/Core/Banshee.Base/banshee-core.schemas.in.h:51
++msgid "Width of Source View Column."
++msgstr "Larghezza colonna visualizzazione sorgente."
++
++#: ../src/Core/Banshee.Base/banshee-core.schemas.in.h:52
++msgid "Width of the main interface window."
++msgstr "Larghezza finestra principale dell'interfaccia."
++
++#: ../src/Core/Banshee.Base/banshee-core.schemas.in.h:53
++msgid "Window Height"
++msgstr "Altezza finestra"
++
++#: ../src/Core/Banshee.Base/banshee-core.schemas.in.h:54
++msgid "Window Maximized"
++msgstr "Finestra massimizzata"
++
++#: ../src/Core/Banshee.Base/banshee-core.schemas.in.h:55
++msgid "Window Position X"
++msgstr "Posizione finestra X"
++
++#: ../src/Core/Banshee.Base/banshee-core.schemas.in.h:56
++msgid "Window Position Y"
++msgstr "Posizione finestra Y"
++
++#: ../src/Core/Banshee.Base/banshee-core.schemas.in.h:57
++msgid "Window Width"
++msgstr "Larghezza finestra"
++
++#: ../src/Core/Banshee.Base/banshee-core.schemas.in.h:58
++msgid "Write metadata back to audio files"
++msgstr "Scrivere i metadati nei file"
++
++#: ../src/Core/Banshee.Base/Banshee.Library/Import.cs:74
++#: ../src/Dap/Banshee.Dap.MassStorage/MassStorageDap.cs:290
+ msgid "Scanning"
+ msgstr "Scansione"
+
+-#: ../src/Banshee.Base/Banshee.SmartPlaylist/Editor.cs:32
++#: ../src/Core/Banshee.Base/Banshee.PlayerMigration/AmarokPlayerImport.cs:49
++msgid "Amarok"
++msgstr "Amarok"
++
++#: ../src/Core/Banshee.Base/Banshee.PlayerMigration/AmarokPlayerImport.cs:59
++msgid "Unable to open Amarok database"
++msgstr "Impossibile aprire il database di Amarok"
++
++#: ../src/Core/Banshee.Base/Banshee.PlayerMigration/AmarokPlayerImport.cs:198
++msgid "Importing from Amarok database failed"
++msgstr "Importazione dalla libreria di Amarok fallita"
++
++#: ../src/Core/Banshee.Base/Banshee.PlayerMigration/PlayerImport.cs:41
++#: ../src/Core/Banshee.Base/ImportManager.cs:279
++msgid "Importing Songs"
++msgstr "Importazione delle canzoni"
++
++#: ../src/Core/Banshee.Base/Banshee.PlayerMigration/PlayerImport.cs:42
++#: ../src/Core/Banshee.Base/ImportManager.cs:285
++msgid "The import process is currently running. Would you like to stop it?"
++msgstr "L'importazione è attualmente in esecuzione. Si desidera fermare?"
++
++#: ../src/Core/Banshee.Base/Banshee.PlayerMigration/PlayerImport.cs:43
++#: ../src/Core/Banshee.Base/ImportManager.cs:97
++msgid "Scanning for songs"
++msgstr "Scansiona per canzoni"
++
++#: ../src/Core/Banshee.Base/Banshee.PlayerMigration/PlayerImportDialog.cs:56
++msgid "Migrate From Other Media Players"
++msgstr "Migrazione da un altro riproduttore musicale"
++
++#: ../src/Core/Banshee.Base/Banshee.PlayerMigration/PlayerImportDialog.cs:59
++msgid ""
++"Select any supported alternate media players that you wish to migrate into "
++"Banshee."
++msgstr ""
++"Selezionare un riproduttore multimediale alternativo da migrare in Banshee."
++
++#: ../src/Core/Banshee.Base/Banshee.PlayerMigration/PlayerImportDialog.cs:81
++#: ../src/Core/Banshee.Base/SourceManager.cs:265
++#: ../src/Core/Banshee/PlayerInterface.cs:2095
++msgid "Import"
++msgstr "Importa"
++
++#: ../src/Core/Banshee.Base/Banshee.PlayerMigration/PlayerImportDialog.cs:82
++msgid "Player"
++msgstr "Riproduttore"
++
++#: ../src/Core/Banshee.Base/Banshee.PlayerMigration/PlayerImportDialog.cs:91
++msgid "Unable to Locate Supported Media Player"
++msgstr "Impossibile individuare riproduttori multimediali supportati"
++
++#: ../src/Core/Banshee.Base/Banshee.PlayerMigration/PlayerImportDialog.cs:92
++msgid ""
++"Banshee was unable to locate any libraries from alternate supported media "
++"players from which to import."
++msgstr ""
++"Banshee non ha individuato librerie da importare dai riproduttori "
++"multimediali alternativi scelti."
++
++#: ../src/Core/Banshee.Base/Banshee.PlayerMigration/PlayerImportDialog.cs:112
++msgid "Migrate"
++msgstr "Migrazione"
++
++#: ../src/Core/Banshee.Base/Banshee.PlayerMigration/PlayerImportSource.cs:58
++msgid "Alternate Media Players"
++msgstr "Riproduttori multimediali alternativi"
++
++#: ../src/Core/Banshee.Base/Banshee.PlayerMigration/RhythmboxPlayerImport.cs:46
++msgid "Rhythmbox Music Player"
++msgstr "Rhythmbox riproduttore musicale"
++
++#: ../src/Core/Banshee.Base/Banshee.PlayerMigration/RhythmboxPlayerImport.cs:57
++msgid "Invalid Rhythmbox database file"
++msgstr "File di database di Rhythmbox non valido"
++
++#: ../src/Core/Banshee.Base/Banshee.Playlists.Formats/AsxPlaylistFormat.cs:46
++msgid "Windows Media ASX (*.asx)"
++msgstr "Windows Media ASX (*.asx)"
++
++#: ../src/Core/Banshee.Base/Banshee.Playlists.Formats/M3uPlaylistFormat.cs:43
++msgid "MPEG Version 3.0 Extended (*.m3u)"
++msgstr "MPEG Version 3.0 Extended (*.m3u)"
++
++#: ../src/Core/Banshee.Base/Banshee.Playlists.Formats/PlsPlaylistFormat.cs:50
++msgid "Shoutcast Playlist version 2 (*.pls)"
++msgstr "Shoutcast Playlist version 2 (*.pls)"
++
++#: ../src/Core/Banshee.Base/Banshee.Playlists/PlaylistFileUtil.cs:177
++msgid "Verifying"
++msgstr "Verifica"
++
++#: ../src/Core/Banshee.Base/Banshee.Playlists/PlaylistFileUtil.cs:178
++msgid ""
++"The playlist import process is currently running. Would you like to stop it?"
++msgstr ""
++"Il processo di importazione scaletta è in esecuzione. Si desidera fermare?"
++
++#: ../src/Core/Banshee.Base/Banshee.Playlists/PlaylistFileUtil.cs:181
++msgid "Verifying playlist tracks exist in library"
++msgstr "Verifica della scaletta delle tracce se esistente nella libreria"
++
++#: ../src/Core/Banshee.Base/Banshee.Playlists/PlaylistFileUtil.cs:206
++#, csharp-format
++msgid "Verifying {0} of {1}"
++msgstr "Verifica {0} di {1}"
++
++#: ../src/Core/Banshee.Base/Banshee.Playlists/PlaylistFileUtil.cs:209
++msgid "Verifying "
++msgstr "Verifica "
++
++#: ../src/Core/Banshee.Base/Banshee.Playlists/PlaylistFileUtil.cs:283
++msgid "Export Playlist"
++msgstr "Esporta scaletta"
++
++#: ../src/Core/Banshee.Base/Banshee.Playlists/PlaylistFileUtil.cs:292
++msgid "Export"
++msgstr "Esporta"
++
++#: ../src/Core/Banshee.Base/Banshee.Playlists/PlaylistFileUtil.cs:317
++msgid "Select Format: "
++msgstr "Seleziona formato:"
++
++#: ../src/Core/Banshee.Base/Banshee.SmartPlaylist/Editor.cs:35
+ msgid "Edit Smart Playlist"
+ msgstr "Modifica scaletta intelligente"
+
+-#: ../src/Banshee.Base/Banshee.SmartPlaylist/Editor.cs:43
++#: ../src/Core/Banshee.Base/Banshee.SmartPlaylist/Editor.cs:51
+ msgid "New Smart Playlist"
+ msgstr "Nuova scaletta intelligente"
+
+-#: ../src/Banshee.Base/Banshee.SmartPlaylist/Editor.cs:60
++#: ../src/Core/Banshee.Base/Banshee.SmartPlaylist/Editor.cs:68
+ msgid "Neglected Favorites"
+ msgstr "Preferite dimenticate"
+
+-#: ../src/Banshee.Base/Banshee.SmartPlaylist/Editor.cs:71
++#: ../src/Core/Banshee.Base/Banshee.SmartPlaylist/Editor.cs:79
+ msgid "700 MB of Favorites"
+ msgstr "700 MB di preferite"
+
+-#: ../src/Banshee.Base/Banshee.SmartPlaylist/Editor.cs:78
++#: ../src/Core/Banshee.Base/Banshee.SmartPlaylist/Editor.cs:86
+ msgid "80 Minutes of Favorites"
+ msgstr "80 minuti di preferite"
+
+-#: ../src/Banshee.Base/Banshee.SmartPlaylist/Editor.cs:85
++#: ../src/Core/Banshee.Base/Banshee.SmartPlaylist/Editor.cs:93
+ msgid "Unheard"
+-msgstr "Mai ascoltate"
++msgstr "Non riprodotte"
+
+-#: ../src/Banshee.Base/Banshee.SmartPlaylist/Editor.cs:139
+-#: ../src/PlayerInterface.cs:444 ../src/PlayerInterface.cs:1310
+-#: ../src/PlayerInterface.cs:2316
+-msgid "Artist Name"
+-msgstr "Nome dell'artista"
++#: ../src/Core/Banshee.Base/Banshee.SmartPlaylist/Editor.cs:100
++msgid "Unheard Podcasts"
++msgstr "Podcast non riprodotti"
+
+-#: ../src/Banshee.Base/Banshee.SmartPlaylist/Editor.cs:141
+-#: ../src/PlayerInterface.cs:443 ../src/PlayerInterface.cs:1312
+-msgid "Song Name"
+-msgstr "Titolo della canzone"
+-
+-#: ../src/Banshee.Base/Banshee.SmartPlaylist/Editor.cs:143
+-#: ../src/PlayerInterface.cs:445 ../src/PlayerInterface.cs:1314
+-#: ../src/PlayerInterface.cs:2312
+-msgid "Album Title"
+-msgstr "Titolo dell'album"
+-
+-#: ../src/Banshee.Base/Banshee.SmartPlaylist/Editor.cs:145
+-#: ../src/Banshee.Base/Banshee.SmartPlaylist/QueryBuilderModel.cs:48
+-#: ../src/Banshee.Base/Banshee.SmartPlaylist/QueryBuilderModel.cs:710
+-#: ../src/PlayerInterface.cs:446 ../src/PlayerInterface.cs:1316
+-#: ../src/PlayerInterface.cs:2320 ../src/PlaylistView.cs:111
+-msgid "Genre"
+-msgstr "Genere"
+-
+-#: ../src/Banshee.Base/Banshee.SmartPlaylist/Editor.cs:147
+-#: ../src/Banshee.Base/Banshee.SmartPlaylist/QueryBuilderModel.cs:718
+-#: ../src/PlayerInterface.cs:447 ../src/PlayerInterface.cs:1318
+-#: ../src/PlaylistView.cs:114
+-msgid "Year"
+-msgstr "Anno"
+-
+-#: ../src/Banshee.Base/Banshee.SmartPlaylist/Editor.cs:164
++#: ../src/Core/Banshee.Base/Banshee.SmartPlaylist/Editor.cs:181
+ msgid "Create Smart Playlist from Search"
+ msgstr "Crea scaletta intelligente da ricerca"
+
+-#: ../src/Banshee.Base/Banshee.SmartPlaylist/QueryBuilder.cs:151
+-#: ../src/Banshee.Base/Banshee.SmartPlaylist/QueryBuilder.cs:164
+-#: ../src/Banshee.Base/Banshee.SmartPlaylist/QueryBuilder.cs:174
++#: ../src/Core/Banshee.Base/Banshee.SmartPlaylist/QueryBuilder.cs:154
++#: ../src/Core/Banshee.Base/Banshee.SmartPlaylist/QueryBuilder.cs:164
++#: ../src/Core/Banshee.Base/Banshee.SmartPlaylist/QueryBuilder.cs:177
++#: ../src/Core/Banshee.Base/Banshee.SmartPlaylist/QueryBuilder.cs:187
+ msgid "is"
+ msgstr "è"
+
+-#: ../src/Banshee.Base/Banshee.SmartPlaylist/QueryBuilder.cs:156
+-#: ../src/Banshee.Base/Banshee.SmartPlaylist/QueryBuilder.cs:169
+-#: ../src/Banshee.Base/Banshee.SmartPlaylist/QueryBuilder.cs:179
++#: ../src/Core/Banshee.Base/Banshee.SmartPlaylist/QueryBuilder.cs:159
++#: ../src/Core/Banshee.Base/Banshee.SmartPlaylist/QueryBuilder.cs:169
++#: ../src/Core/Banshee.Base/Banshee.SmartPlaylist/QueryBuilder.cs:182
++#: ../src/Core/Banshee.Base/Banshee.SmartPlaylist/QueryBuilder.cs:192
+ msgid "is not"
+ msgstr "non è"
+
+-#: ../src/Banshee.Base/Banshee.SmartPlaylist/QueryBuilder.cs:184
++#: ../src/Core/Banshee.Base/Banshee.SmartPlaylist/QueryBuilder.cs:197
+ msgid "is less than"
+ msgstr "è minore di"
+
+-#: ../src/Banshee.Base/Banshee.SmartPlaylist/QueryBuilder.cs:189
++#: ../src/Core/Banshee.Base/Banshee.SmartPlaylist/QueryBuilder.cs:202
+ msgid "is greater than"
+ msgstr "è maggiore di"
+
+-#: ../src/Banshee.Base/Banshee.SmartPlaylist/QueryBuilder.cs:194
++#: ../src/Core/Banshee.Base/Banshee.SmartPlaylist/QueryBuilder.cs:207
+ msgid "more than"
+ msgstr "più di"
+
+-#: ../src/Banshee.Base/Banshee.SmartPlaylist/QueryBuilder.cs:199
++#: ../src/Core/Banshee.Base/Banshee.SmartPlaylist/QueryBuilder.cs:212
+ msgid "less than"
+ msgstr "meno di"
+
+-#: ../src/Banshee.Base/Banshee.SmartPlaylist/QueryBuilder.cs:204
++#: ../src/Core/Banshee.Base/Banshee.SmartPlaylist/QueryBuilder.cs:217
+ msgid "is at least"
+-msgstr ""
++msgstr "è almeno"
+
+-#: ../src/Banshee.Base/Banshee.SmartPlaylist/QueryBuilder.cs:209
++#: ../src/Core/Banshee.Base/Banshee.SmartPlaylist/QueryBuilder.cs:222
+ msgid "contains"
+ msgstr "contiene"
+
+-#: ../src/Banshee.Base/Banshee.SmartPlaylist/QueryBuilder.cs:214
++#: ../src/Core/Banshee.Base/Banshee.SmartPlaylist/QueryBuilder.cs:227
+ msgid "does not contain"
+ msgstr "non contiene"
+
+-#: ../src/Banshee.Base/Banshee.SmartPlaylist/QueryBuilder.cs:219
++#: ../src/Core/Banshee.Base/Banshee.SmartPlaylist/QueryBuilder.cs:232
+ msgid "starts with"
+ msgstr "comincia per"
+
+-#: ../src/Banshee.Base/Banshee.SmartPlaylist/QueryBuilder.cs:224
++#: ../src/Core/Banshee.Base/Banshee.SmartPlaylist/QueryBuilder.cs:237
+ msgid "ends with"
+ msgstr "finisce per"
+
+-#: ../src/Banshee.Base/Banshee.SmartPlaylist/QueryBuilder.cs:229
++#: ../src/Core/Banshee.Base/Banshee.SmartPlaylist/QueryBuilder.cs:242
+ msgid "is before"
+ msgstr "è prima"
+
+-#: ../src/Banshee.Base/Banshee.SmartPlaylist/QueryBuilder.cs:234
++#: ../src/Core/Banshee.Base/Banshee.SmartPlaylist/QueryBuilder.cs:247
+ msgid "is after"
+ msgstr "è dopo"
+
+-#: ../src/Banshee.Base/Banshee.SmartPlaylist/QueryBuilder.cs:239
++#: ../src/Core/Banshee.Base/Banshee.SmartPlaylist/QueryBuilder.cs:252
+ msgid "is between"
+ msgstr "è tra"
+
+-#: ../src/Banshee.Base/Banshee.SmartPlaylist/QueryBuilder.cs:244
++#: ../src/Core/Banshee.Base/Banshee.SmartPlaylist/QueryBuilder.cs:257
+ msgid "between"
+ msgstr "tra"
+
+-#: ../src/Banshee.Base/Banshee.SmartPlaylist/QueryBuilder.cs:322
++#: ../src/Core/Banshee.Base/Banshee.SmartPlaylist/QueryBuilder.cs:338
+ msgid "to"
+-msgstr ""
++msgstr "a"
+
+-#: ../src/Banshee.Base/Banshee.SmartPlaylist/QueryBuilder.cs:691
++#: ../src/Core/Banshee.Base/Banshee.SmartPlaylist/QueryBuilder.cs:712
+ msgid "_Match"
+-msgstr "C_orrisponde a"
++msgstr "_Corrisponde a"
+
+-#: ../src/Banshee.Base/Banshee.SmartPlaylist/QueryBuilder.cs:698
++#: ../src/Core/Banshee.Base/Banshee.SmartPlaylist/QueryBuilder.cs:719
+ msgid "all"
+ msgstr "tutte"
+
+-#: ../src/Banshee.Base/Banshee.SmartPlaylist/QueryBuilder.cs:699
++#: ../src/Core/Banshee.Base/Banshee.SmartPlaylist/QueryBuilder.cs:720
+ msgid "any"
+ msgstr "qualcuna"
+
+-#: ../src/Banshee.Base/Banshee.SmartPlaylist/QueryBuilder.cs:704
++#: ../src/Core/Banshee.Base/Banshee.SmartPlaylist/QueryBuilder.cs:725
+ msgid "of the following:"
+ msgstr "delle seguenti:"
+
+-#: ../src/Banshee.Base/Banshee.SmartPlaylist/QueryBuilder.cs:723
++#: ../src/Core/Banshee.Base/Banshee.SmartPlaylist/QueryBuilder.cs:744
+ msgid "_Limit to"
+ msgstr "_Limita a "
+
+-#: ../src/Banshee.Base/Banshee.SmartPlaylist/QueryBuilder.cs:740
++#: ../src/Core/Banshee.Base/Banshee.SmartPlaylist/QueryBuilder.cs:761
+ msgid "selected by"
+ msgstr "selezionate per"
+
+-#: ../src/Banshee.Base/Banshee.SmartPlaylist/QueryBuilderModel.cs:45
++#: ../src/Core/Banshee.Base/Banshee.SmartPlaylist/QueryBuilderModel.cs:45
+ msgid "Random"
+ msgstr "Casuale"
+
+-#: ../src/Banshee.Base/Banshee.SmartPlaylist/QueryBuilderModel.cs:46
+-#: ../src/Banshee.Base/Banshee.SmartPlaylist/QueryBuilderModel.cs:709
+-#: ../src/PlaylistView.cs:108
+-msgid "Album"
+-msgstr "Album"
+-
+-#: ../src/Banshee.Base/Banshee.SmartPlaylist/QueryBuilderModel.cs:47
+-#: ../src/Banshee.Base/Banshee.SmartPlaylist/QueryBuilderModel.cs:707
+-#: ../src/PlaylistView.cs:102
+-msgid "Artist"
+-msgstr "Artista"
+-
+-#: ../src/Banshee.Base/Banshee.SmartPlaylist/QueryBuilderModel.cs:49
+-#: ../src/Banshee.Base/Banshee.SmartPlaylist/QueryBuilderModel.cs:708
+-#: ../src/PlaylistView.cs:105
+-msgid "Title"
+-msgstr "Titolo"
+-
+-#: ../src/Banshee.Base/Banshee.SmartPlaylist/QueryBuilderModel.cs:50
++#: ../src/Core/Banshee.Base/Banshee.SmartPlaylist/QueryBuilderModel.cs:50
+ msgid "Highest Rating"
+-msgstr ""
++msgstr "Giudizio molto alto"
+
+-#: ../src/Banshee.Base/Banshee.SmartPlaylist/QueryBuilderModel.cs:51
++#: ../src/Core/Banshee.Base/Banshee.SmartPlaylist/QueryBuilderModel.cs:51
+ msgid "Lowest Rating"
+-msgstr ""
++msgstr "Giudizio molto basso"
+
+-#: ../src/Banshee.Base/Banshee.SmartPlaylist/QueryBuilderModel.cs:52
++#: ../src/Core/Banshee.Base/Banshee.SmartPlaylist/QueryBuilderModel.cs:52
+ msgid "Least Often Played"
+-msgstr ""
++msgstr "Meno riprodotto"
+
+-#: ../src/Banshee.Base/Banshee.SmartPlaylist/QueryBuilderModel.cs:53
++#: ../src/Core/Banshee.Base/Banshee.SmartPlaylist/QueryBuilderModel.cs:53
+ msgid "Most Often Played"
+-msgstr ""
++msgstr "Più riprodotto"
+
+-#: ../src/Banshee.Base/Banshee.SmartPlaylist/QueryBuilderModel.cs:54
++#: ../src/Core/Banshee.Base/Banshee.SmartPlaylist/QueryBuilderModel.cs:54
+ msgid "Most Recently Added"
+-msgstr ""
++msgstr "Aggiunte più recentemente"
+
+-#: ../src/Banshee.Base/Banshee.SmartPlaylist/QueryBuilderModel.cs:55
++#: ../src/Core/Banshee.Base/Banshee.SmartPlaylist/QueryBuilderModel.cs:55
+ msgid "Least Recently Added"
+-msgstr ""
++msgstr "Aggiunte meno recentemente"
+
+-#: ../src/Banshee.Base/Banshee.SmartPlaylist/QueryBuilderModel.cs:56
++#: ../src/Core/Banshee.Base/Banshee.SmartPlaylist/QueryBuilderModel.cs:56
+ msgid "Most Recently Played"
+-msgstr ""
++msgstr "Riprodotte più recentemente"
+
+-#: ../src/Banshee.Base/Banshee.SmartPlaylist/QueryBuilderModel.cs:57
++#: ../src/Core/Banshee.Base/Banshee.SmartPlaylist/QueryBuilderModel.cs:57
+ msgid "Least Recently Played"
+-msgstr ""
++msgstr "Riprodotte meno recentemente"
+
+-#: ../src/Banshee.Base/Banshee.SmartPlaylist/QueryBuilderModel.cs:62
++#: ../src/Core/Banshee.Base/Banshee.SmartPlaylist/QueryBuilderModel.cs:62
+ msgid "songs"
+-msgstr "canzoni"
++msgstr "tracce"
+
+-#: ../src/Banshee.Base/Banshee.SmartPlaylist/QueryBuilderModel.cs:63
++#: ../src/Core/Banshee.Base/Banshee.SmartPlaylist/QueryBuilderModel.cs:63
+ msgid "minutes"
+ msgstr "minuti"
+
+-#: ../src/Banshee.Base/Banshee.SmartPlaylist/QueryBuilderModel.cs:64
++#: ../src/Core/Banshee.Base/Banshee.SmartPlaylist/QueryBuilderModel.cs:64
+ msgid "hours"
+ msgstr "ore"
+
+-#: ../src/Banshee.Base/Banshee.SmartPlaylist/QueryBuilderModel.cs:65
++#: ../src/Core/Banshee.Base/Banshee.SmartPlaylist/QueryBuilderModel.cs:65
+ msgid "MB"
+ msgstr "MB"
+
+-#: ../src/Banshee.Base/Banshee.SmartPlaylist/QueryBuilderModel.cs:325
++#: ../src/Core/Banshee.Base/Banshee.SmartPlaylist/QueryBuilderModel.cs:325
+ msgid "Seconds"
+ msgstr "Secondi"
+
+-#: ../src/Banshee.Base/Banshee.SmartPlaylist/QueryBuilderModel.cs:326
+-#: ../src/Banshee.Base/Banshee.SmartPlaylist/QueryBuilderModel.cs:460
++#: ../src/Core/Banshee.Base/Banshee.SmartPlaylist/QueryBuilderModel.cs:326
++#: ../src/Core/Banshee.Base/Banshee.SmartPlaylist/QueryBuilderModel.cs:460
+ msgid "Minutes"
+ msgstr "Minuti"
+
+-#: ../src/Banshee.Base/Banshee.SmartPlaylist/QueryBuilderModel.cs:327
+-#: ../src/Banshee.Base/Banshee.SmartPlaylist/QueryBuilderModel.cs:461
++#: ../src/Core/Banshee.Base/Banshee.SmartPlaylist/QueryBuilderModel.cs:327
++#: ../src/Core/Banshee.Base/Banshee.SmartPlaylist/QueryBuilderModel.cs:461
+ msgid "Hours"
+ msgstr "Ore"
+
+-#: ../src/Banshee.Base/Banshee.SmartPlaylist/QueryBuilderModel.cs:462
++#: ../src/Core/Banshee.Base/Banshee.SmartPlaylist/QueryBuilderModel.cs:462
+ msgid "Days"
+ msgstr "Giorni"
+
+-#: ../src/Banshee.Base/Banshee.SmartPlaylist/QueryBuilderModel.cs:463
++#: ../src/Core/Banshee.Base/Banshee.SmartPlaylist/QueryBuilderModel.cs:463
+ msgid "Weeks"
+ msgstr "Settimane"
+
+-#: ../src/Banshee.Base/Banshee.SmartPlaylist/QueryBuilderModel.cs:464
++#: ../src/Core/Banshee.Base/Banshee.SmartPlaylist/QueryBuilderModel.cs:464
+ msgid "Months"
+ msgstr "Mesi"
+
+-#: ../src/Banshee.Base/Banshee.SmartPlaylist/QueryBuilderModel.cs:465
++#: ../src/Core/Banshee.Base/Banshee.SmartPlaylist/QueryBuilderModel.cs:465
+ msgid "Years"
+ msgstr "Anni"
+
+-#: ../src/Banshee.Base/Banshee.SmartPlaylist/QueryBuilderModel.cs:576
+-#: ../src/Banshee.Base/Banshee.SmartPlaylist/QueryBuilderModel.cs:601
++#: ../src/Core/Banshee.Base/Banshee.SmartPlaylist/QueryBuilderModel.cs:576
++#: ../src/Core/Banshee.Base/Banshee.SmartPlaylist/QueryBuilderModel.cs:601
+ msgid "ago"
+ msgstr "fa"
+
+-#: ../src/Banshee.Base/Banshee.SmartPlaylist/QueryBuilderModel.cs:711
+-msgid "Date Added"
+-msgstr "Data di aggiunta"
+-
+-#: ../src/Banshee.Base/Banshee.SmartPlaylist/QueryBuilderModel.cs:712
+-#: ../src/PlaylistView.cs:137
+-msgid "Last Played"
+-msgstr "Ultimo passaggio"
+-
+-#: ../src/Banshee.Base/Banshee.SmartPlaylist/QueryBuilderModel.cs:713
++#: ../src/Core/Banshee.Base/Banshee.SmartPlaylist/QueryBuilderModel.cs:792
+ msgid "Duration"
+ msgstr "Durata"
+
+-#: ../src/Banshee.Base/Banshee.SmartPlaylist/QueryBuilderModel.cs:714
++#: ../src/Core/Banshee.Base/Banshee.SmartPlaylist/QueryBuilderModel.cs:793
+ msgid "Play Count"
+-msgstr ""
++msgstr "Contatore riproduzione"
+
+-#: ../src/Banshee.Base/Banshee.SmartPlaylist/QueryBuilderModel.cs:715
+-#: ../src/Banshee.Base/Sources/PlaylistSource.cs:65
++#: ../src/Core/Banshee.Base/Banshee.SmartPlaylist/QueryBuilderModel.cs:794
++msgid "Track Number"
++msgstr "Numero traccia"
++
++#: ../src/Core/Banshee.Base/Banshee.SmartPlaylist/QueryBuilderModel.cs:797
++#: ../src/Core/Banshee.Base/Sources/AbstractPlaylistSource.cs:58
+ msgid "Playlist"
+ msgstr "Scaletta"
+
+-#: ../src/Banshee.Base/Banshee.SmartPlaylist/QueryBuilderModel.cs:717
++#: ../src/Core/Banshee.Base/Banshee.SmartPlaylist/QueryBuilderModel.cs:811
++#: ../src/Core/Banshee.Base/Banshee.SmartPlaylist/SmartPlaylistSource.cs:127
++msgid "Smart Playlist"
++msgstr "Scaletta intelligente"
++
++#: ../src/Core/Banshee.Base/Banshee.SmartPlaylist/QueryBuilderModel.cs:815
+ msgid "Path"
+ msgstr "Percorso"
+
+-#: ../src/Banshee.Base/Banshee.SmartPlaylist/SmartPlaylistCore.cs:36
+-msgid "Smart Playlists"
+-msgstr "Scaletta intelligente"
++#: ../src/Core/Banshee.Base/Banshee.SmartPlaylist/SmartPlaylistCore.cs:156
++msgid "New _Smart Playlist..."
++msgstr "Nuova scaletta _intelligente..."
+
+-# cambiato un po' (criteri è meglio di interrogazioni in italiano IMHO)
+-#: ../src/Banshee.Base/Banshee.SmartPlaylist/SmartPlaylistCore.cs:42
+-msgid ""
+-"Create playlists that automatically add and remove songs based on "
+-"customizable queries."
+-msgstr "Crea scalette che aggiungono e rimuovono automaticamente canzoni in base a criteri personalizzabili."
++#: ../src/Core/Banshee.Base/Banshee.SmartPlaylist/SmartPlaylistCore.cs:162
++msgid "New Smart Playlist _from Search..."
++msgstr "Nuova scaletta intelligente _da ricerca..."
+
+-#: ../src/Banshee.Base/Banshee.SmartPlaylist/SmartPlaylistCore.cs:138
+-msgid "New Smart Playlist..."
+-msgstr "Nuova scaletta intelligente..."
+-
+-#: ../src/Banshee.Base/Banshee.SmartPlaylist/SmartPlaylistCore.cs:144
+-msgid "New Smart Playlist from Search..."
+-msgstr "Nuova scaletta intelligente da ricerca..."
+-
+-#: ../src/Banshee.Base/Banshee.SmartPlaylist/SmartPlaylistSource.cs:74
++#: ../src/Core/Banshee.Base/Banshee.SmartPlaylist/SmartPlaylistSource.cs:117
+ msgid "Delete Smart Playlist"
+ msgstr "Elimina scaletta intelligente"
+
+-#: ../src/Banshee.Base/Banshee.SmartPlaylist/SmartPlaylistSource.cs:78
+-msgid "Smart Playlist"
+-msgstr "Scaletta intelligente"
++#: ../src/Core/Banshee.Base/Banshee.SmartPlaylist/SmartPlaylistSource.cs:122
++msgid "Edit Smart Playlist..."
++msgstr "Modifica scaletta intelligente..."
+
+-#: ../src/Banshee.Base/Banshee.Web/Browser.cs:43
++#: ../src/Core/Banshee.Base/Banshee.SmartPlaylist/SmartPlaylistSource.cs:443
++msgid "Smart Playlist has Dependencies"
++msgstr "Scaletta intelligente ha dipendenze"
++
++#: ../src/Core/Banshee.Base/Banshee.SmartPlaylist/SmartPlaylistSource.cs:445
++#, csharp-format
++msgid ""
++"{0} is depended on by other smart playlists. Are you sure you want to delete "
++"this and all dependent smart playlists?"
++msgstr ""
++"{0} è dipendente da un'altra scaletta intelligente. Eliminare questa e tutte "
++"le scaletta intelligenti dipendenti?"
++
++#: ../src/Core/Banshee.Base/Banshee.Web/Browser.cs:43
+ msgid "Could not launch URL"
+ msgstr "Impossibile avviare l'URL"
+
+-#: ../src/Banshee.Base/Banshee.Web/Browser.cs:44
++#: ../src/Core/Banshee.Base/Banshee.Web/Browser.cs:44
+ #, csharp-format
+ msgid ""
+ "{0} could not be opened: {1}\n"
+ "\n"
+ " Check your 'Preferred Applications' settings."
+ msgstr ""
++"{0} impossibile aprire: {1}\n"
++"\n"
++" Controllare la configurazione 'applicazioni preferite'."
+
+-#: ../src/Banshee.Base/BatchTranscoder.cs:117
+-#: ../src/Banshee.Base/BatchTranscoder.cs:118
++#: ../src/Core/Banshee.Base/BatchTranscoder.cs:136
++#: ../src/Core/Banshee.Base/BatchTranscoder.cs:137
+ msgid "Converting Files"
+ msgstr "Conversione dei file"
+
+-#: ../src/Banshee.Base/BatchTranscoder.cs:120
++#: ../src/Core/Banshee.Base/BatchTranscoder.cs:139
+ msgid ""
+ "Files are currently being converted to another audio format. Would you like "
+ "to stop this?"
+ msgstr ""
++"Si sta convertendo il file in un altro formato audio. Si vuole fermare?"
+
+-#: ../src/Banshee.Base/BatchTranscoder.cs:123
++#: ../src/Core/Banshee.Base/BatchTranscoder.cs:142
+ msgid "Initializing Transcoder..."
+-msgstr "Inizializzazione Transcoder..."
++msgstr "Inizializzazione transcoder..."
+
+-#: ../src/Banshee.Base/ComponentInitializer.cs:94
++#: ../src/Core/Banshee.Base/ComponentInitializer.cs:94
+ msgid "Could not initialize component"
+-msgstr "Impossibile inizialzzare il componente"
++msgstr "Impossibile inizializzare il componente"
+
+-#: ../src/Banshee.Base/FileImportSource.cs:55
+-msgid "Import Files to Library"
+-msgstr "Importa file nella libreria"
+-
+-#: ../src/Banshee.Base/FileImportSource.cs:82
+-msgid "Local Files"
+-msgstr "File locali"
+-
+-#: ../src/Banshee.Base/FolderImportSource.cs:55
+-msgid "Import Folder to Library"
+-msgstr "Importa cartella nella libreria"
+-
+-#: ../src/Banshee.Base/FolderImportSource.cs:80
+-msgid "Local Folder"
+-msgstr "Cartella locale"
+-
+-#: ../src/Banshee.Base/Dap/DapCore.cs:101
++#: ../src/Core/Banshee.Base/Dap/DapCore.cs:107
+ msgid "Cannot initialize DapCore because HalCore is not initialized"
+ msgstr "Impossibile inizializzare DapCore perché HalCore non è inizializzato"
+
+-#: ../src/Banshee.Base/Dap/Dap.cs:328
+-#: ../src/Banshee.Base/Sources/DapSource.cs:375
++#: ../src/Core/Banshee.Base/Dap/Dap.cs:356
++#: ../src/Core/Banshee.Base/Sources/DapSource.cs:399
+ msgid "Device"
+ msgstr "Dispositivo"
+
+-#: ../src/Banshee.Base/Dap/Dap.cs:329
++#. 1. remove everything in the remove queue if it's on the device
++#. 2. Add everything in the tracklist that isn't on the device
++#. 3. Sync playlists?
++#: ../src/Core/Banshee.Base/Dap/Dap.cs:357
++#: ../src/Dap/Banshee.Dap.Mtp/MtpDap.cs:432
+ #, csharp-format
+ msgid "Synchronizing {0}"
+ msgstr "Sincronizzazione di {0}"
+
+-#: ../src/Banshee.Base/Dap/Dap.cs:333
++#: ../src/Core/Banshee.Base/Dap/Dap.cs:361
+ msgid "Waiting for transcoder..."
+-msgstr ""
++msgstr "Attendere per il transcoder..."
+
+-#: ../src/Banshee.Base/Dap/Dap.cs:420 ../src/Banshee.Base/Dap/Dap.cs:441
++#: ../src/Core/Banshee.Base/Dap/Dap.cs:447
++#: ../src/Core/Banshee.Base/Dap/Dap.cs:476
+ msgid "Processing..."
+ msgstr "Elaborazione..."
+
+-#: ../src/Banshee.Base/Dap/Dap.cs:460
++#: ../src/Core/Banshee.Base/Dap/Dap.cs:495
+ msgid "Could not encode some files"
+ msgstr "Impossibile codificare alcuni file"
+
+-#: ../src/Banshee.Base/Dap/Dap.cs:462
++#: ../src/Core/Banshee.Base/Dap/Dap.cs:497
+ msgid ""
+ "Some files could not be encoded to the proper format. They will not be saved "
+ "to the device if you continue."
+ msgstr ""
++"Non è stato possibile codificare alcuni file nel formato adeguato. Se si "
++"continua non verranno salvati sul dispositivo."
+
+-#: ../src/Banshee.Base/Dap/Dap.cs:467
++#: ../src/Core/Banshee.Base/Dap/Dap.cs:502
+ msgid "Continue synchronizing"
+ msgstr "Continua sincronizzazione"
+
+ #. Translators: {0} is the name assigned to a Digital Audio Player by its owner
+-#: ../src/Banshee.Base/Dap/DapPropertiesDialog.cs:54
++#: ../src/Core/Banshee.Base/Dap/DapPropertiesDialog.cs:54
++#: ../src/Core/Banshee.Base/Sources/DapSource.cs:403
+ #, csharp-format
+ msgid "{0} Properties"
+ msgstr "Proprietà di {0}"
+
+-#: ../src/Banshee.Base/Dap/DapPropertiesDialog.cs:78
+-#: ../src/Banshee.Base/Dap/DapPropertiesDialog.cs:81
++#: ../src/Core/Banshee.Base/Dap/DapPropertiesDialog.cs:78
++#: ../src/Core/Banshee.Base/Dap/DapPropertiesDialog.cs:81
+ msgid "Device name"
+ msgstr "Nome del dispositivo"
+
+-#: ../src/Banshee.Base/Dap/DapPropertiesDialog.cs:85
+-#: ../src/Banshee.Base/Dap/DapPropertiesDialog.cs:88
++#: ../src/Core/Banshee.Base/Dap/DapPropertiesDialog.cs:86
++#: ../src/Core/Banshee.Base/Dap/DapPropertiesDialog.cs:89
+ msgid "Owner name"
+ msgstr "Nome del proprietario"
+
+-#: ../src/Banshee.Base/Dap/DapPropertiesDialog.cs:93
++#: ../src/Core/Banshee.Base/Dap/DapPropertiesDialog.cs:99
+ msgid "Encode to"
+-msgstr ""
++msgstr "Codifica a"
+
+-#: ../src/Banshee.Base/Dap/DapPropertiesDialog.cs:97
++#: ../src/Core/Banshee.Base/Dap/DapPropertiesDialog.cs:109
+ msgid "Volume usage"
+-msgstr ""
++msgstr "Uso del volume"
+
+-#: ../src/Banshee.Base/Dap/DapPropertiesDialog.cs:109
++#: ../src/Core/Banshee.Base/Dap/DapPropertiesDialog.cs:121
+ msgid "Advanced details"
+ msgstr "Dettagli avanzati"
+
+-#: ../src/Banshee.Base/Globals.cs:78 ../src/Banshee.Base/Globals.cs:87
+-#: ../src/Banshee.Base/Globals.cs:91
++#: ../src/Core/Banshee.Base/FileImportSource.cs:55
++msgid "Import Files to Library"
++msgstr "Importa file nella libreria"
++
++#: ../src/Core/Banshee.Base/FileImportSource.cs:73
++msgid "Local Files"
++msgstr "File locali"
++
++#: ../src/Core/Banshee.Base/FileNamePattern.cs:101
++msgid "Count"
++msgstr "Contatore"
++
++#: ../src/Core/Banshee.Base/FileNamePattern.cs:106
++msgid "Number"
++msgstr "Numero"
++
++#: ../src/Core/Banshee.Base/FileNamePattern.cs:111
++msgid "Count (unsorted)"
++msgstr "Contatore (non ordinato)"
++
++#: ../src/Core/Banshee.Base/FileNamePattern.cs:116
++msgid "Number (unsorted)"
++msgstr "Numero (non ordinato)"
++
++#: ../src/Core/Banshee.Base/FolderImportSource.cs:55
++msgid "Import Folder to Library"
++msgstr "Importa cartella nella libreria"
++
++#: ../src/Core/Banshee.Base/FolderImportSource.cs:71
++msgid "Local Folder"
++msgstr "Cartella locale"
++
++#: ../src/Core/Banshee.Base/Globals.cs:111
++#: ../src/Core/Banshee.Base/Globals.cs:120
++#: ../src/Core/Banshee.Base/Globals.cs:178
++#: ../src/Core/Banshee.Base/Globals.cs:179
+ msgid "Starting background tasks"
+-msgstr ""
++msgstr "Avviare i compiti in sottofondo"
+
+-#: ../src/Banshee.Base/Globals.cs:88
++#: ../src/Core/Banshee.Base/Globals.cs:121
+ msgid "Device support will be disabled for this instance (no HAL)"
+ msgstr ""
++"Il supporto al dispositivo verrà disabilitato per questa istanza (nessun HAL)"
+
+-#: ../src/Banshee.Base/Globals.cs:92
++#: ../src/Core/Banshee.Base/Globals.cs:124
++#: ../src/Core/Banshee.Base/Globals.cs:167
++msgid "Initializing audio engine"
++msgstr "Inizializzazione motore audio"
++
++#: ../src/Core/Banshee.Base/Globals.cs:125
+ msgid "Detecting network settings"
+-msgstr ""
++msgstr "Riconoscimento preferenze di rete"
+
+-#: ../src/Banshee.Base/Globals.cs:93
++#: ../src/Core/Banshee.Base/Globals.cs:126
+ msgid "Creating action manager"
+-msgstr ""
++msgstr "Creazione azioni di gestione"
+
+-#: ../src/Banshee.Base/Globals.cs:94
++#: ../src/Core/Banshee.Base/Globals.cs:127
+ msgid "Loading music library"
+ msgstr "Caricamento libreria musicale"
+
+-#: ../src/Banshee.Base/Globals.cs:99 ../src/Banshee.Base/Globals.cs:101
+-#: ../src/Banshee.Base/Globals.cs:115
+-msgid "Initializing audio"
+-msgstr "Inizializzazione audio"
++#: ../src/Core/Banshee.Base/Globals.cs:132
++msgid "Initializing audio profiles"
++msgstr "Inizializzazione profili audio"
+
+-#: ../src/Banshee.Base/Globals.cs:117
++#: ../src/Core/Banshee.Base/Globals.cs:169
+ msgid "Initializing audio CD support"
+ msgstr "Inizializzazione del supporto per audio CD"
+
+-#: ../src/Banshee.Base/Globals.cs:118
++#: ../src/Core/Banshee.Base/Globals.cs:170
+ msgid "Audio CD support will be disabled for this instance"
+ msgstr "Il supporto ai CD audio sarà disabilitato per questa istanza"
+
+-#: ../src/Banshee.Base/Globals.cs:120
++#: ../src/Core/Banshee.Base/Globals.cs:172
+ msgid "Initializing digital audio player support"
+ msgstr "Inizializzazione del supporto per lettori audio digitali"
+
+-#: ../src/Banshee.Base/Globals.cs:121
++#: ../src/Core/Banshee.Base/Globals.cs:173
+ msgid "DAP support will be disabled for this instance"
+ msgstr "Il supporto per i DAP sarà disabilitato per questa istanza"
+
+-#: ../src/Banshee.Base/Globals.cs:123
++#: ../src/Core/Banshee.Base/Globals.cs:175
+ msgid "Initializing CD writing support"
+-msgstr "Inizilizzazione del supporto per scrittura CD"
++msgstr "Inizializzazione del supporto per scrittura CD"
+
+-#: ../src/Banshee.Base/Globals.cs:124
++#: ../src/Core/Banshee.Base/Globals.cs:176
+ msgid "CD burning support will be disabled for this instance"
+-msgstr "Il supporto per la masterizzazione di CD sarà disabilitato per questa istanza"
++msgstr ""
++"Il supporto per la masterizzazione di CD sarà disabilitato per questa istanza"
+
+-#: ../src/Banshee.Base/Globals.cs:126
++#: ../src/Core/Banshee.Base/Globals.cs:181
++#: ../src/Core/Banshee.Base/Globals.cs:182
+ msgid "Initializing plugins"
+ msgstr "Inizializzazione dei plugin"
+
+-#: ../src/Banshee.Base/Globals.cs:127
+-msgid "Initializing background tasks"
+-msgstr "Inizializzazione delle attività in background"
++#: ../src/Core/Banshee.Base/Globals.cs:183
++msgid "Initializing scripts"
++msgstr "Inizializzazione script"
+
+-#: ../src/Banshee.Base/Gui/AboutDialog.cs:46
++#: ../src/Core/Banshee.Base/Globals.cs:186
++msgid "Loading user interface"
++msgstr "Caricamento interfaccia utente"
++
++#: ../src/Core/Banshee.Base/GstTranscoder.cs:83
++msgid "Could not create transcoder"
++msgstr "Impossibile creare il transcoder"
++
++#: ../src/Core/Banshee.Base/Gui/AboutDialog.cs:46
+ msgid "Primary Development"
+-msgstr ""
++msgstr "Sviluppatore principale"
+
+-#: ../src/Banshee.Base/Gui/AboutDialog.cs:53
++#: ../src/Core/Banshee.Base/Gui/AboutDialog.cs:53
+ msgid "Contributors"
+-msgstr ""
++msgstr "Contributori"
+
+-#: ../src/Banshee.Base/Gui/AboutDialog.cs:79
++#: ../src/Core/Banshee.Base/Gui/AboutDialog.cs:78
+ msgid "Music Management and Playback for GNOME."
+ msgstr "Gestione e riproduzione di musica per GNOME"
+
+-#: ../src/Banshee.Base/Gui/AboutDialog.cs:81
++#: ../src/Core/Banshee.Base/Gui/AboutDialog.cs:80
+ msgid ""
+-"Copyright © 2005-2006 Novell, Inc.\n"
++"Copyright © 2005-2007 Novell, Inc.\n"
+ "Copyright © 2005 Aaron Bockover"
+ msgstr ""
+ "Copyright © 2005-2006 Novell, Inc.\n"
+ "Copyright © 2005 Aaron Bockover"
+
+-#: ../src/Banshee.Base/Gui/AboutDialog.cs:86
++#: ../src/Core/Banshee.Base/Gui/AboutDialog.cs:85
+ msgid "Banshee Wiki"
+ msgstr "Il Wiki di Banshee"
+
+-#: ../src/Banshee.Base/Gui/ConfirmShutdownDialog.cs:45
++#: ../src/Core/Banshee.Base/Gui/ConfirmShutdownDialog.cs:45
+ msgid "Important tasks are running"
+ msgstr "Sono in esecuzione alcuni compiti importanti"
+
+-#: ../src/Banshee.Base/Gui/ConfirmShutdownDialog.cs:47
++#: ../src/Core/Banshee.Base/Gui/ConfirmShutdownDialog.cs:47
+ msgid ""
+ "Closing Banshee now will cancel any currently running tasks. They cannot be "
+ "resumed automatically the next time Banshee is run."
+ msgstr ""
++"La chiusura di Banshee cancellerà tutti i compiti in esecuzione. Non "
++"verranno ripresi automaticamente al prossimo avvio di Banshee."
+
+-#: ../src/Banshee.Base/Gui/ConfirmShutdownDialog.cs:54
++#: ../src/Core/Banshee.Base/Gui/ConfirmShutdownDialog.cs:54
+ msgid "Quit anyway"
+ msgstr "Esci comunque"
+
+-#: ../src/Banshee.Base/Gui/ConfirmShutdownDialog.cs:55
++#: ../src/Core/Banshee.Base/Gui/ConfirmShutdownDialog.cs:55
+ msgid "Continue running"
+ msgstr "Continua esecuzione"
+
+-#: ../src/Banshee.Base/Gui/ExceptionDialog.cs:52
++#: ../src/Core/Banshee.Base/Gui/ExceptionDialog.cs:52
+ msgid "Banshee Encountered a Fatal Error"
+-msgstr ""
++msgstr "Banshee ha riscontrato un errore fatale"
+
+-#: ../src/Banshee.Base/Gui/ExceptionDialog.cs:88
++#: ../src/Core/Banshee.Base/Gui/ExceptionDialog.cs:89
+ msgid "Error Details"
+ msgstr "Dettagli dell'errore"
+
+-#: ../src/Banshee.Base/Gui/ExceptionDialog.cs:134
++#: ../src/Core/Banshee.Base/Gui/ExceptionDialog.cs:135
+ msgid "An unhandled exception was thrown: "
+-msgstr ""
++msgstr "E' stata lanciata un'eccezione non gestita: "
+
+-#: ../src/Banshee.Base/Gui/ImageFileChooserDialog.cs:42
++#: ../src/Core/Banshee.Base/Gui/ImageFileChooserDialog.cs:41
+ msgid "Select album cover image"
+-msgstr ""
++msgstr "Seleziona immagine copertina album"
+
+-#: ../src/Banshee.Base/Gui/ImageFileChooserDialog.cs:57
++#: ../src/Core/Banshee.Base/Gui/ImageFileChooserDialog.cs:49
+ msgid "All image files"
+ msgstr "Tutti i file immagine"
+
+-#: ../src/Banshee.Base/Gui/ImageFileChooserDialog.cs:64
++#: ../src/Core/Banshee.Base/Gui/ImageFileChooserDialog.cs:56
+ msgid "JPEG image files"
+ msgstr "File immagine JPEG"
+
+-#: ../src/Banshee.Base/Gui/ImageFileChooserDialog.cs:69
++#: ../src/Core/Banshee.Base/Gui/ImageFileChooserDialog.cs:61
+ msgid "PNG image files"
+ msgstr "File immagine PNG"
+
+-#: ../src/Banshee.Base/Gui/LogCoreDialog.cs:51
++#: ../src/Core/Banshee.Base/Gui/LogCoreDialog.cs:51
+ msgid "Log Viewer"
+ msgstr "Visualizzatore registro"
+
+-#: ../src/Banshee.Base/Gui/LogCoreDialog.cs:87
++#: ../src/Core/Banshee.Base/Gui/LogCoreDialog.cs:87
+ msgid "Time Stamp"
+ msgstr "Timestamp"
+
+-#: ../src/Banshee.Base/Gui/LogCoreDialog.cs:106
+-#: ../src/Banshee.Base/Sources/ImportErrorsSource.cs:70
++#: ../src/Core/Banshee.Base/Gui/LogCoreDialog.cs:106
++#: ../src/Core/Banshee.Base/Sources/ImportErrorsSource.cs:70
++#: ../src/Plugins/Banshee.Plugins.Podcast/UI/ErrorsSource.cs:62
+ msgid "Message"
+ msgstr "Messaggio"
+
+-#: ../src/Banshee.Base/Gui/LogCoreDialog.cs:118
++#: ../src/Core/Banshee.Base/Gui/LogCoreDialog.cs:118
+ msgid "Show:"
+ msgstr "Mostra:"
+
+-#: ../src/Banshee.Base/Gui/LogCoreDialog.cs:135
++#: ../src/Core/Banshee.Base/Gui/LogCoreDialog.cs:135
+ msgid "All Log Entries"
+ msgstr "Tutte le voci di registro"
+
+-#: ../src/Banshee.Base/Gui/LogCoreDialog.cs:136
++#: ../src/Core/Banshee.Base/Gui/LogCoreDialog.cs:136
+ msgid "Only Error Messages"
+ msgstr "Solo i messaggi d'errore"
+
+-#: ../src/Banshee.Base/Gui/LogCoreDialog.cs:137
++#: ../src/Core/Banshee.Base/Gui/LogCoreDialog.cs:137
+ msgid "Only Warning Messages"
+ msgstr "Solo i messaggi di avvertimento"
+
+-#: ../src/Banshee.Base/Gui/LogCoreDialog.cs:138
++#: ../src/Core/Banshee.Base/Gui/LogCoreDialog.cs:138
+ msgid "Only Information Messages"
+ msgstr "Solo i messaggi informativi"
+
+-#: ../src/Banshee.Base/Gui/LogCoreDialog.cs:139
++#: ../src/Core/Banshee.Base/Gui/LogCoreDialog.cs:139
+ msgid "Only Debug Messages"
+ msgstr "Solo i messaggi di debug"
+
+-#: ../src/Banshee.Base/Gui/LogCoreDialog.cs:154
++#: ../src/Core/Banshee.Base/Gui/LogCoreDialog.cs:154
+ msgid "Entry Details:"
+ msgstr "Dettagli della voce:"
+
+-#: ../src/Banshee.Base/Gui/OpenLocationDialog.cs:53
++#: ../src/Core/Banshee.Base/Gui/OpenLocationDialog.cs:54
+ msgid "Browse..."
+ msgstr "Esplora..."
+
+-#: ../src/Banshee.Base/Gui/PreferencesDialog.cs:61
++#: ../src/Core/Banshee.Base/Gui/PreferencesDialog.cs:67
+ msgid "Select library location"
+-msgstr ""
++msgstr "Seleziona la posizione della libreria"
+
+-#: ../src/Banshee.Base/Gui/PreferencesDialog.cs:71
++#: ../src/Core/Banshee.Base/Gui/PreferencesDialog.cs:120
+ msgid ""
+ "Enable this option to save tags and other metadata inside supported audio "
+ "files"
+-msgstr "Abilitare questa opzione per salvare i tag e altri metadati all'interno dei file audio che lo supportano"
++msgstr ""
++"Abilitare questa opzione per salvare i tag e altri metadati all'interno dei "
++"file audio supportati"
+
+-#: ../src/Banshee.Base/Gui/SourceView.cs:432
++#: ../src/Core/Banshee.Base/Gui/PreferencesDialog.cs:124
++msgid ""
++"Error correction tries to work around problem areas on a disc, such as "
++"surface scratches, but will slow down importing substantially."
++msgstr ""
++"La correzione di errori prova a risolvere problemi di aree su un disco, "
++"quali i graffi, ma renderà più lenta l'importazione sostanzialmente."
++
++#: ../src/Core/Banshee.Base/Gui/SourceView.cs:540
+ msgid "Could not import tracks"
+ msgstr "Impossibile importare le tracce"
+
+-#: ../src/Banshee.Base/Gui/ToggleStates.cs:78
++#: ../src/Core/Banshee.Base/Gui/ToggleStates.cs:40
++msgid "Repeat None"
++msgstr "Non ripetere"
++
++#: ../src/Core/Banshee.Base/Gui/ToggleStates.cs:49
++msgid "Repeat Single"
++msgstr "Ripeti singolarmente"
++
++#: ../src/Core/Banshee.Base/Gui/ToggleStates.cs:58
++msgid "Repeat All"
++msgstr "Ripeti tutte"
++
++#: ../src/Core/Banshee.Base/Gui/ToggleStates.cs:67
++msgid "Shuffle"
++msgstr "Casuale"
++
++#: ../src/Core/Banshee.Base/Gui/ToggleStates.cs:78
+ msgid "Continuous"
+-msgstr ""
++msgstr "Contigui"
+
+-#: ../src/Banshee.Base/Gui/TrackEditor.cs:212
++#: ../src/Core/Banshee.Base/Gui/TrackEditor.cs:232
+ msgid "Automatically set all track numbers in increasing order"
+ msgstr "Imposta automaticamente tutti i numeri di traccia in ordine crescente"
+
+-#: ../src/Banshee.Base/Gui/TrackEditor.cs:213
++#: ../src/Core/Banshee.Base/Gui/TrackEditor.cs:233
+ msgid "Set all track counts to this value"
+ msgstr "Imposta tutti i campi totale tracce a questo valore"
+
+-#: ../src/Banshee.Base/Gui/TrackEditor.cs:214
++#: ../src/Core/Banshee.Base/Gui/TrackEditor.cs:234
+ msgid "Set all artists to this value"
+ msgstr "Imposta tutti i campi artista a questo valore"
+
+-#: ../src/Banshee.Base/Gui/TrackEditor.cs:215
++#: ../src/Core/Banshee.Base/Gui/TrackEditor.cs:235
+ msgid "Set all albums to this value"
+ msgstr "Imposta tutti i campi album al questo valore"
+
+-#: ../src/Banshee.Base/Gui/TrackEditor.cs:216
++#: ../src/Core/Banshee.Base/Gui/TrackEditor.cs:236
+ msgid "Set all genres to this value"
+ msgstr "Imposta tutti i campi genere a questo valore"
+
+-#: ../src/Banshee.Base/Gui/TrackEditor.cs:217
++#: ../src/Core/Banshee.Base/Gui/TrackEditor.cs:237
+ msgid "Set all years to this value"
+ msgstr "Imposta tutti i campi anno a questo valore"
+
+-#: ../src/Banshee.Base/Gui/TrackEditor.cs:218
++#: ../src/Core/Banshee.Base/Gui/TrackEditor.cs:238
+ msgid ""
+-"Set all common fields in all selected tracks to the values currently set"
+-msgstr "mposta tutti i campi comuni a tutte le tracce selezionate al valore attualmente impostato"
++"Apply the values of this track set for the Artist, Album Title, Genre, Track "
++"count, Year, and Rating fields to the rest of the selected tracks in this "
++"editor."
++msgstr ""
++"Applica i valori artista, album, titolo, genere, contatore traccia, anno e "
++"giudizio di questa traccia nei campi del resto delle tracce selezionate "
++"nell'editore."
+
+-#: ../src/Banshee.Base/Gui/TrackEditor.cs:219
++#: ../src/Core/Banshee.Base/Gui/TrackEditor.cs:239
+ msgid "Set all ratings to this value"
+ msgstr "Imposta tutti i campi giudizio a questo valore"
+
+-#: ../src/Banshee.Base/Gui/TrackEditor.cs:271
++#: ../src/Core/Banshee.Base/Gui/TrackEditor.cs:300
+ msgid "Never played"
+ msgstr "Mai riprodotta"
+
+-#: ../src/Banshee.Base/Gui/TrackEditor.cs:285
++#: ../src/Core/Banshee.Base/Gui/TrackEditor.cs:314
+ #, csharp-format
+ msgid "Editing song {0} of {1}"
+-msgstr "Modifica della canzone {0} di {1}"
++msgstr "Modifica della traccia {0} di {1}"
+
+-#: ../src/Banshee.Base/Gui/TrackEditor.cs:286
++#: ../src/Core/Banshee.Base/Gui/TrackEditor.cs:315
+ #, csharp-format
+ msgid "Editing {0}"
+ msgstr "Modifica di {0}"
+
+-#: ../src/Banshee.Base/Gui/VersionInformationDialog.cs:61
++#: ../src/Core/Banshee.Base/Gui/VersionInformationDialog.cs:61
+ msgid "Assembly Version Information"
+-msgstr ""
++msgstr "Informazioni versione assemblaggio"
+
+-#: ../src/Banshee.Base/Gui/VersionInformationDialog.cs:67
++#: ../src/Core/Banshee.Base/Gui/VersionInformationDialog.cs:67
+ msgid "Assembly Name"
+-msgstr ""
++msgstr "Nome assemblaggio"
+
+-#: ../src/Banshee.Base/Gui/VersionInformationDialog.cs:69
++#: ../src/Core/Banshee.Base/Gui/VersionInformationDialog.cs:69
++#: ../src/Dap/Banshee.Dap.Mtp/MtpDap.cs:197
+ msgid "Version"
+ msgstr "Versione"
+
+-#: ../src/Banshee.Base/GstTranscoder.cs:82
+-msgid "Could not create transcoder"
+-msgstr ""
+-
+-#: ../src/Banshee.Base/HomeDirectoryImportSource.cs:58
++#: ../src/Core/Banshee.Base/HomeDirectoryImportSource.cs:58
+ msgid "Home Directory"
+ msgstr "Directory home"
+
+-#: ../src/Banshee.Base/ImportManager.cs:88
+-msgid "Importing Songs"
+-msgstr "Importazione delle canzoni"
+-
+-#: ../src/Banshee.Base/ImportManager.cs:89
+-msgid "The import process is currently running. Would you like to stop it?"
+-msgstr ""
+-
+-#: ../src/Banshee.Base/ImportManager.cs:91
+-msgid "Scanning for songs"
+-msgstr "Ricerca di canzoni"
+-
+-#: ../src/Banshee.Base/Library.cs:126
++#: ../src/Core/Banshee.Base/Library.cs:122
+ msgid "Could not load track from library"
+ msgstr "Impossibile caricare la traccia dalla libreria"
+
+-#: ../src/Banshee.Base/NetworkDetect.cs:68
++#: ../src/Core/Banshee.Base/NetworkDetect.cs:45
++msgid "There is no available network connection"
++msgstr "Nessuna connessione di rete trovata"
++
++#: ../src/Core/Banshee.Base/NetworkDetect.cs:79
+ msgid "Cannot connect to NetworkManager"
+ msgstr "Impossibile connettersi a NetworkManager"
+
+-#: ../src/Banshee.Base/NetworkDetect.cs:69
++#: ../src/Core/Banshee.Base/NetworkDetect.cs:80
+ msgid "An available, working network connection will be assumed"
+-msgstr ""
++msgstr "Una disponibile, funzionante connessione di rete sarà presupposta."
+
+-#: ../src/Banshee.Base/PlayerEngineCore.cs:78
++#: ../src/Core/Banshee.Base/PlayerEngineCore.cs:77
+ msgid "Default player engine"
+-msgstr ""
++msgstr "Motore di riproduzione predefinito"
+
+-#: ../src/Banshee.Base/PlayerEngineCore.cs:100
++#: ../src/Core/Banshee.Base/PlayerEngineCore.cs:99
+ msgid ""
+ "No player engines were found. Please ensure Banshee has been cleanly "
+ "installed."
+ msgstr ""
++"Nessuno motore di riproduzione trovato. Assicurarsi che Banshee sia stato "
++"correttamente installato."
+
+-#: ../src/Banshee.Base/PlayerEngineCore.cs:161
++#: ../src/Core/Banshee.Base/PlayerEngineCore.cs:189
+ msgid "Problem with Player Engine"
+-msgstr ""
++msgstr "Problema con il motore di riproduzione"
+
+-#: ../src/Banshee.Base/PowerManagement.cs:83
+-msgid "Playing Music"
+-msgstr ""
+-
+-#: ../src/Banshee.Base/Plugins/PluginDialog.cs:52
++#: ../src/Core/Banshee.Base/Plugins/PluginDialog.cs:52
+ msgid "Banshee Plugins"
+ msgstr "Plugin di Banshee"
+
+-#: ../src/Banshee.Base/Plugins/PluginDialog.cs:64
+-#: ../src/Banshee.Base/Plugins/PluginDialog.cs:93
++#: ../src/Core/Banshee.Base/Plugins/PluginDialog.cs:64
++#: ../src/Core/Banshee.Base/Plugins/PluginDialog.cs:93
+ msgid "Plugin Name"
+-msgstr "Nome del Plugin"
++msgstr "Nome del plugin"
+
+-#: ../src/Banshee.Base/Plugins/PluginDialog.cs:90
++#: ../src/Core/Banshee.Base/Plugins/PluginDialog.cs:90
+ msgid "Overview"
+ msgstr "Panoramica"
+
+-#: ../src/Banshee.Base/Plugins/PluginDialog.cs:97
++#: ../src/Core/Banshee.Base/Plugins/PluginDialog.cs:97
+ msgid "Description"
+ msgstr "Descrizione"
+
+-#: ../src/Banshee.Base/Plugins/PluginDialog.cs:100
++#: ../src/Core/Banshee.Base/Plugins/PluginDialog.cs:100
+ msgid "Author(s)"
+ msgstr "Autori"
+
+-#: ../src/Banshee.Base/Plugins/PluginDialog.cs:105
++#: ../src/Core/Banshee.Base/Plugins/PluginDialog.cs:105
+ msgid "This plugin could not be initialized."
+ msgstr "Non è stato possibile inizializzare questo plugin."
+
+-#: ../src/Banshee.Base/Plugins/PluginDialog.cs:193
++#: ../src/Core/Banshee.Base/Plugins/PluginDialog.cs:193
+ msgid "Configuration"
+ msgstr "Configurazione"
+
+-#: ../src/Banshee.Base/Source.cs:337
++#: ../src/Core/Banshee.Base/PowerManagement.cs:121
++msgid "Playing Music"
++msgstr "Riproduzione musica"
++
++#: ../src/Core/Banshee.Base/Source.cs:390
++msgid "Source Properties..."
++msgstr "Proprietà della sorgente..."
++
++#: ../src/Core/Banshee.Base/Source.cs:398
+ #, csharp-format
+ msgid "Delete {0}"
+ msgstr "Elimina {0}"
+
+-#: ../src/Banshee.Base/Sources/AudioCdSource.cs:51
++#: ../src/Core/Banshee.Base/SourceManager.cs:283
++#, csharp-format
++msgid "Rename {0}"
++msgstr "Rinomina {0}"
++
++#: ../src/Core/Banshee.Base/Sources/AbstractPlaylistSource.cs:53
++msgid "Delete Playlist"
++msgstr "Elimina scaletta"
++
++#: ../src/Core/Banshee.Base/Sources/AbstractPlaylistSource.cs:155
++#, csharp-format
++msgid "Are you sure you want to delete this {0}?"
++msgstr "Eliminare questa {0}?"
++
++#: ../src/Core/Banshee.Base/Sources/AbstractPlaylistSource.cs:164
++#, csharp-format
++msgid "Do not ask me this again"
++msgstr "Non chiedere nuovamente"
++
++#: ../src/Core/Banshee.Base/Sources/AudioCdSource.cs:52
+ msgid "Eject CD"
+ msgstr "Espelli CD"
+
+-#: ../src/Banshee.Base/Sources/AudioCdSource.cs:92
++#: ../src/Core/Banshee.Base/Sources/AudioCdSource.cs:98
+ msgid "Reading table of contents from CD..."
+ msgstr "Lettura della tabella dei contenuti dal CD..."
+
+-#: ../src/Banshee.Base/Sources/AudioCdSource.cs:97
++#: ../src/Core/Banshee.Base/Sources/AudioCdSource.cs:103
+ msgid "Searching for CD metadata..."
+ msgstr "Ricerca di metadati del CD..."
+
+-#: ../src/Banshee.Base/Sources/AudioCdSource.cs:102
++#: ../src/Core/Banshee.Base/Sources/AudioCdSource.cs:108
+ msgid "Searching for CD cover art..."
+ msgstr "Ricerca della copertina del CD..."
+
+-#: ../src/Banshee.Base/Sources/AudioCdSource.cs:107
++#: ../src/Core/Banshee.Base/Sources/AudioCdSource.cs:113
+ msgid ""
+ "Cannot search for CD metadata: there is no available Internet connection"
+-msgstr "Impossibile cercare i metadati del CD: non è disponibile alcuna connessione ad Internet"
++msgstr ""
++"Impossibile cercare i metadati del CD: non è disponibile alcuna connessione "
++"ad Internet"
+
+-#: ../src/Banshee.Base/Sources/AudioCdSource.cs:113
++#: ../src/Core/Banshee.Base/Sources/AudioCdSource.cs:119
+ msgid "Could not fetch metadata for CD."
+ msgstr "Impossibile recuperare i metadati del CD."
+
+-#: ../src/Banshee.Base/Sources/AudioCdSource.cs:194
++#: ../src/Core/Banshee.Base/Sources/AudioCdSource.cs:147
++msgid "Copy CD"
++msgstr "Copia CD"
++
++#: ../src/Core/Banshee.Base/Sources/AudioCdSource.cs:236
+ msgid "Invalid Selection"
+ msgstr "Selezione non valida"
+
+-#: ../src/Banshee.Base/Sources/AudioCdSource.cs:195
++#: ../src/Core/Banshee.Base/Sources/AudioCdSource.cs:237
+ msgid "You must select at least one track to import."
+ msgstr "Ã necessario selezionare almeno una traccia da importare."
+
+-#: ../src/Banshee.Base/Sources/AudioCdSource.cs:241
+-msgid "Copy CD"
+-msgstr "Copia CD"
+-
+-#: ../src/Banshee.Base/Sources/DapSource.cs:107
++#: ../src/Core/Banshee.Base/Sources/DapSource.cs:106
+ msgid "Synchronizing your Device, Please Wait..."
+ msgstr "Sincronizzazione del dispositivo, attendere..."
+
+-#: ../src/Banshee.Base/Sources/DapSource.cs:168
+-#: ../src/Banshee.Plugins/Daap/DaapSource.cs:228
++#: ../src/Core/Banshee.Base/Sources/DapSource.cs:188
++#: ../src/Plugins/Banshee.Plugins.Daap/DaapSource.cs:316
+ msgid "Importing"
+ msgstr "Importazione"
+
+-#: ../src/Banshee.Base/Sources/DapSource.cs:170
+-#: ../src/Banshee.Plugins/Daap/DaapSource.cs:230
++#: ../src/Core/Banshee.Base/Sources/DapSource.cs:190
++#: ../src/Plugins/Banshee.Plugins.Daap/DaapSource.cs:318
+ #, csharp-format
+ msgid "You are currently importing from {0}. Would you like to stop it?"
+-msgstr ""
++msgstr "Importazione in corso da {0}. Si desidera fermare?"
+
+-#. import_manager.UserEvent.Icon = GetIcon;
+-#: ../src/Banshee.Base/Sources/DapSource.cs:172
+-#: ../src/Banshee.Dap/Mtp/MtpDap.cs:292
+-#: ../src/Banshee.Plugins/Daap/DaapSource.cs:232
++#: ../src/Core/Banshee.Base/Sources/DapSource.cs:192
++#: ../src/Plugins/Banshee.Plugins.Daap/DaapSource.cs:320
+ #, csharp-format
+ msgid "Copying from {0}"
+-msgstr ""
++msgstr "Copiare da {0}"
+
+-#: ../src/Banshee.Base/Sources/DapSource.cs:173
+-#: ../src/Banshee.Dap/Mtp/MtpDap.cs:293
+-#: ../src/Banshee.Plugins/Daap/DaapSource.cs:233
++#: ../src/Core/Banshee.Base/Sources/DapSource.cs:193
++#: ../src/Dap/Banshee.Dap.Mtp/MtpDap.cs:484
++#: ../src/Plugins/Banshee.Plugins.Daap/DaapSource.cs:321
+ msgid "Scanning..."
+ msgstr "Scansione..."
+
+-#: ../src/Banshee.Base/Sources/DapSource.cs:286
+-#: ../src/Banshee.Dap/Mtp/MtpDap.cs:411
+-#: ../src/Banshee.Plugins/Daap/DaapSource.cs:349
++#: ../src/Core/Banshee.Base/Sources/DapSource.cs:310
++#: ../src/Plugins/Banshee.Plugins.Daap/DaapSource.cs:437
+ #, csharp-format
+ msgid "Cannot import track from {0}"
+-msgstr ""
++msgstr "Impossibile importare traccia da {0}"
+
+-#: ../src/Banshee.Base/Sources/DapSource.cs:322
++#: ../src/Core/Banshee.Base/Sources/DapSource.cs:346
+ #, csharp-format
+ msgid "({0} Remaining)"
+ msgstr "({0} rimanenti)"
+
+-#: ../src/Banshee.Base/Sources/DapSource.cs:359
++#: ../src/Core/Banshee.Base/Sources/DapSource.cs:383
+ #, csharp-format
+ msgid "Eject {0}"
+ msgstr "Espelli {0}"
+
+-#: ../src/Banshee.Base/Sources/ImportErrorsSource.cs:56
++#: ../src/Core/Banshee.Base/Sources/ImportErrorsSource.cs:56
+ msgid "Import Errors"
+ msgstr "Errore di importazione"
+
+-#: ../src/Banshee.Base/Sources/ImportErrorsSource.cs:72
++#: ../src/Core/Banshee.Base/Sources/ImportErrorsSource.cs:72
++#: ../src/Plugins/Banshee.Plugins.Podcast/UI/ErrorsSource.cs:64
+ msgid "File Name"
+ msgstr "Nome del file"
+
+-#: ../src/Banshee.Base/Sources/ImportErrorsSource.cs:102
++#: ../src/Core/Banshee.Base/Sources/ImportErrorsSource.cs:102
++#: ../src/Plugins/Banshee.Plugins.Podcast/UI/ErrorsSource.cs:97
+ msgid "Close Error Report"
+-msgstr ""
++msgstr "Chiudi segnalazione errore"
+
+-#: ../src/Banshee.Base/Sources/LibrarySource.cs:51
++#: ../src/Core/Banshee.Base/Sources/LibrarySource.cs:52
+ msgid "Music Library"
+ msgstr "Libreria musicale"
+
+-#: ../src/Banshee.Base/Sources/LibrarySource.cs:115
++#: ../src/Core/Banshee.Base/Sources/LibrarySource.cs:140
+ msgid "Sort Playlists"
+ msgstr "Ordina scalette"
+
+-#: ../src/Banshee.Base/Sources/LibrarySource.cs:118
++#: ../src/Core/Banshee.Base/Sources/LibrarySource.cs:143
+ msgid "Name Ascending"
+ msgstr "Per nome ascendente"
+
+-#: ../src/Banshee.Base/Sources/LibrarySource.cs:122
++#: ../src/Core/Banshee.Base/Sources/LibrarySource.cs:147
+ msgid "Name Descending"
+ msgstr "Per nome discendente"
+
+-#: ../src/Banshee.Base/Sources/LibrarySource.cs:126
++#: ../src/Core/Banshee.Base/Sources/LibrarySource.cs:151
+ msgid "Size Ascending"
+ msgstr "Per dimensione ascendente"
+
+-#: ../src/Banshee.Base/Sources/LibrarySource.cs:130
++#: ../src/Core/Banshee.Base/Sources/LibrarySource.cs:155
+ msgid "Size Descending"
+ msgstr "Per dimensione discendente"
+
+-#: ../src/Banshee.Base/Sources/LocalQueueSource.cs:53
++#: ../src/Core/Banshee.Base/Sources/LocalQueueSource.cs:53
+ msgid "Local Queue"
+ msgstr "Coda locale"
+
+-#: ../src/Banshee.Base/Sources/PlaylistSource.cs:61
+-msgid "Delete Playlist"
+-msgstr "Elimina scaletta"
++#: ../src/Core/Banshee.Base/Sources/PlaylistSource.cs:73
++#: ../src/Core/Banshee.Base/Sources/PlaylistSource.cs:461
++#: ../src/Core/Banshee.Base/Sources/PlaylistSource.cs:467
++#: ../src/Core/Banshee/PlayerInterface.cs:1692
++msgid "New Playlist"
++msgstr "Nuova scaletta"
+
+-#: ../src/Banshee.Base/Sources/PlaylistSource.cs:168
++#: ../src/Core/Banshee.Base/Sources/PlaylistSource.cs:162
+ msgid "Cannot Rename Playlist"
+ msgstr "Impossibile rinominare la scaletta"
+
+-#: ../src/Banshee.Base/Sources/PlaylistSource.cs:169
++#: ../src/Core/Banshee.Base/Sources/PlaylistSource.cs:163
+ msgid "A playlist with this name already exists. Please choose another name."
+ msgstr "Esiste già una scaletta con questo nome. Scegliere un nome diverso."
+
+-#: ../src/Banshee.Base/StreamTagger.cs:153
++#: ../src/Core/Banshee.Base/StreamTagger.cs:171
+ #, csharp-format
+ msgid "Saving tags for {0}"
+-msgstr ""
++msgstr "Salvare i tag per {0}"
+
+-#: ../src/Banshee.Base/TrackInfo.cs:399
++#: ../src/Core/Banshee.Base/TrackInfo.cs:307
+ msgid "Unknown Title"
+ msgstr "Titolo Sconosciuto"
+
+-#: ../src/Banshee.Base/TrackInfoHeader.cs:98
++#: ../src/Core/Banshee.Base/TrackInfoHeader.cs:106
++#: ../src/Core/Banshee.Base/TrackInfoHeader.cs:112
+ msgid "by"
+ msgstr "di"
+
+-#: ../src/Banshee.Base/TrackInfoHeader.cs:99
++#: ../src/Core/Banshee.Base/TrackInfoHeader.cs:113
+ msgid "from"
+ msgstr "da"
+
+-#: ../src/Banshee.Base/Utilities.cs:76
++#: ../src/Core/Banshee.Base/Utilities.cs:76
+ #, csharp-format
+ msgid "{0:0.00} GB"
+ msgstr "{0:0.00} GB"
+
+-#: ../src/Banshee.Dap/Ipod/DatabaseRebuilder.cs:53
+-#: ../src/Banshee.Dap/Ipod/DatabaseRebuilder.cs:54
+-msgid "Rebuilding Database"
++#: ../src/Core/Banshee/PlayerInterface.cs:470
++msgid "All Columns"
++msgstr "Tutte le colonne"
++
++#: ../src/Core/Banshee/PlayerInterface.cs:472
++msgid "Song Name"
++msgstr "Titolo della traccia"
++
++#: ../src/Core/Banshee/PlayerInterface.cs:473
++msgid "Artist Name"
++msgstr "Nome dell'artista"
++
++#: ../src/Core/Banshee/PlayerInterface.cs:474
++msgid "Album Title"
++msgstr "Titolo dell'album"
++
++#: ../src/Core/Banshee/PlayerInterface.cs:497
++msgid "Write selection to CD"
++msgstr "Scrive la selezione su CD"
++
++#: ../src/Core/Banshee/PlayerInterface.cs:498
++msgid "Import CD into library"
++msgstr "Importa il CD nella libreria"
++
++#: ../src/Core/Banshee/PlayerInterface.cs:499
++#: ../src/Plugins/Banshee.Plugins.MiniMode/MiniModeWindow.cs:151
++msgid "Play previous song"
++msgstr "Riproduci la traccia precedente"
++
++#: ../src/Core/Banshee/PlayerInterface.cs:500
++#: ../src/Plugins/Banshee.Plugins.MiniMode/MiniModeWindow.cs:152
++msgid "Play/pause current song"
++msgstr "Riproduci/metti in pausa la traccia corrente"
++
++#: ../src/Core/Banshee/PlayerInterface.cs:501
++#: ../src/Plugins/Banshee.Plugins.MiniMode/MiniModeWindow.cs:153
++#: ../src/Plugins/Banshee.Plugins.NotificationAreaIcon/NotificationAreaIconPlugin.cs:293
++msgid "Play next song"
++msgstr "Riproduci la traccia successiva"
++
++#: ../src/Core/Banshee/PlayerInterface.cs:502
++msgid "Device disk usage"
++msgstr "Spazio utilizzato sul dispositivo"
++
++#: ../src/Core/Banshee/PlayerInterface.cs:503
++msgid "Synchronize music library to device"
++msgstr "Sincronizza libreria musicale sul dispositivo"
++
++#: ../src/Core/Banshee/PlayerInterface.cs:504
++#: ../src/Plugins/Banshee.Plugins.MiniMode/MiniModeWindow.cs:155
++msgid "Adjust volume"
++msgstr "Regola il volume"
++
++#: ../src/Core/Banshee/PlayerInterface.cs:505
++#: ../src/Plugins/Banshee.Plugins.MiniMode/MiniModeWindow.cs:156
++msgid "Change repeat playback mode"
++msgstr "Cambia la modalità di ripetizione"
++
++#: ../src/Core/Banshee/PlayerInterface.cs:506
++#: ../src/Plugins/Banshee.Plugins.MiniMode/MiniModeWindow.cs:157
++msgid "Toggle shuffle playback mode"
++msgstr "Attiva o disattiva la modalità di riproduzione casuale"
++
++#: ../src/Core/Banshee/PlayerInterface.cs:507
++msgid "Edit and view metadata of selected songs"
++msgstr "Visualizza e modifica i metadati delle tracce selezionate"
++
++#: ../src/Core/Banshee/PlayerInterface.cs:883
++msgid "Pause"
++msgstr "Pausa"
++
++#: ../src/Core/Banshee/PlayerInterface.cs:885
++msgid "Stop"
++msgstr "Ferma"
++
++#: ../src/Core/Banshee/PlayerInterface.cs:906
++msgid "Cannot Play Song"
++msgstr "Impossibile riprodurre la traccia"
++
++#: ../src/Core/Banshee/PlayerInterface.cs:907
++#, csharp-format
++msgid ""
++"{0} cannot be played by Banshee. The most common reasons for this are:\n"
++"\n"
++" <big>â¢</big> Song is protected (DRM)\n"
++" <big>â¢</big> Song is on a DAP that does not support playback\n"
+ msgstr ""
++"Banshee non ha potuto riprodurre {0}. Ã possibile che:\n"
++"\n"
++" <big>â¢</big> La traccia è protetta(DRM)\n"
++" <big>â¢</big> La traccia è su un dispositivo che non supporta la "
++"riproduzione\n"
+
+-#: ../src/Banshee.Dap/Ipod/DatabaseRebuilder.cs:55
++#: ../src/Core/Banshee/PlayerInterface.cs:916
++#: ../src/Core/Banshee/PlayerInterface.cs:925
++msgid "Play"
++msgstr "Riproduci"
++
++#: ../src/Core/Banshee/PlayerInterface.cs:1337
++#, csharp-format
++msgid "{0} Item"
++msgid_plural "{0} Items"
++msgstr[0] "{0} oggetto"
++msgstr[1] "{0} oggetti"
++
++#: ../src/Core/Banshee/PlayerInterface.cs:1341
++#, csharp-format
++msgid "{0} day"
++msgid_plural "{0} days"
++msgstr[0] "{0} giorno"
++msgstr[1] "{0} giorni"
++
++#: ../src/Core/Banshee/PlayerInterface.cs:1346
++#, csharp-format
++msgid "{0} hour"
++msgid_plural "{0} hours"
++msgstr[0] "{0} ora"
++msgstr[1] "{0} ore"
++
++#: ../src/Core/Banshee/PlayerInterface.cs:1350
++#, csharp-format
++msgid "{0} minute"
++msgid_plural "{0} minutes"
++msgstr[0] "{0} minuto"
++msgstr[1] "{0} minuti"
++
++#: ../src/Core/Banshee/PlayerInterface.cs:1352
++#, csharp-format
++msgid "{0} second"
++msgid_plural "{0} seconds"
++msgstr[0] "{0} secondo"
++msgstr[1] "{0} secondi"
++
++#: ../src/Core/Banshee/PlayerInterface.cs:1482
++#, csharp-format
++msgid "Filter on {0}"
++msgstr "Filtro su {0}"
++
++#: ../src/Core/Banshee/PlayerInterface.cs:1965
++#, csharp-format
++msgid "Are you sure you want to permanently delete this song?"
++msgid_plural ""
++"Are you sure you want to permanently delete the selected {0} songs?"
++msgstr[0] "Eliminare veramente in modo permanente questa traccia?"
++msgstr[1] "Eliminare veramente in modo permanente le {0} tracce selezionate?"
++
++#: ../src/Core/Banshee/PlayerInterface.cs:1969
++msgid "If you delete the selection, it will be permanently lost."
++msgstr "Se si elimina la selezione, questa è persa definitivamente."
++
++#: ../src/Core/Banshee/PlayerInterface.cs:1972
++msgid "Remove selection from library"
++msgstr "Rimuovi selezione dalla libreria"
++
++#: ../src/Core/Banshee/PlayerInterface.cs:1974
++#, csharp-format
++msgid "Are you sure you want to remove the selected song from your library?"
++msgid_plural ""
++"Are you sure you want to remove the selected {0} songs from your library?"
++msgstr[0] "Rimuovere veramente la traccia selezionata dalla libreria?"
++msgstr[1] "Rimuovere veramente le {0} tracce selezionate dalla libreria?"
++
++#: ../src/Core/Banshee/PlayerInterface.cs:2019
++msgid "Delete songs from drive"
++msgstr "Elimina tracce dall'unità "
++
++#: ../src/Core/Banshee/PlayerInterface.cs:2020
++#, csharp-format
++msgid "You do not have the required permissions to delete '{0}'"
++msgstr "Permessi non sufficienti per eliminare «{0}»"
++
++#: ../src/Core/Banshee/PlayerInterface.cs:2086
++msgid "Import Playlist"
++msgstr "Importa scaletta"
++
++#: ../src/Core/Banshee/PlayerInterface.cs:2118
++#: ../src/Core/Banshee/PlayerInterface.cs:2136
++msgid "Unable to Import Playlist"
++msgstr "Impossibile importare scaletta"
++
++#: ../src/Core/Banshee/PlayerInterface.cs:2137
++msgid ""
++"Banshee was unable to find any valid tracks to import. Please check the "
++"playlist and try again."
++msgstr ""
++"Banshee non ha trovato tracce valide da importare. Controllare la scaletta e "
++"riprovare."
++
++#: ../src/Core/Banshee/PlayerInterface.cs:2180
++msgid "Could not export playlist"
++msgstr "Impossibile esportare la scaletta"
++
++#: ../src/Core/Banshee/PlayerInterface.cs:2199
++#: ../src/Core/Banshee/PlayerInterface.cs:2205
++msgid "Error opening stream"
++msgstr "Errore nell'apertura del flusso"
++
++#: ../src/Core/Banshee/PlayerInterface.cs:2199
++msgid "Could not open stream or playlist"
++msgstr "Impossibile aprire la scaletta o il flusso"
++
++#: ../src/Core/Banshee/PlayerInterface.cs:2205
++msgid "Problem parsing playlist"
++msgstr "Problemi nell'analizzare la scaletta"
++
++#: ../src/Core/Banshee/PlayerInterface.cs:2243
++msgid "New CD"
++msgstr "Nuovo CD"
++
++#. Translators: {0} is the name of the DAP device (i.e. 'iPod')
++#: ../src/Core/Banshee/PlayerInterface.cs:2264
++#, csharp-format
++msgid "Synchronize {0}"
++msgstr "Sincronizza {0}"
++
++#: ../src/Core/Banshee/PlayerInterface.cs:2265
++#, csharp-format
++msgid ""
++"You have made changes to your {0}. Please choose a method for updating the "
++"contents of your {0}.\n"
++"\n"
++"<big>â¢</big> <i>Synchronize Library</i>: synchronize Banshee library to {0}\n"
++"<big>â¢</big> <i>Save Manual Changes</i>: save only the manual changes you "
++"made"
++msgstr ""
++"Sono stati apportati dei cambiamenti al proprio {0}. Scegliere un metodo per "
++"aggiornare il contenuto del proprio {0}.\n"
++"\n"
++"<big>â¢</big> <i>Sincronizza libreria</i>: sincronizza la libreria di Banshee "
++"su {0}\n"
++"<big>â¢</big> <i>Salva modifiche manuali</i>: salva solo i cambiamenti "
++"apportati manualmente"
++
++#: ../src/Core/Banshee/PlayerInterface.cs:2271
++msgid ""
++"<b>Warning:</b> Actions will alter or erase existing iPod contents and may "
++"cause incompatibility with iTunes!"
++msgstr ""
++"<b>Attenzione:</b> le azioni modificheranno o cancelleranno il contenuto "
++"dell'iPod e potrebbero causare una incompatiblità con iTunes!"
++
++#: ../src/Core/Banshee/PlayerInterface.cs:2273
++msgid "Synchronize Library"
++msgstr "Sincronizza la librerira"
++
++#: ../src/Core/Banshee/PlayerInterface.cs:2275
++msgid "Save Manual Changes"
++msgstr "Salva modifiche manuali"
++
++#: ../src/Core/Banshee/TrackViewColumnWindow.cs:59
++msgid "Choose Columns"
++msgstr "Selezione colonne"
++
++#: ../src/Core/Banshee/TrackViewColumnWindow.cs:74
++msgid "Visible Playlist Columns"
++msgstr "Colonne visibili della scaletta"
++
++#: ../src/Core/Banshee.Widgets/ActiveUserEvent.cs:86
++#, csharp-format
++msgid "Stop {0}"
++msgstr "Ferma {0}"
++
++#: ../src/Core/Banshee.Widgets/ActiveUserEvent.cs:89
++#, csharp-format
++msgid ""
++"The '{0}' operation is still performing work. Would you like to stop it?"
++msgstr ""
++"'{0}' sta portando a termine l'operazione richiesta. Si desidera fermare?"
++
++#: ../src/Core/Banshee.Widgets/ActiveUserEvent.cs:92
++#, csharp-format
++msgid "Continue {0}"
++msgstr "Continua {0}"
++
++#: ../src/Core/Banshee.Widgets/DiscUsageDisplay.cs:187
++msgid ""
++"Insert\n"
++"Disc"
++msgstr ""
++"Inserito\n"
++"Disco"
++
++#: ../src/Core/Banshee.Widgets/RatingMenuItem.cs:48
++msgid "Rating:"
++msgstr "Giudizio:"
++
++#: ../src/Core/Banshee.Widgets/StreamPositionLabel.cs:82
++#: ../src/Engines/Banshee.MediaEngine.GStreamer/GstPlayerEngine.cs:291
++msgid "Buffering"
++msgstr "Riempimento buffer"
++
++#: ../src/Core/Banshee.Widgets/StreamPositionLabel.cs:84
++msgid "Contacting..."
++msgstr "In contatto..."
++
++#: ../src/Core/Banshee.Widgets/StreamPositionLabel.cs:86
++msgid "Idle"
++msgstr "Inattivo"
++
++#: ../src/Core/Banshee.Widgets/VolumeButton.cs:517
++msgid "Muted"
++msgstr "Muto"
++
++#: ../src/Core/Banshee.Widgets/VolumeButton.cs:519
++msgid "Full Volume"
++msgstr "Volume pieno"
++
++#: ../src/Dap/Banshee.Dap.Ipod/DatabaseRebuilder.cs:87
++#: ../src/Dap/Banshee.Dap.Ipod/DatabaseRebuilder.cs:88
++msgid "Rebuilding Database"
++msgstr "Ricostruzione database"
++
++#: ../src/Dap/Banshee.Dap.Ipod/DatabaseRebuilder.cs:89
+ msgid "Scanning iPod..."
+ msgstr "Scansione dell'iPod..."
+
+-#: ../src/Banshee.Dap/Ipod/DatabaseRebuilder.cs:89
++#: ../src/Dap/Banshee.Dap.Ipod/DatabaseRebuilder.cs:123
+ msgid "Processing Tracks..."
+ msgstr "Analisi delle tracce..."
+
+-#: ../src/Banshee.Dap/Ipod/DatabaseRebuilder.cs:136
++#: ../src/Dap/Banshee.Dap.Ipod/DatabaseRebuilder.cs:140
++msgid "Ordering Tracks..."
++msgstr "Ordina tracce..."
++
++#: ../src/Dap/Banshee.Dap.Ipod/DatabaseRebuilder.cs:220
+ msgid "Saving new database..."
+-msgstr ""
++msgstr "Salvataggio nuovo database..."
+
+-#: ../src/Banshee.Dap/Ipod/DatabaseRebuilder.cs:143
++#: ../src/Dap/Banshee.Dap.Ipod/DatabaseRebuilder.cs:232
+ msgid "Error rebuilding iPod database"
+-msgstr ""
++msgstr "Errore nella ricostruzione del database dell'iPod"
+
+-#. Translators "Week 25 of 2006"
+-#: ../src/Banshee.Dap/Ipod/IpodDap.cs:83
+-msgid "Manufactured During"
+-msgstr ""
++#: ../src/Dap/Banshee.Dap.Ipod/IpodDap.cs:99
++#: ../src/Dap/Banshee.Dap.Ipod/IpodDap.cs:102
++#: ../src/Dap/Banshee.Dap.Mtp/MtpDap.cs:194
++msgid "Model"
++msgstr "Modello"
+
+-#: ../src/Banshee.Dap/Ipod/IpodDap.cs:84
+-#, csharp-format
+-msgid "Week {0} of {1}"
+-msgstr "Settimana {0} di {1}"
++#: ../src/Dap/Banshee.Dap.Ipod/IpodDap.cs:106
++msgid "Advertised Capacity"
++msgstr "Capacità annunciata"
+
+-#: ../src/Banshee.Dap/Ipod/IpodDap.cs:118
++#: ../src/Dap/Banshee.Dap.Ipod/IpodDap.cs:109
++msgid "Manufactured In"
++msgstr "Fabbricato in"
++
++#: ../src/Dap/Banshee.Dap.Ipod/IpodDap.cs:177
+ msgid "Your iPod could not be identified"
+ msgstr "Non è stato possibile identificare l'iPod"
+
+-#: ../src/Banshee.Dap/Ipod/IpodDap.cs:119
++#: ../src/Dap/Banshee.Dap.Ipod/IpodDap.cs:178
+ msgid ""
+ "Please consider submitting information about your iPod to the Banshee "
+ "Project so your iPod may be more fully identified in the future.\n"
+ msgstr ""
++"Considerare l'invio di informazioni sul vostro iPod al progetto Banshee per "
++"rendere più facile l'identificazione degli iPod in futuro.\n"
+
+-#: ../src/Banshee.Dap/Ipod/IpodDap.cs:122
++#: ../src/Dap/Banshee.Dap.Ipod/IpodDap.cs:181
+ msgid "Do not ask me again"
+-msgstr ""
++msgstr "Non chiedere di nuovo"
+
+-#: ../src/Banshee.Dap/Ipod/IpodDap.cs:127
++#: ../src/Dap/Banshee.Dap.Ipod/IpodDap.cs:186
+ msgid "Go to Web Site"
+-msgstr ""
++msgstr "Vai alla pagina di rete"
+
+-#: ../src/Banshee.Dap/Ipod/IpodDap.cs:208
++#: ../src/Dap/Banshee.Dap.Ipod/IpodDap.cs:278
+ msgid "Could not eject iPod"
+ msgstr "Non è stato possibile espellere l'iPod"
+
+-#: ../src/Banshee.Dap/Ipod/IpodDap.cs:216
+-#: ../src/Banshee.Dap/Ipod/IpodDap.cs:235
++#: ../src/Dap/Banshee.Dap.Ipod/IpodDap.cs:303
++#: ../src/Dap/Banshee.Dap.Ipod/IpodDap.cs:322
+ msgid "Synchronizing iPod"
+ msgstr "Sincronizzazione dell'iPod"
+
+-#: ../src/Banshee.Dap/Ipod/IpodDap.cs:217
++#: ../src/Dap/Banshee.Dap.Ipod/IpodDap.cs:304
+ msgid "Pre-processing tracks"
+ msgstr "Pre eleborazione delle tracce"
+
+-#: ../src/Banshee.Dap/Ipod/IpodDap.cs:232
+-msgid "Flushing to Disk (may take time)"
+-msgstr "Riversamento su disco (può richiedere del tempo)"
+-
+-#: ../src/Banshee.Dap/Ipod/IpodDap.cs:242
++#: ../src/Dap/Banshee.Dap.Ipod/IpodDap.cs:333
+ msgid "Failed to synchronize iPod"
+ msgstr "Sincronizzazione dell'iPod fallita"
+
+-#: ../src/Banshee.Dap/Ipod/UnsupportedDatabaseView.cs:59
++#: ../src/Dap/Banshee.Dap.Ipod/UnsupportedDatabaseView.cs:57
+ msgid "Unable to read your iPod"
++msgstr "Impossibile leggere il tuo iPod"
++
++#: ../src/Dap/Banshee.Dap.Ipod/UnsupportedDatabaseView.cs:80
++msgid ""
++"You have used this iPod with a version of iTunes that saves a version of the "
++"song database for your iPod that is too new for Banshee to recognize.\n"
++"\n"
++"Banshee can either rebuild the database or you will have to wait for the new "
++"iTunes version to be supported by Banshee."
+ msgstr ""
++"Si è usato questo iPod con una versione di iTunes che ha salva una versione "
++"del database delle tracce troppo nuova per Banshee affinché possa "
++"riconoscerlo.\n"
++"\n"
++"Banshee può ricostruire il database oppure attendere che venga supportata la "
++"nuova versione del database iTunes."
+
+-#: ../src/Banshee.Dap/Ipod/UnsupportedDatabaseView.cs:82
+-msgid "What is the reason for this?"
++#: ../src/Dap/Banshee.Dap.Ipod/UnsupportedDatabaseView.cs:89
++msgid ""
++"An iPod database could not be found on this device.\n"
++"\n"
++"Banshee can build a new database for you."
+ msgstr ""
++"Impossibile trovare un database iPod su questo dispositivo.\n"
++"\n"
++"Banshee può creare un nuovo database."
+
+-#: ../src/Banshee.Dap/Ipod/UnsupportedDatabaseView.cs:97
++#: ../src/Dap/Banshee.Dap.Ipod/UnsupportedDatabaseView.cs:97
++msgid "What is the reason for this?"
++msgstr "Quale il motivo per questo?"
++
++#: ../src/Dap/Banshee.Dap.Ipod/UnsupportedDatabaseView.cs:110
++msgid "Your iPod is mounted read only. Banshee can not restore your iPod."
++msgstr "L'iPod è montato in sola lettura. Banshee non può ripristinare l'iPod."
++
++#: ../src/Dap/Banshee.Dap.Ipod/UnsupportedDatabaseView.cs:118
+ msgid "Rebuild iPod Database..."
+-msgstr ""
++msgstr "Ricostruzione database iPod"
+
+-#: ../src/Banshee.Dap/Ipod/UnsupportedDatabaseView.cs:105
++#: ../src/Dap/Banshee.Dap.Ipod/UnsupportedDatabaseView.cs:126
+ msgid "Confirm Rebuild iPod Database"
+-msgstr ""
++msgstr "Conferma ricostruzione database iPod"
+
+-#: ../src/Banshee.Dap/Ipod/UnsupportedDatabaseView.cs:111
++#: ../src/Dap/Banshee.Dap.Ipod/UnsupportedDatabaseView.cs:132
+ msgid ""
+ "Rebuilding your iPod database may take some time. Also note that any "
+ "playlists you have on your iPod will be lost.\n"
+ "\n"
+ "Are you sure you want to rebuild your iPod database?"
+ msgstr ""
++"La ricostruzione del database iPod potrebbe richiedere tempo. Notare che "
++"tutte le scalette presenti sull'iPod verranno perdute.\n"
++"\n"
++"Ricostruire il database iPod?"
+
+-#: ../src/Banshee.Dap/Ipod/UnsupportedDatabaseView.cs:116
++#: ../src/Dap/Banshee.Dap.Ipod/UnsupportedDatabaseView.cs:137
+ msgid "Rebuild Database"
+-msgstr ""
++msgstr "Ricostruzione database"
+
+-#: ../src/Banshee.Dap/Ipod/UnsupportedDatabaseView.cs:128
++#: ../src/Dap/Banshee.Dap.Ipod/UnsupportedDatabaseView.cs:151
+ msgid "Rebuilding iPod Database..."
+-msgstr ""
++msgstr "Ricostruzione database iPod..."
+
+-#: ../src/Banshee.Dap/MassStorage/MassStorageDap.cs:103
+-#: ../src/Banshee.Dap/MassStorage/MassStorageDap.cs:105
++#: ../src/Dap/Banshee.Dap.Karma/Karma.cs:144
++#: ../src/Dap/Banshee.Dap.Karma/Karma.cs:172
++#: ../src/Dap/Banshee.Dap.Njb/NjbDap.cs:248
++#: ../src/Dap/Banshee.Dap.Njb/NjbDap.cs:260
++msgid "Synchronizing Device"
++msgstr "Sincronizzazione del dispositivo"
++
++#: ../src/Dap/Banshee.Dap.Karma/Karma.cs:145
++#: ../src/Dap/Banshee.Dap.Njb/NjbDap.cs:260
++msgid "Removing Songs"
++msgstr "Rimozione delle tracce"
++
++#: ../src/Dap/Banshee.Dap.MassStorage/MassStorageDap.cs:189
++#: ../src/Dap/Banshee.Dap.MassStorage/MassStorageDap.cs:191
++#: ../src/Dap/Banshee.Dap.Mtp/MtpDap.cs:193
+ msgid "Vendor"
++msgstr "Marca"
++
++#: ../src/Dap/Banshee.Dap.MassStorage/MassStorageDap.cs:196
++#, csharp-format
++msgid "Audio Folder"
++msgid_plural "Audio Folders"
++msgstr[0] "Cartella audio"
++msgstr[1] "Audioscrobbler"
++
++#: ../src/Dap/Banshee.Dap.MassStorage/MassStorageDap.cs:202
++msgid "Required Folder Depth"
++msgstr "Richiesta profondità della cartella"
++
++#: ../src/Dap/Banshee.Dap.MassStorage/MassStorageDap.cs:207
++#, csharp-format
++msgid "Audio Format"
++msgid_plural "Audio Formats"
++msgstr[0] "Formato audio"
++msgstr[1] "Formato di uscita:"
++
++#: ../src/Dap/Banshee.Dap.MassStorage/MassStorageDap.cs:271
++msgid "Loading Songs"
++msgstr "Caricamento tracce"
++
++#: ../src/Dap/Banshee.Dap.MassStorage/MassStorageDap.cs:272
++msgid ""
++"The audio device song loading process is currently running. Would you like "
++"to stop it?"
+ msgstr ""
++"Caricamento della traccia dal dispositivo audio in esecuzione. Si desidera "
++"fermare?"
+
+-#: ../src/Banshee.Dap/MassStorage/MassStorageDap.cs:346
+-msgid "Copying Songs"
+-msgstr "Copia delle canzoni"
++#: ../src/Dap/Banshee.Dap.MassStorage/MassStorageDap.cs:273
++#, csharp-format
++msgid "Loading {0} of {1}"
++msgstr "Caricamento {0} di {1}"
+
+-#: ../src/Banshee.Dap/MassStorage/MassStorageDap.cs:347
++#: ../src/Dap/Banshee.Dap.MassStorage/MassStorageDap.cs:322
+ #, csharp-format
+ msgid "Copying {0} of {1}"
+ msgstr "Copia di {0} su {1}"
+
+-#: ../src/Banshee.Dap/MassStorage/MassStorageDap.cs:378
++#: ../src/Dap/Banshee.Dap.MassStorage/MassStorageDap.cs:364
++#, csharp-format
++msgid "Failed to Unmount {0}"
++msgstr "Smontaggio fallito {0}"
++
++#: ../src/Dap/Banshee.Dap.MassStorage/MassStorageDap.cs:365
++msgid "Make sure no other programs are using it."
++msgstr "Assicurarsi che nessun altro lo usi."
++
++#: ../src/Dap/Banshee.Dap.MassStorage/MassStorageDap.cs:377
++#, csharp-format
++msgid "Failed to Eject {0}"
++msgstr "Espulsione fallita {0}"
++
++#: ../src/Dap/Banshee.Dap.MassStorage/MassStorageDap.cs:549
++#, csharp-format
++msgid "Removing songs from {0}"
++msgstr "Rimozione delle tracce da {0}"
++
++#: ../src/Dap/Banshee.Dap.MassStorage/MassStorageDap.cs:550
++#, csharp-format
++msgid "Removing {0} of {1}"
++msgstr "Rimozione {0} di {1}"
++
++#: ../src/Dap/Banshee.Dap.MassStorage/MassStorageDap.cs:667
+ msgid "Audio Device"
+ msgstr "Dispositivo audio"
+
+-#: ../src/Banshee.Dap/Mtp/MtpDap.cs:143
+-msgid ": Found"
++#: ../src/Dap/Banshee.Dap.Mtp/MtpDap.cs:97
++#: ../src/Dap/Banshee.Dap.Mtp/MtpDap.cs:145
++msgid "MTP Support Ignoring Device"
++msgstr "Il supporto MTP ignora il dispositivo"
++
++#: ../src/Dap/Banshee.Dap.Mtp/MtpDap.cs:98
++#: ../src/Dap/Banshee.Dap.Mtp/MtpDap.cs:146
++msgid ""
++"Banshee's MTP audio player support can only handle one device at a time."
+ msgstr ""
++"Il supporto di Banshee ai riproduttori audio MTP permette di gestirne solo "
++"uno alla volta."
+
+-#: ../src/Banshee.Dap/Mtp/MtpDap.cs:144
+-msgid "Reading library information"
+-msgstr "Lettura delle informazioni della libreria"
++#: ../src/Dap/Banshee.Dap.Mtp/MtpDap.cs:117
++msgid "Error Initializing MTP Device Support"
++msgstr "Errore inizializzazione nel supporto del dispositivo MTP"
+
+-#: ../src/Banshee.Dap/Mtp/MtpDap.cs:155
+-msgid "Loading device"
++#: ../src/Dap/Banshee.Dap.Mtp/MtpDap.cs:118
++msgid ""
++"There was an error intializing MTP device support. See http://www.banshee-"
++"project.org/Guide/DAPs/MTP for more information."
+ msgstr ""
++"Errore inizializzando il supporto al dispositivo MTP. Maggiori informazioni "
++"su http://www.banshee-project.org/Guide/DAPs/MTP/"
+
+-#: ../src/Banshee.Dap/Mtp/MtpDap.cs:159
+-msgid "Done"
+-msgstr ""
++#: ../src/Dap/Banshee.Dap.Mtp/MtpDap.cs:130
++msgid "Error Finding MTP Device Support"
++msgstr "Errore cercando il supporto al dispositivo MTP"
+
+-#: ../src/Banshee.Dap/Mtp/MtpDap.cs:160
+-msgid ": Ready for use"
++#: ../src/Dap/Banshee.Dap.Mtp/MtpDap.cs:131
++msgid ""
++"An MTP device was detected, but Banshee was unable to load support for it."
+ msgstr ""
++"Rilevato un dispositivo MTP, ma non è possibile ottenere supporto da Banshee."
+
+-#: ../src/Banshee.Dap/Mtp/MtpDap.cs:207 ../src/Banshee.Dap/Mtp/MtpDap.cs:211
+-#: ../src/Banshee.Dap/Mtp/MtpDap.cs:244 ../src/Banshee.Dap/Njb/NjbDap.cs:238
+-#: ../src/Banshee.Dap/Njb/NjbDap.cs:250
+-msgid "Synchronizing Device"
+-msgstr "Sincronizzazione del dispositivo"
++#: ../src/Dap/Banshee.Dap.Mtp/MtpDap.cs:195
++msgid "Audio Format(s)"
++msgstr "Formato(i) audio"
+
+-#: ../src/Banshee.Dap/Njb/NjbDap.cs:145
++#: ../src/Dap/Banshee.Dap.Mtp/MtpDap.cs:196
++msgid "Album Art"
++msgstr "Copertina album"
++
++#: ../src/Dap/Banshee.Dap.Mtp/MtpDap.cs:196
++msgid "Yes"
++msgstr "Si"
++
++#: ../src/Dap/Banshee.Dap.Mtp/MtpDap.cs:196
++msgid "No"
++msgstr "No"
++
++#: ../src/Dap/Banshee.Dap.Mtp/MtpDap.cs:198
++msgid "Serial Number"
++msgstr "Numero seriale"
++
++#: ../src/Dap/Banshee.Dap.Mtp/MtpDap.cs:254
++#, csharp-format
++msgid "Loading {0}"
++msgstr "Caricamento {0}"
++
++#: ../src/Dap/Banshee.Dap.Mtp/MtpDap.cs:439
++#: ../src/Dap/Banshee.Dap.Mtp/MtpDap.cs:446
++msgid "Syncing album art"
++msgstr "Sincronizzazione copertine album"
++
++#: ../src/Dap/Banshee.Dap.Mtp/MtpDap.cs:451
++#, csharp-format
++msgid "There was an unknown error while synchronizing {0}."
++msgstr "Errore sconosciuto durante la sincronizzazione {0}."
++
++#: ../src/Dap/Banshee.Dap.Mtp/MtpDap.cs:467
++msgid "MTP Device Error"
++msgstr "Errore del dispositivo MTP"
++
++#: ../src/Dap/Banshee.Dap.Mtp/MtpDap.cs:483
++#, csharp-format
++msgid "Importing from {0}"
++msgstr "Importa da {0}"
++
++#: ../src/Dap/Banshee.Dap.Njb/NjbDap.cs:155
+ msgid "Cannot read device"
+-msgstr ""
++msgstr "Impossibile leggere il dispositivo"
+
+-#: ../src/Banshee.Dap/Njb/NjbDap.cs:250
+-msgid "Removing Songs"
+-msgstr "Rimozione delle canzoni"
+-
+-#: ../src/Banshee.Dap/Njb/NjbDap.cs:348
++#: ../src/Dap/Banshee.Dap.Njb/NjbDap.cs:358
+ msgid "Device Error"
+ msgstr "Errore del dispositivo"
+
+-#: ../src/Banshee.Dap/Njb/NjbDap.cs:349
++#: ../src/Dap/Banshee.Dap.Njb/NjbDap.cs:359
+ msgid "Could not set the owner of the device."
+-msgstr ""
++msgstr "Impossibile stabilire il proprietario del dispositivo"
+
+-#: ../src/Banshee.MediaEngine/Gstreamer/GstPlayerEngine.cs:64
++#: ../src/Engines/Banshee.MediaEngine.GStreamer/GstPlayerEngine.cs:140
+ msgid "Could not initialize GStreamer library"
+ msgstr "Impossibile inizializzare la libreria GStreamer"
+
+-#: ../src/Banshee.MediaEngine/Gstreamer/GstPlayerEngine.cs:142
+-msgid "Unknown Error"
+-msgstr "Errore sconosciuto"
++#: ../src/Extras/Last.FM/Last.FM.Gui/AccountLoginDialog.cs:48
++#: ../src/Extras/Last.FM/Last.FM.Gui/AccountLoginDialog.cs:75
++msgid "Last.fm Account Login"
++msgstr "Credenziali di autenticazione di Last.fm"
+
+-#: ../src/Banshee.MediaEngine/Gstreamer/GstPlayerEngine.cs:164
+-#: ../src/Banshee.Widgets/StreamPositionLabel.cs:81
+-msgid "Buffering"
+-msgstr ""
++#: ../src/Extras/Last.FM/Last.FM.Gui/AccountLoginDialog.cs:78
++msgid "Please enter your Last.fm account credentials."
++msgstr "Inserire le credenziali per Last.fm."
+
+-#: ../src/Banshee.Plugins/Audioscrobbler/AudioscrobblerConfigDialog.cs:61
+-#: ../src/Banshee.Plugins/Audioscrobbler/AudioscrobblerPlugin.cs:142
++#: ../src/Extras/Last.FM/Last.FM.Gui/AccountLoginForm.cs:50
++msgid "Account Name:"
++msgstr "Nome utente:"
++
++#: ../src/Extras/Last.FM/Last.FM.Gui/AccountLoginForm.cs:57
++#: ../src/Plugins/Banshee.Plugins.Daap/DaapLoginDialog.cs:112
++msgid "Password:"
++msgstr "Parola d'ordine:"
++
++#: ../src/Plugins/Banshee.Plugins.Audioscrobbler/AudioscrobblerConfigDialog.cs:60
++#: ../src/Plugins/Banshee.Plugins.Audioscrobbler/AudioscrobblerPlugin.cs:142
+ msgid "Audioscrobbler Reporting"
+-msgstr ""
++msgstr "Segnalazioni Audioscrobbler"
+
+-#: ../src/Banshee.Plugins/Audioscrobbler/AudioscrobblerConfigDialog.cs:73
++#: ../src/Plugins/Banshee.Plugins.Audioscrobbler/AudioscrobblerConfigDialog.cs:72
+ msgid "Create an account"
+-msgstr "Crea un account"
++msgstr "Crea un utente"
+
+-#: ../src/Banshee.Plugins/Audioscrobbler/AudioscrobblerConfigDialog.cs:77
++#: ../src/Plugins/Banshee.Plugins.Audioscrobbler/AudioscrobblerConfigDialog.cs:76
+ msgid "Join the Banshee group"
+ msgstr "Adesione al gruppo Banshee"
+
+-#: ../src/Banshee.Plugins/Audioscrobbler/AudioscrobblerConfigDialog.cs:91
+-#: ../src/Banshee.Plugins/Audioscrobbler/AudioscrobblerPlugin.cs:113
+-#: ../src/Banshee.Plugins/Audioscrobbler/AudioscrobblerPlugin.cs:114
++#: ../src/Plugins/Banshee.Plugins.Audioscrobbler/AudioscrobblerConfigDialog.cs:90
++#: ../src/Plugins/Banshee.Plugins.Audioscrobbler/AudioscrobblerPlugin.cs:115
+ msgid "Enable song reporting"
+-msgstr "Abilitare la segnalazione delle canzoni"
++msgstr "Abilitare la segnalazione delle tracce"
+
+-#: ../src/Banshee.Plugins/Audioscrobbler/AudioscrobblerConfigDialog.cs:101
++#: ../src/Plugins/Banshee.Plugins.Audioscrobbler/AudioscrobblerConfigDialog.cs:100
+ msgid "Last.fm Username"
+ msgstr "Nome utente per Last.fm"
+
+-#: ../src/Banshee.Plugins/Audioscrobbler/AudioscrobblerConfigDialog.cs:102
++#: ../src/Plugins/Banshee.Plugins.Audioscrobbler/AudioscrobblerConfigDialog.cs:101
+ msgid "Last.fm Password"
+-msgstr "Password per Last.fm"
++msgstr "Parola d'ordine per Last.fm"
+
+-#: ../src/Banshee.Plugins/Audioscrobbler/AudioscrobblerPlugin.cs:58
++#: ../src/Plugins/Banshee.Plugins.Audioscrobbler/AudioscrobblerPlugin.cs:66
+ msgid ""
+ "Your profile page on Last.fm is automatically updated whenever you listen to "
+ "music. It lets others see what you're listening to right now, and shows "
+ "charts of your listening history."
+-msgstr "La propria pagina del profilo su Last.fm è aggiornata automaticament quando si ascota della musica. Consente agli altri di vedere cosa si è ascoltato finora e mostrare grafici della propria cronologia di ascolto."
++msgstr ""
++"La propria pagina del profilo su Last.fm è aggiornata automaticamente quando "
++"si ascota della musica. Consente agli altri di vedere cosa si è ascoltato "
++"finora e mostrare grafici della propria cronologia di riproduzione."
+
+-#: ../src/Banshee.Plugins/Audioscrobbler/AudioscrobblerPlugin.cs:95
+-msgid "Audioscrobbler"
+-msgstr "Audioscrobbler"
++#: ../src/Plugins/Banshee.Plugins.Audioscrobbler/AudioscrobblerPlugin.cs:96
++msgid "_Audioscrobbler"
++msgstr "_Audioscrobbler"
+
+-#: ../src/Banshee.Plugins/Audioscrobbler/AudioscrobblerPlugin.cs:96
+-#: ../src/Banshee.Plugins/Audioscrobbler/AudioscrobblerPlugin.cs:108
++#: ../src/Plugins/Banshee.Plugins.Audioscrobbler/AudioscrobblerPlugin.cs:97
++#: ../src/Plugins/Banshee.Plugins.Audioscrobbler/AudioscrobblerPlugin.cs:109
+ msgid "Configure the Audioscrobbler plugin"
+ msgstr "Configura il plugin per Audioscrobbler"
+
+-#: ../src/Banshee.Plugins/Audioscrobbler/AudioscrobblerPlugin.cs:99
+-msgid "Visit user profile page"
+-msgstr "Visita la pagina con il profilo utente"
++#: ../src/Plugins/Banshee.Plugins.Audioscrobbler/AudioscrobblerPlugin.cs:100
++msgid "Visit _user profile page"
++msgstr "Visita pagina del proprio profilo _utente"
+
+-#: ../src/Banshee.Plugins/Audioscrobbler/AudioscrobblerPlugin.cs:100
++#: ../src/Plugins/Banshee.Plugins.Audioscrobbler/AudioscrobblerPlugin.cs:101
+ msgid "Visit your Audioscrobbler profile page"
+ msgstr "Visita la pagina con il tuo profilo su Audioscrobbler"
+
+-#: ../src/Banshee.Plugins/Audioscrobbler/AudioscrobblerPlugin.cs:103
+-msgid "Visit group page"
+-msgstr "Visita la pagina del gruppo"
++#: ../src/Plugins/Banshee.Plugins.Audioscrobbler/AudioscrobblerPlugin.cs:104
++msgid "Visit _group page"
++msgstr "Visita la pagina del _gruppo Banshee"
+
+-#: ../src/Banshee.Plugins/Audioscrobbler/AudioscrobblerPlugin.cs:104
++#: ../src/Plugins/Banshee.Plugins.Audioscrobbler/AudioscrobblerPlugin.cs:105
+ msgid "Visit the Banshee last.fm group page"
+ msgstr "Visita la pagina del gruppo Banshee su last.fm"
+
+-#: ../src/Banshee.Plugins/Audioscrobbler/AudioscrobblerPlugin.cs:107
+-msgid "Configure..."
+-msgstr "Configurazione..."
++#: ../src/Plugins/Banshee.Plugins.Audioscrobbler/AudioscrobblerPlugin.cs:108
++msgid "_Configure..."
++msgstr "_Configura..."
+
+-#: ../src/Banshee.Plugins/Audioscrobbler/audioscrobbler.schemas.in.h:1
+-msgid ""
+-"Allow engine to submit song data to last.fm in the Audioscrobbler plugin"
+-msgstr ""
++#: ../src/Plugins/Banshee.Plugins.Audioscrobbler/AudioscrobblerPlugin.cs:114
++msgid "_Enable song reporting"
++msgstr "_Abilita segnalazione delle tracce"
+
+-#: ../src/Banshee.Plugins/Audioscrobbler/audioscrobbler.schemas.in.h:2
+-msgid "Enable the Audioscrobbler plugin"
+-msgstr "Abilita il plugin per Audioscrobbler"
++#: ../src/Plugins/Banshee.Plugins.Audioscrobbler/banshee-plugin-audioscrobbler.schemas.in.h:1
++msgid "Audioscrobbler reporting engine enabled"
++msgstr "Motore segnalazioni Audioscrobbler abilitato"
+
+-#: ../src/Banshee.Plugins/Audioscrobbler/audioscrobbler.schemas.in.h:3
+-msgid "Your last.fm password"
+-msgstr "La propria password per last.fm"
++#: ../src/Plugins/Banshee.Plugins.Audioscrobbler/banshee-plugin-audioscrobbler.schemas.in.h:2
++msgid "Audioscrobbler reporting plugin enabled"
++msgstr "Plugin segnalazioni Audioscrobbler abilitato"
+
+-#: ../src/Banshee.Plugins/Audioscrobbler/audioscrobbler.schemas.in.h:4
+-msgid "Your last.fm username"
+-msgstr "Il proprio nome utente per last.fm"
++#: ../src/Plugins/Banshee.Plugins.Audioscrobbler/banshee-plugin-audioscrobbler.schemas.in.h:3
++msgid "Engine enabled"
++msgstr "Motore abilitato"
+
+-#: ../src/Banshee.Plugins/Daap/DaapConfigPage.cs:50
++#: ../src/Plugins/Banshee.Plugins.Audioscrobbler/banshee-plugin-audioscrobbler.schemas.in.h:4
++msgid "Password"
++msgstr "Parola d'ordine"
++
++#: ../src/Plugins/Banshee.Plugins.Audioscrobbler/banshee-plugin-audioscrobbler.schemas.in.h:5
++#: ../src/Plugins/Banshee.Plugins.Bookmarks/banshee-plugin-bookmarks.schemas.in.h:2
++#: ../src/Plugins/Banshee.Plugins.Daap/banshee-plugin-daap.schemas.in.h:3
++#: ../src/Plugins/Banshee.Plugins.LastFM/banshee-plugin-lastfm.schemas.in.h:6
++#: ../src/Plugins/Banshee.Plugins.MetadataSearch/banshee-plugin-metadatasearcher.schemas.in.h:2
++#: ../src/Plugins/Banshee.Plugins.MiniMode/banshee-plugin-minimode.schemas.in.h:2
++#: ../src/Plugins/Banshee.Plugins.MMKeys/banshee-plugin-mmkeys.schemas.in.h:2
++#: ../src/Plugins/Banshee.Plugins.NotificationAreaIcon/banshee-plugin-notificationarea.schemas.in.h:2
++#: ../src/Plugins/Banshee.Plugins.Podcast/banshee-plugin-podcast.schemas.in.h:2
++#: ../src/Plugins/Banshee.Plugins.Radio/banshee-plugin-radio.schemas.in.h:4
++#: ../src/Plugins/Banshee.Plugins.Recommendation/banshee-plugin-recommendation.schemas.in.h:2
++msgid "Plugin enabled"
++msgstr "Plugin abilitato"
++
++#: ../src/Plugins/Banshee.Plugins.Audioscrobbler/banshee-plugin-audioscrobbler.schemas.in.h:6
++msgid "Username"
++msgstr "Nome utente"
++
++#: ../src/Plugins/Banshee.Plugins.Audioscrobbler/banshee-plugin-audioscrobbler.schemas.in.h:7
++msgid "last.fm Password"
++msgstr "Parola d'ordine Last.fm"
++
++#: ../src/Plugins/Banshee.Plugins.Audioscrobbler/banshee-plugin-audioscrobbler.schemas.in.h:8
++msgid "last.fm Username"
++msgstr "Nome utente Last.fm"
++
++#: ../src/Plugins/Banshee.Plugins.Bookmarks/banshee-plugin-bookmarks.schemas.in.h:1
++msgid "Bookmarks plugin enabled"
++msgstr "Plugin segnalibri abilitato"
++
++#: ../src/Plugins/Banshee.Plugins.Bookmarks/BookmarksPlugin.cs:34
++msgid "Bookmarks"
++msgstr "Segnalibri"
++
++#: ../src/Plugins/Banshee.Plugins.Bookmarks/BookmarksPlugin.cs:38
++msgid "Bookmark your position in tracks."
++msgstr "Segnalibro della posizione nella traccia."
++
++#: ../src/Plugins/Banshee.Plugins.Bookmarks/BookmarksPlugin.cs:103
++msgid "_Bookmarks"
++msgstr "_Segnalibri"
++
++#: ../src/Plugins/Banshee.Plugins.Bookmarks/BookmarksPlugin.cs:106
++msgid "_Add Bookmark"
++msgstr "_Aggiungi segnalibro"
++
++#: ../src/Plugins/Banshee.Plugins.Bookmarks/BookmarksPlugin.cs:107
++msgid "Bookmark the Position in the Current Track"
++msgstr "Segnalibro della posizione dell'attuale traccia"
++
++#: ../src/Plugins/Banshee.Plugins.Bookmarks/BookmarksPlugin.cs:119
++msgid "_Remove Bookmark"
++msgstr "_Rimuovi segnalibro"
++
++#. Translators: This is used to generate bookmark names. {0} is track title, {1} is minutes
++#. (possibly more than two digits) and {2} is seconds (between 00 and 60).
++#: ../src/Plugins/Banshee.Plugins.Bookmarks/BookmarksPlugin.cs:235
++#, csharp-format
++msgid "{0} ({1}:{2:00})"
++msgstr "{0} ({1}:{2:00})"
++
++#: ../src/Plugins/Banshee.Plugins.Daap/banshee-plugin-daap.schemas.in.h:1
++msgid "DAAP plugin enabled"
++msgstr "Plugin DAAP abilitato"
++
++#: ../src/Plugins/Banshee.Plugins.Daap/banshee-plugin-daap.schemas.in.h:2
++msgid "Music share name"
++msgstr "Nome condivisione musica"
++
++#: ../src/Plugins/Banshee.Plugins.Daap/banshee-plugin-daap.schemas.in.h:4
++msgid "Share local music with others"
++msgstr "Condividere musica locale con altri"
++
++#: ../src/Plugins/Banshee.Plugins.Daap/banshee-plugin-daap.schemas.in.h:5
++msgid "Share name"
++msgstr "Nome della condivisione"
++
++#: ../src/Plugins/Banshee.Plugins.Daap/banshee-plugin-daap.schemas.in.h:6
++msgid "Share server enabled"
++msgstr "Server condivisione abilitato"
++
++#: ../src/Plugins/Banshee.Plugins.Daap/DaapConfigPage.cs:49
++#: ../src/Plugins/Banshee.Plugins.Daap/DaapPlugin.cs:50
+ msgid "Music Sharing"
+-msgstr "Condivisione musica"
++msgstr "Condivisione musicale"
+
+-#: ../src/Banshee.Plugins/Daap/DaapConfigPage.cs:53
++#: ../src/Plugins/Banshee.Plugins.Daap/DaapConfigPage.cs:52
+ msgid "Share my music library with others"
+ msgstr "Condividere la propria libreria con altri"
+
+-#: ../src/Banshee.Plugins/Daap/DaapConfigPage.cs:76
++#: ../src/Plugins/Banshee.Plugins.Daap/DaapConfigPage.cs:75
+ msgid "Share name:"
+ msgstr "Nome della condivisione:"
+
+-#: ../src/Banshee.Plugins/Daap/DaapCore.cs:74
++#: ../src/Plugins/Banshee.Plugins.Daap/DaapContainerSource.cs:43
++msgid "Shared Music"
++msgstr "Musica condivisa"
++
++#: ../src/Plugins/Banshee.Plugins.Daap/DaapCore.cs:72
+ msgid "Banshee Music Share"
+-msgstr "Condivisione musica di Banshee"
++msgstr "Condivisione musicale di Banshee"
+
+-#: ../src/Banshee.Plugins/Daap/DaapLoginDialog.cs:48
++#: ../src/Plugins/Banshee.Plugins.Daap/DaapErrorView.cs:64
++msgid "Disconnected from music share"
++msgstr "Disconnesso dalla condivisione musicale"
++
++#: ../src/Plugins/Banshee.Plugins.Daap/DaapErrorView.cs:65
++msgid "Unable to connect to music share"
++msgstr "Impossibile connettersi alla condivisione musicale"
++
++#: ../src/Plugins/Banshee.Plugins.Daap/DaapErrorView.cs:92
++msgid ""
++"iTunes® 7 introduced new compatibility issues and currently only works with "
++"other iTunes® 7 clients.\n"
++"\n"
++"No third-party clients can connect to iTunes® music shares anymore. This is "
++"an intentional limitation by Apple in iTunes® 7 and we apologize for the "
++"unfortunate inconvenience."
++msgstr ""
++"iTunes® 7 ha introdotto nuove compatibilità ed attualmente funziona solo con "
++"altri clienti iTunes® 7.\n"
++"\n"
++"Nessun cliente di terze parti può collegarsi alla condivisione musicale "
++"iTunes®. Questa è una limitazione internazionale di Apple in iTunes® 7 e ci "
++"scusiamo per lo sfortunato inconveniente."
++
++#: ../src/Plugins/Banshee.Plugins.Daap/DaapErrorView.cs:102
++msgid "Common reasons for connection failures:"
++msgstr "Motivi comuni per collegamenti falliti:"
++
++#: ../src/Plugins/Banshee.Plugins.Daap/DaapErrorView.cs:108
++msgid "The provided login credentials are invalid"
++msgstr "Le credenziali immesse non sono valide"
++
++#: ../src/Plugins/Banshee.Plugins.Daap/DaapErrorView.cs:109
++msgid "The login process was canceled"
++msgstr "Il processo di autenticazione è stato annullato"
++
++#: ../src/Plugins/Banshee.Plugins.Daap/DaapErrorView.cs:110
++msgid "Too many users are connected to this share"
++msgstr "Troppi utenti sono connessi a questa condivisione"
++
++#: ../src/Plugins/Banshee.Plugins.Daap/DaapErrorView.cs:112
++msgid "You are no longer connected to this music share"
++msgstr "Non si è più collegati a questa condivisione musicale"
++
++#: ../src/Plugins/Banshee.Plugins.Daap/DaapErrorView.cs:116
++msgid "Try connecting again"
++msgstr "Riprova ancora il collegamento"
++
++#: ../src/Plugins/Banshee.Plugins.Daap/DaapErrorView.cs:130
++msgid "The music share is hosted by iTunes® 7"
++msgstr "La condivisione musicale è ospitata da iTunes® 7"
++
++#: ../src/Plugins/Banshee.Plugins.Daap/DaapLoginDialog.cs:47
+ msgid "Login to Music Share"
+-msgstr "Effettua il login alla condivisione musicale"
++msgstr "Effettua l'autenticazione alla condivisione musicale"
+
+-#: ../src/Banshee.Plugins/Daap/DaapLoginDialog.cs:81
++#: ../src/Plugins/Banshee.Plugins.Daap/DaapLoginDialog.cs:80
+ msgid "Authentication Required"
+ msgstr "Ã richiesta l'autenticazione"
+
+-#: ../src/Banshee.Plugins/Daap/DaapLoginDialog.cs:105
++#: ../src/Plugins/Banshee.Plugins.Daap/DaapLoginDialog.cs:104
+ msgid "Username:"
+ msgstr "Nome utente:"
+
+-#: ../src/Banshee.Plugins/Daap/DaapLoginDialog.cs:113
+-#: ../src/Last.FM/Last.FM.Gui/AccountLoginForm.cs:57
+-msgid "Password:"
+-msgstr "Password"
+-
+-#: ../src/Banshee.Plugins/Daap/DaapLoginDialog.cs:124
++#: ../src/Plugins/Banshee.Plugins.Daap/DaapLoginDialog.cs:123
+ msgid "Login"
+-msgstr "Login"
++msgstr "Autentica"
+
+-#: ../src/Banshee.Plugins/Daap/DaapPlugin.cs:45
++#: ../src/Plugins/Banshee.Plugins.Daap/DaapPlugin.cs:55
+ msgid ""
+ "Allow browsing and listening to songs from music shares and share your "
+ "Banshee library with others. Works with other instances of Banshee, iTunes, "
+ "and Rhythmbox."
+ msgstr ""
++"Consente di passare in rassegna ed ascoltare le condivisioni musicali e di "
++"condividere la libreria di Banshee con altri. E' compatibile con altre "
++"istanze di Banshee, iTunes e Rhythmbox."
+
+-#: ../src/Banshee.Plugins/Daap/daap.schemas.in.h:1
+-msgid "Allow others to browse and listen to your music from other DAAP clients"
+-msgstr "Permettere agli altri di esplorare e ascoltare la propria musica da altri client DAAP"
++#: ../src/Plugins/Banshee.Plugins.Daap/DaapSource.cs:87
++#, csharp-format
++msgid "Connecting to {0}"
++msgstr "Connettere a {0}"
+
+-#: ../src/Banshee.Plugins/Daap/daap.schemas.in.h:2
+-msgid "Enable DAAP Server support"
+-msgstr "Abilita supporto per server DAAP"
++#: ../src/Plugins/Banshee.Plugins.Daap/DaapSource.cs:153
++#, csharp-format
++msgid "Logging in to {0}"
++msgstr "Entrando in {0}"
+
+-#: ../src/Banshee.Plugins/Daap/daap.schemas.in.h:3
+-msgid "Enable the DAAP Music Sharing plugin"
+-msgstr "Abilita plugin per condivisione musica con DAAP"
++#: ../src/Plugins/Banshee.Plugins.Daap/DaapSource.cs:216
++msgid "Disconnect"
++msgstr "Sconnessione"
+
+-#: ../src/Banshee.Plugins/Daap/daap.schemas.in.h:4
+-msgid "Name of DAAP server share"
+-msgstr "Nome del server DAAP"
++#: ../src/Plugins/Banshee.Plugins.LastFM/Connection.cs:333
++msgid "Failed to Login to Last.fm"
++msgstr "Fallito l'autenticazione a Last.fm"
+
+-#: ../src/Banshee.Plugins/Daap/DaapSource.cs:71
+-msgid "Cannot login to DAAP share"
+-msgstr ""
++#: ../src/Plugins/Banshee.Plugins.LastFM/Connection.cs:334
++msgid "Either your username or password is invalid."
++msgstr "Il nome utente o la parola d'ordine sono invalidi."
+
+-#: ../src/Banshee.Plugins/Daap/DaapSource.cs:157
+-msgid "Disconnect"
+-msgstr ""
++#: ../src/Plugins/Banshee.Plugins.LastFM/Connection.cs:457
++msgid "There is not enough content to play this station."
++msgstr "Non ci sono abbastanza contenuti per riprodurre questa radio."
+
+-#: ../src/Banshee.Plugins/MetadataSearch/MetadataSearchConfigDialog.cs:61
+-msgid "Metadata and Cover Art Searching"
+-msgstr "Ricerca di metadati e copertine"
++#: ../src/Plugins/Banshee.Plugins.LastFM/Connection.cs:458
++msgid "This group does not have enough members for radio."
++msgstr "Questo gruppo non ha abbastanza membri per la radio."
+
+-#: ../src/Banshee.Plugins/MetadataSearch/MetadataSearchConfigDialog.cs:70
+-msgid "Only download album cover artwork"
+-msgstr "Scaricare solamente la copertina dell'album"
++#: ../src/Plugins/Banshee.Plugins.LastFM/Connection.cs:459
++msgid "This artist does not have enough fans for radio."
++msgstr "Questo artista non ha abbastanza ammiratori per la radio."
+
+-#: ../src/Banshee.Plugins/MetadataSearch/MetadataSearchConfigDialog.cs:72
+-msgid "Download album cover artwork and fill in missing track data"
+-msgstr "Scaricare la copertina dell'album e riempire i dati mancanti nelle tracce"
++#: ../src/Plugins/Banshee.Plugins.LastFM/Connection.cs:460
++msgid "This station is not available."
++msgstr "Questa stazione non è disponibile."
+
+-#: ../src/Banshee.Plugins/MetadataSearch/MetadataSearchConfigDialog.cs:74
+-msgid "Download album cover artwork and overwrite any existing track data"
+-msgstr "Scaricare la copertina dell'album e sovrascrivere tutti i dati esistenti delle tracce"
++#: ../src/Plugins/Banshee.Plugins.LastFM/Connection.cs:461
++msgid "This station is only available to subscribers."
++msgstr "Questa stazione è disponibile solo per gli abbonati."
+
+-#: ../src/Banshee.Plugins/MetadataSearch/MetadataSearchConfigDialog.cs:76
+-msgid "Rescan Library"
+-msgstr "Scansiona nuovamente libreria"
++#: ../src/Plugins/Banshee.Plugins.LastFM/Connection.cs:462
++msgid "There are not enough neighbours for this station."
++msgstr "Non ci sono abbastanza vicini per questa stazione."
+
+-#: ../src/Banshee.Plugins/MetadataSearch/MetadataSearchConfigDialog.cs:96
+-msgid "Warning"
+-msgstr "Attenzione"
++#: ../src/Plugins/Banshee.Plugins.LastFM/Connection.cs:463
++msgid ""
++"The streaming system is offline for maintenance, please try again later."
++msgstr "Il sistema di flusso è fuori rete per manutenzione, riprova più tardi."
+
+-#: ../src/Banshee.Plugins/MetadataSearch/MetadataSearchConfigDialog.cs:98
++#: ../src/Plugins/Banshee.Plugins.LastFM/Connection.cs:464
++msgid "There was an unknown error."
++msgstr "Errore sconosciuto"
++
++#: ../src/Plugins/Banshee.Plugins.LastFM/Connection.cs:472
++msgid "Not connected to Last.fm."
++msgstr "Non connesso a Last.fm."
++
++#: ../src/Plugins/Banshee.Plugins.LastFM/Connection.cs:473
++msgid "Need account details before can connect to Last.fm"
++msgstr "Richieste le credenziali prima di potersi connettere a Last.fm."
++
++#: ../src/Plugins/Banshee.Plugins.LastFM/Connection.cs:474
++msgid "No network connection detected."
++msgstr "Nessuna connessione di rete individuata."
++
++#: ../src/Plugins/Banshee.Plugins.LastFM/Connection.cs:475
++msgid "Last.fm username or password is invalid."
++msgstr "Il nome utente o la parola d'ordine di Last.fm sono invalidi."
++
++#: ../src/Plugins/Banshee.Plugins.LastFM/Connection.cs:476
++msgid "Connecting to Last.fm."
++msgstr "Connessione a Last.fm."
++
++#: ../src/Plugins/Banshee.Plugins.LastFM/Connection.cs:477
++msgid "Connected to Last.fm."
++msgstr "Connesso a Last.fm"
++
++#: ../src/Plugins/Banshee.Plugins.LastFM/Editor.cs:62
++msgid "Edit Station"
++msgstr "Modifica stazione"
++
++#: ../src/Plugins/Banshee.Plugins.LastFM/Editor.cs:69
++msgid "New Station"
++msgstr "Nuova stazione"
++
++#: ../src/Plugins/Banshee.Plugins.LastFM/LastFMSource.cs:178
++msgid "Edit Last.fm Settings"
++msgstr "Modifica preferenze Last.fm"
++
++#: ../src/Plugins/Banshee.Plugins.LastFM/LastFMSource.cs:257
++msgid "Last.fm (Disconnected)"
++msgstr "Last.fm (Disconnesso)"
++
++#: ../src/Plugins/Banshee.Plugins.LastFM/Plugin.cs:76
++msgid "Last.fm Radio"
++msgstr "Radio Last.fm"
++
++#: ../src/Plugins/Banshee.Plugins.LastFM/Plugin.cs:80
+ msgid ""
+-"This option can usually correct minor mistakes in metadata, however on rare "
+-"occasions metadata may be incorrectly updated from MusicBrainz."
+-msgstr "Questa opzione in genere può correggere dei piccoli errori nei metadati, ma in rare occasioni è possibile che i metadati vengano aggiornati erroneamente da MusicBrainz."
++"Play music from Last.fm, the world's largest social music platform. Show off "
++"your taste, see what your friends are listening to, hear new music, get "
++"personal radio, recommendations, and downloads, all for free."
++msgstr ""
++"Riproduci musica da Last.fm, la più grande piattaforma mondiale di "
++"condivisione sociale di musica. Mostra i tuoi gusti, osserva cosa ascoltano "
++"i tuoi amici, ascolta nuova musica, ottieni una radio personale, consigli e "
++"scaricamenti, tutto in libertà ."
+
+-#: ../src/Banshee.Plugins/MetadataSearch/MetadataSearchPlugin.cs:54
++#: ../src/Plugins/Banshee.Plugins.LastFM/Plugin.cs:108
++msgid "_Add Station"
++msgstr "_Aggiungi stazione"
++
++#: ../src/Plugins/Banshee.Plugins.LastFM/Plugin.cs:113
++msgid "Connect"
++msgstr "Connetti"
++
++#: ../src/Plugins/Banshee.Plugins.LastFM/Plugin.cs:118
++msgid "Sort Stations by"
++msgstr "Disponi stazioni per"
++
++#: ../src/Plugins/Banshee.Plugins.LastFM/Plugin.cs:123
++msgid "Love Track"
++msgstr "Accetta traccia"
++
++#: ../src/Plugins/Banshee.Plugins.LastFM/Plugin.cs:124
++msgid "Mark current track as loved"
++msgstr "Marca la corrente traccia come accettata"
++
++#: ../src/Plugins/Banshee.Plugins.LastFM/Plugin.cs:128
++msgid "Ban Track"
++msgstr "Rifiuta traccia"
++
++#: ../src/Plugins/Banshee.Plugins.LastFM/Plugin.cs:129
++msgid "Mark current track as banned"
++msgstr "Marca la corrente traccia come rifiutata"
++
++#: ../src/Plugins/Banshee.Plugins.LastFM/Plugin.cs:137
++msgid "Station Name"
++msgstr "Nome stazione"
++
++#: ../src/Plugins/Banshee.Plugins.LastFM/Plugin.cs:142
++msgid "Total Play Count"
++msgstr "Contatore totale di riproduzione"
++
++#: ../src/Plugins/Banshee.Plugins.LastFM/Plugin.cs:147
++msgid "Station Type"
++msgstr "Tipo stazione"
++
++#: ../src/Plugins/Banshee.Plugins.LastFM/StationSource.cs:216
++#, csharp-format
++msgid "Tuning Last.fm to {0}."
++msgstr "Sintonizza Last.fm a {0}."
++
++#. Translators: {0} is an error message sentence from Connection.cs.
++#: ../src/Plugins/Banshee.Plugins.LastFM/StationSource.cs:226
++#, csharp-format
++msgid "Failed to tune in station. {0}"
++msgstr "Impossibile sintonizzare la stazione. {0}"
++
++#: ../src/Plugins/Banshee.Plugins.LastFM/StationSource.cs:306
++#, csharp-format
++msgid "Getting new songs for {0}."
++msgstr "Prendi nuove canzoni per {0}"
++
++#: ../src/Plugins/Banshee.Plugins.LastFM/StationSource.cs:313
++#, csharp-format
++msgid "No new songs available for {0}."
++msgstr "Nessuna nuova canzone disponibile per {0}."
++
++#: ../src/Plugins/Banshee.Plugins.LastFM/StationSource.cs:336
++#, csharp-format
++msgid "Failed to get new songs for {0}."
++msgstr "Fallimento nel prendere nuove canzoni per {0}."
++
++#: ../src/Plugins/Banshee.Plugins.LastFM/StationSource.cs:432
++msgid "Delete Last.fm Station"
++msgstr "Elimina stazione Last.fm"
++
++#: ../src/Plugins/Banshee.Plugins.LastFM/StationSource.cs:437
++msgid "Last.fm Station"
++msgstr "Stazione Last.fm"
++
++#: ../src/Plugins/Banshee.Plugins.LastFM/StationSource.cs:442
++msgid "Edit Last.fm Station"
++msgstr "Modifica stazione Last.fm"
++
++#: ../src/Plugins/Banshee.Plugins.LastFM/StationSource.cs:484
++#: ../src/Plugins/Banshee.Plugins.LastFM/StationType.cs:85
++msgid "Recommended"
++msgstr "Raccomandati"
++
++#: ../src/Plugins/Banshee.Plugins.LastFM/StationSource.cs:485
++#: ../src/Plugins/Banshee.Plugins.LastFM/StationType.cs:94
++msgid "Personal"
++msgstr "Personale"
++
++#: ../src/Plugins/Banshee.Plugins.LastFM/StationSource.cs:486
++#: ../src/Plugins/Banshee.Plugins.LastFM/StationType.cs:103
++msgid "Loved"
++msgstr "Accettate"
++
++#: ../src/Plugins/Banshee.Plugins.LastFM/StationSource.cs:487
++#: ../src/Plugins/Banshee.Plugins.LastFM/StationType.cs:112
++msgid "Neighbors"
++msgstr "Vicini"
++
++#: ../src/Plugins/Banshee.Plugins.LastFM/StationType.cs:86
++#: ../src/Plugins/Banshee.Plugins.LastFM/StationType.cs:95
++msgid "For User:"
++msgstr "Per utente:"
++
++#: ../src/Plugins/Banshee.Plugins.LastFM/StationType.cs:104
++msgid "By User:"
++msgstr "Per utente:"
++
++#: ../src/Plugins/Banshee.Plugins.LastFM/StationType.cs:113
++msgid "Of User:"
++msgstr "Dell'utente:"
++
++#: ../src/Plugins/Banshee.Plugins.LastFM/StationType.cs:121
++msgid "Group"
++msgstr "Gruppo"
++
++#: ../src/Plugins/Banshee.Plugins.LastFM/StationType.cs:122
++msgid "Group Name:"
++msgstr "Nome gruppo:"
++
++#: ../src/Plugins/Banshee.Plugins.LastFM/StationType.cs:130
++msgid "Tag"
++msgstr "Etichetta"
++
++#: ../src/Plugins/Banshee.Plugins.LastFM/StationType.cs:131
++msgid "Tag Name:"
++msgstr "Nome etichetta"
++
++#: ../src/Plugins/Banshee.Plugins.LastFM/StationType.cs:139
++msgid "Fan"
++msgstr "Ammiratore"
++
++#: ../src/Plugins/Banshee.Plugins.LastFM/StationType.cs:140
++msgid "Fans of:"
++msgstr "Ammiratore di:"
++
++#: ../src/Plugins/Banshee.Plugins.LastFM/StationType.cs:148
++msgid "Similar"
++msgstr "Similare"
++
++#: ../src/Plugins/Banshee.Plugins.LastFM/StationType.cs:149
++msgid "Similar to:"
++msgstr "Similare a:"
++
++#: ../src/Plugins/Banshee.Plugins.LastFM/Resources/lastfm.glade.h:1
++msgid "Station _Type:"
++msgstr "_Tipo stazione:"
++
++#: ../src/Plugins/Banshee.Plugins.LastFM/Resources/lastfm.glade.h:2
++msgid "_Name:"
++msgstr "_Nome:"
++
++#: ../src/Plugins/Banshee.Plugins.LastFM/banshee-plugin-lastfm.schemas.in.h:1
++msgid "Last.fm expanded"
++msgstr "Espandi Last.fm"
++
++#: ../src/Plugins/Banshee.Plugins.LastFM/banshee-plugin-lastfm.schemas.in.h:2
++msgid "Last.fm plugin enabled"
++msgstr "Plugin Last.fm abilitato"
++
++#: ../src/Plugins/Banshee.Plugins.LastFM/banshee-plugin-lastfm.schemas.in.h:3
++msgid "Last.fm station sort criteria. 0 = name, 1 = play count, 2 = type"
++msgstr ""
++"Disponi criterio stazione di Last.fm. 0 = nome, 1 = numero riproduzioni, 2 = "
++"tipo"
++
++#: ../src/Plugins/Banshee.Plugins.LastFM/banshee-plugin-lastfm.schemas.in.h:4
++msgid "Last.fm user"
++msgstr "Utente Last.fm"
++
++#: ../src/Plugins/Banshee.Plugins.LastFM/banshee-plugin-lastfm.schemas.in.h:5
++msgid "Last.fm username"
++msgstr "Nome utente Last.fm"
++
++#: ../src/Plugins/Banshee.Plugins.LastFM/banshee-plugin-lastfm.schemas.in.h:7
++msgid "Station sort criteria"
++msgstr "Disponi criterio stazione"
++
++#: ../src/Plugins/Banshee.Plugins.MetadataSearch/banshee-plugin-metadatasearcher.schemas.in.h:1
++msgid "Metadata searcher plugin enabled"
++msgstr "Plugin ricerca metadati abilitato"
++
++#: ../src/Plugins/Banshee.Plugins.MetadataSearch/MetadataSearchPlugin.cs:57
+ msgid "Metadata Searcher"
+ msgstr "Ricerca metadati"
+
+-#: ../src/Banshee.Plugins/MetadataSearch/MetadataSearchPlugin.cs:59
++#: ../src/Plugins/Banshee.Plugins.MetadataSearch/MetadataSearchPlugin.cs:62
+ msgid ""
+ "Automatically search for missing and supplementary metadata and cover art "
+ "for songs in your library."
+-msgstr "Cerca automaticamente copertine degli album e metadati mancanti ed aggiuntivi per le canzoni nella propria libreria."
++msgstr ""
++"Cerca automaticamente copertine degli album e metadati mancanti ed "
++"aggiuntivi per le canzoni nella propria libreria."
+
+-#: ../src/Banshee.Plugins/MetadataSearch/metadatasearch.schemas.in.h:1
++#: ../src/Plugins/Banshee.Plugins.MetadataSearch/MetadataSearchPlugin.cs:130
++#: ../src/Plugins/Banshee.Plugins.MetadataSearch/MetadataSearchPlugin.cs:131
++msgid "Download Cover Art"
++msgstr "Scarica la copertina"
++
++#: ../src/Plugins/Banshee.Plugins.MetadataSearch/MetadataSearchPlugin.cs:209
++#: ../src/Plugins/Banshee.Plugins.Podcast/DownloadCore/DownloadCore.cs:495
++#: ../src/Plugins/Banshee.Plugins.Podcast/UI/PodcastSource.cs:746
++msgid "Download"
++msgstr "Scarica"
++
++#: ../src/Plugins/Banshee.Plugins.MetadataSearch/MetadataSearchPlugin.cs:210
++msgid "Downloading Cover Art"
++msgstr "Copertina in scaricamento"
++
++#: ../src/Plugins/Banshee.Plugins.MetadataSearch/MetadataSearchPlugin.cs:211
++msgid "Searching"
++msgstr "In ricerca"
++
++#: ../src/Plugins/Banshee.Plugins.MetadataSearch/MetadataSearchPlugin.cs:213
+ msgid ""
+-"0 - Download only cover art 1 - Download cover art, fill in missing metadata "
+-"2 - Download cover art, overwrite metadata"
++"Are you sure you want to stop downloading cover art for the albums in your "
++"library? The operation can be resumed at any time from the <i>Tools</i> menu."
+ msgstr ""
+-"0 - Scarica solo la copertina 1 - Scarica la copertina, riempi i metadati "
+-"mancanti 2 - Scarica la copertina, sovrascrivi i metadati"
++"Fermare lo scaricamento delle copertine album della vostra libreria? "
++"L'operazione potrà essere ripresa in seguito dal menù <i>Strumenti</i>."
+
+-#: ../src/Banshee.Plugins/MetadataSearch/metadatasearch.schemas.in.h:2
+-msgid "Enable the MetadataSearch plugin"
+-msgstr "Abilita il plugin MetadataSearch"
++#: ../src/Plugins/Banshee.Plugins.MiniMode/banshee-plugin-minimode.schemas.in.h:1
++msgid "MiniMode plugin enabled"
++msgstr "Plugin modo mini abilitato"
+
+-#: ../src/Banshee.Plugins/MetadataSearch/metadatasearch.schemas.in.h:3
+-msgid "Method of fetching cover art and supplementary metadata"
+-msgstr "Metodo per il recupero di copertine e metadati aggiuntivi"
++#: ../src/Plugins/Banshee.Plugins.MiniMode/minimode.glade.h:1
++msgid "<b><big>This is the title</big></b>"
++msgstr "<b><big>Questo è il titolo</big></b>"
+
+-#: ../src/Banshee.Plugins/MMKeys/MMKeysConfigPage.cs:48
++#: ../src/Plugins/Banshee.Plugins.MiniMode/minimode.glade.h:2
++msgid "<i>This is the album</i>"
++msgstr "<i>Questo è l'album</i>"
++
++#: ../src/Plugins/Banshee.Plugins.MiniMode/minimode.glade.h:4
++msgid "Current source:"
++msgstr "Sorgente corrente:"
++
++#: ../src/Plugins/Banshee.Plugins.MiniMode/minimode.glade.h:5
++msgid "Full Mode"
++msgstr "Modo pieno"
++
++#: ../src/Plugins/Banshee.Plugins.MiniMode/minimode.glade.h:6
++msgid "This is the artist"
++msgstr "Questo è l'artista"
++
++#: ../src/Plugins/Banshee.Plugins.MiniMode/MiniModePlugin.cs:39
++msgid ""
++"Mini Mode allows controlling Banshee through a small window with only "
++"playback controls and track information."
++msgstr ""
++"Il modo mini renderà Banshee controllabile mediante una piccola finestra con "
++"solo i controlli di riproduzione e le informazioni sulla traccia."
++
++#: ../src/Plugins/Banshee.Plugins.MiniMode/MiniModePlugin.cs:63
++msgid "_Mini Mode"
++msgstr "Modo _mini"
++
++#: ../src/Plugins/Banshee.Plugins.MiniMode/MiniModeWindow.cs:154
++msgid "Switch back to full mode"
++msgstr "Torna al modo pieno"
++
++#: ../src/Plugins/Banshee.Plugins.MMKeys/banshee-plugin-mmkeys.schemas.in.h:1
++msgid "Multimedia Keys plugin enabled"
++msgstr "Plugin scorciatoie multimediali abilitato"
++
++#: ../src/Plugins/Banshee.Plugins.MMKeys/MMKeysConfigPage.cs:47
+ msgid "Multimedia Keyboard Shortcuts"
+ msgstr "Scorciatoie tasti multimediali"
+
+-#: ../src/Banshee.Plugins/MMKeys/MMKeysConfigPage.cs:52
++#: ../src/Plugins/Banshee.Plugins.MMKeys/MMKeysConfigPage.cs:51
+ msgid ""
+ "Configuration of multimedia keyboard shortcuts is done through the Gnome "
+ "Keyboard Shortcuts configuration applet."
+ msgstr ""
++"La configurazione delle scorciatoie delle tastiere multimediali è fatta "
++"mediante la applet di configurazione delle scorciatoie della tastiera di "
++"Gnome."
+
+-#: ../src/Banshee.Plugins/MMKeys/MMKeysPlugin.cs:47
+-msgid "Adds support for multimedia keys configured through Gnome."
++#: ../src/Plugins/Banshee.Plugins.MMKeys/MMKeysConfigPage.cs:56
++msgid "Configure Keyboard Shortcuts"
++msgstr "Configurare scorciatoie tastiera"
++
++#: ../src/Plugins/Banshee.Plugins.MMKeys/MMKeysPlugin.cs:52
++msgid "Multimedia Keys"
++msgstr "Scorciatoie tasti multimediali"
++
++#: ../src/Plugins/Banshee.Plugins.MMKeys/MMKeysPlugin.cs:57
++msgid "Adds support for multimedia keys configured through GNOME."
+ msgstr ""
++"Aggiunge il supporto alla configurazione dei tasti multimediali mediante "
++"GNOME."
+
+-#: ../src/Banshee.Plugins/MMKeys/mmkeys.schemas.in.h:1
+-msgid "Enable the MultimediaKeys plugin"
+-msgstr "Abilita il plugin MultimediaKeys"
++#: ../src/Plugins/Banshee.Plugins.NotificationAreaIcon/banshee-plugin-notificationarea.schemas.in.h:1
++msgid "Notification area plugin enabled"
++msgstr "Estensione area di notifica abilitata"
+
+-#: ../src/Banshee.Plugins/NotificationAreaIcon/NotificationAreaIconPlugin.cs:48
+-#: ../src/Banshee.Plugins/NotificationAreaIcon/NotificationAreaIconConfigPage.cs:57
++#: ../src/Plugins/Banshee.Plugins.NotificationAreaIcon/banshee-plugin-notificationarea.schemas.in.h:3
++msgid "Quit instead of hide to notification area on close"
++msgstr "Chiudi invece di nascondere nell'area di notifica"
++
++#: ../src/Plugins/Banshee.Plugins.NotificationAreaIcon/banshee-plugin-notificationarea.schemas.in.h:4
++msgid "Quit on close"
++msgstr "Esce alla chiusura"
++
++#: ../src/Plugins/Banshee.Plugins.NotificationAreaIcon/banshee-plugin-notificationarea.schemas.in.h:5
++msgid "Show a notification when closing main window"
++msgstr "Mostrare una notifica quando chiudi la finestra principale"
++
++#: ../src/Plugins/Banshee.Plugins.NotificationAreaIcon/banshee-plugin-notificationarea.schemas.in.h:6
++msgid "Show notifications"
++msgstr "Mostrare le notifiche"
++
++#: ../src/Plugins/Banshee.Plugins.NotificationAreaIcon/banshee-plugin-notificationarea.schemas.in.h:7
++msgid "Show track information notifications when track starts playing"
++msgstr ""
++"Mostra la notifica di informazioni della traccia quando viene riprodotta"
++
++#: ../src/Plugins/Banshee.Plugins.NotificationAreaIcon/banshee-plugin-notificationarea.schemas.in.h:8
++msgid ""
++"When the main window is closed, show a notification stating this has "
++"happened."
++msgstr ""
++"Quando la finestra principale viene chiusa, mostra una notifica di quello "
++"che è accaduto."
++
++#: ../src/Plugins/Banshee.Plugins.NotificationAreaIcon/NotificationAreaIconConfigPage.cs:56
++#: ../src/Plugins/Banshee.Plugins.NotificationAreaIcon/NotificationAreaIconPlugin.cs:61
+ msgid "Notification Area Icon"
+ msgstr "Icona in area di notifica"
+
+-#: ../src/Banshee.Plugins/NotificationAreaIcon/NotificationAreaIconPlugin.cs:51
++#: ../src/Plugins/Banshee.Plugins.NotificationAreaIcon/NotificationAreaIconConfigPage.cs:64
++#: ../src/Plugins/Banshee.Plugins.NotificationAreaIcon/NotificationAreaIconPlugin.cs:116
++msgid "Show notifications when song changes"
++msgstr "Mostrare le notifiche quando cambia la traccia"
++
++#: ../src/Plugins/Banshee.Plugins.NotificationAreaIcon/NotificationAreaIconConfigPage.cs:71
++msgid "Quit Banshee when title bar close button is clicked"
++msgstr ""
++"Esce da Banshee quando si clicca sul pulsante di chiusura nella barra del "
++"titolo."
++
++#: ../src/Plugins/Banshee.Plugins.NotificationAreaIcon/NotificationAreaIconPlugin.cs:64
+ msgid "Shows the Notification Area Icon"
+-msgstr "Mostra l'icona nell'area di notifica"
++msgstr "Mostra l'icona in area di notifica"
+
+-#: ../src/Banshee.Plugins/NotificationAreaIcon/NotificationAreaIconPlugin.cs:169
++#: ../src/Plugins/Banshee.Plugins.NotificationAreaIcon/NotificationAreaIconPlugin.cs:109
++msgid "_Close"
++msgstr "_Chiudi"
++
++#: ../src/Plugins/Banshee.Plugins.NotificationAreaIcon/NotificationAreaIconPlugin.cs:110
++msgid "Close"
++msgstr "Chiudi"
++
++#: ../src/Plugins/Banshee.Plugins.NotificationAreaIcon/NotificationAreaIconPlugin.cs:115
++msgid "_Show Notifications"
++msgstr "_Mostra le notifiche"
++
++#: ../src/Plugins/Banshee.Plugins.NotificationAreaIcon/NotificationAreaIconPlugin.cs:221
++msgid "Still Running"
++msgstr "Ancora in esecuzione"
++
++#: ../src/Plugins/Banshee.Plugins.NotificationAreaIcon/NotificationAreaIconPlugin.cs:222
++msgid ""
++"Banshee was closed to the notification area. Use the <i>Quit</i> option to "
++"end your session."
++msgstr ""
++"Banshee verrà chiuso nell'area di notifica. Usa l'opzione <i>Esci</i> per "
++"chiuderlo definitivamente."
++
++#: ../src/Plugins/Banshee.Plugins.NotificationAreaIcon/NotificationAreaIconPlugin.cs:288
+ msgid "Now Playing"
+ msgstr "In riproduzione"
+
+-#: ../src/Banshee.Plugins/NotificationAreaIcon/NotificationAreaIconPlugin.cs:174
++#: ../src/Plugins/Banshee.Plugins.NotificationAreaIcon/NotificationAreaIconPlugin.cs:297
+ msgid "Cannot show notification"
+-msgstr ""
++msgstr "Impossibile mostrare le notifiche"
+
+-#: ../src/Banshee.Plugins/NotificationAreaIcon/NotificationAreaIconConfigPage.cs:65
+-msgid "Show notifications when song changes"
+-msgstr "Mostrare le notifiche quando cambia la canzone"
++#: ../src/Plugins/Banshee.Plugins.Podcast/banshee-plugin-podcast.schemas.in.h:1
++msgid "Playlist separator position"
++msgstr "Posizione separatore scaletta"
+
+-#: ../src/Banshee.Plugins/NotificationAreaIcon/banshee-notificationareaicon.schemas.in.h:1
+-msgid "Enable the Notification Area Icon plugin"
+-msgstr "Abilita il plugin «Icona per area di notifica»"
++#: ../src/Plugins/Banshee.Plugins.Podcast/banshee-plugin-podcast.schemas.in.h:3
++msgid "Podcast date column"
++msgstr "Colonna data podcast"
+
+-#: ../src/Banshee.Plugins/NotificationAreaIcon/banshee-notificationareaicon.schemas.in.h:2
+-msgid "Show notification bubbles when the song changes"
++#: ../src/Plugins/Banshee.Plugins.Podcast/banshee-plugin-podcast.schemas.in.h:4
++msgid "Podcast feed column"
++msgstr "Colonna notiziario podcast"
++
++#: ../src/Plugins/Banshee.Plugins.Podcast/banshee-plugin-podcast.schemas.in.h:5
++msgid "Podcast library location"
++msgstr "Posizione libreria dei podcast"
++
++#: ../src/Plugins/Banshee.Plugins.Podcast/banshee-plugin-podcast.schemas.in.h:6
++msgid "Podcast plugin enabled"
++msgstr "Estensione podcast abilitata"
++
++#: ../src/Plugins/Banshee.Plugins.Podcast/banshee-plugin-podcast.schemas.in.h:7
++msgid "Podcast title column"
++msgstr "Titolo colonna podcast"
++
++#: ../src/Plugins/Banshee.Plugins.Podcast/banshee-plugin-podcast.schemas.in.h:8
++msgid "Position of the podcast date playlist column"
++msgstr "Posizione della colonna della data scaletta podcast"
++
++#: ../src/Plugins/Banshee.Plugins.Podcast/banshee-plugin-podcast.schemas.in.h:9
++msgid "Position of the podcast feed playlist column"
++msgstr "Posizione della colonna del notiziario scaletta podcast"
++
++#: ../src/Plugins/Banshee.Plugins.Podcast/banshee-plugin-podcast.schemas.in.h:10
++msgid "Position of the podcast title playlist column"
++msgstr "Posizione della colonna del titolo scaletta podcast"
++
++#: ../src/Plugins/Banshee.Plugins.Podcast/banshee-plugin-podcast.schemas.in.h:11
++msgid "Position of the separator located between the feed and podcast views"
+ msgstr ""
++"Posizione del separatore situato fra le viste dei notiziari e dei podcast"
+
+-#: ../src/Banshee.Widgets/ActiveUserEvent.cs:86
++#: ../src/Plugins/Banshee.Plugins.Podcast/banshee-plugin-podcast.schemas.in.h:12
++msgid "Root directory for the podcast plugin to store downloaded files"
++msgstr "Cartella principale dove l'estensione podcast salva i file scaricati"
++
++#: ../src/Plugins/Banshee.Plugins.Podcast/DownloadCore/DownloadCore.cs:176
++msgid "DownloadCore is shutting down."
++msgstr "Nucleo scaricamenti in chiusura."
++
++#: ../src/Plugins/Banshee.Plugins.Podcast/DownloadCore/DownloadCore.cs:180
++#: ../src/Plugins/Banshee.Plugins.Podcast/DownloadCore/DownloadQueue.cs:78
++msgid "dif not in 'New' state."
++msgstr "dif non è nello stato 'new'"
++
++#: ../src/Plugins/Banshee.Plugins.Podcast/DownloadCore/DownloadCore.cs:193
++#: ../src/Plugins/Banshee.Plugins.Podcast/PodcastFeedFetcher.cs:110
++msgid "Uri scheme not supported."
++msgstr "Schema dell'uri non supportato"
++
++#: ../src/Plugins/Banshee.Plugins.Podcast/DownloadCore/DownloadCore.cs:202
++msgid "Download already queued."
++msgstr "Lo scaricamento è già in coda."
++
++#: ../src/Plugins/Banshee.Plugins.Podcast/DownloadCore/DownloadCore.cs:287
++msgid "uri is empty"
++msgstr "l'uri è vuoto"
++
++#: ../src/Plugins/Banshee.Plugins.Podcast/DownloadCore/DownloadCore.cs:291
++msgid "path is empty"
++msgstr "il percorso è vuoto"
++
++#: ../src/Plugins/Banshee.Plugins.Podcast/DownloadCore/DownloadCore.cs:497
++msgid "Downloading Files"
++msgstr "Scaricamento file"
++
++#: ../src/Plugins/Banshee.Plugins.Podcast/DownloadCore/DownloadCore.cs:498
++msgid "Initializing downloads"
++msgstr "Inizializzazione scaricamenti"
++
++#: ../src/Plugins/Banshee.Plugins.Podcast/DownloadCore/DownloadCore.cs:536
++msgid "Canceling Downloads"
++msgstr "Cancellazione scaricamenti"
++
++#: ../src/Plugins/Banshee.Plugins.Podcast/DownloadCore/DownloadCore.cs:537
++msgid "Waiting for downloads to terminate"
++msgstr "Attendere che gli scaricamenti terminino"
++
++#: ../src/Plugins/Banshee.Plugins.Podcast/DownloadCore/DownloadCore.cs:630
+ #, csharp-format
+-msgid "Stop {0}"
+-msgstr ""
++msgid "Downloading File"
++msgid_plural "Downloading Files ({0} of {1} completed)"
++msgstr[0] "Scaricamento file"
++msgstr[1] " Scaricamento file ({0} di {1} completati)"
+
+-#: ../src/Banshee.Widgets/ActiveUserEvent.cs:89
++#: ../src/Plugins/Banshee.Plugins.Podcast/DownloadCore/DownloadCore.cs:639
+ #, csharp-format
+ msgid ""
+-"The '{0}' operation is still performing work. Would you like to stop it?"
++"Downloading Files ({0} of {1} completed)\n"
++"{2} failed"
+ msgstr ""
++"Scaricamento file ({0} di {1} completati)\n"
++"{2} fallito"
+
+-#: ../src/Banshee.Widgets/ActiveUserEvent.cs:92
++#: ../src/Plugins/Banshee.Plugins.Podcast/DownloadCore/DownloadCore.cs:645
+ #, csharp-format
+-msgid "Continue {0}"
+-msgstr ""
++msgid "Currently transfering 1 file at {0} kB/s"
++msgid_plural "Currently transfering {1} files at {0} kB/s"
++msgstr[0] "Trasferimento attuale del file a {0} kB/s"
++msgstr[1] "Trasferimento attuale di {1} file a {0} kB/s"
+
+-#: ../src/Banshee.Widgets/DiscUsageDisplay.cs:201
+-msgid ""
+-"Insert\n"
+-"Disc"
+-msgstr ""
++#: ../src/Plugins/Banshee.Plugins.Podcast/DownloadCore/DownloadQueue.cs:82
++msgid "Already queued, must be unique."
++msgstr "Già accodato, deve essere unico."
+
+-#: ../src/Banshee.Widgets/SearchEntry.cs:204
+-#: ../src/Banshee.Widgets/SearchEntry.cs:315
++#: ../src/Plugins/Banshee.Plugins.Podcast/DownloadCore/DownloadQueue.cs:103
++msgid "Item not in queue."
++msgstr "Oggetto non in coda"
++
++#: ../src/Plugins/Banshee.Plugins.Podcast/DownloadCore/DownloadTask.cs:239
++msgid "Uri scheme not supported"
++msgstr "Schema·dell'uri·non·supportato"
++
++#: ../src/Plugins/Banshee.Plugins.Podcast/DownloadCore/DownloadTask.cs:280
++#: ../src/Plugins/Banshee.Plugins.Podcast/DownloadCore/DownloadTask.cs:327
++#: ../src/Plugins/Banshee.Plugins.Podcast/DownloadCore/HttpDownloadTask.cs:120
++msgid "File complete"
++msgstr "File completato"
++
++#: ../src/Plugins/Banshee.Plugins.Podcast/DownloadCore/DownloadTask.cs:345
+ #, csharp-format
+-msgid "Searching: {0}"
+-msgstr "Ricerca: {0}"
++msgid "Unable to create directory: {0}"
++msgstr "Impossibile creare la cartella: {0}"
+
+-#: ../src/Banshee.Widgets/StreamPositionLabel.cs:83
+-msgid "Idle"
+-msgstr "Inattivo"
++#: ../src/Plugins/Banshee.Plugins.Podcast/DownloadCore/DownloadTask.cs:450
++msgid "Dif is not in 'running' state"
++msgstr "Dif non è nello stato 'running'"
+
+-#: ../src/Last.FM/Last.FM.Gui/AccountLoginDialog.cs:48
+-#: ../src/Last.FM/Last.FM.Gui/AccountLoginDialog.cs:75
+-msgid "Last.fm Account Login"
+-msgstr ""
++#: ../src/Plugins/Banshee.Plugins.Podcast/DownloadCore/HttpDownloadTask.cs:224
++#, csharp-format
++msgid "Contacting {0}..."
++msgstr "Contattando {0}..."
+
+-#: ../src/Last.FM/Last.FM.Gui/AccountLoginDialog.cs:78
+-msgid "Please enter your Last.fm account credentials."
+-msgstr ""
++#: ../src/Plugins/Banshee.Plugins.Podcast/DownloadCore/HttpDownloadTask.cs:232
++#: ../src/Plugins/Banshee.Plugins.Podcast/DownloadCore/HttpDownloadTask.cs:240
++msgid "HTTP error"
++msgstr "Errore HTTP"
+
+-#: ../src/Last.FM/Last.FM.Gui/AccountLoginForm.cs:50
+-msgid "Account Name:"
+-msgstr "Nome account:"
++#: ../src/Plugins/Banshee.Plugins.Podcast/FeedParsers/RssPodcastFeedParser.cs:58
++msgid "Feed has no title"
++msgstr "Il notiziario non ha titolo"
+
+-#: ../src/PlayerInterface.cs:385
+-msgid "Loading..."
+-msgstr "Caricamento..."
++#: ../src/Plugins/Banshee.Plugins.Podcast/PodcastCore.cs:432
++msgid "Uri Scheme Not Supported"
++msgstr "Schema uri non supportato"
+
+-#: ../src/PlayerInterface.cs:441
+-msgid "All"
+-msgstr "Tutto"
++#: ../src/Plugins/Banshee.Plugins.Podcast/PodcastCore.cs:433
++msgid "Podcast feed URI scheme is not supported."
++msgstr "Schema URI del notiziario podcast non supportato."
+
+-#: ../src/PlayerInterface.cs:468
+-msgid "Write selection to CD"
+-msgstr "Scrive la selezione su CD"
++#: ../src/Plugins/Banshee.Plugins.Podcast/PodcastCore.cs:445
++msgid "Invalid URL"
++msgstr "URL invalido"
+
+-#: ../src/PlayerInterface.cs:469
+-msgid "Import CD into library"
+-msgstr "Importa il CD nella libreria"
++#: ../src/Plugins/Banshee.Plugins.Podcast/PodcastCore.cs:446
++msgid "Podcast feed URL is invalid."
++msgstr "L'URL del notiziario podcast è invalido."
+
+-#: ../src/PlayerInterface.cs:470
+-msgid "Play previous song"
+-msgstr "Riproduce la canzone precedente"
++#: ../src/Plugins/Banshee.Plugins.Podcast/PodcastCore.cs:514
++msgid "Unable to load Podcast DB"
++msgstr "Impossibile caricare il podcast DB"
+
+-#: ../src/PlayerInterface.cs:471
+-msgid "Play/pause current song"
+-msgstr "Riproduce/mette in pausa la canzone corrente"
++#: ../src/Plugins/Banshee.Plugins.Podcast/PodcastCore.cs:666
++msgid "Download Failed"
++msgstr "Scaricamento fallito"
+
+-#: ../src/PlayerInterface.cs:472
+-msgid "Play next song"
+-msgstr "Riproduce la canzone successiva"
++#: ../src/Plugins/Banshee.Plugins.Podcast/PodcastCore.cs:746
++msgid "Unable to add file to library"
++msgstr "Impossibile aggiungere il file alla libreria"
+
+-#: ../src/PlayerInterface.cs:473
+-msgid "Device disk usage"
+-msgstr "Spazio utilizzato sul dispositivo"
++#: ../src/Plugins/Banshee.Plugins.Podcast/PodcastFeedFetcher.cs:226
++#, csharp-format
++msgid "Updating \"{0}\""
++msgstr "Aggiornamento \"{0}\""
+
+-#: ../src/PlayerInterface.cs:474
+-msgid "Synchronize music library to device"
+-msgstr "Sincronizza libreria musicale sul dispositivo"
++#: ../src/Plugins/Banshee.Plugins.Podcast/PodcastFeedFetcher.cs:263
++msgid "Podcast Feed Update"
++msgstr "Aggiorna notiziario podcast"
+
+-#: ../src/PlayerInterface.cs:475
+-msgid "Adjust volume"
+-msgstr "Regola il volume"
++#: ../src/Plugins/Banshee.Plugins.Podcast/PodcastFeedFetcher.cs:267
++msgid "Updating"
++msgstr "Aggiornamento"
+
+-#: ../src/PlayerInterface.cs:476
+-msgid "Change repeat playback mode"
+-msgstr "Cambia la modalità di ripetizione"
++#: ../src/Plugins/Banshee.Plugins.Podcast/PodcastFeedFetcher.cs:268
++msgid "Preparing to update feeds"
++msgstr "Preparazione aggiornamento dei notiziari"
+
+-#: ../src/PlayerInterface.cs:477
+-msgid "Toggle shuffle playback mode"
+-msgstr "Attiva o disattiva la modalità di riproduzione casuale"
++#: ../src/Plugins/Banshee.Plugins.Podcast/PodcastFeedFetcher.cs:318
++#, csharp-format
++msgid "Updating podcast feed {0} of {1}"
++msgstr "Aggiornamento notiziario podcast {0} di {1}"
+
+-#: ../src/PlayerInterface.cs:478
+-msgid "Edit and view metadata of selected songs"
+-msgstr "Visualizza e modifica i metadati delle canzoni selezionate"
++#: ../src/Plugins/Banshee.Plugins.Podcast/PodcastFeedFetcher.cs:339
++msgid "Canceling updates"
++msgstr "Cancellazione aggiornamti"
+
+-#: ../src/PlayerInterface.cs:795
+-msgid "Cannot Play Song"
+-msgstr "Impossibile riprodurre la canzone"
++#: ../src/Plugins/Banshee.Plugins.Podcast/PodcastFeedFetcher.cs:340
++msgid "Waiting for update to terminate"
++msgstr "Attendere che l'aggiornamento termini"
+
+-#: ../src/PlayerInterface.cs:796
++#: ../src/Plugins/Banshee.Plugins.Podcast/PodcastFeedInfo.cs:709
++msgid "Title Property Changed"
++msgstr "Titolo proprietà cambiato"
++
++#. Should users be notified of this?
++#: ../src/Plugins/Banshee.Plugins.Podcast/PodcastLibrary.cs:762
++msgid "Already Subscribed"
++msgstr "Già sottoscritto"
++
++#: ../src/Plugins/Banshee.Plugins.Podcast/PodcastPlugin.cs:56
++msgid "Podcasting"
++msgstr "Podcasting"
++
++#: ../src/Plugins/Banshee.Plugins.Podcast/PodcastPlugin.cs:62
+ #, csharp-format
+ msgid ""
+-"{0} cannot be played by Banshee. The most common reasons for this are:\n"
++"Podcasting is a form of audio blogging where users subscribe to a feed of "
++"shows and its episodes are downloaded and managed for offline listening.\n"
+ "\n"
+-" <big>â¢</big> Song is protected (DRM)\n"
+-" <big>â¢</big> Song is on a DAP that does not support playback\n"
++"Its name comes from the targeting of audio posts to Apple's iPod® audio "
++"player, although podcasts can be listened to directly in {0}."
+ msgstr ""
+-"Banshee non ha potuto riprodurre {0}. Ã possibile che:\n"
++"Il podcasting è un forma di giornale audio dove gli utenti sottoscrivono un "
++"notiziario di episodi che sono scaricati e gestiti per un ascolto fuori "
++"linea. \n"
+ "\n"
+-" <big>â¢</big> La canzone è protetta(DRM)\n"
+-" <big>â¢</big> La canzone è su un dispositivo che non supporta la riproduzione\n"
++"Il nome proviene dagli annunci audio del riproduttore audio Apple iPod® "
++"sebbene i podcast possono essere ascoltati direttamente dentro {0}"
+
+-#: ../src/PlayerInterface.cs:816
+-msgid "Pause"
+-msgstr "Pausa"
++#: ../src/Plugins/Banshee.Plugins.Podcast/PodcastPlugin.cs:113
++#: ../src/Plugins/Banshee.Plugins.Podcast/UI/PodcastPlaylistView.cs:101
++msgid "Podcast"
++msgstr "Podcast"
+
+-#: ../src/PlayerInterface.cs:859
+-msgid "Playback Error"
+-msgstr "Errore di riproduzione"
++#: ../src/Plugins/Banshee.Plugins.Podcast/PodcastPlugin.cs:114
++msgid "Manage the Podcast plugin"
++msgstr "Gestire l'estensione podcast"
+
+-#: ../src/PlayerInterface.cs:1054
+-msgid "Import"
+-msgstr "Importa"
++#: ../src/Plugins/Banshee.Plugins.Podcast/PodcastPlugin.cs:117
++msgid "Update Podcasts"
++msgstr "Aggiorna i podcast"
+
+-#: ../src/PlayerInterface.cs:1072
+-#, csharp-format
+-msgid "Rename {0}"
+-msgstr "Rinomina {0}"
++#: ../src/Plugins/Banshee.Plugins.Podcast/PodcastPlugin.cs:118
++msgid "Update Subscribed Podcasts"
++msgstr "Aggiorna sottoscrizione dei podcast"
+
+-#: ../src/PlayerInterface.cs:1196
+-#, csharp-format
+-msgid "{0} day"
+-msgid_plural "{0} days"
+-msgstr[0] "{0} giorno"
+-msgstr[1] "{0} giorni"
++#: ../src/Plugins/Banshee.Plugins.Podcast/PodcastPlugin.cs:122
++#: ../src/Plugins/Banshee.Plugins.Podcast/UI/PodcastSource.cs:619
++#: ../src/Plugins/Banshee.Plugins.Podcast/UI/PodcastSource.cs:675
++msgid "Subscribe to Podcast"
++msgstr "Sottoscrivi podcast"
+
+-#: ../src/PlayerInterface.cs:1213
+-#, csharp-format
+-msgid "{0} Item"
+-msgid_plural "{0} Items"
+-msgstr[0] "{0} oggetto"
+-msgstr[1] "{0} oggetti"
++#: ../src/Plugins/Banshee.Plugins.Podcast/PodcastPlugin.cs:123
++msgid "Subscribe to a new Podcast"
++msgstr "Sottoscrivi un nuovo podcast"
+
+-#: ../src/PlayerInterface.cs:1215
+-#, csharp-format
+-msgid "{0} Total Play Time"
+-msgstr "{0} di tempo totale"
++#: ../src/Plugins/Banshee.Plugins.Podcast/PodcastPlugin.cs:127
++msgid "Find New Podcasts"
++msgstr "Trova un nuovo podcast"
+
+-#: ../src/PlayerInterface.cs:1591
+-msgid "Clear"
+-msgstr "Pulisci"
++#: ../src/Plugins/Banshee.Plugins.Podcast/PodcastPlugin.cs:128
++msgid "Find New Podcasts at PodcastAlley.com"
++msgstr "Cerca nuovi podcast su PodcastAlley.com"
+
+-#: ../src/PlayerInterface.cs:1854
+-#, csharp-format
+-msgid "Are you sure you want to permanently delete this song?"
+-msgid_plural ""
+-"Are you sure you want to permanently delete the selected {0} songs?"
+-msgstr[0] "Eliminare veramente questa canzone?"
+-msgstr[1] "Eliminare veramente le {0} canzoni selezionate?"
++#: ../src/Plugins/Banshee.Plugins.Podcast/UI/PodcastErrorsSource.cs:51
++msgid "Errors"
++msgstr "Errori"
+
+-#: ../src/PlayerInterface.cs:1858
+-msgid "If you delete the selection, it will be permanently lost."
+-msgstr "Se si elimina la selezione, questa è persa definitivamente."
++#: ../src/Plugins/Banshee.Plugins.Podcast/UI/PodcastFeedPropertiesDialog.cs:75
++#: ../src/Plugins/Banshee.Plugins.Podcast/UI/PodcastPropertiesDialog.cs:87
++#: ../src/Plugins/Banshee.Plugins.Radio/StationEditor.cs:127
++msgid "Description:"
++msgstr "Descrizione:"
+
+-#: ../src/PlayerInterface.cs:1861
+-msgid "Remove selection from library"
+-msgstr "Rimuovi selezione dalla libreria"
++#: ../src/Plugins/Banshee.Plugins.Podcast/UI/PodcastFeedPropertiesDialog.cs:80
++msgid "Last Updated:"
++msgstr "Ultimo aggiornamento:"
+
+-#: ../src/PlayerInterface.cs:1863
+-#, csharp-format
+-msgid "Are you sure you want to remove the selected song from your library?"
+-msgid_plural ""
+-"Are you sure you want to remove the selected {0} songs from your library?"
+-msgstr[0] "Rimuovere veramente la canzone selezionata dalla libreria?"
+-msgstr[1] "Rimuovere veramente le {0} canzoni selezionate dalla libreria?"
++#: ../src/Plugins/Banshee.Plugins.Podcast/UI/PodcastFeedPropertiesDialog.cs:85
++#: ../src/Plugins/Banshee.Plugins.Podcast/UI/PodcastPropertiesDialog.cs:83
++#: ../src/Plugins/Banshee.Plugins.Podcast/UI/PodcastSubscribeDialog.cs:113
++msgid "URL:"
++msgstr "URL:"
+
+-#: ../src/PlayerInterface.cs:1903
+-msgid "Delete songs from drive"
+-msgstr "Elimina canzioni dall'unità "
++#: ../src/Plugins/Banshee.Plugins.Podcast/UI/PodcastFeedPropertiesDialog.cs:91
++msgid "When feed is updated:"
++msgstr "Quando il notiziario è aggiornato:"
+
+-#: ../src/PlayerInterface.cs:1904
+-#, csharp-format
+-msgid "You do not have the required permissions to delete '{0}'"
+-msgstr "Permessi non sufficienti per eliminare «{0}»"
++#: ../src/Plugins/Banshee.Plugins.Podcast/UI/PodcastFeedPropertiesDialog.cs:108
++#: ../src/Plugins/Banshee.Plugins.Podcast/UI/PodcastPropertiesDialog.cs:104
++msgid "No description available"
++msgstr "Nessuna descrizione disponibile"
+
+-#: ../src/PlayerInterface.cs:2018
+-msgid "New CD"
+-msgstr "Nuovo CD"
++#: ../src/Plugins/Banshee.Plugins.Podcast/UI/PodcastFeedView.cs:78
++#: ../src/Plugins/Banshee.Plugins.Podcast/UI/PodcastSource.cs:106
++msgid "Podcasts"
++msgstr "Podcast"
+
+-#. Translators: {0} is the name of the DAP device (i.e. 'iPod')
+-#: ../src/PlayerInterface.cs:2039
++#: ../src/Plugins/Banshee.Plugins.Podcast/UI/PodcastFeedView.cs:144
++msgid "All"
++msgstr "Tutto"
++
++#: ../src/Plugins/Banshee.Plugins.Podcast/UI/PodcastFeedView.cs:179
+ #, csharp-format
+-msgid "Synchronize {0}"
+-msgstr "Sincronizza {0}"
++msgid "{0} Podcast"
++msgid_plural "{0} Podcasts"
++msgstr[0] "{0} podcast"
++msgstr[1] "{0} podcast"
+
+-#: ../src/PlayerInterface.cs:2040
+-#, csharp-format
++#: ../src/Plugins/Banshee.Plugins.Podcast/UI/PodcastFeedView.cs:196
++#: ../src/Plugins/Banshee.Plugins.Podcast/UI/PodcastPlaylistView.cs:95
++msgid "Episode"
++msgid_plural "Episodes"
++msgstr[0] "Episodio"
++msgstr[1] "Episodio"
++
++#: ../src/Plugins/Banshee.Plugins.Podcast/UI/PodcastFeedView.cs:201
++msgid "New"
++msgstr "Nuovo"
++
++#: ../src/Plugins/Banshee.Plugins.Podcast/UI/PodcastPlaylistView.cs:107
++msgid "Date"
++msgstr "Data"
++
++#: ../src/Plugins/Banshee.Plugins.Podcast/UI/PodcastPropertiesDialog.cs:75
++msgid "Podcast:"
++msgstr "Podcast:"
++
++#: ../src/Plugins/Banshee.Plugins.Podcast/UI/PodcastPropertiesDialog.cs:79
++msgid "Date:"
++msgstr "Data:"
++
++#: ../src/Plugins/Banshee.Plugins.Podcast/UI/PodcastSource.cs:624
++msgid "Update All Podcasts"
++msgstr "Aggiorna tutti i podcast"
++
++#: ../src/Plugins/Banshee.Plugins.Podcast/UI/PodcastSource.cs:629
++msgid "Visit Podcast Alley"
++msgstr "Visita Podcast Alley"
++
++#: ../src/Plugins/Banshee.Plugins.Podcast/UI/PodcastSource.cs:664
++msgid "Subscribed"
++msgstr "Sottoscrizione"
++
++#: ../src/Plugins/Banshee.Plugins.Podcast/UI/PodcastSource.cs:667
++msgid "Update Podcast"
++msgstr "Aggiorna podcast"
++
++#: ../src/Plugins/Banshee.Plugins.Podcast/UI/PodcastSource.cs:671
++msgid "Delete Podcast"
++msgstr "Elimina podcast"
++
++#: ../src/Plugins/Banshee.Plugins.Podcast/UI/PodcastSource.cs:679
++msgid "Homepage"
++msgstr "Pagina di rete"
++
++#: ../src/Plugins/Banshee.Plugins.Podcast/UI/PodcastSource.cs:683
++#: ../src/Plugins/Banshee.Plugins.Podcast/UI/PodcastSource.cs:766
++msgid "Properties"
++msgstr "Proprietà "
++
++#: ../src/Plugins/Banshee.Plugins.Podcast/UI/PodcastSource.cs:742
++msgid "Cancel"
++msgstr "Cancella"
++
++#: ../src/Plugins/Banshee.Plugins.Podcast/UI/PodcastSource.cs:752
++msgid "Remove Episodes(s)"
++msgstr "Rimuovi episodi(o)"
++
++#: ../src/Plugins/Banshee.Plugins.Podcast/UI/PodcastSource.cs:756
++msgid "Select All"
++msgstr "Seleziona tutto"
++
++#: ../src/Plugins/Banshee.Plugins.Podcast/UI/PodcastSource.cs:759
++msgid "Select None"
++msgstr "Deseleziona tutto"
++
++#: ../src/Plugins/Banshee.Plugins.Podcast/UI/PodcastSource.cs:762
++msgid "Link"
++msgstr "Indirizzo"
++
++#: ../src/Plugins/Banshee.Plugins.Podcast/UI/PodcastSubscribeDialog.cs:46
++#: ../src/Plugins/Banshee.Plugins.Podcast/UI/PodcastSubscribeDialog.cs:132
++msgid "Subscribe"
++msgstr "Sottoscrivi"
++
++#: ../src/Plugins/Banshee.Plugins.Podcast/UI/PodcastSubscribeDialog.cs:78
++msgid "Subscribe to New Podcast"
++msgstr "Sottoscrivi nuovo podcast"
++
++#: ../src/Plugins/Banshee.Plugins.Podcast/UI/PodcastSubscribeDialog.cs:83
++msgid "Please enter the URL of the podcast to which you are subscribing."
++msgstr "Inserire l'URL del podcast da sottoscrivere."
++
++#: ../src/Plugins/Banshee.Plugins.Podcast/UI/PodcastSubscribeDialog.cs:95
++msgid "When new episodes are available: "
++msgstr "Quando nuovi episodi sono disponibili:"
++
++#: ../src/Plugins/Banshee.Plugins.Podcast/UI/SyncPreferenceComboBox.cs:40
++msgid "Download all episodes"
++msgstr "Scarica tutti gli episodi"
++
++#: ../src/Plugins/Banshee.Plugins.Podcast/UI/SyncPreferenceComboBox.cs:41
++msgid "Download the most recent episode"
++msgstr "Scarica episodio più recente"
++
++#: ../src/Plugins/Banshee.Plugins.Podcast/UI/SyncPreferenceComboBox.cs:42
++msgid "Let me decide which episodes to download"
++msgstr "Lascia decidere quale episodio scaricare"
++
++#: ../src/Plugins/Banshee.Plugins.Radio/banshee-plugin-radio.schemas.in.h:1
+ msgid ""
+-"You have made changes to your {0}. Please choose a method for updating the "
+-"contents of your {0}.\n"
+-"\n"
+-"<big>â¢</big> <i>Synchronize Library</i>: synchronize Banshee library to {0}\n"
+-"<big>â¢</big> <i>Save Manual Changes</i>: save only the manual changes you "
+-"made"
++"Always show stations that require the Helix/RealPlayer engine, even if the "
++"engine is not loaded."
+ msgstr ""
+-"Sono stati apportati dei cabiamenti al proprio {0}. Scegliere un metodo per aggiornare il contenuto del proprio {0}.\n"
+-"\n"
+-"<big>â¢</big> <i>Sincronizza libreria</i>: sincronizza la libreria di Banshee su {0}\n"
+-"<big>â¢</big> <i>Salva modifiche manuali</i>: salva solo i cambiamenti apportati manualmente"
++"Mostra sempre le stazioni che richiedono il motore Helix/RealPlayer, anche "
++"se il motore non è caricato."
+
+-#: ../src/PlayerInterface.cs:2046
++#: ../src/Plugins/Banshee.Plugins.Radio/banshee-plugin-radio.schemas.in.h:2
++msgid "Last time XSPF stations were updated from radio.banshee-project.org"
++msgstr ""
++"Ultima volta che le stazioni XSPF sono state aggiornate da radio.banshee-"
++"project.org"
++
++#: ../src/Plugins/Banshee.Plugins.Radio/banshee-plugin-radio.schemas.in.h:3
++msgid "Last time the master station list was checked for updates"
++msgstr ""
++"Ultima volta che la lista principale delle stazioni è stata controllata per "
++"aggiornamenti"
++
++#: ../src/Plugins/Banshee.Plugins.Radio/banshee-plugin-radio.schemas.in.h:5
++msgid "Radio plugin enabled"
++msgstr "Estensione radio abilitata"
++
++#: ../src/Plugins/Banshee.Plugins.Radio/banshee-plugin-radio.schemas.in.h:6
++msgid "Show remote stations"
++msgstr "Mostra stazioni remote"
++
++#: ../src/Plugins/Banshee.Plugins.Radio/banshee-plugin-radio.schemas.in.h:7
++msgid "Show stations requiring Helix/RealPlayer"
++msgstr "Mostra le stazioni che richiedono Helix/RealPlayer"
++
++#: ../src/Plugins/Banshee.Plugins.Radio/banshee-plugin-radio.schemas.in.h:8
++msgid "Time of the last radio update"
++msgstr "Data ultimo aggiornamento della radio"
++
++#: ../src/Plugins/Banshee.Plugins.Radio/banshee-plugin-radio.schemas.in.h:9
++msgid "Time of the last radio update check"
++msgstr "Data ultimo controllo aggiornamento della radio"
++
++#: ../src/Plugins/Banshee.Plugins.Radio/banshee-plugin-radio.schemas.in.h:10
++msgid "URI for remote stations update"
++msgstr "URI per aggiornare stazioni remote"
++
++#: ../src/Plugins/Banshee.Plugins.Radio/banshee-plugin-radio.schemas.in.h:11
++msgid "URI to update remote stations from"
++msgstr "URI dove aggiornare le stazioni remote"
++
++#: ../src/Plugins/Banshee.Plugins.Radio/banshee-plugin-radio.schemas.in.h:12
++msgid "Update remote stations from radio.banshee-project.org"
++msgstr "Aggiorna stazioni remote da radio.banshee-project.org"
++
++#: ../src/Plugins/Banshee.Plugins.Radio/CellRendererStation.cs:117
++msgid "Loading"
++msgstr "Caricamento"
++
++#: ../src/Plugins/Banshee.Plugins.Radio/RadioPlugin.cs:52
++#: ../src/Plugins/Banshee.Plugins.Radio/RadioSource.cs:63
++msgid "Radio"
++msgstr "Radio"
++
++#: ../src/Plugins/Banshee.Plugins.Radio/RadioPlugin.cs:57
++msgid "Provides Internet radio/streaming audio station support"
++msgstr "Fornisce supporto a stazioni radio su internet e flussi audio."
++
++#: ../src/Plugins/Banshee.Plugins.Radio/RadioPlugin.cs:116
++msgid "Show Remote Stations"
++msgstr "Mostra stazioni remote"
++
++#: ../src/Plugins/Banshee.Plugins.Radio/RadioPlugin.cs:117
++msgid "Update and show radio station content from radio.banshee-project.org"
++msgstr ""
++"Aggiorna e mostra i contenuti delle stazioni radio di radio.banshee-project."
++"org"
++
++#: ../src/Plugins/Banshee.Plugins.Radio/RadioPlugin.cs:123
++msgid "Refresh Stations"
++msgstr "Aggiorna stazioni"
++
++#: ../src/Plugins/Banshee.Plugins.Radio/RadioPlugin.cs:124
++msgid "Refresh stations from the Banshee Radio Web Service"
++msgstr "Riaggiorna stazioni dal servizio radio di rete di Banshee"
++
++#: ../src/Plugins/Banshee.Plugins.Radio/RadioPlugin.cs:129
++msgid "Copy URI"
++msgstr "Copia URI"
++
++#: ../src/Plugins/Banshee.Plugins.Radio/RadioPlugin.cs:130
++msgid "Copy stream URI to clipboard"
++msgstr "Copia l'URI del flusso nella clipboard"
++
++#: ../src/Plugins/Banshee.Plugins.Radio/RadioPlugin.cs:133
++msgid "Edit"
++msgstr "Modifica"
++
++#: ../src/Plugins/Banshee.Plugins.Radio/RadioPlugin.cs:134
++msgid "Edit Radio Station"
++msgstr "Modifica stazione radio"
++
++#: ../src/Plugins/Banshee.Plugins.Radio/RadioPlugin.cs:137
++msgid "Add Station"
++msgstr "Aggiungi stazione"
++
++#: ../src/Plugins/Banshee.Plugins.Radio/RadioPlugin.cs:138
++msgid "Add new Radio Station"
++msgstr "Aggiungi nuova stazione radio"
++
++#: ../src/Plugins/Banshee.Plugins.Radio/RadioPlugin.cs:141
++msgid "Remove"
++msgstr "Rimuovi"
++
++#: ../src/Plugins/Banshee.Plugins.Radio/RadioPlugin.cs:142
++msgid "Remove selected Radio Station"
++msgstr "Rimuovi la stazione radio selezionata"
++
++#: ../src/Plugins/Banshee.Plugins.Radio/RadioSource.cs:81
++msgid "Refreshing radio stations from the Banshee Radio Web Service"
++msgstr ""
++"Aggiorna di nuovo le stazioni radio dal servizio radio di rete di Banshee"
++
++#: ../src/Plugins/Banshee.Plugins.Radio/RadioSource.cs:91
++msgid "Failed to load radio stations: "
++msgstr "Caricamento della stazione radio fallito: "
++
++#: ../src/Plugins/Banshee.Plugins.Radio/RadioSource.cs:337
++msgid "Invalid URI format."
++msgstr "Formato URI non valido."
++
++#: ../src/Plugins/Banshee.Plugins.Radio/StationEditor.cs:57
++msgid "Add new radio station"
++msgstr "Aggiungi nuova stazione radio"
++
++#: ../src/Plugins/Banshee.Plugins.Radio/StationEditor.cs:58
++msgid "Edit radio station"
++msgstr "Modifica stazione radio"
++
++#: ../src/Plugins/Banshee.Plugins.Radio/StationEditor.cs:86
+ msgid ""
+-"<b>Warning:</b> Actions will alter or erase existing iPod contents and may "
+-"cause incompatability with iTunes!"
+-msgstr "<b>Attenzione:</b> le azioni modificheranno o cancelleranno l'attuale contenuto dell'iPod e potrebbero causare una incompatiblità con iTunes!"
++"Enter the Group, Title and URL of the radio station you wish to add. A "
++"description is optional."
++msgstr ""
++"Inserisci il gruppo, il titolo e l'URL della radio che vuoi aggiungere. La "
++"descrizione è opzionale."
+
+-#: ../src/PlayerInterface.cs:2048
+-msgid "Synchronize Library"
+-msgstr "Sincronizza la librerira"
++#: ../src/Plugins/Banshee.Plugins.Radio/StationEditor.cs:95
++msgid "Station Group:"
++msgstr "Gruppo stazione:"
+
+-#: ../src/PlayerInterface.cs:2050
+-msgid "Save Manual Changes"
+-msgstr "Salva modifiche manuali"
++#: ../src/Plugins/Banshee.Plugins.Radio/StationEditor.cs:111
++msgid "Station Title:"
++msgstr "Titolo stazione:"
+
+-#: ../src/PlaylistColumns.cs:80
+-msgid "Invalid column width"
++#: ../src/Plugins/Banshee.Plugins.Radio/StationEditor.cs:119
++msgid "Stream URL:"
++msgstr "URL flusso:"
++
++#: ../src/Plugins/Banshee.Plugins.Radio/StationView.cs:73
++msgid "Station"
++msgstr "Stazione"
++
++#: ../src/Plugins/Banshee.Plugins.Radio/StationView.cs:77
++msgid "Comment"
++msgstr "Commento"
++
++#: ../src/Plugins/Banshee.Plugins.Recommendation/banshee-plugin-recommendation.schemas.in.h:1
++msgid "Cache version"
++msgstr "Versione cache"
++
++#: ../src/Plugins/Banshee.Plugins.Recommendation/banshee-plugin-recommendation.schemas.in.h:3
++msgid "Recommendation plugin enabled"
++msgstr "Estensione raccomandati abilitata"
++
++#: ../src/Plugins/Banshee.Plugins.Recommendation/banshee-plugin-recommendation.schemas.in.h:4
++msgid ""
++"Version of the cache layout on disk, located at ~/.config/banshee/plugins/"
++"recommendation"
+ msgstr ""
++"La versione dello schema della cache sul disco, è situato in ~/.config/"
++"banshee/plugins/recommendation"
+
+-#: ../src/PlaylistColumns.cs:139
+-msgid "Choose Columns"
+-msgstr "Selezione colonne"
++#: ../src/Plugins/Banshee.Plugins.Recommendation/RecommendationPane.cs:142
++msgid "Recommended Artists"
++msgstr "Artisti raccomandati"
+
+-#: ../src/PlaylistColumns.cs:155
+-msgid "Visible Playlist Columns"
+-msgstr "Colonne visibili della scaletta"
++#: ../src/Plugins/Banshee.Plugins.Recommendation/RecommendationPane.cs:169
++msgid "No similar artists found"
++msgstr "Artisti simili non trovati"
+
+-#: ../src/PlaylistView.cs:99
+-msgid "Track"
+-msgstr "Traccia"
++#: ../src/Plugins/Banshee.Plugins.Recommendation/RecommendationPane.cs:246
++#, csharp-format
++msgid "Top Tracks by {0}"
++msgstr "Tracce preferite di {0}"
+
+-#: ../src/PlaylistView.cs:117
+-msgid "Time"
+-msgstr "Durata"
++#: ../src/Plugins/Banshee.Plugins.Recommendation/RecommendationPane.cs:248
++#, csharp-format
++msgid "Top Albums by {0}"
++msgstr "Album preferiti di {0}"
+
+-#: ../src/PlaylistView.cs:130
+-msgid "Plays"
+-msgstr "Passaggi"
++#: ../src/Plugins/Banshee.Plugins.Recommendation/RecommendationPane.cs:367
++#, csharp-format
++msgid "{0}% Similarity"
++msgstr "Somiglianza {0}%"
+
+-#: ../src/PlaylistView.cs:528
+-msgid "N/A"
+-msgstr "N/D"
++#: ../src/Plugins/Banshee.Plugins.Recommendation/RecommendationPane.cs:369
++msgid "Unknown Similarity"
++msgstr "Somiglianza sconosciuta"
++
++#: ../src/Plugins/Banshee.Plugins.Recommendation/RecommendationPlugin.cs:56
++msgid "Music Recommendations"
++msgstr "Musica raccomandata"
++
++#: ../src/Plugins/Banshee.Plugins.Recommendation/RecommendationPlugin.cs:61
++msgid ""
++"Automatically recommends music that you might like, based on the currently "
++"playing song. It finds artists and popular songs that others with similar "
++"musical tastes enjoy."
++msgstr ""
++"Suggerisce automaticamente la musica che si potrebbe gradire, basandosi "
++"sull'attuale traccia in riproduzione. Ricerca popolari artisti e canzoni "
++"simili per gusto musicale."
++
++#: ../src/Plugins/Banshee.Plugins.Recommendation/RecommendationPlugin.cs:134
++#: ../src/Plugins/Banshee.Plugins.Recommendation/RecommendationPlugin.cs:135
++msgid "Show Recommendations"
++msgstr "Mostra raccomandati"
++
++#~ msgid ""
++#~ "Are you sure you want to permanently delete this song?Are you sure you "
++#~ "want to permanently delete the selected {0} songs?"
++#~ msgstr ""
++#~ "Eliminare permanentemente questa traccia?Eliminare permanentemente le {0} "
++#~ "tracce selezionate?"
+Index: po/da.po
+===================================================================
+--- po/da.po (Revision 2958)
++++ po/da.po (Revision 3417)
+@@ -1,7 +1,7 @@
+ # Danish translation of Banshee.
+-# Copyright (C) 2005-2007
++# Copyright (C) 2005-2008
+ # This file is distributed under the same license as the Banshee package.
+-# Lasse Bang Mikkelsen <lbm at lbm.dk>, 2005, 06, 07.
++# Lasse Bang Mikkelsen <lbm at lbm.dk>, 2005, 06, 07, 08.
+ #
+ # Konventioner:
+ #
+@@ -18,8 +18,8 @@
+ msgstr ""
+ "Project-Id-Version: banshee\n"
+ "Report-Msgid-Bugs-To: \n"
+-"POT-Creation-Date: 2007-07-15 20:55+0200\n"
+-"PO-Revision-Date: 2007-07-15 20:48+0100\n"
++"POT-Creation-Date: 2008-01-20 22:17+0100\n"
++"PO-Revision-Date: 2008-01-20 22:17+0100\n"
+ "Last-Translator: Lasse Bang Mikkelsen <lbm at lbm.dk>\n"
+ "Language-Team: Danish <dansk at dansk-gruppen.dk>\n"
+ "MIME-Version: 1.0\n"
+@@ -27,26 +27,6 @@
+ "Content-Transfer-Encoding: 8bit\n"
+ "Plural-Forms: nplurals=2; plural=(n > 1);\n"
+
+-#: ../data/audio-profiles/aac.xml.in.h:1
+-msgid "Advanced Audio Coding (AAC)"
+-msgstr "Advanced Audio Coding (AAC)"
+-
+-#: ../data/audio-profiles/aac.xml.in.h:2
+-#: ../data/audio-profiles/mp3-lame.xml.in.h:4
+-#: ../data/audio-profiles/mp3-xing.xml.in.h:2
+-#: ../data/audio-profiles/wavpack.xml.in.h:3
+-#: ../data/audio-profiles/wma.xml.in.h:4
+-msgid "Bitrate"
+-msgstr "Bitrate"
+-
+-#: ../data/audio-profiles/aac.xml.in.h:3
+-msgid ""
+-"Proprietary and standardized format that is superior to MP3, but not as "
+-"popular."
+-msgstr ""
+-"Proprietær og standardiseret format som er MP3 overlegen, men ikke nær så "
+-"populær."
+-
+ #: ../data/audio-profiles/base.xml.in.h:1
+ msgid "Channels"
+ msgstr "Kanaler"
+@@ -83,6 +63,13 @@
+ msgid "Best"
+ msgstr "Bedste"
+
++#: ../data/audio-profiles/mp3-lame.xml.in.h:4
++#: ../data/audio-profiles/mp3-xing.xml.in.h:2
++#: ../data/audio-profiles/wavpack.xml.in.h:3
++#: ../data/audio-profiles/wma.xml.in.h:4
++msgid "Bitrate"
++msgstr "Bitrate"
++
+ #: ../data/audio-profiles/mp3-lame.xml.in.h:5
+ msgid "Constant Bitrate"
+ msgstr "Konstant bitrate"
+@@ -150,18 +137,6 @@
+ msgid "Wavpack"
+ msgstr "Wavpack"
+
+-#: ../data/audio-profiles/wav.xml.in.h:1
+-msgid ""
+-"WAV+PCM is a lossless format that holds uncompressed, raw pulse-code "
+-"modulated (PCM) audio."
+-msgstr ""
+-"WAV+PCM er et ikke-forringende format som indeholder ukomprimeret, rå "
+-"pulskodemoduleret (PCM) lyd."
+-
+-#: ../data/audio-profiles/wav.xml.in.h:2
+-msgid "Waveform PCM"
+-msgstr "Bølgeform PCM"
+-
+ #: ../data/audio-profiles/wma.xml.in.h:1
+ msgid ""
+ "A proprietary lossy audio format with high quality output at a lower file "
+@@ -473,9 +448,10 @@
+
+ #: ../data/banshee-dialogs.glade.h:66
+ #: ../src/Core/Banshee.Base/Banshee.Cdrom.Gui/RecorderSpeedComboBox.cs:64
+-#: ../src/Core/Banshee.Base/Dap/Dap.cs:658
+-#: ../src/Core/Banshee.Base/Gui/TrackEditor.cs:274
+-#: ../src/Core/Banshee.Base/Gui/TrackEditor.cs:297
++#: ../src/Core/Banshee.Base/Dap/Dap.cs:661
++#: ../src/Core/Banshee.Base/Gui/TrackEditor.cs:302
++#: ../src/Core/Banshee.Base/Gui/TrackEditor.cs:325
++#: ../src/Dap/Banshee.Dap.Ipod/IpodDap.cs:99
+ msgid "Unknown"
+ msgstr "Ukendt"
+
+@@ -524,49 +500,49 @@
+ msgstr "Kunne ikke oprette kanal"
+
+ #: ../libbanshee/gst-cd-rip-0.10.c:228
+-msgid "Could not initialize cdparanoia"
+-msgstr "Kunne ikke initialisere cdparanoia"
++msgid "Could not initialize element from cdda URI"
++msgstr "Kunne ikke initialisere element fra cdda-URI"
+
+-#: ../libbanshee/gst-cd-rip-0.10.c:239
++#: ../libbanshee/gst-cd-rip-0.10.c:242
+ msgid "Could not create mbtrm plugin"
+ msgstr "Kunne ikke oprette \"mbtrm\"-plugin"
+
+-#: ../libbanshee/gst-cd-rip-0.10.c:251
++#: ../libbanshee/gst-cd-rip-0.10.c:254
+ msgid "Could not create encoder pipeline"
+ msgstr "Kunne ikke oprette kodningskanal"
+
+-#: ../libbanshee/gst-cd-rip-0.10.c:257
++#: ../libbanshee/gst-cd-rip-0.10.c:260
+ msgid "Could not create queue plugin"
+ msgstr "Kunne ikke oprette kø-plugin"
+
+-#: ../libbanshee/gst-cd-rip-0.10.c:265
++#: ../libbanshee/gst-cd-rip-0.10.c:268
+ msgid "Could not create GNOME VFS output plugin"
+ msgstr "Kunne ikke oprette Gnome VFS uddata-plugin"
+
+-#: ../libbanshee/gst-cd-rip-0.10.c:281
+-msgid "Could not link cdparanoiasrc to mbtrm"
+-msgstr "Kunne ikke lænke cdparanoiasrc til mbtrm"
++#: ../libbanshee/gst-cd-rip-0.10.c:284
++msgid "Could not link cddasrcsrc to mbtrm"
++msgstr "Kunne ikke lænke cddasrcsrc til mbtrm"
+
+-#: ../libbanshee/gst-cd-rip-0.10.c:286
++#: ../libbanshee/gst-cd-rip-0.10.c:289
+ msgid "Could not link mbtrm to queue"
+ msgstr "Kunne ikke lænke mbtrm til queue"
+
+-#: ../libbanshee/gst-cd-rip-0.10.c:291
++#: ../libbanshee/gst-cd-rip-0.10.c:294
+ msgid "Could not link queue to encoder"
+ msgstr "Kunne ikke lænke queue til encoder"
+
+-#: ../libbanshee/gst-cd-rip-0.10.c:296
++#: ../libbanshee/gst-cd-rip-0.10.c:299
+ msgid "Could not link encoder to gnomevfssink"
+ msgstr "Kunne ikke lænke encoder til gnomevfssink"
+
+-#: ../libbanshee/gst-cd-rip-0.10.c:403
++#: ../libbanshee/gst-cd-rip-0.10.c:409
+ #: ../src/Core/Banshee.Base/BansheeBranding.cs:83
+ #: ../src/Plugins/Banshee.Plugins.MiniMode/minimode.glade.h:3
+ #: ../src/Plugins/Banshee.Plugins.NotificationAreaIcon/NotificationAreaIconPlugin.cs:171
+ msgid "Banshee"
+ msgstr "Banshee"
+
+-#: ../libbanshee/gst-cd-rip-0.10.c:429
++#: ../libbanshee/gst-cd-rip-0.10.c:446
+ msgid "Encoding element does not support tagging!"
+ msgstr "Kodningselementet understøtter ikke mærkning!"
+
+@@ -578,35 +554,35 @@
+ msgid "Could not stat encoded file"
+ msgstr "Kunne ikke udføre stat() på kodet fil"
+
+-#: ../libbanshee/gst-transcode-0.10.c:258
++#: ../libbanshee/gst-transcode-0.10.c:249
+ msgid "Could not create 'gnomevfssrc' plugin"
+ msgstr "Kunne ikke oprette \"gnomevfssrc\"-plugin"
+
+-#: ../libbanshee/gst-transcode-0.10.c:264
++#: ../libbanshee/gst-transcode-0.10.c:255
+ msgid "Could not create 'decodebin' plugin"
+ msgstr "Kunne ikke oprette \"decodebin\"-plugin"
+
+-#: ../libbanshee/gst-transcode-0.10.c:270
++#: ../libbanshee/gst-transcode-0.10.c:261
+ msgid "Could not create 'gnomevfssink' plugin"
+ msgstr "Kunne ikke oprette \"gnomevfssink\"-plugin"
+
+-#: ../libbanshee/gst-transcode-0.10.c:276
++#: ../libbanshee/gst-transcode-0.10.c:267
+ msgid "Could not create 'sinkben' plugin"
+ msgstr "Kunne ikke oprette \"sinkben\"-plugin"
+
+-#: ../libbanshee/gst-transcode-0.10.c:282
++#: ../libbanshee/gst-transcode-0.10.c:273
+ msgid "Could not create 'audioconvert' plugin"
+ msgstr "Kunne ikke oprette \"audioconvert\"-plugin"
+
+-#: ../libbanshee/gst-transcode-0.10.c:288
++#: ../libbanshee/gst-transcode-0.10.c:279
+ msgid "Could not create encoding pipeline"
+ msgstr "Kunne ikke oprette kodningskanal"
+
+-#: ../libbanshee/gst-transcode-0.10.c:294
++#: ../libbanshee/gst-transcode-0.10.c:285
+ msgid "Could not get sink pad from encoder"
+ msgstr "Kunne ikke hente elementfyld fra koder"
+
+-#: ../libbanshee/gst-transcode-0.10.c:377
++#: ../libbanshee/gst-transcode-0.10.c:368
+ msgid "Could not construct pipeline"
+ msgstr "Kunne ikke oprette kanal"
+
+@@ -788,7 +764,7 @@
+ #: ../src/Core/Banshee/Banshee.TrackView.Columns/GenreColumn.cs:42
+ #: ../src/Core/Banshee.Base/Banshee.SmartPlaylist/QueryBuilderModel.cs:48
+ #: ../src/Core/Banshee.Base/Banshee.SmartPlaylist/QueryBuilderModel.cs:789
+-#: ../src/Core/Banshee/PlayerInterface.cs:458
++#: ../src/Core/Banshee/PlayerInterface.cs:475
+ msgid "Genre"
+ msgstr "Genre"
+
+@@ -814,18 +790,18 @@
+ msgstr "Titel"
+
+ #: ../src/Core/Banshee/Banshee.TrackView.Columns/TitleColumn.cs:59
+-#: ../src/Plugins/Banshee.Plugins.Radio/CellRendererStation.cs:125
++#: ../src/Plugins/Banshee.Plugins.Radio/CellRendererStation.cs:126
+ msgid "Missing"
+ msgstr "Mangler"
+
+ #: ../src/Core/Banshee/Banshee.TrackView.Columns/TitleColumn.cs:65
+-#: ../src/Plugins/Banshee.Plugins.Radio/CellRendererStation.cs:128
++#: ../src/Plugins/Banshee.Plugins.Radio/CellRendererStation.cs:129
+ msgid "No Codec"
+ msgstr "Intet format"
+
+ #: ../src/Core/Banshee/Banshee.TrackView.Columns/TitleColumn.cs:68
+-#: ../src/Engines/Banshee.MediaEngine.GStreamer/GstPlayerEngine.cs:219
+-#: ../src/Plugins/Banshee.Plugins.Radio/CellRendererStation.cs:131
++#: ../src/Engines/Banshee.MediaEngine.GStreamer/GstPlayerEngine.cs:229
++#: ../src/Plugins/Banshee.Plugins.Radio/CellRendererStation.cs:132
+ msgid "Unknown Error"
+ msgstr "Ukendt fejl"
+
+@@ -849,7 +825,8 @@
+
+ #: ../src/Core/Banshee/Banshee.TrackView.Columns/YearColumn.cs:42
+ #: ../src/Core/Banshee.Base/Banshee.SmartPlaylist/QueryBuilderModel.cs:816
+-#: ../src/Core/Banshee/PlayerInterface.cs:459
++#: ../src/Core/Banshee.Base/FileNamePattern.cs:121
++#: ../src/Core/Banshee/PlayerInterface.cs:476
+ msgid "Year"
+ msgstr "Ã
r"
+
+@@ -1044,7 +1021,7 @@
+ #. Translators: Source being the generic word for playlist, device, library, etc
+ #: ../src/Core/Banshee.Base/ActionManager.cs:195
+ #: ../src/Core/Banshee.Base/Gui/SourceView.cs:105
+-#: ../src/Core/Banshee.Base/Source.cs:321
++#: ../src/Core/Banshee.Base/Source.cs:323
+ msgid "Source"
+ msgstr "Kilde"
+
+@@ -1361,7 +1338,7 @@
+
+ #: ../src/Core/Banshee.Base/AudioCdRipper.cs:363
+ #: ../src/Core/Banshee.Base/Banshee.PlayerMigration/PlayerImport.cs:55
+-#: ../src/Core/Banshee.Base/ImportManager.cs:297
++#: ../src/Core/Banshee.Base/ImportManager.cs:291
+ #, csharp-format
+ msgid "Importing {0} of {1}"
+ msgstr "Importerer {0} af {1}"
+@@ -1397,7 +1374,7 @@
+ msgstr "{0} minutter"
+
+ #: ../src/Core/Banshee.Base/Banshee.Burner/BurnerConfigurationPane.cs:136
+-#: ../src/Core/Banshee.Base/Sources/DapSource.cs:339
++#: ../src/Core/Banshee.Base/Sources/DapSource.cs:336
+ #: ../src/Core/Banshee.Widgets/StreamPositionLabel.cs:90
+ #, csharp-format
+ msgid "{0} of {1}"
+@@ -1413,21 +1390,21 @@
+ msgid "{0} MB"
+ msgstr "{0} MB"
+
+-#: ../src/Core/Banshee.Base/Banshee.Burner/BurnerCore.cs:122
++#: ../src/Core/Banshee.Base/Banshee.Burner/BurnerCore.cs:118
+ msgid "New Audio C_D"
+ msgstr "Ny lyd-c_d"
+
+-#: ../src/Core/Banshee.Base/Banshee.Burner/BurnerCore.cs:123
++#: ../src/Core/Banshee.Base/Banshee.Burner/BurnerCore.cs:119
+ msgid "Create a new audio CD"
+ msgstr "Opret en ny lyd-cd"
+
+-#: ../src/Core/Banshee.Base/Banshee.Burner/BurnerCore.cs:165
++#: ../src/Core/Banshee.Base/Banshee.Burner/BurnerCore.cs:161
+ #: ../src/Core/Banshee.Base/Banshee.Burner/BurnerSessionPreparer.cs:108
+ #: ../src/Core/Banshee.Base/Banshee.Burner/BurnerSessionPreparer.cs:192
+ msgid "Problem creating CD"
+ msgstr "Problemer ved skrivning af cd"
+
+-#: ../src/Core/Banshee.Base/Banshee.Burner/BurnerCore.cs:166
++#: ../src/Core/Banshee.Base/Banshee.Burner/BurnerCore.cs:162
+ msgid "No CD recording hardware was found."
+ msgstr "Ingen cd-brændingshardware blev fundet."
+
+@@ -1544,6 +1521,7 @@
+ msgstr "Fikserer disk"
+
+ #: ../src/Core/Banshee.Base/Banshee.Burner/BurnerSessionRecorder.cs:168
++#: ../src/Dap/Banshee.Dap.Ipod/IpodDap.cs:319
+ msgid "Waiting for Media"
+ msgstr "Venter på medie"
+
+@@ -1859,7 +1837,7 @@
+ msgstr "Skriv metadata tilbage til lydfiler"
+
+ #: ../src/Core/Banshee.Base/Banshee.Library/Import.cs:74
+-#: ../src/Dap/Banshee.Dap.MassStorage/MassStorageDap.cs:283
++#: ../src/Dap/Banshee.Dap.MassStorage/MassStorageDap.cs:290
+ msgid "Scanning"
+ msgstr "Leder"
+
+@@ -1876,12 +1854,12 @@
+ msgstr "Kunne ikke importere fra Amarok database"
+
+ #: ../src/Core/Banshee.Base/Banshee.PlayerMigration/PlayerImport.cs:41
+-#: ../src/Core/Banshee.Base/ImportManager.cs:285
++#: ../src/Core/Banshee.Base/ImportManager.cs:279
+ msgid "Importing Songs"
+ msgstr "Importerer sange"
+
+ #: ../src/Core/Banshee.Base/Banshee.PlayerMigration/PlayerImport.cs:42
+-#: ../src/Core/Banshee.Base/ImportManager.cs:291
++#: ../src/Core/Banshee.Base/ImportManager.cs:285
+ msgid "The import process is currently running. Would you like to stop it?"
+ msgstr "Importeringsprocessen kører i øjeblikket. Vil du afbryde denne?"
+
+@@ -1904,7 +1882,7 @@
+
+ #: ../src/Core/Banshee.Base/Banshee.PlayerMigration/PlayerImportDialog.cs:81
+ #: ../src/Core/Banshee.Base/SourceManager.cs:265
+-#: ../src/Core/Banshee/PlayerInterface.cs:2021
++#: ../src/Core/Banshee/PlayerInterface.cs:2095
+ msgid "Import"
+ msgstr "Importér"
+
+@@ -1940,59 +1918,50 @@
+ msgid "Invalid Rhythmbox database file"
+ msgstr "Ugyldig Rhythmbox databasefil"
+
+-#: ../src/Core/Banshee.Base/Banshee.Playlists.Formats/M3u.cs:29
++#: ../src/Core/Banshee.Base/Banshee.Playlists.Formats/AsxPlaylistFormat.cs:46
++msgid "Windows Media ASX (*.asx)"
++msgstr "Windows Media ASX (*.asx)"
++
++#: ../src/Core/Banshee.Base/Banshee.Playlists.Formats/M3uPlaylistFormat.cs:43
+ msgid "MPEG Version 3.0 Extended (*.m3u)"
+ msgstr "MPEG Version 3.0 udvidet (*.m3u)"
+
+-#: ../src/Core/Banshee.Base/Banshee.Playlists.Formats/M3u.cs:62
+-#: ../src/Core/Banshee.Base/Banshee.Playlists.Formats/Pls.cs:78
+-msgid "Exception: "
+-msgstr "Undtagelse: "
+-
+-#: ../src/Core/Banshee.Base/Banshee.Playlists.Formats/M3u.cs:90
+-msgid "Not a valid M3U file."
+-msgstr "Ikke en gyldig M3U-fil."
+-
+-#: ../src/Core/Banshee.Base/Banshee.Playlists.Formats/Pls.cs:29
++#: ../src/Core/Banshee.Base/Banshee.Playlists.Formats/PlsPlaylistFormat.cs:50
+ msgid "Shoutcast Playlist version 2 (*.pls)"
+ msgstr "Shoutcast-spilleliste version 2 (*.pls)"
+
+-#: ../src/Core/Banshee.Base/Banshee.Playlists.Formats/Pls.cs:113
+-msgid "Not a valid PLS file."
+-msgstr "Ikke en gyldig PLS-fil."
+-
+-#: ../src/Core/Banshee.Base/Banshee.Playlists/PlaylistFileUtil.cs:183
++#: ../src/Core/Banshee.Base/Banshee.Playlists/PlaylistFileUtil.cs:177
+ msgid "Verifying"
+ msgstr "Kontrollerer"
+
+-#: ../src/Core/Banshee.Base/Banshee.Playlists/PlaylistFileUtil.cs:184
++#: ../src/Core/Banshee.Base/Banshee.Playlists/PlaylistFileUtil.cs:178
+ msgid ""
+ "The playlist import process is currently running. Would you like to stop it?"
+ msgstr ""
+ "Spilleliste importeringsprocessen kører i øjeblikket. Vil du afbryde denne?"
+
+-#: ../src/Core/Banshee.Base/Banshee.Playlists/PlaylistFileUtil.cs:187
++#: ../src/Core/Banshee.Base/Banshee.Playlists/PlaylistFileUtil.cs:181
+ msgid "Verifying playlist tracks exist in library"
+ msgstr "Kontrollerer at spilleliste numre eksisterer i bibliotek"
+
+-#: ../src/Core/Banshee.Base/Banshee.Playlists/PlaylistFileUtil.cs:212
++#: ../src/Core/Banshee.Base/Banshee.Playlists/PlaylistFileUtil.cs:206
+ #, csharp-format
+ msgid "Verifying {0} of {1}"
+ msgstr "Kontrollerer {0} af {1}"
+
+-#: ../src/Core/Banshee.Base/Banshee.Playlists/PlaylistFileUtil.cs:215
++#: ../src/Core/Banshee.Base/Banshee.Playlists/PlaylistFileUtil.cs:209
+ msgid "Verifying "
+ msgstr "Kontrollerer "
+
+-#: ../src/Core/Banshee.Base/Banshee.Playlists/PlaylistFileUtil.cs:289
++#: ../src/Core/Banshee.Base/Banshee.Playlists/PlaylistFileUtil.cs:283
+ msgid "Export Playlist"
+ msgstr "Eksportér spilleliste"
+
+-#: ../src/Core/Banshee.Base/Banshee.Playlists/PlaylistFileUtil.cs:298
++#: ../src/Core/Banshee.Base/Banshee.Playlists/PlaylistFileUtil.cs:292
+ msgid "Export"
+ msgstr "Eksportér"
+
+-#: ../src/Core/Banshee.Base/Banshee.Playlists/PlaylistFileUtil.cs:323
++#: ../src/Core/Banshee.Base/Banshee.Playlists/PlaylistFileUtil.cs:317
+ msgid "Select Format: "
+ msgstr "Vælg format: "
+
+@@ -2094,31 +2063,31 @@
+ msgid "between"
+ msgstr "mellem"
+
+-#: ../src/Core/Banshee.Base/Banshee.SmartPlaylist/QueryBuilder.cs:335
++#: ../src/Core/Banshee.Base/Banshee.SmartPlaylist/QueryBuilder.cs:338
+ msgid "to"
+ msgstr "til"
+
+-#: ../src/Core/Banshee.Base/Banshee.SmartPlaylist/QueryBuilder.cs:709
++#: ../src/Core/Banshee.Base/Banshee.SmartPlaylist/QueryBuilder.cs:712
+ msgid "_Match"
+ msgstr "_Match"
+
+-#: ../src/Core/Banshee.Base/Banshee.SmartPlaylist/QueryBuilder.cs:716
++#: ../src/Core/Banshee.Base/Banshee.SmartPlaylist/QueryBuilder.cs:719
+ msgid "all"
+ msgstr "alle"
+
+-#: ../src/Core/Banshee.Base/Banshee.SmartPlaylist/QueryBuilder.cs:717
++#: ../src/Core/Banshee.Base/Banshee.SmartPlaylist/QueryBuilder.cs:720
+ msgid "any"
+ msgstr "enhver"
+
+-#: ../src/Core/Banshee.Base/Banshee.SmartPlaylist/QueryBuilder.cs:722
++#: ../src/Core/Banshee.Base/Banshee.SmartPlaylist/QueryBuilder.cs:725
+ msgid "of the following:"
+ msgstr "af de følgende:"
+
+-#: ../src/Core/Banshee.Base/Banshee.SmartPlaylist/QueryBuilder.cs:741
++#: ../src/Core/Banshee.Base/Banshee.SmartPlaylist/QueryBuilder.cs:744
+ msgid "_Limit to"
+ msgstr "_Begræns til"
+
+-#: ../src/Core/Banshee.Base/Banshee.SmartPlaylist/QueryBuilder.cs:758
++#: ../src/Core/Banshee.Base/Banshee.SmartPlaylist/QueryBuilder.cs:761
+ msgid "selected by"
+ msgstr "valgt af"
+
+@@ -2279,19 +2248,19 @@
+ "\n"
+ " Undersøg dine indstillinger for \"Foretrukne programmer\"."
+
+-#: ../src/Core/Banshee.Base/BatchTranscoder.cs:135
+ #: ../src/Core/Banshee.Base/BatchTranscoder.cs:136
++#: ../src/Core/Banshee.Base/BatchTranscoder.cs:137
+ msgid "Converting Files"
+ msgstr "Konverterer filer"
+
+-#: ../src/Core/Banshee.Base/BatchTranscoder.cs:138
++#: ../src/Core/Banshee.Base/BatchTranscoder.cs:139
+ msgid ""
+ "Files are currently being converted to another audio format. Would you like "
+ "to stop this?"
+ msgstr ""
+ "Filer konverteres i øjeblikket til et andet lydformat. Vil du afbryde dette?"
+
+-#: ../src/Core/Banshee.Base/BatchTranscoder.cs:141
++#: ../src/Core/Banshee.Base/BatchTranscoder.cs:142
+ msgid "Initializing Transcoder..."
+ msgstr "Initialiserer omkoder..."
+
+@@ -2303,30 +2272,30 @@
+ msgid "Cannot initialize DapCore because HalCore is not initialized"
+ msgstr "Kan ikke initialisere DapCore fordi HalCore ikke er initialiseret"
+
+-#: ../src/Core/Banshee.Base/Dap/Dap.cs:335
+-#: ../src/Core/Banshee.Base/Sources/DapSource.cs:402
++#: ../src/Core/Banshee.Base/Dap/Dap.cs:356
++#: ../src/Core/Banshee.Base/Sources/DapSource.cs:399
+ msgid "Device"
+ msgstr "Enhed"
+
+-#: ../src/Core/Banshee.Base/Dap/Dap.cs:336
++#: ../src/Core/Banshee.Base/Dap/Dap.cs:357
+ #, csharp-format
+ msgid "Synchronizing {0}"
+ msgstr "Synkroniserer {0}"
+
+-#: ../src/Core/Banshee.Base/Dap/Dap.cs:340
++#: ../src/Core/Banshee.Base/Dap/Dap.cs:361
+ msgid "Waiting for transcoder..."
+ msgstr "Venter på omkoder..."
+
+-#: ../src/Core/Banshee.Base/Dap/Dap.cs:427
+-#: ../src/Core/Banshee.Base/Dap/Dap.cs:448
++#: ../src/Core/Banshee.Base/Dap/Dap.cs:447
++#: ../src/Core/Banshee.Base/Dap/Dap.cs:476
+ msgid "Processing..."
+ msgstr "Behandler..."
+
+-#: ../src/Core/Banshee.Base/Dap/Dap.cs:467
++#: ../src/Core/Banshee.Base/Dap/Dap.cs:495
+ msgid "Could not encode some files"
+ msgstr "Nogle filer kunne ikke kodes"
+
+-#: ../src/Core/Banshee.Base/Dap/Dap.cs:469
++#: ../src/Core/Banshee.Base/Dap/Dap.cs:497
+ msgid ""
+ "Some files could not be encoded to the proper format. They will not be saved "
+ "to the device if you continue."
+@@ -2334,13 +2303,13 @@
+ "Nogle filer kunne ikke kodes til et passende format. De vil ikke blive gemt "
+ "til enheden, hvis du fortsætter."
+
+-#: ../src/Core/Banshee.Base/Dap/Dap.cs:474
++#: ../src/Core/Banshee.Base/Dap/Dap.cs:502
+ msgid "Continue synchronizing"
+ msgstr "Fortsæt synkronisering"
+
+ #. Translators: {0} is the name assigned to a Digital Audio Player by its owner
+ #: ../src/Core/Banshee.Base/Dap/DapPropertiesDialog.cs:54
+-#: ../src/Core/Banshee.Base/Sources/DapSource.cs:406
++#: ../src/Core/Banshee.Base/Sources/DapSource.cs:403
+ #, csharp-format
+ msgid "{0} Properties"
+ msgstr "{0} egenskaber"
+@@ -2350,20 +2319,20 @@
+ msgid "Device name"
+ msgstr "Enhedsnavn"
+
+-#: ../src/Core/Banshee.Base/Dap/DapPropertiesDialog.cs:85
+-#: ../src/Core/Banshee.Base/Dap/DapPropertiesDialog.cs:88
++#: ../src/Core/Banshee.Base/Dap/DapPropertiesDialog.cs:86
++#: ../src/Core/Banshee.Base/Dap/DapPropertiesDialog.cs:89
+ msgid "Owner name"
+ msgstr "Ejernavn"
+
+-#: ../src/Core/Banshee.Base/Dap/DapPropertiesDialog.cs:97
++#: ../src/Core/Banshee.Base/Dap/DapPropertiesDialog.cs:99
+ msgid "Encode to"
+ msgstr "Kod til"
+
+-#: ../src/Core/Banshee.Base/Dap/DapPropertiesDialog.cs:107
++#: ../src/Core/Banshee.Base/Dap/DapPropertiesDialog.cs:109
+ msgid "Volume usage"
+ msgstr "Pladsforbrug"
+
+-#: ../src/Core/Banshee.Base/Dap/DapPropertiesDialog.cs:119
++#: ../src/Core/Banshee.Base/Dap/DapPropertiesDialog.cs:121
+ msgid "Advanced details"
+ msgstr "Avancerede detaljer"
+
+@@ -2468,7 +2437,7 @@
+ msgid "Loading user interface"
+ msgstr "Indlæser brugergrænseflade"
+
+-#: ../src/Core/Banshee.Base/GstTranscoder.cs:82
++#: ../src/Core/Banshee.Base/GstTranscoder.cs:83
+ msgid "Could not create transcoder"
+ msgstr "Kunne ikke oprette omkoder"
+
+@@ -2610,7 +2579,7 @@
+ "Fejlkorrektion forsøger at læse ridsede områder på en disk, men vil nedsætte "
+ "hastigheden mærkbart."
+
+-#: ../src/Core/Banshee.Base/Gui/SourceView.cs:533
++#: ../src/Core/Banshee.Base/Gui/SourceView.cs:540
+ msgid "Could not import tracks"
+ msgstr "Kunne ikke importere spor"
+
+@@ -2634,31 +2603,31 @@
+ msgid "Continuous"
+ msgstr "Løbende"
+
+-#: ../src/Core/Banshee.Base/Gui/TrackEditor.cs:213
++#: ../src/Core/Banshee.Base/Gui/TrackEditor.cs:232
+ msgid "Automatically set all track numbers in increasing order"
+ msgstr "Sæt automatisk alle spornumre i stigende rækkefølge"
+
+-#: ../src/Core/Banshee.Base/Gui/TrackEditor.cs:214
++#: ../src/Core/Banshee.Base/Gui/TrackEditor.cs:233
+ msgid "Set all track counts to this value"
+ msgstr "Sæt alle \"antal spor\" til denne værdi"
+
+-#: ../src/Core/Banshee.Base/Gui/TrackEditor.cs:215
++#: ../src/Core/Banshee.Base/Gui/TrackEditor.cs:234
+ msgid "Set all artists to this value"
+ msgstr "Sæt alle kunstnere til denne værdi"
+
+-#: ../src/Core/Banshee.Base/Gui/TrackEditor.cs:216
++#: ../src/Core/Banshee.Base/Gui/TrackEditor.cs:235
+ msgid "Set all albums to this value"
+ msgstr "Sæt alle album til denne værdi"
+
+-#: ../src/Core/Banshee.Base/Gui/TrackEditor.cs:217
++#: ../src/Core/Banshee.Base/Gui/TrackEditor.cs:236
+ msgid "Set all genres to this value"
+ msgstr "Sæt alle genre til denne værdi"
+
+-#: ../src/Core/Banshee.Base/Gui/TrackEditor.cs:218
++#: ../src/Core/Banshee.Base/Gui/TrackEditor.cs:237
+ msgid "Set all years to this value"
+ msgstr "Sæt alle år til denne værdi"
+
+-#: ../src/Core/Banshee.Base/Gui/TrackEditor.cs:219
++#: ../src/Core/Banshee.Base/Gui/TrackEditor.cs:238
+ msgid ""
+ "Apply the values of this track set for the Artist, Album Title, Genre, Track "
+ "count, Year, and Rating fields to the rest of the selected tracks in this "
+@@ -2667,20 +2636,20 @@
+ "Anvend værdierne fra dette spor. Sæt kunstner-, albumtitel-, genre-, antal "
+ "spor-, årstal- og bedømmelsesfelter på resten af sporene i denne redigering."
+
+-#: ../src/Core/Banshee.Base/Gui/TrackEditor.cs:220
++#: ../src/Core/Banshee.Base/Gui/TrackEditor.cs:239
+ msgid "Set all ratings to this value"
+ msgstr "Sæt alle bedømmelser til denne værdi"
+
+-#: ../src/Core/Banshee.Base/Gui/TrackEditor.cs:272
++#: ../src/Core/Banshee.Base/Gui/TrackEditor.cs:300
+ msgid "Never played"
+ msgstr "Aldrig afspillet"
+
+-#: ../src/Core/Banshee.Base/Gui/TrackEditor.cs:286
++#: ../src/Core/Banshee.Base/Gui/TrackEditor.cs:314
+ #, csharp-format
+ msgid "Editing song {0} of {1}"
+ msgstr "Redigerer sang {0} af {1}"
+
+-#: ../src/Core/Banshee.Base/Gui/TrackEditor.cs:287
++#: ../src/Core/Banshee.Base/Gui/TrackEditor.cs:315
+ #, csharp-format
+ msgid "Editing {0}"
+ msgstr "Redigerer {0}"
+@@ -2762,15 +2731,15 @@
+ msgid "Configuration"
+ msgstr "Konfiguration"
+
+-#: ../src/Core/Banshee.Base/PowerManagement.cs:83
++#: ../src/Core/Banshee.Base/PowerManagement.cs:121
+ msgid "Playing Music"
+ msgstr "Afspiller musik"
+
+-#: ../src/Core/Banshee.Base/Source.cs:388
++#: ../src/Core/Banshee.Base/Source.cs:390
+ msgid "Source Properties..."
+ msgstr "Kildeegenskaber..."
+
+-#: ../src/Core/Banshee.Base/Source.cs:396
++#: ../src/Core/Banshee.Base/Source.cs:398
+ #, csharp-format
+ msgid "Delete {0}"
+ msgstr "Slet {0}"
+@@ -2833,48 +2802,45 @@
+ msgid "You must select at least one track to import."
+ msgstr "Du skal vælge mindst ét spor at importere."
+
+-#: ../src/Core/Banshee.Base/Sources/DapSource.cs:107
++#: ../src/Core/Banshee.Base/Sources/DapSource.cs:106
+ msgid "Synchronizing your Device, Please Wait..."
+ msgstr "Synkroniserer din enhed, vent venligst..."
+
+-#: ../src/Core/Banshee.Base/Sources/DapSource.cs:191
++#: ../src/Core/Banshee.Base/Sources/DapSource.cs:188
+ #: ../src/Plugins/Banshee.Plugins.Daap/DaapSource.cs:316
+ msgid "Importing"
+ msgstr "Importerer"
+
+-#: ../src/Core/Banshee.Base/Sources/DapSource.cs:193
++#: ../src/Core/Banshee.Base/Sources/DapSource.cs:190
+ #: ../src/Plugins/Banshee.Plugins.Daap/DaapSource.cs:318
+ #, csharp-format
+ msgid "You are currently importing from {0}. Would you like to stop it?"
+ msgstr "Du importerer i øjeblikket fra {0}. Vil du afbryde importeringen?"
+
+-#. import_manager.UserEvent.Icon = GetIcon;
+-#: ../src/Core/Banshee.Base/Sources/DapSource.cs:195
+-#: ../src/Dap/Banshee.Dap.Mtp/MtpDap.cs:314
++#: ../src/Core/Banshee.Base/Sources/DapSource.cs:192
+ #: ../src/Plugins/Banshee.Plugins.Daap/DaapSource.cs:320
+ #, csharp-format
+ msgid "Copying from {0}"
+ msgstr "Kopierer fra {0}"
+
+-#: ../src/Core/Banshee.Base/Sources/DapSource.cs:196
+-#: ../src/Dap/Banshee.Dap.Mtp/MtpDap.cs:315
++#: ../src/Core/Banshee.Base/Sources/DapSource.cs:193
++#: ../src/Dap/Banshee.Dap.Mtp/MtpDap.cs:464
+ #: ../src/Plugins/Banshee.Plugins.Daap/DaapSource.cs:321
+ msgid "Scanning..."
+ msgstr "Leder..."
+
+-#: ../src/Core/Banshee.Base/Sources/DapSource.cs:313
+-#: ../src/Dap/Banshee.Dap.Mtp/MtpDap.cs:435
++#: ../src/Core/Banshee.Base/Sources/DapSource.cs:310
+ #: ../src/Plugins/Banshee.Plugins.Daap/DaapSource.cs:437
+ #, csharp-format
+ msgid "Cannot import track from {0}"
+ msgstr "Kan ikke importere spor fra {0}"
+
+-#: ../src/Core/Banshee.Base/Sources/DapSource.cs:349
++#: ../src/Core/Banshee.Base/Sources/DapSource.cs:346
+ #, csharp-format
+ msgid "({0} Remaining)"
+ msgstr "({0} tilbage)"
+
+-#: ../src/Core/Banshee.Base/Sources/DapSource.cs:386
++#: ../src/Core/Banshee.Base/Sources/DapSource.cs:383
+ #, csharp-format
+ msgid "Eject {0}"
+ msgstr "Skub {0} ud"
+@@ -2924,7 +2890,7 @@
+ #: ../src/Core/Banshee.Base/Sources/PlaylistSource.cs:73
+ #: ../src/Core/Banshee.Base/Sources/PlaylistSource.cs:461
+ #: ../src/Core/Banshee.Base/Sources/PlaylistSource.cs:467
+-#: ../src/Core/Banshee/PlayerInterface.cs:1622
++#: ../src/Core/Banshee/PlayerInterface.cs:1692
+ msgid "New Playlist"
+ msgstr "Ny spilleliste"
+
+@@ -2938,7 +2904,7 @@
+ "En spilleliste med dette navn eksisterer allerede. Vælg venligst et andet "
+ "navn."
+
+-#: ../src/Core/Banshee.Base/StreamTagger.cs:169
++#: ../src/Core/Banshee.Base/StreamTagger.cs:171
+ #, csharp-format
+ msgid "Saving tags for {0}"
+ msgstr "Gemmer mærker for {0}"
+@@ -2961,85 +2927,86 @@
+ msgid "{0:0.00} GB"
+ msgstr "{0:0.00} GB"
+
+-#: ../src/Core/Banshee/PlayerInterface.cs:453
++#: ../src/Core/Banshee/PlayerInterface.cs:470
+ msgid "All Columns"
+ msgstr "Alle kolonner"
+
+-#: ../src/Core/Banshee/PlayerInterface.cs:455
++#: ../src/Core/Banshee/PlayerInterface.cs:472
+ msgid "Song Name"
+ msgstr "Sang"
+
+-#: ../src/Core/Banshee/PlayerInterface.cs:456
++#: ../src/Core/Banshee/PlayerInterface.cs:473
+ msgid "Artist Name"
+ msgstr "Kunstner"
+
+-#: ../src/Core/Banshee/PlayerInterface.cs:457
++#: ../src/Core/Banshee/PlayerInterface.cs:474
+ msgid "Album Title"
+ msgstr "Albumtitel"
+
+-#: ../src/Core/Banshee/PlayerInterface.cs:480
++#: ../src/Core/Banshee/PlayerInterface.cs:497
+ msgid "Write selection to CD"
+ msgstr "Skriv valg til cd"
+
+-#: ../src/Core/Banshee/PlayerInterface.cs:481
++#: ../src/Core/Banshee/PlayerInterface.cs:498
+ msgid "Import CD into library"
+ msgstr "Importér cd til bibliotek"
+
+-#: ../src/Core/Banshee/PlayerInterface.cs:482
++#: ../src/Core/Banshee/PlayerInterface.cs:499
+ #: ../src/Plugins/Banshee.Plugins.MiniMode/MiniModeWindow.cs:151
+ msgid "Play previous song"
+ msgstr "Afspil forrige sang"
+
+-#: ../src/Core/Banshee/PlayerInterface.cs:483
++#: ../src/Core/Banshee/PlayerInterface.cs:500
+ #: ../src/Plugins/Banshee.Plugins.MiniMode/MiniModeWindow.cs:152
+ msgid "Play/pause current song"
+ msgstr "Afspil/pause nuværende sang"
+
+-#: ../src/Core/Banshee/PlayerInterface.cs:484
++#: ../src/Core/Banshee/PlayerInterface.cs:501
+ #: ../src/Plugins/Banshee.Plugins.MiniMode/MiniModeWindow.cs:153
++#: ../src/Plugins/Banshee.Plugins.NotificationAreaIcon/NotificationAreaIconPlugin.cs:293
+ msgid "Play next song"
+ msgstr "Afspil næste sang"
+
+-#: ../src/Core/Banshee/PlayerInterface.cs:485
++#: ../src/Core/Banshee/PlayerInterface.cs:502
+ msgid "Device disk usage"
+ msgstr "Diskforbrug på enhed"
+
+-#: ../src/Core/Banshee/PlayerInterface.cs:486
++#: ../src/Core/Banshee/PlayerInterface.cs:503
+ msgid "Synchronize music library to device"
+ msgstr "Synkronisér musikbibliotek til enhed"
+
+-#: ../src/Core/Banshee/PlayerInterface.cs:487
++#: ../src/Core/Banshee/PlayerInterface.cs:504
+ #: ../src/Plugins/Banshee.Plugins.MiniMode/MiniModeWindow.cs:155
+ msgid "Adjust volume"
+ msgstr "Justér lydstyrke"
+
+-#: ../src/Core/Banshee/PlayerInterface.cs:488
++#: ../src/Core/Banshee/PlayerInterface.cs:505
+ #: ../src/Plugins/Banshee.Plugins.MiniMode/MiniModeWindow.cs:156
+ msgid "Change repeat playback mode"
+ msgstr "Gentag afspilning (til/fra)"
+
+-#: ../src/Core/Banshee/PlayerInterface.cs:489
++#: ../src/Core/Banshee/PlayerInterface.cs:506
+ #: ../src/Plugins/Banshee.Plugins.MiniMode/MiniModeWindow.cs:157
+ msgid "Toggle shuffle playback mode"
+ msgstr "Tilfældig afspilning (til/fra)"
+
+-#: ../src/Core/Banshee/PlayerInterface.cs:490
++#: ../src/Core/Banshee/PlayerInterface.cs:507
+ msgid "Edit and view metadata of selected songs"
+ msgstr "Redigér og vis metadata på valgte sange"
+
+-#: ../src/Core/Banshee/PlayerInterface.cs:814
++#: ../src/Core/Banshee/PlayerInterface.cs:883
+ msgid "Pause"
+ msgstr "Pause"
+
+-#: ../src/Core/Banshee/PlayerInterface.cs:816
++#: ../src/Core/Banshee/PlayerInterface.cs:885
+ msgid "Stop"
+ msgstr "Stop"
+
+-#: ../src/Core/Banshee/PlayerInterface.cs:837
++#: ../src/Core/Banshee/PlayerInterface.cs:906
+ msgid "Cannot Play Song"
+ msgstr "Kan ikke afspille sang"
+
+-#: ../src/Core/Banshee/PlayerInterface.cs:838
++#: ../src/Core/Banshee/PlayerInterface.cs:907
+ #, csharp-format
+ msgid ""
+ "{0} cannot be played by Banshee. The most common reasons for this are:\n"
+@@ -3052,52 +3019,52 @@
+ " <big>â¢</big> Sangen er beskyttet (DRM)\n"
+ " <big>â¢</big> Sangen er pÃ¥ en DAP som ikke understøtter afspilning\n"
+
+-#: ../src/Core/Banshee/PlayerInterface.cs:847
+-#: ../src/Core/Banshee/PlayerInterface.cs:856
++#: ../src/Core/Banshee/PlayerInterface.cs:916
++#: ../src/Core/Banshee/PlayerInterface.cs:925
+ msgid "Play"
+ msgstr "Afspil"
+
+-#: ../src/Core/Banshee/PlayerInterface.cs:1268
++#: ../src/Core/Banshee/PlayerInterface.cs:1337
+ #, csharp-format
+ msgid "{0} Item"
+ msgid_plural "{0} Items"
+ msgstr[0] "{0} element"
+ msgstr[1] "{0} elementer"
+
+-#: ../src/Core/Banshee/PlayerInterface.cs:1272
++#: ../src/Core/Banshee/PlayerInterface.cs:1341
+ #, csharp-format
+ msgid "{0} day"
+ msgid_plural "{0} days"
+ msgstr[0] "{0} dag"
+ msgstr[1] "{0} dage"
+
+-#: ../src/Core/Banshee/PlayerInterface.cs:1277
++#: ../src/Core/Banshee/PlayerInterface.cs:1346
+ #, csharp-format
+ msgid "{0} hour"
+ msgid_plural "{0} hours"
+ msgstr[0] "{0} time"
+ msgstr[1] "{0} timer"
+
+-#: ../src/Core/Banshee/PlayerInterface.cs:1281
++#: ../src/Core/Banshee/PlayerInterface.cs:1350
+ #, csharp-format
+ msgid "{0} minute"
+ msgid_plural "{0} minutes"
+ msgstr[0] "{0} minut"
+ msgstr[1] "{0} minutter"
+
+-#: ../src/Core/Banshee/PlayerInterface.cs:1283
++#: ../src/Core/Banshee/PlayerInterface.cs:1352
+ #, csharp-format
+ msgid "{0} second"
+ msgid_plural "{0} seconds"
+ msgstr[0] "{0} sekund"
+ msgstr[1] "{0} sekunder"
+
+-#: ../src/Core/Banshee/PlayerInterface.cs:1412
++#: ../src/Core/Banshee/PlayerInterface.cs:1482
+ #, csharp-format
+ msgid "Filter on {0}"
+ msgstr "Filtrér på {0}"
+
+-#: ../src/Core/Banshee/PlayerInterface.cs:1891
++#: ../src/Core/Banshee/PlayerInterface.cs:1965
+ #, csharp-format
+ msgid "Are you sure you want to permanently delete this song?"
+ msgid_plural ""
+@@ -3105,15 +3072,15 @@
+ msgstr[0] "Er du sikker på du vil slette denne sang permanent?"
+ msgstr[1] "Er du sikker på du vil slette de {0} valgte sange permanent?"
+
+-#: ../src/Core/Banshee/PlayerInterface.cs:1895
++#: ../src/Core/Banshee/PlayerInterface.cs:1969
+ msgid "If you delete the selection, it will be permanently lost."
+ msgstr "Hvis du sletter det valgte vil det permament være tabt."
+
+-#: ../src/Core/Banshee/PlayerInterface.cs:1898
++#: ../src/Core/Banshee/PlayerInterface.cs:1972
+ msgid "Remove selection from library"
+ msgstr "Fjern valg fra bibliotek"
+
+-#: ../src/Core/Banshee/PlayerInterface.cs:1900
++#: ../src/Core/Banshee/PlayerInterface.cs:1974
+ #, csharp-format
+ msgid "Are you sure you want to remove the selected song from your library?"
+ msgid_plural ""
+@@ -3122,25 +3089,25 @@
+ msgstr[1] ""
+ "Er du sikker på du vil fjerne de valgte <b>({0})</b> sange fra dit bibliotek?"
+
+-#: ../src/Core/Banshee/PlayerInterface.cs:1945
++#: ../src/Core/Banshee/PlayerInterface.cs:2019
+ msgid "Delete songs from drive"
+ msgstr "Slet sange fra drev"
+
+-#: ../src/Core/Banshee/PlayerInterface.cs:1946
++#: ../src/Core/Banshee/PlayerInterface.cs:2020
+ #, csharp-format
+ msgid "You do not have the required permissions to delete '{0}'"
+ msgstr "Du har ikke rettigheder til at slette \"{0}\""
+
+-#: ../src/Core/Banshee/PlayerInterface.cs:2012
++#: ../src/Core/Banshee/PlayerInterface.cs:2086
+ msgid "Import Playlist"
+ msgstr "Importér spilleliste"
+
+-#: ../src/Core/Banshee/PlayerInterface.cs:2044
+-#: ../src/Core/Banshee/PlayerInterface.cs:2062
++#: ../src/Core/Banshee/PlayerInterface.cs:2118
++#: ../src/Core/Banshee/PlayerInterface.cs:2136
+ msgid "Unable to Import Playlist"
+ msgstr "Kunne ikke importere spilleliste"
+
+-#: ../src/Core/Banshee/PlayerInterface.cs:2063
++#: ../src/Core/Banshee/PlayerInterface.cs:2137
+ msgid ""
+ "Banshee was unable to find any valid tracks to import. Please check the "
+ "playlist and try again."
+@@ -3148,17 +3115,34 @@
+ "Banshee kunne ikke finde gyldige numre at importere. Undersøg venligst "
+ "spillelisten og prøv igen."
+
+-#: ../src/Core/Banshee/PlayerInterface.cs:2152
++#: ../src/Core/Banshee/PlayerInterface.cs:2180
++msgid "Could not export playlist"
++msgstr "Kunne ikke eksportere spilleliste"
++
++#: ../src/Core/Banshee/PlayerInterface.cs:2199
++#: ../src/Core/Banshee/PlayerInterface.cs:2205
++msgid "Error opening stream"
++msgstr "Fejl ved åbning af stream"
++
++#: ../src/Core/Banshee/PlayerInterface.cs:2199
++msgid "Could not open stream or playlist"
++msgstr "Kunne ikke åbne stream eller spilleliste"
++
++#: ../src/Core/Banshee/PlayerInterface.cs:2205
++msgid "Problem parsing playlist"
++msgstr "Problemer ved fortolkning af spilleliste"
++
++#: ../src/Core/Banshee/PlayerInterface.cs:2243
+ msgid "New CD"
+ msgstr "Ny cd"
+
+ #. Translators: {0} is the name of the DAP device (i.e. 'iPod')
+-#: ../src/Core/Banshee/PlayerInterface.cs:2173
++#: ../src/Core/Banshee/PlayerInterface.cs:2264
+ #, csharp-format
+ msgid "Synchronize {0}"
+ msgstr "Synkronisér {0}"
+
+-#: ../src/Core/Banshee/PlayerInterface.cs:2174
++#: ../src/Core/Banshee/PlayerInterface.cs:2265
+ #, csharp-format
+ msgid ""
+ "You have made changes to your {0}. Please choose a method for updating the "
+@@ -3176,7 +3160,7 @@
+ "<big>â¢</big> <i>Gem manuelle ændringer</i>: gem kun manuelle ændringer lavet "
+ "af dig"
+
+-#: ../src/Core/Banshee/PlayerInterface.cs:2180
++#: ../src/Core/Banshee/PlayerInterface.cs:2271
+ msgid ""
+ "<b>Warning:</b> Actions will alter or erase existing iPod contents and may "
+ "cause incompatibility with iTunes!"
+@@ -3184,11 +3168,11 @@
+ "<b>Advarsel:</b> Handlinger vil ændre eller slette eksisterende indhold på "
+ "iPod'en og kan resultere i inkompatibilitet med iTunes!"
+
+-#: ../src/Core/Banshee/PlayerInterface.cs:2182
++#: ../src/Core/Banshee/PlayerInterface.cs:2273
+ msgid "Synchronize Library"
+ msgstr "Synkronisér bibliotek"
+
+-#: ../src/Core/Banshee/PlayerInterface.cs:2184
++#: ../src/Core/Banshee/PlayerInterface.cs:2275
+ msgid "Save Manual Changes"
+ msgstr "Gem manuelle ændringer"
+
+@@ -3229,7 +3213,7 @@
+ msgstr "Bedømmelse:"
+
+ #: ../src/Core/Banshee.Widgets/StreamPositionLabel.cs:82
+-#: ../src/Engines/Banshee.MediaEngine.GStreamer/GstPlayerEngine.cs:279
++#: ../src/Engines/Banshee.MediaEngine.GStreamer/GstPlayerEngine.cs:291
+ msgid "Buffering"
+ msgstr "Mellemlagrer"
+
+@@ -3249,42 +3233,49 @@
+ msgid "Full Volume"
+ msgstr "Fuld lydstyrke"
+
+-#: ../src/Dap/Banshee.Dap.Ipod/DatabaseRebuilder.cs:53
+-#: ../src/Dap/Banshee.Dap.Ipod/DatabaseRebuilder.cs:54
++#: ../src/Dap/Banshee.Dap.Ipod/DatabaseRebuilder.cs:87
++#: ../src/Dap/Banshee.Dap.Ipod/DatabaseRebuilder.cs:88
+ msgid "Rebuilding Database"
+ msgstr "Gendanner database"
+
+-#: ../src/Dap/Banshee.Dap.Ipod/DatabaseRebuilder.cs:55
++#: ../src/Dap/Banshee.Dap.Ipod/DatabaseRebuilder.cs:89
+ msgid "Scanning iPod..."
+ msgstr "Gennemsøger iPod..."
+
+-#: ../src/Dap/Banshee.Dap.Ipod/DatabaseRebuilder.cs:89
++#: ../src/Dap/Banshee.Dap.Ipod/DatabaseRebuilder.cs:123
+ msgid "Processing Tracks..."
+ msgstr "Behandler spor..."
+
+-#: ../src/Dap/Banshee.Dap.Ipod/DatabaseRebuilder.cs:136
++#: ../src/Dap/Banshee.Dap.Ipod/DatabaseRebuilder.cs:140
++msgid "Ordering Tracks..."
++msgstr "Sorterer spor..."
++
++#: ../src/Dap/Banshee.Dap.Ipod/DatabaseRebuilder.cs:220
+ msgid "Saving new database..."
+ msgstr "Gemmer ny database..."
+
+-#: ../src/Dap/Banshee.Dap.Ipod/DatabaseRebuilder.cs:143
++#: ../src/Dap/Banshee.Dap.Ipod/DatabaseRebuilder.cs:232
+ msgid "Error rebuilding iPod database"
+ msgstr "Fejl ved gendannelse af iPod database"
+
+-#. Translators "Week 25 of 2006"
+-#: ../src/Dap/Banshee.Dap.Ipod/IpodDap.cs:100
+-msgid "Manufactured During"
+-msgstr "Fremstillet i løbet af"
++#: ../src/Dap/Banshee.Dap.Ipod/IpodDap.cs:99
++#: ../src/Dap/Banshee.Dap.Ipod/IpodDap.cs:102
++msgid "Model"
++msgstr "Model"
+
+-#: ../src/Dap/Banshee.Dap.Ipod/IpodDap.cs:101
+-#, csharp-format
+-msgid "Week {0} of {1}"
+-msgstr "Uge {0} af {1}"
++#: ../src/Dap/Banshee.Dap.Ipod/IpodDap.cs:106
++msgid "Advertised Capacity"
++msgstr "Averteret kapacitet"
+
+-#: ../src/Dap/Banshee.Dap.Ipod/IpodDap.cs:139
++#: ../src/Dap/Banshee.Dap.Ipod/IpodDap.cs:109
++msgid "Manufactured In"
++msgstr "Fremstillet i"
++
++#: ../src/Dap/Banshee.Dap.Ipod/IpodDap.cs:177
+ msgid "Your iPod could not be identified"
+ msgstr "Din iPod kunne ikke identificeres"
+
+-#: ../src/Dap/Banshee.Dap.Ipod/IpodDap.cs:140
++#: ../src/Dap/Banshee.Dap.Ipod/IpodDap.cs:178
+ msgid ""
+ "Please consider submitting information about your iPod to the Banshee "
+ "Project so your iPod may be more fully identified in the future.\n"
+@@ -3292,32 +3283,28 @@
+ "Overvej venligst at indsende information omkring din iPod til Banshee-"
+ "projektet, så din iPod identificeres bedre i fremtiden.\n"
+
+-#: ../src/Dap/Banshee.Dap.Ipod/IpodDap.cs:143
++#: ../src/Dap/Banshee.Dap.Ipod/IpodDap.cs:181
+ msgid "Do not ask me again"
+ msgstr "Spørg mig ikke igen"
+
+-#: ../src/Dap/Banshee.Dap.Ipod/IpodDap.cs:148
++#: ../src/Dap/Banshee.Dap.Ipod/IpodDap.cs:186
+ msgid "Go to Web Site"
+ msgstr "GÃ¥ til hjemmeside"
+
+-#: ../src/Dap/Banshee.Dap.Ipod/IpodDap.cs:234
++#: ../src/Dap/Banshee.Dap.Ipod/IpodDap.cs:278
+ msgid "Could not eject iPod"
+ msgstr "Kunne ikke skubbe iPod ud"
+
+-#: ../src/Dap/Banshee.Dap.Ipod/IpodDap.cs:242
+-#: ../src/Dap/Banshee.Dap.Ipod/IpodDap.cs:261
++#: ../src/Dap/Banshee.Dap.Ipod/IpodDap.cs:303
++#: ../src/Dap/Banshee.Dap.Ipod/IpodDap.cs:322
+ msgid "Synchronizing iPod"
+ msgstr "Synkroniserer iPod"
+
+-#: ../src/Dap/Banshee.Dap.Ipod/IpodDap.cs:243
++#: ../src/Dap/Banshee.Dap.Ipod/IpodDap.cs:304
+ msgid "Pre-processing tracks"
+ msgstr "Forbehandler sange"
+
+-#: ../src/Dap/Banshee.Dap.Ipod/IpodDap.cs:258
+-msgid "Flushing to Disk (may take time)"
+-msgstr "Opdaterer til disk (kan tage noget tid)"
+-
+-#: ../src/Dap/Banshee.Dap.Ipod/IpodDap.cs:268
++#: ../src/Dap/Banshee.Dap.Ipod/IpodDap.cs:333
+ msgid "Failed to synchronize iPod"
+ msgstr "Kunne ikke synkronisere iPod"
+
+@@ -3350,15 +3337,20 @@
+ msgid "What is the reason for this?"
+ msgstr "Hvad er årsagen til dette?"
+
+-#: ../src/Dap/Banshee.Dap.Ipod/UnsupportedDatabaseView.cs:116
++#: ../src/Dap/Banshee.Dap.Ipod/UnsupportedDatabaseView.cs:110
++msgid "Your iPod is mounted read only. Banshee can not restore your iPod."
++msgstr ""
++"Din iPod er monteret skrivebeskyttet. Banshee kan ikke genskabe din iPod."
++
++#: ../src/Dap/Banshee.Dap.Ipod/UnsupportedDatabaseView.cs:118
+ msgid "Rebuild iPod Database..."
+ msgstr "Gendan iPod database..."
+
+-#: ../src/Dap/Banshee.Dap.Ipod/UnsupportedDatabaseView.cs:124
++#: ../src/Dap/Banshee.Dap.Ipod/UnsupportedDatabaseView.cs:126
+ msgid "Confirm Rebuild iPod Database"
+ msgstr "Bekræft gendannelse af iPod database"
+
+-#: ../src/Dap/Banshee.Dap.Ipod/UnsupportedDatabaseView.cs:130
++#: ../src/Dap/Banshee.Dap.Ipod/UnsupportedDatabaseView.cs:132
+ msgid ""
+ "Rebuilding your iPod database may take some time. Also note that any "
+ "playlists you have on your iPod will be lost.\n"
+@@ -3370,19 +3362,16 @@
+ "\n"
+ "Er du sikker på du vil gendanne din iPod database?"
+
+-#: ../src/Dap/Banshee.Dap.Ipod/UnsupportedDatabaseView.cs:135
++#: ../src/Dap/Banshee.Dap.Ipod/UnsupportedDatabaseView.cs:137
+ msgid "Rebuild Database"
+ msgstr "Geopbyg database"
+
+-#: ../src/Dap/Banshee.Dap.Ipod/UnsupportedDatabaseView.cs:147
++#: ../src/Dap/Banshee.Dap.Ipod/UnsupportedDatabaseView.cs:151
+ msgid "Rebuilding iPod Database..."
+ msgstr "Gendanner iPod database..."
+
+ #: ../src/Dap/Banshee.Dap.Karma/Karma.cs:144
+ #: ../src/Dap/Banshee.Dap.Karma/Karma.cs:172
+-#: ../src/Dap/Banshee.Dap.Mtp/MtpDap.cs:232
+-#: ../src/Dap/Banshee.Dap.Mtp/MtpDap.cs:236
+-#: ../src/Dap/Banshee.Dap.Mtp/MtpDap.cs:269
+ #: ../src/Dap/Banshee.Dap.Njb/NjbDap.cs:248
+ #: ../src/Dap/Banshee.Dap.Njb/NjbDap.cs:260
+ msgid "Synchronizing Device"
+@@ -3416,85 +3405,75 @@
+ msgstr[0] "Lydformat"
+ msgstr[1] "Lydformater"
+
+-#: ../src/Dap/Banshee.Dap.MassStorage/MassStorageDap.cs:264
++#: ../src/Dap/Banshee.Dap.MassStorage/MassStorageDap.cs:271
+ msgid "Loading Songs"
+ msgstr "Indlæser sange"
+
+-#: ../src/Dap/Banshee.Dap.MassStorage/MassStorageDap.cs:265
++#: ../src/Dap/Banshee.Dap.MassStorage/MassStorageDap.cs:272
+ msgid ""
+ "The audio device song loading process is currently running. Would you like "
+ "to stop it?"
+ msgstr "Sange indlæses i øjeblikket fra lydenheden. Vil du afbryde processen?"
+
+-#: ../src/Dap/Banshee.Dap.MassStorage/MassStorageDap.cs:266
++#: ../src/Dap/Banshee.Dap.MassStorage/MassStorageDap.cs:273
+ #, csharp-format
+ msgid "Loading {0} of {1}"
+ msgstr "Indlæser {0} af {1}"
+
+-#: ../src/Dap/Banshee.Dap.MassStorage/MassStorageDap.cs:315
++#: ../src/Dap/Banshee.Dap.MassStorage/MassStorageDap.cs:322
+ #, csharp-format
+ msgid "Copying {0} of {1}"
+ msgstr "Kopierer {0} af {1}"
+
+-#: ../src/Dap/Banshee.Dap.MassStorage/MassStorageDap.cs:331
+-msgid "Song Playing on Device"
+-msgstr "Sang afspilles på enhed"
+-
+-#: ../src/Dap/Banshee.Dap.MassStorage/MassStorageDap.cs:332
+-msgid ""
+-"Before you can eject your device, you need to start playing a song that is "
+-"not on it. This is a known bug."
+-msgstr ""
+-"Før du kan skubbe din enhed ud, er du nødt til at afspille en sang der ikke "
+-"ligger på den. Dette er en kendt fejl."
+-
+-#: ../src/Dap/Banshee.Dap.MassStorage/MassStorageDap.cs:368
++#: ../src/Dap/Banshee.Dap.MassStorage/MassStorageDap.cs:364
+ #, csharp-format
+ msgid "Failed to Unmount {0}"
+ msgstr "Kunne ikke afmontere {0}"
+
+-#: ../src/Dap/Banshee.Dap.MassStorage/MassStorageDap.cs:369
++#: ../src/Dap/Banshee.Dap.MassStorage/MassStorageDap.cs:365
+ msgid "Make sure no other programs are using it."
+ msgstr "Vær sikker på at ingen andre programmer bruger den."
+
+-#: ../src/Dap/Banshee.Dap.MassStorage/MassStorageDap.cs:381
++#: ../src/Dap/Banshee.Dap.MassStorage/MassStorageDap.cs:377
+ #, csharp-format
+ msgid "Failed to Eject {0}"
+ msgstr "Kunne ikke skubbe {0} ud"
+
+-#: ../src/Dap/Banshee.Dap.MassStorage/MassStorageDap.cs:535
++#: ../src/Dap/Banshee.Dap.MassStorage/MassStorageDap.cs:549
+ #, csharp-format
+ msgid "Removing songs from {0}"
+ msgstr "Fjerner sange fra {0}"
+
+-#: ../src/Dap/Banshee.Dap.MassStorage/MassStorageDap.cs:536
++#: ../src/Dap/Banshee.Dap.MassStorage/MassStorageDap.cs:550
+ #, csharp-format
+ msgid "Removing {0} of {1}"
+ msgstr "Fjerner {0} af {1}"
+
+-#: ../src/Dap/Banshee.Dap.MassStorage/MassStorageDap.cs:573
++#: ../src/Dap/Banshee.Dap.MassStorage/MassStorageDap.cs:667
+ msgid "Audio Device"
+ msgstr "Lydenhed"
+
+-#: ../src/Dap/Banshee.Dap.Mtp/MtpDap.cs:168
+-msgid ": Found"
+-msgstr ": Fundet"
++#: ../src/Dap/Banshee.Dap.Mtp/MtpDap.cs:178
++msgid "Connecting..."
++msgstr "Tilslutter..."
+
+-#: ../src/Dap/Banshee.Dap.Mtp/MtpDap.cs:169
+-msgid "Reading library information"
+-msgstr "Læser biblioteksinformationer"
++#: ../src/Dap/Banshee.Dap.Mtp/MtpDap.cs:236
++msgid "Loading database..."
++msgstr "Indlæser database..."
+
+-#: ../src/Dap/Banshee.Dap.Mtp/MtpDap.cs:180
+-msgid "Loading device"
+-msgstr "Indlæser enhed"
++#: ../src/Dap/Banshee.Dap.Mtp/MtpDap.cs:245
++msgid "Cancelled..."
++msgstr "Annulleret..."
+
+-#: ../src/Dap/Banshee.Dap.Mtp/MtpDap.cs:184
+-msgid "Done"
+-msgstr "Færdig"
++#: ../src/Dap/Banshee.Dap.Mtp/MtpDap.cs:259
++#, csharp-format
++msgid "Loaded {0} files in {1:0.00}sec"
++msgstr "Indlæste {0} filer på {1:0.00} sek."
+
+-#: ../src/Dap/Banshee.Dap.Mtp/MtpDap.cs:185
+-msgid ": Ready for use"
+-msgstr ": Klar til brug"
++#: ../src/Dap/Banshee.Dap.Mtp/MtpDap.cs:463
++#, csharp-format
++msgid "Importing from {0}"
++msgstr "Importerer fra {0}"
+
+ #: ../src/Dap/Banshee.Dap.Njb/NjbDap.cs:155
+ msgid "Cannot read device"
+@@ -3508,7 +3487,7 @@
+ msgid "Could not set the owner of the device."
+ msgstr "Kunne ikke sætte ejeren på enheden."
+
+-#: ../src/Engines/Banshee.MediaEngine.GStreamer/GstPlayerEngine.cs:138
++#: ../src/Engines/Banshee.MediaEngine.GStreamer/GstPlayerEngine.cs:140
+ msgid "Could not initialize GStreamer library"
+ msgstr "Kunne ikke initialisere GStreamer-bibliotek"
+
+@@ -3994,7 +3973,7 @@
+ msgid "Now Playing"
+ msgstr "Afspiller nu"
+
+-#: ../src/Plugins/Banshee.Plugins.NotificationAreaIcon/NotificationAreaIconPlugin.cs:293
++#: ../src/Plugins/Banshee.Plugins.NotificationAreaIcon/NotificationAreaIconPlugin.cs:297
+ msgid "Cannot show notification"
+ msgstr "Kan ikke vise påmindelse"
+
+@@ -4453,10 +4432,18 @@
+ msgstr "Tidspunkt for sidste undersøgelse for radio opdateringer"
+
+ #: ../src/Plugins/Banshee.Plugins.Radio/banshee-plugin-radio.schemas.in.h:10
++msgid "URI for remote stations update"
++msgstr "URI til opdatering af fjernstationer"
++
++#: ../src/Plugins/Banshee.Plugins.Radio/banshee-plugin-radio.schemas.in.h:11
++msgid "URI to update remote stations from"
++msgstr "URI til opdatering af fjernstationer"
++
++#: ../src/Plugins/Banshee.Plugins.Radio/banshee-plugin-radio.schemas.in.h:12
+ msgid "Update remote stations from radio.banshee-project.org"
+ msgstr "Opdatér fjernstationer fra radio.banshee-project.org"
+
+-#: ../src/Plugins/Banshee.Plugins.Radio/CellRendererStation.cs:116
++#: ../src/Plugins/Banshee.Plugins.Radio/CellRendererStation.cs:117
+ msgid "Loading"
+ msgstr "Indlæser"
+
+@@ -4599,12 +4586,12 @@
+ msgid "Top Albums by {0}"
+ msgstr "Topalbum af {0}"
+
+-#: ../src/Plugins/Banshee.Plugins.Recommendation/RecommendationPane.cs:366
++#: ../src/Plugins/Banshee.Plugins.Recommendation/RecommendationPane.cs:367
+ #, csharp-format
+ msgid "{0}% Similarity"
+ msgstr "{0}% lighed"
+
+-#: ../src/Plugins/Banshee.Plugins.Recommendation/RecommendationPane.cs:368
++#: ../src/Plugins/Banshee.Plugins.Recommendation/RecommendationPane.cs:369
+ msgid "Unknown Similarity"
+ msgstr "Ukendt lighed"
+
+@@ -4627,6 +4614,308 @@
+ msgid "Show Recommendations"
+ msgstr "Vis anbefalinger"
+
++#: ../src/Plugins/Banshee.Plugins.LastFM/Connection.cs:333
++msgid "Failed to Login to Last.fm"
++msgstr "Kunne ikke logge ind på Last.fm"
++
++#: ../src/Plugins/Banshee.Plugins.LastFM/Connection.cs:334
++msgid "Either your username or password is invalid."
++msgstr "Brugernavn eller adgangskode er ugyldig."
++
++#: ../src/Plugins/Banshee.Plugins.LastFM/Connection.cs:457
++msgid "There is not enough content to play this station."
++msgstr "Der er ikke nok indhold til at afspille denne station."
++
++#: ../src/Plugins/Banshee.Plugins.LastFM/Connection.cs:458
++msgid "This group does not have enough members for radio."
++msgstr "Denne gruppe har ikke nok medlemmer til radio."
++
++#: ../src/Plugins/Banshee.Plugins.LastFM/Connection.cs:459
++msgid "This artist does not have enough fans for radio."
++msgstr "Denne kunstner har ikke nok fans til radio."
++
++#: ../src/Plugins/Banshee.Plugins.LastFM/Connection.cs:460
++msgid "This station is not available."
++msgstr "Denne station er ikke tilgængelig."
++
++#: ../src/Plugins/Banshee.Plugins.LastFM/Connection.cs:461
++msgid "This station is only available to subscribers."
++msgstr "Denne station er kun tilgængelig for abonnenter."
++
++#: ../src/Plugins/Banshee.Plugins.LastFM/Connection.cs:462
++msgid "There are not enough neighbours for this station."
++msgstr "Der er ikke nok naboer til denne station."
++
++#: ../src/Plugins/Banshee.Plugins.LastFM/Connection.cs:463
++msgid ""
++"The streaming system is offline for maintenance, please try again later."
++msgstr ""
++"Streamingsystemet er offline for vedligeholdelse, prøv venligst igen senere."
++
++#: ../src/Plugins/Banshee.Plugins.LastFM/Connection.cs:464
++msgid "There was an unknown error."
++msgstr "Der opstod en ukendt fejl."
++
++#: ../src/Plugins/Banshee.Plugins.LastFM/Connection.cs:472
++msgid "Not connected to Last.fm."
++msgstr "Ikke tilsluttet til Last.fm"
++
++#: ../src/Plugins/Banshee.Plugins.LastFM/Connection.cs:473
++msgid "Need account details before can connect to Last.fm"
++msgstr "Behøver kontodetaljer før der kan tilsluttes til Last.fm"
++
++#: ../src/Plugins/Banshee.Plugins.LastFM/Connection.cs:474
++msgid "No network connection detected."
++msgstr "Ingen netværksforbindelse fundet."
++
++#: ../src/Plugins/Banshee.Plugins.LastFM/Connection.cs:475
++msgid "Last.fm username or password is invalid."
++msgstr "Last.fm brugernavn eller adgangskode er ugyldig."
++
++#: ../src/Plugins/Banshee.Plugins.LastFM/Connection.cs:476
++msgid "Connecting to Last.fm."
++msgstr "Tilslutter til Last.fm"
++
++#: ../src/Plugins/Banshee.Plugins.LastFM/Connection.cs:477
++msgid "Connected to Last.fm."
++msgstr "Tilsluttet til Last.fm."
++
++#: ../src/Plugins/Banshee.Plugins.LastFM/Editor.cs:62
++msgid "Edit Station"
++msgstr "Redigér station"
++
++#: ../src/Plugins/Banshee.Plugins.LastFM/Editor.cs:69
++msgid "New Station"
++msgstr "Ny station"
++
++#: ../src/Plugins/Banshee.Plugins.LastFM/LastFMSource.cs:178
++msgid "Edit Last.fm Settings"
++msgstr "Redigér Last.fm-opsætning"
++
++#: ../src/Plugins/Banshee.Plugins.LastFM/LastFMSource.cs:252
++msgid "Last.fm (Disconnected)"
++msgstr "Last.fm (Ikke tilsluttet)"
++
++#: ../src/Plugins/Banshee.Plugins.LastFM/Plugin.cs:76
++msgid "Last.fm Radio"
++msgstr "Last.fm-radio"
++
++#: ../src/Plugins/Banshee.Plugins.LastFM/Plugin.cs:80
++msgid ""
++"Play music from Last.fm, the world's largest social music platform. Show off "
++"your taste, see what your friends are listening to, hear new music, get "
++"personal radio, recommendations, and downloads, all for free."
++msgstr ""
++"Afspil musik fra Last.fm, verdens største sociale musikplatform. Vis din "
++"smag, se hvad dine venner lytter til, lyt til nyt musik, få en personlig "
++"radio, anbefalinger og downloads, alt er gratis."
++
++#: ../src/Plugins/Banshee.Plugins.LastFM/Plugin.cs:108
++msgid "_Add Station"
++msgstr "Tilføj st_ation"
++
++#: ../src/Plugins/Banshee.Plugins.LastFM/Plugin.cs:113
++msgid "Connect"
++msgstr "Tilslut"
++
++#: ../src/Plugins/Banshee.Plugins.LastFM/Plugin.cs:118
++msgid "Sort Stations by"
++msgstr "Sortér stationer efter"
++
++#: ../src/Plugins/Banshee.Plugins.LastFM/Plugin.cs:123
++msgid "Love Track"
++msgstr "Elsker nummer"
++
++#: ../src/Plugins/Banshee.Plugins.LastFM/Plugin.cs:124
++msgid "Mark current track as loved"
++msgstr "Markér nuværende nummer som elsket"
++
++#: ../src/Plugins/Banshee.Plugins.LastFM/Plugin.cs:128
++msgid "Ban Track"
++msgstr "Forbyd nummer"
++
++#: ../src/Plugins/Banshee.Plugins.LastFM/Plugin.cs:129
++msgid "Mark current track as banned"
++msgstr "Markér nuværende nummer som forbudt"
++
++#: ../src/Plugins/Banshee.Plugins.LastFM/Plugin.cs:137
++msgid "Station Name"
++msgstr "Stationsnavn"
++
++#: ../src/Plugins/Banshee.Plugins.LastFM/Plugin.cs:142
++msgid "Total Play Count"
++msgstr "Afspilninger"
++
++#: ../src/Plugins/Banshee.Plugins.LastFM/Plugin.cs:147
++msgid "Station Type"
++msgstr "Stationstype"
++
++#: ../src/Plugins/Banshee.Plugins.LastFM/StationSource.cs:216
++#, csharp-format
++msgid "Tuning Last.fm to {0}."
++msgstr "Tuner Last.fm ind på {0}."
++
++#. Translators: {0} is an error message sentence from Connection.cs.
++#: ../src/Plugins/Banshee.Plugins.LastFM/StationSource.cs:226
++#, csharp-format
++msgid "Failed to tune in station. {0}"
++msgstr "Kunne ikke tune ind på station. {0}"
++
++#: ../src/Plugins/Banshee.Plugins.LastFM/StationSource.cs:306
++#, csharp-format
++msgid "Getting new songs for {0}."
++msgstr "Henter nye sange for {0}."
++
++#: ../src/Plugins/Banshee.Plugins.LastFM/StationSource.cs:313
++#, csharp-format
++msgid "No new songs available for {0}."
++msgstr "Ingen nye sange tilgængelige for {0}."
++
++#: ../src/Plugins/Banshee.Plugins.LastFM/StationSource.cs:336
++#, csharp-format
++msgid "Failed to get new songs for {0}."
++msgstr "Kunne ikke hente nye sange for {0}."
++
++#: ../src/Plugins/Banshee.Plugins.LastFM/StationSource.cs:432
++msgid "Delete Last.fm Station"
++msgstr "Slet Last.fm-station"
++
++#: ../src/Plugins/Banshee.Plugins.LastFM/StationSource.cs:437
++msgid "Last.fm Station"
++msgstr "Last.fm-station"
++
++#: ../src/Plugins/Banshee.Plugins.LastFM/StationSource.cs:442
++msgid "Edit Last.fm Station"
++msgstr "Redigér Last.fm-station"
++
++#: ../src/Plugins/Banshee.Plugins.LastFM/StationSource.cs:484
++#: ../src/Plugins/Banshee.Plugins.LastFM/StationType.cs:85
++msgid "Recommended"
++msgstr "Anbefalet"
++
++#: ../src/Plugins/Banshee.Plugins.LastFM/StationSource.cs:485
++#: ../src/Plugins/Banshee.Plugins.LastFM/StationType.cs:94
++msgid "Personal"
++msgstr "Personlig"
++
++#: ../src/Plugins/Banshee.Plugins.LastFM/StationSource.cs:486
++#: ../src/Plugins/Banshee.Plugins.LastFM/StationType.cs:103
++msgid "Loved"
++msgstr "Elsket"
++
++#: ../src/Plugins/Banshee.Plugins.LastFM/StationSource.cs:487
++#: ../src/Plugins/Banshee.Plugins.LastFM/StationType.cs:112
++msgid "Neighbors"
++msgstr "Naboer"
++
++#: ../src/Plugins/Banshee.Plugins.LastFM/StationType.cs:86
++#: ../src/Plugins/Banshee.Plugins.LastFM/StationType.cs:95
++msgid "For User:"
++msgstr "For bruger:"
++
++#: ../src/Plugins/Banshee.Plugins.LastFM/StationType.cs:104
++msgid "By User:"
++msgstr "Af bruger:"
++
++#: ../src/Plugins/Banshee.Plugins.LastFM/StationType.cs:113
++msgid "Of User:"
++msgstr "Af bruger:"
++
++#: ../src/Plugins/Banshee.Plugins.LastFM/StationType.cs:121
++msgid "Group"
++msgstr "Gruppe"
++
++#: ../src/Plugins/Banshee.Plugins.LastFM/StationType.cs:122
++msgid "Group Name:"
++msgstr "Gruppenavn:"
++
++#: ../src/Plugins/Banshee.Plugins.LastFM/StationType.cs:130
++msgid "Tag"
++msgstr "Mærke"
++
++#: ../src/Plugins/Banshee.Plugins.LastFM/StationType.cs:131
++msgid "Tag Name:"
++msgstr "Mærke:"
++
++#: ../src/Plugins/Banshee.Plugins.LastFM/StationType.cs:139
++msgid "Fan"
++msgstr "Fan"
++
++#: ../src/Plugins/Banshee.Plugins.LastFM/StationType.cs:140
++msgid "Fans of:"
++msgstr "Fans af:"
++
++#: ../src/Plugins/Banshee.Plugins.LastFM/StationType.cs:148
++msgid "Similar"
++msgstr "Lighed"
++
++#: ../src/Plugins/Banshee.Plugins.LastFM/StationType.cs:149
++msgid "Similar to:"
++msgstr "Lighed med:"
++
++#~ msgid "Advanced Audio Coding (AAC)"
++#~ msgstr "Advanced Audio Coding (AAC)"
++
++#~ msgid ""
++#~ "Proprietary and standardized format that is superior to MP3, but not as "
++#~ "popular."
++#~ msgstr ""
++#~ "Proprietær og standardiseret format som er MP3 overlegen, men ikke nær så "
++#~ "populær."
++
++#~ msgid ""
++#~ "WAV+PCM is a lossless format that holds uncompressed, raw pulse-code "
++#~ "modulated (PCM) audio."
++#~ msgstr ""
++#~ "WAV+PCM er et ikke-forringende format som indeholder ukomprimeret, rå "
++#~ "pulskodemoduleret (PCM) lyd."
++
++#~ msgid "Waveform PCM"
++#~ msgstr "Bølgeform PCM"
++
++#~ msgid "Could not initialize cdparanoia"
++#~ msgstr "Kunne ikke initialisere cdparanoia"
++
++#~ msgid "Exception: "
++#~ msgstr "Undtagelse: "
++
++#~ msgid "Not a valid M3U file."
++#~ msgstr "Ikke en gyldig M3U-fil."
++
++#~ msgid "Not a valid PLS file."
++#~ msgstr "Ikke en gyldig PLS-fil."
++
++#~ msgid "Week {0} of {1}"
++#~ msgstr "Uge {0} af {1}"
++
++#~ msgid "Flushing to Disk (may take time)"
++#~ msgstr "Opdaterer til disk (kan tage noget tid)"
++
++#~ msgid "Song Playing on Device"
++#~ msgstr "Sang afspilles på enhed"
++
++#~ msgid ""
++#~ "Before you can eject your device, you need to start playing a song that "
++#~ "is not on it. This is a known bug."
++#~ msgstr ""
++#~ "Før du kan skubbe din enhed ud, er du nødt til at afspille en sang der "
++#~ "ikke ligger på den. Dette er en kendt fejl."
++
++#~ msgid ": Found"
++#~ msgstr ": Fundet"
++
++#~ msgid "Reading library information"
++#~ msgstr "Læser biblioteksinformationer"
++
++#~ msgid "Loading device"
++#~ msgstr "Indlæser enhed"
++
++#~ msgid "Done"
++#~ msgstr "Færdig"
++
++#~ msgid ": Ready for use"
++#~ msgstr ": Klar til brug"
++
+ #~ msgid "Ratin_g"
+ #~ msgstr "Bedømmel_se"
+
More information about the Pkg-cli-apps-commits
mailing list