add translation

This commit is contained in:
Moritz 2025-11-06 11:33:09 +01:00 committed by moritz
parent 527657d37b
commit 4ba03821a2
9 changed files with 426 additions and 121 deletions

View file

@ -29,13 +29,13 @@ defmodule MvWeb.LinkOidcAccountLive do
{:error, _} ->
{:ok,
socket
|> put_flash(:error, gettext("Session expired. Please try again."))
|> put_flash(:error, dgettext("auth", "Session expired. Please try again."))
|> redirect(to: ~p"/sign-in")}
end
else
{:ok,
socket
|> put_flash(:error, gettext("Invalid session. Please try again."))
|> put_flash(:error, dgettext("auth", "Invalid session. Please try again."))
|> redirect(to: ~p"/sign-in")}
end
end
@ -60,7 +60,7 @@ defmodule MvWeb.LinkOidcAccountLive do
# Password incorrect
{:noreply,
socket
|> assign(:error, gettext("Incorrect password. Please try again."))
|> assign(:error, dgettext("auth", "Incorrect password. Please try again."))
|> assign(:form, to_form(%{"password" => ""}))}
end
end
@ -103,7 +103,8 @@ defmodule MvWeb.LinkOidcAccountLive do
socket
|> put_flash(
:info,
gettext(
dgettext(
"auth",
"Your OIDC account has been successfully linked! Redirecting to complete sign-in..."
)
)
@ -112,7 +113,10 @@ defmodule MvWeb.LinkOidcAccountLive do
{:error, error} ->
{:noreply,
socket
|> assign(:error, gettext("Failed to link account: %{error}", error: inspect(error)))
|> assign(
:error,
dgettext("auth", "Failed to link account: %{error}", error: inspect(error))
)
|> assign(:form, to_form(%{"password" => ""}))}
end
end
@ -121,10 +125,26 @@ defmodule MvWeb.LinkOidcAccountLive do
def render(assigns) do
~H"""
<div class="mx-auto max-w-sm mt-16">
<%!-- Language Selector --%>
<div class="flex justify-center mb-4">
<form method="post" action="/set_locale" class="text-sm">
<input type="hidden" name="_csrf_token" value={Plug.CSRFProtection.get_csrf_token()} />
<select
name="locale"
onchange="this.form.submit()"
class="select select-sm select-bordered"
>
<option value="de" selected={Gettext.get_locale() == "de"}>🇩🇪 Deutsch</option>
<option value="en" selected={Gettext.get_locale() == "en"}>🇬🇧 English</option>
</select>
</form>
</div>
<.header class="text-center">
{gettext("Link OIDC Account")}
{dgettext("auth", "Link OIDC Account")}
<:subtitle>
{gettext(
{dgettext(
"auth",
"An account with email %{email} already exists. Please enter your password to link your OIDC account.",
email: @user.email
)}
@ -134,7 +154,12 @@ defmodule MvWeb.LinkOidcAccountLive do
<.form for={@form} id="link-oidc-form" phx-submit="submit" phx-change="validate" class="mt-8">
<div class="space-y-6">
<div>
<.input field={@form[:password]} type="password" label={gettext("Password")} required />
<.input
field={@form[:password]}
type="password"
label={dgettext("auth", "Password")}
required
/>
</div>
<%= if @error do %>
@ -144,8 +169,8 @@ defmodule MvWeb.LinkOidcAccountLive do
<% end %>
<div>
<.button phx-disable-with={gettext("Linking...")} class="w-full">
{gettext("Link Account")}
<.button phx-disable-with={dgettext("auth", "Linking...")} class="w-full">
{dgettext("auth", "Link Account")}
</.button>
</div>
</div>
@ -153,7 +178,7 @@ defmodule MvWeb.LinkOidcAccountLive do
<div class="mt-4 text-center text-sm">
<.link navigate={~p"/sign-in"} class="text-brand hover:underline">
{gettext("Cancel")}
{dgettext("auth", "Cancel")}
</.link>
</div>
</div>