D-BUSified iPodManager and lots of automagic coolness, Python 2.4, might break things, but hey: it's SVN after all =)

git-svn-id: svn://svn.berlios.de/gpodder@95 b0d088ad-0a06-0410-aad2-9ed5178a7e87
This commit is contained in:
Thomas Perl 2006-04-09 16:18:47 +00:00
parent 0f5fe99a2a
commit 7c66f8080e
9 changed files with 549 additions and 287 deletions

View File

@ -1,3 +1,15 @@
Sun, 09 Apr 2006 18:10:54 +0200 <thp@perli.net>
* Added iPodManager and iPod to libipodsync (D-BUSified)
* Automatically detect connected iPod, ask if user wants to sync
* Automatically eject iPod device on sync finish (should be opt.)
* Python 2.4 is now used instead of Python 2.3 (for D-BUS)
* Lots of D-BUS magic, still VERY experimental..
* gPodder SVN will now feature very experimental D-BUS stuff in
the near future, related to iPod, but it should keep working
if you either haven't installed "gpod" or "dbus" for Python2.4
* Send your RANTS about svn not working to thp@perli.net.. hehe
* Updated German translation
Sun, 09 Apr 2006 14:10:28 +0200 <thp@perli.net>
* Enabled podcast flag setting (works with libgpod cvs)
* Fixed a brainfart of mine -- new localDB could not be created

View File

@ -1,4 +1,4 @@
#!/usr/bin/env python
#!/usr/bin/env python2.4
# -*- coding: utf-8 -*-
#
@ -26,8 +26,8 @@
# PLEASE DO NOT CHANGE FORMAT OF __version__ LINE (setup.py reads this)
__author__ = "Thomas Perl <thp@perli.net>"
__version__ = "0.7+svn20060408"
__date__ = "2006-04-08"
__version__ = "0.7+svn20060409"
__date__ = "2006-04-09"
__copyright__ = "Copyright (c) 2005-2006 %s. All rights reserved." % __author__
__licence__ = "GPL"

View File

