diff --git a/participation/views.py b/participation/views.py
index 59c5509..c0b742c 100644
--- a/participation/views.py
+++ b/participation/views.py
@@ -230,10 +230,11 @@ class TeamDetailView(LoginRequiredMixin, FormMixin, ProcessFormView, DetailView)
         self.object.participation.save()
 
         mail_context = dict(team=self.object, domain=Site.objects.first().domain)
-        mail_plain = render_to_string("participation/mails/request_validation.txt", mail_context)
-        mail_html = render_to_string("participation/mails/request_validation.html", mail_context)
-        send_mail(f"[{settings.APP_NAME}] {_('Team validation')}", mail_plain, settings.DEFAULT_FROM_EMAIL,
-                  [self.object.participation.tournament.organizers_email], html_message=mail_html)
+        with translation.override(settings.PREFERRED_LANGUAGE_CODE):
+            mail_plain = render_to_string("participation/mails/request_validation.txt", mail_context)
+            mail_html = render_to_string("participation/mails/request_validation.html", mail_context)
+            send_mail(f"[{settings.APP_NAME}] {_('Team validation')}", mail_plain, settings.DEFAULT_FROM_EMAIL,
+                    [self.object.participation.tournament.organizers_email], html_message=mail_html)
 
         return super().form_valid(form)
 
@@ -265,19 +266,21 @@ class TeamDetailView(LoginRequiredMixin, FormMixin, ProcessFormView, DetailView)
                                           message=form.cleaned_data["message"])
                 mail_context_html = dict(domain=domain, registration=registration, team=self.object, payment=payment,
                                          message=form.cleaned_data["message"].replace('\n', '<br>'))
-                mail_plain = render_to_string("participation/mails/team_validated.txt", mail_context_plain)
-                mail_html = render_to_string("participation/mails/team_validated.html", mail_context_html)
-                registration.user.email_user(f"[{settings.APP_NAME}] {_('Team validated')}", mail_plain,
-                                             html_message=mail_html)
+                with translation.override(settings.PREFERRED_LANGUAGE_CODE):
+                    mail_plain = render_to_string("participation/mails/team_validated.txt", mail_context_plain)
+                    mail_html = render_to_string("participation/mails/team_validated.html", mail_context_html)
+                    registration.user.email_user(f"[{settings.APP_NAME}] {_('Team validated')}", mail_plain,
+                                                html_message=mail_html)
         elif "invalidate" in self.request.POST:
             self.object.participation.valid = None
             self.object.participation.save()
             mail_context_plain = dict(team=self.object, message=form.cleaned_data["message"])
             mail_context_html = dict(team=self.object, message=form.cleaned_data["message"].replace('\n', '<br>'))
-            mail_plain = render_to_string("participation/mails/team_not_validated.txt", mail_context_plain)
-            mail_html = render_to_string("participation/mails/team_not_validated.html", mail_context_html)
-            send_mail(f"[{settings.APP_NAME}] {_('Team not validated')}", mail_plain,
-                      None, [self.object.email], html_message=mail_html)
+            with translation.override(settings.PREFERRED_LANGUAGE_CODE):
+                mail_plain = render_to_string("participation/mails/team_not_validated.txt", mail_context_plain)
+                mail_html = render_to_string("participation/mails/team_not_validated.html", mail_context_html)
+                send_mail(f"[{settings.APP_NAME}] {_('Team not validated')}", mail_plain,
+                        None, [self.object.email], html_message=mail_html)
         else:
             form.add_error(None, _("You must specify if you validate the registration or not."))
             return self.form_invalid(form)
@@ -1147,15 +1150,18 @@ class PoolJuryView(VolunteerMixin, FormView, DetailView):
             # Send welcome mail
             subject = f"[{settings.APP_NAME}] " + str(_("New jury account"))
             site = Site.objects.first()
-            message = render_to_string('registration/mails/add_organizer.txt', dict(user=user,
-                                                                                    inviter=self.request.user,
-                                                                                    password=password,
-                                                                                    domain=site.domain))
-            html = render_to_string('registration/mails/add_organizer.html', dict(user=user,
-                                                                                  inviter=self.request.user,
-                                                                                  password=password,
-                                                                                  domain=site.domain))
-            user.email_user(subject, message, html_message=html)
+            with translation.override(settings.PREFERRED_LANGUAGE_CODE):
+                message = render_to_string('registration/mails/add_organizer.txt',
+                                           dict(user=user,
+                                                inviter=self.request.user,
+                                                password=password,
+                                                domain=site.domain))
+                html = render_to_string('registration/mails/add_organizer.html',
+                                        dict(user=user,
+                                             inviter=self.request.user,
+                                             password=password,
+                                             domain=site.domain))
+                user.email_user(subject, message, html_message=html)
 
         # Add the user in the jury
         self.object.juries.add(reg)
