This commit is contained in:
parent
ca4ac3a1c0
commit
dedd40b949
8 changed files with 73 additions and 13 deletions
|
|
@ -1,6 +1,4 @@
|
|||
defmodule MvWeb.LiveHelpers do
|
||||
import Phoenix.LiveView
|
||||
|
||||
def on_mount(:default, _params, session, socket) do
|
||||
locale = session["locale"] || "en"
|
||||
Gettext.put_locale(locale)
|
||||
|
|
|
|||
|
|
@ -26,7 +26,9 @@ defmodule MvWeb.MemberLive.FormComponent do
|
|||
<div>
|
||||
<.header>
|
||||
{@title}
|
||||
<:subtitle>{gettext("Use this form to manage member records and their properties.")}</:subtitle>
|
||||
<:subtitle>
|
||||
{gettext("Use this form to manage member records and their properties.")}
|
||||
</:subtitle>
|
||||
</.header>
|
||||
|
||||
<.simple_form
|
||||
|
|
@ -104,7 +106,7 @@ defmodule MvWeb.MemberLive.FormComponent do
|
|||
|
||||
socket =
|
||||
socket
|
||||
|> put_flash(:info, gettext("Mitglied %{action} erfolgreich", action: action))
|
||||
|> put_flash(:info, gettext("Member %{action} successfully", action: action))
|
||||
|> push_patch(to: socket.assigns.patch)
|
||||
|
||||
{:noreply, socket}
|
||||
|
|
|
|||
|
|
@ -22,7 +22,9 @@ defmodule MvWeb.MemberLive.Show do
|
|||
<:item title={gettext("Last Name")}>{@member.last_name}</:item>
|
||||
<:item title={gettext("Email")}>{@member.email}</:item>
|
||||
<:item title={gettext("Birth Date")}>{@member.birth_date}</:item>
|
||||
<:item title={gettext("Paid")}>{if @member.paid, do: gettext("Yes"), else: gettext("No")}</:item>
|
||||
<:item title={gettext("Paid")}>
|
||||
{if @member.paid, do: gettext("Yes"), else: gettext("No")}
|
||||
</:item>
|
||||
<:item title={gettext("Phone Number")}>{@member.phone_number}</:item>
|
||||
<:item title={gettext("Join Date")}>{@member.join_date}</:item>
|
||||
<:item title={gettext("Exit Date")}>{@member.exit_date}</:item>
|
||||
|
|
|
|||
|
|
@ -230,7 +230,7 @@ msgstr "Ja"
|
|||
|
||||
#: lib/mv_web/member_live/form_component.ex:107
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Mitglied %{action} erfolgreich"
|
||||
msgid "Member %{action} successfully"
|
||||
msgstr "Mitglied %{action} erfolgreich"
|
||||
|
||||
#: lib/mv_web/member_live/form_component.ex:100
|
||||
|
|
|
|||
|
|
@ -231,7 +231,7 @@ msgstr ""
|
|||
|
||||
#: lib/mv_web/member_live/form_component.ex:107
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Mitglied %{action} erfolgreich"
|
||||
msgid "Member %{action} successfully"
|
||||
msgstr ""
|
||||
|
||||
#: lib/mv_web/member_live/form_component.ex:100
|
||||
|
|
|
|||
14
test/mv_web/locale_test.exs
Normal file
14
test/mv_web/locale_test.exs
Normal file
|
|
@ -0,0 +1,14 @@
|
|||
defmodule MvWeb.LocaleTest do
|
||||
use MvWeb.ConnCase, async: true
|
||||
import Phoenix.ConnTest
|
||||
|
||||
test "language switch via form sets the locale to English in the session" do
|
||||
conn = post(build_conn(), "/set_locale", %{"locale" => "en"})
|
||||
assert get_session(conn, :locale) == "en"
|
||||
end
|
||||
|
||||
test "language switch via form sets the locale to German in the session" do
|
||||
conn = post(build_conn(), "/set_locale", %{"locale" => "de"})
|
||||
assert get_session(conn, :locale) == "de"
|
||||
end
|
||||
end
|
||||
|
|
@ -2,15 +2,59 @@ defmodule MvWeb.MemberLive.IndexTest do
|
|||
use MvWeb.ConnCase, async: true
|
||||
import Phoenix.LiveViewTest
|
||||
|
||||
test "zeigt übersetzten Titel auf Deutsch", %{conn: conn} do
|
||||
Gettext.put_locale(MvWeb.Gettext, "de")
|
||||
test "shows translated title in German", %{conn: conn} do
|
||||
conn = Plug.Test.init_test_session(conn, locale: "de")
|
||||
{:ok, _view, html} = live(conn, "/members")
|
||||
assert html =~ "Mitglieder" # Erwarteter deutscher Titel
|
||||
# Expected German title
|
||||
assert html =~ "Mitglieder"
|
||||
end
|
||||
|
||||
test "shows translated title in English", %{conn: conn} do
|
||||
Gettext.put_locale(MvWeb.Gettext, "en")
|
||||
{:ok, _view, html} = live(conn, "/members")
|
||||
assert html =~ "Members" # Erwarteter englischer Titel
|
||||
# Expected English title
|
||||
assert html =~ "Members"
|
||||
end
|
||||
|
||||
test "shows translated button text in German", %{conn: conn} do
|
||||
conn = Plug.Test.init_test_session(conn, locale: "de")
|
||||
{:ok, _view, html} = live(conn, "/members/new")
|
||||
assert html =~ "Speichern"
|
||||
end
|
||||
|
||||
test "shows translated button text in English", %{conn: conn} do
|
||||
Gettext.put_locale(MvWeb.Gettext, "en")
|
||||
{:ok, _view, html} = live(conn, "/members/new")
|
||||
assert html =~ "Save"
|
||||
end
|
||||
|
||||
test "shows translated flash message after creating a member in German", %{conn: conn} do
|
||||
conn = Plug.Test.init_test_session(conn, locale: "de")
|
||||
{:ok, view, _html} = live(conn, "/members")
|
||||
view |> element("a", "Neues Mitglied") |> render_click()
|
||||
|
||||
form_data = %{
|
||||
"member[first_name]" => "Max",
|
||||
"member[last_name]" => "Mustermann",
|
||||
"member[email]" => "max@example.com"
|
||||
}
|
||||
|
||||
view |> form("#member-form", form_data) |> render_submit()
|
||||
assert has_element?(view, "#flash-group", "Mitglied erstellt erfolgreich")
|
||||
end
|
||||
|
||||
test "shows translated flash message after creating a member in English", %{conn: conn} do
|
||||
conn = Plug.Test.init_test_session(conn, locale: "en")
|
||||
{:ok, view, _html} = live(conn, "/members")
|
||||
view |> element("a", "New Member") |> render_click()
|
||||
|
||||
form_data = %{
|
||||
"member[first_name]" => "Max",
|
||||
"member[last_name]" => "Mustermann",
|
||||
"member[email]" => "max@example.com"
|
||||
}
|
||||
|
||||
view |> form("#member-form", form_data) |> render_submit()
|
||||
assert has_element?(view, "#flash-group", "Member create successfully")
|
||||
end
|
||||
end
|
||||
Loading…
Add table
Add a link
Reference in a new issue