@ -6,9 +6,9 @@
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: gPodder 0.7+svn20060407\n"
"Project-Id-Version: gPodder 0.7+svn20060408\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2006-04-08 10:32+0200\n"
"POT-Creation-Date: 2006-04-09 18:14+0200\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"
@ -26,47 +26,51 @@ msgstr ""
msgid "%s is not a valid id"
msgstr ""
#: src/gpodder/gpodder.py:70
#: src/gpodder/gpodder.py:71
msgid "Contributors / patch writers:"
msgstr ""
#: src/gpodder/gpodder.py:74
#: src/gpodder/gpodder.py:75
msgid "See the AUTHORS file for all contributors"
msgstr ""
#: src/gpodder/gpodder.py:131 src/gpodder/gpodder.py:146
#: src/gpodder/gpodder.py:152
#: src/gpodder/gpodder.py:135 src/gpodder/gpodder.py:150
#: src/gpodder/gpodder.py:156
msgid "Episode"
msgstr ""
#: src/gpodder/gpodder.py:136
#: src/gpodder/gpodder.py:140
msgid "Size"
msgstr ""
#: src/gpodder/gpodder.py:155
#: src/gpodder/gpodder.py:159
msgid "Speed"
msgstr ""
#: src/gpodder/gpodder.py:158
#: src/gpodder/gpodder.py:162
msgid "Progress"
msgstr ""
#: src/gpodder/gpodder.py:182
#: src/gpodder/gpodder.py:186
msgid "Channel Info"
msgstr ""
#: src/gpodder/gpodder.py:199
#: src/gpodder/gpodder.py:205
#, python-format
msgid ""
"<b>gPodder development version %s</b>\n"
"Use at your own risk, but also enjoy new features :)"
msgstr ""
#: src/gpodder/gpodder.py:226
#: src/gpodder/gpodder.py:220
msgid "iPod connected. Do you want to sync now?"
msgstr ""
#: src/gpodder/gpodder.py:249
msgid "No downloaded podcasts found."
msgstr ""
#: src/gpodder/gpodder.py:236
#: src/gpodder/gpodder.py:259
msgid ""
"<b>No channels found</b>\n"
"\n"
@ -74,42 +78,41 @@ msgid ""
"new channel."
msgstr ""
#: src/gpodder/gpodder.py:238
#: src/gpodder/gpodder.py:261
msgid "gPodder message"
msgstr ""
#: src/gpodder/gpodder.py:246
#: src/gpodder/gpodder.py:269
msgid "Do you really want to do this?"
msgstr ""
#: src/gpodder/gpodder.py:246
#: src/gpodder/gpodder.py:269
msgid "gPodder confirmation"
msgstr ""
#: src/gpodder/gpodder.py:311
#: src/gpodder/gpodder.py:334
msgid ""
"There has been an error adding the channel.\n"
"Maybe the URL is wrong?"
msgstr ""
#: src/gpodder/gpodder.py:317 src/gpodder/gpodder.py:454
#: src/gpodder/gpodder.py:340 src/gpodder/gpodder.py:476
msgid "Fetching channel index..."
msgstr ""
#: src/gpodder/gpodder.py:330
#: src/gpodder/gpodder.py:353
msgid ""
"Could not add new channel.\n"
"Only <b>http://</b> and <b>ftp://</b> URLs supported at the moment."
msgstr ""
#: src/gpodder/gpodder.py:341 src/gpodder/gpodder.py:354
#, python-format
#: src/gpodder/gpodder.py:362 src/gpodder/gpodder.py:373
msgid ""
"Cannot access iPod at %s.\n"
"Make sure your iPod is connected and mounted."
"Cannot access iPod.\n"
"Make sure your iPod is connected."
msgstr ""
#: src/gpodder/gpodder.py:384
#: src/gpodder/gpodder.py:403
msgid ""
"<big><b>Updating feed cache</b></big>\n"
"\n"
@ -117,18 +120,18 @@ msgid ""
"updating the feed cache..."
msgstr ""
#: src/gpodder/gpodder.py:408
#: src/gpodder/gpodder.py:427
msgid "Do you really want to truncate the Podcasts playlist on your iPod?"
msgstr ""
#: src/gpodder/gpodder.py:447
#: src/gpodder/gpodder.py:469
msgid ""
"Cannot edit this channel.\n"
"\n"
"No channel found."
msgstr ""
#: src/gpodder/gpodder.py:476
#: src/gpodder/gpodder.py:498
#, python-format
msgid ""
"Do you really want to remove this channel?\n"
@ -136,35 +139,35 @@ msgid ""
" %s"
msgstr ""
#: src/gpodder/gpodder.py:483
#: src/gpodder/gpodder.py:505
msgid ""
"Could not delete channel.\n"
"Probably no channel is selected."
msgstr ""
#: src/gpodder/gpodder.py:491
#: src/gpodder/gpodder.py:513
msgid "Your channel list is empty. Nothing to export."
msgstr ""
#: src/gpodder/gpodder.py:493
#: src/gpodder/gpodder.py:515
msgid "Export to OPML"
msgstr ""
#: src/gpodder/gpodder.py:522
#: src/gpodder/gpodder.py:544
msgid "translator-credits"
msgstr ""
#: src/gpodder/gpodder.py:562
#: src/gpodder/gpodder.py:584
msgid "You have not selected an episode to download."
msgstr ""
#: src/gpodder/gpodder.py:577
#: src/gpodder/gpodder.py:599
msgid ""
"You have already downloaded this episode\n"
"or you are currently downloading it."
msgstr ""
#: src/gpodder/gpodder.py:602
#: src/gpodder/gpodder.py:624
#, python-format
msgid ""
"Do you really want to cancel this download?\n"
@ -172,11 +175,11 @@ msgid ""
"%s"
msgstr ""
#: src/gpodder/gpodder.py:605 src/gpodder/gpodder.py:642
#: src/gpodder/gpodder.py:627 src/gpodder/gpodder.py:669
msgid "No episode selected."
msgstr ""
#: src/gpodder/gpodder.py:668
#: src/gpodder/gpodder.py:695
#, python-format
msgid ""
"Do you really want to remove this episode?\n"
@ -184,21 +187,21 @@ msgid ""
"%s"
msgstr ""
#: src/gpodder/gpodder.py:678
#: src/gpodder/gpodder.py:705
msgid "Could not delete downloaded podcast."
msgstr ""
#: src/gpodder/gpodder.py:718 src/gpodder/gpodder.py:719
#: src/gpodder/gpodder.py:745 src/gpodder/gpodder.py:746
#: data/gpodder.glade.h:1
msgid "(unknown)"
msgstr ""
#: src/gpodder/gpodder.py:946
#: src/gpodder/gpodder.py:987
#, python-format
msgid "%d of %d"
msgstr ""
#: src/gpodder/gpodder.py:989
#: src/gpodder/gpodder.py:1030
msgid ""
"Please do not call gpodder.py directly. Instead, call the gpodder binary."
msgstr ""
@ -215,16 +218,21 @@ msgstr ""
msgid "gPodder channel list"
msgstr ""
#: src/gpodder/libipodsync.py:94
#: src/gpodder/libipodsync.py:112
msgid "Saving iPod database..."
msgstr ""
#: src/gpodder/libipodsync.py:180
#: src/gpodder/libipodsync.py:201
#, python-format
msgid "Complete: %s"
msgstr ""
#: src/gpodder/liblocdbwriter.py:49
#: src/gpodder/libipodsync.py:224
#, python-format
msgid "%s (to \"%s\")"
msgstr ""
#: src/gpodder/liblocdbwriter.py:42
msgid "local download database, generated by gPodder"
msgstr ""
@ -232,7 +240,7 @@ msgstr ""
msgid "gPodder subscription list (exported)"
msgstr ""
#: src/gpodder/libpodcasts.py:306
#: src/gpodder/libpodcasts.py:304
msgid "No LocalDB found or error in existing LocalDB."
msgstr ""
@ -241,11 +249,11 @@ msgstr ""
msgid "unknown"
msgstr ""
#: src/gpodder/libwget.py:291
#: src/gpodder/libwget.py:292
msgid "Download has been cancelled."
msgstr ""
#: src/gpodder/libwget.py:293
#: src/gpodder/libwget.py:294
#, python-format
msgid "Download error. Wget exit code was: %d"
msgstr ""
@ -307,42 +315,46 @@ msgid "Download Status"
msgstr ""
#: data/gpodder.glade.h:16
msgid "Download to:"
msgid "Download link:"
msgstr ""
#: data/gpodder.glade.h:17
msgid "Downloaded Podcasts"
msgid "Download to:"
msgstr ""
#: data/gpodder.glade.h:18
msgid "Downloads"
msgid "Downloaded Podcasts"
msgstr ""
#: data/gpodder.glade.h:19
msgid "E_xport list..."
msgid "Downloads"
msgstr ""
#: data/gpodder.glade.h:20
msgid "Episode Information"
msgid "E_xport list..."
msgstr ""
#: data/gpodder.glade.h:21
msgid "FTP Proxy:"
msgid "Episode Information"
msgstr ""
#: data/gpodder.glade.h:22
msgid "Feed URL:"
msgid "FTP Proxy:"
msgstr ""
#: data/gpodder.glade.h:23
msgid "General"
msgid "Feed URL:"
msgstr ""
#: data/gpodder.glade.h:24
msgid "HTTP Proxy:"
msgid "General"
msgstr ""
#: data/gpodder.glade.h:25
msgid "HTTP Proxy:"
msgstr ""
#: data/gpodder.glade.h:26
msgid ""
"If you have to use a HTTP or FTP proxy server,\n"
"you can use the usual format of the environment variables:\n"
@ -350,123 +362,131 @@ msgid ""
"<b>http://username:password@proxy_host:proxy_port/</b>"
msgstr ""
#: data/gpodder.glade.h:29
#: data/gpodder.glade.h:30
msgid "Initializing..."
msgstr ""
#: data/gpodder.glade.h:30
#: data/gpodder.glade.h:31
msgid "No cover available."
msgstr ""
#: data/gpodder.glade.h:31
#: data/gpodder.glade.h:32
msgid "Play selected item"
msgstr ""
#: data/gpodder.glade.h:32
#: data/gpodder.glade.h:33
msgid "Player application:"
msgstr ""
#: data/gpodder.glade.h:33
#: data/gpodder.glade.h:34
msgid "Proxy"
msgstr ""
#: data/gpodder.glade.h:34
msgid "Save downloads in:"
msgstr ""
#: data/gpodder.glade.h:35
msgid "Show \"gPodder downloads\" link"
msgid "Publication date:"
msgstr ""
#: data/gpodder.glade.h:36
msgid "Skip this channel when syncing to the iPod"
msgid "Save downloads in:"
msgstr ""
#: data/gpodder.glade.h:37
msgid "Sync to Playlist:"
msgid "Show \"gPodder downloads\" link"
msgstr ""
#: data/gpodder.glade.h:38
msgid "Sync to Podcasts playlist"
msgid "Skip this channel when syncing to the iPod"
msgstr ""
#: data/gpodder.glade.h:39
msgid "Synchronization"
msgid "Sync to Playlist:"
msgstr ""
#: data/gpodder.glade.h:40
msgid "Title:"
msgid "Sync to Podcasts playlist"
msgstr ""
#: data/gpodder.glade.h:41
msgid "Use environment variables"
msgid "Synchronization"
msgstr ""
#: data/gpodder.glade.h:42
msgid "_About gPodder..."
msgid "Title:"
msgstr ""
#: data/gpodder.glade.h:43
msgid "_Add channel..."
msgid "Use environment variables"
msgstr ""
#: data/gpodder.glade.h:44
msgid "_Channels"
msgid "Website link:"
msgstr ""
#: data/gpodder.glade.h:45
msgid "_Check for Updates"
msgid "_About gPodder..."
msgstr ""
#: data/gpodder.glade.h:46
msgid "_Cleanup iPod podcasts"
msgid "_Add channel..."
msgstr ""
#: data/gpodder.glade.h:47
msgid "_Close"
msgid "_Channels"
msgstr ""
#: data/gpodder.glade.h:48
msgid "_Edit channel..."
msgid "_Check for Updates"
msgstr ""
#: data/gpodder.glade.h:49
msgid "_Help"
msgid "_Cleanup iPod podcasts"
msgstr ""
#: data/gpodder.glade.h:50
msgid "_Podcasts"
msgid "_Close"
msgstr ""
#: data/gpodder.glade.h:51
msgid "_Preferences..."
msgid "_Edit channel..."
msgstr ""
#: data/gpodder.glade.h:52
msgid "_Remove channel"
msgid "_Help"
msgstr ""
#: data/gpodder.glade.h:53
msgid "_Sync to iPod"
msgid "_Podcasts"
msgstr ""
#: data/gpodder.glade.h:54
msgid "gPodder - your podcast catcher."
msgid "_Preferences..."
msgstr ""
#: data/gpodder.glade.h:55
msgid "gPodder Channel Editor"
msgid "_Remove channel"
msgstr ""
#: data/gpodder.glade.h:56
msgid "gPodder properties"
msgid "_Sync to iPod"
msgstr ""
#: data/gpodder.glade.h:57
msgid "iPod"
msgid "gPodder - your podcast catcher."
msgstr ""
#: data/gpodder.glade.h:58
msgid "gPodder Channel Editor"
msgstr ""
#: data/gpodder.glade.h:59
msgid "gPodder properties"
msgstr ""
#: data/gpodder.glade.h:60
msgid "iPod"
msgstr ""
#: data/gpodder.glade.h:61
msgid "iPod mountpoint:"
msgstr ""

View File

