diff options
| author | David Cramer | 2012-03-26 16:05:02 -0700 |
|---|---|---|
| committer | David Cramer | 2012-03-26 16:05:02 -0700 |
| commit | 3f321b13ef2c4db1f626143bb472daa22cd60b25 (patch) | |
| tree | 573ad92d031464fd432c03f8f5c4e09bcd4b87d3 /debug_toolbar/panels | |
| parent | e2c37c834d10cbb0343753410fb9306fb6e4982a (diff) | |
| parent | 3f2a3bd5486558df1438ad0034883caeeec3166e (diff) | |
| download | django-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.py | 11 | ||||
| -rw-r--r-- | debug_toolbar/panels/logger.py | 17 | ||||
| -rw-r--r-- | debug_toolbar/panels/signals.py | 28 | ||||
| -rw-r--r-- | debug_toolbar/panels/sql.py | 8 |
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) |
