0

푸시 알림 모듈이있는 내 Django 앱을 번역 중입니다. 이 모듈에서 사용자의 모바일 장치에 텍스트 필드를 보냅니다. 이러한 통지의 방아쇠는 적절한 HTTP 요청 ("request"객체 포함)이 아니기 때문에, 문자열을 변환하는 기본 Django 방식은 작동하지 않습니다.요청 객체없이 장고 번역

모든 사용자 프로필에 기본 언어가 포함 된 필드가 있으므로 해당 필드가 올바른 번역과 일치하는 일종의 미들웨어를 작성해야한다고 생각합니다.

그런 방법이 있습니까?

+1

미들웨어는 요청에 따라뿐만 아니라, 그렇게하지 않도록 당신이 도움이 될 생각하는 이유. 그러나 Django 문서는 명시 적으로 [보기 외부에서 언어를 설정하는 방법]을 설명합니다 (https://docs.djangoproject.com/en/1.9/topics/i18n/translation/#using-translations-outside-views-and-templates).). –

답변

2

당신은 translation.override 컨텍스트 관리자를 찾고 있습니다 :

language = user.get_language() 
with translation.override(language): 
    # Translate your message here. 
+0

한 가지 지적해야 할 점은 언어는'with' 문에서만 설정되므로주의하지 않으면 안됩니다. [lazy translations] (https://docs.djangoproject.com/en/dev/topics/i18n)/translation/# lazy-translation)을 입력하면 예기치 않은 결과가 발생할 수 있습니다. – dnaranjo

+0

감사합니다. – Pau