@ -7,8 +7,8 @@ msgid ""
msgstr ""
"Project-Id-Version: gPodder 0.7-svn\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2006-04-08 10:32+0200\n"
"PO-Revision-Date: 2006-04-08 10:35+0100\n"
"POT-Creation-Date: 2006-04-09 18:14+0200\n"
"PO-Revision-Date: 2006-04-09 18:15+0100\n"
"Last-Translator: Thomas Perl <thp@perli.net>\n"
"Language-Team: gPodder Team <thp@perli.net>\n"
"MIME-Version: 1.0\n"
@ -26,37 +26,37 @@ msgstr "Channel entfernen: %s"
msgid "%s is not a valid id"
msgstr "%s is keine gültige ID"
#: src/gpodder/gpodder.py:70
#: src/gpodder/gpodder.py:71
msgid "Contributors / patch writers:"
msgstr "Helfer und Patchschreiber:"
#: src/gpodder/gpodder.py:74
#: src/gpodder/gpodder.py:75
msgid "See the AUTHORS file for all contributors"
msgstr "Eine Liste aller Helfer finden Sie in der AUTHORS-Datei"
#: src/gpodder/gpodder.py:131
#: src/gpodder/gpodder.py:146
#: src/gpodder/gpodder.py:152
#: src/gpodder/gpodder.py:135
#: src/gpodder/gpodder.py:150
#: src/gpodder/gpodder.py:156
msgid "Episode"
msgstr "Episode"
#: src/gpodder/gpodder.py:136
#: src/gpodder/gpodder.py:140
msgid "Size"
msgstr "Größe"
#: src/gpodder/gpodder.py:155
#: src/gpodder/gpodder.py:159
msgid "Speed"
msgstr "Geschwindigkeit"
#: src/gpodder/gpodder.py:158
#: src/gpodder/gpodder.py:162
msgid "Progress"
msgstr "Fortschritt"
#: src/gpodder/gpodder.py:182
#: src/gpodder/gpodder.py:186
msgid "Channel Info"
msgstr "Channel-Informationen"
#: src/gpodder/gpodder.py:199
#: src/gpodder/gpodder.py:205
#, python-format
msgid ""
"<b>gPodder development version %s</b>\n"
@ -65,11 +65,15 @@ msgstr ""
"<b>gPodder Entwicklungs-Version %s</b>\n"
"Benutzung auf eigene Gefahr. Viel Spaß mit neuen Features :)"
#: src/gpodder/gpodder.py:226
#: src/gpodder/gpodder.py:220
msgid "iPod connected. Do you want to sync now?"
msgstr "iPod verbunden. Jetzt synchronisieren?"
#: src/gpodder/gpodder.py:249
msgid "No downloaded podcasts found."
msgstr "Keine heruntergeladenen Podcasts gefunden."
#: src/gpodder/gpodder.py:236
#: src/gpodder/gpodder.py:259
msgid ""
"<b>No channels found</b>\n"
"\n"
@ -79,19 +83,19 @@ msgstr ""
"\n"
"Klicken Sie auf <b><i>Channels</i></b> &gt; <b><i>Abbonieren...</i></b>, um einen neuen Channel zu abbonieren."
#: src/gpodder/gpodder.py:238
#: src/gpodder/gpodder.py:261
msgid "gPodder message"
msgstr "gPodder Nachricht"
#: src/gpodder/gpodder.py:246
#: src/gpodder/gpodder.py:269
msgid "Do you really want to do this?"
msgstr "Willst du das wirklich machen?"
#: src/gpodder/gpodder.py:246
#: src/gpodder/gpodder.py:269
msgid "gPodder confirmation"
msgstr "gPodder Bestätigung"
#: src/gpodder/gpodder.py:311
#: src/gpodder/gpodder.py:334
msgid ""
"There has been an error adding the channel.\n"
"Maybe the URL is wrong?"
@ -99,12 +103,12 @@ msgstr ""
"Ein Fehler trat beim Hinzufügen des Channels auf.\n"
"Vielleicht ist die URL falsch?"
#: src/gpodder/gpodder.py:317
#: src/gpodder/gpodder.py:454
#: src/gpodder/gpodder.py:340
#: src/gpodder/gpodder.py:476
msgid "Fetching channel index..."
msgstr "Channel-Index wird heruntergeladen..."
#: src/gpodder/gpodder.py:330
#: src/gpodder/gpodder.py:353
msgid ""
"Could not add new channel.\n"
"Only <b>http://</b> and <b>ftp://</b> URLs supported at the moment."
@ -112,17 +116,16 @@ msgstr ""
"Konnte neuen Channel nicht abbonieren.\n"
"Derzeit werden nur <b>http://</b> und <b>ftp://</b>-URLs unterstützt."
#: src/gpodder/gpodder.py:341
#: src/gpodder/gpodder.py:354
#, python-format
#: src/gpodder/gpodder.py:362
#: src/gpodder/gpodder.py:373
msgid ""
"Cannot access iPod at %s.\n"
"Make sure your iPod is connected and mounted."
"Cannot access iPod.\n"
"Make sure your iPod is connected."
msgstr ""
"Kann auf den iPod in %s nicht zugreifen.\n"
"Bitte sicherstellen, dass der iPod angesteckt und eingebunden ist."
"Kann auf den iPod nicht zugreifen.\n"
"Bitte sicherstellen, dass der iPod angesteckt ist."
#: src/gpodder/gpodder.py:384
#: src/gpodder/gpodder.py:403
msgid ""
"<big><b>Updating feed cache</b></big>\n"
"\n"
@ -134,11 +137,11 @@ msgstr ""
"Bitte warten Sie, während gPodder Ihre\n"
"Channel-Abonnements aktualisiert..."
#: src/gpodder/gpodder.py:408
#: src/gpodder/gpodder.py:427
msgid "Do you really want to truncate the Podcasts playlist on your iPod?"
msgstr "Wollen Sie wirklich die Podcasts-Liste auf dem iPod leeren?"
#: src/gpodder/gpodder.py:447
#: src/gpodder/gpodder.py:469
msgid ""
"Cannot edit this channel.\n"
"\n"
@ -148,7 +151,7 @@ msgstr ""
"\n"
"Kein Channel gefunden."
#: src/gpodder/gpodder.py:476
#: src/gpodder/gpodder.py:498
#, python-format
msgid ""
"Do you really want to remove this channel?\n"
@ -159,7 +162,7 @@ msgstr ""
"\n"
"%s"
#: src/gpodder/gpodder.py:483
#: src/gpodder/gpodder.py:505
msgid ""
"Could not delete channel.\n"
"Probably no channel is selected."
@ -167,23 +170,23 @@ msgstr ""
"Konnte Channel nicht entfernen.\n"
"Wahrscheinlich ist keiner ausgewählt."
#: src/gpodder/gpodder.py:491
#: src/gpodder/gpodder.py:513
msgid "Your channel list is empty. Nothing to export."
msgstr "Nichts zu exportieren: Sie haben keine Abonnements."
#: src/gpodder/gpodder.py:493
#: src/gpodder/gpodder.py:515
msgid "Export to OPML"
msgstr "Als OPML-Datei exportieren"
#: src/gpodder/gpodder.py:522
#: src/gpodder/gpodder.py:544
msgid "translator-credits"
msgstr "Thomas Perl <thp@perli.net>"
#: src/gpodder/gpodder.py:562
#: src/gpodder/gpodder.py:584
msgid "You have not selected an episode to download."
msgstr "Sie haben keine Episode für den Download ausgewählt."
#: src/gpodder/gpodder.py:577
#: src/gpodder/gpodder.py:599
msgid ""
"You have already downloaded this episode\n"
"or you are currently downloading it."
@ -191,7 +194,7 @@ msgstr ""
"Sie haben diese Episode bereits heruntergeladen\n"
"oder Sie laden sie jetzt gerade herunter."
#: src/gpodder/gpodder.py:602
#: src/gpodder/gpodder.py:624
#, python-format
msgid ""
"Do you really want to cancel this download?\n"
@ -202,12 +205,12 @@ msgstr ""
"\n"
"%s"
#: src/gpodder/gpodder.py:605
#: src/gpodder/gpodder.py:642
#: src/gpodder/gpodder.py:627
#: src/gpodder/gpodder.py:669
msgid "No episode selected."
msgstr "Keine Episode ausgewählt."
#: src/gpodder/gpodder.py:668
#: src/gpodder/gpodder.py:695
#, python-format
msgid ""
"Do you really want to remove this episode?\n"
@ -218,22 +221,22 @@ msgstr ""
"\n"
"%s"
#: src/gpodder/gpodder.py:678
#: src/gpodder/gpodder.py:705
msgid "Could not delete downloaded podcast."
msgstr "Konnte den ausgewählten Podcast nicht entfernen."
#: src/gpodder/gpodder.py:718
#: src/gpodder/gpodder.py:719
#: src/gpodder/gpodder.py:745
#: src/gpodder/gpodder.py:746
#: data/gpodder.glade.h:1
msgid "(unknown)"
msgstr "(unbekannt)"
#: src/gpodder/gpodder.py:946
#: src/gpodder/gpodder.py:987
#, python-format
msgid "%d of %d"
msgstr "%d von %d"
#: src/gpodder/gpodder.py:989
#: src/gpodder/gpodder.py:1030
msgid "Please do not call gpodder.py directly. Instead, call the gpodder binary."
msgstr "Bitte starten Sie gPodder nie direkt über gpodder.py. Rufen Sie stattdessen das \"gpodder\" Programm auf."
@ -249,16 +252,21 @@ msgstr "Bild wird heruntergeladen..."
msgid "gPodder channel list"
msgstr "gPodder Channel-Editor"
#: src/gpodder/libipodsync.py:94
#: src/gpodder/libipodsync.py:112
msgid "Saving iPod database..."
msgstr "Speichere iPod-Datenbank..."
#: src/gpodder/libipodsync.py:180
#: src/gpodder/libipodsync.py:201
#, python-format
msgid "Complete: %s"
msgstr "Fertig: %s"
#: src/gpodder/liblocdbwriter.py:49
#: src/gpodder/libipodsync.py:224
#, python-format
msgid "%s (to \"%s\")"
msgstr "%s (nach \"%s\")"
#: src/gpodder/liblocdbwriter.py:42
msgid "local download database, generated by gPodder"
msgstr "lokale Download-Datenbank, generiert von gPodder"
@ -266,7 +274,7 @@ msgstr "lokale Download-Datenbank, generiert von gPodder"
msgid "gPodder subscription list (exported)"
msgstr "gPodder Abonnement-Liste (exportiert)"
#: src/gpodder/libpodcasts.py:306
#: src/gpodder/libpodcasts.py:304
msgid "No LocalDB found or error in existing LocalDB."
msgstr "Keine Lokale Datenbank gefunden (oder Fehler in existierender Datenbank)."
@ -276,11 +284,11 @@ msgstr "Keine Lokale Datenbank gefunden (oder Fehler in existierender Datenbank)
msgid "unknown"
msgstr "unbekannt"
#: src/gpodder/libwget.py:291
#: src/gpodder/libwget.py:292
msgid "Download has been cancelled."
msgstr "Der Download wurde abgebrochen."
#: src/gpodder/libwget.py:293
#: src/gpodder/libwget.py:294
#, python-format
msgid "Download error. Wget exit code was: %d"
msgstr "Fehler beim Download. Wget's Exit-Status ist: %d"
@ -342,42 +350,46 @@ msgid "Download Status"
msgstr "Download-Status"
#: data/gpodder.glade.h:16
msgid "Download link:"
msgstr "Download-Link:"
#: data/gpodder.glade.h:17
msgid "Download to:"
msgstr "Herunterladen nach:"
#: data/gpodder.glade.h:17
#: data/gpodder.glade.h:18
msgid "Downloaded Podcasts"
msgstr "Heruntergeladene Podcasts"
#: data/gpodder.glade.h:18
#: data/gpodder.glade.h:19
msgid "Downloads"
msgstr "Downloads"
#: data/gpodder.glade.h:19
#: data/gpodder.glade.h:20
msgid "E_xport list..."
msgstr "Liste e_xportieren..."
#: data/gpodder.glade.h:20
#: data/gpodder.glade.h:21
msgid "Episode Information"
msgstr "Informationen zur Episode"
#: data/gpodder.glade.h:21
#: data/gpodder.glade.h:22
msgid "FTP Proxy:"
msgstr "FTP-Proxy:"
#: data/gpodder.glade.h:22
#: data/gpodder.glade.h:23
msgid "Feed URL:"
msgstr "Feed-Adresse:"
#: data/gpodder.glade.h:23
#: data/gpodder.glade.h:24
msgid "General"
msgstr "Allgemeines"
#: data/gpodder.glade.h:24
#: data/gpodder.glade.h:25
msgid "HTTP Proxy:"
msgstr "HTTP-Proxy:"
#: data/gpodder.glade.h:25
#: data/gpodder.glade.h:26
msgid ""
"If you have to use a HTTP or FTP proxy server,\n"
"you can use the usual format of the environment variables:\n"
@ -389,123 +401,131 @@ msgstr ""
"\n"
"<b>http://benutzer:passwort@proxy_host:proxy_port/</b>"
#: data/gpodder.glade.h:29
#: data/gpodder.glade.h:30
msgid "Initializing..."
msgstr "Initialisiere..."
#: data/gpodder.glade.h:30
#: data/gpodder.glade.h:31
msgid "No cover available."
msgstr "Kein Cover verfügbar."
#: data/gpodder.glade.h:31
#: data/gpodder.glade.h:32
msgid "Play selected item"
msgstr "Ausgewähltes Element abspielen"
#: data/gpodder.glade.h:32
#: data/gpodder.glade.h:33
msgid "Player application:"
msgstr "Abspielprogramm:"
#: data/gpodder.glade.h:33
#: data/gpodder.glade.h:34
msgid "Proxy"
msgstr "Proxy"
#: data/gpodder.glade.h:34
#: data/gpodder.glade.h:35
msgid "Publication date:"
msgstr "Veröffentlichungsdatum:"
#: data/gpodder.glade.h:36
msgid "Save downloads in:"
msgstr "Downloads speichern in:"
#: data/gpodder.glade.h:35
#: data/gpodder.glade.h:37
msgid "Show \"gPodder downloads\" link"
msgstr "\"gPodder Downloads\"-Verknüpfung anzeigen"
#: data/gpodder.glade.h:36
#: data/gpodder.glade.h:38
msgid "Skip this channel when syncing to the iPod"
msgstr "Diesen Channel beim Synchronisieren überspringen"
#: data/gpodder.glade.h:37
#: data/gpodder.glade.h:39
msgid "Sync to Playlist:"
msgstr "Synchronisiere mit Wiedergabeliste:"
#: data/gpodder.glade.h:38
#: data/gpodder.glade.h:40
msgid "Sync to Podcasts playlist"
msgstr "Synchronisiere mit der Podcasts-Liste"
#: data/gpodder.glade.h:39
#: data/gpodder.glade.h:41
msgid "Synchronization"
msgstr "Synchronisierung"
#: data/gpodder.glade.h:40
#: data/gpodder.glade.h:42
msgid "Title:"
msgstr "Titel:"
#: data/gpodder.glade.h:41
#: data/gpodder.glade.h:43
msgid "Use environment variables"
msgstr "Benutze Umgebungsvariablen"
#: data/gpodder.glade.h:42
#: data/gpodder.glade.h:44
msgid "Website link:"
msgstr "Webseiten-Adresse:"
#: data/gpodder.glade.h:45
msgid "_About gPodder..."
msgstr "Üb_er gPodder..."
#: data/gpodder.glade.h:43
#: data/gpodder.glade.h:46
msgid "_Add channel..."
msgstr "Ch_annel abbonieren..."
#: data/gpodder.glade.h:44
#: data/gpodder.glade.h:47
msgid "_Channels"
msgstr "_Channels"
#: data/gpodder.glade.h:45
#: data/gpodder.glade.h:48
msgid "_Check for Updates"
msgstr "Na_ch Aktualisierungen suchen"
#: data/gpodder.glade.h:46
#: data/gpodder.glade.h:49
msgid "_Cleanup iPod podcasts"
msgstr "iP_od-Podcasts löschen"
#: data/gpodder.glade.h:47
#: data/gpodder.glade.h:50
msgid "_Close"
msgstr "S_chließen"
#: data/gpodder.glade.h:48
#: data/gpodder.glade.h:51
msgid "_Edit channel..."
msgstr "_Editiere Channel..."
#: data/gpodder.glade.h:49
#: data/gpodder.glade.h:52
msgid "_Help"
msgstr "_Hilfe"
#: data/gpodder.glade.h:50
#: data/gpodder.glade.h:53
msgid "_Podcasts"
msgstr "_Podcasts"
#: data/gpodder.glade.h:51
#: data/gpodder.glade.h:54
msgid "_Preferences..."
msgstr "Ein_s_tellungen..."
#: data/gpodder.glade.h:52
#: data/gpodder.glade.h:55
msgid "_Remove channel"
msgstr "Entfe_rne Channel"
#: data/gpodder.glade.h:53
#: data/gpodder.glade.h:56
msgid "_Sync to iPod"
msgstr "iPod _synchronisieren"
#: data/gpodder.glade.h:54
#: data/gpodder.glade.h:57
msgid "gPodder - your podcast catcher."
msgstr "gPodder - dein podcast catcher."
#: data/gpodder.glade.h:55
#: data/gpodder.glade.h:58
msgid "gPodder Channel Editor"
msgstr "gPodder Channel-Editor"
#: data/gpodder.glade.h:56
#: data/gpodder.glade.h:59
msgid "gPodder properties"
msgstr "gPodder Einstellungen"
#: data/gpodder.glade.h:57
#: data/gpodder.glade.h:60
msgid "iPod"
msgstr "iPod"
#: data/gpodder.glade.h:58
#: data/gpodder.glade.h:61
msgid "iPod mountpoint:"
msgstr "iPod Einhängepunkt:"

