From df51731ae88124b0705bdf84317d3078ed8d98bb Mon Sep 17 00:00:00 2001 From: carla Date: Wed, 16 Jul 2025 15:21:57 +0200 Subject: [PATCH] fix: added SetLocale to update LiveViews if language changes --- lib/mv_web/live/set_locale.ex | 13 +++++++++++++ lib/mv_web/router.ex | 2 +- 2 files changed, 14 insertions(+), 1 deletion(-) create mode 100644 lib/mv_web/live/set_locale.ex diff --git a/lib/mv_web/live/set_locale.ex b/lib/mv_web/live/set_locale.ex new file mode 100644 index 0000000..bc8625d --- /dev/null +++ b/lib/mv_web/live/set_locale.ex @@ -0,0 +1,13 @@ +defmodule MvWeb.Live.SetLocale do + @moduledoc """ + The Module to make the locale available to all LiveViews + """ + import Phoenix.Component + import MvWeb.Gettext + + def on_mount(:default, _params, session, socket) do + locale = session["locale"] || "en" + Gettext.put_locale(locale) + {:cont, assign(socket, :locale, locale)} + end +end diff --git a/lib/mv_web/router.ex b/lib/mv_web/router.ex index 75210b0..e58223e 100644 --- a/lib/mv_web/router.ex +++ b/lib/mv_web/router.ex @@ -46,7 +46,7 @@ defmodule MvWeb.Router do AshAuthentication-specific: We define that all routes can only be accessed when the user is signed in. """ ash_authentication_live_session :authentication_required, - on_mount: {MvWeb.LiveUserAuth, :live_user_required} do + on_mount: [{MvWeb.Live.SetLocale, :default}, {MvWeb.LiveUserAuth, :live_user_required}] do get "/", PageController, :home live "/members", MemberLive.Index, :index