2009-10-13 9 views
3

Existe-t-il un moyen dans django de traduire une chaîne dans une autre langue que celle spécifiée dans la session de langue ou le cookie? Je veux dire le faire en appelant ugettext. Quelque chose comme ça, où 'en' est le code de langue:Django: traduire une chaîne sans utiliser la langue session/cookie

from django.utils.translation import ugettext as _ 

def translate(): 
    translated_string = _('Translate me', 'en') 

Répondre

5

En regardant à travers django/middleware/locale.py, il semble que vous pouvez simplement appeler:

from django.utils import translation 
translation.activate(language) 

est ici classe toute LocaleMiddleware, pour votre édification:

def process_request(self, request): 
    language = translation.get_language_from_request(request) 
    translation.activate(language) 
    request.LANGUAGE_CODE = translation.get_language() 

def process_response(self, request, response): 
    patch_vary_headers(response, ('Accept-Language',)) 
    if 'Content-Language' not in response: 
     response['Content-Language'] = translation.get_language() 
    translation.deactivate() 
    return response 
+0

Merci beaucoup! Cela fonctionne comme un charme. – kaba

Questions connexes