View File

@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: gPodder 0.7-svn\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2006-04-08 10:32+0200\n"
"POT-Creation-Date: 2006-04-09 18:14+0200\n"
"PO-Revision-Date: 2006-04-08 00:36+0100\n"
"Last-Translator: Alain TAUCH <contrib@maisondubonheur.com>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@ -27,36 +27,36 @@ msgstr "supprimer le flux: %s"
msgid "%s is not a valid id"
msgstr "%s n'est pas un ID valide"
#: src/gpodder/gpodder.py:70
#: src/gpodder/gpodder.py:71
msgid "Contributors / patch writers:"
msgstr "Contributeurs:"
#: src/gpodder/gpodder.py:74
#: src/gpodder/gpodder.py:75
msgid "See the AUTHORS file for all contributors"
msgstr "Voir le fichier AUTHORS pour la liste complète des contributeurs."
#: src/gpodder/gpodder.py:131 src/gpodder/gpodder.py:146
#: src/gpodder/gpodder.py:152
#: src/gpodder/gpodder.py:135 src/gpodder/gpodder.py:150
#: src/gpodder/gpodder.py:156
msgid "Episode"
msgstr "Émission"
#: src/gpodder/gpodder.py:136
#: src/gpodder/gpodder.py:140
msgid "Size"
msgstr "Taille"
#: src/gpodder/gpodder.py:155
#: src/gpodder/gpodder.py:159
msgid "Speed"
msgstr "Vitesse"
#: src/gpodder/gpodder.py:158
#: src/gpodder/gpodder.py:162
msgid "Progress"
msgstr "Progression"
#: src/gpodder/gpodder.py:182
#: src/gpodder/gpodder.py:186
msgid "Channel Info"
msgstr "Informations sur le flux RSS"
#: src/gpodder/gpodder.py:199
#: src/gpodder/gpodder.py:205
#, python-format
msgid ""
"<b>gPodder development version %s</b>\n"
@ -65,11 +65,15 @@ msgstr ""
"<b>Ceci est la version de développement %s de gPodder</b>\n"
"Cette version est instable mais comprend de nouvelles fonctionnalités :)"
#: src/gpodder/gpodder.py:226
#: src/gpodder/gpodder.py:220
msgid "iPod connected. Do you want to sync now?"
msgstr ""
#: src/gpodder/gpodder.py:249
msgid "No downloaded podcasts found."
msgstr "Aucun podcast n'a été encore téléchargé."
#: src/gpodder/gpodder.py:236
#: src/gpodder/gpodder.py:259
msgid ""
"<b>No channels found</b>\n"
"\n"
@ -81,19 +85,19 @@ msgstr ""
"Cliquer sur <b><i>Flux</i></b> &gt; <b><i>Ajouter un flux RSS..</i></b> pour "
"ajouter un nouveau flux RSS."
#: src/gpodder/gpodder.py:238
#: src/gpodder/gpodder.py:261
msgid "gPodder message"
msgstr "Message gPodder"
#: src/gpodder/gpodder.py:246
#: src/gpodder/gpodder.py:269
msgid "Do you really want to do this?"
msgstr "Voulez vous continuer ?"
#: src/gpodder/gpodder.py:246
#: src/gpodder/gpodder.py:269
msgid "gPodder confirmation"
msgstr "Demande de confirmation gpodder"
#: src/gpodder/gpodder.py:311
#: src/gpodder/gpodder.py:334
msgid ""
"There has been an error adding the channel.\n"
"Maybe the URL is wrong?"
@ -101,11 +105,11 @@ msgstr ""
"L'ajout du flux a echoué.\n"
"L'URL est sans doute erronée?"
#: src/gpodder/gpodder.py:317 src/gpodder/gpodder.py:454
#: src/gpodder/gpodder.py:340 src/gpodder/gpodder.py:476
msgid "Fetching channel index..."
msgstr "Récupération de l'index du flux RSS"
#: src/gpodder/gpodder.py:330
#: src/gpodder/gpodder.py:353
msgid ""
"Could not add new channel.\n"
"Only <b>http://</b> and <b>ftp://</b> URLs supported at the moment."
@ -114,16 +118,16 @@ msgstr ""
"Seules les URL <b>http://</b> et <b>ftp://</b> sont supportées pour le "
"moment."
#: src/gpodder/gpodder.py:341 src/gpodder/gpodder.py:354
#, python-format
#: src/gpodder/gpodder.py:362 src/gpodder/gpodder.py:373
#, fuzzy
msgid ""
"Cannot access iPod at %s.\n"
"Make sure your iPod is connected and mounted."
"Cannot access iPod.\n"
"Make sure your iPod is connected."
msgstr ""
"Impossible d'accéder à l'iPod a partir de %s.\n"
" Vérifiez que l'iPod est bien connecté et monté."
#: src/gpodder/gpodder.py:384
#: src/gpodder/gpodder.py:403
msgid ""
"<big><b>Updating feed cache</b></big>\n"
"\n"
@ -135,7 +139,7 @@ msgstr ""
"Merci de patienter pendant que gpodder met\n"
"à jour le cache des flux RSS..."
#: src/gpodder/gpodder.py:408
#: src/gpodder/gpodder.py:427
#, fuzzy
msgid "Do you really want to truncate the Podcasts playlist on your iPod?"
msgstr ""
@ -143,7 +147,7 @@ msgstr ""
"\n"
"%s"
#: src/gpodder/gpodder.py:447
#: src/gpodder/gpodder.py:469
msgid ""
"Cannot edit this channel.\n"
"\n"
@ -153,7 +157,7 @@ msgstr ""
"\n"
"Flux RSS introuvable."
#: src/gpodder/gpodder.py:476
#: src/gpodder/gpodder.py:498
#, python-format
msgid ""
"Do you really want to remove this channel?\n"
@ -164,7 +168,7 @@ msgstr ""
"\n"
"%s"
#: src/gpodder/gpodder.py:483
#: src/gpodder/gpodder.py:505
msgid ""
"Could not delete channel.\n"
"Probably no channel is selected."
@ -172,23 +176,23 @@ msgstr ""
"Impossible de supprimer ce flux.\n"
"Il n'y a sans doute pas de flux selectionné."
#: src/gpodder/gpodder.py:491
#: src/gpodder/gpodder.py:513
msgid "Your channel list is empty. Nothing to export."
msgstr "Votre liste de flux est vide. Il n'y a rien à exporter."
#: src/gpodder/gpodder.py:493
#: src/gpodder/gpodder.py:515
msgid "Export to OPML"
msgstr "Exporter au format OPML"
#: src/gpodder/gpodder.py:522
#: src/gpodder/gpodder.py:544
msgid "translator-credits"
msgstr "Alain Tauch <contrib@maisondubonheur.com>"
#: src/gpodder/gpodder.py:562
#: src/gpodder/gpodder.py:584
msgid "You have not selected an episode to download."
msgstr "Vous n'avez pas selectionné d'émission à télécharger."
#: src/gpodder/gpodder.py:577
#: src/gpodder/gpodder.py:599
msgid ""
"You have already downloaded this episode\n"
"or you are currently downloading it."
@ -196,7 +200,7 @@ msgstr ""
"Vous avez déjà téléchargé cette émission\n"
"ou elle est en cours de téléchargement."
#: src/gpodder/gpodder.py:602
#: src/gpodder/gpodder.py:624
#, python-format
msgid ""
"Do you really want to cancel this download?\n"
@ -207,11 +211,11 @@ msgstr ""
"\n"
"%s"
#: src/gpodder/gpodder.py:605 src/gpodder/gpodder.py:642
#: src/gpodder/gpodder.py:627 src/gpodder/gpodder.py:669
msgid "No episode selected."
msgstr "Aucune émission sélectionnée."
#: src/gpodder/gpodder.py:668
#: src/gpodder/gpodder.py:695
#, python-format
msgid ""
"Do you really want to remove this episode?\n"
@ -222,21 +226,21 @@ msgstr ""
"\n"
"%s"
#: src/gpodder/gpodder.py:678
#: src/gpodder/gpodder.py:705
msgid "Could not delete downloaded podcast."
msgstr "La suppression du podcast a échoué"
#: src/gpodder/gpodder.py:718 src/gpodder/gpodder.py:719
#: src/gpodder/gpodder.py:745 src/gpodder/gpodder.py:746
#: data/gpodder.glade.h:1
msgid "(unknown)"
msgstr "(inconnu(e))"
#: src/gpodder/gpodder.py:946
#: src/gpodder/gpodder.py:987
#, python-format
msgid "%d of %d"
msgstr "%d sur %d"
#: src/gpodder/gpodder.py:989
#: src/gpodder/gpodder.py:1030
msgid ""
"Please do not call gpodder.py directly. Instead, call the gpodder binary."
msgstr ""
@ -255,16 +259,21 @@ msgstr "T
msgid "gPodder channel list"
msgstr "Liste des flux RSS gPodder"
#: src/gpodder/libipodsync.py:94
#: src/gpodder/libipodsync.py:112
msgid "Saving iPod database..."
msgstr "Sauvegarde la base de données de l'iPod..."
#: src/gpodder/libipodsync.py:180
#: src/gpodder/libipodsync.py:201
#, python-format
msgid "Complete: %s"
msgstr "Progression: %s"
#: src/gpodder/liblocdbwriter.py:49
#: src/gpodder/libipodsync.py:224
#, python-format
msgid "%s (to \"%s\")"
msgstr ""
#: src/gpodder/liblocdbwriter.py:42
msgid "local download database, generated by gPodder"
msgstr "Base de donnée locale, générée par gPodder"
@ -272,7 +281,7 @@ msgstr "Base de donn
msgid "gPodder subscription list (exported)"
msgstr "Liste des flux RSS de gPodder (export)"
#: src/gpodder/libpodcasts.py:306
#: src/gpodder/libpodcasts.py:304
msgid "No LocalDB found or error in existing LocalDB."
msgstr "Base de donnée introuvable ou corrompue"
@ -281,11 +290,11 @@ msgstr "Base de donn
msgid "unknown"
msgstr "inconnu(e)"
#: src/gpodder/libwget.py:291
#: src/gpodder/libwget.py:292
msgid "Download has been cancelled."
msgstr "Le téléchargement a été annulé."
#: src/gpodder/libwget.py:293
#: src/gpodder/libwget.py:294
#, python-format
msgid "Download error. Wget exit code was: %d"
msgstr "Erreur de téléchargement. Code de retour de wget: %d"
@ -347,42 +356,47 @@ msgid "Download Status"
msgstr "Téléchargements en cours"
#: data/gpodder.glade.h:16
msgid "Download to:"
#, fuzzy
msgid "Download link:"
msgstr "Enregistrer dans:"
#: data/gpodder.glade.h:17
msgid "Download to:"
msgstr "Enregistrer dans:"
#: data/gpodder.glade.h:18
msgid "Downloaded Podcasts"
msgstr "Podcasts téléchargés"
#: data/gpodder.glade.h:18
#: data/gpodder.glade.h:19
msgid "Downloads"
msgstr "Téléchargements"
#: data/gpodder.glade.h:19
#: data/gpodder.glade.h:20
msgid "E_xport list..."
msgstr "E_xporter la liste..."
#: data/gpodder.glade.h:20
#: data/gpodder.glade.h:21
msgid "Episode Information"
msgstr "Informations sur l'épisode"
#: data/gpodder.glade.h:21
#: data/gpodder.glade.h:22
msgid "FTP Proxy:"
msgstr "Proxy FTP:"
#: data/gpodder.glade.h:22
#: data/gpodder.glade.h:23
msgid "Feed URL:"
msgstr "flux RSS:"
#: data/gpodder.glade.h:23
#: data/gpodder.glade.h:24
msgid "General"
msgstr "Général"
#: data/gpodder.glade.h:24
#: data/gpodder.glade.h:25
msgid "HTTP Proxy:"
msgstr "Proxy HTTP:"
#: data/gpodder.glade.h:25
#: data/gpodder.glade.h:26
msgid ""
"If you have to use a HTTP or FTP proxy server,\n"
"you can use the usual format of the environment variables:\n"
@ -394,126 +408,134 @@ msgstr ""
"\n"
"<b>http://utilisateur:motdepasse@proxy:port</b>"
#: data/gpodder.glade.h:29
#: data/gpodder.glade.h:30
msgid "Initializing..."
msgstr "Initialisation..."
#: data/gpodder.glade.h:30
#: data/gpodder.glade.h:31
msgid "No cover available."
msgstr "Logo indisponible."
#: data/gpodder.glade.h:31
#: data/gpodder.glade.h:32
msgid "Play selected item"
msgstr "Lire la sélection"
#: data/gpodder.glade.h:32
#: data/gpodder.glade.h:33
msgid "Player application:"
msgstr "Application pour la lecture des podcasts:"
#: data/gpodder.glade.h:33
#: data/gpodder.glade.h:34
msgid "Proxy"
msgstr "Proxy"
#: data/gpodder.glade.h:34
#: data/gpodder.glade.h:35
msgid "Publication date:"
msgstr ""
#: data/gpodder.glade.h:36
msgid "Save downloads in:"
msgstr "Enregistrer les téléchargements dans:"
#: data/gpodder.glade.h:35
#: data/gpodder.glade.h:37
msgid "Show \"gPodder downloads\" link"
msgstr "Afficher le lien \"Téléchargements gPodder\""
#: data/gpodder.glade.h:36
#: data/gpodder.glade.h:38
msgid "Skip this channel when syncing to the iPod"
msgstr ""
#: data/gpodder.glade.h:37
#: data/gpodder.glade.h:39
#, fuzzy
msgid "Sync to Playlist:"
msgstr "_Synchroniser l'iPod"
#: data/gpodder.glade.h:38
#: data/gpodder.glade.h:40
msgid "Sync to Podcasts playlist"
msgstr ""
#: data/gpodder.glade.h:39
#: data/gpodder.glade.h:41
msgid "Synchronization"
msgstr "Synchronisation"
#: data/gpodder.glade.h:40
#: data/gpodder.glade.h:42
msgid "Title:"
msgstr "Titre:"
#: data/gpodder.glade.h:41
#: data/gpodder.glade.h:43
msgid "Use environment variables"
msgstr "Utiliser les variables d'environnement"
#: data/gpodder.glade.h:42
#: data/gpodder.glade.h:44
msgid "Website link:"
msgstr ""
#: data/gpodder.glade.h:45
msgid "_About gPodder..."
msgstr "_A propos de gPodder..."
#: data/gpodder.glade.h:43
#: data/gpodder.glade.h:46
msgid "_Add channel..."
msgstr "_Ajouter un flux RSS..."
#: data/gpodder.glade.h:44
#: data/gpodder.glade.h:47
msgid "_Channels"
msgstr "_Flux"
#: data/gpodder.glade.h:45
#: data/gpodder.glade.h:48
msgid "_Check for Updates"
msgstr "_Mises à jour"
#: data/gpodder.glade.h:46
#: data/gpodder.glade.h:49
#, fuzzy
msgid "_Cleanup iPod podcasts"
msgstr "Nettoyage de l'iPod"
#: data/gpodder.glade.h:47
#: data/gpodder.glade.h:50
msgid "_Close"
msgstr "_Quitter"
#: data/gpodder.glade.h:48
#: data/gpodder.glade.h:51
msgid "_Edit channel..."
msgstr "_Modifier le flux RSS"
#: data/gpodder.glade.h:49
#: data/gpodder.glade.h:52
msgid "_Help"
msgstr "_Aide"
#: data/gpodder.glade.h:50
#: data/gpodder.glade.h:53
msgid "_Podcasts"
msgstr "_Podcasts"
#: data/gpodder.glade.h:51
#: data/gpodder.glade.h:54
msgid "_Preferences..."
msgstr "_Préférences"
#: data/gpodder.glade.h:52
#: data/gpodder.glade.h:55
msgid "_Remove channel"
msgstr "_Supprimer le flux RSS"
#: data/gpodder.glade.h:53
#: data/gpodder.glade.h:56
msgid "_Sync to iPod"
msgstr "_Synchroniser l'iPod"
#: data/gpodder.glade.h:54
#: data/gpodder.glade.h:57
msgid "gPodder - your podcast catcher."
msgstr "gPodder - your podcast catcher."
#: data/gpodder.glade.h:55
#: data/gpodder.glade.h:58
msgid "gPodder Channel Editor"
msgstr "Editeur de flux RSS"
#: data/gpodder.glade.h:56
#: data/gpodder.glade.h:59
msgid "gPodder properties"
msgstr "Préférences gPodder"
#: data/gpodder.glade.h:57
#: data/gpodder.glade.h:60
#, fuzzy
msgid "iPod"
msgstr "iPod:"
#: data/gpodder.glade.h:58
#: data/gpodder.glade.h:61
msgid "iPod mountpoint:"
msgstr "Point de montage de l'iPod:"

