Vladimir Kolev avatar Vladimir Kolev committed 6968255

A bit commit including:
- Updated translations and error handling
- Stop/Resume downloads in Download manager
- Load downloadqueue on startup
etc.

Comments (0)

Files changed (10)

 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-11-01 12:13+0100\n"
+"POT-Creation-Date: 2011-11-16 10:53+0100\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
 "Spanish - Dami&#xE1;n Nohales"
 msgstr ""
 
-#: data/about_dialog.ui.h:8 lib/guihelpers.py:166 lib/guihelpers.py:215
+#: data/about_dialog.ui.h:8 lib/guihelpers.py:196 lib/guihelpers.py:245
 msgid "Check for update"
 msgstr ""
 
 msgid "Edit Preferences"
 msgstr ""
 
-#: data/main_window.ui.h:10 lib/tfuncs.py:366
+#: data/main_window.ui.h:10
+msgid "Love Song"
+msgstr ""
+
+#: data/main_window.ui.h:11
+msgid "Love song on Last.fm"
+msgstr ""
+
+#: data/main_window.ui.h:12 lib/tfuncs.py:392
 msgid "Lyrics"
 msgstr ""
 
-#: data/main_window.ui.h:11
+#: data/main_window.ui.h:13
 msgid "Menu"
 msgstr ""
 
-#: data/main_window.ui.h:12
+#: data/main_window.ui.h:14
 msgid "Next"
 msgstr ""
 
-#: data/main_window.ui.h:13
+#: data/main_window.ui.h:15
 msgid "Open saved playlist"
 msgstr ""
 
-#: data/main_window.ui.h:14
+#: data/main_window.ui.h:16
 msgid "Play/Stop"
 msgstr ""
 
-#: data/main_window.ui.h:15
+#: data/main_window.ui.h:17
 msgid "Previous"
 msgstr ""
 
-#: data/main_window.ui.h:16
+#: data/main_window.ui.h:18
 msgid "Quit the application"
 msgstr ""
 
-#: data/main_window.ui.h:17
+#: data/main_window.ui.h:19
 msgid "Remove selected from playlist"
 msgstr ""
 
-#: data/main_window.ui.h:18
+#: data/main_window.ui.h:20
 msgid "Resume"
 msgstr ""
 
-#: data/main_window.ui.h:19
+#: data/main_window.ui.h:21
 msgid "Save playlist"
 msgstr ""
 
-#: data/main_window.ui.h:20
+#: data/main_window.ui.h:22
 msgid "Search the grooveshark"
 msgstr ""
 
-#: data/main_window.ui.h:21
+#: data/main_window.ui.h:23
 msgid "Settings"
 msgstr ""
 
-#: data/main_window.ui.h:22
+#: data/main_window.ui.h:24
 msgid "Show About dialog"
 msgstr ""
 
-#: data/main_window.ui.h:23
+#: data/main_window.ui.h:25
 msgid "Show info about selected"
 msgstr ""
 
-#: data/main_window.ui.h:24
+#: data/main_window.ui.h:26
 msgid "Toggle repeat all"
 msgstr ""
 
-#: data/main_window.ui.h:25
+#: data/main_window.ui.h:27
 msgid "Toggle shuffle"
 msgstr ""
 
-#: data/main_window.ui.h:26
+#: data/main_window.ui.h:28
 msgid "gSharkDown"
 msgstr ""
 
 msgid "Username:"
 msgstr ""
 
-#: gsharkdown.py:310 gsharkdown.py:717
+#: gsharkdown.py:278
+msgid "Check your password and username for Last.fm"
+msgstr ""
+
+#: gsharkdown.py:322 gsharkdown.py:765
 msgid "<b>Title:</b> {title}\n"
 msgstr ""
 
-#: gsharkdown.py:311 gsharkdown.py:716
+#: gsharkdown.py:323 gsharkdown.py:764
 msgid "<b>Artist:</b> {artist}\n"
 msgstr ""
 
-#: gsharkdown.py:312 gsharkdown.py:721
+#: gsharkdown.py:324 gsharkdown.py:769
 msgid "<b>Album:</b> {album}\n"
 msgstr ""
 
-#: gsharkdown.py:313
+#: gsharkdown.py:325
 msgid "<b>Year:</b> {year}"
 msgstr ""
 
-#: gsharkdown.py:391
+#: gsharkdown.py:423
 msgid "Error saving the playlist"
 msgstr ""
 
-#: gsharkdown.py:400
+#: gsharkdown.py:438
+msgid "Error saving the download queue"
+msgstr ""
+
+#: gsharkdown.py:447
 msgid "Save playlist to file"
 msgstr ""
 
-#: gsharkdown.py:418
+#: gsharkdown.py:465
 msgid "Select Playlist to open"
 msgstr ""
 
-#: gsharkdown.py:424
+#: gsharkdown.py:471
 msgid "Playlist files"
 msgstr ""
 
-#: gsharkdown.py:452
+#: gsharkdown.py:499
 msgid "To update to the latest version "
 msgstr ""
 
-#: gsharkdown.py:453
+#: gsharkdown.py:500
 msgid ""
 "you can visit the <a href=\"http://https://bitbucket.org/vkolev/gsharkdown/"
 "downloads\"> "
 msgstr ""
 
-#: gsharkdown.py:454
+#: gsharkdown.py:501
 msgid "download site</a>. If you are using the latest version and want to be "
 msgstr ""
 
-#: gsharkdown.py:455
+#: gsharkdown.py:502
 msgid ""
 "informed about new versions, just enable the option in the <b>Preferences</"
 "b> dialog."
 msgstr ""
 
-#: gsharkdown.py:456
+#: gsharkdown.py:503
 #, python-format
 msgid "<b>New version <span fgcolor=\"red\"><i>%s</i></span> is available</b>"
 msgstr ""
 
-#: gsharkdown.py:457
+#: gsharkdown.py:504
 msgid "<b>You are using the latest version!</b>"
 msgstr ""
 
-#: gsharkdown.py:481
+#: gsharkdown.py:528
 msgid "Title"
 msgstr ""
 
-#: gsharkdown.py:487
+#: gsharkdown.py:534
 msgid "Artist"
 msgstr ""
 
-#: gsharkdown.py:492
+#: gsharkdown.py:539
 msgid "Album"
 msgstr ""
 
-#: gsharkdown.py:498 gsharkdown.py:513
+#: gsharkdown.py:545 gsharkdown.py:560
 msgid "SongID"
 msgstr ""
 
-#: gsharkdown.py:508
+#: gsharkdown.py:555
 msgid "File name"
 msgstr ""
 
-#: gsharkdown.py:518
+#: gsharkdown.py:565
 msgid "Download progress"
 msgstr ""
 
-#: gsharkdown.py:523
+#: gsharkdown.py:570
 msgid "Size"
 msgstr ""
 
-#: gsharkdown.py:535
+#: gsharkdown.py:582
 msgid "Are you sure to quit?"
 msgstr ""
 
-#: gsharkdown.py:536
+#: gsharkdown.py:583
 msgid "Quit?"
 msgstr ""
 
-#: gsharkdown.py:713
+#: gsharkdown.py:761
 msgid "Song Information - {songid}"
 msgstr ""
 
-#: gsharkdown.py:714
+#: gsharkdown.py:762
 msgid "<b>Filename:</b> {artist} - {title}.mp3\n"
 msgstr ""
 
-#: gsharkdown.py:719
+#: gsharkdown.py:767
 msgid "<b>Duration:</b> {mins}:{secs} min\n"
 msgstr ""
 
-#: gsharkdown.py:722
+#: gsharkdown.py:770
 msgid "<b>Year:</b> {year}\n"
 msgstr ""
 
-#: gsharkdown.py:913
+#: gsharkdown.py:801
+msgid ""
+"There should be a playing song to view\n"
+"the lyrics for it"
+msgstr ""
+
+#: gsharkdown.py:907
+msgid "Please check your username and password for Last.fm"
+msgstr ""
+
+#: gsharkdown.py:974
 msgid "<b>Playing:</b> {artist} - {title}"
 msgstr ""
 
-#: gsharkdown.py:917
+#: gsharkdown.py:978
 msgid "Now playing"
 msgstr ""
 
-#: gsharkdown.py:940
+#: gsharkdown.py:1002
 msgid "Overwrite downloaded file?"
 msgstr ""
 
-#: gsharkdown.py:943
+#: gsharkdown.py:1005
 msgid "Cancel download"
 msgstr ""
 
-#: gsharkdown.py:944
+#: gsharkdown.py:1006
 msgid "Download and overwrite"
 msgstr ""
 
-#: gsharkdown.py:945
+#: gsharkdown.py:1007
 msgid "Download renamed"
 msgstr ""
 
