Django

Code

Changeset 768

Show
Ignore:
Timestamp:
10/03/05 05:15:11 (3 years ago)
Author:
hugo
Message:

i18n: added GET-support to language selection, added serbian translation file and added some convenience
stuff to the DjangoContext? - all from a patch by nesh on the list. Thanks nesh! References #65.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • django/branches/i18n/django/conf/global_settings.py

    r712 r768  
    2828# http://blogs.law.harvard.edu/tech/stories/storyReader$15 
    2929LANGUAGE_CODE = 'en-us' 
     30 
     31# Languages we provide translations for out of the base. The 
     32# language name should be the utf-8 encoded local name for the 
     33# language. 
     34LANGUAGES = ( 
     35    ('en-us', 'English'), 
     36    ('de', 'Deutsch'), 
     37    ('it', 'Italiano'), 
     38    ('sr', 'Srpski'), 
     39) 
    3040 
    3141# Not-necessarily-technical managers of the site. They get broken link 
  • django/branches/i18n/django/core/extensions.py

    r673 r768  
    3535        self['messages'] = request.user.get_and_delete_messages() 
    3636        self['perms'] = PermWrapper(request.user) 
     37        from django.conf import settings 
     38        self['LANGUAGES'] = settings.LANGUAGES 
     39        if hasattr(request, 'LANGUAGE_CODE'): 
     40            self['LANGUAGE_CODE'] = request.LANGUAGE_CODE 
     41        else: 
     42            self['LANGUAGE_CODE'] = settings.LANGUAGE_CODE 
    3743        if DEBUG and request.META.get('REMOTE_ADDR') in INTERNAL_IPS: 
    3844            self['debug'] = True 
  • django/branches/i18n/django/utils/translation.py

    r762 r768  
    4747        self.__app = app 
    4848        self.__language = language 
     49 
     50    def language(self): 
     51        return self.__language 
    4952     
    5053    def __repr__(self): 
     
    121124    del _active[currentThread()] 
    122125 
     126def get_language(): 
     127    """ 
     128    This function returns the currently selected language. 
     129    """ 
     130    t = _active.get(currentThread(), None) 
     131    if t is not None: 
     132        return t.language() 
     133    else: 
     134        from django.conf.settings import LANGUAGE_CODE 
     135        return LANGUAGE_CODE 
     136 
    123137def gettext(message): 
    124138    """ 
     
    172186    global _accepted 
    173187 
     188    if request.GET: 
     189        lang = request.GET.get('django_language', None) 
     190        if lang is not None: 
     191            if hasattr(request, 'session'): 
     192                request.session['django_language'] = lang 
     193            else: 
     194                request.set_cookie('django_language', lang) 
     195            return lang 
     196 
    174197    if hasattr(request, 'session'): 
    175         lang = getattr(request.session, 'django_language', None) 
     198        lang = request.session.get('django_language', None) 
    176199        if lang is not None: 
    177200            return lang