diff --git a/resources/assets/javascripts/bootstrap/mvv_difflog.js b/resources/assets/javascripts/bootstrap/mvv_difflog.js
index a1c13e043493472dd7959a8f4fa9f7fb469b340e..b674ef021b6afaf161bad8fd061d853a5469ab89 100644
--- a/resources/assets/javascripts/bootstrap/mvv_difflog.js
+++ b/resources/assets/javascripts/bootstrap/mvv_difflog.js
@@ -1,3 +1,5 @@
+import { $gettextInterpolate } from  '../lib/gettext.js';
+
 STUDIP.domReady(() => {
     $('del.diffdel').each(function() {
         var mvv_field = '';
@@ -40,9 +42,9 @@ STUDIP.domReady(() => {
                     senddata,
                     function(data) {
                         if (data) {
-                            var info = 'Entfernt von ' + data.user + ' am ' + data.time;
+                            var info = $gettextInterpolate('Entfernt von %{user} am %{time}', data);
                             del.attr('title', info);
-                            del.after('<del class="difflog"> [' + info + '] </ins>');
+                            $('<del class="difflog"/>').text(` [${info}] `).insertAfter(del);
                         }
                     },
                     'json'
@@ -131,9 +133,9 @@ STUDIP.domReady(() => {
                     senddata,
                     function(data) {
                         if (data) {
-                            var info = 'Änderung durch ' + data.user + ' am ' + data.time;
+                            var info = $gettextInterpolate('Änderung durch %{user} am %{time}', data);
                             ins.attr('title', info);
-                            ins.after('<ins class="difflog"> [' + info + '] </ins>');
+                            $('<ins class="difflog"/>').text(` [${info}] `).insertAfter(ins);
                         }
                     },
                     'json'
@@ -160,9 +162,12 @@ STUDIP.domReady(() => {
                     { mvv_field: 'mvv_' + mvv_type, mvv_id: mvv_id, log_action: 'new' },
                     function(data) {
                         if (data) {
-                            var info = 'Hinzugefügt von ' + data.user + ' am ' + data.time;
+                            var info = $gettextInterpolate('Hinzugefügt von %{user} am %{time}', data);
                             curtable.attr('title', info);
-                            curtable.append('<tr><td><ins class="difflog"> [' + info + '] </ins><td></tr>');
+                            const log = $('<ins class="difflog"/>').text(` [${info}] `);
+                            const cell = $('<td/>').append(log);
+                            const row = $('<tr/>').append(cell);
+                            curtable.append(row);
                         }
                     },
                     'json'
@@ -188,9 +193,12 @@ STUDIP.domReady(() => {
                     { mvv_field: 'mvv_' + mvv_type, mvv_id: mvv_id, log_action: 'del' },
                     function(data) {
                         if (data) {
-                            var info = 'Entfernt von ' + data.user + ' am ' + data.time;
+                            var info = $gettextInterpolate('Entfernt von %{user} am %{time}', data);
                             curtable.attr('title', info);
-                            curtable.append('<tr><td><del class="difflog"> [' + info + '] </del><td></tr>');
+                            const log = $('<del class="difflog"/>').text(` [${info}] `);
+                            const cell = $('<td/>').append(log);
+                            const row = $('<tr/>').append(cell);
+                            curtable.append(row);
                         }
                     },
                     'json'
diff --git a/resources/assets/javascripts/lib/gettext.js b/resources/assets/javascripts/lib/gettext.js
index 59768ed0f7ee21785bfaeaffde858ae731681403..699136fee2584b414085c482f50210b158cd34f3 100644
--- a/resources/assets/javascripts/lib/gettext.js
+++ b/resources/assets/javascripts/lib/gettext.js
@@ -8,8 +8,9 @@ const DEFAULT_LANG_NAME = 'Deutsch';
 const state = getInitialState();
 
 const $gettext = translate.gettext.bind(translate);
+const $gettextInterpolate = translate.gettextInterpolate.bind(translate);
 
-export { $gettext, translate, getLocale, setLocale, getVueConfig };
+export { $gettext, $gettextInterpolate, translate, getLocale, setLocale, getVueConfig };
 
 function getLocale() {
     return state.locale;