Django

Code

Changeset 7857

Show
Ignore:
Timestamp:
07/06/08 20:57:05 (2 months ago)
Author:
mtredinnick
Message:

Fixed #7163 -- Fixed a translation-sharing problem so that you can have en-gb
and en-us at the app-level, even though Django only has an "en" translation
(for example). Analysis and patch from ognjen.maric@gmail.com.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • django/trunk/AUTHORS

    r7846 r7857  
    281281    Todd O'Bryan <toddobryan@mac.com> 
    282282    oggie rob <oz.robharvey@gmail.com> 
     283    oggy <ognjen.maric@gmail.com> 
    283284    Jay Parlar <parlar@gmail.com> 
    284285    Carlos Eduardo de Paula <carlosedp@gmail.com> 
  • django/trunk/django/utils/translation/trans_real.py

    r7206 r7857  
    161161 
    162162        res = _translation(globalpath) 
     163 
     164        # We want to ensure that, for example,  "en-gb" and "en-us" don't share 
     165        # the same translation object (thus, merging en-us with a local update 
     166        # doesn't affect en-gb), even though they will both use the core "en" 
     167        # translation. So we have to subvert Python's internal gettext caching. 
     168        base_lang = lambda x: x.split('-', 1)[0] 
     169        if base_lang(lang) in [base_lang(trans) for trans in _translations]: 
     170            res._info = res._info.copy() 
     171            res._catalog = res._catalog.copy() 
    163172 
    164173        def _merge(path):