View File

@ -1,7 +1,7 @@
.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.36.
.TH GPODDER "1" "April 2006" "gpodder 0.7+svn20060408 2006-04-08" "User Commands"
.TH GPODDER "1" "April 2006" "gpodder 0.7+svn20060408 2006-04-09" "User Commands"
.SH NAME
gpodder \- manual page for gpodder 0.7+svn20060408 2006-04-08
gpodder \- manual page for gpodder 0.7+svn20060408 2006-04-09
.SH DESCRIPTION
usage: gpodder [options] arg1 arg2
.PP
@ -29,8 +29,8 @@ Update channel list, download new podcasts
\fB\-u\fR, \fB\-\-update\fR
Update channel list and exit
.TP
\fB\-aFEEDURL\fR, \fB\-\-add\fR=\fIFEEDURL\fR
\fB\-a\fR FEEDURL, \fB\-\-add\fR=\fIFEEDURL\fR
Subscribe to channel from FEEDURL
.TP
\fB\-dn\fR, \fB\-\-delete\fR=\fIn\fR
\fB\-d\fR n, \fB\-\-delete\fR=\fIn\fR
Delete channel with ID n

View File

@ -1,4 +1,4 @@
#!/usr/bin/env python
#!/usr/bin/env python2.4
#
# gPodder (a media aggregator / podcast client)

