diff --git a/lib/mv_web/components/core_components.ex b/lib/mv_web/components/core_components.ex index be64655..f70d245 100644 --- a/lib/mv_web/components/core_components.ex +++ b/lib/mv_web/components/core_components.ex @@ -153,7 +153,7 @@ defmodule MvWeb.CoreComponents do aria-haspopup="menu" aria-expanded={@open} aria-controls={@id} - class="btn btn-ghost" + class="btn" phx-click="toggle_dropdown" phx-target={@phx_target} data-testid="dropdown-button" @@ -236,6 +236,30 @@ defmodule MvWeb.CoreComponents do """ end + @doc """ + Renders a section in with a border similar to cards. + + + ## Examples + + <.form_section title={gettext("Personal Data")}> +

input

+ + """ + attr :title, :string, required: true + slot :inner_block, required: true + + def form_section(assigns) do + ~H""" +
+

{@title}

+
+ {render_slot(@inner_block)} +
+
+ """ + end + @doc """ Renders an input with label and error messages. @@ -434,7 +458,7 @@ defmodule MvWeb.CoreComponents do ~H"""
-

+

{render_slot(@inner_block)}

@@ -474,6 +498,7 @@ defmodule MvWeb.CoreComponents do slot :col, required: true do attr :label, :string + attr :class, :string end slot :action, doc: "the slot for showing user actions in the last table column" @@ -489,7 +514,7 @@ defmodule MvWeb.CoreComponents do - + diff --git a/lib/mv_web/live/components/payment_filter_component.ex b/lib/mv_web/live/components/payment_filter_component.ex index c9dc731..47556dd 100644 --- a/lib/mv_web/live/components/payment_filter_component.ex +++ b/lib/mv_web/live/components/payment_filter_component.ex @@ -44,7 +44,7 @@ defmodule MvWeb.Components.PaymentFilterComponent do - + <.icon name="hero-plus" /> {gettext("New Custom field")} + - + <%!-- Show form when creating or editing --%> +
+ <.live_component + module={MvWeb.CustomFieldLive.FormComponent} + id={@form_id} + custom_field={@editing_custom_field} + on_save={ + fn custom_field, action -> send(self(), {:custom_field_saved, custom_field, action}) end + } + on_cancel={fn -> send_update(__MODULE__, id: @id, show_form: false) end} + /> +
+ + <%!-- Hide table when form is visible --%> + <.table + :if={!@show_form} + id="custom_fields" + rows={@streams.custom_fields} + row_click={ + fn {_id, custom_field} -> + JS.push("edit_custom_field", value: %{id: custom_field.id}, target: @myself) + end + } + > + <:col :let={{_id, custom_field}} label={gettext("Name")}>{custom_field.name} + + <:col :let={{_id, custom_field}} label={gettext("Value Type")}> + {@field_type_label.(custom_field.value_type)} + + + <:col :let={{_id, custom_field}} label={gettext("Description")}> + {custom_field.description} + + + <:col + :let={{_id, custom_field}} + label={gettext("Show in overview")} + class="max-w-[9.375rem] text-center" + > + + {gettext("Yes")} + + + {gettext("No")} + + + + <:action :let={{_id, custom_field}}> + <.link phx-click={ + JS.push("edit_custom_field", value: %{id: custom_field.id}, target: @myself) + }> + {gettext("Edit")} + + + + <:action :let={{_id, custom_field}}> + <.link phx-click={ + JS.push("prepare_delete", value: %{id: custom_field.id}, target: @myself) + }> + {gettext("Delete")} + + + + + <%!-- Delete Confirmation Modal --%> + + + + """ 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/priv/gettext/de/LC_MESSAGES/default.po b/priv/gettext/de/LC_MESSAGES/default.po index bb781f7..311e727 100644 --- a/priv/gettext/de/LC_MESSAGES/default.po +++ b/priv/gettext/de/LC_MESSAGES/default.po @@ -48,7 +48,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 @@ -214,7 +214,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 erfolgreich %{action}" #: lib/mv_web/controllers/auth_controller.ex #, elixir-autogen, elixir-format @@ -419,8 +419,8 @@ msgstr "Administrator*innen-Hinweis" #: lib/mv_web/live/user_live/form.ex #, elixir-autogen, elixir-format -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." +msgid "As an administrator, you can directly set a new password for this user." +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 @@ -658,7 +658,7 @@ msgstr "Um die Löschung zu bestätigen, gib bitte folgenden Text ein:" #: lib/mv_web/live/custom_field_live/form_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 @@ -904,96 +904,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 +1003,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 +1036,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 +1068,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 +1313,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 +1363,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 @@ -1405,6 +1405,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)" diff --git a/priv/gettext/default.pot b/priv/gettext/default.pot index 7581d62..10c230b 100644 --- a/priv/gettext/default.pot +++ b/priv/gettext/default.pot @@ -1405,3 +1405,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..e23030f 100644 --- a/priv/gettext/en/LC_MESSAGES/default.po +++ b/priv/gettext/en/LC_MESSAGES/default.po @@ -1406,6 +1406,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)"
{col[:label]}{col[:label]} <.live_component module={MvWeb.Components.SortHeaderComponent} @@ -510,7 +535,33 @@ defmodule MvWeb.CoreComponents do {render_slot(col, @row_item.(row))}