diff --git a/Justfile b/Justfile index 21e54fb..1874b67 100644 --- a/Justfile +++ b/Justfile @@ -23,7 +23,7 @@ ci-dev: lint audit test gettext: mix gettext.extract - mix gettext.merge priv/gettext + mix gettext.merge priv/gettext --on-obsolete=mark_as_obsolete lint: mix format --check-formatted diff --git a/lib/mv_web/auth_overrides.ex b/lib/mv_web/auth_overrides.ex index fab8653..367982e 100644 --- a/lib/mv_web/auth_overrides.ex +++ b/lib/mv_web/auth_overrides.ex @@ -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 diff --git a/lib/mv_web/components/layouts/root.html.heex b/lib/mv_web/components/layouts/root.html.heex index 5ee0fef..e1b639d 100644 --- a/lib/mv_web/components/layouts/root.html.heex +++ b/lib/mv_web/components/layouts/root.html.heex @@ -1,5 +1,5 @@ - + {Application.get_env(:live_debugger, :live_debugger_tags)} diff --git a/lib/mv_web/live_helpers.ex b/lib/mv_web/live_helpers.ex index 03d7d45..331bb5c 100644 --- a/lib/mv_web/live_helpers.ex +++ b/lib/mv_web/live_helpers.ex @@ -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 diff --git a/lib/mv_web/live_user_auth.ex b/lib/mv_web/live_user_auth.ex index 67bef70..d211245 100644 --- a/lib/mv_web/live_user_auth.ex +++ b/lib/mv_web/live_user_auth.ex @@ -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 diff --git a/lib/mv_web/router.ex b/lib/mv_web/router.ex index 696a491..82e9f00 100644 --- a/lib/mv_web/router.ex +++ b/lib/mv_web/router.ex @@ -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 diff --git a/priv/gettext/auth.pot b/priv/gettext/auth.pot new file mode 100644 index 0000000..29ee991 --- /dev/null +++ b/priv/gettext/auth.pot @@ -0,0 +1,64 @@ +## This file is a PO Template file. +## +## "msgid"s here are often extracted from source code. +## Add new messages manually only if they're dynamic +## messages that can't be statically extracted. +## +## Leave "msgstr"s empty as changing them here has no +## effect: edit them in PO (.po) files instead. +# +msgid "" +msgstr "" +"Language: en\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +msgid "Already have an account?" +msgstr "" + +msgid "Email or password was incorrect" +msgstr "" + +msgid "Email" +msgstr "" + +msgid "Forgot your password?" +msgstr "" + +msgid "If this user exists in our database you will contacted with a sign-in link shortly." +msgstr "" + +msgid "If this user exists in our system, you will be contacted with reset instructions shortly." +msgstr "" + +msgid "Need an account?" +msgstr "" + +msgid "Password" +msgstr "" + +msgid "Password Confirmation" +msgstr "" + +msgid "Request magic link" +msgstr "" + +msgid "Request password reset token" +msgstr "" + +msgid "Requesting ..." +msgstr "" + +msgid "Reset password with token" +msgstr "" + +msgid "Sign in" +msgstr "" + +msgid "Signing in ..." +msgstr "" + +msgid "Your password has successfully been reset" +msgstr "" diff --git a/priv/gettext/de/LC_MESSAGES/auth.po b/priv/gettext/de/LC_MESSAGES/auth.po new file mode 100644 index 0000000..0f2202d --- /dev/null +++ b/priv/gettext/de/LC_MESSAGES/auth.po @@ -0,0 +1,66 @@ +## "msgid"s in this file come from POT (.pot) files. +### +### Do not add, change, or remove "msgid"s manually here as +### they're tied to the ones in the corresponding POT file +### (with the same domain). +### +### Use "mix gettext.extract --merge" or "mix gettext.merge" +### to merge POT files into PO files. +msgid "" +msgstr "" +"Language: de\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +msgid "Already have an account?" +msgstr "Bereit zum Anmelden?" + +msgid "Email or password was incorrect" +msgstr "Email oder Passwort nicht korrekt" + +msgid "Email" +msgstr "Email" + +msgid "Forgot your password?" +msgstr "Passwort vergessen?" + +msgid "If this user exists in our database you will contacted with a sign-in link shortly." +msgstr "Falls dieser Benutzer bekannt ist, wird jetzt eine Email mit Anmelde-Link versendet." + +msgid "If this user exists in our system, you will be contacted with reset instructions shortly." +msgstr "Falls dieser Benutzer bekannt ist, wird jetzt eine Email mit einer Anleitung zum Zurücksetzen versendet." + +msgid "Need an account?" +msgstr "Konto anlegen?" + +msgid "Password" +msgstr "Passwort" + +msgid "Password Confirmation" +msgstr "Passwort Wiederholung" + +msgid "Request magic link" +msgstr "Magischen Link anfordern" + +msgid "Request password reset token" +msgstr "Passwort zurücksetzen" + +msgid "Requesting ..." +msgstr "Anfrage låuft..." + +msgid "Reset password with token" +msgstr "Neues Passwort setzen" + +msgid "Sign in" +msgstr "Anmelden" + +msgid "Signing in ..." +msgstr "Anmelden..." + +msgid "Your password has successfully been reset" +msgstr "Das Passwort wurde erfolgreich zurückgesetzt" + +msgid "Sign in with Rauthy" +msgstr "Anmelden mit der Vereinscloud" diff --git a/priv/gettext/de/LC_MESSAGES/default.po b/priv/gettext/de/LC_MESSAGES/default.po index 45723e7..1a7cf7e 100644 --- a/priv/gettext/de/LC_MESSAGES/default.po +++ b/priv/gettext/de/LC_MESSAGES/default.po @@ -16,7 +16,7 @@ msgid "Actions" msgstr "Aktionen" #: lib/mv_web/live/member_live/index.html.heex:77 -#: lib/mv_web/live/user_live/index.html.heex:69 +#: lib/mv_web/live/user_live/index.html.heex:65 #, elixir-autogen, elixir-format msgid "Are you sure?" msgstr "Bist du sicher?" @@ -35,14 +35,14 @@ msgid "City" msgstr "Stadt" #: lib/mv_web/live/member_live/index.html.heex:79 -#: lib/mv_web/live/user_live/index.html.heex:71 +#: lib/mv_web/live/user_live/index.html.heex:67 #, elixir-autogen, elixir-format msgid "Delete" msgstr "Löschen" #: lib/mv_web/live/member_live/index.html.heex:71 #: lib/mv_web/live/user_live/form.ex:109 -#: lib/mv_web/live/user_live/index.html.heex:63 +#: lib/mv_web/live/user_live/index.html.heex:59 #, elixir-autogen, elixir-format msgid "Edit" msgstr "Bearbeite" @@ -57,7 +57,7 @@ msgstr "Mitglied bearbeiten" #: lib/mv_web/live/member_live/index.html.heex:58 #: lib/mv_web/live/member_live/show.ex:27 #: lib/mv_web/live/user_live/form.ex:14 -#: lib/mv_web/live/user_live/index.html.heex:48 +#: lib/mv_web/live/user_live/index.html.heex:44 #: lib/mv_web/live/user_live/show.ex:24 #, elixir-autogen, elixir-format msgid "Email" @@ -88,7 +88,7 @@ msgid "New Member" msgstr "Neues Mitglied" #: lib/mv_web/live/member_live/index.html.heex:68 -#: lib/mv_web/live/user_live/index.html.heex:60 +#: lib/mv_web/live/user_live/index.html.heex:56 #, elixir-autogen, elixir-format msgid "Show" msgstr "Anzeigen" @@ -351,7 +351,7 @@ msgstr "Nicht gesetzt" msgid "Note" msgstr "Hinweis" -#: lib/mv_web/live/user_live/index.html.heex:56 +#: lib/mv_web/live/user_live/index.html.heex:52 #: lib/mv_web/live/user_live/show.ex:25 #, elixir-autogen, elixir-format msgid "OIDC ID" @@ -533,12 +533,12 @@ msgstr "Passwort" msgid "Password requirements" msgstr "Passwort-Anforderungen" -#: lib/mv_web/live/user_live/index.html.heex:25 +#: lib/mv_web/live/user_live/index.html.heex:21 #, elixir-autogen, elixir-format msgid "Select all users" msgstr "Alle Benutzer auswählen" -#: lib/mv_web/live/user_live/index.html.heex:39 +#: lib/mv_web/live/user_live/index.html.heex:35 #, elixir-autogen, elixir-format msgid "Select user" msgstr "Benutzer auswählen" @@ -552,3 +552,8 @@ msgstr "Passwort setzen" #, elixir-autogen, elixir-format msgid "User will be created without a password. Check 'Set Password' to add one." msgstr "Benutzer wird ohne Passwort erstellt. Aktivieren Sie 'Passwort setzen', um eines hinzuzufügen." + +#: lib/mv_web/auth_overrides.ex:30 +#, elixir-autogen, elixir-format +msgid "or" +msgstr "oder" diff --git a/priv/gettext/default.pot b/priv/gettext/default.pot index fd064d2..a9bfb08 100644 --- a/priv/gettext/default.pot +++ b/priv/gettext/default.pot @@ -17,7 +17,7 @@ msgid "Actions" msgstr "" #: lib/mv_web/live/member_live/index.html.heex:77 -#: lib/mv_web/live/user_live/index.html.heex:69 +#: lib/mv_web/live/user_live/index.html.heex:65 #, elixir-autogen, elixir-format msgid "Are you sure?" msgstr "" @@ -36,14 +36,14 @@ msgid "City" msgstr "" #: lib/mv_web/live/member_live/index.html.heex:79 -#: lib/mv_web/live/user_live/index.html.heex:71 +#: lib/mv_web/live/user_live/index.html.heex:67 #, elixir-autogen, elixir-format msgid "Delete" msgstr "" #: lib/mv_web/live/member_live/index.html.heex:71 #: lib/mv_web/live/user_live/form.ex:109 -#: lib/mv_web/live/user_live/index.html.heex:63 +#: lib/mv_web/live/user_live/index.html.heex:59 #, elixir-autogen, elixir-format msgid "Edit" msgstr "" @@ -58,7 +58,7 @@ msgstr "" #: lib/mv_web/live/member_live/index.html.heex:58 #: lib/mv_web/live/member_live/show.ex:27 #: lib/mv_web/live/user_live/form.ex:14 -#: lib/mv_web/live/user_live/index.html.heex:48 +#: lib/mv_web/live/user_live/index.html.heex:44 #: lib/mv_web/live/user_live/show.ex:24 #, elixir-autogen, elixir-format msgid "Email" @@ -89,7 +89,7 @@ msgid "New Member" msgstr "" #: lib/mv_web/live/member_live/index.html.heex:68 -#: lib/mv_web/live/user_live/index.html.heex:60 +#: lib/mv_web/live/user_live/index.html.heex:56 #, elixir-autogen, elixir-format msgid "Show" msgstr "" @@ -352,7 +352,7 @@ msgstr "" msgid "Note" msgstr "" -#: lib/mv_web/live/user_live/index.html.heex:56 +#: lib/mv_web/live/user_live/index.html.heex:52 #: lib/mv_web/live/user_live/show.ex:25 #, elixir-autogen, elixir-format msgid "OIDC ID" @@ -534,12 +534,12 @@ msgstr "" msgid "Password requirements" msgstr "" -#: lib/mv_web/live/user_live/index.html.heex:25 +#: lib/mv_web/live/user_live/index.html.heex:21 #, elixir-autogen, elixir-format msgid "Select all users" msgstr "" -#: lib/mv_web/live/user_live/index.html.heex:39 +#: lib/mv_web/live/user_live/index.html.heex:35 #, elixir-autogen, elixir-format msgid "Select user" msgstr "" @@ -553,3 +553,8 @@ msgstr "" #, elixir-autogen, elixir-format msgid "User will be created without a password. Check 'Set Password' to add one." msgstr "" + +#: lib/mv_web/auth_overrides.ex:30 +#, elixir-autogen, elixir-format +msgid "or" +msgstr "" diff --git a/priv/gettext/en/LC_MESSAGES/auth.po b/priv/gettext/en/LC_MESSAGES/auth.po new file mode 100644 index 0000000..1e4e801 --- /dev/null +++ b/priv/gettext/en/LC_MESSAGES/auth.po @@ -0,0 +1,63 @@ +## "msgid"s in this file come from POT (.pot) files. +### +### Do not add, change, or remove "msgid"s manually here as +### they're tied to the ones in the corresponding POT file +### (with the same domain). +### +### Use "mix gettext.extract --merge" or "mix gettext.merge" +### to merge POT files into PO files. +msgid "" +msgstr "" +"Language: en\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +msgid "Already have an account?" +msgstr "" + +msgid "Email or password was incorrect" +msgstr "" + +msgid "Email" +msgstr "" + +msgid "Forgot your password?" +msgstr "" + +msgid "If this user exists in our database you will contacted with a sign-in link shortly." +msgstr "" + +msgid "If this user exists in our system, you will be contacted with reset instructions shortly." +msgstr "" + +msgid "Need an account?" +msgstr "" + +msgid "Password" +msgstr "" + +msgid "Password Confirmation" +msgstr "" + +msgid "Request magic link" +msgstr "" + +msgid "Request password reset token" +msgstr "" + +msgid "Requesting ..." +msgstr "" + +msgid "Reset password with token" +msgstr "" + +msgid "Sign in" +msgstr "" + +msgid "Signing in ..." +msgstr "" + +msgid "Your password has successfully been reset" +msgstr "" + +msgid "Sign in with Rauthy" +msgstr "Sign in with Vereinscloud" diff --git a/priv/gettext/en/LC_MESSAGES/default.po b/priv/gettext/en/LC_MESSAGES/default.po index 41a35b4..2f09378 100644 --- a/priv/gettext/en/LC_MESSAGES/default.po +++ b/priv/gettext/en/LC_MESSAGES/default.po @@ -17,7 +17,7 @@ msgid "Actions" msgstr "" #: lib/mv_web/live/member_live/index.html.heex:77 -#: lib/mv_web/live/user_live/index.html.heex:69 +#: lib/mv_web/live/user_live/index.html.heex:65 #, elixir-autogen, elixir-format msgid "Are you sure?" msgstr "" @@ -36,14 +36,14 @@ msgid "City" msgstr "" #: lib/mv_web/live/member_live/index.html.heex:79 -#: lib/mv_web/live/user_live/index.html.heex:71 +#: lib/mv_web/live/user_live/index.html.heex:67 #, elixir-autogen, elixir-format msgid "Delete" msgstr "" #: lib/mv_web/live/member_live/index.html.heex:71 #: lib/mv_web/live/user_live/form.ex:109 -#: lib/mv_web/live/user_live/index.html.heex:63 +#: lib/mv_web/live/user_live/index.html.heex:59 #, elixir-autogen, elixir-format msgid "Edit" msgstr "" @@ -58,7 +58,7 @@ msgstr "" #: lib/mv_web/live/member_live/index.html.heex:58 #: lib/mv_web/live/member_live/show.ex:27 #: lib/mv_web/live/user_live/form.ex:14 -#: lib/mv_web/live/user_live/index.html.heex:48 +#: lib/mv_web/live/user_live/index.html.heex:44 #: lib/mv_web/live/user_live/show.ex:24 #, elixir-autogen, elixir-format msgid "Email" @@ -89,7 +89,7 @@ msgid "New Member" msgstr "" #: lib/mv_web/live/member_live/index.html.heex:68 -#: lib/mv_web/live/user_live/index.html.heex:60 +#: lib/mv_web/live/user_live/index.html.heex:56 #, elixir-autogen, elixir-format msgid "Show" msgstr "" @@ -352,7 +352,7 @@ msgstr "" msgid "Note" msgstr "" -#: lib/mv_web/live/user_live/index.html.heex:56 +#: lib/mv_web/live/user_live/index.html.heex:52 #: lib/mv_web/live/user_live/show.ex:25 #, elixir-autogen, elixir-format msgid "OIDC ID" @@ -534,12 +534,12 @@ msgstr "Password" msgid "Password requirements" msgstr "Password requirements" -#: lib/mv_web/live/user_live/index.html.heex:25 +#: lib/mv_web/live/user_live/index.html.heex:21 #, elixir-autogen, elixir-format, fuzzy msgid "Select all users" msgstr "" -#: lib/mv_web/live/user_live/index.html.heex:39 +#: lib/mv_web/live/user_live/index.html.heex:35 #, elixir-autogen, elixir-format, fuzzy msgid "Select user" msgstr "" @@ -553,3 +553,8 @@ msgstr "Set Password" #, elixir-autogen, elixir-format msgid "User will be created without a password. Check 'Set Password' to add one." msgstr "User will be created without a password. Check 'Set Password' to add one." + +#: lib/mv_web/auth_overrides.ex:30 +#, elixir-autogen, elixir-format +msgid "or" +msgstr ""