From 69671512754ca98438a72e239cb9ac28fef6d7f4 Mon Sep 17 00:00:00 2001 From: Henry Jameson Date: Fri, 13 Feb 2026 14:57:16 +0200 Subject: [PATCH] move language switch logic entirely into plugin --- src/lib/language.js | 16 ++++++++++++++++ src/stores/i18n.js | 19 ------------------- 2 files changed, 16 insertions(+), 19 deletions(-) diff --git a/src/lib/language.js b/src/lib/language.js index f8904dd07..f5c9be484 100644 --- a/src/lib/language.js +++ b/src/lib/language.js @@ -1,4 +1,11 @@ import { useI18nStore } from 'src/stores/i18n.js' +import { useEmojiStore } from 'src/stores/emoji.js' +import { useSyncConfigStore } from 'src/stores/sync_config.js' + +import messages from 'src/i18n/messages' +import localeService from 'src/services/locale/locale.service.js' + +const BACKEND_LANGUAGE_COOKIE_NAME = 'userLanguage' export const piniaLanguagePlugin = ({ store, options }) => { if (store.$id === 'sync_config') { @@ -7,6 +14,15 @@ export const piniaLanguagePlugin = ({ store, options }) => { const { path, value } = args[0] if (path === 'simple.interfaceLanguage') { useI18nStore().setLanguage(value) + const value = + originalValue || useSyncConfigStore().mergedConfig.interfaceLanguage + + messages.setLanguage(this.i18n, value) + useEmojiStore().loadUnicodeEmojiData(value) + Cookies.set( + BACKEND_LANGUAGE_COOKIE_NAME, + localeService.internalToBackendLocaleMulti(value), + ) } } }) diff --git a/src/stores/i18n.js b/src/stores/i18n.js index a18b1d4d2..fee09f4bd 100644 --- a/src/stores/i18n.js +++ b/src/stores/i18n.js @@ -1,14 +1,6 @@ import Cookies from 'js-cookie' import { defineStore } from 'pinia' -import { useEmojiStore } from 'src/stores/emoji.js' -import { useSyncConfigStore } from 'src/stores/sync_config.js' - -import messages from 'src/i18n/messages' -import localeService from 'src/services/locale/locale.service.js' - -const BACKEND_LANGUAGE_COOKIE_NAME = 'userLanguage' - export const useI18nStore = defineStore('i18n', { state: () => ({ i18n: null, @@ -19,16 +11,5 @@ export const useI18nStore = defineStore('i18n', { i18n: newI18n.global, }) }, - setLanguage(originalValue) { - const value = - originalValue || useSyncConfigStore().mergedConfig.interfaceLanguage - - messages.setLanguage(this.i18n, value) - useEmojiStore().loadUnicodeEmojiData(value) - Cookies.set( - BACKEND_LANGUAGE_COOKIE_NAME, - localeService.internalToBackendLocaleMulti(value), - ) - }, }, })