@@ -1845,10 +1851,9 @@ class NotationSheetTemplateView(VolunteerMixin, DetailView):
         return context
 
     def render_to_response(self, context, **response_kwargs):
-        translation.activate(settings.PREFERRED_LANGUAGE_CODE)
-
         template_name = self.get_template_names()[0]
-        tex = render_to_string(template_name, context=context, request=self.request)
+        with translation.override(settings.PREFERRED_LANGUAGE_CODE):
+            tex = render_to_string(template_name, context=context, request=self.request)
         temp_dir = mkdtemp()
         with open(os.path.join(temp_dir, "texput.tex"), "w") as f:
             f.write(tex)
diff --git a/registration/models.py b/registration/models.py
index e68bab6..e99741e 100644
--- a/registration/models.py
+++ b/registration/models.py
@@ -308,27 +308,27 @@ class ParticipantRegistration(Registration):
         """
         The team is selected for final.
         """
-        translation.activate(settings.PREFERRED_LANGUAGE_CODE)
-        subject = f"[{settings.APP_NAME}] " + str(_("Team selected for the final tournament"))
-        site = Site.objects.first()
-        from participation.models import Tournament
-        tournament = Tournament.final_tournament()
-        payment = self.payments.filter(final=True).first() if self.is_student else None
-        message = loader.render_to_string('registration/mails/final_selection.txt',
-                                          {
-                                              'user': self.user,
-                                              'domain': site.domain,
-                                              'tournament': tournament,
-                                              'payment': payment,
-                                          })
-        html = loader.render_to_string('registration/mails/final_selection.html',
-                                       {
-                                           'user': self.user,
-                                           'domain': site.domain,
-                                           'tournament': tournament,
-                                           'payment': payment,
-                                       })
-        self.user.email_user(subject, message, html_message=html)
+        with translation.override(settings.PREFERRED_LANGUAGE_CODE):
+            subject = f"[{settings.APP_NAME}] " + str(_("Team selected for the final tournament"))
+            site = Site.objects.first()
+            from participation.models import Tournament
+            tournament = Tournament.final_tournament()
+            payment = self.payments.filter(final=True).first() if self.is_student else None
+            message = loader.render_to_string('registration/mails/final_selection.txt',
+                                            {
+                                                'user': self.user,
+                                                'domain': site.domain,
+                                                'tournament': tournament,
+                                                'payment': payment,
+                                            })
+            html = loader.render_to_string('registration/mails/final_selection.html',
+                                        {
+                                            'user': self.user,
+                                            'domain': site.domain,
+                                            'tournament': tournament,
+                                            'payment': payment,
+                                        })
+            self.user.email_user(subject, message, html_message=html)
 
     class Meta:
         verbose_name = _("participant registration")
@@ -802,35 +802,35 @@ class Payment(models.Model):
         return checkout_intent
 
     def send_remind_mail(self):
-        translation.activate(settings.PREFERRED_LANGUAGE_CODE)
-        subject = f"[{settings.APP_NAME}] " + str(_("Reminder for your payment"))
-        site = Site.objects.first()
-        for registration in self.registrations.all():
-            message = loader.render_to_string('registration/mails/payment_reminder.txt',
-                                              dict(registration=registration, payment=self, domain=site.domain))
-            html = loader.render_to_string('registration/mails/payment_reminder.html',
-                                           dict(registration=registration, payment=self, domain=site.domain))
-            registration.user.email_user(subject, message, html_message=html)
+        with translation.override(settings.PREFERRED_LANGUAGE_CODE):
+            subject = f"[{settings.APP_NAME}] " + str(_("Reminder for your payment"))
+            site = Site.objects.first()
+            for registration in self.registrations.all():
+                message = loader.render_to_string('registration/mails/payment_reminder.txt',
+                                                dict(registration=registration, payment=self, domain=site.domain))
+                html = loader.render_to_string('registration/mails/payment_reminder.html',
+                                            dict(registration=registration, payment=self, domain=site.domain))
+                registration.user.email_user(subject, message, html_message=html)
 
     def send_helloasso_payment_confirmation_mail(self):
