feat: add translation

This commit is contained in:
carla 2025-08-06 12:42:17 +02:00
parent ddf9348eb8
commit 2a6f1ccf80
12 changed files with 260 additions and 38 deletions

View file

@ -1,5 +1,6 @@
defmodule MvWeb.AuthOverrides do
use AshAuthentication.Phoenix.Overrides
use Gettext, backend: MvWeb.Gettext
# configure your UI overrides here
@ -14,12 +15,22 @@ defmodule MvWeb.AuthOverrides do
# set :text_class, "bg-red-500"
# end
override AshAuthentication.Phoenix.Components.SignIn do
# Avoid full-width for the Sign In Form
override AshAuthentication.Phoenix.Components.SignIn do
set :root_class, "min-w-md"
end
end
override AshAuthentication.Phoenix.Components.Banner do
# Replace banner logo with text
override AshAuthentication.Phoenix.Components.Banner do
set :text, "Mitgliederverwaltung"
set :image_url, nil
end
end
# Translate the or in the horizontal rule to German
override AshAuthentication.Phoenix.Components.HorizontalRule do
set :text,
Gettext.with_locale(MvWeb.Gettext, "de", fn ->
Gettext.gettext(MvWeb.Gettext, "or")
end)
end
end

View file

@ -1,5 +1,5 @@
<!DOCTYPE html>
<html lang="en">
<html lang={Gettext.get_locale()}>
<head>
{Application.get_env(:live_debugger, :live_debugger_tags)}

View file

@ -1,6 +1,6 @@
defmodule MvWeb.LiveHelpers do
def on_mount(:default, _params, session, socket) do
locale = session["locale"] || "en"
locale = session["locale"] || "de"
Gettext.put_locale(locale)
{:cont, socket}
end

View file

@ -37,6 +37,9 @@ defmodule MvWeb.LiveUserAuth do
end
def on_mount(:live_no_user, _params, _session, socket) do
Gettext.put_locale(MvWeb.Gettext, "de")
{:cont, assign(socket, :locale, "de")}
if socket.assigns[:current_user] do
{:halt, Phoenix.LiveView.redirect(socket, to: ~p"/")}
else

View file

@ -85,19 +85,19 @@ defmodule MvWeb.Router do
reset_path: "/reset",
auth_routes_prefix: "/auth",
on_mount: [{MvWeb.LiveUserAuth, :live_no_user}],
overrides: [MvWeb.AuthOverrides, AshAuthentication.Phoenix.Overrides.Default],
gettext_backend: {MvWeb.Gettext, "default"}
overrides: [MvWeb.AuthOverrides, AshAuthentication.Phoenix.Overrides.DaisyUI],
gettext_backend: {MvWeb.Gettext, "auth"}
# Remove this if you do not want to use the reset password feature
reset_route auth_routes_prefix: "/auth",
overrides: [MvWeb.AuthOverrides, AshAuthentication.Phoenix.Overrides.Default],
gettext_backend: {MvWeb.Gettext, "default"}
overrides: [MvWeb.AuthOverrides, AshAuthentication.Phoenix.Overrides.DaisyUI],
gettext_backend: {MvWeb.Gettext, "auth"}
# Remove this if you do not use the confirmation strategy
confirm_route Mv.Accounts.User, :confirm_new_user,
auth_routes_prefix: "/auth",
overrides: [MvWeb.AuthOverrides, AshAuthentication.Phoenix.Overrides.Default],
gettext_backend: {MvWeb.Gettext, "default"}
overrides: [MvWeb.AuthOverrides, AshAuthentication.Phoenix.Overrides.DaisyUI],
gettext_backend: {MvWeb.Gettext, "auth"}
# Remove this if you do not use the magic link strategy.
# magic_sign_in_route(Mv.Accounts.User, :magic_link,
@ -139,7 +139,7 @@ defmodule MvWeb.Router do
end
defp set_locale(conn, _opts) do
locale = get_session(conn, :locale) || "en"
locale = get_session(conn, :locale) || "de"
Gettext.put_locale(MvWeb.Gettext, locale)
conn
end