-
{gettext("Delete Custom Field")}
-
-
-
- <.icon name="hero-exclamation-triangle" class="w-5 h-5" />
-
-
- {ngettext(
- "%{count} member has a value assigned for this custom field.",
- "%{count} members have values assigned for this custom field.",
- @custom_field_to_delete.assigned_members_count,
- count: @custom_field_to_delete.assigned_members_count
- )}
-
-
- {gettext(
- "All custom field values will be permanently deleted when you delete this custom field."
- )}
-
-
-
-
-
-
-
- {@custom_field_to_delete.slug}
-
-
-
-
-
-
-
-
"""
end
diff --git a/lib/mv_web/live/global_settings_live.ex b/lib/mv_web/live/global_settings_live.ex
index bb919cb..0b3ec1c 100644
--- a/lib/mv_web/live/global_settings_live.ex
+++ b/lib/mv_web/live/global_settings_live.ex
@@ -46,22 +46,22 @@ defmodule MvWeb.GlobalSettingsLive do
<%!-- Club Settings Section --%>
- <.header>
- {gettext("Club Settings")}
-
- <.form for={@form} id="settings-form" phx-change="validate" phx-submit="save">
- <.input
- field={@form[:club_name]}
- type="text"
- label={gettext("Association Name")}
- required
- />
-
- <.button phx-disable-with={gettext("Saving...")} variant="primary">
- {gettext("Save Settings")}
-
-
+ <.form_section title={gettext("Club Settings")}>
+ <.form for={@form} id="settings-form" phx-change="validate" phx-submit="save">
+
+ <.input
+ field={@form[:club_name]}
+ type="text"
+ label={gettext("Association Name")}
+ required
+ />
+
+ <.button phx-disable-with={gettext("Saving...")} variant="primary">
+ {gettext("Save Settings")}
+
+
+
<%!-- Custom Fields Section --%>
<.live_component
module={MvWeb.CustomFieldLive.IndexComponent}
diff --git a/lib/mv_web/live/member_live/form.ex b/lib/mv_web/live/member_live/form.ex
index 5380d0f..87148ad 100644
--- a/lib/mv_web/live/member_live/form.ex
+++ b/lib/mv_web/live/member_live/form.ex
@@ -348,25 +348,6 @@ defmodule MvWeb.MemberLive.Form do
defp return_path("show", nil), do: ~p"/members"
defp return_path("show", member), do: ~p"/members/#{member.id}"
- # -----------------------------------------------------------------
- # Helper Components
- # -----------------------------------------------------------------
-
- # Renders a form section box with border and title.
- attr :title, :string, required: true
- slot :inner_block, required: true
-
- defp form_section(assigns) do
- ~H"""
-
- {@title}
-
- {render_slot(@inner_block)}
-
-
- """
- end
-
# -----------------------------------------------------------------
# Helper Functions for Custom Fields
# -----------------------------------------------------------------
diff --git a/lib/mv_web/translations/field_types.ex b/lib/mv_web/translations/field_types.ex
new file mode 100644
index 0000000..969f20b
--- /dev/null
+++ b/lib/mv_web/translations/field_types.ex
@@ -0,0 +1,21 @@
+defmodule MvWeb.Translations.FieldTypes do
+ @moduledoc """
+ Helper module to dynamically translate field types.
+
+ ## Features
+ - Can be used in templates to dynamically translate technical field type words to human friendly text
+
+ ## Example
+ assigns = assign(assigns, :field_type_label, &MvWeb.Translations.FieldTypes.label/1)
+ In template:
+ <%= @field_type_label.(custom_field.value_type) %>
+ """
+ use Gettext, backend: MvWeb.Gettext
+
+ @spec label(atom()) :: String.t()
+ def label(:string), do: gettext("Text")
+ def label(:integer), do: gettext("Number")
+ def label(:boolean), do: gettext("Yes/No-Selection")
+ def label(:date), do: gettext("Date")
+ def label(:email), do: gettext("E-Mail")
+end
diff --git a/lib/mv_web/translations/member_fields.ex b/lib/mv_web/translations/member_fields.ex
new file mode 100644
index 0000000..3750bcb
--- /dev/null
+++ b/lib/mv_web/translations/member_fields.ex
@@ -0,0 +1,41 @@
+defmodule MvWeb.Translations.MemberFields do
+ @moduledoc """
+ Helper module to dynamically translate member field names.
+
+ ## Features
+ - Translates technical field names (atoms) to human-friendly localized text
+ - Used primarily in the field visibility dropdown component
+
+ ## Example
+
+ iex> MvWeb.Translations.MemberFields.label(:first_name)
+ "Vorname" # when locale is "de"
+
+ iex> MvWeb.Translations.MemberFields.label(:first_name)
+ "First Name" # when locale is "en"
+ """
+ use Gettext, backend: MvWeb.Gettext
+
+ @spec label(atom()) :: String.t()
+ def label(:first_name), do: gettext("First Name")
+ def label(:last_name), do: gettext("Last Name")
+ def label(:email), do: gettext("Email")
+ def label(:paid), do: gettext("Paid")
+ def label(:phone_number), do: gettext("Phone")
+ def label(:join_date), do: gettext("Join Date")
+ def label(:exit_date), do: gettext("Exit Date")
+ def label(:notes), do: gettext("Notes")
+ def label(:city), do: gettext("City")
+ def label(:street), do: gettext("Street")
+ def label(:house_number), do: gettext("House Number")
+ def label(:postal_code), do: gettext("Postal Code")
+
+ # Fallback for unknown fields
+ def label(field) do
+ field
+ |> to_string()
+ |> String.replace("_", " ")
+ |> String.split()
+ |> Enum.map_join(" ", &String.capitalize/1)
+ end
+end
diff --git a/priv/gettext/de/LC_MESSAGES/default.po b/priv/gettext/de/LC_MESSAGES/default.po
index bb781f7..25f685d 100644
--- a/priv/gettext/de/LC_MESSAGES/default.po
+++ b/priv/gettext/de/LC_MESSAGES/default.po
@@ -29,6 +29,7 @@ msgstr "Verbindung wird wiederhergestellt"
#: lib/mv_web/live/member_live/form.ex
#: lib/mv_web/live/member_live/index.html.heex
+#: lib/mv_web/translations/member_fields.ex
#, elixir-autogen, elixir-format
msgid "City"
msgstr "Stadt"
@@ -48,7 +49,7 @@ msgstr "Löschen"
#: lib/mv_web/live/user_live/index.html.heex
#, elixir-autogen, elixir-format
msgid "Edit"
-msgstr "Bearbeite"
+msgstr "Bearbeiten"
#: lib/mv_web/live/member_live/form.ex
#: lib/mv_web/live/member_live/show.ex
@@ -63,12 +64,14 @@ msgstr "Mitglied bearbeiten"
#: lib/mv_web/live/user_live/form.ex
#: lib/mv_web/live/user_live/index.html.heex
#: lib/mv_web/live/user_live/show.ex
+#: lib/mv_web/translations/member_fields.ex
#, elixir-autogen, elixir-format
msgid "Email"
msgstr "E-Mail"
#: lib/mv_web/live/member_live/form.ex
#: lib/mv_web/live/member_live/show.ex
+#: lib/mv_web/translations/member_fields.ex
#, elixir-autogen, elixir-format
msgid "First Name"
msgstr "Vorname"
@@ -76,12 +79,14 @@ msgstr "Vorname"
#: lib/mv_web/live/member_live/form.ex
#: lib/mv_web/live/member_live/index.html.heex
#: lib/mv_web/live/member_live/show.ex
+#: lib/mv_web/translations/member_fields.ex
#, elixir-autogen, elixir-format
msgid "Join Date"
msgstr "Beitrittsdatum"
#: lib/mv_web/live/member_live/form.ex
#: lib/mv_web/live/member_live/show.ex
+#: lib/mv_web/translations/member_fields.ex
#, elixir-autogen, elixir-format
msgid "Last Name"
msgstr "Nachname"
@@ -115,11 +120,13 @@ msgstr "schließen"
#: lib/mv_web/live/member_live/form.ex
#: lib/mv_web/live/member_live/show.ex
+#: lib/mv_web/translations/member_fields.ex
#, elixir-autogen, elixir-format
msgid "Exit Date"
msgstr "Austrittsdatum"
#: lib/mv_web/live/member_live/index.html.heex
+#: lib/mv_web/translations/member_fields.ex
#, elixir-autogen, elixir-format
msgid "House Number"
msgstr "Hausnummer"
@@ -127,6 +134,7 @@ msgstr "Hausnummer"
#: lib/mv_web/live/contribution_period_live/show.ex
#: lib/mv_web/live/member_live/form.ex
#: lib/mv_web/live/member_live/show.ex
+#: lib/mv_web/translations/member_fields.ex
#, elixir-autogen, elixir-format
msgid "Notes"
msgstr "Notizen"
@@ -136,6 +144,7 @@ msgstr "Notizen"
#: lib/mv_web/live/member_live/form.ex
#: lib/mv_web/live/member_live/index.html.heex
#: lib/mv_web/live/member_live/show.ex
+#: lib/mv_web/translations/member_fields.ex
#, elixir-autogen, elixir-format
msgid "Paid"
msgstr "Bezahlt"
@@ -147,6 +156,7 @@ msgstr "Telefonnummer"
#: lib/mv_web/live/member_live/form.ex
#: lib/mv_web/live/member_live/index.html.heex
+#: lib/mv_web/translations/member_fields.ex
#, elixir-autogen, elixir-format
msgid "Postal Code"
msgstr "Postleitzahl"
@@ -167,6 +177,7 @@ msgstr "Speichern..."
#: lib/mv_web/live/member_live/form.ex
#: lib/mv_web/live/member_live/index.html.heex
+#: lib/mv_web/translations/member_fields.ex
#, elixir-autogen, elixir-format
msgid "Street"
msgstr "Straße"
@@ -214,7 +225,7 @@ msgstr "Falsche E-Mail oder Passwort"
#: lib/mv_web/live/member_live/form.ex
#, elixir-autogen, elixir-format
msgid "Member %{action} successfully"
-msgstr "Mitglied %{action} erfolgreich"
+msgstr "Mitglied wurde erfolgreich %{action}"
#: lib/mv_web/controllers/auth_controller.ex
#, elixir-autogen, elixir-format
@@ -418,9 +429,9 @@ msgid "Admin Note"
msgstr "Administrator*innen-Hinweis"
#: lib/mv_web/live/user_live/form.ex
-#, elixir-autogen, elixir-format
+#, elixir-autogen, elixir-format, fuzzy
msgid "As an administrator, you can directly set a new password for this user using the same secure Ash Authentication system."
-msgstr "Als Administrator*in können Sie direkt ein neues Passwort für diese*n Benutzer*in setzen, wobei das gleiche sichere Ash Authentication System verwendet wird."
+msgstr "Als Administrator*in können Sie direkt ein neues Passwort für diese*n Benutzer*in setzen."
#: lib/mv_web/live/user_live/form.ex
#, elixir-autogen, elixir-format
@@ -656,9 +667,10 @@ msgid "To confirm deletion, please enter this text:"
msgstr "Um die Löschung zu bestätigen, gib bitte folgenden Text ein:"
#: lib/mv_web/live/custom_field_live/form_component.ex
+#: lib/mv_web/live/custom_field_live/index_component.ex
#, elixir-autogen, elixir-format
msgid "Show in overview"
-msgstr "In der Mitglieder-Übersicht anzeigen"
+msgstr "In Übersicht anzeigen"
#: lib/mv_web/live/global_settings_live.ex
#, elixir-autogen, elixir-format
@@ -869,6 +881,7 @@ msgstr "Persönliche Daten"
#: lib/mv_web/live/member_live/form.ex
#: lib/mv_web/live/member_live/show.ex
+#: lib/mv_web/translations/member_fields.ex
#, elixir-autogen, elixir-format
msgid "Phone"
msgstr "Telefon"
@@ -904,96 +917,96 @@ msgstr "Mitglied erstellen"
#, elixir-autogen, elixir-format
msgid "%{count} period selected"
msgid_plural "%{count} periods selected"
-msgstr[0] ""
-msgstr[1] ""
+msgstr[0] "%{count} Zyklus ausgewählt"
+msgstr[1] "%{count} Zyklen ausgewählt"
#: lib/mv_web/live/contribution_type_live/index.ex
#, elixir-autogen, elixir-format
msgid "About Contribution Types"
-msgstr ""
+msgstr "Über Beitragsarten"
#: lib/mv_web/live/contribution_period_live/show.ex
#: lib/mv_web/live/contribution_type_live/index.ex
#, elixir-autogen, elixir-format
msgid "Amount"
-msgstr ""
+msgstr "Betrag"
#: lib/mv_web/live/contribution_period_live/show.ex
#, elixir-autogen, elixir-format
msgid "Back to Settings"
-msgstr ""
+msgstr "Zurück zu den Einstellungen"
#: lib/mv_web/live/contribution_type_live/index.ex
#, elixir-autogen, elixir-format
msgid "Can be changed at any time. Amount changes affect future periods only."
-msgstr ""
+msgstr "Kann jederzeit geändert werden. Änderungen des Betrags betreffen nur zukünftige Zyklen."
#: lib/mv_web/live/contribution_type_live/index.ex
#, elixir-autogen, elixir-format
msgid "Cannot delete - members assigned"
-msgstr ""
+msgstr "Löschen nicht möglich – es sind Mitglieder zugewiesen"
#: lib/mv_web/live/contribution_period_live/show.ex
#, elixir-autogen, elixir-format
msgid "Change Contribution Type"
-msgstr ""
+msgstr "Beitragsart ändern"
#: lib/mv_web/live/contribution_settings_live.ex
#, elixir-autogen, elixir-format
msgid "Configure global settings for membership contributions."
-msgstr ""
+msgstr "Globale Einstellungen für Mitgliedsbeiträge konfigurieren."
#: lib/mv_web/components/layouts/navbar.ex
#: lib/mv_web/live/contribution_settings_live.ex
#, elixir-autogen, elixir-format, fuzzy
msgid "Contribution Settings"
-msgstr "Beitrag"
+msgstr "Beitragseinstellungen"
#: lib/mv_web/live/contribution_period_live/show.ex
#, elixir-autogen, elixir-format, fuzzy
msgid "Contribution Start"
-msgstr "Beitrag"
+msgstr "Beitragsbeginn"
#: lib/mv_web/components/layouts/navbar.ex
#: lib/mv_web/live/contribution_type_live/index.ex
#, elixir-autogen, elixir-format, fuzzy
msgid "Contribution Types"
-msgstr "Beitrag"
+msgstr "Beitragsarten"
#: lib/mv_web/live/contribution_settings_live.ex
#, elixir-autogen, elixir-format, fuzzy
msgid "Contribution start"
-msgstr "Beitrag"
+msgstr "Beitragsbeginn"
#: lib/mv_web/live/contribution_period_live/show.ex
#, elixir-autogen, elixir-format, fuzzy
msgid "Contribution type"
-msgstr "Beitrag"
+msgstr "Beitragsart"
#: lib/mv_web/live/contribution_type_live/index.ex
#, elixir-autogen, elixir-format
msgid "Contribution types define different membership fee structures. Each type has a fixed interval (monthly, quarterly, half-yearly, yearly) that cannot be changed after creation."
-msgstr ""
+msgstr "Beitragsarten definieren verschiedene Beitragsmodelle. Jede Art hat einen festen Zyklus (monatlich, vierteljährlich, halbjährlich, jährlich), der nach Erstellung nicht mehr geändert werden kann."
#: lib/mv_web/components/layouts/navbar.ex
#, elixir-autogen, elixir-format, fuzzy
msgid "Contributions"
-msgstr "Beitrag"
+msgstr "Beiträge"
#: lib/mv_web/live/contribution_period_live/show.ex
#, elixir-autogen, elixir-format, fuzzy
msgid "Contributions for %{name}"
-msgstr "Beitrag"
+msgstr "Beiträge für %{name}"
#: lib/mv_web/live/contribution_period_live/show.ex
#, elixir-autogen, elixir-format
msgid "Current"
-msgstr ""
+msgstr "Aktuell"
#: lib/mv_web/live/contribution_settings_live.ex
#, elixir-autogen, elixir-format
msgid "Default Contribution Type"
-msgstr ""
+msgstr "Standard-Beitragsart"
#: lib/mv_web/live/contribution_type_live/index.ex
#, elixir-autogen, elixir-format, fuzzy
@@ -1003,28 +1016,28 @@ msgstr "Löschen"
#: lib/mv_web/live/contribution_settings_live.ex
#, elixir-autogen, elixir-format
msgid "Example: Member Contribution View"
-msgstr ""
+msgstr "Beispiel: Ansicht Mitgliedsbeiträge"
#: lib/mv_web/live/contribution_settings_live.ex
#, elixir-autogen, elixir-format
msgid "Examples"
-msgstr ""
+msgstr "Beispiele"
#: lib/mv_web/live/contribution_settings_live.ex
#: lib/mv_web/live/contribution_type_live/index.ex
#, elixir-autogen, elixir-format
msgid "Family"
-msgstr ""
+msgstr "Familie"
#: lib/mv_web/live/contribution_type_live/index.ex
#, elixir-autogen, elixir-format
msgid "Fixed after creation. Members can only switch between types with the same interval."
-msgstr ""
+msgstr "Festgelegt nach der Erstellung. Mitglieder können nur zwischen Beitragsarten mit gleichem Intervall wechseln."
#: lib/mv_web/live/contribution_settings_live.ex
#, elixir-autogen, elixir-format
msgid "Generated periods"
-msgstr ""
+msgstr "Generierte Zyklen"
#: lib/mv_web/live/contribution_settings_live.ex
#, elixir-autogen, elixir-format, fuzzy
@@ -1036,29 +1049,29 @@ msgstr "Vereinsdaten"
#: lib/mv_web/live/contribution_type_live/index.ex
#, elixir-autogen, elixir-format
msgid "Half-yearly"
-msgstr ""
+msgstr "Halbjährlich"
#: lib/mv_web/live/contribution_type_live/index.ex
#, elixir-autogen, elixir-format
msgid "Half-yearly contribution for supporting members"
-msgstr ""
+msgstr "Halbjährlicher Beitrag für Fördermitglieder"
#: lib/mv_web/live/contribution_period_live/show.ex
#: lib/mv_web/live/contribution_type_live/index.ex
#, elixir-autogen, elixir-format
msgid "Honorary"
-msgstr ""
+msgstr "Ehrenamtlich"
#: lib/mv_web/live/contribution_settings_live.ex
#, elixir-autogen, elixir-format
msgid "Include joining period"
-msgstr ""
+msgstr "Beitrittsdatum einbeziehen"
#: lib/mv_web/live/contribution_period_live/show.ex
#: lib/mv_web/live/contribution_type_live/index.ex
#, elixir-autogen, elixir-format
msgid "Interval"
-msgstr ""
+msgstr "Zyklus"
#: lib/mv_web/live/contribution_settings_live.ex
#, elixir-autogen, elixir-format, fuzzy
@@ -1068,240 +1081,240 @@ msgstr "Beitrittsdatum"
#: lib/mv_web/live/contribution_period_live/show.ex
#, elixir-autogen, elixir-format
msgid "Joining year - reduced to 0"
-msgstr ""
+msgstr "Beitrittsjahr – auf 0 reduziert"
#: lib/mv_web/live/contribution_type_live/index.ex
#, elixir-autogen, elixir-format
msgid "Manage contribution types for membership fees."
-msgstr ""
+msgstr "Beitragsarten für Mitgliedsbeiträge verwalten."
#: lib/mv_web/live/contribution_period_live/show.ex
#, elixir-autogen, elixir-format
msgid "Mark as Paid"
-msgstr ""
+msgstr "Als bezahlt markieren"
#: lib/mv_web/live/contribution_period_live/show.ex
#, elixir-autogen, elixir-format
msgid "Mark as Suspended"
-msgstr ""
+msgstr "Als pausiert markieren"
#: lib/mv_web/live/contribution_period_live/show.ex
#, elixir-autogen, elixir-format
msgid "Mark as Unpaid"
-msgstr ""
+msgstr "Als unbezahlt markieren"
#: lib/mv_web/live/contribution_period_live/show.ex
#, elixir-autogen, elixir-format
msgid "Member Contributions"
-msgstr ""
+msgstr "Mitgliedsbeiträge"
#: lib/mv_web/live/contribution_settings_live.ex
#, elixir-autogen, elixir-format
msgid "Member pays for the year they joined"
-msgstr ""
+msgstr "Mitglied zahlt für das Beitrittsjahr"
#: lib/mv_web/live/contribution_settings_live.ex
#, elixir-autogen, elixir-format
msgid "Member pays from the joining month"
-msgstr ""
+msgstr "Mitglied zahlt ab Beitrittsmonat"
#: lib/mv_web/live/contribution_settings_live.ex
#, elixir-autogen, elixir-format
msgid "Member pays from the next full quarter"
-msgstr ""
+msgstr "Mitglied zahlt ab dem nächsten vollständigen Quartal"
#: lib/mv_web/live/contribution_settings_live.ex
#, elixir-autogen, elixir-format
msgid "Member pays from the next full year"
-msgstr ""
+msgstr "Mitglied zahlt ab dem nächsten vollständigen Jahr"
#: lib/mv_web/live/contribution_period_live/show.ex
#, elixir-autogen, elixir-format, fuzzy
msgid "Member since"
-msgstr "Mitglieder"
+msgstr "Mitglied seit"
#: lib/mv_web/live/contribution_period_live/show.ex
#, elixir-autogen, elixir-format
msgid "Members can only switch between contribution types with the same payment interval (e.g., yearly to yearly). This prevents complex period overlaps."
-msgstr ""
+msgstr "Mitglieder können nur zwischen Beitragsarten mit demselben Zahlungszyklus wechseln (z. B. jährlich zu jährlich). Dadurch werden komplexe Überlappungen vermieden."
#: lib/mv_web/live/contribution_period_live/show.ex
#: lib/mv_web/live/contribution_settings_live.ex
#: lib/mv_web/live/contribution_type_live/index.ex
#, elixir-autogen, elixir-format, fuzzy
msgid "Monthly"
-msgstr "monatlich"
+msgstr "Monatlich"
#: lib/mv_web/live/contribution_settings_live.ex
#, elixir-autogen, elixir-format
msgid "Monthly Interval - Joining Period Included"
-msgstr ""
+msgstr "Monatliches Intervall – Beitrittszeitraum einbezogen"
#: lib/mv_web/live/contribution_type_live/index.ex
#, elixir-autogen, elixir-format
msgid "Monthly fee for students and trainees"
-msgstr ""
+msgstr "Monatlicher Beitrag für Studierende und Auszubildende"
#: lib/mv_web/live/contribution_type_live/index.ex
#, elixir-autogen, elixir-format
msgid "Name & Amount"
-msgstr ""
+msgstr "Name & Betrag"
#: lib/mv_web/live/contribution_type_live/index.ex
#, elixir-autogen, elixir-format, fuzzy
msgid "New Contribution Type"
-msgstr "Beitrag"
+msgstr "Neue Beitragsart"
#: lib/mv_web/live/contribution_type_live/index.ex
#, elixir-autogen, elixir-format
msgid "No fee for honorary members"
-msgstr ""
+msgstr "Kein Beitrag für ehrenamtliche Mitglieder"
#: lib/mv_web/live/contribution_type_live/index.ex
#, elixir-autogen, elixir-format
msgid "Only possible if no members are assigned to this type."
-msgstr ""
+msgstr "Nur möglich, wenn diesem Typ keine Mitglieder zugewiesen sind."
#: lib/mv_web/live/contribution_period_live/show.ex
#, elixir-autogen, elixir-format
msgid "Open Contributions"
-msgstr ""
+msgstr "Offene Beiträge"
#: lib/mv_web/live/contribution_period_live/show.ex
#, elixir-autogen, elixir-format
msgid "Paid via bank transfer"
-msgstr ""
+msgstr "Bezahlt durch Überweisung"
#: lib/mv_web/live/contribution_period_live/show.ex
#: lib/mv_web/live/contribution_settings_live.ex
#: lib/mv_web/live/contribution_type_live/index.ex
#, elixir-autogen, elixir-format
msgid "Preview Mockup"
-msgstr ""
+msgstr "Vorschau"
#: lib/mv_web/live/contribution_period_live/show.ex
#: lib/mv_web/live/contribution_settings_live.ex
#: lib/mv_web/live/contribution_type_live/index.ex
#, elixir-autogen, elixir-format
msgid "Quarterly"
-msgstr ""
+msgstr "Vierteljährlich"
#: lib/mv_web/live/contribution_settings_live.ex
#, elixir-autogen, elixir-format
msgid "Quarterly Interval - Joining Period Excluded"
-msgstr ""
+msgstr "Vierteljährliches Intervall – Beitrittszeitraum nicht einbezogen"
#: lib/mv_web/live/contribution_type_live/index.ex
#, elixir-autogen, elixir-format
msgid "Quarterly fee for family memberships"
-msgstr ""
+msgstr "Vierteljährlicher Beitrag für Familienmitgliedschaften"
#: lib/mv_web/live/contribution_period_live/show.ex
#: lib/mv_web/live/contribution_settings_live.ex
#: lib/mv_web/live/contribution_type_live/index.ex
#, elixir-autogen, elixir-format
msgid "Reduced"
-msgstr ""
+msgstr "Reduziert"
#: lib/mv_web/live/contribution_type_live/index.ex
#, elixir-autogen, elixir-format
msgid "Reduced fee for unemployed, pensioners, or low income"
-msgstr ""
+msgstr "Ermäßigter Beitrag für Arbeitslose, Rentner*innen oder Geringverdienende"
#: lib/mv_web/live/contribution_period_live/show.ex
#: lib/mv_web/live/contribution_settings_live.ex
#: lib/mv_web/live/contribution_type_live/index.ex
#, elixir-autogen, elixir-format
msgid "Regular"
-msgstr ""
+msgstr "Regulär"
#: lib/mv_web/live/contribution_period_live/show.ex
#, elixir-autogen, elixir-format
msgid "Reopen"
-msgstr ""
+msgstr "Wieder öffnen"
#: lib/mv_web/live/contribution_settings_live.ex
#, elixir-autogen, elixir-format
msgid "See how the contribution periods will be displayed for an individual member. This example shows Maria Weber with multiple contribution periods."
-msgstr ""
+msgstr "Beispielhafte Anzeige der Beitragsperioden für ein einzelnes Mitglied. In diesem Beispiel wird Maria Weber mit mehreren Zyklen angezeigt."
#: lib/mv_web/live/contribution_type_live/index.ex
#, elixir-autogen, elixir-format
msgid "Standard membership fee for regular members"
-msgstr ""
+msgstr "Regulärer Mitgliedsbeitrag für Vollmitglieder"
#: lib/mv_web/live/contribution_period_live/show.ex
#, elixir-autogen, elixir-format
msgid "Status"
-msgstr ""
+msgstr "Status"
#: lib/mv_web/live/contribution_settings_live.ex
#: lib/mv_web/live/contribution_type_live/index.ex
#, elixir-autogen, elixir-format
msgid "Student"
-msgstr ""
+msgstr "Student"
#: lib/mv_web/live/contribution_type_live/index.ex
#, elixir-autogen, elixir-format
msgid "Supporting Member"
-msgstr ""
+msgstr "Fördermitglied"
#: lib/mv_web/live/contribution_period_live/show.ex
#, elixir-autogen, elixir-format
msgid "Suspend"
-msgstr ""
+msgstr "Pausieren"
#: lib/mv_web/live/contribution_period_live/show.ex
#, elixir-autogen, elixir-format
msgid "Suspended"
-msgstr ""
+msgstr "Pausiert"
#: lib/mv_web/live/contribution_settings_live.ex
#, elixir-autogen, elixir-format
msgid "This contribution type is automatically assigned to all new members. Can be changed individually per member."
-msgstr ""
+msgstr "Dieser Beitragstyp wird automatisch neuen Mitgliedern zugewiesen. Kann individuell angepasst werden."
#: lib/mv_web/live/contribution_period_live/show.ex
#: lib/mv_web/live/contribution_settings_live.ex
#: lib/mv_web/live/contribution_type_live/index.ex
#, elixir-autogen, elixir-format
msgid "This page is not functional and only displays the planned features."
-msgstr ""
+msgstr "Diese Seite ist nicht funktionsfähig und zeigt nur geplante Funktionen."
#: lib/mv_web/live/contribution_period_live/show.ex
#, elixir-autogen, elixir-format
msgid "Time Period"
-msgstr ""
+msgstr "Zeitraum"
#: lib/mv_web/live/contribution_period_live/show.ex
#, elixir-autogen, elixir-format
msgid "Total Contributions"
-msgstr ""
+msgstr "Gesamtbeiträge"
#: lib/mv_web/live/contribution_period_live/show.ex
#, elixir-autogen, elixir-format
msgid "Unpaid"
-msgstr ""
+msgstr "Unbezahlt"
#: lib/mv_web/live/contribution_settings_live.ex
#, elixir-autogen, elixir-format
msgid "View Example Member"
-msgstr ""
+msgstr "Beispielmitglied anzeigen"
#: lib/mv_web/live/contribution_settings_live.ex
#, elixir-autogen, elixir-format
msgid "When active: Members pay from the period of their joining."
-msgstr ""
+msgstr "Wenn aktiviert: Mitglieder zahlen ab dem Zeitraum ihres Beitritts."
#: lib/mv_web/live/contribution_settings_live.ex
#, elixir-autogen, elixir-format
msgid "When inactive: Members pay from the next full period after joining."
-msgstr ""
+msgstr "Wenn deaktiviert: Mitglieder zahlen ab dem nächsten vollen Beitragszyklus nach dem Beitritt."
#: lib/mv_web/live/contribution_period_live/show.ex
#, elixir-autogen, elixir-format
msgid "Why are not all contribution types shown?"
-msgstr ""
+msgstr "Warum werden nicht alle Beitragsarten angezeigt?"
#: lib/mv_web/live/contribution_period_live/show.ex
#: lib/mv_web/live/contribution_settings_live.ex
@@ -1313,12 +1326,12 @@ msgstr "jährlich"
#: lib/mv_web/live/contribution_settings_live.ex
#, elixir-autogen, elixir-format
msgid "Yearly Interval - Joining Period Excluded"
-msgstr ""
+msgstr "Jährliches Intervall – Beitrittszeitraum nicht einbezogen"
#: lib/mv_web/live/contribution_settings_live.ex
#, elixir-autogen, elixir-format
msgid "Yearly Interval - Joining Period Included"
-msgstr ""
+msgstr "Jährliches Intervall – Beitrittszeitraum einbezogen"
#: lib/mv_web/live/components/field_visibility_dropdown_component.ex
#, elixir-autogen, elixir-format
@@ -1363,7 +1376,7 @@ msgstr "Zurück zur Felderliste"
#: lib/mv_web/live/global_settings_live.ex
#, elixir-autogen, elixir-format, fuzzy
msgid "Custom field deleted successfully"
-msgstr "Benutzerdefiniertes Feld erfolgreich %{action}"
+msgstr "Benutzerdefiniertes Feld erfolgreich gelöscht"
#: lib/mv_web/live/custom_field_live/form_component.ex
#, elixir-autogen, elixir-format, fuzzy
@@ -1385,11 +1398,6 @@ msgstr "Benutzerdefiniertes Feld speichern"
msgid "New Custom field"
msgstr "Benutzerdefiniertes Feld speichern"
-#: lib/mv_web/live/custom_field_live/index_component.ex
-#, elixir-autogen, elixir-format, fuzzy
-msgid "Show in Overview"
-msgstr "In der Mitglieder-Übersicht anzeigen"
-
#: lib/mv_web/live/global_settings_live.ex
#, elixir-autogen, elixir-format
msgid "Slug does not match. Deletion cancelled."
@@ -1405,6 +1413,31 @@ msgstr "Diese Felder können zusätzlich zu den normalen Daten ausgefüllt werde
msgid "Value Type"
msgstr "Wertetyp"
+#: lib/mv_web/translations/field_types.ex
+#, elixir-autogen, elixir-format
+msgid "Date"
+msgstr "Datum"
+
+#: lib/mv_web/translations/field_types.ex
+#, elixir-autogen, elixir-format, fuzzy
+msgid "E-Mail"
+msgstr "E-Mail"
+
+#: lib/mv_web/translations/field_types.ex
+#, elixir-autogen, elixir-format
+msgid "Number"
+msgstr "Zahl"
+
+#: lib/mv_web/translations/field_types.ex
+#, elixir-autogen, elixir-format
+msgid "Text"
+msgstr "Textfeld"
+
+#: lib/mv_web/translations/field_types.ex
+#, elixir-autogen, elixir-format
+msgid "Yes/No-Selection"
+msgstr "Ja/Nein-Auswahl"
+
#~ #: lib/mv_web/live/custom_field_live/show.ex
#~ #, elixir-autogen, elixir-format
#~ msgid "Auto-generated identifier (immutable)"
@@ -1450,6 +1483,11 @@ msgstr "Wertetyp"
#~ msgid "OIDC ID"
#~ msgstr "OIDC ID"
+#~ #: lib/mv_web/live/custom_field_live/index_component.ex
+#~ #, elixir-autogen, elixir-format, fuzzy
+#~ msgid "Show in Overview"
+#~ msgstr "In der Mitglieder-Übersicht anzeigen"
+
#~ #: lib/mv_web/live/member_live/show.ex
#~ #, elixir-autogen, elixir-format
#~ msgid "This is a member record from your database."
diff --git a/priv/gettext/default.pot b/priv/gettext/default.pot
index 7581d62..a7ab36b 100644
--- a/priv/gettext/default.pot
+++ b/priv/gettext/default.pot
@@ -30,6 +30,7 @@ msgstr ""
#: lib/mv_web/live/member_live/form.ex
#: lib/mv_web/live/member_live/index.html.heex
+#: lib/mv_web/translations/member_fields.ex
#, elixir-autogen, elixir-format
msgid "City"
msgstr ""
@@ -64,12 +65,14 @@ msgstr ""
#: lib/mv_web/live/user_live/form.ex
#: lib/mv_web/live/user_live/index.html.heex
#: lib/mv_web/live/user_live/show.ex
+#: lib/mv_web/translations/member_fields.ex
#, elixir-autogen, elixir-format
msgid "Email"
msgstr ""
#: lib/mv_web/live/member_live/form.ex
#: lib/mv_web/live/member_live/show.ex
+#: lib/mv_web/translations/member_fields.ex
#, elixir-autogen, elixir-format
msgid "First Name"
msgstr ""
@@ -77,12 +80,14 @@ msgstr ""
#: lib/mv_web/live/member_live/form.ex
#: lib/mv_web/live/member_live/index.html.heex
#: lib/mv_web/live/member_live/show.ex
+#: lib/mv_web/translations/member_fields.ex
#, elixir-autogen, elixir-format
msgid "Join Date"
msgstr ""
#: lib/mv_web/live/member_live/form.ex
#: lib/mv_web/live/member_live/show.ex
+#: lib/mv_web/translations/member_fields.ex
#, elixir-autogen, elixir-format
msgid "Last Name"
msgstr ""
@@ -116,11 +121,13 @@ msgstr ""
#: lib/mv_web/live/member_live/form.ex
#: lib/mv_web/live/member_live/show.ex
+#: lib/mv_web/translations/member_fields.ex
#, elixir-autogen, elixir-format
msgid "Exit Date"
msgstr ""
#: lib/mv_web/live/member_live/index.html.heex
+#: lib/mv_web/translations/member_fields.ex
#, elixir-autogen, elixir-format
msgid "House Number"
msgstr ""
@@ -128,6 +135,7 @@ msgstr ""
#: lib/mv_web/live/contribution_period_live/show.ex
#: lib/mv_web/live/member_live/form.ex
#: lib/mv_web/live/member_live/show.ex
+#: lib/mv_web/translations/member_fields.ex
#, elixir-autogen, elixir-format
msgid "Notes"
msgstr ""
@@ -137,6 +145,7 @@ msgstr ""
#: lib/mv_web/live/member_live/form.ex
#: lib/mv_web/live/member_live/index.html.heex
#: lib/mv_web/live/member_live/show.ex
+#: lib/mv_web/translations/member_fields.ex
#, elixir-autogen, elixir-format
msgid "Paid"
msgstr ""
@@ -148,6 +157,7 @@ msgstr ""
#: lib/mv_web/live/member_live/form.ex
#: lib/mv_web/live/member_live/index.html.heex
+#: lib/mv_web/translations/member_fields.ex
#, elixir-autogen, elixir-format
msgid "Postal Code"
msgstr ""
@@ -168,6 +178,7 @@ msgstr ""
#: lib/mv_web/live/member_live/form.ex
#: lib/mv_web/live/member_live/index.html.heex
+#: lib/mv_web/translations/member_fields.ex
#, elixir-autogen, elixir-format
msgid "Street"
msgstr ""
@@ -657,6 +668,7 @@ msgid "To confirm deletion, please enter this text:"
msgstr ""
#: lib/mv_web/live/custom_field_live/form_component.ex
+#: lib/mv_web/live/custom_field_live/index_component.ex
#, elixir-autogen, elixir-format
msgid "Show in overview"
msgstr ""
@@ -870,6 +882,7 @@ msgstr ""
#: lib/mv_web/live/member_live/form.ex
#: lib/mv_web/live/member_live/show.ex
+#: lib/mv_web/translations/member_fields.ex
#, elixir-autogen, elixir-format
msgid "Phone"
msgstr ""
@@ -1386,11 +1399,6 @@ msgstr ""
msgid "New Custom field"
msgstr ""
-#: lib/mv_web/live/custom_field_live/index_component.ex
-#, elixir-autogen, elixir-format
-msgid "Show in Overview"
-msgstr ""
-
#: lib/mv_web/live/global_settings_live.ex
#, elixir-autogen, elixir-format
msgid "Slug does not match. Deletion cancelled."
@@ -1405,3 +1413,28 @@ msgstr ""
#, elixir-autogen, elixir-format
msgid "Value Type"
msgstr ""
+
+#: lib/mv_web/translations/field_types.ex
+#, elixir-autogen, elixir-format
+msgid "Date"
+msgstr ""
+
+#: lib/mv_web/translations/field_types.ex
+#, elixir-autogen, elixir-format
+msgid "E-Mail"
+msgstr ""
+
+#: lib/mv_web/translations/field_types.ex
+#, elixir-autogen, elixir-format
+msgid "Number"
+msgstr ""
+
+#: lib/mv_web/translations/field_types.ex
+#, elixir-autogen, elixir-format
+msgid "Text"
+msgstr ""
+
+#: lib/mv_web/translations/field_types.ex
+#, elixir-autogen, elixir-format
+msgid "Yes/No-Selection"
+msgstr ""
diff --git a/priv/gettext/en/LC_MESSAGES/default.po b/priv/gettext/en/LC_MESSAGES/default.po
index dc86840..e2a1876 100644
--- a/priv/gettext/en/LC_MESSAGES/default.po
+++ b/priv/gettext/en/LC_MESSAGES/default.po
@@ -30,6 +30,7 @@ msgstr ""
#: lib/mv_web/live/member_live/form.ex
#: lib/mv_web/live/member_live/index.html.heex
+#: lib/mv_web/translations/member_fields.ex
#, elixir-autogen, elixir-format
msgid "City"
msgstr ""
@@ -64,12 +65,14 @@ msgstr ""
#: lib/mv_web/live/user_live/form.ex
#: lib/mv_web/live/user_live/index.html.heex
#: lib/mv_web/live/user_live/show.ex
+#: lib/mv_web/translations/member_fields.ex
#, elixir-autogen, elixir-format
msgid "Email"
msgstr ""
#: lib/mv_web/live/member_live/form.ex
#: lib/mv_web/live/member_live/show.ex
+#: lib/mv_web/translations/member_fields.ex
#, elixir-autogen, elixir-format
msgid "First Name"
msgstr ""
@@ -77,12 +80,14 @@ msgstr ""
#: lib/mv_web/live/member_live/form.ex
#: lib/mv_web/live/member_live/index.html.heex
#: lib/mv_web/live/member_live/show.ex
+#: lib/mv_web/translations/member_fields.ex
#, elixir-autogen, elixir-format
msgid "Join Date"
msgstr ""
#: lib/mv_web/live/member_live/form.ex
#: lib/mv_web/live/member_live/show.ex
+#: lib/mv_web/translations/member_fields.ex
#, elixir-autogen, elixir-format
msgid "Last Name"
msgstr ""
@@ -116,11 +121,13 @@ msgstr ""
#: lib/mv_web/live/member_live/form.ex
#: lib/mv_web/live/member_live/show.ex
+#: lib/mv_web/translations/member_fields.ex
#, elixir-autogen, elixir-format
msgid "Exit Date"
msgstr ""
#: lib/mv_web/live/member_live/index.html.heex
+#: lib/mv_web/translations/member_fields.ex
#, elixir-autogen, elixir-format
msgid "House Number"
msgstr ""
@@ -128,6 +135,7 @@ msgstr ""
#: lib/mv_web/live/contribution_period_live/show.ex
#: lib/mv_web/live/member_live/form.ex
#: lib/mv_web/live/member_live/show.ex
+#: lib/mv_web/translations/member_fields.ex
#, elixir-autogen, elixir-format
msgid "Notes"
msgstr ""
@@ -137,6 +145,7 @@ msgstr ""
#: lib/mv_web/live/member_live/form.ex
#: lib/mv_web/live/member_live/index.html.heex
#: lib/mv_web/live/member_live/show.ex
+#: lib/mv_web/translations/member_fields.ex
#, elixir-autogen, elixir-format
msgid "Paid"
msgstr ""
@@ -148,6 +157,7 @@ msgstr ""
#: lib/mv_web/live/member_live/form.ex
#: lib/mv_web/live/member_live/index.html.heex
+#: lib/mv_web/translations/member_fields.ex
#, elixir-autogen, elixir-format
msgid "Postal Code"
msgstr ""
@@ -168,6 +178,7 @@ msgstr ""
#: lib/mv_web/live/member_live/form.ex
#: lib/mv_web/live/member_live/index.html.heex
+#: lib/mv_web/translations/member_fields.ex
#, elixir-autogen, elixir-format
msgid "Street"
msgstr ""
@@ -198,14 +209,14 @@ msgstr ""
#: lib/mv_web/live/member_live/form.ex
#, elixir-autogen, elixir-format
msgid "create"
-msgstr ""
+msgstr "created"
#: lib/mv_web/live/custom_field_live/form_component.ex
#: lib/mv_web/live/custom_field_value_live/form.ex
#: lib/mv_web/live/member_live/form.ex
#, elixir-autogen, elixir-format
msgid "update"
-msgstr ""
+msgstr "updated"
#: lib/mv_web/controllers/auth_controller.ex
#, elixir-autogen, elixir-format
@@ -657,6 +668,7 @@ msgid "To confirm deletion, please enter this text:"
msgstr ""
#: lib/mv_web/live/custom_field_live/form_component.ex
+#: lib/mv_web/live/custom_field_live/index_component.ex
#, elixir-autogen, elixir-format
msgid "Show in overview"
msgstr ""
@@ -870,6 +882,7 @@ msgstr ""
#: lib/mv_web/live/member_live/form.ex
#: lib/mv_web/live/member_live/show.ex
+#: lib/mv_web/translations/member_fields.ex
#, elixir-autogen, elixir-format, fuzzy
msgid "Phone"
msgstr ""
@@ -1386,11 +1399,6 @@ msgstr ""
msgid "New Custom field"
msgstr ""
-#: lib/mv_web/live/custom_field_live/index_component.ex
-#, elixir-autogen, elixir-format, fuzzy
-msgid "Show in Overview"
-msgstr ""
-
#: lib/mv_web/live/global_settings_live.ex
#, elixir-autogen, elixir-format
msgid "Slug does not match. Deletion cancelled."
@@ -1406,6 +1414,31 @@ msgstr ""
msgid "Value Type"
msgstr ""
+#: lib/mv_web/translations/field_types.ex
+#, elixir-autogen, elixir-format
+msgid "Date"
+msgstr ""
+
+#: lib/mv_web/translations/field_types.ex
+#, elixir-autogen, elixir-format, fuzzy
+msgid "E-Mail"
+msgstr ""
+
+#: lib/mv_web/translations/field_types.ex
+#, elixir-autogen, elixir-format
+msgid "Number"
+msgstr ""
+
+#: lib/mv_web/translations/field_types.ex
+#, elixir-autogen, elixir-format
+msgid "Text"
+msgstr ""
+
+#: lib/mv_web/translations/field_types.ex
+#, elixir-autogen, elixir-format
+msgid "Yes/No-Selection"
+msgstr ""
+
#~ #: lib/mv_web/live/custom_field_live/show.ex
#~ #, elixir-autogen, elixir-format
#~ msgid "Auto-generated identifier (immutable)"
@@ -1449,6 +1482,11 @@ msgstr ""
#~ msgid "OIDC ID"
#~ msgstr ""
+#~ #: lib/mv_web/live/custom_field_live/index_component.ex
+#~ #, elixir-autogen, elixir-format, fuzzy
+#~ msgid "Show in Overview"
+#~ msgstr ""
+
#~ #: lib/mv_web/live/member_live/show.ex
#~ #, elixir-autogen, elixir-format
#~ msgid "This is a member record from your database."
diff --git a/test/mv_web/member_live/index_test.exs b/test/mv_web/member_live/index_test.exs
index 9e3323f..30b61c7 100644
--- a/test/mv_web/member_live/index_test.exs
+++ b/test/mv_web/member_live/index_test.exs
@@ -51,7 +51,7 @@ defmodule MvWeb.MemberLive.IndexTest do
|> render_submit()
|> follow_redirect(conn, "/members")
- assert has_element?(index_view, "#flash-group", "Mitglied erstellt erfolgreich")
+ assert has_element?(index_view, "#flash-group", "Mitglied wurde erfolgreich erstellt")
end
test "shows translated flash message after creating a member in English", %{conn: conn} do
@@ -71,7 +71,7 @@ defmodule MvWeb.MemberLive.IndexTest do
|> render_submit()
|> follow_redirect(conn, "/members")
- assert has_element?(index_view, "#flash-group", "Member create successfully")
+ assert has_element?(index_view, "#flash-group", "Member created successfully")
end
describe "sorting integration" do