Django: перевод строки без использования языковой сессии / cookie - PullRequest
3 голосов
/ 13 октября 2009

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

Я имею в виду делать это во время вызова ugettext. Примерно так: где en - код языка:

from django.utils.translation import ugettext as _

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

1 Ответ

5 голосов
/ 17 октября 2009

Просматривая 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...