From d39f4795e452e241545bb2dcded7a71875d960a0 Mon Sep 17 00:00:00 2001
From: Thomas Hackl <hackl@data-quest.de>
Date: Wed, 22 Feb 2023 11:10:31 +0000
Subject: [PATCH] Resolve "Textstringprobleme in Courseware-Zertifikatsversand"

Closes #2206

Merge request studip/studip!1440
---
 lib/cronjobs/courseware.php                | 4 ++++
 templates/courseware/mails/certificate.php | 2 +-
 2 files changed, 5 insertions(+), 1 deletion(-)

diff --git a/lib/cronjobs/courseware.php b/lib/cronjobs/courseware.php
index 37259c6b309..d0eb491bd04 100644
--- a/lib/cronjobs/courseware.php
+++ b/lib/cronjobs/courseware.php
@@ -223,6 +223,8 @@ class CoursewareCronjob extends CronJob
         $user = User::find($user_id);
         $course = Course::find($unit->range_id);
 
+        setTempLanguage('', $user->preferred_language);
+
         $template = $GLOBALS['template_factory']->open('courseware/mails/certificate');
         $html = $template->render(
             compact('user', 'course')
@@ -254,6 +256,8 @@ class CoursewareCronjob extends CronJob
 
         @unlink($filename);
 
+        restoreLanguage();
+
         // Add database entry for the certificate.
         if ($sent) {
             $cert = new Courseware\Certificate();
diff --git a/templates/courseware/mails/certificate.php b/templates/courseware/mails/certificate.php
index ed1e099de03..743db6f2bbf 100644
--- a/templates/courseware/mails/certificate.php
+++ b/templates/courseware/mails/certificate.php
@@ -14,7 +14,7 @@ switch($user->geschlecht) {
 }
 echo $p;
 printf(
-    _("Hiermit wird bescheinigt, dass %s am %s erfolgreich am Seminar %s teilgenommen hat."),
+    _("Hiermit wird bescheinigt, dass %1$s am %2$s erfolgreich am Seminar %3$s teilgenommen hat."),
     $span_bold . $anrede . ' ' . $user->getFullname() . $span_close,
     $span_bold . date('d.m.Y', time()) . $span_close,
     $span_bold . $course->name . $span_close
-- 
GitLab