-#: gsharkdown.py:947
+#: gsharkdown.py:1009
 #, python-format
 msgid ""
 "The file '%s' already exists, maybe you are downloading a file that you "
 "What do you want to do?"
 msgstr ""
 
-#: gsharkdown.py:1004
+#: gsharkdown.py:1066
 #, python-format
 msgid "Downloading %d file"
 msgid_plural "Downloading %d files"
 msgstr[0] ""
 msgstr[1] ""
 
-#: lib/guihelpers.py:149
+#: gsharkdown.py:1171
+msgid ""
+"There is no song to be loved.\n"
+" A song should be playing"
+msgstr ""
+
+#: lib/guihelpers.py:179
 msgid "Hide gSharkDown"
 msgstr ""
 
-#: lib/guihelpers.py:192
+#: lib/guihelpers.py:222
 msgid "gSharkDown :: Player and Downloader"
 msgstr ""
 
-#: lib/tfuncs.py:87
+#: lib/tfuncs.py:95
 #, python-format
 msgid "Failed to create '%s' for writing."
 msgstr ""
 
-#: lib/tfuncs.py:337
+#: lib/tfuncs.py:363
 msgid "New version"
 msgstr ""
 
-#: lib/tfuncs.py:342
+#: lib/tfuncs.py:368
 msgid "Latest version"
 msgstr ""
 
-#: lib/tfuncs.py:363
+#: lib/tfuncs.py:389
 msgid "Loading lyrics..."
 msgstr ""
     # track.
     scrobbled = 0
     # Download dictionary in form Filename : Thread
-    downqueue = {}
+    downqueue = []
 
     last_iter = None
 
         else:
             print "Playlist not found"
 
+        if os.path.exists("%s/.gsharkdown/downqueue.pkl" % os.environ.get("HOME")):
+            self.load_downqueue_list("%s/.gsharkdown/downqueue.pkl" % os.environ.get("HOME"))
+
         if int(CONFIG['show_notification']) == 1 and HAVE_NOTIFY:
             pynotify.init("gSharkDown")
 
         for i in range(0, len(playitems)):
             self.add_song_to_playlist(playitems[i])
 
+    def load_downqueue_list(self, path):
+        """
+        Loads the saved playlist from the .pkl file
+        """
+        file = open(path, 'rb')
+        eoferror = True
+        downitems = []
+
+        while eoferror:
+            try:
+                downitems.append(pickle.load(file))
+            except:
+                eoferror = False
+
+        for i in range(0, len(downitems)):
+            tDownload = DownloadThread(self,
+                                       downitems[i]['song'],
+                                       downitems[i]['filename'])
+            tDownload.start()
+
     def save_playlist(self, path):
         """
         Saves the playlist from the playlist treeview to 
                             _("Error saving the playlist"))
             error.show_all()
 
+    def save_downwueue(self, path):
+        """
+        Saves the download queue to pickle file in
+        /home/$USER/.gsharkdown/downqueue.pkl
+        """
+        try:
+            output = open(path, 'w')
+            for i in range(0, len(self.downqueue)):
+                pickle.dump(self.downqueue[i], output, -1)
+            output.close()
+        except:
+            error = lib.guihelpers.ErrorMessage(None,
+                            _("Error saving the download queue"))
+            error.show_all()
+
 
     def save_as_playlist(self, widget, data = None):
         """
 
         if response == gtk.RESPONSE_YES:
             self.save_playlist("%s/.gsharkdown/playlist.pkl" % os.environ.get("HOME"))
-            self.cancel_all_downloads()
+            self.save_downwueue("%s/.gsharkdown/downqueue.pkl" % os.environ.get("HOME"))
+            self.stop_all_downloads()
             gtk.main_quit()
 
     def copy_song(self, widget, data = None):
             iter = self.downloads.iter_next(iter)
             self.cancel_download(path)
 
+    def stop_all_downloads(self):
+        """
+        Stop all downloads used, when quitting.
+        Sets the option to stop for the thread
+        """
+        for i in range(0, len(self.downqueue)):
+            path = self.downloads.get_path(self.downqueue[i]['iter'])
+            self.cancel_download(path, 'stop')
+
     def on_cancel_download(self, menu, data = None):
         """
         Cancel the download. Have to check how to cancel the thread.
         load the download list in order to resume.
         Resume stopped download
         """
-        pass
+        select = self.downloads_view.get_selection().get_selected_rows()
+        for path in select[1]:
+            for i in range(0, len(self.downqueue)):
+                if path == self.downloads.get_path(self.downqueue[i]['iter']):
+                    tDownload = DownloadThread(self,
+                                               self.downqueue[i]['song'],
+                                               self.downqueue[i]['filename'],
+                                               0, i)
+                    tDownload.start()
+
+        #tDownload = DownloadThread(self, self.downqueue[], filename)
+        #tDownload.start()
 
     def get_stream_url(self):
         """
 
 class DownloadThread(threading.Thread):
 
-    def __init__(self, _window, _song, _filename, _speed = 0):
+    def __init__(self, _window, _song, _filename, _speed = 0, _continue = None):
         """
         _window: The main window object
         _song: The song to download
 
         self.win = _window
 
+        self.speed = _speed
+        self.option = None
+        self.cont = _continue
+
         self.filename = _filename
+
         try:
-            self.file = open(self.filename, "w")
+            if self.cont == None:
+                self.file = open(self.filename, "w")
+            else:
+                self.file = open(self.filename, "ab")
         except IOError:
             error = guihelpers.ErrorMessage(None,
                 _("Failed to create '%s' for writing.") % self.filename)
 
         self.song = _song
         self.songid = _song["SongID"]
-        self.speed = _speed
         self._stop = threading.Event()
 
