summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--locale/cli.pot145
-rw-r--r--locale/core.pot (renamed from locale/messages.pot)99
-rw-r--r--locale/gui.pot254
-rw-r--r--locale/plugins.pot44
-rw-r--r--module/config/gui_default.xml1
-rw-r--r--module/gui/CaptchaDock.py6
-rw-r--r--module/gui/ConnectionManager.py26
-rw-r--r--module/gui/MainWindow.py63
-rw-r--r--module/gui/PWInputWindow.py6
-rw-r--r--module/gui/PackageDock.py8
-rw-r--r--module/gui/Queue.py18
-rw-r--r--module/gui/connector.py2
-rwxr-xr-xmodule/network/Request.py2
-rw-r--r--module/plugins/hoster/RapidshareCom.py10
-rw-r--r--module/plugins/hoster/UploadedTo.py2
-rwxr-xr-xpyLoadCore.py36
-rwxr-xr-xpyLoadGui.py20
17 files changed, 600 insertions, 142 deletions
diff --git a/locale/cli.pot b/locale/cli.pot
new file mode 100644
index 000000000..ffdd7361f
--- /dev/null
+++ b/locale/cli.pot
@@ -0,0 +1,145 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR ORGANIZATION
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"POT-Creation-Date: 2010-02-04 18:59+CET\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=CHARSET\n"
+"Content-Transfer-Encoding: ENCODING\n"
+"Generated-By: pygettext.py 1.5\n"
+
+
+#: pyLoadCli.py:48
+msgid "pyLoadCore not running"
+msgstr ""
+
+#: pyLoadCli.py:54 pyLoadCli.py:113
+msgid " Command Line Interface"
+msgstr ""
+
+#: pyLoadCli.py:115
+msgid "%s Downloads:"
+msgstr ""
+
+#: pyLoadCli.py:125
+msgid " Finished in: "
+msgstr ""
+
+#: pyLoadCli.py:125
+msgid " ID: "
+msgstr ""
+
+#: pyLoadCli.py:125
+msgid " Size: "
+msgstr ""
+
+#: pyLoadCli.py:125
+msgid " Speed: "
+msgstr ""
+
+#: pyLoadCli.py:130
+msgid "waiting: "
+msgstr ""
+
+#: pyLoadCli.py:136 pyLoadCli.py:138
+msgid " Files in queue: "
+msgstr ""
+
+#: pyLoadCli.py:136 pyLoadCli.py:138
+msgid " total Speed: "
+msgstr ""
+
+#: pyLoadCli.py:136 pyLoadCli.py:138
+msgid "Status: "
+msgstr ""
+
+#: pyLoadCli.py:150
+msgid "Menu:"
+msgstr ""
+
+#: pyLoadCli.py:155
+msgid " Add Links"
+msgstr ""
+
+#: pyLoadCli.py:157
+msgid " Manage Links"
+msgstr ""
+
+#: pyLoadCli.py:159
+msgid " (Un)Pause Server"
+msgstr ""
+
+#: pyLoadCli.py:161
+msgid " Kill Server"
+msgstr ""
+
+#: pyLoadCli.py:163
+msgid " Quit"
+msgstr ""
+
+#: pyLoadCli.py:173
+msgid "Name your package."
+msgstr ""
+
+#: pyLoadCli.py:183 pyLoadCli.py:200 pyLoadCli.py:244
+msgid " back to main menu"
+msgstr ""
+
+#: pyLoadCli.py:188
+msgid "Package: %s"
+msgstr ""
+
+#: pyLoadCli.py:190
+msgid "Parse the links you want to add."
+msgstr ""
+
+#: pyLoadCli.py:192
+msgid "Type %s when done."
+msgstr ""
+
+#: pyLoadCli.py:194
+msgid "Links added: "
+msgstr ""
+
+#: pyLoadCli.py:206
+msgid "Type d(number of package) to delete a package, r to restart, or w/o d,r to look into it."
+msgstr ""
+
+#: pyLoadCli.py:222
+msgid "Type d(number) of the link you want to delete or r(number) to restart."
+msgstr ""
+
+#: pyLoadCli.py:242
+msgid " - next"
+msgstr ""
+
+#: pyLoadCli.py:242
+msgid " - previous"
+msgstr ""
+
+#: pyLoadCli.py:459
+msgid "Username: "
+msgstr ""
+
+#: pyLoadCli.py:460
+msgid "Adress: "
+msgstr ""
+
+#: pyLoadCli.py:461
+msgid "Use SSL? ([y]/n): "
+msgstr ""
+
+#: pyLoadCli.py:466
+msgid "Port: "
+msgstr ""
+
+#: pyLoadCli.py:468
+msgid "Password: "
+msgstr ""
+
diff --git a/locale/messages.pot b/locale/core.pot
index 1994499df..ece179de0 100644
--- a/locale/messages.pot
+++ b/locale/core.pot
@@ -5,7 +5,7 @@
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
-"POT-Creation-Date: 2010-02-02 21:54+CET\n"
+"POT-Creation-Date: 2010-02-03 15:21+CET\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"
@@ -15,191 +15,190 @@ msgstr ""
"Generated-By: pygettext.py 1.5\n"
-#: module/download_thread.py:115
+#: ./module/download_thread.py:115
msgid "Hoster unvailable, wait 60 seconds"
msgstr ""
-#: module/download_thread.py:117
+#: ./module/download_thread.py:117
msgid "Error getting error code: %s"
msgstr ""
-#: module/download_thread.py:163
+#: ./module/download_thread.py:163
msgid "Checksum ok ('%s')"
msgstr ""
-#: module/download_thread.py:165
+#: ./module/download_thread.py:165
msgid "Checksum not matched! ('%s')"
msgstr ""
-#: module/download_thread.py:167
+#: ./module/download_thread.py:167
msgid "Can't get checksum for %s"
msgstr ""
-#: module/download_thread.py:169
+#: ./module/download_thread.py:169
msgid "Checksum not implemented for %s"
msgstr ""
-#: module/file_list.py:87
+#: ./module/file_list.py:87
msgid "Found %s links in linkcollector"
msgstr ""
-#: module/file_list.py:89
+#: ./module/file_list.py:89
msgid "Found %s unqueued packages"
msgstr ""
-#: module/file_list.py:91
+#: ./module/file_list.py:91
msgid "Added %s packages to queue"
msgstr ""
-#: module/thread_list.py:88
+#: ./module/thread_list.py:88
msgid "Get links from: %s"
msgstr ""
-#: module/thread_list.py:90
+#: ./module/thread_list.py:90
msgid "Download starts: %s"
msgstr ""
-#: module/thread_list.py:136
+#: ./module/thread_list.py:136
msgid "Parsed links from %s: %i"
msgstr ""
-#: module/thread_list.py:138
+#: ./module/thread_list.py:138
msgid "No links in %s"
msgstr ""
-#: module/thread_list.py:145
+#: ./module/thread_list.py:145
msgid "Download finished: %s"
msgstr ""
-#: module/thread_list.py:151
+#: ./module/thread_list.py:151
msgid "Download failed: %s | %s"
msgstr ""
-#: module/thread_list.py:156
+#: ./module/thread_list.py:156
msgid "Download aborted: %s"
msgstr ""
-#: module/thread_list.py:206
+#: ./module/thread_list.py:206
msgid "Starting reconnect"
msgstr ""
-#: module/thread_list.py:220
+#: ./module/thread_list.py:220
msgid "Reconnected, new IP: %s"
msgstr ""
-#: pyLoadCore.py:111
+#: ./pyLoadCore.py:111
msgid "pycrypto to decode container files"
msgstr ""
-#: pyLoadCore.py:112
+#: ./pyLoadCore.py:112
msgid "Python Image Libary (PIL) for captha reading"
msgstr ""
-#: pyLoadCore.py:113
+#: ./pyLoadCore.py:113
msgid "pycurl for lower memory footprint while downloading"
msgstr ""
-#: pyLoadCore.py:114
+#: ./pyLoadCore.py:114
msgid "Django for webinterface"
msgstr ""
-#: pyLoadCore.py:115
+#: ./pyLoadCore.py:115
msgid "tesseract for captcha reading"
msgstr ""
-#: pyLoadCore.py:116
+#: ./pyLoadCore.py:116
msgid "gocr for captcha reading"
msgstr ""
-#: pyLoadCore.py:118
+#: ./pyLoadCore.py:118
msgid "folder for logs"
msgstr ""
-#: pyLoadCore.py:119
+#: ./pyLoadCore.py:119
msgid "folder for downloads"
msgstr ""
-#: pyLoadCore.py:120
+#: ./pyLoadCore.py:120
msgid "file for links"
msgstr ""
-#: pyLoadCore.py:121
+#: ./pyLoadCore.py:121
msgid "file for failed links"
msgstr ""
-#: pyLoadCore.py:124
+#: ./pyLoadCore.py:124
msgid "OpenSSL for secure connection"
msgstr ""
-#: pyLoadCore.py:125
+#: ./pyLoadCore.py:125
msgid "ssl certificate"
msgstr ""
-#: pyLoadCore.py:126
+#: ./pyLoadCore.py:126
msgid "ssl key"
msgstr ""
-#: pyLoadCore.py:150
+#: ./pyLoadCore.py:150
msgid "Downloadtime: %s"
msgstr ""
-#: pyLoadCore.py:179
+#: ./pyLoadCore.py:179
msgid "restarting pyLoad"
msgstr ""
-#: pyLoadCore.py:183
+#: ./pyLoadCore.py:183
msgid "pyLoad quits"
msgstr ""
-#: pyLoadCore.py:194
+#: ./pyLoadCore.py:194
msgid "Secure XMLRPC Server Started"
msgstr ""
-#: pyLoadCore.py:197
+#: ./pyLoadCore.py:197
msgid "Auth XMLRPC Server Started"
msgstr ""
-#: pyLoadCore.py:203
-msgid "Failed starting XMLRPC server, CLI and GUI will not be available: %s"
+#: ./pyLoadCore.py:203
+msgid "Failed starting XMLRPC server CLI and GUI will not be available: %s"
msgstr ""
-#: pyLoadCore.py:272
+#: ./pyLoadCore.py:272
msgid "%s created"
msgstr ""
-#: pyLoadCore.py:275
+#: ./pyLoadCore.py:275
msgid "could not find %s: %s"
msgstr ""
-#: pyLoadCore.py:277
+#: ./pyLoadCore.py:277
msgid "could not create %s: %s"
msgstr ""
-#: pyLoadCore.py:305
+#: ./pyLoadCore.py:305
msgid "%s added"
msgstr ""
-#: pyLoadCore.py:306
+#: ./pyLoadCore.py:306
msgid "created index of plugins"
msgstr ""
-#: pyLoadCore.py:325
+#: ./pyLoadCore.py:325
msgid "shutting down..."
msgstr ""
-#: pyLoadCore.py:341
+#: ./pyLoadCore.py:341
msgid "No Updates for pyLoad"
msgstr ""
-#: pyLoadCore.py:344
+#: ./pyLoadCore.py:344
msgid "New pyLoad Version %s available"
msgstr ""
-#: pyLoadCore.py:369
+#: ./pyLoadCore.py:369
msgid "Auto install Failed"
msgstr ""
-#: pyLoadCore.py:607
+#: ./pyLoadCore.py:607
msgid "killed pyLoad from Terminal"
msgstr ""
-
diff --git a/locale/gui.pot b/locale/gui.pot
new file mode 100644
index 000000000..aae5349f0
--- /dev/null
+++ b/locale/gui.pot
@@ -0,0 +1,254 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR ORGANIZATION
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"POT-Creation-Date: 2010-02-03 15:21+CET\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=CHARSET\n"
+"Content-Transfer-Encoding: ENCODING\n"
+"Generated-By: pygettext.py 1.5\n"
+
+#: ./module/gui/CaptchaDock.py:25
+msgid "Captcha"
+msgstr ""
+
+#: ./module/gui/CaptchaDock.py:56 ./module/gui/PWInputWindow.py:28
+msgid "OK"
+msgstr ""
+
+#: ./module/gui/CaptchaDock.py:57 ./module/gui/ConnectionManager.py:154
+#: ./module/gui/PWInputWindow.py:29
+msgid "Cancel"
+msgstr ""
+
+#: ./module/gui/ConnectionManager.py:33
+msgid "New"
+msgstr ""
+
+#: ./module/gui/ConnectionManager.py:34
+msgid "Edit"
+msgstr ""
+
+#: ./module/gui/ConnectionManager.py:35 ./module/gui/MainWindow.py:191
+#: ./module/gui/MainWindow.py:205
+msgid "Remove"
+msgstr ""
+
+#: ./module/gui/ConnectionManager.py:36
+msgid "Connect"
+msgstr ""
+
+#: ./module/gui/ConnectionManager.py:76
+msgid "%s (Default)"
+msgstr ""
+
+#: ./module/gui/ConnectionManager.py:138
+msgid "Name:"
+msgstr ""
+
+#: ./module/gui/ConnectionManager.py:139
+msgid "Host:"
+msgstr ""
+
+#: ./module/gui/ConnectionManager.py:140
+msgid "SSL:"
+msgstr ""
+
+#: ./module/gui/ConnectionManager.py:141
+msgid "Local:"
+msgstr ""
+
+#: ./module/gui/ConnectionManager.py:142
+msgid "User:"
+msgstr ""
+
+#: ./module/gui/ConnectionManager.py:143
+msgid "Port:"
+msgstr ""
+
+#: ./module/gui/ConnectionManager.py:153
+msgid "Save"
+msgstr ""
+
+#: ./module/gui/MainWindow.py:33
+msgid "pyLoad Client"
+msgstr ""
+
+#: ./module/gui/MainWindow.py:60
+msgid "Status: Not Connected"
+msgstr ""
+
+#: ./module/gui/MainWindow.py:65
+msgid "File"
+msgstr ""
+
+#: ./module/gui/MainWindow.py:66
+msgid "Connections"
+msgstr ""
+
+#: ./module/gui/MainWindow.py:70
+msgid "Exit"
+msgstr ""
+
+#: ./module/gui/MainWindow.py:71
+msgid "Connection manager"
+msgstr ""
+
+#: ./module/gui/MainWindow.py:88
+msgid "Queue"
+msgstr ""
+
+#: ./module/gui/MainWindow.py:89
+msgid "Collector"
+msgstr ""
+
+#: ./module/gui/MainWindow.py:90
+msgid "Settings"
+msgstr ""
+
+#: ./module/gui/MainWindow.py:91
+msgid "Log"
+msgstr ""
+
+#: ./module/gui/MainWindow.py:117
+msgid "Main Toolbar"
+msgstr ""
+
+#: ./module/gui/MainWindow.py:120
+msgid "Toggle Pause/Resume"
+msgstr ""
+
+#: ./module/gui/MainWindow.py:126
+msgid "Stop"
+msgstr ""
+
+#: ./module/gui/MainWindow.py:128
+msgid "Add"
+msgstr ""
+
+#: ./module/gui/MainWindow.py:130
+msgid "Check Clipboard"
+msgstr ""
+
+#: ./module/gui/MainWindow.py:137
+msgid "Package"
+msgstr ""
+
+#: ./module/gui/MainWindow.py:138
+msgid "Links"
+msgstr ""
+
+#: ./module/gui/MainWindow.py:139
+msgid "Container"
+msgstr ""
+
+#: ./module/gui/MainWindow.py:156
+msgid "Packages"
+msgstr ""
+
+#: ./module/gui/MainWindow.py:158
+msgid "Push selected packages to queue"
+msgstr ""
+
+#: ./module/gui/MainWindow.py:192
+msgid "Restart"
+msgstr ""
+
+#: ./module/gui/MainWindow.py:193
+msgid "Pull out"
+msgstr ""
+
+#: ./module/gui/MainWindow.py:206
+msgid "Push to queue"
+msgstr ""
+
+#: ./module/gui/MainWindow.py:207
+msgid "Edit Name"
+msgstr ""
+
+#: ./module/gui/MainWindow.py:277
+msgid "All Container Types (%s)"
+msgstr ""
+
+#: ./module/gui/MainWindow.py:278
+msgid "DLC (%s)"
+msgstr ""
+
+#: ./module/gui/MainWindow.py:279
+msgid "CCF (%s)"
+msgstr ""
+
+#: ./module/gui/MainWindow.py:280
+msgid "RSDF (%s)"
+msgstr ""
+
+#: ./module/gui/MainWindow.py:281
+msgid "Text Files (%s)"
+msgstr ""
+
+#: ./module/gui/MainWindow.py:283
+msgid "Open container"
+msgstr ""
+
+#: ./module/gui/MainWindow.py:306
+msgid "Single Links"
+msgstr ""
+
+#: ./module/gui/PWInputWindow.py:27
+msgid "Password:"
+msgstr ""
+
+#: ./module/gui/PackageDock.py:24
+msgid "New Package"
+msgstr ""
+
+#: ./module/gui/PackageDock.py:50 ./pyLoadGui.py:236
+msgid "Name"
+msgstr ""
+
+#: ./module/gui/PackageDock.py:53
+msgid "Links in this Package"
+msgstr ""
+
+#: ./module/gui/PackageDock.py:68
+msgid "Create"
+msgstr ""
+
+#: ./pyLoadGui.py:236
+msgid "Plugin"
+msgstr ""
+
+#: ./pyLoadGui.py:236
+msgid "Progress"
+msgstr ""
+
+#: ./pyLoadGui.py:236
+msgid "Status"
+msgstr ""
+
+#: ./pyLoadGui.py:252
+msgid "Paused"
+msgstr ""
+
+#: ./pyLoadGui.py:254
+msgid "Running"
+msgstr ""
+
+#: ./pyLoadGui.py:256
+msgid "Status: %(status)s | Speed: %(speed)s kb/s"
+msgstr ""
+
+#: ./pyLoadGui.py:281
+msgid "Update Available"
+msgstr ""
+
+#: ./pyLoadGui.py:305
+msgid "Unnamed"
+msgstr ""
+
diff --git a/locale/plugins.pot b/locale/plugins.pot
new file mode 100644
index 000000000..853d2acfd
--- /dev/null
+++ b/locale/plugins.pot
@@ -0,0 +1,44 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR ORGANIZATION
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"POT-Creation-Date: 2010-02-03 15:21+CET\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=CHARSET\n"
+"Content-Transfer-Encoding: ENCODING\n"
+"Generated-By: pygettext.py 1.5\n"
+
+
+#: ./module/plugins/hooks/ExternalScripts.py:44
+msgid "folders for scripts"
+msgstr ""
+
+#: ./module/plugins/hoster/RapidshareCom.py:50
+msgid "Rapidshare: Use Premium Account (%sGB left)"
+msgstr ""
+
+#: ./module/plugins/hoster/RapidshareCom.py:65
+msgid "Rapidshare: Traffic Share (direct download)"
+msgstr ""
+
+#: ./module/plugins/hoster/RapidshareCom.py:118
+msgid "Rapidshare: Not enough traffic left"
+msgstr ""
+
+#: ./module/plugins/hoster/RapidshareCom.py:138
+msgid "Rapidshare: Already downloading, wait 30 minutes"
+msgstr ""
+
+#: ./module/plugins/hoster/RapidshareCom.py:149
+msgid "Rapidshare: No free slots!"
+msgstr ""
+
+#: ./module/plugins/hoster/UploadedTo.py:139
+msgid "UploadedTo indirect download"
+msgstr ""
diff --git a/module/config/gui_default.xml b/module/config/gui_default.xml
index 490af199e..1faed776f 100644
--- a/module/config/gui_default.xml
+++ b/module/config/gui_default.xml
@@ -9,4 +9,5 @@
<state></state>
<geometry></geometry>
</mainWindow>
+ <language>en</language>
</root>
diff --git a/module/gui/CaptchaDock.py b/module/gui/CaptchaDock.py
index 8a7e8010e..4f3c9efd0 100644
--- a/module/gui/CaptchaDock.py
+++ b/module/gui/CaptchaDock.py
@@ -22,7 +22,7 @@ from PyQt4.QtGui import *
class CaptchaDock(QDockWidget):
def __init__(self):
- QDockWidget.__init__(self, "Captcha")
+ QDockWidget.__init__(self, _("Captcha"))
self.setObjectName("Captcha Dock")
self.widget = CaptchaDockWidget(self)
self.setWidget(self.widget)
@@ -53,8 +53,8 @@ class CaptchaDockWidget(QWidget):
imgLabel = QLabel()
captchaInput = QLineEdit()
- okayButton = QPushButton("OK")
- cancelButton = QPushButton("Cancel")
+ okayButton = QPushButton(_("OK"))
+ cancelButton = QPushButton(_("Cancel"))
layout.addStretch()
layout.addWidget(imgLabel)
diff --git a/module/gui/ConnectionManager.py b/module/gui/ConnectionManager.py
index 57aed3a18..29e95f637 100644
--- a/module/gui/ConnectionManager.py
+++ b/module/gui/ConnectionManager.py
@@ -30,10 +30,10 @@ class ConnectionManager(QWidget):
connList = QListWidget()
- new = QPushButton("New")
- edit = QPushButton("Edit")
- remove = QPushButton("Remove")
- connect = QPushButton("Connect")
+ new = QPushButton(_("New"))
+ edit = QPushButton(_("Edit"))
+ remove = QPushButton(_("Remove"))
+ connect = QPushButton(_("Connect"))
mainLayout.addWidget(connList)
mainLayout.addLayout(buttonLayout)
@@ -73,7 +73,7 @@ class ConnectionManager(QWidget):
item.setData(Qt.UserRole, QVariant(conn))
self.connList.addItem(item)
if conn["default"]:
- item.setData(Qt.DisplayRole, QVariant("%s (Default)" % conn["name"]))
+ item.setData(Qt.DisplayRole, QVariant(_("%s (Default)") % conn["name"]))
self.connList.setCurrentItem(item)
def slotNew(self):
@@ -135,12 +135,12 @@ class ConnectionManager(QWidget):
grid = QGridLayout()
- nameLabel = QLabel("Name:")
- hostLabel = QLabel("Host:")
- sslLabel = QLabel("SSL:")
- localLabel = QLabel("Local:")
- userLabel = QLabel("User:")
- portLabel = QLabel("Port:")
+ nameLabel = QLabel(_("Name:"))
+ hostLabel = QLabel(_("Host:"))
+ sslLabel = QLabel(_("SSL:"))
+ localLabel = QLabel(_("Local:"))
+ userLabel = QLabel(_("User:"))
+ portLabel = QLabel(_("Port:"))
name = QLineEdit()
host = QLineEdit()
@@ -150,8 +150,8 @@ class ConnectionManager(QWidget):
port = QSpinBox()
port.setRange(1,10000)
- save = QPushButton("Save")
- cancel = QPushButton("Cancel")
+ save = QPushButton(_("Save"))
+ cancel = QPushButton(_("Cancel"))
grid.addWidget(nameLabel, 0, 0)
grid.addWidget(name, 0, 1)
diff --git a/module/gui/MainWindow.py b/module/gui/MainWindow.py
index 250b701e4..16a409f64 100644
--- a/module/gui/MainWindow.py
+++ b/module/gui/MainWindow.py
@@ -30,7 +30,7 @@ class MainWindow(QMainWindow):
"""
QMainWindow.__init__(self)
#window stuff
- self.setWindowTitle("pyLoad Client")
+ self.setWindowTitle(_("pyLoad Client"))
self.setWindowIcon(QIcon("icons/logo.png"))
self.resize(850,500)
@@ -57,18 +57,18 @@ class MainWindow(QMainWindow):
self.menubar = self.menuBar()
self.statusbar = self.statusBar()
self.connect(self.statusbar, SIGNAL("showMsg"), self.statusbar.showMessage)
- self.serverStatus = QLabel("Status: Not Connected")
+ self.serverStatus = QLabel(_("Status: Not Connected"))
self.statusbar.addPermanentWidget(self.serverStatus)
#menu
self.menus = {}
- self.menus["file"] = self.menubar.addMenu("&File")
- self.menus["connections"] = self.menubar.addMenu("&Connections")
+ self.menus["file"] = self.menubar.addMenu(_("File"))
+ self.menus["connections"] = self.menubar.addMenu(_("Connections"))
#menu actions
self.mactions = {}
- self.mactions["exit"] = QAction("Exit", self.menus["file"])
- self.mactions["manager"] = QAction("Connection manager", self.menus["connections"])
+ self.mactions["exit"] = QAction(_("Exit"), self.menus["file"])
+ self.mactions["manager"] = QAction(_("Connection manager"), self.menus["connections"])
#add menu actions
self.menus["file"].addAction(self.mactions["exit"])
@@ -85,10 +85,10 @@ class MainWindow(QMainWindow):
self.tabs["collector"] = {"w":QWidget()}
self.tabs["settings"] = {"w":QWidget()}
self.tabs["log"] = {"w":QWidget()}
- self.tabw.addTab(self.tabs["queue"]["w"], "Queue")
- self.tabw.addTab(self.tabs["collector"]["w"], "Collector")
- self.tabw.addTab(self.tabs["settings"]["w"], "Settings")
- self.tabw.addTab(self.tabs["log"]["w"], "Log")
+ self.tabw.addTab(self.tabs["queue"]["w"], _("Queue"))
+ self.tabw.addTab(self.tabs["collector"]["w"], _("Collector"))
+ self.tabw.addTab(self.tabs["settings"]["w"], _("Settings"))
+ self.tabw.addTab(self.tabs["log"]["w"], _("Log"))
self.tabw.setTabEnabled(2, False)
#init tabs
@@ -114,29 +114,29 @@ class MainWindow(QMainWindow):
"""
create toolbar
"""
- self.toolbar = self.addToolBar("Main Toolbar")
+ self.toolbar = self.addToolBar(_("Main Toolbar"))
self.toolbar.setObjectName("Main Toolbar")
self.toolbar.setIconSize(QSize(40,40))
- self.actions["toggle_status"] = self.toolbar.addAction("Toggle Pause/Resume")
+ self.actions["toggle_status"] = self.toolbar.addAction(_("Toggle Pause/Resume"))
pricon = QIcon()
pricon.addFile("icons/gui/toolbar_start.png", QSize(), QIcon.Normal, QIcon.Off)
pricon.addFile("icons/gui/toolbar_pause.png", QSize(), QIcon.Normal, QIcon.On)
self.actions["toggle_status"].setIcon(pricon)
self.actions["toggle_status"].setCheckable(True)
- self.actions["status_stop"] = self.toolbar.addAction(QIcon("icons/gui/toolbar_stop.png"), "Stop")
+ self.actions["status_stop"] = self.toolbar.addAction(QIcon("icons/gui/toolbar_stop.png"), _("Stop"))
self.toolbar.addSeparator()
- self.actions["add"] = self.toolbar.addAction(QIcon("icons/gui/toolbar_add.png"), "Add")
+ self.actions["add"] = self.toolbar.addAction(QIcon("icons/gui/toolbar_add.png"), _("Add"))
self.toolbar.addSeparator()
- self.actions["clipboard"] = self.toolbar.addAction(QIcon("icons/gui/clipboard.png"), "Check Clipboard")
+ self.actions["clipboard"] = self.toolbar.addAction(QIcon("icons/gui/clipboard.png"), _("Check Clipboard"))
self.actions["clipboard"].setCheckable(True)
self.connect(self.actions["toggle_status"], SIGNAL("toggled(bool)"), self.slotToggleStatus)
self.connect(self.actions["clipboard"], SIGNAL("toggled(bool)"), self.slotToggleClipboard)
self.connect(self.actions["status_stop"], SIGNAL("triggered()"), self.slotStatusStop)
self.addMenu = QMenu()
- packageAction = self.addMenu.addAction("Package")
- linkAction = self.addMenu.addAction("Links")
- containerAction = self.addMenu.addAction("Container")
+ packageAction = self.addMenu.addAction(_("Package"))
+ linkAction = self.addMenu.addAction(_("Links"))
+ containerAction = self.addMenu.addAction(_("Container"))
self.connect(self.actions["add"], SIGNAL("triggered()"), self.slotAdd)
self.connect(packageAction, SIGNAL("triggered()"), self.slotShowAddPackage)
self.connect(linkAction, SIGNAL("triggered()"), self.slotShowAddLinks)
@@ -153,9 +153,9 @@ class MainWindow(QMainWindow):
self.tabs["queue"]["l"].addWidget(self.tabs["queue"]["view"])
#collector
- groupPackage = QGroupBox("Packages")
+ groupPackage = QGroupBox(_("Packages"))
groupPackage.setLayout(QVBoxLayout())
- toQueue = QPushButton("Push selected packages to queue")
+ toQueue = QPushButton(_("Push selected packages to queue"))
self.tabs["collector"]["l"] = QGridLayout()
self.tabs["collector"]["w"].setLayout(self.tabs["collector"]["l"])
self.tabs["collector"]["package_view"] = QTreeWidget()
@@ -188,9 +188,9 @@ class MainWindow(QMainWindow):
self.queueContext = QMenu()
self.queueContext.buttons = {}
self.queueContext.item = (None, None)
- self.queueContext.buttons["remove"] = QAction(QIcon("icons/gui/remove_small.png"), "Remove", self.queueContext)
- self.queueContext.buttons["restart"] = QAction(QIcon("icons/gui/refresh_small.png"), "Restart", self.queueContext)
- self.queueContext.buttons["pull"] = QAction(QIcon("icons/gui/pull_small.png"), "Pull out", self.queueContext)
+ self.queueContext.buttons["remove"] = QAction(QIcon("icons/gui/remove_small.png"), _("Remove"), self.queueContext)
+ self.queueContext.buttons["restart"] = QAction(QIcon("icons/gui/refresh_small.png"), _("Restart"), self.queueContext)
+ self.queueContext.buttons["pull"] = QAction(QIcon("icons/gui/pull_small.png"), _("Pull out"), self.queueContext)
self.queueContext.addAction(self.queueContext.buttons["pull"])
self.queueContext.addAction(self.queueContext.buttons["remove"])
self.queueContext.addAction(self.queueContext.buttons["restart"])
@@ -202,9 +202,9 @@ class MainWindow(QMainWindow):
self.collectorContext = QMenu()
self.collectorContext.buttons = {}
self.collectorContext.item = (None, None)
- self.collectorContext.buttons["remove"] = QAction(QIcon("icons/gui/remove_small.png"), "Remove", self.collectorContext)
- self.collectorContext.buttons["push"] = QAction(QIcon("icons/gui/push_small.png"), "Push to queue", self.collectorContext)
- self.collectorContext.buttons["edit"] = QAction(QIcon("icons/gui/edit_small.png"), "Edit Name", self.collectorContext)
+ self.collectorContext.buttons["remove"] = QAction(QIcon("icons/gui/remove_small.png"), _("Remove"), self.collectorContext)
+ self.collectorContext.buttons["push"] = QAction(QIcon("icons/gui/push_small.png"), _("Push to queue"), self.collectorContext)
+ self.collectorContext.buttons["edit"] = QAction(QIcon("icons/gui/edit_small.png"), _("Edit Name"), self.collectorContext)
self.collectorContext.addAction(self.collectorContext.buttons["push"])
self.collectorContext.addAction(self.collectorContext.buttons["edit"])
self.collectorContext.addAction(self.collectorContext.buttons["remove"])
@@ -273,7 +273,14 @@ class MainWindow(QMainWindow):
action from add-menu
show file selector, emit upload
"""
- fileNames = QFileDialog.getOpenFileNames(self, "Container Öffnen", "", "All Container Types (*.dlc *.ccf *.rsdf *.txt);;DLC (*.dlc);;CCF (*.ccf);;RSDF (*.rsdf);;Text Files (*.txt)")
+ typeStr = ";;".join([
+ _("All Container Types (%s)") % "*.dlc *.ccf *.rsdf *.txt",
+ _("DLC (%s)") % "*.dlc",
+ _("CCF (%s)") % "*.ccf",
+ _("RSDF (%s)") % "*.rsdf",
+ _("Text Files (%s)") % "*.txt"
+ ])
+ fileNames = QFileDialog.getOpenFileNames(self, _("Open container"), "", typeStr)
for name in fileNames:
self.emit(SIGNAL("addContainer"), str(name))
@@ -296,7 +303,7 @@ class MainWindow(QMainWindow):
ids = []
for child in pack.getChildren():
ids.append(child.getFileData()["id"])
- self.emit(SIGNAL("addPackage"), "Single Links", ids)
+ self.emit(SIGNAL("addPackage"), _("Single Links"), ids)
id = self.lastAddedID
self.emit(SIGNAL("pushPackageToQueue"), id)
diff --git a/module/gui/PWInputWindow.py b/module/gui/PWInputWindow.py
index 4fc834c4f..e2b82e384 100644
--- a/module/gui/PWInputWindow.py
+++ b/module/gui/PWInputWindow.py
@@ -24,9 +24,9 @@ class PWInputWindow(QWidget):
QWidget.__init__(self)
self.input = QLineEdit()
self.input.setEchoMode(QLineEdit.Password)
- label = QLabel("Password:")
- ok = QPushButton("OK")
- cancel = QPushButton("Cancel")
+ label = QLabel(_("Password:"))
+ ok = QPushButton(_("OK"))
+ cancel = QPushButton(_("Cancel"))
grid = QGridLayout()
grid.addWidget(label, 0, 0, 1, 2)
grid.addWidget(self.input, 1, 0, 1, 2)
diff --git a/module/gui/PackageDock.py b/module/gui/PackageDock.py
index c81798935..fec5466c2 100644
--- a/module/gui/PackageDock.py
+++ b/module/gui/PackageDock.py
@@ -21,7 +21,7 @@ from PyQt4.QtGui import *
class NewPackageDock(QDockWidget):
def __init__(self):
- QDockWidget.__init__(self, "New Package")
+ QDockWidget.__init__(self, _("New Package"))
self.setObjectName("New Package Dock")
self.widget = NewPackageWindow(self)
self.setWidget(self.widget)
@@ -47,10 +47,10 @@ class NewPackageWindow(QWidget):
self.setLayout(QGridLayout())
layout = self.layout()
- nameLabel = QLabel("Name")
+ nameLabel = QLabel(_("Name"))
nameInput = QLineEdit()
- linksLabel = QLabel("Links in this Package")
+ linksLabel = QLabel(_("Links in this Package"))
linkView = QTreeWidget()
linkView.setSelectionBehavior(QAbstractItemView.SelectRows)
linkView.setSelectionMode(QAbstractItemView.ExtendedSelection)
@@ -65,7 +65,7 @@ class NewPackageWindow(QWidget):
self.view = linkView
self.nameInput = nameInput
- save = QPushButton("Create")
+ save = QPushButton(_("Create"))
layout.addWidget(nameLabel, 0, 0)
layout.addWidget(nameInput, 0, 1)
diff --git a/module/gui/Queue.py b/module/gui/Queue.py
index bd45e27dc..2aeb603b0 100644
--- a/module/gui/Queue.py
+++ b/module/gui/Queue.py
@@ -68,7 +68,6 @@ class Queue(QObject):
def update(self):
locker = QMutexLocker(self.mutex)
- packs = self.connector.getPackageQueue()
downloading_raw = self.connector.getDownloadQueue()
downloading = {}
for d in downloading_raw:
@@ -93,16 +92,15 @@ class Queue(QObject):
packs = self.connector.getPackageQueue()
for data in packs:
pack = self.QueuePack(self)
- pack.setPackData(data)
- files = self.connector.getPackageFiles(data["id"])
- for fid in files:
- info = self.connector.getLinkInfo(fid)
+ pack.setPackData(data["data"])
+ files = data["children"]
+ for fdata in files:
child = self.QueueFile(self, pack)
- if not info["status_type"]:
- info["status_type"] = "queued"
- child.setFileData(info)
- pack.addPackChild(fid, child)
- self.addPack(data["id"], pack)
+ if not fdata["status_type"]:
+ fdata["status_type"] = "queued"
+ child.setFileData(fdata)
+ pack.addPackChild(fdata["id"], child)
+ self.addPack(data["data"]["id"], pack)
def addEvent(self, event):
locker = QMutexLocker(self.mutex)
diff --git a/module/gui/connector.py b/module/gui/connector.py
index b6c383956..7b872a0a9 100644
--- a/module/gui/connector.py
+++ b/module/gui/connector.py
@@ -154,7 +154,7 @@ class connector(QThread):
"""
self.mutex.lock()
try:
- return self.proxy.get_queue()
+ return self.proxy.get_full_queue()
except Exception, e:
self.emit(SIGNAL("proxy_error"), "getPackageQueue", e)
finally:
diff --git a/module/network/Request.py b/module/network/Request.py
index 3c669e77a..5e3503bb3 100755
--- a/module/network/Request.py
+++ b/module/network/Request.py
@@ -461,7 +461,7 @@ class Request:
def progress(self, dl_t, dl_d, up_t, up_d):
if self.abort:
return False
- self.dl_arrived = self.offset+int(dl_d)
+ self.dl_arrived = int(dl_d)
self.dl_size = int(dl_t)
def get_free_name(self, file_name):
diff --git a/module/plugins/hoster/RapidshareCom.py b/module/plugins/hoster/RapidshareCom.py
index d0b6ffcd9..d7a47e6ae 100644
--- a/module/plugins/hoster/RapidshareCom.py
+++ b/module/plugins/hoster/RapidshareCom.py
@@ -47,7 +47,7 @@ class RapidshareCom(Plugin):
pyfile.status.filename = self.get_file_name()
if self.config["premium"]:
- self.logger.info("Rapidshare: Use Premium Account (%sGB left)" % (self.props["premkbleft"]/1000000))
+ self.logger.info(_("Rapidshare: Use Premium Account (%sGB left)") % (self.props["premkbleft"]/1000000))
pyfile.status.url = self.parent.url
return True
@@ -62,7 +62,7 @@ class RapidshareCom(Plugin):
return True
elif self.api_data["status"] == "2":
- self.logger.info("Rapidshare: Traffic Share (direct download)")
+ self.logger.info(_("Rapidshare: Traffic Share (direct download)"))
pyfile.status.filename = self.get_file_name()
pyfile.status.url = self.parent.url
return True
@@ -115,7 +115,7 @@ class RapidshareCom(Plugin):
fields = src.split("\n")
premkbleft = int(fields[19].split("=")[1])
if premkbleft < int(self.api_data["size"][0:-3]):
- self.logger.info("Rapidshare: Not enough traffic left")
+ self.logger.info(_("Rapidshare: Not enough traffic left"))
self.config["premium"] = False
else:
self.props["premkbleft"] = premkbleft
@@ -135,7 +135,7 @@ class RapidshareCom(Plugin):
self.html_old = time()
if re.search(r"is already downloading", self.html[1]):
- self.logger.info("Rapidshare: Already downloading, wait 30 minutes")
+ self.logger.info(_("Rapidshare: Already downloading, wait 30 minutes"))
self.time_plus_wait = time() + 10 * 30
return
self.no_slots = False
@@ -146,7 +146,7 @@ class RapidshareCom(Plugin):
except:
if re.search(r"(Currently a lot of users|no more download slots|servers are overloaded)", self.html[1], re.I) != None:
self.time_plus_wait = time() + 130
- self.logger.info("Rapidshare: No free slots!")
+ self.logger.info(_("Rapidshare: No free slots!"))
self.no_slots = True
return True
self.no_slots = False
diff --git a/module/plugins/hoster/UploadedTo.py b/module/plugins/hoster/UploadedTo.py
index 59fdad5dc..38529eb4f 100644
--- a/module/plugins/hoster/UploadedTo.py
+++ b/module/plugins/hoster/UploadedTo.py
@@ -136,7 +136,7 @@ class UploadedTo(Plugin):
self.req.load("http://uploaded.to/login", None, { "email" : self.config['username'], "password" : self.config['password']}, cookies=True)
self.req.load(url, cookies=True, just_header=True)
if self.cleanUrl(self.req.lastEffectiveURL) == self.cleanUrl(url):
- self.logger.info("UploadedTo indirect download")
+ self.logger.info(_("UploadedTo indirect download"))
url = self.cleanUrl(url)+"?redirect"
self.req.download(url, location, cookies=True)
else:
diff --git a/pyLoadCore.py b/pyLoadCore.py
index 94abd2d08..4184de4da 100755
--- a/pyLoadCore.py
+++ b/pyLoadCore.py
@@ -45,7 +45,6 @@ from sys import executable
from sys import exit
from sys import path
from sys import stdout
-from sys import version_info
from tempfile import NamedTemporaryFile
import thread
import time
@@ -54,13 +53,13 @@ from xmlrpclib import Binary
from module.CaptchaManager import CaptchaManager
from module.HookManager import HookManager
-from module.PullEvents import PullManager
from module.XMLConfigParser import XMLConfigParser
from module.file_list import File_List
from module.network.Request import Request
import module.remote.SecureXMLRPCServer as Server
from module.thread_list import Thread_List
from module.web.ServerThread import WebServer
+from module.PullEvents import PullManager
class Core(object):
""" pyLoad Core """
@@ -140,7 +139,7 @@ class Core(object):
self.lastGuiConnected = 0
self.server_methods = ServerMethods(self)
- self.file_list = File_List(self)
+ self.file_list = File_List(self)
self.pullManager = PullManager(self)
self.thread_list = Thread_List(self)
self.captchaManager = CaptchaManager(self)
@@ -290,15 +289,11 @@ class Core(object):
plugins = glob(join(self.plugin_folder, "hoster", "*.py"))
plugins += glob(join(self.plugin_folder, "decrypter", "*.py"))
plugins += glob(join(self.plugin_folder, "container", "*.py"))
- plugins += glob(join(self.plugin_folder, "container", "DLC_*.pyc"))
+ plugins += glob(join(self.plugin_folder, "container", "DLC.pyc"))
for file_handler in plugins:
plugin_pattern = ""
plugin_file = sub("(\.pyc|\.py)", "", basename(file_handler))
- if plugin_file.startswith("DLC"):
- if plugin_file == "DLC_25" and not version_info < (2, 6):
- continue
- if plugin_file == "DLC_26" and not version_info > (2, 6):
- continue
+ if plugin_file == "DLC":
plugin_pattern = "(?!http://).*\.dlc"
else:
for line in open(file_handler, "r").readlines():
@@ -341,7 +336,7 @@ class Core(object):
def check_update(self):
try:
if self.config['updates']['search_updates']:
- version_check = Request().load("http://get.pyload.org/check/%s/" % (CURRENT_VERSION,))
+ version_check = Request().load("http://get.pyload.org/check/%s/" % (CURRENT_VERSION, ))
if version_check == "":
self.logger.info(_("No Updates for pyLoad"))
return False
@@ -356,9 +351,9 @@ class Core(object):
def install_update(self):
if self.config['updates']['search_updates']:
if self.core.config['updates']['install_updates']:
- version_check = Request().load("http://get.pyload.org/get/update/%s/" % (CURRENT_VERSION,))
+ version_check = Request().load("http://get.pyload.org/get/update/%s/" % (CURRENT_VERSION, ))
else:
- version_check = Request().load("http://get.pyload.org/check/%s/" % (CURRENT_VERSION,))
+ version_check = Request().load("http://get.pyload.org/check/%s/" % (CURRENT_VERSION, ))
if version_check == "":
return False
else:
@@ -578,9 +573,20 @@ class ServerMethods():
return True
else:
return False
-
- def get_events(self, uuid):
- return self.core.pullManager.getEvents(uuid)
+
+ def get_events(self, uuid):
+ return self.core.pullManager.getEvents(uuid)
+
+ def get_full_queue(self):
+ data = []
+ for pack in self.core.file_list.data["queue"]:
+ p = {"data":pack.data, "children":[]}
+ for child in pack.files:
+ info = self.core.file_list.getFileInfo(child.id)
+ info["downloading"] = None
+ p["children"].append(info)
+ data.append(p)
+ return data
#def move_urls_up(self, ids):
# for id in ids:
diff --git a/pyLoadGui.py b/pyLoadGui.py
index c3deb9a6e..068ee667e 100755
--- a/pyLoadGui.py
+++ b/pyLoadGui.py
@@ -28,7 +28,8 @@ from PyQt4.QtGui import *
from uuid import uuid4 as uuid
import re
-from os.path import basename
+import gettext
+from os.path import basename, dirname, join
from module.gui.ConnectionManager import *
from module.gui.connector import *
@@ -51,13 +52,16 @@ class main(QObject):
"""
set main things up
"""
+ self.parser = XMLParser("module/config/gui.xml", "module/config/gui_default.xml")
+ langNode = self.parser.xml.elementsByTagName("language").item(0).toElement()
+ translation = gettext.translation("pyLoad", join(dirname(__file__), "locale"), languages=[str(langNode.text())])
+ translation.install(unicode=True)
self.mainWindow = MainWindow()
self.pwWindow = PWInputWindow()
self.connWindow = ConnectionManager()
self.connector = connector()
self.mainloop = self.Loop(self)
self.connectSignals()
- self.parser = XMLParser("module/config/gui.xml", "module/config/gui_default.xml")
self.checkClipboard = False
default = self.refreshConnections()
@@ -230,7 +234,7 @@ class main(QObject):
"""
view = self.mainWindow.tabs["queue"]["view"]
view.setColumnCount(4)
- view.setHeaderLabels(["Name", "Plugin", "Status", "Fortschritt"])
+ view.setHeaderLabels([_("Name"), _("Plugin"), _("Status"), _("Progress")])
view.setColumnWidth(0, 300)
view.setColumnWidth(1, 100)
view.setColumnWidth(2, 200)
@@ -246,11 +250,11 @@ class main(QObject):
"""
status = self.connector.getServerStatus()
if status["pause"]:
- status["status"] = "Paused"
+ status["status"] = _("Paused")
else:
- status["status"] = "Running"
+ status["status"] = _("Running")
status["speed"] = int(status["speed"])
- text = "Status: %(status)s | Speed: %(speed)s kb/s" % status
+ text = _("Status: %(status)s | Speed: %(speed)s kb/s") % status
self.mainWindow.actions["toggle_status"].setChecked(not status["pause"])
self.mainWindow.serverStatus.setText(text)
@@ -275,7 +279,7 @@ class main(QObject):
"""
status = self.connector.updateAvailable()
if status:
- self.mainWindow.statusbar.emit(SIGNAL("showMsg"), "Update Available")
+ self.mainWindow.statusbar.emit(SIGNAL("showMsg"), _("Update Available"))
else:
self.mainWindow.statusbar.emit(SIGNAL("showMsg"), "")
@@ -299,7 +303,7 @@ class main(QObject):
data["default"] = False
subs = self.parser.parseNode(conn, "dict")
if not subs.has_key("name"):
- data["name"] = "Unnamed"
+ data["name"] = _("Unnamed")
else:
data["name"] = subs["name"].text()
if data["type"] == "remote":