Commit 3a417736 authored by Jannis Leidel's avatar Jannis Leidel
Browse files

[1.1.X] Fixed #12230 - Updated utils.translation.to_locale to support the...

[1.1.X] Fixed #12230 - Updated utils.translation.to_locale to support the special sr_Latn locale. Thanks to Janos Guljas.

Backport of r12056.

git-svn-id: http://code.djangoproject.com/svn/django/branches/releases/1.1.X@12251 bcc190cf-cafb-0310-a4f2-bffc1f526a37
parent d1e7fdea
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -40,6 +40,9 @@ def to_locale(language, to_lower=False):
        if to_lower:
            return language[:p].lower()+'_'+language[p+1:].lower()
        else:
            # Get correct locale for sr-latn
            if len(language[p+1:]) > 2:
                return language[:p].lower()+'_'+language[p+1].upper()+language[p+2:].lower()
            return language[:p].lower()+'_'+language[p+1:].upper()
    else:
        return language.lower()
+16 −1
Original line number Diff line number Diff line
@@ -4,7 +4,7 @@ import misc
regressions = ur"""
Format string interpolation should work with *_lazy objects.

>>> from django.utils.translation import ugettext, ugettext_lazy, activate, deactivate, gettext_lazy
>>> from django.utils.translation import ugettext, ugettext_lazy, activate, deactivate, gettext_lazy, to_locale
>>> s = ugettext_lazy('Add %(name)s')
>>> d = {'name': 'Ringo'}
>>> s % d
@@ -17,6 +17,21 @@ u'Ringo hinzuf\xfcgen'
u'Dodaj Ringo'
>>> deactivate()

Tests the to_locale function and the special case of Serbian Latin (refs #12230 and r11299)

>>> to_locale('en-us')
'en_US'
>>> to_locale('sr-lat')
'sr_Lat'

Test the to_language function

>>> from django.utils.translation.trans_real import to_language
>>> to_language('en_US')
'en-us'
>>> to_language('sr_Lat')
'sr-lat'

It should be possible to compare *_lazy objects.

>>> s1 = ugettext_lazy('Add %(name)s')