From d72c0bdc46a97c53d5e60b7e373d2f8e24673bb1 Mon Sep 17 00:00:00 2001 From: Aymeric Augustin Date: Sat, 24 Dec 2011 19:38:37 +0000 Subject: [PATCH] Fixed #17457 -- Marked strings used in hash descriptions for translation. git-svn-id: http://code.djangoproject.com/svn/django/trunk@17270 bcc190cf-cafb-0310-a4f2-bffc1f526a37 --- django/contrib/auth/forms.py | 4 ++-- django/contrib/auth/hashers.py | 33 +++++++++++++++++---------------- 2 files changed, 19 insertions(+), 18 deletions(-) diff --git a/django/contrib/auth/forms.py b/django/contrib/auth/forms.py index 50b2e2b757..336e302162 100644 --- a/django/contrib/auth/forms.py +++ b/django/contrib/auth/forms.py @@ -4,7 +4,7 @@ from django.template import loader from django.utils.encoding import smart_str from django.utils.http import int_to_base36 from django.utils.safestring import mark_safe -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import ugettext, ugettext_lazy as _ from django.contrib.auth import authenticate from django.contrib.auth.models import User @@ -36,7 +36,7 @@ class ReadOnlyPasswordHashWidget(forms.Widget): summary = "" for key, value in hasher.safe_summary(encoded).iteritems(): - summary += "%(key)s: %(value)s " % {"key": key, "value": value} + summary += "%(key)s: %(value)s " % {"key": ugettext(key), "value": value} return mark_safe("%(summary)s" % {"attrs": flatatt(final_attrs), "summary": summary}) diff --git a/django/contrib/auth/hashers.py b/django/contrib/auth/hashers.py index 0b3b6c3174..d133bcbfec 100644 --- a/django/contrib/auth/hashers.py +++ b/django/contrib/auth/hashers.py @@ -7,6 +7,7 @@ from django.utils.encoding import smart_str from django.core.exceptions import ImproperlyConfigured from django.utils.crypto import ( pbkdf2, constant_time_compare, get_random_string) +from django.utils.translation import ugettext_noop as _ UNUSABLE_PASSWORD = '!' # This will never be a valid encoded hash @@ -212,10 +213,10 @@ class PBKDF2PasswordHasher(BasePasswordHasher): algorithm, iterations, salt, hash = encoded.split('$', 3) assert algorithm == self.algorithm return SortedDict([ - ('algorithm', algorithm), - ('iterations', iterations), - ('salt', mask_hash(salt)), - ('hash', mask_hash(hash)), + (_('algorithm'), algorithm), + (_('iterations'), iterations), + (_('salt'), mask_hash(salt)), + (_('hash'), mask_hash(hash)), ]) @@ -263,10 +264,10 @@ class BCryptPasswordHasher(BasePasswordHasher): assert algorithm == self.algorithm salt, checksum = data[:22], data[22:] return SortedDict([ - ('algorithm', algorithm), - ('work factor', work_factor), - ('salt', mask_hash(salt)), - ('checksum', mask_hash(checksum)), + (_('algorithm'), algorithm), + (_('work factor'), work_factor), + (_('salt'), mask_hash(salt)), + (_('checksum'), mask_hash(checksum)), ]) @@ -292,9 +293,9 @@ class SHA1PasswordHasher(BasePasswordHasher): algorithm, salt, hash = encoded.split('$', 2) assert algorithm == self.algorithm return SortedDict([ - ('algorithm', algorithm), - ('salt', mask_hash(salt, show=2)), - ('hash', mask_hash(hash)), + (_('algorithm'), algorithm), + (_('salt'), mask_hash(salt, show=2)), + (_('hash'), mask_hash(hash)), ]) @@ -321,8 +322,8 @@ class MD5PasswordHasher(BasePasswordHasher): def safe_summary(self, encoded): return SortedDict([ - ('algorithm', self.algorithm), - ('hash', mask_hash(encoded, show=3)), + (_('algorithm'), self.algorithm), + (_('hash'), mask_hash(encoded, show=3)), ]) @@ -355,8 +356,8 @@ class CryptPasswordHasher(BasePasswordHasher): algorithm, salt, data = encoded.split('$', 2) assert algorithm == self.algorithm return SortedDict([ - ('algorithm', algorithm), - ('salt', salt), - ('hash', mask_hash(data, show=3)), + (_('algorithm'), algorithm), + (_('salt'), salt), + (_('hash'), mask_hash(data, show=3)), ])