-        translation.activate(settings.PREFERRED_LANGUAGE_CODE)
-        subject = f"[{settings.APP_NAME}] " + str(_("Payment confirmation"))
-        site = Site.objects.first()
-        for registration in self.registrations.all():
-            message = loader.render_to_string('registration/mails/payment_confirmation.txt',
-                                              dict(registration=registration, payment=self, domain=site.domain))
-            html = loader.render_to_string('registration/mails/payment_confirmation.html',
-                                           dict(registration=registration, payment=self, domain=site.domain))
-            registration.user.email_user(subject, message, html_message=html)
+        with translation.override(settings.PREFERRED_LANGUAGE_CODE):
+            subject = f"[{settings.APP_NAME}] " + str(_("Payment confirmation"))
+            site = Site.objects.first()
+            for registration in self.registrations.all():
+                message = loader.render_to_string('registration/mails/payment_confirmation.txt',
+                                                dict(registration=registration, payment=self, domain=site.domain))
+                html = loader.render_to_string('registration/mails/payment_confirmation.html',
+                                            dict(registration=registration, payment=self, domain=site.domain))
+                registration.user.email_user(subject, message, html_message=html)
 
-        payer = self.get_checkout_intent()['order']['payer']
-        payer_name = f"{payer['firstName']} {payer['lastName']}"
-        if not self.registrations.filter(user__email=payer['email']).exists():
-            message = loader.render_to_string('registration/mails/payment_confirmation.txt',
-                                              dict(registration=payer_name, payment=self, domain=site.domain))
-            html = loader.render_to_string('registration/mails/payment_confirmation.html',
-                                           dict(registration=payer_name, payment=self, domain=site.domain))
-            send_mail(subject, message, None, [payer['email']], html_message=html)
+            payer = self.get_checkout_intent()['order']['payer']
+            payer_name = f"{payer['firstName']} {payer['lastName']}"
+            if not self.registrations.filter(user__email=payer['email']).exists():
+                message = loader.render_to_string('registration/mails/payment_confirmation.txt',
+                                                dict(registration=payer_name, payment=self, domain=site.domain))
+                html = loader.render_to_string('registration/mails/payment_confirmation.html',
+                                            dict(registration=payer_name, payment=self, domain=site.domain))
+                send_mail(subject, message, None, [payer['email']], html_message=html)
 
     def get_absolute_url(self):
         return reverse_lazy("registration:update_payment", args=(self.pk,))
diff --git a/registration/views.py b/registration/views.py
index f2d9c6d..7c3fdfd 100644
--- a/registration/views.py
+++ b/registration/views.py
@@ -137,16 +137,17 @@ class AddOrganizerView(VolunteerMixin, CreateView):
         form.instance.set_password(password)
         form.instance.save()
 
-        subject = f"[{settings.APP_NAME}] " + str(_("New organizer account"))
-        site = Site.objects.first()
-        message = render_to_string('registration/mails/add_organizer.txt', dict(user=registration.user,
+        with translation.override(settings.PREFERRED_LANGUAGE_CODE):
+            subject = f"[{settings.APP_NAME}] " + str(_("New organizer account"))
+            site = Site.objects.first()
+            message = render_to_string('registration/mails/add_organizer.txt', dict(user=registration.user,
+                                                                                    inviter=self.request.user,
+                                                                                    password=password,
+                                                                                    domain=site.domain))
+            html = render_to_string('registration/mails/add_organizer.html', dict(user=registration.user,
                                                                                 inviter=self.request.user,
                                                                                 password=password,
                                                                                 domain=site.domain))
-        html = render_to_string('registration/mails/add_organizer.html', dict(user=registration.user,
-                                                                              inviter=self.request.user,
-                                                                              password=password,
-                                                                              domain=site.domain))
         registration.user.email_user(subject, message, html_message=html)
 
         if registration.is_admin:
@@ -461,10 +462,9 @@ class AuthorizationTemplateView(TemplateView):
         return context
 
     def render_to_response(self, context, **response_kwargs):
-        translation.activate(settings.PREFERRED_LANGUAGE_CODE)
-
         template_name = self.get_template_names()[0]
-        tex = render_to_string(template_name, context=context, request=self.request)
+        with translation.override(settings.PREFERRED_LANGUAGE_CODE):
+            tex = render_to_string(template_name, context=context, request=self.request)
         temp_dir = mkdtemp()
         with open(os.path.join(temp_dir, "texput.tex"), "w") as f:
             f.write(tex)