Django

Code

Changeset 6446

Show
Ignore:
Timestamp:
10/02/07 20:57:02 (1 year ago)
Author:
mtredinnick
Message:

Fixed #4796. Fixed a problem when using i18n support for the first time -- in
particular when string_concat() was the first call made. Thanks, Andy Durdin.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • django/trunk/django/utils/translation/__init__.py

    r5609 r6446  
    33""" 
    44from django.utils.functional import lazy 
     5from django.utils.encoding import force_unicode 
    56 
    67__all__ = ['gettext', 'gettext_noop', 'gettext_lazy', 'ngettext', 
     
    4041 
    4142    # Make the originally requested function call on the way out the door. 
    42     return g[caller](*args, **kwargs) 
     43    return g['real_%s' % caller](*args, **kwargs) 
    4344 
    4445g = globals() 
     
    6465    return real_ungettext(singular, plural, number) 
    6566 
    66 def string_concat(*strings): 
    67     return real_string_concat(*strings) 
    68  
    6967ngettext_lazy = lazy(ngettext, str) 
    7068gettext_lazy = lazy(gettext, str) 
    7169ungettext_lazy = lazy(ungettext, unicode) 
    7270ugettext_lazy = lazy(ugettext, unicode) 
    73 string_concat = lazy(string_concat, unicode) 
    7471 
    7572def activate(language): 
     
    109106    return real_deactivate_all() 
    110107 
     108def string_concat(*strings): 
     109    """" 
     110    Lazy variant of string concatenation, needed for translations that are 
     111    constructed from multiple parts. 
     112    """ 
     113    return u''.join([force_unicode(s) for s in strings]) 
     114string_concat = lazy(string_concat, unicode) 
  • django/trunk/django/utils/translation/trans_null.py

    r5609 r6446  
    1414    return force_unicode(ngettext(singular, plural, number)) 
    1515 
    16 string_concat = lambda *strings: u''.join([force_unicode(el) for el in strings]) 
    1716activate = lambda x: None 
    1817deactivate = deactivate_all = install = lambda: None 
  • django/trunk/django/utils/translation/trans_real.py

    r6263 r6446  
    517517    return out.getvalue() 
    518518 
    519 def string_concat(*strings): 
    520     """" 
    521     Lazy variant of string concatenation, needed for translations that are 
    522     constructed from multiple parts. 
    523     """ 
    524     return u''.join([force_unicode(s) for s in strings]) 
  • django/trunk/tests/regressiontests/i18n/tests.py

    r5876 r6446  
    3131>>> s == s4 
    3232False 
     33 
     34unicode(string_concat(...)) should not raise a TypeError - #4796 
     35 
     36>>> import django.utils.translation 
     37>>> reload(django.utils.translation) 
     38<module 'django.utils.translation' from ...> 
     39>>> unicode(django.utils.translation.string_concat("dja", "ngo")) 
     40u'django' 
    3341"""