From 3680e97a6ae460d7930180c12d326231a865efa3 Mon Sep 17 00:00:00 2001 From: Zach Tibbitts Date: Fri, 16 Feb 2007 20:58:16 +0000 Subject: [PATCH] translations, pref class --- deluge.desktop | 10 ++ deluge.xpm | 415 +++++++++++++++++++++++++++++++++++++++++++++++ gettextize.sh | 2 + po/POTFILES.in | 11 ++ po/deluge.pot | 425 +++++++++++++++++++++++++++++++++++++++++++++++++ scripts/deluge | 1 - src/pref.py | 121 ++++++++++++++ 7 files changed, 984 insertions(+), 1 deletion(-) create mode 100644 deluge.desktop create mode 100644 deluge.xpm create mode 100755 gettextize.sh create mode 100644 po/POTFILES.in create mode 100644 po/deluge.pot create mode 100644 src/pref.py diff --git a/deluge.desktop b/deluge.desktop new file mode 100644 index 000000000..065e2795c --- /dev/null +++ b/deluge.desktop @@ -0,0 +1,10 @@ +[Desktop-Entry] +Encoding=UTF-8 +Name=Deluge BitTorrent Client +Comment=BitTorrent client in Python/PyGTK +Exec=deluge +Icon=deluge.xpm +Terminal=false +Type=Application +Categories=Application;Network +StartupNotify=true diff --git a/deluge.xpm b/deluge.xpm new file mode 100644 index 000000000..5c3d1eae7 --- /dev/null +++ b/deluge.xpm @@ -0,0 +1,415 @@ +/* XPM */ +static char * deluge_torrent_xpm[] = { +"32 32 380 2", +" c None", +". c #8893A8", +"+ c #8994A8", +"@ c #B0B7C5", +"# c #919BAE", +"$ c #737F98", +"% c #A3ABBB", +"& c #8E98AD", +"* c #AEB5C4", +"= c #858FA5", +"- c #5E6D89", +"; c #929CB0", +"> c #8794A9", +", c #8592AA", +"' c #919FB5", +") c #A5B0C3", +"! c #7688A4", +"~ c #7687A1", +"{ c #8A99B1", +"] c #768AA7", +"^ c #7E92AE", +"/ c #8397B3", +"( c #92A4BD", +"_ c #96A8C0", +": c #5B7295", +"< c #8B9DB7", +"[ c #6A83A4", +"} c #728BAD", +"| c #7791B3", +"1 c #7B95B6", +"2 c #7C96B8", +"3 c #95ABC6", +"4 c #829CBC", +"5 c #45618C", +"6 c #7F96B3", +"7 c #6483A9", +"8 c #6384AC", +"9 c #6B8BB3", +"0 c #7091B8", +"a c #7495BC", +"b c #7596BD", +"c c #7496BD", +"d c #95AECC", +"e c #6F91B9", +"f c #6081A9", +"g c #3C6292", +"h c #365989", +"i c #4B6B97", +"j c #5676A1", +"k c #5F81AB", +"l c #6E93BF", +"m c #7097C2", +"n c #7297C3", +"o c #8FADCE", +"p c #618AB7", +"q c #476D9D", +"r c #5A779F", +"s c #1B4075", +"t c #1F4377", +"u c #365785", +"v c #4A6791", +"w c #4D6B94", +"x c #5D80AA", +"y c #6C93BF", +"z c #779DC6", +"A c #84A6CB", +"B c #5382B6", +"C c #3A659A", +"D c #5C789F", +"E c #224579", +"F c #1E4277", +"G c #274A7C", +"H c #2E4F7F", +"I c #335483", +"J c #44628D", +"K c #557197", +"L c #526E95", +"M c #506F99", +"N c #668FBD", +"O c #7FA3CA", +"P c #7299C4", +"Q c #36639A", +"R c #4F6D97", +"S c #345484", +"T c #305181", +"U c #42618A", +"V c #4E6992", +"W c #4A678F", +"X c #4B6992", +"Y c #4B6994", +"Z c #5F7A9E", +"` c #5E779C", +" . c #597398", +".. c #527099", +"+. c #618ABA", +"@. c #84A6CD", +"#. c #5D89BB", +"$. c #375A89", +"%. c #4C6992", +"&. c #3A5986", +"*. c #536E94", +"=. c #577197", +"-. c #6F92BB", +";. c #759ECA", +">. c #739CCA", +",. c #759DC9", +"'. c #6880A4", +"). c #5C7699", +"!. c #4F6F98", +"~. c #618DBD", +"{. c #81A4CA", +"]. c #4B7CB3", +"^. c #274F84", +"/. c #5A759B", +"(. c #375784", +"_. c #577196", +":. c #5A7498", +"<. c #6F89AB", +"[. c #8BADD1", +"}. c #7EA5D0", +"|. c #7FA6D0", +"1. c #7CA4CF", +"2. c #7CA4CE", +"3. c #789FC7", +"4. c #6984A7", +"5. c #5A7398", +"6. c #5076A5", +"7. c #6791C0", +"8. c #7198C3", +"9. c #2D5081", +"0. c #25477A", +"a. c #4C6890", +"b. c #627A9D", +"c. c #657DA1", +"d. c #A0BBD7", +"e. c #89AED6", +"f. c #8BAFD7", +"g. c #8BB0D7", +"h. c #8AAED6", +"i. c #86ACD4", +"j. c #82A8D2", +"k. c #7CA3CF", +"l. c #749DC8", +"m. c #6984A6", +"n. c #567298", +"o. c #5786BA", +"p. c #779CC6", +"q. c #5583B7", +"r. c #295086", +"s. c #2C4E7F", +"t. c #345483", +"u. c #5B7498", +"v. c #5D7699", +"w. c #93AAC4", +"x. c #9EBDDD", +"y. c #96B8DD", +"z. c #97B9DE", +"A. c #94B7DC", +"B. c #90B3DA", +"C. c #8AAFD6", +"D. c #83A9D2", +"E. c #7AA2CE", +"F. c #6F95BF", +"G. c #667E9F", +"H. c #577FAF", +"I. c #5585B8", +"J. c #759AC5", +"K. c #3F6FA7", +"L. c #254A80", +"M. c #5C769C", +"N. c #3C5B87", +"O. c #60789C", +"P. c #B0C3D8", +"Q. c #A1C0E3", +"R. c #A3C2E4", +"S. c #A3C3E5", +"T. c #A2C2E4", +"U. c #9EBFE2", +"V. c #98BADE", +"W. c #91B4DA", +"X. c #88AED6", +"Y. c #759ECB", +"Z. c #6885AD", +"`. c #5780B0", +" + c #5383B8", +".+ c #7299C3", +"++ c #4675AB", +"@+ c #395A89", +"#+ c #46648F", +"$+ c #3E5D88", +"%+ c #617A9C", +"&+ c #637B9D", +"*+ c #BFD1E4", +"=+ c #ADCBEA", +"-+ c #B0CDEB", +";+ c #AFCCEB", +">+ c #ACCAE9", +",+ c #A7C6E6", +"'+ c #9FC0E2", +")+ c #8DB1D8", +"!+ c #82A9D2", +"~+ c #77A0CC", +"{+ c #6A94C4", +"]+ c #5F8DBF", +"^+ c #5C89BA", +"/+ c #5C85B4", +"(+ c #3F5E8B", +"_+ c #3B5A86", +":+ c #647C9E", +"<+ c #61799D", +"[+ c #C1D2E4", +"}+ c #BBD5F1", +"|+ c #BCD6F2", +"1+ c #BAD5F1", +"2+ c #B5D1EE", +"3+ c #AECBEA", +"4+ c #A5C4E5", +"5+ c #9BBCE0", +"6+ c #84AAD3", +"7+ c #78A0CC", +"8+ c #6B96C6", +"9+ c #5F8CBF", +"0+ c #5282B8", +"a+ c #4F7FB4", +"b+ c #668CB7", +"c+ c #43618D", +"d+ c #325382", +"e+ c #5E779B", +"f+ c #5F789A", +"g+ c #BACADC", +"h+ c #C9E0F9", +"i+ c #C7DFF8", +"j+ c #C3DCF6", +"k+ c #BCD7F2", +"l+ c #B3CFED", +"m+ c #A8C7E7", +"n+ c #9DBEE1", +"o+ c #6A96C5", +"p+ c #5D8BBE", +"q+ c #5081B7", +"r+ c #497BB2", +"s+ c #698DB7", +"t+ c #45638E", +"u+ c #2E5080", +"v+ c #25487B", +"w+ c #506B93", +"x+ c #647B9E", +"y+ c #9DAFC7", +"z+ c #D6E9FD", +"A+ c #D1E8FE", +"B+ c #CAE2FA", +"C+ c #C1DAF5", +"D+ c #A9C8E8", +"E+ c #6894C4", +"F+ c #5A89BC", +"G+ c #4D7EB5", +"H+ c #4577AF", +"I+ c #6B8DB5", +"J+ c #3B6090", +"K+ c #3D5D8A", +"L+ c #3C5B89", +"M+ c #1D4276", +"N+ c #647C9C", +"O+ c #657D9E", +"P+ c #C2D4E6", +"Q+ c #D3E9FF", +"R+ c #CEE5FC", +"S+ c #C2DBF5", +"T+ c #80A7D1", +"U+ c #729CC9", +"V+ c #6491C2", +"W+ c #5686BA", +"X+ c #497BB3", +"Y+ c #5580B3", +"Z+ c #5B7EAA", +"`+ c #335686", +" @ c #4D6993", +".@ c #26497B", +"+@ c #4C6990", +"@@ c #6B82A2", +"#@ c #7D92B0", +"$@ c #C1D4E9", +"%@ c #C0DAF4", +"&@ c #B2CFED", +"*@ c #7BA3CE", +"=@ c #6F99C7", +"-@ c #6390C0", +";@ c #5886B9", +">@ c #4A7BB2", +",@ c #698CB7", +"'@ c #4C6F9C", +")@ c #284C7F", +"!@ c #577299", +"~@ c #2F517F", +"{@ c #536E93", +"]@ c #7086A5", +"^@ c #7B8FAC", +"/@ c #9FB3CD", +"(@ c #B8D2EE", +"_@ c #91B5DB", +":@ c #85ABD4", +"<@ c #7CA3CD", +"[@ c #729AC8", +"}@ c #6791C1", +"|@ c #5A87BA", +"1@ c #5280B4", +"2@ c #7A97BB", +"3@ c #416290", +"4@ c #2F5080", +"5@ c #4F6B91", +"6@ c #687F9F", +"7@ c #7B8FAB", +"8@ c #8396B0", +"9@ c #8AA1BF", +"0@ c #8CACCE", +"a@ c #8FB2D8", +"b@ c #86AAD2", +"c@ c #7DA3CC", +"d@ c #749BC7", +"e@ c #6993C1", +"f@ c #5B88B9", +"g@ c #7999C0", +"h@ c #587AA5", +"i@ c #21416E", +"j@ c #516D96", +"k@ c #415F8A", +"l@ c #567196", +"m@ c #637B9E", +"n@ c #6F84A3", +"o@ c #778BA7", +"p@ c #758BAA", +"q@ c #7490B3", +"r@ c #749BC5", +"s@ c #6992C0", +"t@ c #799DC4", +"u@ c #7291B6", +"v@ c #46658C", +"w@ c #264878", +"x@ c #4F6C94", +"y@ c #42608C", +"z@ c #294B7D", +"A@ c #4A6790", +"B@ c #567095", +"C@ c #597599", +"D@ c #587398", +"E@ c #536F96", +"F@ c #4F6D95", +"G@ c #7690B4", +"H@ c #7090B7", +"I@ c #4A6991", +"J@ c #2B4871", +"K@ c #41608C", +"L@ c #59749A", +"M@ c #234679", +"N@ c #214578", +"O@ c #3A5A87", +"P@ c #47648F", +"Q@ c #667EA2", +"R@ c #7188A9", +"S@ c #4B6892", +"T@ c #395985", +"U@ c #1C314F", +"V@ c #2E4F7D", +"W@ c #395986", +"X@ c #526E96", +"Y@ c #58739A", +"Z@ c #5B759B", +"`@ c #6A82A5", +" # c #627CA0", +".# c #365887", +"+# c #324B69", +"@# c #344B69", +"## c #34537D", +"$# c #294C7C", +"%# c #315383", +"&# c #40618D", +"*# c #40638F", +"=# c #3B5C87", +"-# c #36537A", +";# c #2E4156", +" ", +" . ", +" + @ # ", +" $ % & * = ", +" - ; > , ' ) ! ", +" ~ { ] ^ / ( _ ", +" : < [ } | 1 2 3 4 ", +" 5 6 7 8 9 0 a b c d e ", +" 7 f g h i j k l m n o p ", +" q r s s s t u v w x y z A B ", +" C D E s F G H I J K L M N O P ", +" Q R S s T U V W X Y Z ` ...+.@.#. ", +" $.%.t &.*.=.r -.;.>.,.0 '.).!.~.{.]. ", +" ^./.F (._.:.<.[.}.|.}.1.2.3.4.5.6.7.8. ", +" 9.v 0.a.b.c.d.e.f.g.h.i.j.k.l.m.n.o.p.q. ", +" r.v s.t.u.v.w.x.y.z.z.A.B.C.D.E.F.G.H.I.J.K. ", +" L.M.s N.b.O.P.Q.R.S.T.U.V.W.X.|.Y.Z.`. +.+++ ", +" @+#+s $+%+&+*+=+-+;+>+,+'+z.)+!+~+{+]+ +^+/+ ", +" (+S s _+:+<+[+}+|+1+2+3+4+5+B.6+7+8+9+0+a+b+ ", +" c+T s d+e+f+g+h+i+j+k+l+m+n+W.6+~+o+p+q+r+s+ ", +" t+u+s v+w+x+y+z+A+B+C+2+D+n+B.D.Y.E+F+G+H+I+J+ ", +" K+L+s M+N.N+O+P+Q+R+S+2+m+5+)+T+U+V+W+X+Y+Z+ ", +" `+ @s s .@+@@@#@$@R+%@&@4+z.e.*@=@-@;@>@,@'@ ", +" )@!@t s s ~@{@]@^@/@(@=+'+_@:@<@[@}@|@1@2@3@ ", +" S #+s s s 4@5@6@7@8@9@0@a@b@c@d@e@f@g@h@ ", +" i@j@u s s s G k@l@m@n@o@p@q@a r@s@t@u@v@ ", +" w@x@y@s s s s z@_+A@B@C@D@E@F@G@H@I@ ", +" J@K@L@y@M@s s N@z@S O@P@Q@R@S@T@ ", +" U@V@W@X@L@Y@Z@L@c.`@ #v .#+# ", +" @###$#%#&#*#=#-#;# ", +" ", +" "}; diff --git a/gettextize.sh b/gettextize.sh new file mode 100755 index 000000000..c592e2e7e --- /dev/null +++ b/gettextize.sh @@ -0,0 +1,2 @@ +#!/bin/sh +xgettext -f po/POTFILES.in -o po/deluge.pot diff --git a/po/POTFILES.in b/po/POTFILES.in new file mode 100644 index 000000000..95df80f91 --- /dev/null +++ b/po/POTFILES.in @@ -0,0 +1,11 @@ +glade/delugegtk.glade +glade/dgtkpopups.glade +glade/dgtkpref.glade +src/dcommon.py +src/deluge.py +src/deluge_core.cpp +src/delugegtk.py +src/delugeplugins.py +src/deluge_stats.py +src/dgtk.py +src/pref.py diff --git a/po/deluge.pot b/po/deluge.pot new file mode 100644 index 000000000..dbc28f680 --- /dev/null +++ b/po/deluge.pot @@ -0,0 +1,425 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2007-02-16 15:10-0500\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=CHARSET\n" +"Content-Transfer-Encoding: 8bit\n" + +#: glade/delugegtk.glade:96 +msgid "Estimated Time Remaining:" +msgstr "" + +#: glade/delugegtk.glade:134 +msgid "Peers:" +msgstr "" + +#: glade/delugegtk.glade:148 +msgid "Seeders:" +msgstr "" + +#: glade/delugegtk.glade:160 +msgid "Total Size:" +msgstr "" + +#: glade/delugegtk.glade:172 +msgid "Total Downloaded:" +msgstr "" + +#: glade/delugegtk.glade:184 +msgid "Downloaded this session:" +msgstr "" + +#: glade/delugegtk.glade:232 +msgid "Tracker:" +msgstr "" + +#: glade/delugegtk.glade:244 +msgid "Tracker Response:" +msgstr "" + +#: glade/delugegtk.glade:256 +msgid "Tracker Status:" +msgstr "" + +#: glade/delugegtk.glade:280 +msgid "Next Announce:" +msgstr "" + +#: glade/delugegtk.glade:306 +msgid "Pieces:" +msgstr "" + +#: glade/delugegtk.glade:320 +msgid "Total Uploaded:" +msgstr "" + +#: glade/delugegtk.glade:358 +msgid "Share Ratio:" +msgstr "" + +#: glade/delugegtk.glade:372 +msgid "Uploaded This Session:" +msgstr "" + +#: glade/delugegtk.glade:434 +msgid "Use compact storage allocation:" +msgstr "" + +#: glade/delugegtk.glade:458 +msgid "Download Rate:" +msgstr "" + +#: glade/delugegtk.glade:482 +msgid "Upload Rate:" +msgstr "" + +#: glade/delugegtk.glade:525 +msgid "Details" +msgstr "" + +#: glade/delugegtk.glade:552 glade/delugegtk.glade:746 +#: glade/dgtkpopups.glade:37 src/delugegtk.py:263 +msgid "Peers" +msgstr "" + +#: glade/delugegtk.glade:581 +msgid "Files" +msgstr "" + +#: glade/delugegtk.glade:616 +msgid "_File" +msgstr "" + +#: glade/delugegtk.glade:623 glade/delugegtk.glade:858 +msgid "Add Torrent" +msgstr "" + +#: glade/delugegtk.glade:631 +msgid "Add Torrent from URL" +msgstr "" + +#: glade/delugegtk.glade:639 +msgid "Remove selected Torrent" +msgstr "" + +#: glade/delugegtk.glade:665 +msgid "_Edit" +msgstr "" + +#: glade/delugegtk.glade:682 +msgid "_Manage Plugins" +msgstr "" + +#: glade/delugegtk.glade:694 +msgid "_View" +msgstr "" + +#: glade/delugegtk.glade:702 +msgid "Show Details Pane" +msgstr "" + +#: glade/delugegtk.glade:711 +msgid "Columns" +msgstr "" + +#: glade/delugegtk.glade:719 glade/dgtkpopups.glade:10 src/delugegtk.py:260 +msgid "Size" +msgstr "" + +#: glade/delugegtk.glade:728 glade/dgtkpopups.glade:19 src/delugegtk.py:261 +msgid "Status" +msgstr "" + +#: glade/delugegtk.glade:737 glade/dgtkpopups.glade:28 src/delugegtk.py:262 +msgid "Seeders" +msgstr "" + +#: glade/delugegtk.glade:755 src/delugegtk.py:264 src/delugegtk.py:313 +msgid "Download" +msgstr "" + +#: glade/delugegtk.glade:764 src/delugegtk.py:265 +msgid "Upload" +msgstr "" + +#: glade/delugegtk.glade:773 glade/dgtkpopups.glade:64 src/delugegtk.py:266 +msgid "Time Remaining" +msgstr "" + +#: glade/delugegtk.glade:782 glade/dgtkpopups.glade:73 +msgid "Share Ratio" +msgstr "" + +#: glade/delugegtk.glade:799 +msgid "_Help" +msgstr "" + +#: glade/delugegtk.glade:871 glade/dgtkpopups.glade:81 +msgid "Remove Torrent" +msgstr "" + +#: glade/delugegtk.glade:884 +msgid "Clear Finished Torrents" +msgstr "" + +#: glade/delugegtk.glade:897 +msgid "Update Tracker" +msgstr "" + +#: glade/delugegtk.glade:910 +msgid "Queue Torrent Up" +msgstr "" + +#: glade/delugegtk.glade:923 +msgid "Queue Torrent Down" +msgstr "" + +#: glade/dgtkpopups.glade:46 +msgid "Download Speed" +msgstr "" + +#: glade/dgtkpopups.glade:55 +msgid "Upload Speed" +msgstr "" + +#: glade/dgtkpopups.glade:94 +msgid "" +"Are you sure you want to remove the selected torrent(s) from Deluge?" +msgstr "" + +#: glade/dgtkpopups.glade:104 +msgid "Delete downloaded files" +msgstr "" + +#: glade/dgtkpopups.glade:164 +msgid "Show/Hide" +msgstr "" + +#: glade/dgtkpopups.glade:172 +msgid "Add a Torrent..." +msgstr "" + +#: glade/dgtkpopups.glade:180 +msgid "Clear Finished" +msgstr "" + +#: glade/dgtkpopups.glade:193 glade/dgtkpref.glade:669 +msgid "gtk-preferences" +msgstr "" + +#: glade/dgtkpopups.glade:202 glade/dgtkpref.glade:694 +msgid "Plugins" +msgstr "" + +#: glade/dgtkpopups.glade:215 +msgid "gtk-quit" +msgstr "" + +#: glade/dgtkpref.glade:8 +msgid "Preferences Dialog" +msgstr "" + +#: glade/dgtkpref.glade:50 +msgid "Enable system tray icon" +msgstr "" + +#: glade/dgtkpref.glade:62 +msgid "Minimize to tray on close" +msgstr "" + +#: glade/dgtkpref.glade:77 +msgid "Options" +msgstr "" + +#: glade/dgtkpref.glade:112 +msgid "Save all downloads to:" +msgstr "" + +#: glade/dgtkpref.glade:124 +msgid "Ask me where to save each download" +msgstr "" + +#: glade/dgtkpref.glade:136 +msgid "Save Location" +msgstr "" + +#: glade/dgtkpref.glade:177 +msgid "" +"Stop seeding torrents when\n" +"their share ratio reaches:" +msgstr "" + +#: glade/dgtkpref.glade:187 +msgid "Seeding" +msgstr "" + +#: glade/dgtkpref.glade:206 +msgid "Use compact storage allocation" +msgstr "" + +#: glade/dgtkpref.glade:213 +msgid "Storage" +msgstr "" + +#: glade/dgtkpref.glade:243 +msgid "General" +msgstr "" + +#: glade/dgtkpref.glade:277 +msgid "Try from:" +msgstr "" + +#: glade/dgtkpref.glade:283 +msgid "to:" +msgstr "" + +#: glade/dgtkpref.glade:317 +msgid "Active port:" +msgstr "" + +#: glade/dgtkpref.glade:329 +msgid "0000" +msgstr "" + +#: glade/dgtkpref.glade:341 +msgid "Test Port" +msgstr "" + +#: glade/dgtkpref.glade:355 +msgid "TCP Port" +msgstr "" + +#: glade/dgtkpref.glade:378 +msgid "(-1 is unlimited)" +msgstr "" + +#: glade/dgtkpref.glade:388 glade/dgtkpref.glade:413 +msgid "KB/s" +msgstr "" + +#: glade/dgtkpref.glade:503 +msgid "Maximum number of Downloads:" +msgstr "" + +#: glade/dgtkpref.glade:514 +msgid "Maximum Download Rate:" +msgstr "" + +#: glade/dgtkpref.glade:525 +msgid "Maximum number of Uploads:" +msgstr "" + +#: glade/dgtkpref.glade:536 +msgid "Maximum Upload Rate:" +msgstr "" + +#: glade/dgtkpref.glade:548 +msgid "Bandwidth " +msgstr "" + +#: glade/dgtkpref.glade:576 +msgid "Network" +msgstr "" + +#: glade/dgtkpref.glade:598 +msgid "gtk-cancel" +msgstr "" + +#: glade/dgtkpref.glade:605 +msgid "gtk-ok" +msgstr "" + +#: glade/dgtkpref.glade:625 +msgid "Plugin Manager" +msgstr "" + +#: glade/dgtkpref.glade:715 +msgid "gtk-close" +msgstr "" + +#: src/dcommon.py:102 +msgid "Infinity" +msgstr "" + +#: src/dcommon.py:166 +msgid "Error: no webbrowser found" +msgstr "" + +#: src/delugegtk.py:207 +msgid "Plugin" +msgstr "" + +#: src/delugegtk.py:209 +msgid "Enabled" +msgstr "" + +#: src/delugegtk.py:259 +msgid "Name" +msgstr "" + +#: src/delugegtk.py:267 +msgid "Ratio" +msgstr "" + +#: src/delugegtk.py:300 +msgid "IP Address" +msgstr "" + +#: src/delugegtk.py:301 +msgid "Client" +msgstr "" + +#: src/delugegtk.py:302 +msgid "Percent Complete" +msgstr "" + +#: src/delugegtk.py:303 +msgid "Download Rate" +msgstr "" + +#: src/delugegtk.py:304 +msgid "Upload Rate" +msgstr "" + +#: src/delugegtk.py:312 +msgid "Filename" +msgstr "" + +#: src/delugegtk.py:636 +msgid "Add torrent from URL" +msgstr "" + +#: src/delugegtk.py:640 +msgid "Enter the URL of the .torrent to download" +msgstr "" + +#: src/delugegtk.py:678 +msgid "Warning - all downloaded files for this torrent will be deleted!" +msgstr "" + +#: src/dgtk.py:33 +msgid "Choose a .torrent file" +msgstr "" + +#: src/dgtk.py:37 +msgid "Torrent files" +msgstr "" + +#: src/dgtk.py:41 +msgid "All files" +msgstr "" + +#: src/dgtk.py:54 +msgid "Choose a download directory" +msgstr "" diff --git a/scripts/deluge b/scripts/deluge index 6132c5edf..92b697443 100755 --- a/scripts/deluge +++ b/scripts/deluge @@ -47,7 +47,6 @@ if not "org.deluge_torrent.Deluge" in dbus_objects: import deluge, deluge.delugegtk import gettext gettext.install('deluge') - print _('message') interface = deluge.delugegtk.DelugeGTK() for arg in args: diff --git a/src/pref.py b/src/pref.py new file mode 100644 index 000000000..6d96ef970 --- /dev/null +++ b/src/pref.py @@ -0,0 +1,121 @@ +# pref.py +# +# Copyright (C) Zach Tibbitts 2006 +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2, or (at your option) +# any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, write to: +# The Free Software Foundation, Inc., +# 51 Franklin Street, Fifth Floor +# Boston, MA 02110-1301, USA. + + +# Preferences is basically a wrapper around a simple Python dictionary +# object. However, this class provides a few extra features on top of +# the built in class that Deluge can take advantage of. +class Preferences: + def __init__(self, filename=None): + self.mapping = {} + self.config_file = filename + if self.config_file is not None: + self.load_from_file(self.config_file) + + # Allows you to access an item in a Preferences objecy by calling + # instance[key] rather than instance.get(key). However, this will + # return the value as the type it is currently in memory, so it is + # advisable to use get() if you need the value converted. + def __getitem__(self, key): + return self.mapping[key] + + def __setitem__(self, key, value): + self.mapping[key] = value + + def __len__(self): + return len(self.mapping) + + def has_key(self, key): return self.mapping.has_key(key) + def items(self): return self.mapping.items() + def keys(self): return self.mapping.keys() + def values(self): return self.mapping.values() + + def save_to_file(self, filename=None): + if filename is None: + filename = self.config_file + f = open(filename, mode='w') + for key in self.mapping.keys(): + f.write(key) + f.write(' = ') + f.write(str(self.mapping[key])) + f.write('\n') + f.flush() + f.close() + self.config_file = filename + + def load_from_file(self, filename=None): + if filename is None: + filename = self.config_file + f = open(filename, mode='r') + for line in f: + try: + (key, value) = line.split('=', 1) + key = key.strip(' \n') + value = value.strip(' \n') + self.mapping[key] = value + except ValueError: + pass + f.close() + self.config_file = filename + + def set(self, key, value): + self.mapping[key] = value + + def get(self, key, kind=None, default=None): + if not key in self.mapping.keys(): + if default is not None: + self.mapping[key] = default + return default + else: + raise KeyError + result = self.mapping[key] + if kind == None: + pass + elif kind == bool: + if isinstance(result, str): + result = not (result.lower() == "false") + elif isinstance(result, int): + result = not (result == 0) + else: + result = False + elif kind == int: + try: + result = int(result) + except ValueError: + result = int(float(result)) + elif kind == float: + result = float(result) + elif kind == str: + result = str(result) + else: + pass + + return result + + def remove(self, key): + self.mapping.pop(key) + + def clear(self): + self.mapping.clear() + + def printout(self): + for key in self.mapping.keys(): + print key, ':', self.mapping[key] +