Lots of code clean-ups, translation update, itunes image support :) (for full list, please see changelog...)
git-svn-id: svn://svn.berlios.de/gpodder@65 b0d088ad-0a06-0410-aad2-9ed5178a7e87
This commit is contained in:
parent
498fbb1a1b
commit
3b3d806d38
10
ChangeLog
10
ChangeLog
|
@ -1,3 +1,13 @@
|
|||
Fri, 31 Mar 2006 18:13:16 +0200 <thp@perli.net>
|
||||
* Major code clean-up in gpodder.py and other modules
|
||||
* Updated strings in all source code + gladefile (for i18n)
|
||||
* Added support for itunes image ("Cover") in channel editor
|
||||
* Removed orphaned (for a very long time) download status window
|
||||
* User applications (from libplayers) only readed once now
|
||||
* Fixed gPodder window icon when running with "make test"
|
||||
* Updated gladefile (removed status, non-translatable strings)
|
||||
* Updated data/messages.pot and updated german translation (de.po)
|
||||
|
||||
Thu, 30 Mar 2006 23:00:44 +0200 <thp@perli.net>
|
||||
* Modified makefile for i18n purposes
|
||||
* Added data/po directory structure
|
||||
|
|
2
Makefile
2
Makefile
|
@ -62,7 +62,7 @@ $(GLADEGETTEXT): $(GLADEFILE)
|
|||
intltool-extract --type=gettext/glade $(GLADEFILE)
|
||||
|
||||
$(MESSAGESPOT): src/gpodder/*.py $(GLADEGETTEXT) $(BINFILE)
|
||||
xgettext -j -k_ -kN_ -o $(MESSAGESPOT) src/gpodder/*.py $(GLADEGETTEXT) $(BINFILE)
|
||||
xgettext -k_ -kN_ -o $(MESSAGESPOT) src/gpodder/*.py $(GLADEGETTEXT) $(BINFILE)
|
||||
sed -e 's/SOME DESCRIPTIVE TITLE/gPodder translation template/g' -e 's/YEAR THE PACKAGE'"'"'S COPYRIGHT HOLDER/2006 Thomas Perl/g' -e 's/FIRST AUTHOR <EMAIL@ADDRESS>, YEAR/Thomas Perl <thp@perli.net>, 2006/g' -e 's/PACKAGE VERSION/gPodder '$(GPODDERVERSION)'/g' -e 's/PACKAGE/gPodder/g' $(MESSAGESPOT) > $(MESSAGESPOT).tmp
|
||||
mv $(MESSAGESPOT).tmp $(MESSAGESPOT)
|
||||
|
||||
|
|
5
TODO
5
TODO
|
@ -1,9 +1,8 @@
|
|||
|
||||
== 0.7 or afterwards ==
|
||||
|
||||
* i18n support (http://docs.python.org/lib/node333.html)
|
||||
more help here: http://www.async.com.br/faq/pygtk/index.py?querytype=simple&query=gettext&req=search
|
||||
(might look into this soon ) -- thp <thp@perli.net>
|
||||
* add i18n files to installed data
|
||||
* do more translations (you can contribute here, of course :)
|
||||
|
||||
* viewing pod info such as pubdate/description
|
||||
would've been nice.. It would give a better over view on your
|
||||
|
|
24
bin/gpodder
24
bin/gpodder
|
@ -36,29 +36,29 @@ def main(argv=None):
|
|||
|
||||
parser.add_option("-v", "--verbose",
|
||||
action="store_true", dest="verbose", default=False,
|
||||
help=_("print extra information"))
|
||||
help=_("Be more verbose"))
|
||||
|
||||
parser.add_option("--debug",
|
||||
action="store_true", dest="debug", default=False,
|
||||
help=_("run local version for debugging"))
|
||||
help=_("Run local version in current directory"))
|
||||
|
||||
parser.add_option("-l", "--list",
|
||||
action="store_true", dest="list", default=False,
|
||||
help=_("list all channel subscriptions"))
|
||||
help=_("List all channel subscriptions"))
|
||||
|
||||
parser.add_option("-r", "--run",
|
||||
action="store_true", dest="run", default=False,
|
||||
help=_("update channels and download new podcasts"))
|
||||
help=_("Update channel list, download new podcasts"))
|
||||
|
||||
parser.add_option("-u", "--update",
|
||||
action="store_true", dest="update", default=False,
|
||||
help=_("update channels"))
|
||||
help=_("Update channel list and exit"))
|
||||
|
||||
parser.add_option("-a", "--add", dest="add",
|
||||
help=_("add FEEDURL to channel subscriptions"), metavar="FEEDURL")
|
||||
help=_("Subscribe to channel from FEEDURL"), metavar="FEEDURL")
|
||||
|
||||
parser.add_option("-d", "--delete", dest="delete",
|
||||
help=_("delete channel n"), metavar="n")
|
||||
help=_("Delete channel with ID n"), metavar="n")
|
||||
|
||||
|
||||
(options, args) = parser.parse_args(argv)
|
||||
|
@ -76,10 +76,8 @@ def main(argv=None):
|
|||
from gpodder import console
|
||||
which_wget = console.testForWget()
|
||||
if which_wget == "":
|
||||
print _("ERROR: You do not seem to have a usable \"wget\" binary in your path.")
|
||||
print _("Error: cannot find wget.")
|
||||
return 20
|
||||
else:
|
||||
print _("Found wget: %s") % which_wget
|
||||
# which_wget
|
||||
|
||||
if options.list:
|
||||
|
@ -95,15 +93,15 @@ def main(argv=None):
|
|||
if options.add != None and options.add != "" and (options.add[:4] == "http" or options.add[:3] == "ftp"):
|
||||
console.add_channel(options.add)
|
||||
else:
|
||||
print _('unknown channel: %s') % options.add
|
||||
print _('Cannot add channel: %s') % options.add
|
||||
|
||||
elif options.delete:
|
||||
try:
|
||||
chid = int(options.delete)
|
||||
console.del_channel(chid)
|
||||
print _("channel IDs may have changed, list before deleting again")
|
||||
print _("Channel IDs may have changed, list before deleting again.")
|
||||
except ValueError:
|
||||
print _('%s is not a valid id') %options.delete
|
||||
print _('Not a valid channel ID: %s') %options.delete
|
||||
|
||||
else:
|
||||
#default run gui
|
||||
|
|
|
@ -1024,288 +1024,6 @@
|
|||
</child>
|
||||
</widget>
|
||||
|
||||
<widget class="GtkWindow" id="gPodderStatus">
|
||||
<property name="visible">True</property>
|
||||
<property name="title" translatable="yes">gPodder Download Status</property>
|
||||
<property name="type">GTK_WINDOW_TOPLEVEL</property>
|
||||
<property name="window_position">GTK_WIN_POS_CENTER</property>
|
||||
<property name="modal">False</property>
|
||||
<property name="resizable">True</property>
|
||||
<property name="destroy_with_parent">False</property>
|
||||
<property name="decorated">True</property>
|
||||
<property name="skip_taskbar_hint">False</property>
|
||||
<property name="skip_pager_hint">False</property>
|
||||
<property name="type_hint">GDK_WINDOW_TYPE_HINT_NORMAL</property>
|
||||
<property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
|
||||
<property name="focus_on_map">True</property>
|
||||
<property name="urgency_hint">False</property>
|
||||
<signal name="destroy" handler="on_gPodderStatus_destroy" last_modification_time="Sun, 30 Oct 2005 14:04:51 GMT"/>
|
||||
|
||||
<child>
|
||||
<widget class="GtkTable" id="waiterTable">
|
||||
<property name="border_width">10</property>
|
||||
<property name="visible">True</property>
|
||||
<property name="n_rows">5</property>
|
||||
<property name="n_columns">2</property>
|
||||
<property name="homogeneous">False</property>
|
||||
<property name="row_spacing">5</property>
|
||||
<property name="column_spacing">5</property>
|
||||
|
||||
<child>
|
||||
<widget class="GtkLabel" id="label7">
|
||||
<property name="visible">True</property>
|
||||
<property name="label" translatable="yes">Downloading from:</property>
|
||||
<property name="use_underline">False</property>
|
||||
<property name="use_markup">False</property>
|
||||
<property name="justify">GTK_JUSTIFY_LEFT</property>
|
||||
<property name="wrap">False</property>
|
||||
<property name="selectable">False</property>
|
||||
<property name="xalign">1</property>
|
||||
<property name="yalign">0.5</property>
|
||||
<property name="xpad">0</property>
|
||||
<property name="ypad">0</property>
|
||||
<property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
|
||||
<property name="width_chars">-1</property>
|
||||
<property name="single_line_mode">False</property>
|
||||
<property name="angle">0</property>
|
||||
</widget>
|
||||
<packing>
|
||||
<property name="left_attach">0</property>
|
||||
<property name="right_attach">1</property>
|
||||
<property name="top_attach">0</property>
|
||||
<property name="bottom_attach">1</property>
|
||||
<property name="x_options">fill</property>
|
||||
<property name="y_options"></property>
|
||||
</packing>
|
||||
</child>
|
||||
|
||||
<child>
|
||||
<widget class="GtkLabel" id="label8">
|
||||
<property name="visible">True</property>
|
||||
<property name="label" translatable="yes">Episode:</property>
|
||||
<property name="use_underline">False</property>
|
||||
<property name="use_markup">False</property>
|
||||
<property name="justify">GTK_JUSTIFY_LEFT</property>
|
||||
<property name="wrap">False</property>
|
||||
<property name="selectable">False</property>
|
||||
<property name="xalign">1</property>
|
||||
<property name="yalign">0.5</property>
|
||||
<property name="xpad">0</property>
|
||||
<property name="ypad">0</property>
|
||||
<property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
|
||||
<property name="width_chars">-1</property>
|
||||
<property name="single_line_mode">False</property>
|
||||
<property name="angle">0</property>
|
||||
</widget>
|
||||
<packing>
|
||||
<property name="left_attach">0</property>
|
||||
<property name="right_attach">1</property>
|
||||
<property name="top_attach">1</property>
|
||||
<property name="bottom_attach">2</property>
|
||||
<property name="x_options">fill</property>
|
||||
<property name="y_options"></property>
|
||||
</packing>
|
||||
</child>
|
||||
|
||||
<child>
|
||||
<widget class="GtkLabel" id="label9">
|
||||
<property name="visible">True</property>
|
||||
<property name="label" translatable="yes">Current speed:</property>
|
||||
<property name="use_underline">False</property>
|
||||
<property name="use_markup">False</property>
|
||||
<property name="justify">GTK_JUSTIFY_LEFT</property>
|
||||
<property name="wrap">False</property>
|
||||
<property name="selectable">False</property>
|
||||
<property name="xalign">1</property>
|
||||
<property name="yalign">0.5</property>
|
||||
<property name="xpad">0</property>
|
||||
<property name="ypad">0</property>
|
||||
<property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
|
||||
<property name="width_chars">-1</property>
|
||||
<property name="single_line_mode">False</property>
|
||||
<property name="angle">0</property>
|
||||
</widget>
|
||||
<packing>
|
||||
<property name="left_attach">0</property>
|
||||
<property name="right_attach">1</property>
|
||||
<property name="top_attach">2</property>
|
||||
<property name="bottom_attach">3</property>
|
||||
<property name="x_options">fill</property>
|
||||
<property name="y_options"></property>
|
||||
</packing>
|
||||
</child>
|
||||
|
||||
<child>
|
||||
<widget class="GtkHBox" id="hbox3">
|
||||
<property name="visible">True</property>
|
||||
<property name="homogeneous">False</property>
|
||||
<property name="spacing">0</property>
|
||||
|
||||
<child>
|
||||
<placeholder/>
|
||||
</child>
|
||||
|
||||
<child>
|
||||
<widget class="GtkButton" id="btnCancel">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">True</property>
|
||||
<property name="label">gtk-cancel</property>
|
||||
<property name="use_stock">True</property>
|
||||
<property name="relief">GTK_RELIEF_NORMAL</property>
|
||||
<property name="focus_on_click">True</property>
|
||||
<signal name="clicked" handler="on_btnCancel_clicked" last_modification_time="Sun, 30 Oct 2005 13:59:26 GMT"/>
|
||||
</widget>
|
||||
<packing>
|
||||
<property name="padding">0</property>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">False</property>
|
||||
<property name="pack_type">GTK_PACK_END</property>
|
||||
</packing>
|
||||
</child>
|
||||
</widget>
|
||||
<packing>
|
||||
<property name="left_attach">1</property>
|
||||
<property name="right_attach">2</property>
|
||||
<property name="top_attach">4</property>
|
||||
<property name="bottom_attach">5</property>
|
||||
<property name="y_options">fill</property>
|
||||
</packing>
|
||||
</child>
|
||||
|
||||
<child>
|
||||
<widget class="GtkLabel" id="label10">
|
||||
<property name="visible">True</property>
|
||||
<property name="label" translatable="yes">Progress:</property>
|
||||
<property name="use_underline">False</property>
|
||||
<property name="use_markup">False</property>
|
||||
<property name="justify">GTK_JUSTIFY_LEFT</property>
|
||||
<property name="wrap">False</property>
|
||||
<property name="selectable">False</property>
|
||||
<property name="xalign">1</property>
|
||||
<property name="yalign">0.5</property>
|
||||
<property name="xpad">0</property>
|
||||
<property name="ypad">0</property>
|
||||
<property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
|
||||
<property name="width_chars">-1</property>
|
||||
<property name="single_line_mode">False</property>
|
||||
<property name="angle">0</property>
|
||||
</widget>
|
||||
<packing>
|
||||
<property name="left_attach">0</property>
|
||||
<property name="right_attach">1</property>
|
||||
<property name="top_attach">3</property>
|
||||
<property name="bottom_attach">4</property>
|
||||
<property name="x_options">fill</property>
|
||||
<property name="y_options">expand</property>
|
||||
</packing>
|
||||
</child>
|
||||
|
||||
<child>
|
||||
<widget class="GtkLabel" id="labelFrom">
|
||||
<property name="visible">True</property>
|
||||
<property name="label" translatable="yes"><b>labelFrom</b></property>
|
||||
<property name="use_underline">False</property>
|
||||
<property name="use_markup">True</property>
|
||||
<property name="justify">GTK_JUSTIFY_LEFT</property>
|
||||
<property name="wrap">False</property>
|
||||
<property name="selectable">False</property>
|
||||
<property name="xalign">0</property>
|
||||
<property name="yalign">0.5</property>
|
||||
<property name="xpad">0</property>
|
||||
<property name="ypad">0</property>
|
||||
<property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
|
||||
<property name="width_chars">-1</property>
|
||||
<property name="single_line_mode">False</property>
|
||||
<property name="angle">0</property>
|
||||
</widget>
|
||||
<packing>
|
||||
<property name="left_attach">1</property>
|
||||
<property name="right_attach">2</property>
|
||||
<property name="top_attach">0</property>
|
||||
<property name="bottom_attach">1</property>
|
||||
<property name="x_options">fill</property>
|
||||
<property name="y_options"></property>
|
||||
</packing>
|
||||
</child>
|
||||
|
||||
<child>
|
||||
<widget class="GtkLabel" id="labelFilename">
|
||||
<property name="visible">True</property>
|
||||
<property name="label" translatable="yes"><b>labelFilename</b></property>
|
||||
<property name="use_underline">False</property>
|
||||
<property name="use_markup">True</property>
|
||||
<property name="justify">GTK_JUSTIFY_LEFT</property>
|
||||
<property name="wrap">False</property>
|
||||
<property name="selectable">False</property>
|
||||
<property name="xalign">0</property>
|
||||
<property name="yalign">0.5</property>
|
||||
<property name="xpad">0</property>
|
||||
<property name="ypad">0</property>
|
||||
<property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
|
||||
<property name="width_chars">-1</property>
|
||||
<property name="single_line_mode">False</property>
|
||||
<property name="angle">0</property>
|
||||
</widget>
|
||||
<packing>
|
||||
<property name="left_attach">1</property>
|
||||
<property name="right_attach">2</property>
|
||||
<property name="top_attach">1</property>
|
||||
<property name="bottom_attach">2</property>
|
||||
<property name="x_options">fill</property>
|
||||
<property name="y_options"></property>
|
||||
</packing>
|
||||
</child>
|
||||
|
||||
<child>
|
||||
<widget class="GtkLabel" id="labelSpeed">
|
||||
<property name="visible">True</property>
|
||||
<property name="label" translatable="yes">labelSpeed</property>
|
||||
<property name="use_underline">False</property>
|
||||
<property name="use_markup">False</property>
|
||||
<property name="justify">GTK_JUSTIFY_LEFT</property>
|
||||
<property name="wrap">False</property>
|
||||
<property name="selectable">False</property>
|
||||
<property name="xalign">0</property>
|
||||
<property name="yalign">0.5</property>
|
||||
<property name="xpad">0</property>
|
||||
<property name="ypad">0</property>
|
||||
<property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
|
||||
<property name="width_chars">-1</property>
|
||||
<property name="single_line_mode">False</property>
|
||||
<property name="angle">0</property>
|
||||
</widget>
|
||||
<packing>
|
||||
<property name="left_attach">1</property>
|
||||
<property name="right_attach">2</property>
|
||||
<property name="top_attach">2</property>
|
||||
<property name="bottom_attach">3</property>
|
||||
<property name="x_options">fill</property>
|
||||
<property name="y_options"></property>
|
||||
</packing>
|
||||
</child>
|
||||
|
||||
<child>
|
||||
<widget class="GtkProgressBar" id="progressBar">
|
||||
<property name="visible">True</property>
|
||||
<property name="orientation">GTK_PROGRESS_LEFT_TO_RIGHT</property>
|
||||
<property name="fraction">0</property>
|
||||
<property name="pulse_step">0.10000000149</property>
|
||||
<property name="text" translatable="yes"></property>
|
||||
<property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
|
||||
</widget>
|
||||
<packing>
|
||||
<property name="left_attach">1</property>
|
||||
<property name="right_attach">2</property>
|
||||
<property name="top_attach">3</property>
|
||||
<property name="bottom_attach">4</property>
|
||||
<property name="x_options">fill</property>
|
||||
<property name="y_options">expand</property>
|
||||
</packing>
|
||||
</child>
|
||||
</widget>
|
||||
</child>
|
||||
</widget>
|
||||
|
||||
<widget class="GtkWindow" id="gPodderChannel">
|
||||
<property name="border_width">10</property>
|
||||
<property name="visible">True</property>
|
||||
|
@ -1558,7 +1276,7 @@
|
|||
<widget class="GtkTable" id="table3">
|
||||
<property name="border_width">10</property>
|
||||
<property name="visible">True</property>
|
||||
<property name="n_rows">2</property>
|
||||
<property name="n_rows">3</property>
|
||||
<property name="n_columns">2</property>
|
||||
<property name="homogeneous">False</property>
|
||||
<property name="row_spacing">5</property>
|
||||
|
@ -1642,6 +1360,82 @@
|
|||
<property name="type">tab</property>
|
||||
</packing>
|
||||
</child>
|
||||
|
||||
<child>
|
||||
<widget class="GtkVBox" id="vbox1">
|
||||
<property name="border_width">10</property>
|
||||
<property name="visible">True</property>
|
||||
<property name="homogeneous">False</property>
|
||||
<property name="spacing">0</property>
|
||||
|
||||
<child>
|
||||
<widget class="GtkImage" id="imgCover">
|
||||
<property name="visible">True</property>
|
||||
<property name="xalign">0.5</property>
|
||||
<property name="yalign">0.5</property>
|
||||
<property name="xpad">0</property>
|
||||
<property name="ypad">0</property>
|
||||
</widget>
|
||||
<packing>
|
||||
<property name="padding">0</property>
|
||||
<property name="expand">True</property>
|
||||
<property name="fill">True</property>
|
||||
</packing>
|
||||
</child>
|
||||
|
||||
<child>
|
||||
<widget class="GtkLabel" id="labelCoverStatus">
|
||||
<property name="visible">True</property>
|
||||
<property name="label" translatable="yes">No cover available.</property>
|
||||
<property name="use_underline">False</property>
|
||||
<property name="use_markup">False</property>
|
||||
<property name="justify">GTK_JUSTIFY_LEFT</property>
|
||||
<property name="wrap">False</property>
|
||||
<property name="selectable">False</property>
|
||||
<property name="xalign">0.5</property>
|
||||
<property name="yalign">0.5</property>
|
||||
<property name="xpad">0</property>
|
||||
<property name="ypad">4</property>
|
||||
<property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
|
||||
<property name="width_chars">-1</property>
|
||||
<property name="single_line_mode">False</property>
|
||||
<property name="angle">0</property>
|
||||
</widget>
|
||||
<packing>
|
||||
<property name="padding">0</property>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">False</property>
|
||||
</packing>
|
||||
</child>
|
||||
</widget>
|
||||
<packing>
|
||||
<property name="tab_expand">False</property>
|
||||
<property name="tab_fill">True</property>
|
||||
</packing>
|
||||
</child>
|
||||
|
||||
<child>
|
||||
<widget class="GtkLabel" id="label31">
|
||||
<property name="visible">True</property>
|
||||
<property name="label" translatable="yes">Cover</property>
|
||||
<property name="use_underline">False</property>
|
||||
<property name="use_markup">False</property>
|
||||
<property name="justify">GTK_JUSTIFY_LEFT</property>
|
||||
<property name="wrap">False</property>
|
||||
<property name="selectable">False</property>
|
||||
<property name="xalign">0.5</property>
|
||||
<property name="yalign">0.5</property>
|
||||
<property name="xpad">0</property>
|
||||
<property name="ypad">0</property>
|
||||
<property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
|
||||
<property name="width_chars">-1</property>
|
||||
<property name="single_line_mode">False</property>
|
||||
<property name="angle">0</property>
|
||||
</widget>
|
||||
<packing>
|
||||
<property name="type">tab</property>
|
||||
</packing>
|
||||
</child>
|
||||
</widget>
|
||||
<packing>
|
||||
<property name="padding">0</property>
|
||||
|
@ -2145,7 +1939,7 @@ you can use the usual format of the environment variables:
|
|||
<property name="editable">True</property>
|
||||
<property name="visibility">True</property>
|
||||
<property name="max_length">0</property>
|
||||
<property name="text" translatable="yes">~/.config/gpodder/downloads/</property>
|
||||
<property name="text">~/.config/gpodder/downloads/</property>
|
||||
<property name="has_frame">True</property>
|
||||
<property name="invisible_char">*</property>
|
||||
<property name="activates_default">False</property>
|
||||
|
@ -2279,7 +2073,7 @@ you can use the usual format of the environment variables:
|
|||
<child>
|
||||
<widget class="GtkLabel" id="episode_title">
|
||||
<property name="visible">True</property>
|
||||
<property name="label" translatable="yes"><b><big>The gPodder Episode Title</big></b></property>
|
||||
<property name="label"><b><big>The gPodder Episode Title</big></b></property>
|
||||
<property name="use_underline">False</property>
|
||||
<property name="use_markup">True</property>
|
||||
<property name="justify">GTK_JUSTIFY_LEFT</property>
|
||||
|
@ -2326,7 +2120,7 @@ you can use the usual format of the environment variables:
|
|||
<property name="left_margin">5</property>
|
||||
<property name="right_margin">5</property>
|
||||
<property name="indent">0</property>
|
||||
<property name="text" translatable="yes">Description of the episode currently selected in gPodder</property>
|
||||
<property name="text">Description of the episode currently selected in gPodder</property>
|
||||
</widget>
|
||||
</child>
|
||||
</widget>
|
||||
|
|
|
@ -8,12 +8,12 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: gPodder 0.7-svn\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2006-03-30 23:18+0200\n"
|
||||
"POT-Creation-Date: 2006-03-31 18:11+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"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=iso-8859-1\n"
|
||||
"Content-Type: text/plain; charset=CHARSET\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
|
||||
#: src/gpodder/console.py:65
|
||||
|
@ -26,36 +26,40 @@ msgstr ""
|
|||
msgid "%s is not a valid id"
|
||||
msgstr ""
|
||||
|
||||
#: src/gpodder/gpodder.py:110 src/gpodder/gpodder.py:125
|
||||
#: src/gpodder/gpodder.py:131
|
||||
#: src/gpodder/gpodder.py:54
|
||||
msgid "Contributors / patch writers:"
|
||||
msgstr ""
|
||||
|
||||
#: src/gpodder/gpodder.py:58
|
||||
msgid "See the AUTHORS file for all contributors"
|
||||
msgstr ""
|
||||
|
||||
#: src/gpodder/gpodder.py:113 src/gpodder/gpodder.py:128
|
||||
#: src/gpodder/gpodder.py:134
|
||||
msgid "Episode"
|
||||
msgstr ""
|
||||
|
||||
#: src/gpodder/gpodder.py:115
|
||||
#: src/gpodder/gpodder.py:118
|
||||
msgid "Size"
|
||||
msgstr ""
|
||||
|
||||
#: src/gpodder/gpodder.py:134
|
||||
#: src/gpodder/gpodder.py:137
|
||||
msgid "Speed"
|
||||
msgstr ""
|
||||
|
||||
#: src/gpodder/gpodder.py:137
|
||||
#: src/gpodder/gpodder.py:140
|
||||
msgid "Progress"
|
||||
msgstr ""
|
||||
|
||||
#: src/gpodder/gpodder.py:166
|
||||
#: src/gpodder/gpodder.py:164
|
||||
msgid "Channel Info"
|
||||
msgstr ""
|
||||
|
||||
#: src/gpodder/gpodder.py:186
|
||||
msgid "probably no channels found"
|
||||
#: src/gpodder/gpodder.py:199
|
||||
msgid "No downloaded podcasts found."
|
||||
msgstr ""
|
||||
|
||||
#: src/gpodder/gpodder.py:201
|
||||
msgid "no downloaded podcasts found.."
|
||||
msgstr ""
|
||||
|
||||
#: src/gpodder/gpodder.py:211
|
||||
#: src/gpodder/gpodder.py:209
|
||||
msgid ""
|
||||
"<b>No channels found</b>\n"
|
||||
"\n"
|
||||
|
@ -63,52 +67,35 @@ msgid ""
|
|||
"new channel."
|
||||
msgstr ""
|
||||
|
||||
#: src/gpodder/gpodder.py:212
|
||||
msgid "probably no feeds or channels found"
|
||||
msgstr ""
|
||||
|
||||
#: src/gpodder/gpodder.py:214
|
||||
msgid "some unknown function"
|
||||
msgstr ""
|
||||
|
||||
#: src/gpodder/gpodder.py:214
|
||||
#: src/gpodder/gpodder.py:211
|
||||
msgid "gPodder message"
|
||||
msgstr ""
|
||||
|
||||
#: src/gpodder/gpodder.py:222
|
||||
#: src/gpodder/gpodder.py:219
|
||||
msgid "Do you really want to do this?"
|
||||
msgstr ""
|
||||
|
||||
#: src/gpodder/gpodder.py:222
|
||||
#: src/gpodder/gpodder.py:219
|
||||
msgid "gPodder confirmation"
|
||||
msgstr ""
|
||||
|
||||
#: src/gpodder/gpodder.py:233
|
||||
#, python-format
|
||||
msgid "I Asked: %s"
|
||||
#: src/gpodder/gpodder.py:284
|
||||
msgid ""
|
||||
"There has been an error adding the channel.\n"
|
||||
"Maybe the URL is wrong?"
|
||||
msgstr ""
|
||||
|
||||
#: src/gpodder/gpodder.py:234
|
||||
#, python-format
|
||||
msgid "User answered: %s"
|
||||
msgstr ""
|
||||
|
||||
#: src/gpodder/gpodder.py:274
|
||||
#, python-format
|
||||
msgid "Adding channel: %s"
|
||||
msgstr ""
|
||||
|
||||
#: src/gpodder/gpodder.py:275 src/gpodder/gpodder.py:345
|
||||
#: src/gpodder/gpodder.py:388
|
||||
#: src/gpodder/gpodder.py:290 src/gpodder/gpodder.py:377
|
||||
msgid "Fetching channel index..."
|
||||
msgstr ""
|
||||
|
||||
#: src/gpodder/gpodder.py:293
|
||||
#, python-format
|
||||
msgid "unkonwn link format: %s"
|
||||
#: src/gpodder/gpodder.py:303
|
||||
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:320
|
||||
#: src/gpodder/gpodder.py:333
|
||||
msgid ""
|
||||
"<big><b>Updating feed cache</b></big>\n"
|
||||
"\n"
|
||||
|
@ -116,26 +103,14 @@ msgid ""
|
|||
"updating the feed cache..."
|
||||
msgstr ""
|
||||
|
||||
#: src/gpodder/gpodder.py:361
|
||||
msgid ""
|
||||
"There has been an error adding the channel.\n"
|
||||
"Maybe the URL is wrong?"
|
||||
msgstr ""
|
||||
|
||||
#: src/gpodder/gpodder.py:367
|
||||
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:381
|
||||
#: src/gpodder/gpodder.py:370
|
||||
msgid ""
|
||||
"Cannot edit this channel.\n"
|
||||
"\n"
|
||||
"No channel found."
|
||||
msgstr ""
|
||||
|
||||
#: src/gpodder/gpodder.py:419
|
||||
#: src/gpodder/gpodder.py:400
|
||||
#, python-format
|
||||
msgid ""
|
||||
"Do you really want to remove this channel?\n"
|
||||
|
@ -143,43 +118,31 @@ msgid ""
|
|||
" %s"
|
||||
msgstr ""
|
||||
|
||||
#: src/gpodder/gpodder.py:426
|
||||
#: src/gpodder/gpodder.py:407
|
||||
msgid ""
|
||||
"Could not delete channel.\n"
|
||||
"Probably no channel is selected."
|
||||
msgstr ""
|
||||
|
||||
#: src/gpodder/gpodder.py:434
|
||||
#: src/gpodder/gpodder.py:415
|
||||
msgid "Your channel list is empty. Nothing to export."
|
||||
msgstr ""
|
||||
|
||||
#: src/gpodder/gpodder.py:417
|
||||
msgid "Export to OPML"
|
||||
msgstr ""
|
||||
|
||||
#: src/gpodder/gpodder.py:485
|
||||
msgid "You have not selected an episode to download."
|
||||
msgstr ""
|
||||
|
||||
#: src/gpodder/gpodder.py:500
|
||||
msgid ""
|
||||
"Your channel list is empty. Nothing to export.\n"
|
||||
"\n"
|
||||
"Go add some fancy channels! :)"
|
||||
msgstr ""
|
||||
|
||||
#: src/gpodder/gpodder.py:436
|
||||
msgid "Export to OPML..."
|
||||
msgstr ""
|
||||
|
||||
#: src/gpodder/gpodder.py:445
|
||||
msgid "=> WILL WRITE OPML TO: "
|
||||
msgstr ""
|
||||
|
||||
#: src/gpodder/gpodder.py:504
|
||||
msgid ""
|
||||
"You have not selected an episode to download.\n"
|
||||
"\n"
|
||||
"Please select one, and I'll download it for you."
|
||||
"You have already downloaded this episode\n"
|
||||
"or you are currently downloading it."
|
||||
msgstr ""
|
||||
|
||||
#: src/gpodder/gpodder.py:519
|
||||
msgid ""
|
||||
"<big><b>Already downloaded</b></big>\n"
|
||||
"\n"
|
||||
"You have already downloaded this episode.\n"
|
||||
"Or you are currently downloading it."
|
||||
msgstr ""
|
||||
|
||||
#: src/gpodder/gpodder.py:538
|
||||
#, python-format
|
||||
msgid ""
|
||||
"Do you really want to cancel this download?\n"
|
||||
|
@ -187,18 +150,11 @@ msgid ""
|
|||
"%s"
|
||||
msgstr ""
|
||||
|
||||
#: src/gpodder/gpodder.py:541
|
||||
msgid "No episode selected - nothing cancelled."
|
||||
#: src/gpodder/gpodder.py:522 src/gpodder/gpodder.py:559
|
||||
msgid "No episode selected."
|
||||
msgstr ""
|
||||
|
||||
#: src/gpodder/gpodder.py:583
|
||||
msgid ""
|
||||
"Could not open this episode.\n"
|
||||
"\n"
|
||||
"Have you even selected one?"
|
||||
msgstr ""
|
||||
|
||||
#: src/gpodder/gpodder.py:610
|
||||
#: src/gpodder/gpodder.py:585
|
||||
#, python-format
|
||||
msgid ""
|
||||
"Do you really want to remove this episode?\n"
|
||||
|
@ -206,23 +162,30 @@ msgid ""
|
|||
"%s"
|
||||
msgstr ""
|
||||
|
||||
#: src/gpodder/gpodder.py:620
|
||||
#: src/gpodder/gpodder.py:595
|
||||
msgid "Could not delete downloaded podcast."
|
||||
msgstr ""
|
||||
|
||||
#: src/gpodder/gpodder.py:631 src/gpodder/gpodder.py:632
|
||||
#: data/gpodder.glade.h:1
|
||||
msgid "(unknown)"
|
||||
msgstr ""
|
||||
|
||||
#: src/gpodder/gpodder.py:829
|
||||
msgid ""
|
||||
"Could not delete selected item.\n"
|
||||
"Have you selected an episode to delete?"
|
||||
"Please do not call gpodder.py directly. Instead, call the gpodder binary."
|
||||
msgstr ""
|
||||
|
||||
#: src/gpodder/gpodder.py:914 src/gpodder/gpodder.py:915
|
||||
msgid "please run the gpodder binary, not this file"
|
||||
msgstr ""
|
||||
|
||||
#: src/gpodder/libgpodder.py:137 src/gpodder/libgpodder.py:146
|
||||
#: src/gpodder/libgpodder.py:152
|
||||
#: src/gpodder/libgpodder.py:64
|
||||
msgid "gPodder downloads"
|
||||
msgstr ""
|
||||
|
||||
#: src/gpodder/libgpodder.py:167
|
||||
msgid "automatically generated, will be overwritten on next gpodder shutdown."
|
||||
#: src/gpodder/libgpodder.py:160
|
||||
msgid "Downloading channel cover..."
|
||||
msgstr ""
|
||||
|
||||
#: src/gpodder/libgpodder.py:211
|
||||
msgid "gPodder channel list"
|
||||
msgstr ""
|
||||
|
||||
#: src/gpodder/liblocdbwriter.py:33
|
||||
|
@ -233,24 +196,8 @@ msgstr ""
|
|||
msgid "gPodder subscription list (exported)"
|
||||
msgstr ""
|
||||
|
||||
#: src/gpodder/libpodcasts.py:207
|
||||
msgid "no local db found or local db error"
|
||||
msgstr ""
|
||||
|
||||
#: src/gpodder/libpodcasts.py:242
|
||||
msgid "GB"
|
||||
msgstr ""
|
||||
|
||||
#: src/gpodder/libpodcasts.py:244
|
||||
msgid "MB"
|
||||
msgstr ""
|
||||
|
||||
#: src/gpodder/libpodcasts.py:246
|
||||
msgid "KB"
|
||||
msgstr ""
|
||||
|
||||
#: src/gpodder/libpodcasts.py:248
|
||||
msgid "Bytes"
|
||||
#: src/gpodder/libpodcasts.py:214
|
||||
msgid "No LocalDB found or error in existing LocalDB."
|
||||
msgstr ""
|
||||
|
||||
#: src/gpodder/libwget.py:39 src/gpodder/libwget.py:57
|
||||
|
@ -258,25 +205,13 @@ msgstr ""
|
|||
msgid "unknown"
|
||||
msgstr ""
|
||||
|
||||
#: src/gpodder/libwget.py:272
|
||||
msgid "initializing download..."
|
||||
msgstr ""
|
||||
|
||||
#: src/gpodder/libwget.py:298
|
||||
msgid "Download has been cancelled."
|
||||
msgstr ""
|
||||
|
||||
#: src/gpodder/libwget.py:300
|
||||
#, python-format
|
||||
msgid "wget exited with status: %s"
|
||||
msgstr ""
|
||||
|
||||
#: src/gpodder/libwget.py:301
|
||||
msgid "*** THERE HAS BEEN AN ERROR WHILE DOWNLOADING **"
|
||||
msgstr ""
|
||||
|
||||
#: data/gpodder.glade.h:1
|
||||
msgid "(unknown)"
|
||||
msgid "Download error. Wget exit code was: %d"
|
||||
msgstr ""
|
||||
|
||||
#: data/gpodder.glade.h:2
|
||||
|
@ -284,106 +219,82 @@ msgid "<b>(unknown)</b>"
|
|||
msgstr ""
|
||||
|
||||
#: data/gpodder.glade.h:3
|
||||
msgid "<b><big>The gPodder Episode Title</big></b>"
|
||||
msgstr ""
|
||||
|
||||
#: data/gpodder.glade.h:4
|
||||
msgid "<b>labelFilename</b>"
|
||||
msgstr ""
|
||||
|
||||
#: data/gpodder.glade.h:5
|
||||
msgid "<b>labelFrom</b>"
|
||||
msgstr ""
|
||||
|
||||
#: data/gpodder.glade.h:6
|
||||
msgid "Advanced"
|
||||
msgstr ""
|
||||
|
||||
#: data/gpodder.glade.h:7
|
||||
#: data/gpodder.glade.h:4
|
||||
msgid "Available Podcasts"
|
||||
msgstr ""
|
||||
|
||||
#: data/gpodder.glade.h:8
|
||||
#: data/gpodder.glade.h:5
|
||||
msgid "Channel:"
|
||||
msgstr ""
|
||||
|
||||
#: data/gpodder.glade.h:9
|
||||
#: data/gpodder.glade.h:6
|
||||
msgid "Command:"
|
||||
msgstr ""
|
||||
|
||||
#: data/gpodder.glade.h:10
|
||||
msgid "Current speed:"
|
||||
#: data/gpodder.glade.h:7
|
||||
msgid "Cover"
|
||||
msgstr ""
|
||||
|
||||
#: data/gpodder.glade.h:11
|
||||
#: data/gpodder.glade.h:8
|
||||
msgid "Delete selected item"
|
||||
msgstr ""
|
||||
|
||||
#: data/gpodder.glade.h:12
|
||||
msgid "Description of the episode currently selected in gPodder"
|
||||
msgstr ""
|
||||
|
||||
#: data/gpodder.glade.h:13
|
||||
#: data/gpodder.glade.h:9
|
||||
msgid "Description:"
|
||||
msgstr ""
|
||||
|
||||
#: data/gpodder.glade.h:14
|
||||
#: data/gpodder.glade.h:10
|
||||
msgid "Desktop:"
|
||||
msgstr ""
|
||||
|
||||
#: data/gpodder.glade.h:15
|
||||
#: data/gpodder.glade.h:11
|
||||
msgid "Download Pod_cast"
|
||||
msgstr ""
|
||||
|
||||
#: data/gpodder.glade.h:16
|
||||
#: data/gpodder.glade.h:12
|
||||
msgid "Download Status"
|
||||
msgstr ""
|
||||
|
||||
#: data/gpodder.glade.h:17
|
||||
#: data/gpodder.glade.h:13
|
||||
msgid "Download to:"
|
||||
msgstr ""
|
||||
|
||||
#: data/gpodder.glade.h:18
|
||||
#: data/gpodder.glade.h:14
|
||||
msgid "Downloaded Podcasts"
|
||||
msgstr ""
|
||||
|
||||
#: data/gpodder.glade.h:19
|
||||
msgid "Downloading from:"
|
||||
msgstr ""
|
||||
|
||||
#: data/gpodder.glade.h:20
|
||||
#: data/gpodder.glade.h:15
|
||||
msgid "Downloads"
|
||||
msgstr ""
|
||||
|
||||
#: data/gpodder.glade.h:21
|
||||
#: data/gpodder.glade.h:16
|
||||
msgid "E_xport list..."
|
||||
msgstr ""
|
||||
|
||||
#: data/gpodder.glade.h:22
|
||||
#: data/gpodder.glade.h:17
|
||||
msgid "Episode Information"
|
||||
msgstr ""
|
||||
|
||||
#: data/gpodder.glade.h:23
|
||||
msgid "Episode:"
|
||||
msgstr ""
|
||||
|
||||
#: data/gpodder.glade.h:24
|
||||
#: data/gpodder.glade.h:18
|
||||
msgid "FTP Proxy:"
|
||||
msgstr ""
|
||||
|
||||
#: data/gpodder.glade.h:25
|
||||
#: data/gpodder.glade.h:19
|
||||
msgid "Feed URL:"
|
||||
msgstr ""
|
||||
|
||||
#: data/gpodder.glade.h:26
|
||||
#: data/gpodder.glade.h:20
|
||||
msgid "General"
|
||||
msgstr ""
|
||||
|
||||
#: data/gpodder.glade.h:27
|
||||
#: data/gpodder.glade.h:21
|
||||
msgid "HTTP Proxy:"
|
||||
msgstr ""
|
||||
|
||||
#: data/gpodder.glade.h:28
|
||||
#: data/gpodder.glade.h:22
|
||||
msgid ""
|
||||
"If you have to use a HTTP or FTP proxy server,\n"
|
||||
"you can use the usual format of the environment variables:\n"
|
||||
|
@ -391,135 +302,118 @@ msgid ""
|
|||
"<b>http://username:password@proxy_host:proxy_port/</b>"
|
||||
msgstr ""
|
||||
|
||||
#: data/gpodder.glade.h:32
|
||||
#: data/gpodder.glade.h:26
|
||||
msgid "No cover available."
|
||||
msgstr ""
|
||||
|
||||
#: data/gpodder.glade.h:27
|
||||
msgid "Play selected item"
|
||||
msgstr ""
|
||||
|
||||
#: data/gpodder.glade.h:33
|
||||
#: data/gpodder.glade.h:28
|
||||
msgid "Player application:"
|
||||
msgstr ""
|
||||
|
||||
#: data/gpodder.glade.h:34
|
||||
msgid "Progress:"
|
||||
msgstr ""
|
||||
|
||||
#: data/gpodder.glade.h:35
|
||||
#: data/gpodder.glade.h:29
|
||||
msgid "Proxy"
|
||||
msgstr ""
|
||||
|
||||
#: data/gpodder.glade.h:36
|
||||
#: data/gpodder.glade.h:30
|
||||
msgid "Save downloads in:"
|
||||
msgstr ""
|
||||
|
||||
#: data/gpodder.glade.h:37
|
||||
#: data/gpodder.glade.h:31
|
||||
msgid "Show \"gPodder downloads\" link"
|
||||
msgstr ""
|
||||
|
||||
#: data/gpodder.glade.h:38
|
||||
#: data/gpodder.glade.h:32
|
||||
msgid "Title:"
|
||||
msgstr ""
|
||||
|
||||
#: data/gpodder.glade.h:39
|
||||
#: data/gpodder.glade.h:33
|
||||
msgid "_About gPodder..."
|
||||
msgstr ""
|
||||
|
||||
#: data/gpodder.glade.h:40
|
||||
#: data/gpodder.glade.h:34
|
||||
msgid "_Add channel..."
|
||||
msgstr ""
|
||||
|
||||
#: data/gpodder.glade.h:41
|
||||
#: data/gpodder.glade.h:35
|
||||
msgid "_Channels"
|
||||
msgstr ""
|
||||
|
||||
#: data/gpodder.glade.h:42
|
||||
#: data/gpodder.glade.h:36
|
||||
msgid "_Check for Updates"
|
||||
msgstr ""
|
||||
|
||||
#: data/gpodder.glade.h:43
|
||||
#: data/gpodder.glade.h:37
|
||||
msgid "_Close"
|
||||
msgstr ""
|
||||
|
||||
#: data/gpodder.glade.h:44
|
||||
#: data/gpodder.glade.h:38
|
||||
msgid "_Edit channel..."
|
||||
msgstr ""
|
||||
|
||||
#: data/gpodder.glade.h:45
|
||||
#: data/gpodder.glade.h:39
|
||||
msgid "_Help"
|
||||
msgstr ""
|
||||
|
||||
#: data/gpodder.glade.h:46
|
||||
#: data/gpodder.glade.h:40
|
||||
msgid "_Podcasts"
|
||||
msgstr ""
|
||||
|
||||
#: data/gpodder.glade.h:47
|
||||
#: data/gpodder.glade.h:41
|
||||
msgid "_Preferences..."
|
||||
msgstr ""
|
||||
|
||||
#: data/gpodder.glade.h:48
|
||||
#: data/gpodder.glade.h:42
|
||||
msgid "_Remove channel"
|
||||
msgstr ""
|
||||
|
||||
#: data/gpodder.glade.h:49
|
||||
#: data/gpodder.glade.h:43
|
||||
msgid "gPodder - your podcast catcher."
|
||||
msgstr ""
|
||||
|
||||
#: data/gpodder.glade.h:50
|
||||
#: data/gpodder.glade.h:44
|
||||
msgid "gPodder Channel Editor"
|
||||
msgstr ""
|
||||
|
||||
#: data/gpodder.glade.h:51
|
||||
msgid "gPodder Download Status"
|
||||
msgstr ""
|
||||
|
||||
#: data/gpodder.glade.h:52
|
||||
#: data/gpodder.glade.h:45
|
||||
msgid "gPodder properties"
|
||||
msgstr ""
|
||||
|
||||
#: data/gpodder.glade.h:53
|
||||
msgid "labelSpeed"
|
||||
msgstr ""
|
||||
|
||||
#: data/gpodder.glade.h:54
|
||||
msgid "~/.config/gpodder/downloads/"
|
||||
msgstr ""
|
||||
|
||||
#: bin/gpodder:39
|
||||
msgid "print extra information"
|
||||
msgid "Be more verbose"
|
||||
msgstr ""
|
||||
|
||||
#: bin/gpodder:43
|
||||
msgid "run local version for debugging"
|
||||
msgid "Run local version in current directory"
|
||||
msgstr ""
|
||||
|
||||
#: bin/gpodder:47
|
||||
msgid "list all channel subscriptions"
|
||||
msgid "List all channel subscriptions"
|
||||
msgstr ""
|
||||
|
||||
#: bin/gpodder:51
|
||||
msgid "update channels and download new podcasts"
|
||||
msgid "Update channel list, download new podcasts"
|
||||
msgstr ""
|
||||
|
||||
#: bin/gpodder:55
|
||||
msgid "update channels"
|
||||
msgid "Update channel list and exit"
|
||||
msgstr ""
|
||||
|
||||
#: bin/gpodder:58
|
||||
msgid "add FEEDURL to channel subscriptions"
|
||||
msgid "Subscribe to channel from FEEDURL"
|
||||
msgstr ""
|
||||
|
||||
#: bin/gpodder:61
|
||||
msgid "delete channel n"
|
||||
msgid "Delete channel with ID n"
|
||||
msgstr ""
|
||||
|
||||
#: bin/gpodder:79
|
||||
msgid "ERROR: You do not seem to have a usable \"wget\" binary in your path."
|
||||
msgid "Error: cannot find wget."
|
||||
msgstr ""
|
||||
|
||||
#: bin/gpodder:82
|
||||
#, c-format
|
||||
msgid "Found wget: %s"
|
||||
msgstr ""
|
||||
|
||||
#: bin/gpodder:104
|
||||
msgid "channel IDs may have changed, list before deleting again"
|
||||
#: bin/gpodder:102
|
||||
msgid "Channel IDs may have changed, list before deleting again."
|
||||
msgstr ""
|
||||
|
|
|
@ -1,2 +1,4 @@
|
|||
Put your translated *.po files here, then execute "make" to generate
|
||||
machine-readable *.mo files in the locale directory.
|
||||
|
||||
If you want to edit your *.po file with a GUI, try www.poedit.org.
|
||||
|
|
449
data/po/de.po
449
data/po/de.po
|
@ -3,228 +3,220 @@
|
|||
# This file is distributed under the same license as the PACKAGE package.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
|
||||
#
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: gPodder 0.7-svn\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2006-03-30 23:05+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"
|
||||
"POT-Creation-Date: 2006-03-31 18:11+0200\n"
|
||||
"PO-Revision-Date: 2006-03-31 18:04+0100\n"
|
||||
"Last-Translator: Thomas Perl <thp@perli.net>\n"
|
||||
"Language-Team: gPodder Team <thp@perli.net>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=iso-8859-1\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Poedit-Language: German\n"
|
||||
|
||||
#: src/gpodder/console.py:65
|
||||
#, python-format
|
||||
msgid "delete channel: %s"
|
||||
msgstr "channel entfernen: %s"
|
||||
msgstr "Channel entfernen: %s"
|
||||
|
||||
#: src/gpodder/console.py:68
|
||||
#, python-format
|
||||
msgid "%s is not a valid id"
|
||||
msgstr "%s is keine gültige ID"
|
||||
|
||||
#: src/gpodder/gpodder.py:110 src/gpodder/gpodder.py:125
|
||||
#: src/gpodder/gpodder.py:131
|
||||
#: src/gpodder/gpodder.py:54
|
||||
msgid "Contributors / patch writers:"
|
||||
msgstr "Helfer und Patchschreiber:"
|
||||
|
||||
#: src/gpodder/gpodder.py:58
|
||||
msgid "See the AUTHORS file for all contributors"
|
||||
msgstr "Eine Liste aller Helfer finden Sie in der AUTHORS-Datei"
|
||||
|
||||
#: src/gpodder/gpodder.py:113 src/gpodder/gpodder.py:128
|
||||
#: src/gpodder/gpodder.py:134
|
||||
msgid "Episode"
|
||||
msgstr "Episode"
|
||||
|
||||
#: src/gpodder/gpodder.py:115
|
||||
#: src/gpodder/gpodder.py:118
|
||||
msgid "Size"
|
||||
msgstr "Größe"
|
||||
|
||||
#: src/gpodder/gpodder.py:134
|
||||
#: src/gpodder/gpodder.py:137
|
||||
msgid "Speed"
|
||||
msgstr "Geschwindigkeit"
|
||||
|
||||
#: src/gpodder/gpodder.py:137
|
||||
#: src/gpodder/gpodder.py:140
|
||||
msgid "Progress"
|
||||
msgstr "Fortschritt"
|
||||
|
||||
#: src/gpodder/gpodder.py:166
|
||||
#: src/gpodder/gpodder.py:164
|
||||
msgid "Channel Info"
|
||||
msgstr "Channel-Informationen"
|
||||
|
||||
#: src/gpodder/gpodder.py:186
|
||||
msgid "probably no channels found"
|
||||
msgstr "wahrscheinlich keine channels gefunden"
|
||||
#: src/gpodder/gpodder.py:199
|
||||
msgid "No downloaded podcasts found."
|
||||
msgstr "Keine heruntergeladenen Podcasts gefunden."
|
||||
|
||||
#: src/gpodder/gpodder.py:201
|
||||
msgid "no downloaded podcasts found.."
|
||||
msgstr "keine heruntergeladenen podcasts gefunden.."
|
||||
|
||||
#: src/gpodder/gpodder.py:211
|
||||
#: src/gpodder/gpodder.py:209
|
||||
msgid ""
|
||||
"<b>No channels found</b>\n"
|
||||
"\n"
|
||||
"Click on <b><i>Channels</i></b> > <b><i>Add channel..</i></b> to add a "
|
||||
"new channel."
|
||||
msgstr ""
|
||||
"<b>Keine Channels gefunden</b>\n"
|
||||
"\n"
|
||||
"Klicken Sie auf <b><i>Channels</i></b> > <b><i>Abbonieren...</i></b>, um "
|
||||
"einen neuen Channel zu abbonieren."
|
||||
|
||||
#: src/gpodder/gpodder.py:212
|
||||
msgid "probably no feeds or channels found"
|
||||
msgstr "wahrscheinlich keine feeds oder channels gefunden"
|
||||
|
||||
#: src/gpodder/gpodder.py:214
|
||||
msgid "some unknown function"
|
||||
msgstr "eine unbekannte Funktion"
|
||||
|
||||
#: src/gpodder/gpodder.py:214
|
||||
#: src/gpodder/gpodder.py:211
|
||||
msgid "gPodder message"
|
||||
msgstr "gPodder Nachricht"
|
||||
|
||||
#: src/gpodder/gpodder.py:222
|
||||
#: src/gpodder/gpodder.py:219
|
||||
msgid "Do you really want to do this?"
|
||||
msgstr "Willst du das wirklich machen?"
|
||||
|
||||
#: src/gpodder/gpodder.py:222
|
||||
#: src/gpodder/gpodder.py:219
|
||||
msgid "gPodder confirmation"
|
||||
msgstr "gPodder Bestätigung"
|
||||
|
||||
#: src/gpodder/gpodder.py:233
|
||||
#, python-format
|
||||
msgid "I Asked: %s"
|
||||
msgstr "Ich fragte: %s"
|
||||
#: src/gpodder/gpodder.py:284
|
||||
msgid ""
|
||||
"There has been an error adding the channel.\n"
|
||||
"Maybe the URL is wrong?"
|
||||
msgstr ""
|
||||
"Ein Fehler trat beim Hinzufügen des Channels auf.\n"
|
||||
"Vielleicht ist die URL falsch?"
|
||||
|
||||
#: src/gpodder/gpodder.py:234
|
||||
#, python-format
|
||||
msgid "User answered: %s"
|
||||
msgstr "Benutzer antwortete mit: %s"
|
||||
|
||||
#: src/gpodder/gpodder.py:274
|
||||
#, python-format
|
||||
msgid "Adding channel: %s"
|
||||
msgstr "Channel wird hinzugefügt: %s"
|
||||
|
||||
#: src/gpodder/gpodder.py:275 src/gpodder/gpodder.py:345
|
||||
#: src/gpodder/gpodder.py:388
|
||||
#: src/gpodder/gpodder.py:290 src/gpodder/gpodder.py:377
|
||||
msgid "Fetching channel index..."
|
||||
msgstr "Channel-Index wird heruntergeladen..."
|
||||
|
||||
#: src/gpodder/gpodder.py:293
|
||||
#, python-format
|
||||
msgid "unkonwn link format: %s"
|
||||
msgstr "Unbekanntes Link-Format: %s"
|
||||
#: src/gpodder/gpodder.py:303
|
||||
msgid ""
|
||||
"Could not add new channel.\n"
|
||||
"Only <b>http://</b> and <b>ftp://</b> URLs supported at the moment."
|
||||
msgstr ""
|
||||
"Konnte neuen Channel nicht abbonieren.\n"
|
||||
"Derzeit werden nur <b>http://</b> und <b>ftp://</b>-URLs unterstützt."
|
||||
|
||||
#: src/gpodder/gpodder.py:320
|
||||
#: src/gpodder/gpodder.py:333
|
||||
msgid ""
|
||||
"<big><b>Updating feed cache</b></big>\n"
|
||||
"\n"
|
||||
"Please wait while gPodder is\n"
|
||||
"updating the feed cache..."
|
||||
msgstr ""
|
||||
"<big><b>Abonnements werden geprüft</b></big>\n"
|
||||
"\n"
|
||||
"Bitte warten Sie, während gPodder Ihre\n"
|
||||
"Channel-Abonnements aktualisiert..."
|
||||
|
||||
#: src/gpodder/gpodder.py:361
|
||||
msgid ""
|
||||
"There has been an error adding the channel.\n"
|
||||
"Maybe the URL is wrong?"
|
||||
msgstr ""
|
||||
|
||||
#: src/gpodder/gpodder.py:367
|
||||
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:381
|
||||
#: src/gpodder/gpodder.py:370
|
||||
msgid ""
|
||||
"Cannot edit this channel.\n"
|
||||
"\n"
|
||||
"No channel found."
|
||||
msgstr ""
|
||||
"Kann diesen Channel nicht editieren.\n"
|
||||
"\n"
|
||||
"Kein Channel gefunden."
|
||||
|
||||
#: src/gpodder/gpodder.py:419
|
||||
#: src/gpodder/gpodder.py:400
|
||||
#, python-format
|
||||
msgid ""
|
||||
"Do you really want to remove this channel?\n"
|
||||
"\n"
|
||||
" %s"
|
||||
msgstr ""
|
||||
"Wollen Sie diesen Channel wirklich entfernen?\n"
|
||||
"\n"
|
||||
"%s"
|
||||
|
||||
#: src/gpodder/gpodder.py:426
|
||||
#: src/gpodder/gpodder.py:407
|
||||
msgid ""
|
||||
"Could not delete channel.\n"
|
||||
"Probably no channel is selected."
|
||||
msgstr ""
|
||||
"Konnte Channel nicht entfernen.\n"
|
||||
"Wahrscheinlich ist keiner ausgewählt."
|
||||
|
||||
#: src/gpodder/gpodder.py:434
|
||||
#: src/gpodder/gpodder.py:415
|
||||
msgid "Your channel list is empty. Nothing to export."
|
||||
msgstr "Nichts zu exportieren: Sie haben keine Abonnements."
|
||||
|
||||
#: src/gpodder/gpodder.py:417
|
||||
msgid "Export to OPML"
|
||||
msgstr "Als OPML-Datei exportieren"
|
||||
|
||||
#: src/gpodder/gpodder.py:485
|
||||
msgid "You have not selected an episode to download."
|
||||
msgstr "Sie haben keine Episode für den Download ausgewählt."
|
||||
|
||||
#: src/gpodder/gpodder.py:500
|
||||
msgid ""
|
||||
"Your channel list is empty. Nothing to export.\n"
|
||||
"\n"
|
||||
"Go add some fancy channels! :)"
|
||||
msgstr ""
|
||||
|
||||
#: src/gpodder/gpodder.py:436
|
||||
msgid "Export to OPML..."
|
||||
msgstr "Exportieren als OPML..."
|
||||
|
||||
#: src/gpodder/gpodder.py:445
|
||||
msgid "=> WILL WRITE OPML TO: "
|
||||
msgstr "=> WERDE OPML SCHREIBEN: "
|
||||
|
||||
#: src/gpodder/gpodder.py:504
|
||||
msgid ""
|
||||
"You have not selected an episode to download.\n"
|
||||
"\n"
|
||||
"Please select one, and I'll download it for you."
|
||||
"You have already downloaded this episode\n"
|
||||
"or you are currently downloading it."
|
||||
msgstr ""
|
||||
"Sie haben diese Episode bereits heruntergeladen\n"
|
||||
"oder Sie laden sie jetzt gerade herunter."
|
||||
|
||||
#: src/gpodder/gpodder.py:519
|
||||
msgid ""
|
||||
"<big><b>Already downloaded</b></big>\n"
|
||||
"\n"
|
||||
"You have already downloaded this episode.\n"
|
||||
"Or you are currently downloading it."
|
||||
msgstr ""
|
||||
|
||||
#: src/gpodder/gpodder.py:538
|
||||
#, python-format
|
||||
msgid ""
|
||||
"Do you really want to cancel this download?\n"
|
||||
"\n"
|
||||
"%s"
|
||||
msgstr ""
|
||||
|
||||
#: src/gpodder/gpodder.py:541
|
||||
msgid "No episode selected - nothing cancelled."
|
||||
msgstr "Keine Episode ausgewählt - nichts abgebrochen."
|
||||
|
||||
#: src/gpodder/gpodder.py:583
|
||||
msgid ""
|
||||
"Could not open this episode.\n"
|
||||
"Wollen Sie diesen Download wirklich abbrechen?\n"
|
||||
"\n"
|
||||
"Have you even selected one?"
|
||||
msgstr ""
|
||||
"%s"
|
||||
|
||||
#: src/gpodder/gpodder.py:610
|
||||
#: src/gpodder/gpodder.py:522 src/gpodder/gpodder.py:559
|
||||
msgid "No episode selected."
|
||||
msgstr "Keine Episode ausgewählt."
|
||||
|
||||
#: src/gpodder/gpodder.py:585
|
||||
#, python-format
|
||||
msgid ""
|
||||
"Do you really want to remove this episode?\n"
|
||||
"\n"
|
||||
"%s"
|
||||
msgstr ""
|
||||
"Wollen Sie diese Episode wirklich entfernen?\n"
|
||||
"\n"
|
||||
"%s"
|
||||
|
||||
#: src/gpodder/gpodder.py:620
|
||||
#: src/gpodder/gpodder.py:595
|
||||
msgid "Could not delete downloaded podcast."
|
||||
msgstr "Konnte den ausgewählten Podcast nicht entfernen."
|
||||
|
||||
#: src/gpodder/gpodder.py:631 src/gpodder/gpodder.py:632
|
||||
#: data/gpodder.glade.h:1
|
||||
msgid "(unknown)"
|
||||
msgstr "(unbekannt)"
|
||||
|
||||
#: src/gpodder/gpodder.py:829
|
||||
msgid ""
|
||||
"Could not delete selected item.\n"
|
||||
"Have you selected an episode to delete?"
|
||||
"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."
|
||||
|
||||
#: src/gpodder/gpodder.py:914 src/gpodder/gpodder.py:915
|
||||
msgid "please run the gpodder binary, not this file"
|
||||
msgstr "Bitte starten Sie die gpodder-Applikation, nicht diese Datei"
|
||||
|
||||
#: src/gpodder/libgpodder.py:137 src/gpodder/libgpodder.py:146
|
||||
#: src/gpodder/libgpodder.py:152
|
||||
#: src/gpodder/libgpodder.py:64
|
||||
msgid "gPodder downloads"
|
||||
msgstr "gPodder-Downloads"
|
||||
msgstr "gPodder Downloads"
|
||||
|
||||
#: src/gpodder/libgpodder.py:167
|
||||
msgid "automatically generated, will be overwritten on next gpodder shutdown."
|
||||
msgstr ""
|
||||
"Automatisch generiert, wird beim nächsten Beenden von gPodder überschrieben."
|
||||
#: src/gpodder/libgpodder.py:160
|
||||
msgid "Downloading channel cover..."
|
||||
msgstr "Bild wird heruntergeladen..."
|
||||
|
||||
#: src/gpodder/libgpodder.py:211
|
||||
msgid "gPodder channel list"
|
||||
msgstr "gPodder Channel-Editor"
|
||||
|
||||
#: src/gpodder/liblocdbwriter.py:33
|
||||
msgid "local download database, generated by gPodder"
|
||||
|
@ -234,296 +226,231 @@ msgstr "lokale Download-Datenbank, generiert von gPodder"
|
|||
msgid "gPodder subscription list (exported)"
|
||||
msgstr "gPodder Abonnement-Liste (exportiert)"
|
||||
|
||||
#: src/gpodder/libpodcasts.py:207
|
||||
msgid "no local db found or local db error"
|
||||
msgstr "keine local DB gefunden, oder Fehler in lokaler DB"
|
||||
|
||||
#: src/gpodder/libpodcasts.py:242
|
||||
msgid "GB"
|
||||
msgstr ""
|
||||
|
||||
#: src/gpodder/libpodcasts.py:244
|
||||
msgid "MB"
|
||||
msgstr ""
|
||||
|
||||
#: src/gpodder/libpodcasts.py:246
|
||||
msgid "KB"
|
||||
msgstr ""
|
||||
|
||||
#: src/gpodder/libpodcasts.py:248
|
||||
msgid "Bytes"
|
||||
#: src/gpodder/libpodcasts.py:214
|
||||
msgid "No LocalDB found or error in existing LocalDB."
|
||||
msgstr ""
|
||||
"Keine Lokale Datenbank gefunden (oder Fehler in existierender Datenbank)."
|
||||
|
||||
#: src/gpodder/libwget.py:39 src/gpodder/libwget.py:57
|
||||
#: src/gpodder/libwget.py:66
|
||||
msgid "unknown"
|
||||
msgstr "unbekannt"
|
||||
|
||||
#: src/gpodder/libwget.py:272
|
||||
msgid "initializing download..."
|
||||
msgstr "initialisiere download..."
|
||||
|
||||
#: src/gpodder/libwget.py:298
|
||||
msgid "Download has been cancelled."
|
||||
msgstr "Der Download wurde abgebrochen."
|
||||
|
||||
#: src/gpodder/libwget.py:300
|
||||
#, python-format
|
||||
msgid "wget exited with status: %s"
|
||||
msgstr "wget beendete mit status: %s"
|
||||
|
||||
#: src/gpodder/libwget.py:301
|
||||
msgid "*** THERE HAS BEEN AN ERROR WHILE DOWNLOADING **"
|
||||
msgstr "*** FEHLER IST WÄHREND DES DOWNLOADS AUFGETRETEN **"
|
||||
|
||||
#: data/gpodder.glade.h:1
|
||||
msgid "(unknown)"
|
||||
msgstr "(unbekannt)"
|
||||
msgid "Download error. Wget exit code was: %d"
|
||||
msgstr "Fehler beim Download. Wget's Exit-Status ist: %d"
|
||||
|
||||
#: data/gpodder.glade.h:2
|
||||
msgid "<b>(unknown)</b>"
|
||||
msgstr ""
|
||||
msgstr "<b>(unbekannt)</b>"
|
||||
|
||||
#: data/gpodder.glade.h:3
|
||||
msgid "<b><big>The gPodder Episode Title</big></b>"
|
||||
msgstr ""
|
||||
|
||||
#: data/gpodder.glade.h:4
|
||||
msgid "<b>labelFilename</b>"
|
||||
msgstr ""
|
||||
|
||||
#: data/gpodder.glade.h:5
|
||||
msgid "<b>labelFrom</b>"
|
||||
msgstr ""
|
||||
|
||||
#: data/gpodder.glade.h:6
|
||||
msgid "Advanced"
|
||||
msgstr "Erweitert"
|
||||
|
||||
#: data/gpodder.glade.h:7
|
||||
#: data/gpodder.glade.h:4
|
||||
msgid "Available Podcasts"
|
||||
msgstr "Verfügbare Podcasts"
|
||||
|
||||
#: data/gpodder.glade.h:8
|
||||
#: data/gpodder.glade.h:5
|
||||
msgid "Channel:"
|
||||
msgstr "Channel:"
|
||||
|
||||
#: data/gpodder.glade.h:9
|
||||
#: data/gpodder.glade.h:6
|
||||
msgid "Command:"
|
||||
msgstr "Befehl:"
|
||||
|
||||
#: data/gpodder.glade.h:10
|
||||
msgid "Current speed:"
|
||||
msgstr "Derzeitige Geschwindigkeit:"
|
||||
#: data/gpodder.glade.h:7
|
||||
msgid "Cover"
|
||||
msgstr "Bild"
|
||||
|
||||
#: data/gpodder.glade.h:11
|
||||
#: data/gpodder.glade.h:8
|
||||
msgid "Delete selected item"
|
||||
msgstr "Ausgewähltes Element löschen"
|
||||
|
||||
#: data/gpodder.glade.h:12
|
||||
msgid "Description of the episode currently selected in gPodder"
|
||||
msgstr "Beschreibung der Episode, die momentan ausgewählt ist"
|
||||
|
||||
#: data/gpodder.glade.h:13
|
||||
#: data/gpodder.glade.h:9
|
||||
msgid "Description:"
|
||||
msgstr "Beschreibung:"
|
||||
|
||||
#: data/gpodder.glade.h:14
|
||||
#: data/gpodder.glade.h:10
|
||||
msgid "Desktop:"
|
||||
msgstr "Desktop:"
|
||||
|
||||
#: data/gpodder.glade.h:15
|
||||
#: data/gpodder.glade.h:11
|
||||
msgid "Download Pod_cast"
|
||||
msgstr "Pod_cast herunterladen"
|
||||
|
||||
#: data/gpodder.glade.h:16
|
||||
#: data/gpodder.glade.h:12
|
||||
msgid "Download Status"
|
||||
msgstr "Download-Status"
|
||||
|
||||
#: data/gpodder.glade.h:17
|
||||
#: data/gpodder.glade.h:13
|
||||
msgid "Download to:"
|
||||
msgstr "Herunterladen nach:"
|
||||
|
||||
#: data/gpodder.glade.h:18
|
||||
#: data/gpodder.glade.h:14
|
||||
msgid "Downloaded Podcasts"
|
||||
msgstr "Heruntergeladene Podcasts"
|
||||
|
||||
#: data/gpodder.glade.h:19
|
||||
msgid "Downloading from:"
|
||||
msgstr "Herunterladen von:"
|
||||
|
||||
#: data/gpodder.glade.h:20
|
||||
#: data/gpodder.glade.h:15
|
||||
msgid "Downloads"
|
||||
msgstr "Downloads"
|
||||
|
||||
#: data/gpodder.glade.h:21
|
||||
#: data/gpodder.glade.h:16
|
||||
msgid "E_xport list..."
|
||||
msgstr "Liste e_xportieren..."
|
||||
|
||||
#: data/gpodder.glade.h:22
|
||||
#: data/gpodder.glade.h:17
|
||||
msgid "Episode Information"
|
||||
msgstr "Informationen zur Episode"
|
||||
|
||||
#: data/gpodder.glade.h:23
|
||||
msgid "Episode:"
|
||||
msgstr "Episode:"
|
||||
|
||||
#: data/gpodder.glade.h:24
|
||||
#: data/gpodder.glade.h:18
|
||||
msgid "FTP Proxy:"
|
||||
msgstr "FTP-Proxy:"
|
||||
|
||||
#: data/gpodder.glade.h:25
|
||||
#: data/gpodder.glade.h:19
|
||||
msgid "Feed URL:"
|
||||
msgstr "Feed-Adresse:"
|
||||
|
||||
#: data/gpodder.glade.h:26
|
||||
#: data/gpodder.glade.h:20
|
||||
msgid "General"
|
||||
msgstr "Allgemeines"
|
||||
|
||||
#: data/gpodder.glade.h:27
|
||||
#: data/gpodder.glade.h:21
|
||||
msgid "HTTP Proxy:"
|
||||
msgstr "HTTP-Proxy:"
|
||||
|
||||
#: data/gpodder.glade.h:28
|
||||
#: data/gpodder.glade.h:22
|
||||
msgid ""
|
||||
"If you have to use a HTTP or FTP proxy server,\n"
|
||||
"you can use the usual format of the environment variables:\n"
|
||||
"\n"
|
||||
"<b>http://username:password@proxy_host:proxy_port/</b>"
|
||||
msgstr ""
|
||||
"Wenn Sie einen HTTP oder FTP Proxy Server nutzen,\n"
|
||||
"benutzen Sie bitte das übliche Format der Umgebungsvariablen:\n"
|
||||
"\n"
|
||||
"<b>http://benutzer:passwort@proxy_host:proxy_port/</b>"
|
||||
|
||||
#: data/gpodder.glade.h:32
|
||||
#: data/gpodder.glade.h:26
|
||||
msgid "No cover available."
|
||||
msgstr "Kein Cover verfügbar."
|
||||
|
||||
#: data/gpodder.glade.h:27
|
||||
msgid "Play selected item"
|
||||
msgstr "Ausgewähltes Element abspielen"
|
||||
|
||||
#: data/gpodder.glade.h:33
|
||||
#: data/gpodder.glade.h:28
|
||||
msgid "Player application:"
|
||||
msgstr "Abspielprogramm:"
|
||||
|
||||
#: data/gpodder.glade.h:34
|
||||
msgid "Progress:"
|
||||
msgstr "Fortschritt:"
|
||||
|
||||
#: data/gpodder.glade.h:35
|
||||
#: data/gpodder.glade.h:29
|
||||
msgid "Proxy"
|
||||
msgstr "Proxy"
|
||||
|
||||
#: data/gpodder.glade.h:36
|
||||
#: data/gpodder.glade.h:30
|
||||
msgid "Save downloads in:"
|
||||
msgstr "Downloads speichern in:"
|
||||
|
||||
#: data/gpodder.glade.h:37
|
||||
#: data/gpodder.glade.h:31
|
||||
msgid "Show \"gPodder downloads\" link"
|
||||
msgstr "\"gPodder-Downloads\"-Verknüpfung anzeigen"
|
||||
msgstr "\"gPodder Downloads\"-Verknüpfung anzeigen"
|
||||
|
||||
#: data/gpodder.glade.h:38
|
||||
#: data/gpodder.glade.h:32
|
||||
msgid "Title:"
|
||||
msgstr "Titel:"
|
||||
|
||||
#: data/gpodder.glade.h:39
|
||||
#: data/gpodder.glade.h:33
|
||||
msgid "_About gPodder..."
|
||||
msgstr "Üb_er gPodder..."
|
||||
|
||||
#: data/gpodder.glade.h:40
|
||||
#: data/gpodder.glade.h:34
|
||||
msgid "_Add channel..."
|
||||
msgstr "Ch_annel hinzufügen..."
|
||||
msgstr "Ch_annel abbonieren..."
|
||||
|
||||
#: data/gpodder.glade.h:41
|
||||
#: data/gpodder.glade.h:35
|
||||
msgid "_Channels"
|
||||
msgstr "_Channels"
|
||||
|
||||
#: data/gpodder.glade.h:42
|
||||
#: data/gpodder.glade.h:36
|
||||
msgid "_Check for Updates"
|
||||
msgstr "Na_ch Aktualisierungen suchen"
|
||||
|
||||
#: data/gpodder.glade.h:43
|
||||
#: data/gpodder.glade.h:37
|
||||
msgid "_Close"
|
||||
msgstr "S_chließen"
|
||||
|
||||
#: data/gpodder.glade.h:44
|
||||
#: data/gpodder.glade.h:38
|
||||
msgid "_Edit channel..."
|
||||
msgstr "_Editiere Channel..."
|
||||
|
||||
#: data/gpodder.glade.h:45
|
||||
#: data/gpodder.glade.h:39
|
||||
msgid "_Help"
|
||||
msgstr "_Hilfe"
|
||||
|
||||
#: data/gpodder.glade.h:46
|
||||
#: data/gpodder.glade.h:40
|
||||
msgid "_Podcasts"
|
||||
msgstr "_Podcasts"
|
||||
|
||||
#: data/gpodder.glade.h:47
|
||||
#: data/gpodder.glade.h:41
|
||||
msgid "_Preferences..."
|
||||
msgstr "Ein_s_tellungen..."
|
||||
|
||||
#: data/gpodder.glade.h:48
|
||||
#: data/gpodder.glade.h:42
|
||||
msgid "_Remove channel"
|
||||
msgstr "Entfe_rne Channel"
|
||||
|
||||
#: data/gpodder.glade.h:49
|
||||
#: data/gpodder.glade.h:43
|
||||
msgid "gPodder - your podcast catcher."
|
||||
msgstr "gPodder - dein podcast catcher."
|
||||
|
||||
#: data/gpodder.glade.h:50
|
||||
#: data/gpodder.glade.h:44
|
||||
msgid "gPodder Channel Editor"
|
||||
msgstr "gPodder Channel-Editor"
|
||||
|
||||
#: data/gpodder.glade.h:51
|
||||
msgid "gPodder Download Status"
|
||||
msgstr "gPodder Downloadstatus"
|
||||
|
||||
#: data/gpodder.glade.h:52
|
||||
#: data/gpodder.glade.h:45
|
||||
msgid "gPodder properties"
|
||||
msgstr "gPodder Einstellungen"
|
||||
|
||||
#: data/gpodder.glade.h:53
|
||||
msgid "labelSpeed"
|
||||
msgstr ""
|
||||
|
||||
#: data/gpodder.glade.h:54
|
||||
msgid "~/.config/gpodder/downloads/"
|
||||
msgstr ""
|
||||
|
||||
#: bin/gpodder:39
|
||||
#, fuzzy
|
||||
msgid "print extra information"
|
||||
msgstr "Informationen zur Episode"
|
||||
msgid "Be more verbose"
|
||||
msgstr "Detailliertere Ausgabe"
|
||||
|
||||
#: bin/gpodder:43
|
||||
msgid "run local version for debugging"
|
||||
msgstr "lokale Version zu Debugging-Zwecken starten"
|
||||
msgid "Run local version in current directory"
|
||||
msgstr "Lokale Version im Arbeitsverzeichnis starten"
|
||||
|
||||
#: bin/gpodder:47
|
||||
msgid "list all channel subscriptions"
|
||||
msgstr "Alle Abonnements anzeigen"
|
||||
msgid "List all channel subscriptions"
|
||||
msgstr "Alle Channel-Abonnements anzeigen"
|
||||
|
||||
#: bin/gpodder:51
|
||||
msgid "update channels and download new podcasts"
|
||||
msgstr "Channels aktualisieren und neue Podcasts herunterladen"
|
||||
msgid "Update channel list, download new podcasts"
|
||||
msgstr "Channel-Liste aktualisieren und neue Podcasts herunterladen"
|
||||
|
||||
#: bin/gpodder:55
|
||||
#, fuzzy
|
||||
msgid "update channels"
|
||||
msgstr "channel aktualisieren: %s"
|
||||
msgid "Update channel list and exit"
|
||||
msgstr "nur Channel-Liste aktualisieren"
|
||||
|
||||
#: bin/gpodder:58
|
||||
msgid "add FEEDURL to channel subscriptions"
|
||||
msgstr "füge FEEDURL zu den Channel-Abonnements hinzu"
|
||||
msgid "Subscribe to channel from FEEDURL"
|
||||
msgstr "Channel auf FEEDURL abonnieren"
|
||||
|
||||
#: bin/gpodder:61
|
||||
#, fuzzy
|
||||
msgid "delete channel n"
|
||||
msgstr "channel entfernen: %s"
|
||||
msgid "Delete channel with ID n"
|
||||
msgstr "Channel mit der ID n entfernen"
|
||||
|
||||
#: bin/gpodder:79
|
||||
msgid "ERROR: You do not seem to have a usable \"wget\" binary in your path."
|
||||
msgstr "FEHLER: Sie haben anscheinend kein benutzbares \"wget\"-Programm in ihrem Pfad."
|
||||
msgid "Error: cannot find wget."
|
||||
msgstr "Fehler: kann wget nicht finden."
|
||||
|
||||
#: bin/gpodder:82
|
||||
#, c-format
|
||||
msgid "Found wget: %s"
|
||||
msgstr "Wget gefunden: %s"
|
||||
|
||||
#: bin/gpodder:104
|
||||
msgid "channel IDs may have changed, list before deleting again"
|
||||
msgstr "IDs könnten sich verändert haben. Bitte neue Liste anzeigen lassen vor dem nächsten Delete!!"
|
||||
#: bin/gpodder:102
|
||||
msgid "Channel IDs may have changed, list before deleting again."
|
||||
msgstr ""
|
||||
"Channel IDs könnten sich verändert haben. Bitte vor dem nächsten Löschen "
|
||||
"zuerst Channel-Liste anzeigen lassen."
|
||||
|
|
|
@ -18,11 +18,10 @@
|
|||
KNOWN BUGS:
|
||||
*) installation of locale files when doing
|
||||
a "make install" not working
|
||||
*) should re-think the original strings in
|
||||
source files, so this is likely to change in the future
|
||||
*) has had only minimal testing - there might be bugs..
|
||||
|
||||
|
||||
-- thp <thp@perli.net>, Thu, 30 Mar 2006 23:16:20 +0200
|
||||
Updated: Fri, 31 Mar 2006 18:11:41 +0200
|
||||
|
||||
|
||||
|
|
|
@ -15,22 +15,22 @@ show program's version number and exit
|
|||
show this help message and exit
|
||||
.TP
|
||||
\fB\-v\fR, \fB\-\-verbose\fR
|
||||
print extra information
|
||||
Be more verbose
|
||||
.TP
|
||||
\fB\-\-debug\fR
|
||||
run local version for debugging
|
||||
Run local version in current directory
|
||||
.TP
|
||||
\fB\-l\fR, \fB\-\-list\fR
|
||||
list all channel subscriptions
|
||||
List all channel subscriptions
|
||||
.TP
|
||||
\fB\-r\fR, \fB\-\-run\fR
|
||||
update channels and download new podcasts
|
||||
Update channel list, download new podcasts
|
||||
.TP
|
||||
\fB\-u\fR, \fB\-\-update\fR
|
||||
update channels
|
||||
Update channel list and exit
|
||||
.TP
|
||||
\fB\-aFEEDURL\fR, \fB\-\-add\fR=\fIFEEDURL\fR
|
||||
add FEEDURL to channel subscriptions
|
||||
Subscribe to channel from FEEDURL
|
||||
.TP
|
||||
\fB\-dn\fR, \fB\-\-delete\fR=\fIn\fR
|
||||
delete channel n
|
||||
Delete channel with ID n
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
|
||||
# Python module src/gpodder/gpodder.py
|
||||
# Autogenerated from gpodder.glade
|
||||
# Generated on Thu Mar 30 23:18:13 2006
|
||||
# Generated on Fri Mar 31 18:11:13 2006
|
||||
|
||||
# Warning: Do not modify any context comment such as #--
|
||||
# They are required to keep user's code
|
||||
|
@ -50,19 +50,19 @@ import libgpodder
|
|||
app_name = "gpodder"
|
||||
app_version = "unknown" # will be set in main() call
|
||||
app_authors = [
|
||||
"Thomas Perl <thp@perli.net>",
|
||||
"", "Contributors / patch writers:",
|
||||
"Peter Hoffmann <tosh@cs.tu-berlin.de>",
|
||||
"Adrien Beaucreux <informancer@web.de>",
|
||||
"Alain Tauch <contrib@maisondubonheur.com>",
|
||||
"", "For a complete list of contributors, see AUTHORS file"
|
||||
'Thomas Perl <thp@perli.net>', '',
|
||||
_('Contributors / patch writers:'),
|
||||
'Peter Hoffmann <tosh@cs.tu-berlin.de>',
|
||||
'Adrien Beaucreux <informancer@web.de>',
|
||||
'Alain Tauch <contrib@maisondubonheur.com>', '',
|
||||
_('See the AUTHORS file for all contributors')
|
||||
]
|
||||
app_copyright = "Copyright (c) 2005-2006 Thomas Perl"
|
||||
app_website = "http://perli.net/projekte/gpodder/"
|
||||
app_copyright = 'Copyright (c) 2005-2006 Thomas Perl'
|
||||
app_website = 'http://perli.net/projekte/gpodder/'
|
||||
|
||||
glade_dir = "/usr/share/gpodder/"
|
||||
icon_dir = "/usr/share/gpodder/images/gpodder.png"
|
||||
locale_dir = "/usr/share/locale/"
|
||||
glade_dir = '/usr/share/gpodder/'
|
||||
icon_dir = '/usr/share/gpodder/images/gpodder.png'
|
||||
locale_dir = '/usr/share/locale/'
|
||||
|
||||
class Gpodder(SimpleGladeApp):
|
||||
channels = []
|
||||
|
@ -81,6 +81,9 @@ class Gpodder(SimpleGladeApp):
|
|||
# Local DB
|
||||
ldb = None
|
||||
|
||||
# User Apps Reader
|
||||
uar = None
|
||||
|
||||
def __init__(self, path="gpodder.glade",
|
||||
root="gPodder",
|
||||
domain=app_name, **kwargs):
|
||||
|
@ -143,12 +146,7 @@ class Gpodder(SimpleGladeApp):
|
|||
self.download_status_manager = downloadStatusManager()
|
||||
self.treeDownloads.set_model( self.download_status_manager.getModel())
|
||||
|
||||
# xml test
|
||||
#reader = rssReader()
|
||||
#reader.parseXML( "http://www.perli.net", "test.xml")
|
||||
#self.channels.append( reader.channel)
|
||||
#reader.parseXML( "http://www.lugradio.org/episodes.rss", "episodes.rss")
|
||||
#self.channels.append( reader.channel)
|
||||
# read and display subscribed channels
|
||||
reader = gPodderChannelReader()
|
||||
self.channels = reader.read( False)
|
||||
self.channels_loaded = True
|
||||
|
@ -183,7 +181,7 @@ class Gpodder(SimpleGladeApp):
|
|||
try:
|
||||
self.comboAvailable.set_active( 0)
|
||||
except:
|
||||
print _("probably no channels found")
|
||||
pass
|
||||
#self.updateTreeView()
|
||||
|
||||
def updateDownloadedComboBox( self):
|
||||
|
@ -198,7 +196,7 @@ class Gpodder(SimpleGladeApp):
|
|||
except:
|
||||
self.active_downloaded_channels = 0
|
||||
if libgpodder.isDebugging():
|
||||
print _("no downloaded podcasts found..")
|
||||
print _('No downloaded podcasts found.')
|
||||
# end of self.updateDownloadedComboBox()
|
||||
|
||||
def updateTreeView( self):
|
||||
|
@ -209,9 +207,8 @@ class Gpodder(SimpleGladeApp):
|
|||
if self.items_model != None:
|
||||
self.items_model.clear()
|
||||
self.showMessage( _("<b>No channels found</b>\n\nClick on <b><i>Channels</i></b> > <b><i>Add channel..</i></b> to add a new channel."))
|
||||
print _("probably no feeds or channels found")
|
||||
|
||||
def showMessage( self, message = _("some unknown function"), title = _("gPodder message")):
|
||||
def showMessage( self, message, title = _('gPodder message')):
|
||||
dlg = gtk.MessageDialog( self.gPodder, gtk.DIALOG_MODAL, gtk.MESSAGE_INFO, gtk.BUTTONS_OK)
|
||||
dlg.set_title( title)
|
||||
dlg.set_markup( message)
|
||||
|
@ -219,7 +216,7 @@ class Gpodder(SimpleGladeApp):
|
|||
dlg.run()
|
||||
dlg.destroy()
|
||||
|
||||
def showConfirmation( self, message = _("Do you really want to do this?"), title = _("gPodder confirmation")):
|
||||
def showConfirmation( self, message = _('Do you really want to do this?'), title = _('gPodder confirmation')):
|
||||
myresult = False
|
||||
dlg = gtk.MessageDialog( self.gPodder, gtk.DIALOG_MODAL, gtk.MESSAGE_QUESTION, gtk.BUTTONS_YES_NO)
|
||||
dlg.set_title( title)
|
||||
|
@ -230,8 +227,8 @@ class Gpodder(SimpleGladeApp):
|
|||
|
||||
dlg.destroy()
|
||||
if libgpodder.isDebugging():
|
||||
print _("I Asked: %s") % message
|
||||
print _("User answered: %s") % str(myresult)
|
||||
print "I Asked: %s" % message
|
||||
print "User answered: %s" % str(myresult)
|
||||
return myresult
|
||||
|
||||
def set_icon(self):
|
||||
|
@ -240,7 +237,7 @@ class Gpodder(SimpleGladeApp):
|
|||
|
||||
def get_icon(self, entry, size=24):
|
||||
#path = self.custom_handler.getIconPath(entry, size)
|
||||
path = '/usr/share/gpodder/images/gpodder.png'
|
||||
path = icon_dir
|
||||
if path == None:
|
||||
pb = gtk.gdk.Pixbuf(gtk.gdk.COLORSPACE_RGB, True, 8, size, size)
|
||||
pb.fill(0x00000000)
|
||||
|
@ -268,30 +265,46 @@ class Gpodder(SimpleGladeApp):
|
|||
self.updateDownloadedComboBox()
|
||||
|
||||
def drag_data_received(self, widget, context, x, y, sel, ttype, time):
|
||||
#TODO following code is copied from on_itemAddChannel_activate refactor both to new method
|
||||
result = sel.data
|
||||
self.add_new_channel( result)
|
||||
|
||||
def refetch_channel_list( self):
|
||||
channels_should_be = len( self.channels)
|
||||
|
||||
# fetch metadata for that channel
|
||||
gPodderChannelWriter().write( self.channels)
|
||||
self.channels = gPodderChannelReader().read( False)
|
||||
|
||||
# fetch feed for that channel
|
||||
gPodderChannelWriter().write( self.channels)
|
||||
self.channels = gPodderChannelReader().read( False)
|
||||
|
||||
# check if gPodderChannelReader has successfully added the channel
|
||||
if channels_should_be > len( self.channels):
|
||||
self.showMessage( _("There has been an error adding the channel.\nMaybe the URL is wrong?"))
|
||||
|
||||
def add_new_channel( self, result = None):
|
||||
if result != None and result != "" and (result[:4] == "http" or result[:3] == "ftp"):
|
||||
print _("Adding channel: %s") % result
|
||||
if libgpodder.isDebugging():
|
||||
print ("Will add channel :%s") % result
|
||||
self.statusLabel.set_text( _("Fetching channel index..."))
|
||||
channel_new = podcastChannel( result)
|
||||
channel_new.shortname = "__unknown__"
|
||||
self.channels.append( channel_new)
|
||||
|
||||
# fetch metadata for that channel
|
||||
gPodderChannelWriter().write( self.channels)
|
||||
self.channels = gPodderChannelReader().read( False)
|
||||
# download changed channels
|
||||
self.refetch_channel_list()
|
||||
|
||||
# fetch feed for that channel
|
||||
gPodderChannelWriter().write( self.channels)
|
||||
self.channels = gPodderChannelReader().read( False)
|
||||
|
||||
#TODO maybe change to new channel
|
||||
# try to update combo box
|
||||
self.updateComboBox()
|
||||
self.statusLabel.set_text( "")
|
||||
else:
|
||||
#TODO graphical reaction
|
||||
print _("unkonwn link format: %s") %result
|
||||
if result != None and result != "":
|
||||
self.showMessage( _("Could not add new channel.\nOnly <b>http://</b> and <b>ftp://</b> URLs supported at the moment."))
|
||||
|
||||
def get_current_channel_downloaded( self):
|
||||
iter = self.comboDownloaded.get_active_iter()
|
||||
return self.comboDownloaded.get_model().get_value( iter, 0)
|
||||
#-- Gpodder custom methods }
|
||||
|
||||
#-- Gpodder.close_gpodder {
|
||||
|
@ -329,7 +342,11 @@ class Gpodder(SimpleGladeApp):
|
|||
def on_itemPreferences_activate(self, widget, *args):
|
||||
if libgpodder.isDebugging():
|
||||
print "on_itemPreferences_activate called with self.%s" % widget.get_name()
|
||||
if self.uar == None:
|
||||
self.uar = UserAppsReader()
|
||||
self.uar.read()
|
||||
prop = Gpodderproperties()
|
||||
prop.set_uar( self.uar)
|
||||
#-- Gpodder.on_itemPreferences_activate }
|
||||
|
||||
#-- Gpodder.on_itemAddChannel_activate {
|
||||
|
@ -339,52 +356,24 @@ class Gpodder(SimpleGladeApp):
|
|||
ch = Gpodderchannel()
|
||||
ch.entryURL.set_text( "http://")
|
||||
result = ch.requestURL()
|
||||
if result != None and result != "" and (result[:4] == "http" or result[:3] == "ftp"):
|
||||
if libgpodder.isDebugging():
|
||||
print ("Will add channel :%s") % result
|
||||
self.statusLabel.set_text( _("Fetching channel index..."))
|
||||
channel_new = podcastChannel( result)
|
||||
channel_new.shortname = "__unknown__"
|
||||
self.channels.append( channel_new)
|
||||
channels_should_be = len( self.channels)
|
||||
|
||||
# fetch metadata for that channel
|
||||
gPodderChannelWriter().write( self.channels)
|
||||
self.channels = gPodderChannelReader().read( False)
|
||||
|
||||
# fetch feed for that channel
|
||||
gPodderChannelWriter().write( self.channels)
|
||||
self.channels = gPodderChannelReader().read( False)
|
||||
|
||||
# check if gPodderChannelReader has successfully added the channel
|
||||
if channels_should_be > len( self.channels):
|
||||
self.showMessage( _("There has been an error adding the channel.\nMaybe the URL is wrong?"))
|
||||
|
||||
self.updateComboBox()
|
||||
self.statusLabel.set_text( "")
|
||||
else:
|
||||
if result != None and result != "":
|
||||
self.showMessage( _("Could not add new channel.\nOnly <b>http://</b> and <b>ftp://</b> URLs supported at the moment."))
|
||||
self.add_new_channel( result)
|
||||
#-- Gpodder.on_itemAddChannel_activate }
|
||||
|
||||
#-- Gpodder.on_itemEditChannel_activate {
|
||||
def on_itemEditChannel_activate(self, widget, *args):
|
||||
if libgpodder.isDebugging():
|
||||
print "on_itemEditChannel_activate called with self.%s" % widget.get_name()
|
||||
active = self.active_channel
|
||||
channel = None
|
||||
try:
|
||||
url_old = self.channels[active].url
|
||||
title_old = self.channels[active].title
|
||||
desc_old = self.channels[active].description
|
||||
downloaddir_old = self.channels[active].save_dir # FIXME: should be download dir, but save_dir is more descriptive for now
|
||||
channel = self.channels[self.active_channel]
|
||||
except:
|
||||
self.showMessage( _("Cannot edit this channel.\n\nNo channel found."))
|
||||
return
|
||||
|
||||
result = Gpodderchannel().requestURL( preset = url_old, title = title_old, description = desc_old, downloaddir = downloaddir_old)
|
||||
if result != None and result != "" and (result[:4] == "http" or result[:3] == "ftp"):
|
||||
result = Gpodderchannel().requestURL( channel)
|
||||
if result != channel.url and result != None and result != "" and (result[:4] == "http" or result[:3] == "ftp"):
|
||||
if libgpodder.isDebugging():
|
||||
print "will EDIT ID " + str(active) + " FROM " + url_old + " TO " + result
|
||||
print 'Changing ID %d from "%s" to "%s"' % (active, channel.url, result)
|
||||
self.statusLabel.set_text( _("Fetching channel index..."))
|
||||
channel_new = podcastChannel( result)
|
||||
channel_new.shortname = "__unknown__"
|
||||
|
@ -393,16 +382,8 @@ class Gpodder(SimpleGladeApp):
|
|||
new_channels.extend( self.channels[active+1:])
|
||||
self.channels = new_channels
|
||||
|
||||
# TODO: REFACTOR THE NEXT TWO CODEBLOCKS INTO
|
||||
# A SINGLE FUNCTION (SAME BLOCKS ARE USED IN "ADD FEED")
|
||||
|
||||
# fetch metadata for that channel
|
||||
gPodderChannelWriter().write( self.channels)
|
||||
self.channels = gPodderChannelReader().read( False)
|
||||
|
||||
# fetch feed for that channel
|
||||
gPodderChannelWriter().write( self.channels)
|
||||
self.channels = gPodderChannelReader().read( False)
|
||||
# fetch new channels
|
||||
self.refetch_channel_list()
|
||||
|
||||
self.updateComboBox()
|
||||
self.statusLabel.set_text( "")
|
||||
|
@ -431,9 +412,9 @@ class Gpodder(SimpleGladeApp):
|
|||
if libgpodder.isDebugging():
|
||||
print "on_itemExportChannels_activate called with self.%s" % widget.get_name()
|
||||
if len( self.channels) == 0:
|
||||
self.showMessage( _("Your channel list is empty. Nothing to export.\n\nGo add some fancy channels! :)"))
|
||||
self.showMessage( _("Your channel list is empty. Nothing to export."))
|
||||
return
|
||||
dlg = gtk.FileChooserDialog( title=_("Export to OPML..."), parent = None, action = gtk.FILE_CHOOSER_ACTION_SAVE)
|
||||
dlg = gtk.FileChooserDialog( title=_("Export to OPML"), parent = None, action = gtk.FILE_CHOOSER_ACTION_SAVE)
|
||||
dlg.add_button( gtk.STOCK_CANCEL, gtk.RESPONSE_CANCEL)
|
||||
dlg.add_button( gtk.STOCK_SAVE, gtk.RESPONSE_OK)
|
||||
response = dlg.run()
|
||||
|
@ -442,7 +423,7 @@ class Gpodder(SimpleGladeApp):
|
|||
if foutname[-5:] != ".opml" and foutname[-4:] != ".xml":
|
||||
foutname = foutname + ".opml"
|
||||
if libgpodder.isDebugging():
|
||||
print _("=> WILL WRITE OPML TO: ") + foutname
|
||||
print 'Exporting channels list to: %s' % foutname
|
||||
w = opmlWriter( foutname)
|
||||
for ch in self.channels:
|
||||
w.addChannel( ch)
|
||||
|
@ -501,7 +482,7 @@ class Gpodder(SimpleGladeApp):
|
|||
selection_iter = selection_tuple[1]
|
||||
url = self.items_model.get_value( selection_iter, 0)
|
||||
except:
|
||||
self.showMessage( _("You have not selected an episode to download.\n\nPlease select one, and I'll download it for you."))
|
||||
self.showMessage( _("You have not selected an episode to download."))
|
||||
return
|
||||
|
||||
self.active_item = self.channels[self.active_channel].getActiveByUrl( url)
|
||||
|
@ -516,7 +497,7 @@ class Gpodder(SimpleGladeApp):
|
|||
if os.path.exists( filename) == False and self.download_status_manager.is_download_in_progress( current_podcast.url) == False:
|
||||
downloadThread( current_podcast.url, filename, None, self.download_status_manager, current_podcast.title, current_channel, current_podcast, self.ldb).download()
|
||||
else:
|
||||
self.showMessage( _("<big><b>Already downloaded</b></big>\n\nYou have already downloaded this episode.\nOr you are currently downloading it."))
|
||||
self.showMessage( _("You have already downloaded this episode\nor you are currently downloading it."))
|
||||
#-- Gpodder.on_treeAvailable_row_activated }
|
||||
|
||||
#-- Gpodder.on_btnDownload_clicked {
|
||||
|
@ -538,7 +519,7 @@ class Gpodder(SimpleGladeApp):
|
|||
if self.showConfirmation( _("Do you really want to cancel this download?\n\n%s") % title):
|
||||
self.download_status_manager.cancel_by_url( url)
|
||||
else:
|
||||
self.showMessage( _("No episode selected - nothing cancelled."))
|
||||
self.showMessage( _("No episode selected."))
|
||||
#-- Gpodder.on_treeDownloads_row_activated }
|
||||
|
||||
#-- Gpodder.on_btnCancelDownloadStatus_clicked {
|
||||
|
@ -554,11 +535,8 @@ class Gpodder(SimpleGladeApp):
|
|||
print "on_comboDownloaded_changed called with self.%s" % widget.get_name()
|
||||
self.active_downloaded_channels = self.comboDownloaded.get_active()
|
||||
try:
|
||||
selection_iter = self.comboDownloaded.get_active_iter()
|
||||
selected_value = self.comboDownloaded.get_model().get_value( selection_iter, 0)
|
||||
if libgpodder.isDebugging():
|
||||
print "comboDownloaded_changed with: " + selected_value
|
||||
new_model = self.ldb.getDownloadedEpisodesModelByFilename( selected_value)
|
||||
filename = self.get_current_channel_downloaded()
|
||||
new_model = self.ldb.getDownloadedEpisodesModelByFilename( filename)
|
||||
self.treeDownloaded.set_model( new_model)
|
||||
except:
|
||||
# silently ignore the fact that we do not have any downloads
|
||||
|
@ -569,18 +547,16 @@ class Gpodder(SimpleGladeApp):
|
|||
def on_treeDownloaded_row_activated(self, widget, *args):
|
||||
if libgpodder.isDebugging():
|
||||
print "on_treeDownloaded_row_activated called with self.%s" % widget.get_name()
|
||||
# TODO: refactor with above "on_comboDownloaded_changed" into one method (next three lines)
|
||||
try:
|
||||
selection_iter = self.comboDownloaded.get_active_iter()
|
||||
channel_filename = self.comboDownloaded.get_model().get_value( selection_iter, 0)
|
||||
channel_filename = self.get_current_channel_downloaded()
|
||||
|
||||
selection_tuple = self.treeDownloaded.get_selection().get_selected()
|
||||
selection_iter = selection_tuple[1]
|
||||
url = self.treeDownloaded.get_model().get_value( selection_iter, 0)
|
||||
filename_final = localDB().getLocalFilenameByPodcastURL( channel_filename, url)
|
||||
filename_final = self.ldb.getLocalFilenameByPodcastURL( channel_filename, url)
|
||||
gPodderLib().openFilename( filename_final)
|
||||
except:
|
||||
self.showMessage( _("Could not open this episode.\n\nHave you even selected one?"))
|
||||
self.showMessage( _("No episode selected."))
|
||||
#-- Gpodder.on_treeDownloaded_row_activated }
|
||||
|
||||
#-- Gpodder.on_btnDownloadedExecute_clicked {
|
||||
|
@ -595,17 +571,16 @@ class Gpodder(SimpleGladeApp):
|
|||
if libgpodder.isDebugging():
|
||||
print "on_btnDownloadedDelete_clicked called with self.%s" % widget.get_name()
|
||||
|
||||
# Note: same code as in on_treeDownloaded_row_activated()
|
||||
# Note: same code as in on_treeDownloaded_row_activated() TODO: refactor!
|
||||
try:
|
||||
selection_iter = self.comboDownloaded.get_active_iter()
|
||||
channel_filename = self.comboDownloaded.get_model().get_value( selection_iter, 0)
|
||||
channel_filename = self.get_current_channel_downloaded()
|
||||
|
||||
selection_tuple = self.treeDownloaded.get_selection().get_selected()
|
||||
selection_iter = selection_tuple[1]
|
||||
|
||||
url = self.treeDownloaded.get_model().get_value( selection_iter, 0)
|
||||
title = self.treeDownloaded.get_model().get_value( selection_iter, 1)
|
||||
filename_final = localDB().getLocalFilenameByPodcastURL( channel_filename, url)
|
||||
filename_final = self.ldb.getLocalFilenameByPodcastURL( channel_filename, url)
|
||||
current_channel = self.downloaded_channels[self.comboDownloaded.get_active()]
|
||||
if self.showConfirmation( _("Do you really want to remove this episode?\n\n%s") % title) == False:
|
||||
return
|
||||
|
@ -617,78 +592,16 @@ class Gpodder(SimpleGladeApp):
|
|||
self.updateComboBox()
|
||||
self.updateDownloadedComboBox()
|
||||
except:
|
||||
self.showMessage( _("Could not delete selected item.\nHave you selected an episode to delete?"))
|
||||
self.showMessage( _("Could not delete downloaded podcast."))
|
||||
#-- Gpodder.on_btnDownloadedDelete_clicked }
|
||||
|
||||
|
||||
class Gpodderstatus(SimpleGladeApp):
|
||||
class Gpodderchannel(SimpleGladeApp):
|
||||
event = None
|
||||
channel = None
|
||||
podcast = None
|
||||
thread = None
|
||||
|
||||
def __init__(self, path="gpodder.glade",
|
||||
root="gPodderStatus",
|
||||
domain=app_name, **kwargs):
|
||||
path = os.path.join(glade_dir, path)
|
||||
SimpleGladeApp.__init__(self, path, root, domain, **kwargs)
|
||||
|
||||
#-- Gpodderstatus.new {
|
||||
def new(self, download_status_manager = None):
|
||||
if libgpodder.isDebugging():
|
||||
print "A new %s has been created" % self.__class__.__name__
|
||||
#-- Gpodderstatus.new }
|
||||
|
||||
#-- Gpodderstatus custom methods {
|
||||
# Write your own methods here
|
||||
def setup( self, channel, podcast, download_status_manager):
|
||||
self.channel = channel
|
||||
self.podcast = podcast
|
||||
|
||||
self.labelFrom.set_markup( "<b>" + self.channel.title + "</b>")
|
||||
self.labelFilename.set_markup( "<b>" + self.podcast.title + "</b>")
|
||||
|
||||
|
||||
def download( self):
|
||||
self.thread.download()
|
||||
|
||||
while self.event.isSet() == False:
|
||||
self.event.wait( 0.1)
|
||||
|
||||
self.labelSpeed.set_text( self.thread.speed)
|
||||
self.progressBar.set_fraction( float(self.thread.percentage))
|
||||
|
||||
while gtk.events_pending():
|
||||
gtk.main_iteration( False)
|
||||
|
||||
self.gPodderStatus.destroy()
|
||||
|
||||
def cancel( self):
|
||||
self.on_btnCancel_clicked( self.btnCancel, None)
|
||||
#-- Gpodderstatus custom methods }
|
||||
|
||||
#-- Gpodderstatus.on_gPodderStatus_destroy {
|
||||
def on_gPodderStatus_destroy(self, widget, *args):
|
||||
if libgpodder.isDebugging():
|
||||
print "on_gPodderStatus_destroy called with self.%s" % widget.get_name()
|
||||
#-- Gpodderstatus.on_gPodderStatus_destroy }
|
||||
|
||||
#-- Gpodderstatus.on_btnCancel_clicked {
|
||||
def on_btnCancel_clicked(self, widget, *args):
|
||||
if libgpodder.isDebugging():
|
||||
print "on_btnCancel_clicked called with self.%s" % widget.get_name()
|
||||
|
||||
if self.thread != None:
|
||||
self.thread.cancel()
|
||||
|
||||
while self.event != None and self.event.isSet() == False:
|
||||
None
|
||||
|
||||
self.gPodderStatus.destroy()
|
||||
#-- Gpodderstatus.on_btnCancel_clicked }
|
||||
|
||||
|
||||
class Gpodderchannel(SimpleGladeApp):
|
||||
def __init__(self, path="gpodder.glade",
|
||||
root="gPodderChannel",
|
||||
domain=app_name, **kwargs):
|
||||
|
@ -705,15 +618,19 @@ class Gpodderchannel(SimpleGladeApp):
|
|||
#-- Gpodderchannel.new }
|
||||
|
||||
#-- Gpodderchannel custom methods {
|
||||
# Write your own methods here
|
||||
def requestURL( self, preset = None, title = "(unknown)", description = "(unknown)", downloaddir = None):
|
||||
if preset != None:
|
||||
self.entryURL.set_text( preset)
|
||||
def requestURL( self, channel = None):
|
||||
if channel != None:
|
||||
self.entryURL.set_text( channel.url)
|
||||
self.downloadTo.set_text( channel.save_dir)
|
||||
self.channel_title.set_markup( "<b>%s</b>" % channel.title)
|
||||
description = channel.description
|
||||
if channel.image != None:
|
||||
# load image in background
|
||||
gPodderLib().get_image_from_url( channel.image, self.imgCover.set_from_pixbuf, self.labelCoverStatus.set_text, self.labelCoverStatus.hide, channel.cover_file)
|
||||
else:
|
||||
self.channel_title.set_markup( "<b>%s</b>" % _("(unknown)"))
|
||||
description = _("(unknown)")
|
||||
|
||||
if downloaddir != None:
|
||||
self.downloadTo.set_text( downloaddir)
|
||||
|
||||
self.channel_title.set_markup( "<b>%s</b>" % title)
|
||||
b = gtk.TextBuffer()
|
||||
b.set_text( description)
|
||||
self.channel_description.set_buffer( b)
|
||||
|
@ -778,9 +695,6 @@ class Gpodderproperties(SimpleGladeApp):
|
|||
self.openApp.set_text( gl.open_app)
|
||||
# if the symlink exists, set the checkbox active
|
||||
self.cbDesktopSymlink.set_active( gPodderLib().getDesktopSymlink())
|
||||
# fill players box with values
|
||||
uar = UserAppsReader()
|
||||
uar.read()
|
||||
# setup cell renderers
|
||||
cellrenderer = gtk.CellRendererPixbuf()
|
||||
self.comboPlayerApp.pack_start( cellrenderer, False)
|
||||
|
@ -789,14 +703,16 @@ class Gpodderproperties(SimpleGladeApp):
|
|||
self.comboPlayerApp.pack_start( cellrenderer, True)
|
||||
self.comboPlayerApp.add_attribute( cellrenderer, 'markup', 0)
|
||||
# end setup cell renderers
|
||||
#-- Gpodderproperties.new }
|
||||
|
||||
#-- Gpodderproperties custom methods {
|
||||
def set_uar( self, uar):
|
||||
self.comboPlayerApp.set_model( uar.get_applications_as_model())
|
||||
# try to activate an item
|
||||
index = self.find_active()
|
||||
self.comboPlayerApp.set_active( index)
|
||||
#-- Gpodderproperties.new }
|
||||
# end set_uar
|
||||
|
||||
#-- Gpodderproperties custom methods {
|
||||
# Write your own methods here
|
||||
def find_active( self):
|
||||
model = self.comboPlayerApp.get_model()
|
||||
iter = model.get_iter_first()
|
||||
|
@ -821,7 +737,7 @@ class Gpodderproperties(SimpleGladeApp):
|
|||
#-- Gpodderproperties.on_comboPlayerApp_changed {
|
||||
def on_comboPlayerApp_changed(self, widget, *args):
|
||||
if libgpodder.isDebugging():
|
||||
print "on_comboPlayerApp_changed called with self.%s" % widget.get_name()
|
||||
print "on_comboPlayerApp_changed called with self.%s" % widget.get_name()
|
||||
|
||||
# find out which one
|
||||
iter = self.comboPlayerApp.get_active_iter()
|
||||
|
@ -864,7 +780,6 @@ class Gpodderproperties(SimpleGladeApp):
|
|||
|
||||
|
||||
class Gpodderepisode(SimpleGladeApp):
|
||||
|
||||
def __init__(self, path="gpodder.glade",
|
||||
root="gPodderEpisode",
|
||||
domain=app_name, **kwargs):
|
||||
|
@ -872,7 +787,7 @@ class Gpodderepisode(SimpleGladeApp):
|
|||
SimpleGladeApp.__init__(self, path, root, domain, **kwargs)
|
||||
|
||||
#-- Gpodderepisode.new {
|
||||
def new( self):
|
||||
def new(self):
|
||||
if libgpodder.isDebugging():
|
||||
print "A new %s has been created" % self.__class__.__name__
|
||||
#-- Gpodderepisode.new }
|
||||
|
@ -903,7 +818,6 @@ def main( __version__ = None):
|
|||
bindtextdomain( app_name, locale_dir)
|
||||
app_version = __version__
|
||||
g_podder = Gpodder()
|
||||
#g_podder_status = Gpodderstatus()
|
||||
#g_podder_channel = Gpodderchannel()
|
||||
#g_podder_properties = Gpodderproperties()
|
||||
#g_podder_episode = Gpodderepisode()
|
||||
|
@ -912,7 +826,7 @@ def main( __version__ = None):
|
|||
g_podder.run()
|
||||
|
||||
if __name__ == "__main__":
|
||||
print _("please run the gpodder binary, not this file")
|
||||
print _("Please do not call gpodder.py directly. Instead, call the gpodder binary.")
|
||||
sys.exit( -1)
|
||||
|
||||
#-- main }
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
|
||||
# Python module src/gpodder/gpodder.py
|
||||
# Autogenerated from gpodder.glade
|
||||
# Generated on Thu Mar 30 23:18:13 2006
|
||||
# Generated on Fri Mar 31 18:11:13 2006
|
||||
|
||||
# Warning: Do not modify any context comment such as #--
|
||||
# They are required to keep user's code
|
||||
|
@ -137,34 +137,6 @@ class Gpodder(SimpleGladeApp):
|
|||
#-- Gpodder.on_btnDownloadedDelete_clicked }
|
||||
|
||||
|
||||
class Gpodderstatus(SimpleGladeApp):
|
||||
|
||||
def __init__(self, path="gpodder.glade",
|
||||
root="gPodderStatus",
|
||||
domain=app_name, **kwargs):
|
||||
path = os.path.join(glade_dir, path)
|
||||
SimpleGladeApp.__init__(self, path, root, domain, **kwargs)
|
||||
|
||||
#-- Gpodderstatus.new {
|
||||
def new(self):
|
||||
print "A new %s has been created" % self.__class__.__name__
|
||||
#-- Gpodderstatus.new }
|
||||
|
||||
#-- Gpodderstatus custom methods {
|
||||
# Write your own methods here
|
||||
#-- Gpodderstatus custom methods }
|
||||
|
||||
#-- Gpodderstatus.on_gPodderStatus_destroy {
|
||||
def on_gPodderStatus_destroy(self, widget, *args):
|
||||
print "on_gPodderStatus_destroy called with self.%s" % widget.get_name()
|
||||
#-- Gpodderstatus.on_gPodderStatus_destroy }
|
||||
|
||||
#-- Gpodderstatus.on_btnCancel_clicked {
|
||||
def on_btnCancel_clicked(self, widget, *args):
|
||||
print "on_btnCancel_clicked called with self.%s" % widget.get_name()
|
||||
#-- Gpodderstatus.on_btnCancel_clicked }
|
||||
|
||||
|
||||
class Gpodderchannel(SimpleGladeApp):
|
||||
|
||||
def __init__(self, path="gpodder.glade",
|
||||
|
@ -263,7 +235,6 @@ class Gpodderepisode(SimpleGladeApp):
|
|||
|
||||
def main():
|
||||
g_podder = Gpodder()
|
||||
g_podder_status = Gpodderstatus()
|
||||
g_podder_channel = Gpodderchannel()
|
||||
g_podder_properties = Gpodderproperties()
|
||||
g_podder_episode = Gpodderepisode()
|
||||
|
|
|
@ -14,6 +14,7 @@
|
|||
import gtk
|
||||
import thread
|
||||
import threading
|
||||
import urllib
|
||||
|
||||
from xml.sax.saxutils import DefaultHandler
|
||||
from xml.sax import make_parser
|
||||
|
@ -35,6 +36,8 @@ from stat import ST_MODE
|
|||
from librssreader import rssReader
|
||||
from libpodcasts import podcastChannel
|
||||
|
||||
from gtk.gdk import PixbufLoader
|
||||
|
||||
# global debugging variable, set to False on release
|
||||
# TODO: while developing a new version, set this to "True"
|
||||
debugging = True
|
||||
|
@ -58,6 +61,7 @@ class gPodderLib( object):
|
|||
http_proxy = ""
|
||||
ftp_proxy = ""
|
||||
open_app = ""
|
||||
desktop_link = _("gPodder downloads")
|
||||
|
||||
def __init__( self):
|
||||
self.gpodderdir = expanduser( "~/.config/gpodder/")
|
||||
|
@ -134,7 +138,7 @@ class gPodderLib( object):
|
|||
system( self.open_app + " " + filename + " &")
|
||||
|
||||
def getDesktopSymlink( self):
|
||||
symlink_path = expanduser( "~/Desktop/"+_("gPodder downloads"))
|
||||
symlink_path = expanduser( "~/Desktop/%s" % self.desktop_link)
|
||||
return exists( symlink_path)
|
||||
|
||||
def createDesktopSymlink( self):
|
||||
|
@ -143,13 +147,53 @@ class gPodderLib( object):
|
|||
if not self.getDesktopSymlink():
|
||||
downloads_path = expanduser( "~/Desktop/")
|
||||
self.createIfNecessary( downloads_path)
|
||||
symlink( self.downloaddir, downloads_path + _("gPodder downloads"))
|
||||
symlink( self.downloaddir, "%s%s" % (downloads_path, self.desktop_link))
|
||||
|
||||
def removeDesktopSymlink( self):
|
||||
if isDebugging():
|
||||
print "removeDesktopSymlink requested"
|
||||
if self.getDesktopSymlink():
|
||||
unlink( expanduser( "~/Desktop/"+_("gPodder downloads")))
|
||||
unlink( expanduser( "~/Desktop/%s" % self.desktop_link))
|
||||
|
||||
def image_download_thread( self, url, callback_pixbuf = None, callback_status = None, callback_finished = None, cover_file = None):
|
||||
if callback_status != None:
|
||||
callback_status( _('Downloading channel cover...'))
|
||||
pixbuf = PixbufLoader()
|
||||
|
||||
if cover_file == None:
|
||||
if isDebugging():
|
||||
print "directly downloading %s" % url
|
||||
pixbuf.write( urllib.urlopen(url).read())
|
||||
|
||||
if cover_file != None and not exists( cover_file):
|
||||
if isDebugging():
|
||||
print "downloading cover to %s" % cover_file
|
||||
cachefile = open( cover_file, "w")
|
||||
cachefile.write( urllib.urlopen(url).read())
|
||||
cachefile.close()
|
||||
|
||||
if cover_file != None:
|
||||
if isDebugging():
|
||||
print "reading cover from %s" % cover_file
|
||||
pixbuf.write( open( cover_file, "r").read())
|
||||
|
||||
try:
|
||||
pixbuf.close()
|
||||
except:
|
||||
# data error, delete temp file
|
||||
self.deleteFilename( cover_file)
|
||||
|
||||
if callback_pixbuf != None:
|
||||
callback_pixbuf( pixbuf.get_pixbuf())
|
||||
if callback_status != None:
|
||||
callback_status( '')
|
||||
if callback_finished != None:
|
||||
callback_finished()
|
||||
|
||||
def get_image_from_url( self, url, callback_pixbuf = None, callback_status = None, callback_finished = None, cover_file = None):
|
||||
args = ( url, callback_pixbuf, callback_status, callback_finished, cover_file )
|
||||
thread = threading.Thread( target = self.image_download_thread, args = args)
|
||||
thread.start()
|
||||
|
||||
def deleteFilename( self, filename):
|
||||
if isDebugging():
|
||||
|
@ -164,12 +208,12 @@ class gPodderChannelWriter( object):
|
|||
def write( self, channels):
|
||||
filename = gPodderLib().getChannelsFilename()
|
||||
fd = open( filename, "w")
|
||||
print >> fd, '<!-- '+_('automatically generated, will be overwritten on next gpodder shutdown.')+' -->'
|
||||
print >> fd, '<!-- '+_('gPodder channel list')+' -->'
|
||||
print >> fd, '<channels>'
|
||||
for chan in channels:
|
||||
print >> fd, ' <channel name="%s">' %chan.filename
|
||||
print >> fd, ' <url>%s</url>' %chan.url
|
||||
print >> fd, ' <download_dir>%s</download_dir>' %chan.save_dir
|
||||
print >> fd, ' <channel name="%s">' % chan.filename
|
||||
print >> fd, ' <url>%s</url>' % chan.url
|
||||
print >> fd, ' <download_dir>%s</download_dir>' % chan.save_dir
|
||||
print >> fd, ' </channel>'
|
||||
print >> fd, '</channels>'
|
||||
fd.close()
|
||||
|
|
|
@ -94,7 +94,7 @@ class localDB( object):
|
|||
rdb.parseXML( filename)
|
||||
self.localdbs[filename] = rdb
|
||||
|
||||
return rdb.channel.getItemsModel()
|
||||
return rdb.channel.getItemsModel( False)
|
||||
|
||||
def getLocalFilenameByPodcastURL( self, channel_filename, url):
|
||||
if channel_filename in self.localdbs:
|
||||
|
|
|
@ -76,7 +76,8 @@ class podcastChannel(object):
|
|||
locdb_reader.parseXML( localdb)
|
||||
self.downloaded = locdb_reader.channel
|
||||
except:
|
||||
print "no local db found or local db error: creating new.."
|
||||
if libgpodder.isDebugging():
|
||||
print "no local db found or local db error: creating new.."
|
||||
self.downloaded = podcastChannel( self.url, self.title, self.link, self.description)
|
||||
|
||||
self.downloaded.items.append( item)
|
||||
|
@ -91,13 +92,13 @@ class podcastChannel(object):
|
|||
def isDownloaded( self, item):
|
||||
return self.podcastFilenameExists( item.url)
|
||||
|
||||
def getItemsModel( self):
|
||||
def getItemsModel( self, want_color = True):
|
||||
new_model = gtk.ListStore( gobject.TYPE_STRING, gobject.TYPE_STRING, gobject.TYPE_STRING, gobject.TYPE_BOOLEAN, gobject.TYPE_STRING)
|
||||
|
||||
for item in self.items:
|
||||
# Skip items with no download url
|
||||
if item.url != "":
|
||||
if self.isDownloaded(item):
|
||||
if self.isDownloaded(item) and want_color:
|
||||
background_color = "#eeeeee"
|
||||
else:
|
||||
background_color = "white"
|
||||
|
@ -173,6 +174,12 @@ class podcastChannel(object):
|
|||
|
||||
index_file = property(fget=get_index_file)
|
||||
|
||||
def get_cover_file( self):
|
||||
# gets cover filename for cover download cache
|
||||
return self.save_dir + "cover"
|
||||
|
||||
cover_file = property(fget=get_cover_file)
|
||||
|
||||
def getPodcastFilename( self, url):
|
||||
# strip question mark (and everything behind it), fix %20 errors
|
||||
filename = basename( url).replace( "%20", " ")
|
||||
|
@ -204,7 +211,7 @@ class podcastChannel(object):
|
|||
nr_items += 1
|
||||
self.downloaded.items.remove(item)
|
||||
except:
|
||||
print _("no local db found or local db error")
|
||||
print _("No LocalDB found or error in existing LocalDB.")
|
||||
if libgpodder.isDebugging():
|
||||
print " found", nr_items, "matching item(s)"
|
||||
if nr_items > 0:
|
||||
|
@ -239,13 +246,14 @@ class podcastItem(object):
|
|||
|
||||
size = int( self.length)
|
||||
if size > gigabyte:
|
||||
return str( size / gigabyte) + " " + _("GB")
|
||||
# Might be a bit big, but who cares...
|
||||
return '%d GB' % str(size / gigabyte)
|
||||
if size > megabyte:
|
||||
return str( size / megabyte) + " " + _("MB")
|
||||
return '%d MB' % int(size / megabyte)
|
||||
if size > kilobyte:
|
||||
return str( size / kilobyte) + " " + _("KB")
|
||||
return '%d KB' % int(size / kilobyte)
|
||||
|
||||
return str( size) + " "+_("Bytes")
|
||||
return '%d Bytes' % size
|
||||
|
||||
def channelsToModel( channels):
|
||||
new_model = gtk.ListStore( gobject.TYPE_STRING, gobject.TYPE_STRING, gobject.TYPE_OBJECT)
|
||||
|
|
|
@ -269,7 +269,7 @@ def downloadProcedure( url, filename, force_update):
|
|||
|
||||
url = url.replace( "%20", " ")
|
||||
|
||||
dlinfo_speed = _("initializing download...")
|
||||
dlinfo_speed = '...'
|
||||
dlinfo_percentage = "0"
|
||||
dlinfo_result = -1
|
||||
|
||||
|
@ -297,8 +297,7 @@ def downloadProcedure( url, filename, force_update):
|
|||
if dlinfo_result == 9:
|
||||
showMessage( _("Download has been cancelled."))
|
||||
else:
|
||||
showMessage( _("wget exited with status: %s") % str( dlinfo_result))
|
||||
print _("*** THERE HAS BEEN AN ERROR WHILE DOWNLOADING **")
|
||||
showMessage( _("Download error. Wget exit code was: %d") % dlinfo_result)
|
||||
# end if
|
||||
# end if
|
||||
|
||||
|
|
Loading…
Reference in New Issue