2016-04-18 8 views
1

Ich versuche übersetzte E-Mails an meine Benutzer entsprechend ihrer Sprache in user.language zu senden. Um dies zu tun, überschreibe ich die Methode send_mail von meinem BaseMailerService.Django E-Mail-Übersetzung funktioniert nur lokal

from django.utils.translation import override 

    class BaseTranslatedMailerService(BaseMailerService): 
     """ 
     Renders the acutal content of an email according to the users configurated 
     language. 
     """ 

     def send_mail(self, context, attachments=None): 
      recipient_obj = context.get('recipient').get('user_obj') 
      # Default for all language settings is 'en' 
      with override(recipient_obj.language): 
       return super(BaseTranslatedMailerService, self).send_mail(context=context, 
                      attachments=attachments) 

Lokal in meinen Tests bekomme ich es die übersetzten Versionen der E-Mail nach user.language zu senden, aber es sendet nur die englischen Mails jedes Mal in meiner Server-Umgebung. Vielleicht muss es etwas mit Thread-Sprache tun, die ich einstellen muss?

Antwort

0

Offenbar habe ich versehentlich alle * .mo-Dateien zu meinem Gitignore hinzugefügt, was dazu führte, dass meine kompilierten Sprachzeichenfolgen vom Deploy-Prozess ausgeschlossen wurden. Das Entfernen von * .mo aus Gitignore löste mein Problem.

Verwandte Themen