summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorCalum Lind <calumlind+deluge@gmail.com>2016-11-30 13:25:51 +0000
committerCalum Lind <calumlind+deluge@gmail.com>2016-11-30 13:29:33 +0000
commit48cedf635feb01b81d927e7e84d13067931381d7 (patch)
tree190cd028c456330f5f7410c5d20a55453cca97c3
parent0b4627be8aa7184eb08a7d9af72784e1b0f0523d (diff)
downloaddeluge-48cedf635feb01b81d927e7e84d13067931381d7.tar.gz
deluge-48cedf635feb01b81d927e7e84d13067931381d7.tar.bz2
deluge-48cedf635feb01b81d927e7e84d13067931381d7.zip
[GTKUI] [WEBUI] Add tracker_status translation to UIs
-rw-r--r--deluge/ui/common.py15
-rw-r--r--deluge/ui/gtkui/status_tab.py15
-rw-r--r--deluge/ui/web/gettext.js11
-rw-r--r--deluge/ui/web/js/deluge-all/details/StatusTab.js33
4 files changed, 62 insertions, 12 deletions
diff --git a/deluge/ui/common.py b/deluge/ui/common.py
index a3f5a1256..050ca2953 100644
--- a/deluge/ui/common.py
+++ b/deluge/ui/common.py
@@ -56,6 +56,21 @@ from deluge.common import utf8_encoded, path_join
from deluge.log import LOG as log
import deluge.configmanager
+
+# Dummy translation list so tracker status is translatable.
+def _(message):
+ return message
+
+
+TRACKER_STATUS_TRANSLATION = [
+ _('Error'),
+ _('Warning'),
+ _('Announce OK'),
+ _('Announce Sent')
+]
+del _
+
+
class TorrentInfo(object):
"""
Collects information about a torrent file.
diff --git a/deluge/ui/gtkui/status_tab.py b/deluge/ui/gtkui/status_tab.py
index 7ffb0079c..563e564bc 100644
--- a/deluge/ui/gtkui/status_tab.py
+++ b/deluge/ui/gtkui/status_tab.py
@@ -40,9 +40,11 @@ import gtk, gtk.glade
from deluge.ui.client import client
import deluge.component as component
import deluge.common
+from deluge.ui.common import TRACKER_STATUS_TRANSLATION
from deluge.ui.gtkui.torrentdetails import Tab
from deluge.log import LOG as log
+
def fpeer_sized(first, second):
return "%s (%s)" % (deluge.common.fsize(first), deluge.common.fsize(second))
@@ -63,6 +65,17 @@ def fspeed(value, max_value=-1):
else:
return deluge.common.fspeed(value)
+def ftranslate(text):
+ if text in TRACKER_STATUS_TRANSLATION:
+ text = _(text)
+ elif text:
+ for status in TRACKER_STATUS_TRANSLATION:
+ if status in text:
+ text = text.replace(status, _(status))
+ break
+ return text
+
+
class StatusTab(Tab):
def __init__(self):
Tab.__init__(self)
@@ -85,7 +98,7 @@ class StatusTab(Tab):
(glade.get_widget("summary_peers"), deluge.common.fpeer, ("num_peers", "total_peers")),
(glade.get_widget("summary_eta"), deluge.common.ftime, ("eta",)),
(glade.get_widget("summary_share_ratio"), fratio, ("ratio",)),
- (glade.get_widget("summary_tracker_status"), None, ("tracker_status",)),
+ (glade.get_widget("summary_tracker_status"), ftranslate, ("tracker_status",)),
(glade.get_widget("summary_next_announce"), deluge.common.ftime, ("next_announce",)),
(glade.get_widget("summary_active_time"), deluge.common.ftime, ("active_time",)),
(glade.get_widget("summary_seed_time"), deluge.common.ftime, ("seeding_time",)),
diff --git a/deluge/ui/web/gettext.js b/deluge/ui/web/gettext.js
index 2ec8b912a..ef5a07960 100644
--- a/deluge/ui/web/gettext.js
+++ b/deluge/ui/web/gettext.js
@@ -119,6 +119,12 @@ GetText.add('Allow Remote Connections', '${escape(_("Allow Remote Connections"))
// InterfacePage.js:78
GetText.add('Allow the use of multiple filters at once', '${escape(_("Allow the use of multiple filters at once"))}')
+// StatusTab.js:119
+GetText.add('Announce OK', '${escape(_("Announce OK"))}')
+
+// StatusTab.js:120
+GetText.add('Announce Sent', '${escape(_("Announce Sent"))}')
+
// OptionsTab.js:347, PreferencesWindow.js:107
GetText.add('Apply', '${escape(_("Apply"))}')
@@ -296,7 +302,7 @@ GetText.add('Encrypt entire stream', '${escape(_("Encrypt entire stream"))}')
// EncryptionPage.js:41
GetText.add('Encryption', '${escape(_("Encryption"))}')
-// ConnectionManager.js:316, ConnectionManager.js:372, AddConnectionWindow.js:103, UrlWindow.js:116, FileWindow.js:103, AddWindow.js:211
+// ConnectionManager.js:316, ConnectionManager.js:372, AddConnectionWindow.js:103, StatusTab.js:117, UrlWindow.js:116, FileWindow.js:103, AddWindow.js:211
GetText.add('Error', '${escape(_("Error"))}')
// Menus.js:323
@@ -830,6 +836,9 @@ GetText.add('Username', '${escape(_("Username"))}')
// ConnectionManager.js:90
GetText.add('Version', '${escape(_("Version"))}')
+// StatusTab.js:118
+GetText.add('Warning', '${escape(_("Warning"))}')
+
// ConnectionManager.js:285
GetText.add('We recommend changing the default password.<br><br>Would you like to change it now?', '${escape(_("We recommend changing the default password.<br><br>Would you like to change it now?"))}')
diff --git a/deluge/ui/web/js/deluge-all/details/StatusTab.js b/deluge/ui/web/js/deluge-all/details/StatusTab.js
index cb40be9d7..13f89a352 100644
--- a/deluge/ui/web/js/deluge-all/details/StatusTab.js
+++ b/deluge/ui/web/js/deluge-all/details/StatusTab.js
@@ -1,6 +1,6 @@
/*!
* Deluge.details.StatusTab.js
- *
+ *
* Copyright (c) Damien Churchill 2009-2010 <damoxc@gmail.com>
*
* This program is free software; you can redistribute it and/or modify
@@ -38,19 +38,19 @@ Ext.ns('Deluge.details');
Deluge.details.StatusTab = Ext.extend(Ext.Panel, {
title: _('Status'),
autoScroll: true,
-
+
onRender: function(ct, position) {
Deluge.details.StatusTab.superclass.onRender.call(this, ct, position);
-
+
this.progressBar = this.add({
xtype: 'progress',
cls: 'x-deluge-status-progressbar'
});
-
+
this.status = this.add({
cls: 'x-deluge-status',
id: 'deluge-details-status',
-
+
border: false,
width: 1000,
listeners: {
@@ -67,14 +67,14 @@ Deluge.details.StatusTab = Ext.extend(Ext.Panel, {
}
});
},
-
+
clear: function() {
this.progressBar.updateProgress(0, ' ');
for (var k in this.fields) {
this.fields[k].innerHTML = '';
}
},
-
+
update: function(torrentId) {
if (!this.fields) this.getFields();
deluge.client.web.get_torrent_status(torrentId, Deluge.Keys.Status, {
@@ -82,14 +82,14 @@ Deluge.details.StatusTab = Ext.extend(Ext.Panel, {
scope: this
});
},
-
+
onPanelUpdate: function(el, response) {
this.fields = {};
Ext.each(Ext.query('dd', this.status.body.dom), function(field) {
this.fields[field.className] = field;
}, this);
},
-
+
onRequestComplete: function(status) {
seeders = status.total_seeds > -1 ? status.num_seeds + ' (' + status.total_seeds + ')' : status.num_seeds
peers = status.total_peers > -1 ? status.num_peers + ' (' + status.total_peers + ')' : status.num_peers
@@ -113,9 +113,22 @@ Deluge.details.StatusTab = Ext.extend(Ext.Panel, {
}
data.auto_managed = _((status.is_auto_managed) ? 'True' : 'False');
+ var translate_tracker_status = {
+ 'Error' : _('Error'),
+ 'Warning' : _('Warning'),
+ 'Announce OK' : _('Announce OK'),
+ 'Announce Sent' : _('Announce Sent')
+ };
+ for (var key in translate_tracker_status) {
+ if (data.tracker_status.indexOf(key) != -1) {
+ data.tracker_status = data.tracker_status.replace(key, translate_tracker_status[key]);
+ break;
+ }
+ }
+
data.downloaded += ' (' + ((status.total_payload_download) ? fsize(status.total_payload_download) : '0.0 KiB') + ')';
data.uploaded += ' (' + ((status.total_payload_upload) ? fsize(status.total_payload_upload): '0.0 KiB') + ')';
-
+
for (var field in this.fields) {
this.fields[field].innerHTML = data[field];
}