View File

@ -59,6 +59,7 @@ from libplayers import UserAppsReader
from libipodsync import gPodder_iPodSync
from libipodsync import ipod_supported
from libipodsync import iPodManagerSingleton
# for isDebugging:
import libgpodder
@ -101,6 +102,9 @@ class Gpodder(SimpleGladeApp):
# User Apps Reader
uar = None
# D-BUSified iPod Manager
ipod_mgr = None
def __init__(self, path="gpodder.glade",
root="gPodder",
domain=app_name, **kwargs):
@ -191,8 +195,10 @@ class Gpodder(SimpleGladeApp):
# disable iPod sync features if not supported
if not ipod_supported():
self.cleanup_ipod.set_sensitive( False)
self.sync_to_ipod.set_sensitive( False)
ipod_functions( False)
else:
self.ipod_mgr = iPodManagerSingleton()
self.ipod_mgr.register( self.ipod_changed_callback)
# if we are running a SVN-based version, notify the user :)
if app_version.rfind( "svn") != -1:
@ -200,7 +206,24 @@ class Gpodder(SimpleGladeApp):
#-- Gpodder.new }
#-- Gpodder custom methods {
# Write your own methods here
def ipod_functions( self, enable = True):
self.cleanup_ipod.set_sensitive( enable)
self.sync_to_ipod.set_sensitive( enable)
def ipod_changed_callback( self, ipod):
if ipod != None:
if libgpodder.isDebugging():
print '(ipod) iPod attached / modified'
connected = ipod.mount_point != None
self.ipod_functions( connected)
if connected:
if self.showConfirmation( _('iPod connected. Do you want to sync now?')):
self.on_sync_to_ipod_activate( self.gPodder)
else:
if libgpodder.isDebugging():
print '(ipod) iPod removed / not attached'
self.ipod_functions( False)
def updateComboBox( self):
self.channels_model = channelsToModel( self.channels)
@ -334,11 +357,9 @@ class Gpodder(SimpleGladeApp):
return self.comboDownloaded.get_model().get_value( iter, 0)
def sync_to_ipod_proc( self, sync_win):
gpl = gPodderLib()
gpl.loadConfig()
sync = gPodder_iPodSync( ipod_mount = gpl.ipod_mount, callback_status = sync_win.set_status, callback_progress = sync_win.set_progress, callback_done = sync_win.close)
sync = gPodder_iPodSync( callback_status = sync_win.set_status, callback_progress = sync_win.set_progress, callback_done = sync_win.close)
if not sync.open():
gobject.idle_add( self.showMessage, _('Cannot access iPod at %s.\nMake sure your iPod is connected and mounted.') % gpl.ipod_mount)
gobject.idle_add( self.showMessage, _('Cannot access iPod.\nMake sure your iPod is connected.'))
sync.close()
return False
for channel in self.downloaded_channels:
@ -347,11 +368,9 @@ class Gpodder(SimpleGladeApp):
sync.close()
def ipod_cleanup_proc( self, sync_win):
gpl = gPodderLib()
gpl.loadConfig()
sync = gPodder_iPodSync( ipod_mount = gpl.ipod_mount, callback_status = sync_win.set_status, callback_progress = sync_win.set_progress, callback_done = sync_win.close)
sync = gPodder_iPodSync( callback_status = sync_win.set_status, callback_progress = sync_win.set_progress, callback_done = sync_win.close)
if not sync.open():
gobject.idle_add( self.showMessage, _('Cannot access iPod at %s.\nMake sure your iPod is connected and mounted.') % gpl.ipod_mount)
gobject.idle_add( self.showMessage, _('Cannot access iPod.\nMake sure your iPod is connected.'))
sync.close()
return False
sync.clean_playlist()
@ -424,6 +443,9 @@ class Gpodder(SimpleGladeApp):
self.uar.read()
prop = Gpodderproperties()
prop.set_uar( self.uar)
#if self.ipod_mgr != None:
# self.ipod_mgr.register( prop.update_mountpoint)
# prop.on_close = lambda: self.ipod_mgr.unregister( prop.update_mountpoint)
#-- Gpodder.on_itemPreferences_activate }
#-- Gpodder.on_itemAddChannel_activate {
@ -810,9 +832,16 @@ class Gpodderproperties(SimpleGladeApp):
self.comboPlayerApp.pack_start( cellrenderer, True)
self.comboPlayerApp.add_attribute( cellrenderer, 'markup', 0)
# end setup cell renderers
self.on_close = None
#-- Gpodderproperties.new }
#-- Gpodderproperties custom methods {
def update_mountpoint( self, ipod):
if ipod == None or ipod.mount_point == None:
self.iPodMountpoint.set_text( '')
else:
self.iPodMountpoint.set_text( ipod.mount_point)
def set_uar( self, uar):
self.comboPlayerApp.set_model( uar.get_applications_as_model())
# try to activate an item
@ -839,6 +868,8 @@ class Gpodderproperties(SimpleGladeApp):
def on_gPodderProperties_destroy(self, widget, *args):
if libgpodder.isDebugging():
print "on_gPodderProperties_destroy called with self.%s" % widget.get_name()
if self.on_close != None:
self.on_close()
#-- Gpodderproperties.on_gPodderProperties_destroy }
#-- Gpodderproperties.on_comboPlayerApp_changed {

