From 7150c824a277457c33680e6f6925d7a49e428232 Mon Sep 17 00:00:00 2001
From: Konrad Mohrfeldt <konrad.mohrfeldt@farbdev.org>
Date: Wed, 1 Nov 2023 18:09:56 +0100
Subject: [PATCH] feat: store selected locale in localStorage

---
 src/i18n/index.ts | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/src/i18n/index.ts b/src/i18n/index.ts
index 6f3499f4..fbe8e344 100644
--- a/src/i18n/index.ts
+++ b/src/i18n/index.ts
@@ -2,7 +2,10 @@ import Polyglot from 'node-polyglot'
 import { App, computed, reactive } from 'vue'
 import { has } from '@/utilities'
 
-const DEFAULT_LOCALE = import.meta.env.VUE_APP_DEFAULT_LOCALE ?? 'de'
+const STORAGE_KEY = 'aura:locale'
+
+const DEFAULT_LOCALE =
+  localStorage.getItem(STORAGE_KEY) ?? import.meta.env.VUE_APP_DEFAULT_LOCALE ?? 'de'
 
 const locales = Object.fromEntries(
   Object.entries(import.meta.glob('./??.js', { import: 'default', eager: true })).map(
@@ -44,6 +47,7 @@ function updateLocale(newLocale: string): void {
   if (has(locales, newLocale)) {
     state.locale = newLocale
     state.polyglot = createPolyglot(newLocale)
+    localStorage.setItem(STORAGE_KEY, newLocale)
   } else {
     throw new Error(`Unknown locale code for language: ${newLocale}`)
   }
-- 
GitLab