From 421d92f39576faebe627a458b11d8303a0a996d1 Mon Sep 17 00:00:00 2001
From: Patrizio Bekerle <patrizio.bekerle@tugraz.at>
Date: Wed, 30 Jun 2021 10:23:36 +0200
Subject: [PATCH] Fix broken language switch when moving in browser history
 (#59)

---
 packages/app-shell/src/app-shell.js | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/packages/app-shell/src/app-shell.js b/packages/app-shell/src/app-shell.js
index bf2bab5e..5e582b4f 100644
--- a/packages/app-shell/src/app-shell.js
+++ b/packages/app-shell/src/app-shell.js
@@ -44,6 +44,7 @@ export class AppShell extends ScopedElementsMixin(DBPLitElement) {
     constructor() {
         super();
         this.lang = i18n.language;
+        this.languages = [];
         this.activeView = '';
         this.entryPointUrl = '';
         this.subtitle = '';
@@ -270,8 +271,12 @@ export class AppShell extends ScopedElementsMixin(DBPLitElement) {
      * @param {string} lang
      */
     updateLangIfChanged(lang) {
+        // if the language is switched to English then i18n.languages is ['en'], instead of ['en', 'de']
+        // so we are now only adding new ones to this.languages
+        this.languages = Array.from(new Set(this.languages.concat(i18n.languages)));
+
         // in case the language is unknown, fall back to the default
-        if (!i18n.languages.includes(lang)) {
+        if (!this.languages.includes(lang)) {
             lang = this.lang;
         }
         if (this.lang !== lang) {
-- 
GitLab