From 7fd9ac34346383def277cbdd51d514cb806eb9e7 Mon Sep 17 00:00:00 2001
From: Jan-Hendrik Willms <tleilax+studip@gmail.com>
Date: Tue, 14 Feb 2023 18:53:33 +0000
Subject: [PATCH] set translations after locale has been set, fixes #2089

Closes #2089

Merge request studip/studip!1370
---
 .../javascripts/bootstrap/application.js      |  8 ++++--
 .../javascripts/bootstrap/multi_select.js     |  3 ++-
 .../cke/studip-a11y-dialog/a11y-dialog.js     |  2 +-
 resources/assets/javascripts/lib/calendar.js  | 27 ++++++++++++++-----
 resources/assets/javascripts/lib/forum.js     |  7 ++++-
 5 files changed, 35 insertions(+), 12 deletions(-)

diff --git a/resources/assets/javascripts/bootstrap/application.js b/resources/assets/javascripts/bootstrap/application.js
index d9175d3752f..4802091dbf7 100644
--- a/resources/assets/javascripts/bootstrap/application.js
+++ b/resources/assets/javascripts/bootstrap/application.js
@@ -1,4 +1,5 @@
 import { $gettext } from '../lib/gettext.js';
+import eventBus from "../lib/event-bus";
 
 /* ------------------------------------------------------------------------
  * application.js
@@ -180,11 +181,14 @@ jQuery.ui.accordion.prototype.options.icons = {
     header: 'arrow_right',
     activeHeader: 'arrow_down'
 };
-jQuery.extend(jQuery.ui.dialog.prototype.options, {
-    closeText: $gettext('Schließen')
+eventBus.on('studip:set-locale', () => {
+    jQuery.extend(jQuery.ui.dialog.prototype.options, {
+        closeText: $gettext('Schließen')
+    });
 });
 
 
+
 /* ------------------------------------------------------------------------
  * jQuery timepicker
  * ------------------------------------------------------------------------ */
diff --git a/resources/assets/javascripts/bootstrap/multi_select.js b/resources/assets/javascripts/bootstrap/multi_select.js
index 6e033af6c1b..38fa362d61f 100644
--- a/resources/assets/javascripts/bootstrap/multi_select.js
+++ b/resources/assets/javascripts/bootstrap/multi_select.js
@@ -1,6 +1,7 @@
 import { $gettext } from '../lib/gettext.js';
+import eventBus from "../lib/event-bus";
 
-STUDIP.domReady(() => {
+eventBus.on('studip:set-locale', () => {
     $.extend($.ui.multiselect, {
         locale: {
             addAll: $gettext('Alle hinzufügen'),
diff --git a/resources/assets/javascripts/cke/studip-a11y-dialog/a11y-dialog.js b/resources/assets/javascripts/cke/studip-a11y-dialog/a11y-dialog.js
index 133a6baa806..1cef6184743 100644
--- a/resources/assets/javascripts/cke/studip-a11y-dialog/a11y-dialog.js
+++ b/resources/assets/javascripts/cke/studip-a11y-dialog/a11y-dialog.js
@@ -6,7 +6,7 @@ import A11YDialogUI from './ui.js';
 
 export function updateVoiceLabel() {
     add('de', {
-        'Rich Text Editor': $gettext('Rich Text Editor (Um Bedienhinweise zu erhalten, drücken Sie ALT+0 im Eingabefeld.)'),
+        'Rich Text Editor': 'Rich Text Editor (Um Bedienhinweise zu erhalten, drücken Sie ALT+0 im Eingabefeld.)',
     });
 }
 
diff --git a/resources/assets/javascripts/lib/calendar.js b/resources/assets/javascripts/lib/calendar.js
index a693f6cf781..bfe00543b73 100644
--- a/resources/assets/javascripts/lib/calendar.js
+++ b/resources/assets/javascripts/lib/calendar.js
@@ -1,4 +1,17 @@
 import { $gettext } from '../lib/gettext.js';
+import eventBus from "./event-bus";
+
+eventBus.on('studip:set-locale', () => {
+    Calendar.day_names = [
+        $gettext('Montag'),
+        $gettext('Dienstag'),
+        $gettext('Mittwoch'),
+        $gettext('Donnerstag'),
+        $gettext('Freitag'),
+        $gettext('Samstag'),
+        $gettext('Sonntag'),
+    ];
+});
 
 /* ------------------------------------------------------------------------
  * calendar gui
@@ -12,13 +25,13 @@ const Calendar = {
     click_in_progress: false,
 
     day_names: [
-        $gettext('Montag'),
-        $gettext('Dienstag'),
-        $gettext('Mittwoch'),
-        $gettext('Donnerstag'),
-        $gettext('Freitag'),
-        $gettext('Samstag'),
-        $gettext('Sonntag')
+        'Montag',
+        'Dienstag',
+        'Mittwoch',
+        'Donnerstag',
+        'Freitag',
+        'Samstag',
+        'Sonntag',
     ],
 
     /**
diff --git a/resources/assets/javascripts/lib/forum.js b/resources/assets/javascripts/lib/forum.js
index 776352720f2..1ff2bf50044 100644
--- a/resources/assets/javascripts/lib/forum.js
+++ b/resources/assets/javascripts/lib/forum.js
@@ -1,11 +1,16 @@
 import { $gettext } from "./gettext.js";
+import eventBus from "./event-bus";
+
+eventBus.on('studip:set-locale', () => {
+    Forum.warning_text = $gettext('Wenn Sie die Seite verlassen, gehen ihre Änderungen verloren!');
+});
 
 const Forum = {
     confirmDialog: null,
     current_area_id: null,
     current_category_id: null,
     seminar_id: null,
-    warning_text: $gettext('Wenn Sie die Seite verlassen, gehen ihre Änderungen verloren!'),
+    warning_text: 'Wenn Sie die Seite verlassen, gehen ihre Änderungen verloren!',
     clipboard: {},
 
     getTemplate: _.memoize(function(name) {
-- 
GitLab