2009-10-13 3 views
3

Есть ли способ в django перевести строку на другой язык, чем тот, который указан в сеансе языка или в файле cookie?Django: перевод строки без использования языка session/cookie

Я имею в виду, что это при вызове ugettext. Что-то вроде этого, где «ан» является код языка:

from django.utils.translation import ugettext as _ 

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

ответ

5

Просматривая django/middleware/locale.py, кажется, что вы можете просто позвонить:

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

Вот все LocaleMiddleware класса, для назидания:

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

Спасибо! Это работает как шарм. – kaba

Смежные вопросы