Django:在不使用语言会话/ cookie的情况下翻译字符串

kab*_*aba 3 django internationalization

django中有没有办法将字符串翻译成另一种语言而不是语言会话或cookie中指定的语言?

我的意思是在调用ugettext时这样做.像这样的东西,'en'是语言代码:

from django.utils.translation import ugettext as _

def translate():
   translated_string =  _('Translate me', 'en')
Run Code Online (Sandbox Code Playgroud)

Dav*_*ver 5

django/middleware/locale.py一下,看起来你可以打电话:

from django.utils import translation
translation.activate(language)
Run Code Online (Sandbox Code Playgroud)

这是整个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
Run Code Online (Sandbox Code Playgroud)