View File

@ -34,6 +34,10 @@ enable_ipod_functions = True
try:
import gpod
import eyeD3
import dbus
# the following is taken from hal-device-manager source
if getattr( dbus, 'version', (0,0,0)) >= (0,41,0):
import dbus.glib
except:
enable_ipod_functions = False
@ -53,6 +57,18 @@ def ipod_supported():
return enable_ipod_functions
__ipodmanager = None
def iPodManagerSingleton():
global __ipodmanager
if __ipodmanager == None:
__ipodmanager = iPodManager()
return __ipodmanager
class gPodder_iPodSync(object):
itdb = None
ipod_mount = '' # mountpoint for ipod
@ -62,24 +78,26 @@ class gPodder_iPodSync(object):
callback_progress = None
callback_status = None
callback_done = None
ipod_mgr = None
def __init__( self, ipod_mount = '/media/ipod/', callback_progress = None, callback_status = None, callback_done = None):
def __init__( self, callback_progress = None, callback_status = None, callback_done = None):
if not ipod_supported():
if libgpodder.isDebugging():
print '(ipodsync) iPod functions not supported. (libgpod + eyed3 needed)'
self.ipod_mount = ipod_mount
self.ipod_mgr = iPodManagerSingleton()
self.ipod_mount = self.ipod_mgr.ipod.mount_point
self.callback_progress = callback_progress
self.callback_status = callback_status
self.callback_done = callback_done
def open( self):
if not ipod_supported():
return False
if self.itdb == None:
self.itdb = gpod.itdb_parse( self.ipod_mount, None)
self.itdb = gpod.itdb_parse( str( self.ipod_mount), None)
if not self.itdb:
return False
self.itdb.mountpoint = self.ipod_mount
self.itdb.mountpoint = str(self.ipod_mount)
self.pl_master = gpod.sw_get_playlists( self.itdb)[0]
self.pl_podcasts = gpod.itdb_playlist_podcasts( self.itdb)
return True
@ -98,6 +116,9 @@ class gPodder_iPodSync(object):
if self.callback_done != None:
time.sleep(1)
gobject.idle_add( self.callback_done)
if self.ipod_mgr != None:
if self.ipod_mgr.ipod != None:
os.system( 'sudo eject %s' % ( self.ipod_mgr.ipod.device ))
return True
def remove_from_ipod( self, track, playlists):
@ -254,3 +275,139 @@ class gPodder_iPodSync(object):
# silently ignore :)
pass
class iPod(object):
__mountpoint = None
def __init__( self, udi):
self.is_connected = False
self.device = None # /dev/sda
self.children = []
self.udi = udi
if libgpodder.isDebugging():
print '(iPod) new with udi: %s' % udi
def has( self, udi):
return udi in self.children
def add( self, udi):
if libgpodder.isDebugging():
print '(iPod) adding: %s' % udi
self.children.append( udi)
def remove( self, udi):
if libgpodder.isDebugging():
print '(iPod) removing: %s' % udi
self.children.remove( udi)
def get_mount_point( self):
return self.__mountpoint
def set_mount_point( self, mount_point):
if libgpodder.isDebugging():
print '(iPod) mountpoint: %s' % mount_point
self.__mountpoint = mount_point
if self.__mountpoint[-1] != '/':
self.__mountpoint = self.__mountpoint + '/'
mount_point = property( fget = get_mount_point, fset = set_mount_point )
def blowup( self):
if libgpodder.isDebugging():
print '(iPod) blown up!'
class iPodManager(object):
mgr = 'org.freedesktop.Hal.Manager'
mgr_path = '/org/freedesktop/Hal/Manager'
service = 'org.freedesktop.Hal'
interface = 'org.freedesktop.Hal.Device'
ipod_key = 'portable_audio_player.storage_device'
ipod_value = '/org/freedesktop/Hal/devices/storage_model_iPod'
ipod_parent_key = 'info.parent'
bus = None
__ipod = None
listeners = []
def __init__( self):
self.dbus_connect()
def dbus_connect( self):
self.bus = dbus.SystemBus()
self.bus.add_signal_receiver( self.device_added, 'DeviceAdded', self.mgr, self.service, self.mgr_path)
self.bus.add_signal_receiver( self.device_removed, 'DeviceRemoved', self.mgr, self.service, self.mgr_path)
def device_added( self, udi):
if libgpodder.isDebugging():
print '(iPodManager) device_added: %s' % udi
self.notify_me( udi)
props = self.get_properties( udi)
# add new iPod if connected
if props.has_key( self.ipod_key):
if props[self.ipod_key] == self.ipod_value:
if libgpodder.isDebugging():
print '(iPodManager) received device_added'
self.ipod = iPod( udi)
self.ipod.device = props['block.device']
self.notify_all()
# iPod-related
if self.ipod != None and props.has_key( self.ipod_parent_key) and props[self.ipod_parent_key] == self.ipod_value:
self.ipod.add( udi)
def notify_me( self, udi):
callback = lambda *args: self.device_modified( udi, *args)
self.bus.add_signal_receiver( callback, 'PropertyModified', self.interface, self.service, udi)
def device_removed( self, udi):
if libgpodder.isDebugging():
print '(iPodManager) device_removed: %s' % udi
# iPod-related
if self.ipod != None and self.ipod.has( udi):
self.ipod.remove( udi)
if self.ipod != None and self.ipod.udi == udi:
if libgpodder.isDebugging():
print '(iPodManager) received device_removed'
self.ipod.blowup()
self.ipod = None
self.notify_all()
def device_modified( self, udi, num_changes, list):
props = self.get_properties( udi)
for item in list:
key = item[0]
if self.ipod != None:
if key == 'volume.mount_point':
self.ipod.mount_point = props[key]
self.notify_all()
def get_properties( self, udi):
object = self.bus.get_object( self.service, udi)
return object.GetAllProperties( dbus_interface = self.interface)
def get_ipod( self):
return self.__ipod
def notify_all( self):
for listener in self.listeners:
listener( self.ipod)
def set_ipod( self, ipod):
self.__ipod = ipod
ipod = property( fget = get_ipod, fset = set_ipod )
def register( self, callback):
if not callback in self.listeners:
self.listeners.append( callback)
callback( self.ipod)
def unregister( self, callback):
if callback in self.listeners:
self.listeners.remove( callback)