diff --git a/aleksis/core/frontend/app/i18n.js b/aleksis/core/frontend/app/i18n.js index ed50743eddf2d7fe306b9fe1116ef17fc914911d..a345a13c457ca979a1a2cee7319d82f46cb67ca2 100644 --- a/aleksis/core/frontend/app/i18n.js +++ b/aleksis/core/frontend/app/i18n.js @@ -5,7 +5,6 @@ import dateTimeFormats from "./dateTimeFormats.js"; const i18nOpts = { - locale: "en", fallbackLocale: "en", messages: {}, dateTimeFormats, diff --git a/aleksis/core/frontend/components/app/App.vue b/aleksis/core/frontend/components/app/App.vue index da681615b320f70c3ac3c494bc12f1d70cd1d7f9..8896f20785f8992c81e5cecf4488536b9d29caf8 100644 --- a/aleksis/core/frontend/components/app/App.vue +++ b/aleksis/core/frontend/components/app/App.vue @@ -244,8 +244,6 @@ export default { }, watch: { systemProperties: function (newProperties) { - this.$i18n.locale = newProperties.currentLanguage; - this.$vuetify.lang.current = newProperties.currentLanguage; this.$vuetify.theme.themes.light.primary = newProperties.sitePreferences.themePrimary; this.$vuetify.theme.themes.light.secondary = diff --git a/aleksis/core/frontend/components/app/systemProperties.graphql b/aleksis/core/frontend/components/app/systemProperties.graphql index e599cf04694c79a0bd7d1a38dd7f9bb0bd80a4ae..35dc824fd3ec64f090615ebc4a484cf9c3a70911 100644 --- a/aleksis/core/frontend/components/app/systemProperties.graphql +++ b/aleksis/core/frontend/components/app/systemProperties.graphql @@ -5,7 +5,6 @@ nameTranslated cookie } - currentLanguage sitePreferences { themePrimary themeSecondary diff --git a/aleksis/core/frontend/index.js b/aleksis/core/frontend/index.js index ef66ecf6576ed1d7d4581639a65b5607c7a75dc5..25df11b343a0708bbb6a1a378cfa1b17ab154749 100644 --- a/aleksis/core/frontend/index.js +++ b/aleksis/core/frontend/index.js @@ -9,6 +9,7 @@ import Vuetify from "@/vuetify"; import VueI18n from "@/vue-i18n"; import VueRouter from "@/vue-router"; import VueApollo from "@/vue-apollo"; +import VueCookies from "@/vue-cookies"; import AleksisVue from "./plugins/aleksis.js"; @@ -26,6 +27,7 @@ Vue.use(Vuetify); Vue.use(VueI18n); Vue.use(VueRouter); Vue.use(VueApollo); +Vue.use(VueCookies); // All of these imports yield config objects to be passed to the plugin constructors import vuetifyOpts from "./app/vuetify.js"; @@ -33,8 +35,20 @@ import i18nOpts from "./app/i18n.js"; import routerOpts from "./app/router.js"; import apolloOpts from "./app/apollo.js"; -const i18n = new VueI18n(i18nOpts); -const vuetify = new Vuetify(vuetifyOpts); +const i18n = new VueI18n({ + locale: Vue.$cookies.get("django_language") + ? Vue.$cookies.get("django_language") + : "en", + ...i18nOpts, +}); +const vuetify = new Vuetify({ + lang: { + current: Vue.$cookies.get("django_language") + ? Vue.$cookies.get("django_language") + : "en", + }, + ...vuetifyOpts, +}); const router = new VueRouter(routerOpts); const apolloProvider = new VueApollo(apolloOpts); diff --git a/aleksis/core/settings.py b/aleksis/core/settings.py index 44d440510a4e21af4006d26a2763d6f86d4ae3d7..842583fe2b880c6bf98ab89dbdb96b461f8ac574 100644 --- a/aleksis/core/settings.py +++ b/aleksis/core/settings.py @@ -587,6 +587,7 @@ YARN_INSTALLED_APPS = [ "vue-apollo@^3.1.0", "vuetify@^2.6.7", "vue-router@^3.5.2", + "vue-cookies@^1.8.2", "vite@^4.0.1", "vite-plugin-pwa@^0.14.1", "vite-plugin-top-level-await@^1.2.2",