aboutsummaryrefslogtreecommitdiffstats
path: root/debug_toolbar/panels
diff options
context:
space:
mode:
authorDavid Cramer2012-03-26 16:05:02 -0700
committerDavid Cramer2012-03-26 16:05:02 -0700
commit3f321b13ef2c4db1f626143bb472daa22cd60b25 (patch)
tree573ad92d031464fd432c03f8f5c4e09bcd4b87d3 /debug_toolbar/panels
parente2c37c834d10cbb0343753410fb9306fb6e4982a (diff)
parent3f2a3bd5486558df1438ad0034883caeeec3166e (diff)
downloaddjango-debug-toolbar-3f321b13ef2c4db1f626143bb472daa22cd60b25.tar.bz2
Merge pull request #266 from jezdez/master
Improved i18n of panels and important fix to logging panel counter
Diffstat (limited to 'debug_toolbar/panels')
-rw-r--r--debug_toolbar/panels/cache.py11
-rw-r--r--debug_toolbar/panels/logger.py17
-rw-r--r--debug_toolbar/panels/signals.py28
-rw-r--r--debug_toolbar/panels/sql.py8
4 files changed, 39 insertions, 25 deletions
diff --git a/debug_toolbar/panels/cache.py b/debug_toolbar/panels/cache.py
index ace343b..1656932 100644
--- a/debug_toolbar/panels/cache.py
+++ b/debug_toolbar/panels/cache.py
@@ -3,7 +3,7 @@ import inspect
from django.core import cache
from django.core.cache.backends.base import BaseCache
-from django.utils.translation import ugettext_lazy as _
+from django.utils.translation import ugettext_lazy as _, ungettext
from debug_toolbar.panels import DebugPanel
@@ -89,7 +89,14 @@ class CacheDebugPanel(DebugPanel):
cache.cache = self.cache
def nav_title(self):
- return _('Cache: %.2fms') % self.cache.total_time
+ return _('Cache')
+
+ def nav_subtitle(self):
+ cache_calls = len(self.cache.calls)
+ return ungettext('%(cache_calls)d call in %(time).2fms',
+ '%(cache_calls)d calls in %(time).2fms',
+ cache_calls) % {'cache_calls': cache_calls,
+ 'time': self.cache.total_time}
def title(self):
return _('Cache Usage')
diff --git a/debug_toolbar/panels/logger.py b/debug_toolbar/panels/logger.py
index e894b50..816e718 100644
--- a/debug_toolbar/panels/logger.py
+++ b/debug_toolbar/panels/logger.py
@@ -4,15 +4,15 @@ try:
import threading
except ImportError:
threading = None
-from django.utils.translation import ugettext_lazy as _
+from django.utils.translation import ungettext, ugettext_lazy as _
from debug_toolbar.panels import DebugPanel
class LogCollector(object):
def __init__(self):
if threading is None:
- raise NotImplementedError("threading module is not available, \
- the logging panel cannot be used without it")
+ raise NotImplementedError("threading module is not available, "
+ "the logging panel cannot be used without it")
self.records = {} # a dictionary that maps threads to log records
def add_record(self, record, thread=None):
@@ -96,6 +96,10 @@ class LoggingPanel(DebugPanel):
template = 'debug_toolbar/panels/logger.html'
has_content = True
+ def __init__(self, *args, **kwargs):
+ super(LoggingPanel, self).__init__(*args, **kwargs)
+ self._records = {}
+
def process_request(self, request):
collector.clear_records()
@@ -105,6 +109,7 @@ class LoggingPanel(DebugPanel):
def get_and_delete(self):
records = collector.get_records()
+ self._records[threading.currentThread()] = records
collector.clear_records()
return records
@@ -112,8 +117,10 @@ class LoggingPanel(DebugPanel):
return _("Logging")
def nav_subtitle(self):
- # FIXME l10n: use ngettext
- return "%s message%s" % (len(collector.get_records()), (len(collector.get_records()) == 1) and '' or 's')
+ records = self._records[threading.currentThread()]
+ record_count = len(records)
+ return ungettext('%(count)s message', '%(count)s messages',
+ record_count) % {'count': record_count}
def title(self):
return _('Log Messages')
diff --git a/debug_toolbar/panels/signals.py b/debug_toolbar/panels/signals.py
index b7dbffe..2d38b1f 100644
--- a/debug_toolbar/panels/signals.py
+++ b/debug_toolbar/panels/signals.py
@@ -1,17 +1,17 @@
import sys
from django.conf import settings
-from django.core.signals import request_started, request_finished, \
- got_request_exception
-from django.db.models.signals import class_prepared, pre_init, post_init, \
- pre_save, post_save, pre_delete, post_delete, post_syncdb
+from django.core.signals import (request_started, request_finished,
+ got_request_exception)
+from django.db.models.signals import (class_prepared, pre_init, post_init,
+ pre_save, post_save, pre_delete, post_delete, post_syncdb)
from django.dispatch.dispatcher import WEAKREF_TYPES
-from django.utils.translation import ugettext_lazy as _
+from django.utils.translation import ugettext_lazy as _, ungettext
try:
from django.db.backends.signals import connection_created
except ImportError:
- connection_created = None
+ connection_created = None # noqa
from debug_toolbar.panels import DebugPanel
@@ -43,12 +43,16 @@ class SignalDebugPanel(DebugPanel):
signals = self.get_stats()['signals']
num_receivers = sum(len(s[2]) for s in signals)
num_signals = len(signals)
- return '%d %s from %d %s' % (
- num_receivers,
- (num_receivers == 1) and 'receiver' or 'receivers',
- num_signals,
- (num_signals == 1) and 'signal' or 'signals',
- )
+ # here we have to handle a double count translation, hence the
+ # hard coding of one signal
+ if num_signals == 1:
+ return ungettext('%(num_receivers)d receiver of 1 signal',
+ '%(num_receivers)d receivers of 1 signal',
+ num_receivers) % {'num_receivers': num_receivers}
+ return ungettext('%(num_receivers)d receiver of %(num_signals)d signals',
+ '%(num_receivers)d receivers of %(num_signals)d signals',
+ num_receivers) % {'num_receivers': num_receivers,
+ 'num_signals': num_signals}
def title(self):
return _("Signals")
diff --git a/debug_toolbar/panels/sql.py b/debug_toolbar/panels/sql.py
index b05eefe..f4edcb3 100644
--- a/debug_toolbar/panels/sql.py
+++ b/debug_toolbar/panels/sql.py
@@ -121,12 +121,8 @@ class SQLDebugPanel(DebugPanel):
return _('SQL')
def nav_subtitle(self):
- # TODO l10n: use ngettext
- return "%d %s in %.2fms" % (
- self._num_queries,
- (self._num_queries == 1) and 'query' or 'queries',
- self._sql_time
- )
+ return __("%d query in %.2fms", "%d queries in %.2fms",
+ self._num_queries) % (self._num_queries, self._sql_time)
def title(self):
count = len(self._databases)