-        self.iter = self.win.downloads.append([unicode(os.path.basename(self.filename), errors = 'replace'),
+        if self.cont == None:
+            self.iter = self.win.downloads.append([unicode(os.path.basename(self.filename), errors = 'replace'),
                                                self.songid, 0, "", self])
+            self.win.downqueue.append({'iter': self.iter, 'song': self.song, 'filename': self.filename})
+        else:
+            self.iter = self.win.downqueue[self.cont]['iter']
+
         self.win.update_downloads_count()
 
     def run(self):
             c.setopt(pycurl.NOPROGRESS, 0)
             c.setopt(pycurl.PROGRESSFUNCTION, self.hook)
             c.setopt(pycurl.FAILONERROR, True)
-            c.setopt(pycurl.FILE, self.file)
+            if self.cont == None:
+                c.setopt(pycurl.FILE, self.file)
+            else:
+                c.setopt(pycurl.RESUME_FROM, os.path.getsize(self.filename))
+                c.setopt(pycurl.WRITEDATA, self.file)
             c.setopt(pycurl.POST, True)
             c.setopt(pycurl.NOSIGNAL, True)
             if self.speed != 0:
             c.perform()
             self.file.close()
         except pycurl.error, e:
-            self.file.close()
-            os.remove(self.filename)
-            print e.args
+            if e[0] == 42 and self.option == "stop":
+                self.file.close()
+            else:
+                self.file.close()
+                os.remove(self.filename)
         except Exception, e:
+            print "Exception ", e
             self.file.close()
             os.remove(self.filename)
             print e.args
         finally:
             #self._remove_download()
-            gobject.idle_add(self._remove_download)
+            if self.option == "stop":
+                pass
+            else:
+                gobject.idle_add(self._remove_download)
 
-    def stop(self):
+    def stop(self, option = 'cancel'):
         # TODO: This one should be checked how to resolve, at the moment
         # stopping the thread terminates the program
+        self.option = option
         self._stop.set()
 
     def stopped(self):
 
     def _remove_download(self):
         self.win.downloads.remove(self.iter)
+        for i in range(len(self.win.downqueue)):
+            if self.iter == self.win.downqueue[i]['iter']:
+                self.win.downqueue.pop(i)
         self.iter = None
         self.win.update_downloads_count()
 
Add a comment to this file

locale/bg_BG/LC_MESSAGES/gsharkdown.mo

Binary file modified.

locale/bg_BG/LC_MESSAGES/gsharkdown.po

 msgstr ""
 "Project-Id-Version: gsharkdown\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-11-01 11:51+0100\n"
-"PO-Revision-Date: 2011-11-01 11:52+0100\n"
+"POT-Creation-Date: 2011-11-16 10:53+0100\n"
+"PO-Revision-Date: 2011-11-16 10:55+0100\n"
 "Last-Translator: Vladimir Kolev <vladimir.r.kolev@gmail.com>\n"
 "Language-Team: Bulgarian\n"
 "MIME-Version: 1.0\n"
 "Spanish - Damián Nohales"
 
 #: data/about_dialog.ui.h:8
-#: lib/guihelpers.py:166
-#: lib/guihelpers.py:215
+#: lib/guihelpers.py:196
+#: lib/guihelpers.py:245
 msgid "Check for update"
 msgstr "Провери за нова версия"
 
 msgstr "Редактирай настройки"
 
 #: data/main_window.ui.h:10
-#: lib/tfuncs.py:366
+msgid "Love Song"
+msgstr "Харесай песен"
+
+#: data/main_window.ui.h:11
+msgid "Love song on Last.fm"
+msgstr "Добавя песен в любими в Last.fm"
+
+#: data/main_window.ui.h:12
+#: lib/tfuncs.py:392
 msgid "Lyrics"
 msgstr "Текст"
 
-#: data/main_window.ui.h:11
+#: data/main_window.ui.h:13
 msgid "Menu"
 msgstr "Меню"
 
-#: data/main_window.ui.h:12
+#: data/main_window.ui.h:14
 msgid "Next"
 msgstr "Следваща"
 
-#: data/main_window.ui.h:13
+#: data/main_window.ui.h:15
 msgid "Open saved playlist"
 msgstr "Отвори запазен списък за изпълнение"
 
-#: data/main_window.ui.h:14
+#: data/main_window.ui.h:16
 msgid "Play/Stop"
 msgstr "Пускане/Спиране"
 
-#: data/main_window.ui.h:15
+#: data/main_window.ui.h:17
 msgid "Previous"
 msgstr "Предишна"
 
-#: data/main_window.ui.h:16
+#: data/main_window.ui.h:18
 msgid "Quit the application"
 msgstr "Излез от приложението"
 
-#: data/main_window.ui.h:17
+#: data/main_window.ui.h:19
 msgid "Remove selected from playlist"
 msgstr "Премахни избраните от списъка за изпълнение"
 
-#: data/main_window.ui.h:18
+#: data/main_window.ui.h:20
 msgid "Resume"
 msgstr "Поднови"
 
-#: data/main_window.ui.h:19
+#: data/main_window.ui.h:21
 msgid "Save playlist"
 msgstr "Запиши списъка за изпълнение"
 
-#: data/main_window.ui.h:20
+#: data/main_window.ui.h:22
 msgid "Search the grooveshark"
 msgstr "Търси в grooveshark"
 
-#: data/main_window.ui.h:21
+#: data/main_window.ui.h:23
 msgid "Settings"
 msgstr "Настройки"
 
-#: data/main_window.ui.h:22
+#: data/main_window.ui.h:24
 msgid "Show About dialog"
 msgstr "Покажи диалог относно приложението"
 
-#: data/main_window.ui.h:23
+#: data/main_window.ui.h:25
 msgid "Show info about selected"
 msgstr "Покажи информация за избрана песен"
 
-#: data/main_window.ui.h:24
+#: data/main_window.ui.h:26
 msgid "Toggle repeat all"
 msgstr "Повтаряй всички"
 
-#: data/main_window.ui.h:25
+#: data/main_window.ui.h:27
 msgid "Toggle shuffle"
 msgstr "Разбъркано просвирване"
 
-#: data/main_window.ui.h:26
+#: data/main_window.ui.h:28
 msgid "gSharkDown"
 msgstr "gSharkDown"
 
 msgid "Username:"
 msgstr "Потребител:"
 
-#: gsharkdown.py:310
-#: gsharkdown.py:717
+#: gsharkdown.py:278
+msgid "Check your password and username for Last.fm"
+msgstr "Проверете името и паролата си за Last.fm"
+
+#: gsharkdown.py:322
+#: gsharkdown.py:765
 msgid "<b>Title:</b> {title}\n"
 msgstr "<b>Заглавие:</b> {title}\n"
 
-#: gsharkdown.py:311
-#: gsharkdown.py:716
+#: gsharkdown.py:323
+#: gsharkdown.py:764
 msgid "<b>Artist:</b> {artist}\n"
 msgstr "<b>Изпълнител:</b> {artist}\n"
 
-#: gsharkdown.py:312
-#: gsharkdown.py:721
+#: gsharkdown.py:324
+#: gsharkdown.py:769
 msgid "<b>Album:</b> {album}\n"
 msgstr "<b>Албум:</b> {album}\n"
 
-#: gsharkdown.py:313
+#: gsharkdown.py:325
 msgid "<b>Year:</b> {year}"
 msgstr "<b>Година:</b> {year}"
 
-#: gsharkdown.py:391
+#: gsharkdown.py:423
 msgid "Error saving the playlist"
 msgstr "Грешка при записването на списъка с песни"
 
-#: gsharkdown.py:400
+#: gsharkdown.py:438
+msgid "Error saving the download queue"
+msgstr "Грешка при записването на списъкза за изтегляне"
+
+#: gsharkdown.py:447
 msgid "Save playlist to file"
 msgstr "Запиши списъка с песни във файл"
 
-#: gsharkdown.py:418
+#: gsharkdown.py:465
 msgid "Select Playlist to open"
 msgstr "Изберете списък с песни"
 
-#: gsharkdown.py:424
+#: gsharkdown.py:471
 msgid "Playlist files"
 msgstr "Списъци с песни"
 
-#: gsharkdown.py:452
+#: gsharkdown.py:499
 msgid "To update to the latest version "
 msgstr "За да обновите до последната версия"
 
-#: gsharkdown.py:453
+#: gsharkdown.py:500
 msgid "you can visit the <a href=\"http://https://bitbucket.org/vkolev/gsharkdown/downloads\"> "
 msgstr "можете да посетите <a href=\"http://https://bitbucket.org/vkolev/gsharkdown/downloads\"> "
 
-#: gsharkdown.py:454
+#: gsharkdown.py:501
 msgid "download site</a>. If you are using the latest version and want to be "
 msgstr "сайта за изтегляне</a>. Ако използвате послдната версия и искате да сте"
 
-#: gsharkdown.py:455
+#: gsharkdown.py:502
 msgid "informed about new versions, just enable the option in the <b>Preferences</b> dialog."
 msgstr "информирани за нови версии, просто разрешете опцията в диалога <b>Настройки</b>."
 
-#: gsharkdown.py:456
+#: gsharkdown.py:503
 #, python-format
 msgid "<b>New version <span fgcolor=\"red\"><i>%s</i></span> is available</b>"
 msgstr "<b>Достъпна е нова версия<span fgcolor=\"red\"><i>%s</i></span></b>"
 
-#: gsharkdown.py:457
+#: gsharkdown.py:504
 msgid "<b>You are using the latest version!</b>"
 msgstr "<b>Вие използвате последната версия!</b>"
 
-#: gsharkdown.py:481
+#: gsharkdown.py:528
 msgid "Title"
 msgstr "Заглавие"
 
-#: gsharkdown.py:487
+#: gsharkdown.py:534
 msgid "Artist"
 msgstr "Изпълнител"
 
-#: gsharkdown.py:492
+#: gsharkdown.py:539
 msgid "Album"
 msgstr "Албум"
 
-#: gsharkdown.py:498
-#: gsharkdown.py:513
+#: gsharkdown.py:545
+#: gsharkdown.py:560
 msgid "SongID"
 msgstr "SongID"
 
-#: gsharkdown.py:508
+#: gsharkdown.py:555
 msgid "File name"
 msgstr "Файл"
 
-#: gsharkdown.py:518
+#: gsharkdown.py:565
 msgid "Download progress"
 msgstr "Прогрес на изтегляне"
 
-#: gsharkdown.py:523
+#: gsharkdown.py:570
 msgid "Size"
 msgstr "Размер"
 
-#: gsharkdown.py:535
+#: gsharkdown.py:582
 msgid "Are you sure to quit?"
 msgstr "Наистина изключване на програмата?"
 
-#: gsharkdown.py:536
+#: gsharkdown.py:583
 msgid "Quit?"
 msgstr "Изход?"
 
-#: gsharkdown.py:713
+#: gsharkdown.py:761
 msgid "Song Information - {songid}"
 msgstr "Информация за песента - {songid}"
 
-#: gsharkdown.py:714
+#: gsharkdown.py:762
 msgid "<b>Filename:</b> {artist} - {title}.mp3\n"
 msgstr "<b>Име на файла:</b> {artist} - {title}.mp3\n"
 
-#: gsharkdown.py:719
+#: gsharkdown.py:767
 msgid "<b>Duration:</b> {mins}:{secs} min\n"
 msgstr "<b>Времетраене:</b> {mins}:{secs} min\n"
 
-#: gsharkdown.py:722
+#: gsharkdown.py:770
 msgid "<b>Year:</b> {year}\n"
 msgstr "<b>Година:</b> {year}\n"
 
-#: gsharkdown.py:913
+#: gsharkdown.py:801
+msgid ""
+"There should be a playing song to view\n"
+"the lyrics for it"
+msgstr ""
+"Трябва да има свиреща песен, за да видите\n"
+"тескта за нея"
+
+#: gsharkdown.py:907
+msgid "Please check your username and password for Last.fm"
+msgstr "Моля проверете вашите потребителско име и парола за Last.fm"
+
+#: gsharkdown.py:974
 msgid "<b>Playing:</b> {artist} - {title}"
 msgstr "<b>Свири:</b> {artist} - {title}"
 
-#: gsharkdown.py:917
+#: gsharkdown.py:978
 msgid "Now playing"
 msgstr "В момента свири"
 
-#: gsharkdown.py:940
+#: gsharkdown.py:1002
 msgid "Overwrite downloaded file?"
 msgstr "Презаписване на изтегления файл?"
 
-#: gsharkdown.py:943
+#: gsharkdown.py:1005
 msgid "Cancel download"
 msgstr "Откажи изтегляне"
 
-#: gsharkdown.py:944
+#: gsharkdown.py:1006
 msgid "Download and overwrite"
 msgstr "Изтегли и презапиши"
 
-#: gsharkdown.py:945
+#: gsharkdown.py:1007
 msgid "Download renamed"
 msgstr "Изтегли преименуван"
 
-#: gsharkdown.py:947
+#: gsharkdown.py:1009
 #, python-format
 msgid ""
 "The file '%s' already exists, maybe you are downloading a file that you downloaded before.\n"
 "\n"
 "Какво искате да направите?"
 
-#: gsharkdown.py:1004
+#: gsharkdown.py:1066
 #, python-format
 msgid "Downloading %d file"
 msgid_plural "Downloading %d files"
 msgstr[0] "Изтегляне: %d файл"
 msgstr[1] "Изтегляне: %d файла"
 
-#: lib/guihelpers.py:149
+#: gsharkdown.py:1171
+msgid ""
+"There is no song to be loved.\n"
+" A song should be playing"
+msgstr ""
+"Няма песен, която да бъде харесана.\n"
+" Песента трябва да свири"
+
+#: lib/guihelpers.py:179
 msgid "Hide gSharkDown"
 msgstr "Скрий gSharkDown"
 
-#: lib/guihelpers.py:192
+#: lib/guihelpers.py:222
 msgid "gSharkDown :: Player and Downloader"
 msgstr "gSharkDown :: Player and Downloader"
 
-#: lib/tfuncs.py:87
+#: lib/tfuncs.py:95
 #, python-format
 msgid "Failed to create '%s' for writing."
 msgstr "Неуспех при създаване на '%s' за записване."
 
-#: lib/tfuncs.py:337
+#: lib/tfuncs.py:363
 msgid "New version"
 msgstr "Нова версия"
 
-#: lib/tfuncs.py:342
+#: lib/tfuncs.py:368
 msgid "Latest version"
 msgstr "Последна версия"
 
-#: lib/tfuncs.py:363
+#: lib/tfuncs.py:389
 msgid "Loading lyrics..."
 msgstr "Зареждане на текста..."
 
Add a comment to this file

locale/de_DE/LC_MESSAGES/gsharkdown.mo

Binary file modified.

locale/de_DE/LC_MESSAGES/gsharkdown.po

 msgstr ""
 "Project-Id-Version: gsharkdown\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-11-01 11:51+0100\n"
-"PO-Revision-Date: 2011-11-01 11:52+0100\n"
+"POT-Creation-Date: 2011-11-16 10:53+0100\n"
+"PO-Revision-Date: 2011-11-16 10:58+0100\n"
 "Last-Translator: Vladimir Kolev <vladimir.r.kolev@gmail.com>\n"
 "Language-Team: German <de@li.org>\n"
 "MIME-Version: 1.0\n"
 "Spanish - Damián Nohales"
 
 #: data/about_dialog.ui.h:8
-#: lib/guihelpers.py:166
-#: lib/guihelpers.py:215
+#: lib/guihelpers.py:196
+#: lib/guihelpers.py:245
 msgid "Check for update"
 msgstr "Nach Updates suchen"
 
 msgstr "Einstelliungen bearbeiten"
 
 #: data/main_window.ui.h:10
-#: lib/tfuncs.py:366
+msgid "Love Song"
+msgstr "Liebe Lied"
+
+#: data/main_window.ui.h:11
+msgid "Love song on Last.fm"
+msgstr "Lied in Lieblingslieder in Last.fm"
+
+#: data/main_window.ui.h:12
+#: lib/tfuncs.py:392
 msgid "Lyrics"
 msgstr "Songtext"
 
-#: data/main_window.ui.h:11
+#: data/main_window.ui.h:13
 msgid "Menu"
 msgstr "Menü"
 
-#: data/main_window.ui.h:12
+#: data/main_window.ui.h:14
 msgid "Next"
 msgstr "Nächster Titel"
 
-#: data/main_window.ui.h:13
+#: data/main_window.ui.h:15
 msgid "Open saved playlist"
 msgstr "Gespeicherte Wiedergabeliste öffnen"
 
-#: data/main_window.ui.h:14
+#: data/main_window.ui.h:16
 msgid "Play/Stop"
 msgstr "Abspielen/Anhalten"
 
-#: data/main_window.ui.h:15
+#: data/main_window.ui.h:17
 msgid "Previous"
 msgstr "Vorheriger Titel"
 
-#: data/main_window.ui.h:16
+#: data/main_window.ui.h:18
 msgid "Quit the application"
 msgstr "Applikation beenden"
 
-#: data/main_window.ui.h:17
+#: data/main_window.ui.h:19
 msgid "Remove selected from playlist"
 msgstr "Ausgewählte von der Wiedergabeliste löschen"
 
-#: data/main_window.ui.h:18
+#: data/main_window.ui.h:20
 msgid "Resume"
 msgstr "Wieder aufnehmen"
 
-#: data/main_window.ui.h:19
+#: data/main_window.ui.h:21
 msgid "Save playlist"
 msgstr "Wiedergabeliste speichern"
 
-#: data/main_window.ui.h:20
+#: data/main_window.ui.h:22
 msgid "Search the grooveshark"
 msgstr "Suche in grooveshark"
 
-#: data/main_window.ui.h:21
+#: data/main_window.ui.h:23
 msgid "Settings"
 msgstr "Einstellungen"
 
-#: data/main_window.ui.h:22
+#: data/main_window.ui.h:24
 msgid "Show About dialog"
 msgstr "About-Dialog ansehen"
 
-#: data/main_window.ui.h:23
+#: data/main_window.ui.h:25
 msgid "Show info about selected"
 msgstr "Informationdialog über das Ausgewählte zeigen"
 
-#: data/main_window.ui.h:24
+#: data/main_window.ui.h:26
 msgid "Toggle repeat all"
 msgstr "Umschalten Alle wiederholen"
 
-#: data/main_window.ui.h:25
+#: data/main_window.ui.h:27
 msgid "Toggle shuffle"
 msgstr "Umschalten Shuffle"
 
-#: data/main_window.ui.h:26
+#: data/main_window.ui.h:28
 msgid "gSharkDown"
 msgstr "gSharkDown"
 
 msgid "Username:"
 msgstr "Benutzername:"
 
-#: gsharkdown.py:310
-#: gsharkdown.py:717
+#: gsharkdown.py:278
+msgid "Check your password and username for Last.fm"
+msgstr "Prüfen Sie Ihren Passwort und Benutzername für Last.fm"
+
+#: gsharkdown.py:322
+#: gsharkdown.py:765
 msgid "<b>Title:</b> {title}\n"
 msgstr "<b>Titel:</b> {title}\n"
 
-#: gsharkdown.py:311
-#: gsharkdown.py:716
+#: gsharkdown.py:323
+#: gsharkdown.py:764
 msgid "<b>Artist:</b> {artist}\n"
 msgstr "<b>Künstler:</b> {artist}\n"
 
-#: gsharkdown.py:312
-#: gsharkdown.py:721
+#: gsharkdown.py:324
+#: gsharkdown.py:769
 msgid "<b>Album:</b> {album}\n"
 msgstr "<b>Album:</b> {album}\n"
 
-#: gsharkdown.py:313
+#: gsharkdown.py:325
 msgid "<b>Year:</b> {year}"
 msgstr "<b>Jahr:</b> {year}"
 
-#: gsharkdown.py:391
+#: gsharkdown.py:423
 msgid "Error saving the playlist"
 msgstr "Fehler beim Speicher der Wiedergabeliste"
 
-#: gsharkdown.py:400
+#: gsharkdown.py:438
+msgid "Error saving the download queue"
+msgstr "Fehler beim Speicher der Herunterladeliste"
+
+#: gsharkdown.py:447
 msgid "Save playlist to file"
 msgstr "Wiedergabeliste in Datei speichern"
 
-#: gsharkdown.py:418
+#: gsharkdown.py:465
 msgid "Select Playlist to open"
 msgstr "Wiedergabeliste auswählen"
 
-#: gsharkdown.py:424
+#: gsharkdown.py:471
 msgid "Playlist files"
 msgstr "Wiedergabeliste-Dateien"
 
-#: gsharkdown.py:452
+#: gsharkdown.py:499
 msgid "To update to the latest version "
 msgstr "Um auf die neueste Version zu upgraden"
 
-#: gsharkdown.py:453
+#: gsharkdown.py:500
 msgid "you can visit the <a href=\"http://https://bitbucket.org/vkolev/gsharkdown/downloads\"> "
 msgstr "Sie können die <a href=\"http://https://bitbucket.org/vkolev/gsharkdown/downloads\"> "
 
-#: gsharkdown.py:454
+#: gsharkdown.py:501
 msgid "download site</a>. If you are using the latest version and want to be "
 msgstr "Download seite</a> besuchen. Sollten Sie die neueste Version verwenden und möchten"
 
-#: gsharkdown.py:455
+#: gsharkdown.py:502
 msgid "informed about new versions, just enable the option in the <b>Preferences</b> dialog."
 msgstr "informiert werden über neue Versionen, dann können Sie das in den <b>Einstellungen</b> dialog erlauben."
 
-#: gsharkdown.py:456
+#: gsharkdown.py:503
 #, python-format
 msgid "<b>New version <span fgcolor=\"red\"><i>%s</i></span> is available</b>"
 msgstr "<b>Neue Version <span fgcolor=\"red\"><i>%s</i></span> ist verfügbar</b>"
 
-#: gsharkdown.py:457
+#: gsharkdown.py:504
 msgid "<b>You are using the latest version!</b>"
 msgstr "<b>Sie benutzen die neueste Version!</b>"
 
-#: gsharkdown.py:481
+#: gsharkdown.py:528
 msgid "Title"
 msgstr "Titel"
 
-#: gsharkdown.py:487
+#: gsharkdown.py:534
 msgid "Artist"
 msgstr "Künstler"
 
-#: gsharkdown.py:492
+#: gsharkdown.py:539
 msgid "Album"
 msgstr "Album"
 
-#: gsharkdown.py:498
-#: gsharkdown.py:513
+#: gsharkdown.py:545
+#: gsharkdown.py:560
 msgid "SongID"
 msgstr "SongID"
 
-#: gsharkdown.py:508
+#: gsharkdown.py:555
 msgid "File name"
 msgstr "Datei"
 
-#: gsharkdown.py:518
+#: gsharkdown.py:565
 msgid "Download progress"
 msgstr "Heruntergeladen"
 
-#: gsharkdown.py:523
+#: gsharkdown.py:570
 msgid "Size"
 msgstr "Größe"
 
-#: gsharkdown.py:535
+#: gsharkdown.py:582
 msgid "Are you sure to quit?"
 msgstr "Sind Sie Sicher zu beenden?"
 
-#: gsharkdown.py:536
+#: gsharkdown.py:583
 msgid "Quit?"
 msgstr "Beenden?"
 
-#: gsharkdown.py:713
+#: gsharkdown.py:761
 msgid "Song Information - {songid}"
 msgstr "Lied Information - {songid}"
 
-#: gsharkdown.py:714
+#: gsharkdown.py:762
 msgid "<b>Filename:</b> {artist} - {title}.mp3\n"
 msgstr "<b>Dateiname:</b> {artist} - {title}.mp3\n"
 
-#: gsharkdown.py:719
+#: gsharkdown.py:767
 msgid "<b>Duration:</b> {mins}:{secs} min\n"
 msgstr "<b>Länge:</b> {mins}:{secs} min\n"
 
-#: gsharkdown.py:722
+#: gsharkdown.py:770
 msgid "<b>Year:</b> {year}\n"
 msgstr "<b>Jahr:</b> {year}\n"
 
-#: gsharkdown.py:913
+#: gsharkdown.py:801
+msgid ""
+"There should be a playing song to view\n"
+"the lyrics for it"
+msgstr ""
+"Es muss ein Lied abgespielt werden, um\n"
+"desen Text zu sehen."
+
+#: gsharkdown.py:907
+msgid "Please check your username and password for Last.fm"
+msgstr "Bitte prüfen Sie ihren Benutzername und Passwort für Last.fm"
+
+#: gsharkdown.py:974
 msgid "<b>Playing:</b> {artist} - {title}"
 msgstr "<b>Abspielen:</b> {artist} - {title}"
 
-#: gsharkdown.py:917
+#: gsharkdown.py:978
 msgid "Now playing"
 msgstr "Wiedergabe von"
 
-#: gsharkdown.py:940
+#: gsharkdown.py:1002
 msgid "Overwrite downloaded file?"
 msgstr "Überschreibe die herunterladende Datei?"
 
-#: gsharkdown.py:943
+#: gsharkdown.py:1005
 msgid "Cancel download"
 msgstr "Herunterladen abbrechen"
 
-#: gsharkdown.py:944
+#: gsharkdown.py:1006
 msgid "Download and overwrite"
 msgstr "Herunterladen und Überschreiben"
 
-#: gsharkdown.py:945
+#: gsharkdown.py:1007
 msgid "Download renamed"
 msgstr "Herunterlade mit andere name"
 
-#: gsharkdown.py:947
+#: gsharkdown.py:1009
 #, python-format
 msgid ""
 "The file '%s' already exists, maybe you are downloading a file that you downloaded before.\n"
 "\n"
 "Was würden Sie tun?"
 
-#: gsharkdown.py:1004
+#: gsharkdown.py:1066
 #, python-format
 msgid "Downloading %d file"
 msgid_plural "Downloading %d files"
 msgstr[0] "Herunterlade %d Datei"
 msgstr[1] "Herunterlade %d Dateien"
 
-#: lib/guihelpers.py:149
+#: gsharkdown.py:1171
+msgid ""
+"There is no song to be loved.\n"
+" A song should be playing"
+msgstr ""
+"Da ist kein Lieb zu lieben.\n"
+" Das lied muss erst abgespielt werden."
+
+#: lib/guihelpers.py:179
 msgid "Hide gSharkDown"
 msgstr "Verstecke gSharkDown"
 
-#: lib/guihelpers.py:192
+#: lib/guihelpers.py:222
 msgid "gSharkDown :: Player and Downloader"
 msgstr "gSharkDown :: Player and Downloader"
 
-#: lib/tfuncs.py:87
+#: lib/tfuncs.py:95
 #, python-format
 msgid "Failed to create '%s' for writing."
 msgstr "Fehler beim erstellen von '%s' zum schreiben."
 
-#: lib/tfuncs.py:337
+#: lib/tfuncs.py:363
 msgid "New version"
 msgstr "Neue Version"
 
-#: lib/tfuncs.py:342
+#: lib/tfuncs.py:368
 msgid "Latest version"
 msgstr "Neueste Version"
 
-#: lib/tfuncs.py:363
+#: lib/tfuncs.py:389
 msgid "Loading lyrics..."
 msgstr "Lade Songtext"
 

locale/es/LC_MESSAGES/gsharkdown.po

 msgstr ""
 "Project-Id-Version: gsharkdown\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-11-01 11:51+0100\n"
+"POT-Creation-Date: 2011-11-16 10:53+0100\n"
 "PO-Revision-Date: 2011-11-01 11:53+0100\n"
 "Last-Translator: Vladimir Kolev <vladimir.r.kolev@gmail.com>\n"
 "Language-Team: Damián Nohales <LL@li.org>\n"
 msgstr "(c) Vladimir Kolev 2011"
 
 #: data/about_dialog.ui.h:2
-msgid "<b>Downloading mp3s is illegal in some countries! Please check the law in your country.</b>"
-msgstr "<b>¡La descarga de mp3s es ilegal en algunos países! Revise las leyes de su país.</b>"
+msgid ""
+"<b>Downloading mp3s is illegal in some countries! Please check the law in "
+"your country.</b>"
+msgstr ""
+"<b>¡La descarga de mp3s es ilegal en algunos países! Revise las leyes de su "
+"país.</b>"
 
 #: data/about_dialog.ui.h:3
 msgid "About GrooveDown"
 "Italiano -  Andrea Sciucca\n"
 "Español - Damián Nohales"
 
-#: data/about_dialog.ui.h:8
-#: lib/guihelpers.py:166
-#: lib/guihelpers.py:215
+#: data/about_dialog.ui.h:8 lib/guihelpers.py:196 lib/guihelpers.py:245
 msgid "Check for update"
 msgstr "Verificar actualizaciones"
 
 msgstr "Flattr gSharkDow"
 
 #: data/about_dialog.ui.h:10
-msgid "Gnome-toolkit based desktop application for downloading music files from Grooveshark.com"
-msgstr "Aplicación para el escritorio GNOME para descargar y escuchar archivos de música de Grooveshark.com."
+msgid ""
+"Gnome-toolkit based desktop application for downloading music files from "
+"Grooveshark.com"
+msgstr ""
+"Aplicación para el escritorio GNOME para descargar y escuchar archivos de "
+"música de Grooveshark.com."
 
 #: data/about_dialog.ui.h:11
 msgid ""
 "\n"
 "The gSharkDown icon is made by wall-e-ps (http://wall-e-ps.deviantart.com/)\n"
 "\n"
-"The groove.py library is developed by George Stephanos (jacktheripper51 @ github)\n"
+"The groove.py library is developed by George Stephanos (jacktheripper51 @ "
+"github)\n"
 "Link to the sources: https://github.com/jacktheripper51/groove-dl"
 msgstr ""
 "gSharkDown está liberado bajo la Licencia GNU GPL v3.\n"
 "\n"
-"El icono de gSharkDown está hecho por wall-e-ps (http://wall-e-ps.deviantart.com/).\n"
+"El icono de gSharkDown está hecho por wall-e-ps (http://wall-e-ps.deviantart."
+"com/).\n"
 "\n"
-"La biblioteca groove.py es desarrollada por George Stephanos (jacktheripper51 @ github).\n"
+"La biblioteca groove.py es desarrollada por George Stephanos "
+"(jacktheripper51 @ github).\n"
 "Enlace al código fuente: https://github.com/jacktheripper51/groove-dl"
 
 #: data/lyrics_dialog.ui.h:1
 msgstr "Editar Preferencias"
 
 #: data/main_window.ui.h:10
-#: lib/tfuncs.py:366
+msgid "Love Song"
+msgstr ""
+
+#: data/main_window.ui.h:11
+msgid "Love song on Last.fm"
+msgstr ""
+
+#: data/main_window.ui.h:12 lib/tfuncs.py:392
 msgid "Lyrics"
 msgstr "Letras"
 
-#: data/main_window.ui.h:11
+#: data/main_window.ui.h:13
 msgid "Menu"
 msgstr "Menú"
 
-#: data/main_window.ui.h:12
+#: data/main_window.ui.h:14
 msgid "Next"
 msgstr "Siguiente"
 
-#: data/main_window.ui.h:13
+#: data/main_window.ui.h:15
 msgid "Open saved playlist"
 msgstr "Abrir lista de reproducción guardada"
 
-#: data/main_window.ui.h:14
+#: data/main_window.ui.h:16
 msgid "Play/Stop"
 msgstr "Reproducir/Detener"
 
-#: data/main_window.ui.h:15
+#: data/main_window.ui.h:17
 msgid "Previous"
 msgstr "Anterior"
 
-#: data/main_window.ui.h:16
+#: data/main_window.ui.h:18
 msgid "Quit the application"
 msgstr "Salir de la aplicación"
 
-#: data/main_window.ui.h:17
+#: data/main_window.ui.h:19
 #, fuzzy
 msgid "Remove selected from playlist"
 msgstr "Quitar item de la lista de reproducción"
 
-#: data/main_window.ui.h:18
+#: data/main_window.ui.h:20
 msgid "Resume"
 msgstr ""
 
-#: data/main_window.ui.h:19
+#: data/main_window.ui.h:21
 #, fuzzy
 msgid "Save playlist"
 msgstr "Guardar lista de reproducción a archivo"
 
-#: data/main_window.ui.h:20
+#: data/main_window.ui.h:22
 msgid "Search the grooveshark"
 msgstr "Buscar en Grooveshark"
 
-#: data/main_window.ui.h:21
+#: data/main_window.ui.h:23
 msgid "Settings"
 msgstr "Opciones"
 
-#: data/main_window.ui.h:22
+#: data/main_window.ui.h:24
 msgid "Show About dialog"
 msgstr "Muestra el diálogo Acerca de"
 
-#: data/main_window.ui.h:23
+#: data/main_window.ui.h:25
 msgid "Show info about selected"
 msgstr ""
 
-#: data/main_window.ui.h:24
+#: data/main_window.ui.h:26
 #, fuzzy
 msgid "Toggle repeat all"
 msgstr "Activar/Desactivar Repetición"
 
-#: data/main_window.ui.h:25
+#: data/main_window.ui.h:27
 #, fuzzy
 msgid "Toggle shuffle"
 msgstr "Activar/Desactivar Shuffle"
 
-#: data/main_window.ui.h:26
+#: data/main_window.ui.h:28
 msgid "gSharkDown"
 msgstr "gSharkDown"
 
 msgid "Username:"
 msgstr "Nombre de usuario:"
 
-#: gsharkdown.py:310
-#: gsharkdown.py:717
+#: gsharkdown.py:278
+msgid "Check your password and username for Last.fm"
+msgstr ""
+
+#: gsharkdown.py:322 gsharkdown.py:765
 msgid "<b>Title:</b> {title}\n"
 msgstr "<b>Título:</b> {title}\n"
 
-#: gsharkdown.py:311
-#: gsharkdown.py:716
+#: gsharkdown.py:323 gsharkdown.py:764
 msgid "<b>Artist:</b> {artist}\n"
 msgstr "<b>Artist:</b> {artist}\n"
 
-#: gsharkdown.py:312
-#: gsharkdown.py:721
+#: gsharkdown.py:324 gsharkdown.py:769
 msgid "<b>Album:</b> {album}\n"
 msgstr "<b>Álbum:</b> {album}\n"
 
-#: gsharkdown.py:313
+#: gsharkdown.py:325
 #, fuzzy
 msgid "<b>Year:</b> {year}"
 msgstr "<b>Año:</b> {year}\n"
 
-#: gsharkdown.py:391
+#: gsharkdown.py:423
 msgid "Error saving the playlist"
 msgstr "Error al guardar la lista de reproducción"
 
-#: gsharkdown.py:400
+#: gsharkdown.py:438
+#, fuzzy
+msgid "Error saving the download queue"
+msgstr "Error al guardar la lista de reproducción"
+
+#: gsharkdown.py:447
 msgid "Save playlist to file"
 msgstr "Guardar lista de reproducción a archivo"
 
-#: gsharkdown.py:418
+#: gsharkdown.py:465
 msgid "Select Playlist to open"
 msgstr "Selecciona una lista de reproducción para abrir"
 
-#: gsharkdown.py:424
+#: gsharkdown.py:471
 msgid "Playlist files"
 msgstr "Archivos de lista de reproducción"
 
-#: gsharkdown.py:452
+#: gsharkdown.py:499
 msgid "To update to the latest version "
 msgstr "Para actualizarte a la última versión "
 
-#: gsharkdown.py:453
-msgid "you can visit the <a href=\"http://https://bitbucket.org/vkolev/gsharkdown/downloads\"> "
-msgstr "puedes visitar el <a href=\"http://https://bitbucket.org/vkolev/gsharkdown/downloads\"> "
+#: gsharkdown.py:500
+msgid ""
+"you can visit the <a href=\"http://https://bitbucket.org/vkolev/gsharkdown/"
+"downloads\"> "
+msgstr ""
+"puedes visitar el <a href=\"http://https://bitbucket.org/vkolev/gsharkdown/"
+"downloads\"> "
 
-#: gsharkdown.py:454
+#: gsharkdown.py:501
 #, fuzzy
 msgid "download site</a>. If you are using the latest version and want to be "
-msgstr "sitio de descargas</a>. Si estás usando la última versión y quieres ser "
+msgstr ""
+"sitio de descargas</a>. Si estás usando la última versión y quieres ser "
 
-#: gsharkdown.py:455
-msgid "informed about new versions, just enable the option in the <b>Preferences</b> dialog."
-msgstr "informado sobre nuevas versiones, simplemente habilita la opción en el diálogo <b>Preferencias</b>."
+#: gsharkdown.py:502
+msgid ""
+"informed about new versions, just enable the option in the <b>Preferences</"
+"b> dialog."
+msgstr ""
+"informado sobre nuevas versiones, simplemente habilita la opción en el "
+"diálogo <b>Preferencias</b>."
 
-#: gsharkdown.py:456
+#: gsharkdown.py:503
 #, python-format
 msgid "<b>New version <span fgcolor=\"red\"><i>%s</i></span> is available</b>"
 msgstr "<b>Nueva versión <span fgcolor=\"red\"><i>%s</i></span> disponible</b>"
 
-#: gsharkdown.py:457
+#: gsharkdown.py:504
 msgid "<b>You are using the latest version!</b>"
 msgstr "<b>¡Estás usando la última versión!</b>"
 
-#: gsharkdown.py:481
+#: gsharkdown.py:528
 msgid "Title"
 msgstr "Título"
 
-#: gsharkdown.py:487
+#: gsharkdown.py:534
 msgid "Artist"
 msgstr "Artista"
 
-#: gsharkdown.py:492
+#: gsharkdown.py:539
 msgid "Album"
 msgstr "Álbum"
 
-#: gsharkdown.py:498
-#: gsharkdown.py:513
+#: gsharkdown.py:545 gsharkdown.py:560
 msgid "SongID"
 msgstr "ID de canción"
 
-#: gsharkdown.py:508
+#: gsharkdown.py:555
 msgid "File name"
 msgstr "Nombre del archivo"
 
-#: gsharkdown.py:518
+#: gsharkdown.py:565
 msgid "Download progress"
 msgstr "Progreso de la descarga"
 
-#: gsharkdown.py:523
+#: gsharkdown.py:570
 msgid "Size"
 msgstr "Tamaño"
 
-#: gsharkdown.py:535
+#: gsharkdown.py:582
 msgid "Are you sure to quit?"
 msgstr "¿Seguro que quieres salir?"
 
-#: gsharkdown.py:536
+#: gsharkdown.py:583
 msgid "Quit?"
 msgstr "¿Salir?"
 
-#: gsharkdown.py:713
+#: gsharkdown.py:761
 msgid "Song Information - {songid}"
 msgstr "Información de canción - {songid}"
 
-#: gsharkdown.py:714
+#: gsharkdown.py:762
 msgid "<b>Filename:</b> {artist} - {title}.mp3\n"
 msgstr "<b>Nombre del archivo:</b> {artist} - {title}.mp3\n"
 
-#: gsharkdown.py:719
+#: gsharkdown.py:767
 msgid "<b>Duration:</b> {mins}:{secs} min\n"
 msgstr "<b>Duración:</b> {mins}:{secs} min\n"
 
-#: gsharkdown.py:722
+#: gsharkdown.py:770
 msgid "<b>Year:</b> {year}\n"
 msgstr "<b>Año:</b> {year}\n"
 
-#: gsharkdown.py:913
+#: gsharkdown.py:801
+msgid ""
+"There should be a playing song to view\n"
+"the lyrics for it"
+msgstr ""
+
+#: gsharkdown.py:907
+msgid "Please check your username and password for Last.fm"
+msgstr ""
+
+#: gsharkdown.py:974
 msgid "<b>Playing:</b> {artist} - {title}"
 msgstr "<b>Reproduciendo:</b> {artist} - {title}"
 
-#: gsharkdown.py:917
+#: gsharkdown.py:978
 msgid "Now playing"
 msgstr "Ahora reproduciendo"
 
-#: gsharkdown.py:940
+#: gsharkdown.py:1002
 msgid "Overwrite downloaded file?"
 msgstr "¿Sobreescribir archivo descargado?"
 
-#: gsharkdown.py:943
+#: gsharkdown.py:1005
 msgid "Cancel download"
 msgstr "Cancelar descarga"
 
-#: gsharkdown.py:944
+#: gsharkdown.py:1006
 msgid "Download and overwrite"
 msgstr "Descargar y sobreescribir"
 
-#: gsharkdown.py:945
+#: gsharkdown.py:1007
 msgid "Download renamed"
 msgstr "Descargar renombrado"
 
-#: gsharkdown.py:947
+#: gsharkdown.py:1009
 #, python-format
 msgid ""
-"The file '%s' already exists, maybe you are downloading a file that you downloaded before.\n"
+"The file '%s' already exists, maybe you are downloading a file that you "
+"downloaded before.\n"
 "\n"
 "What do you want to do?"
 msgstr ""
-"El archivo '%s' ya existe, talvez hayas descargado este archivo anteriormente.\n"
+"El archivo '%s' ya existe, talvez hayas descargado este archivo "
+"anteriormente.\n"
 "\n"
 "¿Qué deseas hacer?"
 
-#: gsharkdown.py:1004
+#: gsharkdown.py:1066
 #, python-format
 msgid "Downloading %d file"
 msgid_plural "Downloading %d files"
 msgstr[0] "Descargando %d archivo"
 msgstr[1] "Descargando %d archivos"
 
-#: lib/guihelpers.py:149
+#: gsharkdown.py:1171
+msgid ""
+"There is no song to be loved.\n"
+" A song should be playing"
+msgstr ""
+
+#: lib/guihelpers.py:179
 #, fuzzy
 msgid "Hide gSharkDown"
 msgstr "Salir de gSharkDown"
 
-#: lib/guihelpers.py:192
+#: lib/guihelpers.py:222
 msgid "gSharkDown :: Player and Downloader"
 msgstr "gSharkDown :: Player and Downloader"
 
-#: lib/tfuncs.py:87
+#: lib/tfuncs.py:95
 #, python-format
 msgid "Failed to create '%s' for writing."
 msgstr "Error al abrir \"%s\" para escritura"
 
-#: lib/tfuncs.py:337
+#: lib/tfuncs.py:363
 msgid "New version"
 msgstr ""
 
-#: lib/tfuncs.py:342
+#: lib/tfuncs.py:368
 msgid "Latest version"
 msgstr ""
 
-#: lib/tfuncs.py:363
+#: lib/tfuncs.py:389
 msgid "Loading lyrics..."
 msgstr "Cargando letras..."
 
 #~ msgid "gSharkDown : Download from Grooveshark"
 #~ msgstr "gSharkDown : Descarga desde Grooveshark"
+
 #~ msgid "Playing: {artist} - {title}"
 #~ msgstr "Reproduciendo: {artist} - {title}"
+
 #~ msgid "gSharkDown: GrooveShark Downloader"
 #~ msgstr "gSharkDown: Descargador para Grooveshark"
+
 #~ msgid "New update"
 #~ msgstr "Nueva actualización"
+
 #~ msgid ""
 #~ "'Update'\n"
 #~ "and download it. After that you can "
 #~ msgstr ""
 #~ "'Actualizar'\n"
 #~ "y descargala. Después de borrar la versión anterior, "
+
 #~ msgid "remove the old one and install the new gSharkDown"
 #~ msgstr "instala la nueva versión de gSharkDown."
+
 #~ msgid "No updates"
 #~ msgstr "Sin actualizaciones"
+
 #~ msgid "Congratulations!\n"
 #~ msgstr "¡Felicitaciones!\n"
+
 #~ msgid "About"
 #~ msgstr "Acerca de"
+
 #~ msgid "Add item from search results"
 #~ msgstr "Añadir item de los resultados de búsqueda"
+
 #~ msgid "Copy song name to clipboard"
 #~ msgstr "Copiar nombre de la canción al portapapeles"
+
 #~ msgid "Copyto Clipboard"
 #~ msgstr "Copiar al portapapeles"
+
 #~ msgid "Info"
 #~ msgstr "Información"
+
 #~ msgid "Open Prefrences"
 #~ msgstr "Abrir Preferencias"
+
 #~ msgid "Quit"
 #~ msgstr "Salir"
+
 #~ msgid "Search a lyrics for selected song from the playlist"
 #~ msgstr ""
 #~ "Buscar las letras para la canción seleccionada de la lista de reproducción"
+
 #~ msgid "Show selection info"
 #~ msgstr "Mostrar información de la selección"
+
 #~ msgid "Ready"
 #~ msgstr "Listo"
-

locale/gl_ES/LC_MESSAGES/gsharkdown.po

 msgstr ""
 "Project-Id-Version: gsharkdown\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-11-01 11:51+0100\n"
+"POT-Creation-Date: 2011-11-16 10:53+0100\n"
 "PO-Revision-Date: 2011-11-01 11:53+0100\n"
 "Last-Translator: Vladimir Kolev <vladimir.r.kolev@gmail.com>\n"
 "Language-Team: antiparvos <LL@li.org>\n"
 msgstr "(c) Vladimir Kolev 2011"
 
 #: data/about_dialog.ui.h:2
-msgid "<b>Downloading mp3s is illegal in some countries! Please check the law in your country.</b>"
-msgstr "<b>A descarga de mp3 é ilegal nalgúns países. Comprobe as leis do seu país.</b>"
+msgid ""
+"<b>Downloading mp3s is illegal in some countries! Please check the law in "
+"your country.</b>"
+msgstr ""
+"<b>A descarga de mp3 é ilegal nalgúns países. Comprobe as leis do seu país.</"
+"b>"
 
 #: data/about_dialog.ui.h:3
 msgid "About GrooveDown"
 "Italiano -  Andrea Sciucca\n"
 "Castelán - Damián Nohales"
 
-#: data/about_dialog.ui.h:8
-#: lib/guihelpers.py:166
-#: lib/guihelpers.py:215
+#: data/about_dialog.ui.h:8 lib/guihelpers.py:196 lib/guihelpers.py:245
 msgid "Check for update"
 msgstr "Buscar actualizacións"
 
 msgstr "Flattr gSharkDow"
 
 #: data/about_dialog.ui.h:10
-msgid "Gnome-toolkit based desktop application for downloading music files from Grooveshark.com"
-msgstr "Aplicativo de escritorio baseado en Gnome-toolkit para descargar ficheiros de música de Grooveshark.com"
+msgid ""
+"Gnome-toolkit based desktop application for downloading music files from "
+"Grooveshark.com"
+msgstr ""
+"Aplicativo de escritorio baseado en Gnome-toolkit para descargar ficheiros "
+"de música de Grooveshark.com"
 
 #: data/about_dialog.ui.h:11
 msgid ""
 "\n"
 "The gSharkDown icon is made by wall-e-ps (http://wall-e-ps.deviantart.com/)\n"
 "\n"
-"The groove.py library is developed by George Stephanos (jacktheripper51 @ github)\n"
+"The groove.py library is developed by George Stephanos (jacktheripper51 @ "
+"github)\n"
 "Link to the sources: https://github.com/jacktheripper51/groove-dl"
 msgstr ""
 "gSharkDown está licenciado baixo a GNU GPL v3 License\n"
 "\n"
-"A icona de gSharkDown foi feita por wall-e-ps (http://wall-e-ps.deviantart.com/)\n"
+"A icona de gSharkDown foi feita por wall-e-ps (http://wall-e-ps.deviantart."
+"com/)\n"
 "\n"
-"A biblioteca groove.py é desenvolvida por George Stephanos (jacktheripper51 @ github)\n"
+"A biblioteca groove.py é desenvolvida por George Stephanos (jacktheripper51 "
+"@ github)\n"
 "LIgazón ás fontes: https://github.com/jacktheripper51/groove-dl"
 
 #: data/lyrics_dialog.ui.h:1
 msgstr "Editar Preferencias"
 
 #: data/main_window.ui.h:10
-#: lib/tfuncs.py:366
+msgid "Love Song"
+msgstr ""
+
+#: data/main_window.ui.h:11
+msgid "Love song on Last.fm"
+msgstr ""
+
+#: data/main_window.ui.h:12 lib/tfuncs.py:392
 msgid "Lyrics"
 msgstr "Letras"
 
-#: data/main_window.ui.h:11
+#: data/main_window.ui.h:13
 msgid "Menu"
 msgstr "Menú"
 
-#: data/main_window.ui.h:12
+#: data/main_window.ui.h:14
 msgid "Next"
 msgstr "Seguinte"
 
-#: data/main_window.ui.h:13
+#: data/main_window.ui.h:15
 msgid "Open saved playlist"
 msgstr "Abrir unha lista gardada"
 
-#: data/main_window.ui.h:14
+#: data/main_window.ui.h:16
 msgid "Play/Stop"
 msgstr "Reproducir/Parar"
 
-#: data/main_window.ui.h:15
+#: data/main_window.ui.h:17
 msgid "Previous"
 msgstr "Anterior"
 
-#: data/main_window.ui.h:16
+#: data/main_window.ui.h:18
 msgid "Quit the application"
 msgstr "Saír do aplicativo"
 
-#: data/main_window.ui.h:17
+#: data/main_window.ui.h:19
 #, fuzzy
 msgid "Remove selected from playlist"
 msgstr "Eliminar elemento da lista"
 
-#: data/main_window.ui.h:18
+#: data/main_window.ui.h:20
 msgid "Resume"
 msgstr ""
 
-#: data/main_window.ui.h:19
+#: data/main_window.ui.h:21
 #, fuzzy
 msgid "Save playlist"
 msgstr "Gardar a lista"
 
-#: data/main_window.ui.h:20
+#: data/main_window.ui.h:22
 msgid "Search the grooveshark"
 msgstr "Buscar no Grooveshark"
 
-#: data/main_window.ui.h:21
+#: data/main_window.ui.h:23
 msgid "Settings"
 msgstr "Configuración"
 
-#: data/main_window.ui.h:22
+#: data/main_window.ui.h:24
 msgid "Show About dialog"
 msgstr "Mostrar o diálogo 'Sobre'"
 
-#: data/main_window.ui.h:23
+#: data/main_window.ui.h:25
 msgid "Show info about selected"
 msgstr ""
 
-#: data/main_window.ui.h:24
+#: data/main_window.ui.h:26
 #, fuzzy
 msgid "Toggle repeat all"
 msgstr "Repetir todo"
 
-#: data/main_window.ui.h:25
+#: data/main_window.ui.h:27
 #, fuzzy
 msgid "Toggle shuffle"
 msgstr "Aleatorio"
 
-#: data/main_window.ui.h:26
+#: data/main_window.ui.h:28
 msgid "gSharkDown"
 msgstr "gSharkDown"
 
 msgid "Username:"
 msgstr "Nome de usuario:"
 
-#: gsharkdown.py:310
-#: gsharkdown.py:717
+#: gsharkdown.py:278
+msgid "Check your password and username for Last.fm"
+msgstr ""
+
+#: gsharkdown.py:322 gsharkdown.py:765
 msgid "<b>Title:</b> {title}\n"
 msgstr "<b>Título:</b> {title}\n"
 
-#: gsharkdown.py:311
-#: gsharkdown.py:716
+#: gsharkdown.py:323 gsharkdown.py:764
 msgid "<b>Artist:</b> {artist}\n"
 msgstr "<b>Artista:</b> {artist}\n"
 
-#: gsharkdown.py:312
-#: gsharkdown.py:721
+#: gsharkdown.py:324 gsharkdown.py:769
 msgid "<b>Album:</b> {album}\n"
 msgstr "<b>Álbum:</b> {album}\n"
 
-#: gsharkdown.py:313
+#: gsharkdown.py:325
 #, fuzzy
 msgid "<b>Year:</b> {year}"
 msgstr "<b>Ano:</b> {year}\n"
 
-#: gsharkdown.py:391
+#: gsharkdown.py:423
 msgid "Error saving the playlist"
 msgstr "Produciuse un erro ao gardar a lista de reprodución"
 
-#: gsharkdown.py:400
+#: gsharkdown.py:438
+#, fuzzy
+msgid "Error saving the download queue"
+msgstr "Produciuse un erro ao gardar a lista de reprodución"
+
+#: gsharkdown.py:447
 msgid "Save playlist to file"
 msgstr "Gardar a lista"
 
-#: gsharkdown.py:418
+#: gsharkdown.py:465
 msgid "Select Playlist to open"
 msgstr "Seleccione unha lista para abrir"
 
-#: gsharkdown.py:424
+#: gsharkdown.py:471
 msgid "Playlist files"
 msgstr "Ficheiros con listas de reprodución"
 
-#: gsharkdown.py:452
+#: gsharkdown.py:499
 msgid "To update to the latest version "
 msgstr "Actualizar á versión máis recente "
 
-#: gsharkdown.py:453
-msgid "you can visit the <a href=\"http://https://bitbucket.org/vkolev/gsharkdown/downloads\"> "
-msgstr "Pode visitar <a href=\"http://https://bitbucket.org/vkolev/gsharkdown/downloads\"> "
+#: gsharkdown.py:500
+msgid ""
+"you can visit the <a href=\"http://https://bitbucket.org/vkolev/gsharkdown/"
+"downloads\"> "
+msgstr ""
+"Pode visitar <a href=\"http://https://bitbucket.org/vkolev/gsharkdown/"
+"downloads\"> "
 
-#: gsharkdown.py:454
+#: gsharkdown.py:501
 #, fuzzy
 msgid "download site</a>. If you are using the latest version and want to be "
-msgstr "Sitio de descarga</a>. Se está usando a última versión e desexa recibir"
+msgstr ""
+"Sitio de descarga</a>. Se está usando a última versión e desexa recibir"
 
-#: gsharkdown.py:455
-msgid "informed about new versions, just enable the option in the <b>Preferences</b> dialog."
-msgstr "información sobre novas versións, pode activar a opción nas <b>Preferencias</b>."
+#: gsharkdown.py:502
+msgid ""
+"informed about new versions, just enable the option in the <b>Preferences</"
+"b> dialog."
+msgstr ""
+"información sobre novas versións, pode activar a opción nas <b>Preferencias</"
+"b>."
 
-#: gsharkdown.py:456
+#: gsharkdown.py:503
 #, python-format
 msgid "<b>New version <span fgcolor=\"red\"><i>%s</i></span> is available</b>"
 msgstr "<b>Nova versión <span fgcolor=\"red\"><i>%s</i></span> dispoñíbel</b>"
 
-#: gsharkdown.py:457
+#: gsharkdown.py:504
 msgid "<b>You are using the latest version!</b>"
 msgstr "<b>Está a utilizar a última versión</b>"
 
-#: gsharkdown.py:481
+#: gsharkdown.py:528
 msgid "Title"
 msgstr "Título"
 
-#: gsharkdown.py:487
+#: gsharkdown.py:534
 msgid "Artist"
 msgstr "Artista"
 
-#: gsharkdown.py:492
+#: gsharkdown.py:539
 msgid "Album"