Visual hierarchy for fields in member view and edit form - closes #231 #247
5 changed files with 1005 additions and 434 deletions
|
|
@ -5,80 +5,212 @@ defmodule MvWeb.MemberLive.Form do
|
||||||
## Features
|
## Features
|
||||||
- Create new members with personal information
|
- Create new members with personal information
|
||||||
- Edit existing member details
|
- Edit existing member details
|
||||||
- Manage custom properties (dynamic fields)
|
- Grouped sections for better organization
|
||||||
|
- Tab navigation (Payments tab disabled, coming soon)
|
||||||
|
- Manage custom properties (dynamic fields, displayed sorted by name)
|
||||||
- Real-time validation with visual feedback
|
- Real-time validation with visual feedback
|
||||||
- Link/unlink user accounts
|
|
||||||
|
|
||||||
## Form Fields
|
## Form Sections
|
||||||
**Required:**
|
- Personal Data: Name, address, contact information, membership dates, notes
|
||||||
- first_name, last_name, email
|
- Custom Fields: Dynamic fields in uniform grid layout (displayed sorted by name)
|
||||||
|
- Payment Data: Mockup section (not editable)
|
||||||
**Optional:**
|
|
||||||
- phone_number, address fields (city, street, house_number, postal_code)
|
|
||||||
- join_date, exit_date
|
|
||||||
- paid status
|
|
||||||
- notes
|
|
||||||
|
|
||||||
## Custom Field Values
|
|
||||||
Members can have dynamic custom field values defined by CustomFields.
|
|
||||||
The form dynamically renders inputs based on available CustomFields.
|
|
||||||
|
|
||||||
## Events
|
## Events
|
||||||
- `validate` - Real-time form validation
|
- `validate` - Real-time form validation
|
||||||
- `save` - Submit form (create or update member)
|
- `save` - Submit form (create or update member)
|
||||||
- Custom field value management events for adding/removing custom fields
|
|
||||||
"""
|
"""
|
||||||
use MvWeb, :live_view
|
use MvWeb, :live_view
|
||||||
|
|
||||||
@impl true
|
@impl true
|
||||||
def render(assigns) do
|
def render(assigns) do
|
||||||
|
# Sort custom fields by name for display only
|
||||||
|
sorted_custom_fields = Enum.sort_by(assigns.custom_fields, & &1.name)
|
||||||
|
assigns = assign(assigns, :sorted_custom_fields, sorted_custom_fields)
|
||||||
|
|
||||||
~H"""
|
~H"""
|
||||||
<Layouts.app flash={@flash} current_user={@current_user}>
|
<Layouts.app flash={@flash} current_user={@current_user}>
|
||||||
<.header>
|
|
||||||
{@page_title}
|
|
||||||
<:subtitle>
|
|
||||||
{gettext("Fields marked with an asterisk (*) cannot be empty.")}
|
|
||||||
</:subtitle>
|
|
||||||
</.header>
|
|
||||||
|
|
||||||
<.form for={@form} id="member-form" phx-change="validate" phx-submit="save">
|
<.form for={@form} id="member-form" phx-change="validate" phx-submit="save">
|
||||||
<.input field={@form[:first_name]} label={gettext("First Name")} required />
|
<%!-- Header with Back button, Name display, and Save button --%>
|
||||||
<.input field={@form[:last_name]} label={gettext("Last Name")} required />
|
<div class="flex items-center justify-between gap-4 pb-4">
|
||||||
<.input field={@form[:email]} label={gettext("Email")} required type="email" />
|
<.button navigate={return_path(@return_to, @member)} type="button">
|
||||||
<.input field={@form[:paid]} label={gettext("Paid")} type="checkbox" />
|
<.icon name="hero-arrow-left" class="size-4" />
|
||||||
<.input field={@form[:phone_number]} label={gettext("Phone Number")} />
|
{gettext("Back")}
|
||||||
<.input field={@form[:join_date]} label={gettext("Join Date")} type="date" />
|
</.button>
|
||||||
<.input field={@form[:exit_date]} label={gettext("Exit Date")} type="date" />
|
|
||||||
<.input field={@form[:notes]} label={gettext("Notes")} />
|
|
||||||
<.input field={@form[:city]} label={gettext("City")} />
|
|
||||||
<.input field={@form[:street]} label={gettext("Street")} />
|
|
||||||
<.input field={@form[:house_number]} label={gettext("House Number")} />
|
|
||||||
<.input field={@form[:postal_code]} label={gettext("Postal Code")} />
|
|
||||||
|
|
||||||
<h3 class="mt-8 mb-2 text-lg font-semibold">{gettext("Custom Field Values")}</h3>
|
<h1 class="text-2xl font-bold text-center flex-1">
|
||||||
<.inputs_for :let={f_custom_field_value} field={@form[:custom_field_values]}>
|
<%= if @member do %>
|
||||||
<% type =
|
{@member.first_name} {@member.last_name}
|
||||||
Enum.find(@custom_fields, &(&1.id == f_custom_field_value[:custom_field_id].value)) %>
|
<% else %>
|
||||||
<.inputs_for :let={value_form} field={f_custom_field_value[:value]}>
|
{gettext("New Member")}
|
||||||
<% input_type =
|
<% end %>
|
||||||
cond do
|
</h1>
|
||||||
type && type.value_type == :boolean -> "checkbox"
|
|
||||||
type && type.value_type == :date -> :date
|
<.button phx-disable-with={gettext("Saving...")} variant="primary" type="submit">
|
||||||
true -> :text
|
{gettext("Save")}
|
||||||
end %>
|
</.button>
|
||||||
<.input field={value_form[:value]} label={type && type.name} type={input_type} />
|
</div>
|
||||||
|
|
||||||
|
<%!-- Tab Navigation --%>
|
||||||
|
|
|||||||
|
<div role="tablist" class="tabs tabs-bordered mb-6">
|
||||||
|
<button type="button" role="tab" class="tab tab-active" aria-selected="true">
|
||||||
|
<.icon name="hero-identification" class="size-4 mr-2" />
|
||||||
|
{gettext("Contact Data")}
|
||||||
|
</button>
|
||||||
|
<button
|
||||||
|
type="button"
|
||||||
|
role="tab"
|
||||||
|
class="tab"
|
||||||
|
disabled
|
||||||
|
aria-disabled="true"
|
||||||
|
title={gettext("Coming soon")}
|
||||||
|
>
|
||||||
|
<.icon name="hero-credit-card" class="size-4 mr-2" />
|
||||||
|
{gettext("Payments")}
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<%!-- Personal Data and Custom Fields Row --%>
|
||||||
|
<div class="grid grid-cols-1 lg:grid-cols-2 gap-6 mb-6">
|
||||||
|
<%!-- Personal Data Section --%>
|
||||||
|
<div>
|
||||||
|
<.form_section title={gettext("Personal Data")}>
|
||||||
|
<div class="space-y-4">
|
||||||
|
<%!-- Name Row --%>
|
||||||
|
<div class="flex gap-4">
|
||||||
|
<div class="w-48">
|
||||||
|
<.input field={@form[:first_name]} label={gettext("First Name")} required />
|
||||||
|
</div>
|
||||||
|
<div class="w-48">
|
||||||
|
<.input field={@form[:last_name]} label={gettext("Last Name")} required />
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<%!-- Address Row --%>
|
||||||
|
<div class="flex gap-4">
|
||||||
|
<div class="flex-1">
|
||||||
|
<.input field={@form[:street]} label={gettext("Street")} />
|
||||||
|
</div>
|
||||||
|
<div class="w-16">
|
||||||
|
<.input field={@form[:house_number]} label={gettext("Nr.")} />
|
||||||
|
</div>
|
||||||
|
<div class="w-24">
|
||||||
|
<.input field={@form[:postal_code]} label={gettext("Postal Code")} />
|
||||||
|
</div>
|
||||||
|
<div class="w-32">
|
||||||
|
<.input field={@form[:city]} label={gettext("City")} />
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<%!-- Email --%>
|
||||||
|
<div>
|
||||||
|
<.input field={@form[:email]} label={gettext("Email")} required type="email" />
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<%!-- Phone --%>
|
||||||
|
<div>
|
||||||
|
<.input field={@form[:phone_number]} label={gettext("Phone")} type="tel" />
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<%!-- Membership Dates Row --%>
|
||||||
|
<div class="flex gap-4">
|
||||||
|
<div class="w-36">
|
||||||
|
<.input field={@form[:join_date]} label={gettext("Join Date")} type="date" />
|
||||||
|
</div>
|
||||||
|
<div class="w-36">
|
||||||
|
<.input field={@form[:exit_date]} label={gettext("Exit Date")} type="date" />
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<%!-- Notes --%>
|
||||||
|
<div>
|
||||||
|
<.input field={@form[:notes]} label={gettext("Notes")} type="textarea" />
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</.form_section>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<%!-- Custom Fields Section --%>
|
||||||
|
<%= if Enum.any?(@custom_fields) do %>
|
||||||
|
<div>
|
||||||
|
<.form_section title={gettext("Custom Fields")}>
|
||||||
|
<div class="grid grid-cols-2 gap-4">
|
||||||
|
<%!-- Render in sorted order by finding the form for each sorted custom field --%>
|
||||||
|
<%= for cf <- @sorted_custom_fields do %>
|
||||||
|
<.inputs_for :let={f_cfv} field={@form[:custom_field_values]}>
|
||||||
|
<%= if f_cfv[:custom_field_id].value == cf.id do %>
|
||||||
|
<div class={if cf.value_type == :boolean, do: "flex items-end", else: ""}>
|
||||||
|
<.inputs_for :let={value_form} field={f_cfv[:value]}>
|
||||||
|
<.input
|
||||||
|
field={value_form[:value]}
|
||||||
|
label={cf.name}
|
||||||
|
type={custom_field_input_type(cf.value_type)}
|
||||||
|
/>
|
||||||
</.inputs_for>
|
</.inputs_for>
|
||||||
<input
|
<input
|
||||||
type="hidden"
|
type="hidden"
|
||||||
name={f_custom_field_value[:custom_field_id].name}
|
name={f_cfv[:custom_field_id].name}
|
||||||
value={f_custom_field_value[:custom_field_id].value}
|
value={f_cfv[:custom_field_id].value}
|
||||||
/>
|
/>
|
||||||
|
</div>
|
||||||
|
<% end %>
|
||||||
</.inputs_for>
|
</.inputs_for>
|
||||||
|
<% end %>
|
||||||
|
</div>
|
||||||
|
</.form_section>
|
||||||
|
</div>
|
||||||
|
<% end %>
|
||||||
|
</div>
|
||||||
|
|
||||||
<.button phx-disable-with={gettext("Saving...")} variant="primary">
|
<%!-- Payment Data Section (Mockup) --%>
|
||||||
|
<div class="max-w-xl">
|
||||||
|
<.form_section title={gettext("Payment Data")}>
|
||||||
|
<div role="alert" class="alert alert-info mb-4">
|
||||||
|
<.icon name="hero-information-circle" class="size-5" />
|
||||||
|
<span>{gettext("This data is for demonstration purposes only (mockup).")}</span>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="flex gap-8">
|
||||||
|
<div class="w-24">
|
||||||
|
<label for="mock-contribution" class="label text-sm font-medium">
|
||||||
|
{gettext("Contribution")}
|
||||||
|
</label>
|
||||||
|
<input
|
||||||
|
type="text"
|
||||||
|
id="mock-contribution"
|
||||||
|
value="72 €"
|
||||||
|
disabled
|
||||||
|
class="input input-bordered w-full bg-base-200"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
<div class="w-40">
|
||||||
|
<label class="label text-sm font-medium">{gettext("Payment Cycle")}</label>
|
||||||
|
<div class="flex gap-3 mt-2">
|
||||||
|
<label class="flex items-center gap-1 cursor-not-allowed opacity-60">
|
||||||
|
<input type="radio" name="mock_cycle" checked disabled class="radio radio-sm" />
|
||||||
|
<span class="text-sm">{gettext("monthly")}</span>
|
||||||
|
</label>
|
||||||
|
<label class="flex items-center gap-1 cursor-not-allowed opacity-60">
|
||||||
|
<input type="radio" name="mock_cycle" disabled class="radio radio-sm" />
|
||||||
|
<span class="text-sm">{gettext("yearly")}</span>
|
||||||
|
</label>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="w-24 flex items-end">
|
||||||
|
<.input field={@form[:paid]} label={gettext("Paid")} type="checkbox" />
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</.form_section>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<%!-- Bottom Action Buttons --%>
|
||||||
|
<div class="flex justify-end gap-4 mt-6">
|
||||||
|
<.button navigate={return_path(@return_to, @member)} type="button">
|
||||||
|
{gettext("Cancel")}
|
||||||
|
</.button>
|
||||||
|
<.button phx-disable-with={gettext("Saving...")} variant="primary" type="submit">
|
||||||
{gettext("Save Member")}
|
{gettext("Save Member")}
|
||||||
</.button>
|
</.button>
|
||||||
<.button navigate={return_path(@return_to, @member)}>{gettext("Cancel")}</.button>
|
</div>
|
||||||
</.form>
|
</.form>
|
||||||
</Layouts.app>
|
</Layouts.app>
|
||||||
"""
|
"""
|
||||||
|
|
@ -106,8 +238,8 @@ defmodule MvWeb.MemberLive.Form do
|
||||||
id -> Ash.get!(Mv.Membership.Member, id)
|
id -> Ash.get!(Mv.Membership.Member, id)
|
||||||
end
|
end
|
||||||
|
|
||||||
action = if is_nil(member), do: "New", else: "Edit"
|
page_title =
|
||||||
page_title = action <> " " <> "Member"
|
if is_nil(member), do: gettext("Create Member"), else: gettext("Edit Member")
|
||||||
|
moritz marked this conversation as resolved
Outdated
rafael
commented
This won't work in german, I think This won't work in german, I think
|
|||||||
|
|
||||||
{:ok,
|
{:ok,
|
||||||
socket
|
socket
|
||||||
|
|
@ -213,5 +345,37 @@ defmodule MvWeb.MemberLive.Form do
|
||||||
end
|
end
|
||||||
|
|
||||||
defp return_path("index", _member), do: ~p"/members"
|
defp return_path("index", _member), do: ~p"/members"
|
||||||
|
defp return_path("show", nil), do: ~p"/members"
|
||||||
defp return_path("show", member), do: ~p"/members/#{member.id}"
|
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"""
|
||||||
|
<section class="mb-6">
|
||||||
|
<h2 class="text-lg font-semibold mb-3">{@title}</h2>
|
||||||
|
<div class="border border-base-300 rounded-lg p-4 bg-base-100">
|
||||||
|
{render_slot(@inner_block)}
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
"""
|
||||||
|
end
|
||||||
|
|
||||||
|
# -----------------------------------------------------------------
|
||||||
|
# Helper Functions for Custom Fields
|
||||||
|
# -----------------------------------------------------------------
|
||||||
|
|
||||||
|
# Returns input type for custom field based on value type
|
||||||
|
defp custom_field_input_type(:string), do: "text"
|
||||||
|
moritz marked this conversation as resolved
Outdated
rafael
commented
These functions should use gettext These functions should use gettext
moritz
commented
the return values are HTML input types. So a translation doesn't make any sense here. the return values are HTML input types. So a translation doesn't make any sense here.
|
|||||||
|
defp custom_field_input_type(:integer), do: "number"
|
||||||
|
defp custom_field_input_type(:boolean), do: "checkbox"
|
||||||
|
defp custom_field_input_type(:date), do: "date"
|
||||||
|
defp custom_field_input_type(:email), do: "email"
|
||||||
|
defp custom_field_input_type(_), do: "text"
|
||||||
end
|
end
|
||||||
|
|
|
||||||
|
|
@ -3,19 +3,16 @@ defmodule MvWeb.MemberLive.Show do
|
||||||
LiveView for displaying a single member's details.
|
LiveView for displaying a single member's details.
|
||||||
|
|
||||||
## Features
|
## Features
|
||||||
- Display all member information (personal, contact, address)
|
- Display all member information in grouped sections
|
||||||
- Show linked user account (if exists)
|
- Tab navigation for future features (Payments)
|
||||||
- Display custom field values
|
- Show custom field values with type-based formatting
|
||||||
- Navigate to edit form
|
- Navigate to edit form
|
||||||
- Return to member list
|
- Return to member list
|
||||||
|
|
||||||
## Displayed Information
|
## Sections
|
||||||
- Basic: name, email, dates (join, exit)
|
- Personal Data: Name, address, contact information, membership dates, notes
|
||||||
- Contact: phone number
|
- Custom Fields: Dynamic fields in uniform grid layout (sorted by name)
|
||||||
- Address: street, house number, postal code, city
|
- Payment Data: Mockup section with placeholder data
|
||||||
- Status: paid flag
|
|
||||||
- Relationships: linked user account
|
|
||||||
- Custom: dynamic custom field values from CustomFields
|
|
||||||
|
|
||||||
## Navigation
|
## Navigation
|
||||||
- Back to member list
|
- Back to member list
|
||||||
|
|
@ -23,69 +20,155 @@ defmodule MvWeb.MemberLive.Show do
|
||||||
"""
|
"""
|
||||||
use MvWeb, :live_view
|
use MvWeb, :live_view
|
||||||
import Ash.Query
|
import Ash.Query
|
||||||
alias MvWeb.Helpers.DateFormatter
|
|
||||||
|
|
||||||
@impl true
|
@impl true
|
||||||
def render(assigns) do
|
def render(assigns) do
|
||||||
~H"""
|
~H"""
|
||||||
<Layouts.app flash={@flash} current_user={@current_user}>
|
<Layouts.app flash={@flash} current_user={@current_user}>
|
||||||
<.header>
|
<%!-- Header with Back button, Name, and Edit button --%>
|
||||||
{@member.first_name} {@member.last_name}
|
<div class="flex items-center justify-between gap-4 pb-4">
|
||||||
<:subtitle>{gettext("This is a member record from your database.")}</:subtitle>
|
|
||||||
|
|
||||||
<:actions>
|
|
||||||
<.button navigate={~p"/members"} aria-label={gettext("Back to members list")}>
|
<.button navigate={~p"/members"} aria-label={gettext("Back to members list")}>
|
||||||
<.icon name="hero-arrow-left" />
|
<.icon name="hero-arrow-left" class="size-4" />
|
||||||
<span class="sr-only">{gettext("Back to members list")}</span>
|
{gettext("Back")}
|
||||||
</.button>
|
</.button>
|
||||||
<.button variant="primary" navigate={~p"/members/#{@member}/edit?return_to=show"}>
|
|
||||||
<.icon name="hero-pencil-square" /> {gettext("Edit Member")}
|
|
||||||
</.button>
|
|
||||||
</:actions>
|
|
||||||
</.header>
|
|
||||||
|
|
||||||
<.list>
|
<h1 class="text-2xl font-bold text-center flex-1">
|
||||||
<:item title={gettext("Id")}>{@member.id}</:item>
|
{@member.first_name} {@member.last_name}
|
||||||
<:item title={gettext("First Name")}>{@member.first_name}</:item>
|
</h1>
|
||||||
<:item title={gettext("Last Name")}>{@member.last_name}</:item>
|
|
||||||
<:item title={gettext("Email")}>{@member.email}</:item>
|
<.button variant="primary" navigate={~p"/members/#{@member}/edit?return_to=show"}>
|
||||||
<:item title={gettext("Paid")}>
|
{gettext("Edit Member")}
|
||||||
{if @member.paid, do: gettext("Yes"), else: gettext("No")}
|
</.button>
|
||||||
</:item>
|
</div>
|
||||||
<:item title={gettext("Phone Number")}>{@member.phone_number}</:item>
|
|
||||||
<:item title={gettext("Join Date")}>{DateFormatter.format_date(@member.join_date)}</:item>
|
<%!-- Tab Navigation --%>
|
||||||
<:item title={gettext("Exit Date")}>{DateFormatter.format_date(@member.exit_date)}</:item>
|
<div role="tablist" class="tabs tabs-bordered mb-6">
|
||||||
<:item title={gettext("Notes")}>{@member.notes}</:item>
|
<button role="tab" class="tab tab-active" aria-selected="true">
|
||||||
<:item title={gettext("City")}>{@member.city}</:item>
|
<.icon name="hero-identification" class="size-4 mr-2" />
|
||||||
<:item title={gettext("Street")}>{@member.street}</:item>
|
{gettext("Contact Data")}
|
||||||
<:item title={gettext("House Number")}>{@member.house_number}</:item>
|
</button>
|
||||||
<:item title={gettext("Postal Code")}>{@member.postal_code}</:item>
|
<button role="tab" class="tab" disabled aria-disabled="true" title={gettext("Coming soon")}>
|
||||||
<:item title={gettext("Linked User")}>
|
<.icon name="hero-credit-card" class="size-4 mr-2" />
|
||||||
|
{gettext("Payments")}
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<%!-- Personal Data and Custom Fields Row --%>
|
||||||
|
<div class="grid grid-cols-1 lg:grid-cols-2 gap-6 mb-6">
|
||||||
|
<%!-- Personal Data Section --%>
|
||||||
|
<div>
|
||||||
|
<.section_box title={gettext("Personal Data")}>
|
||||||
|
<div class="space-y-4">
|
||||||
|
<%!-- Name Row --%>
|
||||||
|
<div class="flex gap-6">
|
||||||
|
<.data_field label={gettext("First Name")} value={@member.first_name} class="w-48" />
|
||||||
|
<.data_field label={gettext("Last Name")} value={@member.last_name} class="w-48" />
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<%!-- Address --%>
|
||||||
|
<div>
|
||||||
|
<.data_field label={gettext("Address")} value={format_address(@member)} />
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<%!-- Email --%>
|
||||||
|
<div>
|
||||||
|
<.data_field label={gettext("Email")}>
|
||||||
|
<a
|
||||||
|
href={"mailto:#{MvWeb.MemberLive.Index.format_member_email(@member)}"}
|
||||||
|
class="text-blue-700 hover:text-blue-800 underline"
|
||||||
|
>
|
||||||
|
{@member.email}
|
||||||
|
</a>
|
||||||
|
</.data_field>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<%!-- Phone --%>
|
||||||
|
<div>
|
||||||
|
<.data_field label={gettext("Phone")} value={@member.phone_number} />
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<%!-- Membership Dates Row --%>
|
||||||
|
<div class="flex gap-6">
|
||||||
|
<.data_field
|
||||||
|
label={gettext("Join Date")}
|
||||||
|
value={format_date(@member.join_date)}
|
||||||
|
class="w-28"
|
||||||
|
/>
|
||||||
|
<.data_field
|
||||||
|
label={gettext("Exit Date")}
|
||||||
|
value={format_date(@member.exit_date)}
|
||||||
|
class="w-28"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<%!-- Linked User --%>
|
||||||
|
<div>
|
||||||
|
<.data_field label={gettext("Linked User")}>
|
||||||
<%= if @member.user do %>
|
<%= if @member.user do %>
|
||||||
<.link
|
<.link
|
||||||
navigate={~p"/users/#{@member.user}"}
|
navigate={~p"/users/#{@member.user}"}
|
||||||
class="text-blue-600 hover:text-blue-800 underline"
|
class="text-blue-700 hover:text-blue-800 underline inline-flex items-center gap-1"
|
||||||
>
|
>
|
||||||
<.icon name="hero-user" class="h-4 w-4 inline mr-1" />
|
<.icon name="hero-user" class="size-4" />
|
||||||
{@member.user.email}
|
{@member.user.email}
|
||||||
</.link>
|
</.link>
|
||||||
<% else %>
|
<% else %>
|
||||||
<span class="text-gray-500 italic">{gettext("No user linked")}</span>
|
<span class="text-base-content/70 italic">{gettext("No user linked")}</span>
|
||||||
<% end %>
|
<% end %>
|
||||||
</:item>
|
</.data_field>
|
||||||
</.list>
|
</div>
|
||||||
|
|
||||||
<h3 class="mt-8 mb-2 text-lg font-semibold">{gettext("Custom Field Values")}</h3>
|
<%!-- Notes --%>
|
||||||
<.generic_list items={
|
<%= if @member.notes && String.trim(@member.notes) != "" do %>
|
||||||
Enum.map(@member.custom_field_values, fn cfv ->
|
<div>
|
||||||
{
|
<.data_field label={gettext("Notes")}>
|
||||||
# name
|
<p class="whitespace-pre-wrap text-base-content/80">{@member.notes}</p>
|
||||||
cfv.custom_field && cfv.custom_field.name,
|
</.data_field>
|
||||||
# value
|
</div>
|
||||||
format_custom_field_value(cfv)
|
<% end %>
|
||||||
}
|
</div>
|
||||||
end)
|
</.section_box>
|
||||||
} />
|
</div>
|
||||||
|
|
||||||
|
<%!-- Custom Fields Section --%>
|
||||||
|
<%= if Enum.any?(@member.custom_field_values) do %>
|
||||||
|
<div>
|
||||||
|
<.section_box title={gettext("Custom Fields")}>
|
||||||
|
<div class="grid grid-cols-2 gap-4">
|
||||||
|
<%= for cfv <- sort_custom_field_values(@member.custom_field_values) do %>
|
||||||
|
<% custom_field = cfv.custom_field %>
|
||||||
|
<% value_type = custom_field && custom_field.value_type %>
|
||||||
|
<.data_field label={custom_field && custom_field.name}>
|
||||||
|
{format_custom_field_value(cfv.value, value_type)}
|
||||||
|
</.data_field>
|
||||||
|
<% end %>
|
||||||
|
</div>
|
||||||
|
</.section_box>
|
||||||
|
</div>
|
||||||
|
<% end %>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<%!-- Payment Data Section (Mockup) --%>
|
||||||
|
<div class="max-w-xl">
|
||||||
|
<.section_box title={gettext("Payment Data")}>
|
||||||
|
<div role="alert" class="alert alert-info mb-4">
|
||||||
|
<.icon name="hero-information-circle" class="size-5" />
|
||||||
|
<span>{gettext("This data is for demonstration purposes only (mockup).")}</span>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="flex gap-6">
|
||||||
|
<.data_field label={gettext("Contribution")} value="72 €" class="w-24" />
|
||||||
|
<.data_field label={gettext("Payment Cycle")} value={gettext("monthly")} class="w-28" />
|
||||||
|
<.data_field label={gettext("Paid")} class="w-24">
|
||||||
|
<%= if @member.paid do %>
|
||||||
|
<span class="badge badge-success">{gettext("Paid")}</span>
|
||||||
|
<% else %>
|
||||||
|
<span class="badge badge-warning">{gettext("Pending")}</span>
|
||||||
|
<% end %>
|
||||||
|
</.data_field>
|
||||||
|
</div>
|
||||||
|
</.section_box>
|
||||||
|
</div>
|
||||||
</Layouts.app>
|
</Layouts.app>
|
||||||
"""
|
"""
|
||||||
end
|
end
|
||||||
|
|
@ -113,16 +196,119 @@ defmodule MvWeb.MemberLive.Show do
|
||||||
defp page_title(:show), do: gettext("Show Member")
|
defp page_title(:show), do: gettext("Show Member")
|
||||||
defp page_title(:edit), do: gettext("Edit Member")
|
defp page_title(:edit), do: gettext("Edit Member")
|
||||||
|
|
||||||
defp format_custom_field_value(cfv) do
|
# -----------------------------------------------------------------
|
||||||
value =
|
# Helper Components
|
||||||
case cfv.value do
|
# -----------------------------------------------------------------
|
||||||
%{value: v} -> v
|
|
||||||
v -> v
|
# Renders a section box with border and title.
|
||||||
|
attr :title, :string, required: true
|
||||||
|
slot :inner_block, required: true
|
||||||
|
|
||||||
|
defp section_box(assigns) do
|
||||||
|
~H"""
|
||||||
|
<section class="mb-6">
|
||||||
|
<h2 class="text-lg font-semibold mb-3">{@title}</h2>
|
||||||
|
<div class="border border-base-300 rounded-lg p-4 bg-base-100">
|
||||||
|
{render_slot(@inner_block)}
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
"""
|
||||||
end
|
end
|
||||||
|
|
||||||
case value do
|
# Renders a labeled data field.
|
||||||
%Date{} = date -> DateFormatter.format_date(date)
|
attr :label, :string, required: true
|
||||||
other -> other
|
attr :value, :string, default: nil
|
||||||
|
attr :class, :string, default: ""
|
||||||
|
slot :inner_block
|
||||||
|
|
||||||
|
defp data_field(assigns) do
|
||||||
|
~H"""
|
||||||
|
<dl class={@class}>
|
||||||
|
<dt class="text-sm font-medium text-base-content/70">{@label}</dt>
|
||||||
|
<dd class="mt-1 text-base-content">
|
||||||
|
<%= if @inner_block != [] do %>
|
||||||
|
{render_slot(@inner_block)}
|
||||||
|
<% else %>
|
||||||
|
{display_value(@value)}
|
||||||
|
<% end %>
|
||||||
|
</dd>
|
||||||
|
</dl>
|
||||||
|
"""
|
||||||
|
end
|
||||||
|
|
||||||
|
# -----------------------------------------------------------------
|
||||||
|
# Helper Functions
|
||||||
|
# -----------------------------------------------------------------
|
||||||
|
|
||||||
|
defp display_value(nil), do: ""
|
||||||
|
moritz marked this conversation as resolved
Outdated
rafael
commented
For nil, this should be an empty string (this is how we do it in other parts of the UI) For nil, this should be an empty string (this is how we do it in other parts of the UI)
|
|||||||
|
defp display_value(""), do: ""
|
||||||
|
defp display_value(value), do: value
|
||||||
|
|
||||||
|
defp format_address(member) do
|
||||||
|
moritz marked this conversation as resolved
Outdated
rafael
commented
can we move this somewhere else so we can reuse it in the member overview? can we move this somewhere else so we can reuse it in the member overview?
|
|||||||
|
street_part =
|
||||||
|
[member.street, member.house_number]
|
||||||
|
|> Enum.filter(&(&1 && &1 != ""))
|
||||||
|
|> Enum.join(" ")
|
||||||
|
|
||||||
|
city_part =
|
||||||
|
[member.postal_code, member.city]
|
||||||
|
|> Enum.filter(&(&1 && &1 != ""))
|
||||||
|
|> Enum.join(" ")
|
||||||
|
|
||||||
|
[street_part, city_part]
|
||||||
|
|> Enum.filter(&(&1 != ""))
|
||||||
|
|> Enum.join(", ")
|
||||||
|
|> case do
|
||||||
|
"" -> nil
|
||||||
|
address -> address
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
defp format_date(nil), do: nil
|
||||||
|
|
||||||
|
defp format_date(%Date{} = date) do
|
||||||
|
Calendar.strftime(date, "%d.%m.%Y")
|
||||||
|
end
|
||||||
|
|
||||||
|
defp format_date(date), do: to_string(date)
|
||||||
|
|
||||||
|
# Sorts custom field values by custom field name
|
||||||
|
defp sort_custom_field_values(custom_field_values) do
|
||||||
|
Enum.sort_by(custom_field_values, fn cfv ->
|
||||||
|
(cfv.custom_field && cfv.custom_field.name) || ""
|
||||||
|
end)
|
||||||
|
end
|
||||||
|
|
||||||
|
# Formats custom field value based on type
|
||||||
|
defp format_custom_field_value(%Ash.Union{value: value, type: type}, _expected_type) do
|
||||||
|
format_custom_field_value(value, type)
|
||||||
|
end
|
||||||
|
|
||||||
|
defp format_custom_field_value(nil, _type), do: "—"
|
||||||
|
|
||||||
|
defp format_custom_field_value(value, :boolean) when is_boolean(value) do
|
||||||
|
if value, do: gettext("Yes"), else: gettext("No")
|
||||||
|
end
|
||||||
|
|
||||||
|
defp format_custom_field_value(%Date{} = date, :date) do
|
||||||
|
Calendar.strftime(date, "%d.%m.%Y")
|
||||||
|
end
|
||||||
|
|
||||||
|
defp format_custom_field_value(value, :email) when is_binary(value) do
|
||||||
|
assigns = %{email: value}
|
||||||
|
|
||||||
|
~H"""
|
||||||
|
<a href={"mailto:#{@email}"} class="text-blue-700 hover:text-blue-800 underline">{@email}</a>
|
||||||
|
"""
|
||||||
|
end
|
||||||
|
|
||||||
|
defp format_custom_field_value(value, :integer) when is_integer(value) do
|
||||||
|
Integer.to_string(value)
|
||||||
|
end
|
||||||
|
|
||||||
|
defp format_custom_field_value(value, _type) when is_binary(value) do
|
||||||
|
if String.trim(value) == "", do: "—", else: value
|
||||||
|
end
|
||||||
|
|
||||||
|
defp format_custom_field_value(value, _type), do: to_string(value)
|
||||||
end
|
end
|
||||||
|
|
|
||||||
|
|
@ -28,9 +28,8 @@ msgstr "Bist du sicher?"
|
||||||
msgid "Attempting to reconnect"
|
msgid "Attempting to reconnect"
|
||||||
msgstr "Verbindung wird wiederhergestellt"
|
msgstr "Verbindung wird wiederhergestellt"
|
||||||
|
|
||||||
#: lib/mv_web/live/member_live/form.ex:53
|
#: lib/mv_web/live/member_live/form.ex:100
|
||||||
#: lib/mv_web/live/member_live/index.html.heex:184
|
#: lib/mv_web/live/member_live/index.html.heex:184
|
||||||
#: lib/mv_web/live/member_live/show.ex:59
|
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "City"
|
msgid "City"
|
||||||
msgstr "Stadt"
|
msgstr "Stadt"
|
||||||
|
|
@ -48,18 +47,19 @@ msgstr "Löschen"
|
||||||
#: lib/mv_web/live/user_live/index.html.heex:65
|
#: lib/mv_web/live/user_live/index.html.heex:65
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "Edit"
|
msgid "Edit"
|
||||||
msgstr "Bearbeiten"
|
msgstr "Bearbeite"
|
||||||
|
|
||||||
#: lib/mv_web/live/member_live/show.ex:42
|
#: lib/mv_web/live/member_live/form.ex:242
|
||||||
#: lib/mv_web/live/member_live/show.ex:114
|
#: lib/mv_web/live/member_live/show.ex:40
|
||||||
|
#: lib/mv_web/live/member_live/show.ex:197
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "Edit Member"
|
msgid "Edit Member"
|
||||||
msgstr "Mitglied bearbeiten"
|
msgstr "Mitglied bearbeiten"
|
||||||
|
|
||||||
#: lib/mv_web/live/contribution_period_live/show.ex:58
|
#: lib/mv_web/live/contribution_period_live/show.ex:58
|
||||||
#: lib/mv_web/live/member_live/form.ex:47
|
#: lib/mv_web/live/member_live/form.ex:106
|
||||||
#: lib/mv_web/live/member_live/index.html.heex:112
|
#: lib/mv_web/live/member_live/index.html.heex:112
|
||||||
#: lib/mv_web/live/member_live/show.ex:51
|
#: lib/mv_web/live/member_live/show.ex:75
|
||||||
#: lib/mv_web/live/user_live/form.ex:46
|
#: lib/mv_web/live/user_live/form.ex:46
|
||||||
#: lib/mv_web/live/user_live/index.html.heex:44
|
#: lib/mv_web/live/user_live/index.html.heex:44
|
||||||
#: lib/mv_web/live/user_live/show.ex:49
|
#: lib/mv_web/live/user_live/show.ex:49
|
||||||
|
|
@ -67,25 +67,26 @@ msgstr "Mitglied bearbeiten"
|
||||||
msgid "Email"
|
msgid "Email"
|
||||||
msgstr "E-Mail"
|
msgstr "E-Mail"
|
||||||
|
|
||||||
#: lib/mv_web/live/member_live/form.ex:45
|
#: lib/mv_web/live/member_live/form.ex:81
|
||||||
#: lib/mv_web/live/member_live/show.ex:49
|
#: lib/mv_web/live/member_live/show.ex:64
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "First Name"
|
msgid "First Name"
|
||||||
msgstr "Vorname"
|
msgstr "Vorname"
|
||||||
|
|
||||||
#: lib/mv_web/live/member_live/form.ex:50
|
#: lib/mv_web/live/member_live/form.ex:117
|
||||||
#: lib/mv_web/live/member_live/index.html.heex:220
|
#: lib/mv_web/live/member_live/index.html.heex:220
|
||||||
#: lib/mv_web/live/member_live/show.ex:56
|
#: lib/mv_web/live/member_live/show.ex:93
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "Join Date"
|
msgid "Join Date"
|
||||||
msgstr "Beitrittsdatum"
|
msgstr "Beitrittsdatum"
|
||||||
|
|
||||||
#: lib/mv_web/live/member_live/form.ex:46
|
#: lib/mv_web/live/member_live/form.ex:84
|
||||||
#: lib/mv_web/live/member_live/show.ex:50
|
#: lib/mv_web/live/member_live/show.ex:65
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "Last Name"
|
msgid "Last Name"
|
||||||
msgstr "Nachname"
|
msgstr "Nachname"
|
||||||
|
|
||||||
|
#: lib/mv_web/live/member_live/form.ex:44
|
||||||
#: lib/mv_web/live/member_live/index.html.heex:29
|
#: lib/mv_web/live/member_live/index.html.heex:29
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "New Member"
|
msgid "New Member"
|
||||||
|
|
@ -112,22 +113,20 @@ msgstr "Keine Internetverbindung gefunden"
|
||||||
msgid "close"
|
msgid "close"
|
||||||
msgstr "schließen"
|
msgstr "schließen"
|
||||||
|
|
||||||
#: lib/mv_web/live/member_live/form.ex:51
|
#: lib/mv_web/live/member_live/form.ex:120
|
||||||
#: lib/mv_web/live/member_live/show.ex:57
|
#: lib/mv_web/live/member_live/show.ex:98
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "Exit Date"
|
msgid "Exit Date"
|
||||||
msgstr "Austrittsdatum"
|
msgstr "Austrittsdatum"
|
||||||
|
|
||||||
#: lib/mv_web/live/member_live/form.ex:55
|
|
||||||
#: lib/mv_web/live/member_live/index.html.heex:148
|
#: lib/mv_web/live/member_live/index.html.heex:148
|
||||||
#: lib/mv_web/live/member_live/show.ex:61
|
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "House Number"
|
msgid "House Number"
|
||||||
msgstr "Hausnummer"
|
msgstr "Hausnummer"
|
||||||
|
|
||||||
#: lib/mv_web/live/contribution_period_live/show.ex:140
|
#: lib/mv_web/live/contribution_period_live/show.ex:140
|
||||||
#: lib/mv_web/live/member_live/form.ex:52
|
#: lib/mv_web/live/member_live/form.ex:126
|
||||||
#: lib/mv_web/live/member_live/show.ex:58
|
#: lib/mv_web/live/member_live/show.ex:124
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "Notes"
|
msgid "Notes"
|
||||||
msgstr "Notizen"
|
msgstr "Notizen"
|
||||||
|
|
@ -136,28 +135,26 @@ msgstr "Notizen"
|
||||||
#: lib/mv_web/live/components/payment_filter_component.ex:144
|
#: lib/mv_web/live/components/payment_filter_component.ex:144
|
||||||
#: lib/mv_web/live/contribution_period_live/show.ex:186
|
#: lib/mv_web/live/contribution_period_live/show.ex:186
|
||||||
#: lib/mv_web/live/contribution_period_live/show.ex:241
|
#: lib/mv_web/live/contribution_period_live/show.ex:241
|
||||||
#: lib/mv_web/live/member_live/form.ex:48
|
#: lib/mv_web/live/member_live/form.ex:199
|
||||||
#: lib/mv_web/live/member_live/index.html.heex:229
|
#: lib/mv_web/live/member_live/index.html.heex:229
|
||||||
#: lib/mv_web/live/member_live/show.ex:52
|
#: lib/mv_web/live/member_live/show.ex:162
|
||||||
|
#: lib/mv_web/live/member_live/show.ex:164
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "Paid"
|
msgid "Paid"
|
||||||
msgstr "Bezahlt"
|
msgstr "Bezahlt"
|
||||||
|
|
||||||
#: lib/mv_web/live/member_live/form.ex:49
|
|
||||||
#: lib/mv_web/live/member_live/index.html.heex:202
|
#: lib/mv_web/live/member_live/index.html.heex:202
|
||||||
#: lib/mv_web/live/member_live/show.ex:55
|
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "Phone Number"
|
msgid "Phone Number"
|
||||||
msgstr "Telefonnummer"
|
msgstr "Telefonnummer"
|
||||||
|
|
||||||
#: lib/mv_web/live/member_live/form.ex:56
|
#: lib/mv_web/live/member_live/form.ex:97
|
||||||
#: lib/mv_web/live/member_live/index.html.heex:166
|
#: lib/mv_web/live/member_live/index.html.heex:166
|
||||||
#: lib/mv_web/live/member_live/show.ex:62
|
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "Postal Code"
|
msgid "Postal Code"
|
||||||
msgstr "Postleitzahl"
|
msgstr "Postleitzahl"
|
||||||
|
|
||||||
#: lib/mv_web/live/member_live/form.ex:79
|
#: lib/mv_web/live/member_live/form.ex:211
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "Save Member"
|
msgid "Save Member"
|
||||||
msgstr "Mitglied speichern"
|
msgstr "Mitglied speichern"
|
||||||
|
|
@ -165,58 +162,48 @@ msgstr "Mitglied speichern"
|
||||||
#: lib/mv_web/live/custom_field_live/form.ex:66
|
#: lib/mv_web/live/custom_field_live/form.ex:66
|
||||||
#: lib/mv_web/live/custom_field_value_live/form.ex:74
|
#: lib/mv_web/live/custom_field_value_live/form.ex:74
|
||||||
#: lib/mv_web/live/global_settings_live.ex:55
|
#: lib/mv_web/live/global_settings_live.ex:55
|
||||||
#: lib/mv_web/live/member_live/form.ex:78
|
#: lib/mv_web/live/member_live/form.ex:48
|
||||||
|
#: lib/mv_web/live/member_live/form.ex:210
|
||||||
#: lib/mv_web/live/user_live/form.ex:249
|
#: lib/mv_web/live/user_live/form.ex:249
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "Saving..."
|
msgid "Saving..."
|
||||||
msgstr "Speichern..."
|
msgstr "Speichern..."
|
||||||
|
|
||||||
#: lib/mv_web/live/member_live/form.ex:54
|
#: lib/mv_web/live/member_live/form.ex:91
|
||||||
#: lib/mv_web/live/member_live/index.html.heex:130
|
#: lib/mv_web/live/member_live/index.html.heex:130
|
||||||
#: lib/mv_web/live/member_live/show.ex:60
|
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "Street"
|
msgid "Street"
|
||||||
msgstr "Straße"
|
msgstr "Straße"
|
||||||
|
|
||||||
#: lib/mv_web/live/member_live/show.ex:48
|
|
||||||
#, elixir-autogen, elixir-format
|
|
||||||
msgid "Id"
|
|
||||||
msgstr "ID"
|
|
||||||
|
|
||||||
#: lib/mv_web/live/member_live/index.html.heex:234
|
#: lib/mv_web/live/member_live/index.html.heex:234
|
||||||
#: lib/mv_web/live/member_live/index/formatter.ex:62
|
#: lib/mv_web/live/member_live/index/formatter.ex:62
|
||||||
#: lib/mv_web/live/member_live/show.ex:53
|
#: lib/mv_web/live/member_live/show.ex:290
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "No"
|
msgid "No"
|
||||||
msgstr "Nein"
|
msgstr "Nein"
|
||||||
|
|
||||||
#: lib/mv_web/live/member_live/show.ex:113
|
#: lib/mv_web/live/member_live/show.ex:196
|
||||||
#, elixir-autogen, elixir-format, fuzzy
|
#, elixir-autogen, elixir-format, fuzzy
|
||||||
msgid "Show Member"
|
msgid "Show Member"
|
||||||
msgstr "Mitglied anzeigen"
|
msgstr "Mitglied anzeigen"
|
||||||
|
|
||||||
#: lib/mv_web/live/member_live/show.ex:34
|
|
||||||
#, elixir-autogen, elixir-format
|
|
||||||
msgid "This is a member record from your database."
|
|
||||||
msgstr "Dies ist ein Mitglied aus deiner Datenbank."
|
|
||||||
|
|
||||||
#: lib/mv_web/live/member_live/index.html.heex:234
|
#: lib/mv_web/live/member_live/index.html.heex:234
|
||||||
#: lib/mv_web/live/member_live/index/formatter.ex:61
|
#: lib/mv_web/live/member_live/index/formatter.ex:61
|
||||||
#: lib/mv_web/live/member_live/show.ex:53
|
#: lib/mv_web/live/member_live/show.ex:290
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "Yes"
|
msgid "Yes"
|
||||||
msgstr "Ja"
|
msgstr "Ja"
|
||||||
|
|
||||||
#: lib/mv_web/live/custom_field_live/form.ex:110
|
#: lib/mv_web/live/custom_field_live/form.ex:110
|
||||||
#: lib/mv_web/live/custom_field_value_live/form.ex:233
|
#: lib/mv_web/live/custom_field_value_live/form.ex:233
|
||||||
#: lib/mv_web/live/member_live/form.ex:137
|
#: lib/mv_web/live/member_live/form.ex:269
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "create"
|
msgid "create"
|
||||||
msgstr "erstellt"
|
msgstr "erstellt"
|
||||||
|
|
||||||
#: lib/mv_web/live/custom_field_live/form.ex:111
|
#: lib/mv_web/live/custom_field_live/form.ex:111
|
||||||
#: lib/mv_web/live/custom_field_value_live/form.ex:234
|
#: lib/mv_web/live/custom_field_value_live/form.ex:234
|
||||||
#: lib/mv_web/live/member_live/form.ex:138
|
#: lib/mv_web/live/member_live/form.ex:270
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "update"
|
msgid "update"
|
||||||
msgstr "aktualisiert"
|
msgstr "aktualisiert"
|
||||||
|
|
@ -226,7 +213,7 @@ msgstr "aktualisiert"
|
||||||
msgid "Incorrect email or password"
|
msgid "Incorrect email or password"
|
||||||
msgstr "Falsche E-Mail oder Passwort"
|
msgstr "Falsche E-Mail oder Passwort"
|
||||||
|
|
||||||
#: lib/mv_web/live/member_live/form.ex:144
|
#: lib/mv_web/live/member_live/form.ex:276
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "Member %{action} successfully"
|
msgid "Member %{action} successfully"
|
||||||
msgstr "Mitglied %{action} erfolgreich"
|
msgstr "Mitglied %{action} erfolgreich"
|
||||||
|
|
@ -259,7 +246,7 @@ msgstr "Ihr Passwort wurde erfolgreich zurückgesetzt"
|
||||||
#: lib/mv_web/live/custom_field_live/form.ex:69
|
#: lib/mv_web/live/custom_field_live/form.ex:69
|
||||||
#: lib/mv_web/live/custom_field_live/index.ex:120
|
#: lib/mv_web/live/custom_field_live/index.ex:120
|
||||||
#: lib/mv_web/live/custom_field_value_live/form.ex:77
|
#: lib/mv_web/live/custom_field_value_live/form.ex:77
|
||||||
#: lib/mv_web/live/member_live/form.ex:81
|
#: lib/mv_web/live/member_live/form.ex:208
|
||||||
#: lib/mv_web/live/user_live/form.ex:252
|
#: lib/mv_web/live/user_live/form.ex:252
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "Cancel"
|
msgid "Cancel"
|
||||||
|
|
@ -503,7 +490,7 @@ msgstr "Benutzer*in wird ohne Passwort erstellt. Aktivieren Sie 'Passwort setzen
|
||||||
msgid "Linked Member"
|
msgid "Linked Member"
|
||||||
msgstr "Verknüpftes Mitglied"
|
msgstr "Verknüpftes Mitglied"
|
||||||
|
|
||||||
#: lib/mv_web/live/member_live/show.ex:63
|
#: lib/mv_web/live/member_live/show.ex:106
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "Linked User"
|
msgid "Linked User"
|
||||||
msgstr "Verknüpfte*r Benutzer*in"
|
msgstr "Verknüpfte*r Benutzer*in"
|
||||||
|
|
@ -514,13 +501,12 @@ msgstr "Verknüpfte*r Benutzer*in"
|
||||||
msgid "No member linked"
|
msgid "No member linked"
|
||||||
msgstr "Kein Mitglied verknüpft"
|
msgstr "Kein Mitglied verknüpft"
|
||||||
|
|
||||||
#: lib/mv_web/live/member_live/show.ex:73
|
#: lib/mv_web/live/member_live/show.ex:116
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "No user linked"
|
msgid "No user linked"
|
||||||
msgstr "Keine*r Benutzer*in verknüpft"
|
msgstr "Keine*r Benutzer*in verknüpft"
|
||||||
|
|
||||||
#: lib/mv_web/live/member_live/show.ex:37
|
#: lib/mv_web/live/member_live/show.ex:30
|
||||||
#: lib/mv_web/live/member_live/show.ex:39
|
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "Back to members list"
|
msgid "Back to members list"
|
||||||
msgstr "Zurück zur Mitgliederliste"
|
msgstr "Zurück zur Mitgliederliste"
|
||||||
|
|
@ -601,12 +587,6 @@ msgstr "Diese E-Mail-Adresse ist bereits mit einem anderen OIDC-Konto verknüpft
|
||||||
msgid "Choose a custom field"
|
msgid "Choose a custom field"
|
||||||
msgstr "Wähle ein Benutzerdefiniertes Feld"
|
msgstr "Wähle ein Benutzerdefiniertes Feld"
|
||||||
|
|
||||||
#: lib/mv_web/live/member_live/form.ex:58
|
|
||||||
#: lib/mv_web/live/member_live/show.ex:78
|
|
||||||
#, elixir-autogen, elixir-format
|
|
||||||
msgid "Custom Field Values"
|
|
||||||
msgstr "Benutzerdefinierte Feldwerte"
|
|
||||||
|
|
||||||
#: lib/mv_web/live/custom_field_value_live/form.ex:51
|
#: lib/mv_web/live/custom_field_value_live/form.ex:51
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "Custom field"
|
msgid "Custom field"
|
||||||
|
|
@ -643,6 +623,8 @@ msgid "Use this form to manage custom_field records in your database."
|
||||||
msgstr "Verwende dieses Formular, um Benutzerdefinierte Felder in deiner Datenbank zu verwalten."
|
msgstr "Verwende dieses Formular, um Benutzerdefinierte Felder in deiner Datenbank zu verwalten."
|
||||||
|
|
||||||
#: lib/mv_web/components/layouts/navbar.ex:26
|
#: lib/mv_web/components/layouts/navbar.ex:26
|
||||||
|
#: lib/mv_web/live/member_live/form.ex:135
|
||||||
|
#: lib/mv_web/live/member_live/show.ex:136
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "Custom Fields"
|
msgid "Custom Fields"
|
||||||
msgstr "Benutzerdefinierte Felder"
|
msgstr "Benutzerdefinierte Felder"
|
||||||
|
|
@ -813,11 +795,6 @@ msgstr "Im E-Mail-Programm öffnen"
|
||||||
msgid "Tip: Paste email addresses into the BCC field for privacy compliance"
|
msgid "Tip: Paste email addresses into the BCC field for privacy compliance"
|
||||||
msgstr "Tipp: E-Mail-Adressen ins BCC-Feld einfügen für Datenschutzkonformität"
|
msgstr "Tipp: E-Mail-Adressen ins BCC-Feld einfügen für Datenschutzkonformität"
|
||||||
|
|
||||||
#: lib/mv_web/live/member_live/form.ex:40
|
|
||||||
#, elixir-autogen, elixir-format
|
|
||||||
msgid "Fields marked with an asterisk (*) cannot be empty."
|
|
||||||
msgstr "Felder, die mit einem Sternchen (*) markiert sind, dürfen nicht leer bleiben."
|
|
||||||
|
|
||||||
#: lib/mv_web/components/core_components.ex:206
|
#: lib/mv_web/components/core_components.ex:206
|
||||||
#: lib/mv_web/components/core_components.ex:223
|
#: lib/mv_web/components/core_components.ex:223
|
||||||
#: lib/mv_web/components/core_components.ex:250
|
#: lib/mv_web/components/core_components.ex:250
|
||||||
|
|
@ -848,411 +825,507 @@ msgstr "Nicht bezahlt"
|
||||||
msgid "Payment filter"
|
msgid "Payment filter"
|
||||||
msgstr "Zahlungsfilter"
|
msgstr "Zahlungsfilter"
|
||||||
|
|
||||||
|
#: lib/mv_web/live/member_live/show.ex:70
|
||||||
|
#, elixir-autogen, elixir-format
|
||||||
|
msgid "Address"
|
||||||
|
msgstr "Adresse"
|
||||||
|
|
||||||
|
#: lib/mv_web/live/member_live/form.ex:37
|
||||||
|
#: lib/mv_web/live/member_live/show.ex:32
|
||||||
|
#, elixir-autogen, elixir-format
|
||||||
|
msgid "Back"
|
||||||
|
msgstr "Zurück"
|
||||||
|
|
||||||
|
#: lib/mv_web/live/member_live/form.ex:65
|
||||||
|
#: lib/mv_web/live/member_live/show.ex:50
|
||||||
|
#, elixir-autogen, elixir-format
|
||||||
|
msgid "Coming soon"
|
||||||
|
msgstr "Demnächst verfügbar"
|
||||||
|
|
||||||
|
#: lib/mv_web/live/member_live/form.ex:57
|
||||||
|
#: lib/mv_web/live/member_live/show.ex:48
|
||||||
|
#, elixir-autogen, elixir-format
|
||||||
|
msgid "Contact Data"
|
||||||
|
msgstr "Kontaktdaten"
|
||||||
|
|
||||||
|
#: lib/mv_web/live/member_live/form.ex:175
|
||||||
|
#: lib/mv_web/live/member_live/show.ex:160
|
||||||
|
#, elixir-autogen, elixir-format
|
||||||
|
msgid "Contribution"
|
||||||
|
msgstr "Beitrag"
|
||||||
|
|
||||||
|
#: lib/mv_web/live/member_live/form.ex:94
|
||||||
|
#, elixir-autogen, elixir-format
|
||||||
|
msgid "Nr."
|
||||||
|
msgstr "Nr."
|
||||||
|
|
||||||
|
#: lib/mv_web/live/member_live/form.ex:186
|
||||||
|
#: lib/mv_web/live/member_live/show.ex:161
|
||||||
|
#, elixir-autogen, elixir-format
|
||||||
|
msgid "Payment Cycle"
|
||||||
|
msgstr "Zahlungszyklus"
|
||||||
|
|
||||||
|
#: lib/mv_web/live/member_live/form.ex:166
|
||||||
|
#: lib/mv_web/live/member_live/show.ex:153
|
||||||
|
#, elixir-autogen, elixir-format
|
||||||
|
msgid "Payment Data"
|
||||||
|
msgstr "Beitragsdaten"
|
||||||
|
|
||||||
|
#: lib/mv_web/live/member_live/form.ex:68
|
||||||
|
#: lib/mv_web/live/member_live/show.ex:52
|
||||||
|
#, elixir-autogen, elixir-format
|
||||||
|
msgid "Payments"
|
||||||
|
msgstr "Zahlungen"
|
||||||
|
|
||||||
|
#: lib/mv_web/live/member_live/show.ex:166
|
||||||
|
#, elixir-autogen, elixir-format
|
||||||
|
msgid "Pending"
|
||||||
|
msgstr "Ausstehend"
|
||||||
|
|
||||||
|
#: lib/mv_web/live/member_live/form.ex:76
|
||||||
|
#: lib/mv_web/live/member_live/show.ex:60
|
||||||
|
#, elixir-autogen, elixir-format
|
||||||
|
msgid "Personal Data"
|
||||||
|
msgstr "Persönliche Daten"
|
||||||
|
|
||||||
|
#: lib/mv_web/live/member_live/form.ex:111
|
||||||
|
#: lib/mv_web/live/member_live/show.ex:87
|
||||||
|
#, elixir-autogen, elixir-format
|
||||||
|
msgid "Phone"
|
||||||
|
msgstr "Telefon"
|
||||||
|
|
||||||
|
#: lib/mv_web/live/member_live/form.ex:49
|
||||||
|
#, elixir-autogen, elixir-format
|
||||||
|
msgid "Save"
|
||||||
|
msgstr "Speichern"
|
||||||
|
|
||||||
|
#: lib/mv_web/live/member_live/form.ex:169
|
||||||
|
#: lib/mv_web/live/member_live/show.ex:156
|
||||||
|
#, elixir-autogen, elixir-format
|
||||||
|
msgid "This data is for demonstration purposes only (mockup)."
|
||||||
|
msgstr "Diese Daten dienen nur zu Demonstrationszwecken (Mockup)."
|
||||||
|
|
||||||
|
#: lib/mv_web/live/member_live/form.ex:190
|
||||||
|
#: lib/mv_web/live/member_live/show.ex:161
|
||||||
|
#, elixir-autogen, elixir-format
|
||||||
|
msgid "monthly"
|
||||||
|
msgstr "monatlich"
|
||||||
|
|
||||||
|
#: lib/mv_web/live/member_live/form.ex:194
|
||||||
|
#, elixir-autogen, elixir-format
|
||||||
|
msgid "yearly"
|
||||||
|
msgstr "jährlich"
|
||||||
|
|
||||||
|
#: lib/mv_web/live/member_live/form.ex:242
|
||||||
|
#, elixir-autogen, elixir-format
|
||||||
|
msgid "Create Member"
|
||||||
|
msgstr "Mitglied erstellen"
|
||||||
|
|
||||||
#: lib/mv_web/live/contribution_period_live/show.ex:107
|
#: lib/mv_web/live/contribution_period_live/show.ex:107
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "%{count} period selected"
|
msgid "%{count} period selected"
|
||||||
msgid_plural "%{count} periods selected"
|
msgid_plural "%{count} periods selected"
|
||||||
msgstr[0] "%{count} Beiträge ausgewählt"
|
msgstr[0] ""
|
||||||
msgstr[1] "%{count} Beiträge ausgewählt"
|
msgstr[1] ""
|
||||||
|
|
||||||
#: lib/mv_web/live/contribution_type_live/index.ex:113
|
#: lib/mv_web/live/contribution_type_live/index.ex:113
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "About Contribution Types"
|
msgid "About Contribution Types"
|
||||||
msgstr "Über Beitragsarten"
|
msgstr ""
|
||||||
|
|
||||||
#: lib/mv_web/live/contribution_period_live/show.ex:138
|
#: lib/mv_web/live/contribution_period_live/show.ex:138
|
||||||
#: lib/mv_web/live/contribution_type_live/index.ex:53
|
#: lib/mv_web/live/contribution_type_live/index.ex:53
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "Amount"
|
msgid "Amount"
|
||||||
msgstr "Betrag"
|
msgstr ""
|
||||||
|
|
||||||
#: lib/mv_web/live/contribution_period_live/show.ex:48
|
#: lib/mv_web/live/contribution_period_live/show.ex:48
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "Back to Settings"
|
msgid "Back to Settings"
|
||||||
msgstr "Zurück zu Einstellungen"
|
msgstr ""
|
||||||
|
|
||||||
#: lib/mv_web/live/contribution_type_live/index.ex:124
|
#: lib/mv_web/live/contribution_type_live/index.ex:124
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "Can be changed at any time. Amount changes affect future periods only."
|
msgid "Can be changed at any time. Amount changes affect future periods only."
|
||||||
msgstr "Kann jederzeit geändert werden. Betragsänderungen wirken sich nur auf zukünftige Beiträge aus."
|
msgstr ""
|
||||||
|
|
||||||
#: lib/mv_web/live/contribution_type_live/index.ex:77
|
#: lib/mv_web/live/contribution_type_live/index.ex:77
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "Cannot delete - members assigned"
|
msgid "Cannot delete - members assigned"
|
||||||
msgstr "Löschen nicht möglich - Mitglieder zugewiesen"
|
msgstr ""
|
||||||
|
|
||||||
#: lib/mv_web/live/contribution_period_live/show.ex:83
|
#: lib/mv_web/live/contribution_period_live/show.ex:83
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "Change Contribution Type"
|
msgid "Change Contribution Type"
|
||||||
msgstr "Beitragsart ändern"
|
msgstr ""
|
||||||
|
|
||||||
#: lib/mv_web/live/contribution_settings_live.ex:42
|
#: lib/mv_web/live/contribution_settings_live.ex:42
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "Configure global settings for membership contributions."
|
msgid "Configure global settings for membership contributions."
|
||||||
msgstr "Globale Einstellungen für Mitgliedsbeiträge konfigurieren."
|
msgstr ""
|
||||||
|
|
||||||
#: lib/mv_web/components/layouts/navbar.ex:34
|
#: lib/mv_web/components/layouts/navbar.ex:34
|
||||||
#: lib/mv_web/live/contribution_settings_live.ex:27
|
#: lib/mv_web/live/contribution_settings_live.ex:27
|
||||||
#: lib/mv_web/live/contribution_settings_live.ex:40
|
#: lib/mv_web/live/contribution_settings_live.ex:40
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format, fuzzy
|
||||||
msgid "Contribution Settings"
|
msgid "Contribution Settings"
|
||||||
msgstr "Beitragseinstellungen"
|
msgstr "Beitrag"
|
||||||
|
|
||||||
#: lib/mv_web/live/contribution_period_live/show.ex:62
|
#: lib/mv_web/live/contribution_period_live/show.ex:62
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format, fuzzy
|
||||||
msgid "Contribution Start"
|
msgid "Contribution Start"
|
||||||
msgstr "Beitragsbeginn"
|
msgstr "Beitrag"
|
||||||
|
|
||||||
#: lib/mv_web/components/layouts/navbar.ex:32
|
#: lib/mv_web/components/layouts/navbar.ex:32
|
||||||
#: lib/mv_web/live/contribution_type_live/index.ex:25
|
#: lib/mv_web/live/contribution_type_live/index.ex:25
|
||||||
#: lib/mv_web/live/contribution_type_live/index.ex:36
|
#: lib/mv_web/live/contribution_type_live/index.ex:36
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format, fuzzy
|
||||||
msgid "Contribution Types"
|
msgid "Contribution Types"
|
||||||
msgstr "Beitragsarten"
|
msgstr "Beitrag"
|
||||||
|
|
||||||
#: lib/mv_web/live/contribution_settings_live.ex:224
|
#: lib/mv_web/live/contribution_settings_live.ex:224
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format, fuzzy
|
||||||
msgid "Contribution start"
|
msgid "Contribution start"
|
||||||
msgstr "Beitragsbeginn"
|
msgstr "Beitrag"
|
||||||
|
|
||||||
#: lib/mv_web/live/contribution_period_live/show.ex:41
|
#: lib/mv_web/live/contribution_period_live/show.ex:41
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format, fuzzy
|
||||||
msgid "Contribution type"
|
msgid "Contribution type"
|
||||||
msgstr "Beitragsart"
|
msgstr "Beitrag"
|
||||||
|
|
||||||
#: lib/mv_web/live/contribution_type_live/index.ex:117
|
#: lib/mv_web/live/contribution_type_live/index.ex:117
|
||||||
#, elixir-autogen, elixir-format
|
#, 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."
|
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 "Beitragsarten definieren verschiedene Mitgliedsbeitragsstrukturen. Jede Art hat ein festes Intervall (monatlich, quartalsweise, halbjährlich, jährlich), das nach der Erstellung nicht mehr geändert werden kann."
|
msgstr ""
|
||||||
|
|
||||||
#: lib/mv_web/components/layouts/navbar.ex:30
|
#: lib/mv_web/components/layouts/navbar.ex:30
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format, fuzzy
|
||||||
msgid "Contributions"
|
msgid "Contributions"
|
||||||
msgstr "Beiträge"
|
msgstr "Beitrag"
|
||||||
|
|
||||||
#: lib/mv_web/live/contribution_period_live/show.ex:39
|
#: lib/mv_web/live/contribution_period_live/show.ex:39
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format, fuzzy
|
||||||
msgid "Contributions for %{name}"
|
msgid "Contributions for %{name}"
|
||||||
msgstr "Beiträge für %{name}"
|
msgstr "Beitrag"
|
||||||
|
|
||||||
#: lib/mv_web/live/contribution_period_live/show.ex:159
|
#: lib/mv_web/live/contribution_period_live/show.ex:159
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "Current"
|
msgid "Current"
|
||||||
msgstr "Aktuell"
|
msgstr ""
|
||||||
|
|
||||||
#: lib/mv_web/live/contribution_settings_live.ex:60
|
#: lib/mv_web/live/contribution_settings_live.ex:60
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "Default Contribution Type"
|
msgid "Default Contribution Type"
|
||||||
msgstr "Standard-Beitragsart"
|
msgstr ""
|
||||||
|
|
||||||
#: lib/mv_web/live/contribution_type_live/index.ex:133
|
#: lib/mv_web/live/contribution_type_live/index.ex:133
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format, fuzzy
|
||||||
msgid "Deletion"
|
msgid "Deletion"
|
||||||
msgstr "Löschung"
|
msgstr "Löschen"
|
||||||
|
|
||||||
#: lib/mv_web/live/contribution_settings_live.ex:173
|
#: lib/mv_web/live/contribution_settings_live.ex:173
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "Example: Member Contribution View"
|
msgid "Example: Member Contribution View"
|
||||||
msgstr "Beispiel: Mitglieder-Beitragsansicht"
|
msgstr ""
|
||||||
|
|
||||||
#: lib/mv_web/live/contribution_settings_live.ex:113
|
#: lib/mv_web/live/contribution_settings_live.ex:113
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "Examples"
|
msgid "Examples"
|
||||||
msgstr "Beispiele"
|
msgstr ""
|
||||||
|
|
||||||
#: lib/mv_web/live/contribution_settings_live.ex:262
|
#: lib/mv_web/live/contribution_settings_live.ex:262
|
||||||
#: lib/mv_web/live/contribution_type_live/index.ex:172
|
#: lib/mv_web/live/contribution_type_live/index.ex:172
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "Family"
|
msgid "Family"
|
||||||
msgstr "Familie"
|
msgstr ""
|
||||||
|
|
||||||
#: lib/mv_web/live/contribution_type_live/index.ex:128
|
#: lib/mv_web/live/contribution_type_live/index.ex:128
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "Fixed after creation. Members can only switch between types with the same interval."
|
msgid "Fixed after creation. Members can only switch between types with the same interval."
|
||||||
msgstr "Nach der Erstellung unveränderlich. Mitglieder können nur zwischen Arten mit demselben Intervall wechseln."
|
msgstr ""
|
||||||
|
|
||||||
#: lib/mv_web/live/contribution_settings_live.ex:228
|
#: lib/mv_web/live/contribution_settings_live.ex:228
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "Generated periods"
|
msgid "Generated periods"
|
||||||
msgstr "Generierte Beiträge"
|
msgstr ""
|
||||||
|
|
||||||
#: lib/mv_web/live/contribution_settings_live.ex:52
|
#: lib/mv_web/live/contribution_settings_live.ex:52
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format, fuzzy
|
||||||
msgid "Global Settings"
|
msgid "Global Settings"
|
||||||
msgstr "Globale Einstellungen"
|
msgstr "Vereinsdaten"
|
||||||
|
|
||||||
#: lib/mv_web/live/contribution_period_live/show.ex:343
|
#: lib/mv_web/live/contribution_period_live/show.ex:343
|
||||||
#: lib/mv_web/live/contribution_settings_live.ex:275
|
#: lib/mv_web/live/contribution_settings_live.ex:275
|
||||||
#: lib/mv_web/live/contribution_type_live/index.ex:203
|
#: lib/mv_web/live/contribution_type_live/index.ex:203
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "Half-yearly"
|
msgid "Half-yearly"
|
||||||
msgstr "Halbjährlich"
|
msgstr ""
|
||||||
|
|
||||||
#: lib/mv_web/live/contribution_type_live/index.ex:181
|
#: lib/mv_web/live/contribution_type_live/index.ex:181
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "Half-yearly contribution for supporting members"
|
msgid "Half-yearly contribution for supporting members"
|
||||||
msgstr "Halbjährlicher Beitrag für Fördermitglieder"
|
msgstr ""
|
||||||
|
|
||||||
#: lib/mv_web/live/contribution_period_live/show.ex:87
|
#: lib/mv_web/live/contribution_period_live/show.ex:87
|
||||||
#: lib/mv_web/live/contribution_type_live/index.ex:188
|
#: lib/mv_web/live/contribution_type_live/index.ex:188
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "Honorary"
|
msgid "Honorary"
|
||||||
msgstr "Ehrenmitglied"
|
msgstr ""
|
||||||
|
|
||||||
#: lib/mv_web/live/contribution_settings_live.ex:85
|
#: lib/mv_web/live/contribution_settings_live.ex:85
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "Include joining period"
|
msgid "Include joining period"
|
||||||
msgstr "Zahlt ab Zeitpunkt des Eintritts"
|
msgstr ""
|
||||||
|
|
||||||
#: lib/mv_web/live/contribution_period_live/show.ex:137
|
#: lib/mv_web/live/contribution_period_live/show.ex:137
|
||||||
#: lib/mv_web/live/contribution_type_live/index.ex:57
|
#: lib/mv_web/live/contribution_type_live/index.ex:57
|
||||||
#: lib/mv_web/live/contribution_type_live/index.ex:127
|
#: lib/mv_web/live/contribution_type_live/index.ex:127
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "Interval"
|
msgid "Interval"
|
||||||
msgstr "Intervall"
|
msgstr ""
|
||||||
|
|
||||||
#: lib/mv_web/live/contribution_settings_live.ex:220
|
#: lib/mv_web/live/contribution_settings_live.ex:220
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format, fuzzy
|
||||||
msgid "Joining date"
|
msgid "Joining date"
|
||||||
msgstr "Eintrittsdatum"
|
msgstr "Beitrittsdatum"
|
||||||
|
|
||||||
#: lib/mv_web/live/contribution_period_live/show.ex:331
|
#: lib/mv_web/live/contribution_period_live/show.ex:331
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "Joining year - reduced to 0"
|
msgid "Joining year - reduced to 0"
|
||||||
msgstr "Eintrittsjahr - auf 0 reduziert"
|
msgstr ""
|
||||||
|
|
||||||
#: lib/mv_web/live/contribution_type_live/index.ex:38
|
#: lib/mv_web/live/contribution_type_live/index.ex:38
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "Manage contribution types for membership fees."
|
msgid "Manage contribution types for membership fees."
|
||||||
msgstr "Beitragsarten für Mitgliedsbeiträge verwalten."
|
msgstr ""
|
||||||
|
|
||||||
#: lib/mv_web/live/contribution_period_live/show.ex:116
|
#: lib/mv_web/live/contribution_period_live/show.ex:116
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "Mark as Paid"
|
msgid "Mark as Paid"
|
||||||
msgstr "Als bezahlt markieren"
|
msgstr ""
|
||||||
|
|
||||||
#: lib/mv_web/live/contribution_period_live/show.ex:120
|
#: lib/mv_web/live/contribution_period_live/show.ex:120
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "Mark as Suspended"
|
msgid "Mark as Suspended"
|
||||||
msgstr "Als ausgesetzt markieren"
|
msgstr ""
|
||||||
|
|
||||||
#: lib/mv_web/live/contribution_period_live/show.ex:124
|
#: lib/mv_web/live/contribution_period_live/show.ex:124
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "Mark as Unpaid"
|
msgid "Mark as Unpaid"
|
||||||
msgstr "Als unbezahlt markieren"
|
msgstr ""
|
||||||
|
|
||||||
#: lib/mv_web/live/contribution_period_live/show.ex:26
|
#: lib/mv_web/live/contribution_period_live/show.ex:26
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "Member Contributions"
|
msgid "Member Contributions"
|
||||||
msgstr "Mitgliedsbeiträge"
|
msgstr ""
|
||||||
|
|
||||||
#: lib/mv_web/live/contribution_settings_live.ex:122
|
#: lib/mv_web/live/contribution_settings_live.ex:122
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "Member pays for the year they joined"
|
msgid "Member pays for the year they joined"
|
||||||
msgstr "Mitglied zahlt für das Eintrittsjahr"
|
msgstr ""
|
||||||
|
|
||||||
#: lib/mv_web/live/contribution_settings_live.ex:155
|
#: lib/mv_web/live/contribution_settings_live.ex:155
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "Member pays from the joining month"
|
msgid "Member pays from the joining month"
|
||||||
msgstr "Mitglied zahlt ab dem Eintrittsmonat"
|
msgstr ""
|
||||||
|
|
||||||
#: lib/mv_web/live/contribution_settings_live.ex:144
|
#: lib/mv_web/live/contribution_settings_live.ex:144
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "Member pays from the next full quarter"
|
msgid "Member pays from the next full quarter"
|
||||||
msgstr "Mitglied zahlt ab dem nächsten vollen Quartal"
|
msgstr ""
|
||||||
|
|
||||||
#: lib/mv_web/live/contribution_settings_live.ex:133
|
#: lib/mv_web/live/contribution_settings_live.ex:133
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "Member pays from the next full year"
|
msgid "Member pays from the next full year"
|
||||||
msgstr "Mitglied zahlt ab dem nächsten vollen Jahr"
|
msgstr ""
|
||||||
|
|
||||||
#: lib/mv_web/live/contribution_period_live/show.ex:43
|
#: lib/mv_web/live/contribution_period_live/show.ex:43
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format, fuzzy
|
||||||
msgid "Member since"
|
msgid "Member since"
|
||||||
msgstr "Mitglied seit"
|
msgstr "Mitglieder"
|
||||||
|
|
||||||
#: lib/mv_web/live/contribution_period_live/show.ex:92
|
#: lib/mv_web/live/contribution_period_live/show.ex:92
|
||||||
#, elixir-autogen, elixir-format
|
#, 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."
|
msgid "Members can only switch between contribution types with the same payment interval (e.g., yearly to yearly). This prevents complex period overlaps."
|
||||||
msgstr "Mitglieder können nur zwischen Beitragsarten mit demselben Zahlungsintervall wechseln (z.B. jährlich zu jährlich). Dies verhindert komplexe Periodenüberschneidungen."
|
msgstr ""
|
||||||
|
|
||||||
#: lib/mv_web/live/contribution_period_live/show.ex:341
|
#: lib/mv_web/live/contribution_period_live/show.ex:341
|
||||||
#: lib/mv_web/live/contribution_settings_live.ex:273
|
#: lib/mv_web/live/contribution_settings_live.ex:273
|
||||||
#: lib/mv_web/live/contribution_type_live/index.ex:201
|
#: lib/mv_web/live/contribution_type_live/index.ex:201
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format, fuzzy
|
||||||
msgid "Monthly"
|
msgid "Monthly"
|
||||||
msgstr "Monatlich"
|
msgstr "monatlich"
|
||||||
|
|
||||||
#: lib/mv_web/live/contribution_settings_live.ex:150
|
#: lib/mv_web/live/contribution_settings_live.ex:150
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "Monthly Interval - Joining Period Included"
|
msgid "Monthly Interval - Joining Period Included"
|
||||||
msgstr "Monatliches Intervall - Eintrittsperiode eingeschlossen"
|
msgstr ""
|
||||||
|
|
||||||
#: lib/mv_web/live/contribution_type_live/index.ex:165
|
#: lib/mv_web/live/contribution_type_live/index.ex:165
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "Monthly fee for students and trainees"
|
msgid "Monthly fee for students and trainees"
|
||||||
msgstr "Monatlicher Beitrag für Studierende und Auszubildende"
|
msgstr ""
|
||||||
|
|
||||||
#: lib/mv_web/live/contribution_type_live/index.ex:123
|
#: lib/mv_web/live/contribution_type_live/index.ex:123
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "Name & Amount"
|
msgid "Name & Amount"
|
||||||
msgstr "Name & Betrag"
|
msgstr ""
|
||||||
|
|
||||||
#: lib/mv_web/live/contribution_type_live/index.ex:42
|
#: lib/mv_web/live/contribution_type_live/index.ex:42
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format, fuzzy
|
||||||
msgid "New Contribution Type"
|
msgid "New Contribution Type"
|
||||||
msgstr "Neue Beitragsart"
|
msgstr "Beitrag"
|
||||||
|
|
||||||
#: lib/mv_web/live/contribution_type_live/index.ex:189
|
#: lib/mv_web/live/contribution_type_live/index.ex:189
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "No fee for honorary members"
|
msgid "No fee for honorary members"
|
||||||
msgstr "Kein Beitrag für Ehrenmitglieder"
|
msgstr ""
|
||||||
|
|
||||||
#: lib/mv_web/live/contribution_type_live/index.ex:134
|
#: lib/mv_web/live/contribution_type_live/index.ex:134
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "Only possible if no members are assigned to this type."
|
msgid "Only possible if no members are assigned to this type."
|
||||||
msgstr "Nur möglich, wenn keine Mitglieder dieser Art zugewiesen sind."
|
msgstr ""
|
||||||
|
|
||||||
#: lib/mv_web/live/contribution_period_live/show.ex:70
|
#: lib/mv_web/live/contribution_period_live/show.ex:70
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "Open Contributions"
|
msgid "Open Contributions"
|
||||||
msgstr "Offene Beiträge"
|
msgstr ""
|
||||||
|
|
||||||
#: lib/mv_web/live/contribution_period_live/show.ex:301
|
#: lib/mv_web/live/contribution_period_live/show.ex:301
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "Paid via bank transfer"
|
msgid "Paid via bank transfer"
|
||||||
msgstr "Per Überweisung bezahlt"
|
msgstr ""
|
||||||
|
|
||||||
#: lib/mv_web/live/contribution_period_live/show.ex:225
|
#: lib/mv_web/live/contribution_period_live/show.ex:225
|
||||||
#: lib/mv_web/live/contribution_settings_live.ex:197
|
#: lib/mv_web/live/contribution_settings_live.ex:197
|
||||||
#: lib/mv_web/live/contribution_type_live/index.ex:97
|
#: lib/mv_web/live/contribution_type_live/index.ex:97
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "Preview Mockup"
|
msgid "Preview Mockup"
|
||||||
msgstr "Vorschau"
|
msgstr ""
|
||||||
|
|
||||||
#: lib/mv_web/live/contribution_period_live/show.ex:342
|
#: lib/mv_web/live/contribution_period_live/show.ex:342
|
||||||
#: lib/mv_web/live/contribution_settings_live.ex:274
|
#: lib/mv_web/live/contribution_settings_live.ex:274
|
||||||
#: lib/mv_web/live/contribution_type_live/index.ex:202
|
#: lib/mv_web/live/contribution_type_live/index.ex:202
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "Quarterly"
|
msgid "Quarterly"
|
||||||
msgstr "Quartalsweise"
|
msgstr ""
|
||||||
|
|
||||||
#: lib/mv_web/live/contribution_settings_live.ex:139
|
#: lib/mv_web/live/contribution_settings_live.ex:139
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "Quarterly Interval - Joining Period Excluded"
|
msgid "Quarterly Interval - Joining Period Excluded"
|
||||||
msgstr "Quartalsintervall - Eintrittsperiode ausgeschlossen"
|
msgstr ""
|
||||||
|
|
||||||
#: lib/mv_web/live/contribution_type_live/index.ex:173
|
#: lib/mv_web/live/contribution_type_live/index.ex:173
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "Quarterly fee for family memberships"
|
msgid "Quarterly fee for family memberships"
|
||||||
msgstr "Quartalsbeitrag für Familienmitgliedschaften"
|
msgstr ""
|
||||||
|
|
||||||
#: lib/mv_web/live/contribution_period_live/show.ex:86
|
#: lib/mv_web/live/contribution_period_live/show.ex:86
|
||||||
#: lib/mv_web/live/contribution_settings_live.ex:250
|
#: lib/mv_web/live/contribution_settings_live.ex:250
|
||||||
#: lib/mv_web/live/contribution_type_live/index.ex:156
|
#: lib/mv_web/live/contribution_type_live/index.ex:156
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "Reduced"
|
msgid "Reduced"
|
||||||
msgstr "Ermäßigt"
|
msgstr ""
|
||||||
|
|
||||||
#: lib/mv_web/live/contribution_type_live/index.ex:157
|
#: lib/mv_web/live/contribution_type_live/index.ex:157
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "Reduced fee for unemployed, pensioners, or low income"
|
msgid "Reduced fee for unemployed, pensioners, or low income"
|
||||||
msgstr "Ermäßigter Beitrag für Arbeitslose, Rentner*innen oder Geringverdienende"
|
msgstr ""
|
||||||
|
|
||||||
#: lib/mv_web/live/contribution_period_live/show.ex:275
|
#: lib/mv_web/live/contribution_period_live/show.ex:275
|
||||||
#: lib/mv_web/live/contribution_settings_live.ex:244
|
#: lib/mv_web/live/contribution_settings_live.ex:244
|
||||||
#: lib/mv_web/live/contribution_type_live/index.ex:148
|
#: lib/mv_web/live/contribution_type_live/index.ex:148
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "Regular"
|
msgid "Regular"
|
||||||
msgstr "Regulär"
|
msgstr ""
|
||||||
|
|
||||||
#: lib/mv_web/live/contribution_period_live/show.ex:204
|
#: lib/mv_web/live/contribution_period_live/show.ex:204
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "Reopen"
|
msgid "Reopen"
|
||||||
msgstr "Wieder öffnen"
|
msgstr ""
|
||||||
|
|
||||||
#: lib/mv_web/live/contribution_settings_live.ex:176
|
#: lib/mv_web/live/contribution_settings_live.ex:176
|
||||||
#, elixir-autogen, elixir-format
|
#, 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."
|
msgid "See how the contribution periods will be displayed for an individual member. This example shows Maria Weber with multiple contribution periods."
|
||||||
msgstr "Sehen Sie, wie die Beitragsperioden für ein einzelnes Mitglied angezeigt werden. Dieses Beispiel zeigt Maria Weber mit mehreren Beitragsperioden."
|
msgstr ""
|
||||||
|
|
||||||
#: lib/mv_web/live/contribution_type_live/index.ex:149
|
#: lib/mv_web/live/contribution_type_live/index.ex:149
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "Standard membership fee for regular members"
|
msgid "Standard membership fee for regular members"
|
||||||
msgstr "Standard-Mitgliedsbeitrag für reguläre Mitglieder"
|
msgstr ""
|
||||||
|
|
||||||
#: lib/mv_web/live/contribution_period_live/show.ex:139
|
#: lib/mv_web/live/contribution_period_live/show.ex:139
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "Status"
|
msgid "Status"
|
||||||
msgstr "Status"
|
msgstr ""
|
||||||
|
|
||||||
#: lib/mv_web/live/contribution_settings_live.ex:256
|
#: lib/mv_web/live/contribution_settings_live.ex:256
|
||||||
#: lib/mv_web/live/contribution_type_live/index.ex:164
|
#: lib/mv_web/live/contribution_type_live/index.ex:164
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "Student"
|
msgid "Student"
|
||||||
msgstr "Student*in"
|
msgstr ""
|
||||||
|
|
||||||
#: lib/mv_web/live/contribution_type_live/index.ex:180
|
#: lib/mv_web/live/contribution_type_live/index.ex:180
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "Supporting Member"
|
msgid "Supporting Member"
|
||||||
msgstr "Fördermitglied"
|
msgstr ""
|
||||||
|
|
||||||
#: lib/mv_web/live/contribution_period_live/show.ex:195
|
#: lib/mv_web/live/contribution_period_live/show.ex:195
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "Suspend"
|
msgid "Suspend"
|
||||||
msgstr "Aussetzen"
|
msgstr ""
|
||||||
|
|
||||||
#: lib/mv_web/live/contribution_period_live/show.ex:259
|
#: lib/mv_web/live/contribution_period_live/show.ex:259
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "Suspended"
|
msgid "Suspended"
|
||||||
msgstr "Ausgesetzt"
|
msgstr ""
|
||||||
|
|
||||||
#: lib/mv_web/live/contribution_settings_live.ex:69
|
#: lib/mv_web/live/contribution_settings_live.ex:69
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "This contribution type is automatically assigned to all new members. Can be changed individually per member."
|
msgid "This contribution type is automatically assigned to all new members. Can be changed individually per member."
|
||||||
msgstr "Diese Beitragsart wird automatisch allen neuen Mitgliedern zugewiesen. Kann pro Mitglied individuell geändert werden."
|
msgstr ""
|
||||||
|
|
||||||
#: lib/mv_web/live/contribution_period_live/show.ex:227
|
#: lib/mv_web/live/contribution_period_live/show.ex:227
|
||||||
#: lib/mv_web/live/contribution_settings_live.ex:199
|
#: lib/mv_web/live/contribution_settings_live.ex:199
|
||||||
#: lib/mv_web/live/contribution_type_live/index.ex:99
|
#: lib/mv_web/live/contribution_type_live/index.ex:99
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "This page is not functional and only displays the planned features."
|
msgid "This page is not functional and only displays the planned features."
|
||||||
msgstr "Diese Seite ist nicht funktional und zeigt nur die geplanten Funktionen."
|
msgstr ""
|
||||||
|
|
||||||
#: lib/mv_web/live/contribution_period_live/show.ex:136
|
#: lib/mv_web/live/contribution_period_live/show.ex:136
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "Time Period"
|
msgid "Time Period"
|
||||||
msgstr "Zeitraum"
|
msgstr ""
|
||||||
|
|
||||||
#: lib/mv_web/live/contribution_period_live/show.ex:66
|
#: lib/mv_web/live/contribution_period_live/show.ex:66
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "Total Contributions"
|
msgid "Total Contributions"
|
||||||
msgstr "Beiträge gesamt"
|
msgstr ""
|
||||||
|
|
||||||
#: lib/mv_web/live/contribution_period_live/show.ex:250
|
#: lib/mv_web/live/contribution_period_live/show.ex:250
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "Unpaid"
|
msgid "Unpaid"
|
||||||
msgstr "Unbezahlt"
|
msgstr ""
|
||||||
|
|
||||||
#: lib/mv_web/live/contribution_settings_live.ex:183
|
#: lib/mv_web/live/contribution_settings_live.ex:183
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "View Example Member"
|
msgid "View Example Member"
|
||||||
msgstr "Beispielmitglied ansehen"
|
msgstr ""
|
||||||
|
|
||||||
#: lib/mv_web/live/contribution_settings_live.ex:90
|
#: lib/mv_web/live/contribution_settings_live.ex:90
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "When active: Members pay from the period of their joining."
|
msgid "When active: Members pay from the period of their joining."
|
||||||
msgstr "Wenn aktiv: Mitglieder zahlen ab der Periode ihres Eintritts."
|
msgstr ""
|
||||||
|
|
||||||
#: lib/mv_web/live/contribution_settings_live.ex:93
|
#: lib/mv_web/live/contribution_settings_live.ex:93
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "When inactive: Members pay from the next full period after joining."
|
msgid "When inactive: Members pay from the next full period after joining."
|
||||||
msgstr "Wenn inaktiv: Mitglieder zahlen ab der nächsten vollen Periode nach dem Eintritt."
|
msgstr ""
|
||||||
|
|
||||||
#: lib/mv_web/live/contribution_period_live/show.ex:98
|
#: lib/mv_web/live/contribution_period_live/show.ex:98
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "Why are not all contribution types shown?"
|
msgid "Why are not all contribution types shown?"
|
||||||
msgstr "Warum werden nicht alle Beitragsarten angezeigt?"
|
msgstr ""
|
||||||
|
|
||||||
#: lib/mv_web/live/contribution_period_live/show.ex:85
|
#: lib/mv_web/live/contribution_period_live/show.ex:85
|
||||||
#: lib/mv_web/live/contribution_period_live/show.ex:86
|
#: lib/mv_web/live/contribution_period_live/show.ex:86
|
||||||
|
|
@ -1260,31 +1333,30 @@ msgstr "Warum werden nicht alle Beitragsarten angezeigt?"
|
||||||
#: lib/mv_web/live/contribution_period_live/show.ex:344
|
#: lib/mv_web/live/contribution_period_live/show.ex:344
|
||||||
#: lib/mv_web/live/contribution_settings_live.ex:276
|
#: lib/mv_web/live/contribution_settings_live.ex:276
|
||||||
#: lib/mv_web/live/contribution_type_live/index.ex:204
|
#: lib/mv_web/live/contribution_type_live/index.ex:204
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format, fuzzy
|
||||||
msgid "Yearly"
|
msgid "Yearly"
|
||||||
msgstr "Jährlich"
|
msgstr "jährlich"
|
||||||
|
|
||||||
#: lib/mv_web/live/contribution_settings_live.ex:128
|
#: lib/mv_web/live/contribution_settings_live.ex:128
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "Yearly Interval - Joining Period Excluded"
|
msgid "Yearly Interval - Joining Period Excluded"
|
||||||
msgstr "Jährliches Intervall - Eintrittsperiode ausgeschlossen"
|
msgstr ""
|
||||||
|
|
||||||
#: lib/mv_web/live/contribution_settings_live.ex:117
|
#: lib/mv_web/live/contribution_settings_live.ex:117
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "Yearly Interval - Joining Period Included"
|
msgid "Yearly Interval - Joining Period Included"
|
||||||
msgstr "Jährliches Intervall - Eintrittsperiode eingeschlossen"
|
msgstr ""
|
||||||
|
|
||||||
#~ #: lib/mv_web/live/member_live/form.ex:48
|
|
||||||
#~ #: lib/mv_web/live/member_live/show.ex:51
|
|
||||||
#~ #, elixir-autogen, elixir-format
|
|
||||||
#~ msgid "Birth Date"
|
|
||||||
#~ msgstr "Geburtsdatum"
|
|
||||||
|
|
||||||
#~ #: lib/mv_web/live/user_live/show.ex:49
|
#~ #: lib/mv_web/live/user_live/show.ex:49
|
||||||
#~ #, elixir-autogen, elixir-format
|
#~ #, elixir-autogen, elixir-format
|
||||||
#~ msgid "ID"
|
#~ msgid "ID"
|
||||||
#~ msgstr "ID"
|
#~ msgstr "ID"
|
||||||
|
|
||||||
|
#~ #: lib/mv_web/live/member_live/show.ex:47
|
||||||
|
#~ #, elixir-autogen, elixir-format
|
||||||
|
#~ msgid "Id"
|
||||||
|
#~ msgstr "ID"
|
||||||
|
|
||||||
#~ #: lib/mv_web/live/user_live/show.ex:51
|
#~ #: lib/mv_web/live/user_live/show.ex:51
|
||||||
#~ #, elixir-autogen, elixir-format
|
#~ #, elixir-autogen, elixir-format
|
||||||
#~ msgid "Not set"
|
#~ msgid "Not set"
|
||||||
|
|
@ -1295,3 +1367,8 @@ msgstr "Jährliches Intervall - Eintrittsperiode eingeschlossen"
|
||||||
#~ #, elixir-autogen, elixir-format
|
#~ #, elixir-autogen, elixir-format
|
||||||
#~ msgid "OIDC ID"
|
#~ msgid "OIDC ID"
|
||||||
#~ msgstr "OIDC ID"
|
#~ msgstr "OIDC ID"
|
||||||
|
|
||||||
|
#~ #: lib/mv_web/live/member_live/show.ex:33
|
||||||
|
#~ #, elixir-autogen, elixir-format
|
||||||
|
#~ msgid "This is a member record from your database."
|
||||||
|
#~ msgstr "Dies ist ein Mitglied aus deiner Datenbank."
|
||||||
|
|
|
||||||
|
|
@ -29,9 +29,8 @@ msgstr ""
|
||||||
msgid "Attempting to reconnect"
|
msgid "Attempting to reconnect"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lib/mv_web/live/member_live/form.ex:53
|
#: lib/mv_web/live/member_live/form.ex:100
|
||||||
#: lib/mv_web/live/member_live/index.html.heex:184
|
#: lib/mv_web/live/member_live/index.html.heex:184
|
||||||
#: lib/mv_web/live/member_live/show.ex:59
|
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "City"
|
msgid "City"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
@ -51,16 +50,17 @@ msgstr ""
|
||||||
msgid "Edit"
|
msgid "Edit"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lib/mv_web/live/member_live/show.ex:42
|
#: lib/mv_web/live/member_live/form.ex:242
|
||||||
#: lib/mv_web/live/member_live/show.ex:114
|
#: lib/mv_web/live/member_live/show.ex:40
|
||||||
|
#: lib/mv_web/live/member_live/show.ex:197
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "Edit Member"
|
msgid "Edit Member"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lib/mv_web/live/contribution_period_live/show.ex:58
|
#: lib/mv_web/live/contribution_period_live/show.ex:58
|
||||||
#: lib/mv_web/live/member_live/form.ex:47
|
#: lib/mv_web/live/member_live/form.ex:106
|
||||||
#: lib/mv_web/live/member_live/index.html.heex:112
|
#: lib/mv_web/live/member_live/index.html.heex:112
|
||||||
#: lib/mv_web/live/member_live/show.ex:51
|
#: lib/mv_web/live/member_live/show.ex:75
|
||||||
#: lib/mv_web/live/user_live/form.ex:46
|
#: lib/mv_web/live/user_live/form.ex:46
|
||||||
#: lib/mv_web/live/user_live/index.html.heex:44
|
#: lib/mv_web/live/user_live/index.html.heex:44
|
||||||
#: lib/mv_web/live/user_live/show.ex:49
|
#: lib/mv_web/live/user_live/show.ex:49
|
||||||
|
|
@ -68,25 +68,26 @@ msgstr ""
|
||||||
msgid "Email"
|
msgid "Email"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lib/mv_web/live/member_live/form.ex:45
|
#: lib/mv_web/live/member_live/form.ex:81
|
||||||
#: lib/mv_web/live/member_live/show.ex:49
|
#: lib/mv_web/live/member_live/show.ex:64
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "First Name"
|
msgid "First Name"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lib/mv_web/live/member_live/form.ex:50
|
#: lib/mv_web/live/member_live/form.ex:117
|
||||||
#: lib/mv_web/live/member_live/index.html.heex:220
|
#: lib/mv_web/live/member_live/index.html.heex:220
|
||||||
#: lib/mv_web/live/member_live/show.ex:56
|
#: lib/mv_web/live/member_live/show.ex:93
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "Join Date"
|
msgid "Join Date"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lib/mv_web/live/member_live/form.ex:46
|
#: lib/mv_web/live/member_live/form.ex:84
|
||||||
#: lib/mv_web/live/member_live/show.ex:50
|
#: lib/mv_web/live/member_live/show.ex:65
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "Last Name"
|
msgid "Last Name"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: lib/mv_web/live/member_live/form.ex:44
|
||||||
#: lib/mv_web/live/member_live/index.html.heex:29
|
#: lib/mv_web/live/member_live/index.html.heex:29
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "New Member"
|
msgid "New Member"
|
||||||
|
|
@ -113,22 +114,20 @@ msgstr ""
|
||||||
msgid "close"
|
msgid "close"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lib/mv_web/live/member_live/form.ex:51
|
#: lib/mv_web/live/member_live/form.ex:120
|
||||||
#: lib/mv_web/live/member_live/show.ex:57
|
#: lib/mv_web/live/member_live/show.ex:98
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "Exit Date"
|
msgid "Exit Date"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lib/mv_web/live/member_live/form.ex:55
|
|
||||||
#: lib/mv_web/live/member_live/index.html.heex:148
|
#: lib/mv_web/live/member_live/index.html.heex:148
|
||||||
#: lib/mv_web/live/member_live/show.ex:61
|
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "House Number"
|
msgid "House Number"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lib/mv_web/live/contribution_period_live/show.ex:140
|
#: lib/mv_web/live/contribution_period_live/show.ex:140
|
||||||
#: lib/mv_web/live/member_live/form.ex:52
|
#: lib/mv_web/live/member_live/form.ex:126
|
||||||
#: lib/mv_web/live/member_live/show.ex:58
|
#: lib/mv_web/live/member_live/show.ex:124
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "Notes"
|
msgid "Notes"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
@ -137,28 +136,26 @@ msgstr ""
|
||||||
#: lib/mv_web/live/components/payment_filter_component.ex:144
|
#: lib/mv_web/live/components/payment_filter_component.ex:144
|
||||||
#: lib/mv_web/live/contribution_period_live/show.ex:186
|
#: lib/mv_web/live/contribution_period_live/show.ex:186
|
||||||
#: lib/mv_web/live/contribution_period_live/show.ex:241
|
#: lib/mv_web/live/contribution_period_live/show.ex:241
|
||||||
#: lib/mv_web/live/member_live/form.ex:48
|
#: lib/mv_web/live/member_live/form.ex:199
|
||||||
#: lib/mv_web/live/member_live/index.html.heex:229
|
#: lib/mv_web/live/member_live/index.html.heex:229
|
||||||
#: lib/mv_web/live/member_live/show.ex:52
|
#: lib/mv_web/live/member_live/show.ex:162
|
||||||
|
#: lib/mv_web/live/member_live/show.ex:164
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "Paid"
|
msgid "Paid"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lib/mv_web/live/member_live/form.ex:49
|
|
||||||
#: lib/mv_web/live/member_live/index.html.heex:202
|
#: lib/mv_web/live/member_live/index.html.heex:202
|
||||||
#: lib/mv_web/live/member_live/show.ex:55
|
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "Phone Number"
|
msgid "Phone Number"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lib/mv_web/live/member_live/form.ex:56
|
#: lib/mv_web/live/member_live/form.ex:97
|
||||||
#: lib/mv_web/live/member_live/index.html.heex:166
|
#: lib/mv_web/live/member_live/index.html.heex:166
|
||||||
#: lib/mv_web/live/member_live/show.ex:62
|
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "Postal Code"
|
msgid "Postal Code"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lib/mv_web/live/member_live/form.ex:79
|
#: lib/mv_web/live/member_live/form.ex:211
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "Save Member"
|
msgid "Save Member"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
@ -166,58 +163,48 @@ msgstr ""
|
||||||
#: lib/mv_web/live/custom_field_live/form.ex:66
|
#: lib/mv_web/live/custom_field_live/form.ex:66
|
||||||
#: lib/mv_web/live/custom_field_value_live/form.ex:74
|
#: lib/mv_web/live/custom_field_value_live/form.ex:74
|
||||||
#: lib/mv_web/live/global_settings_live.ex:55
|
#: lib/mv_web/live/global_settings_live.ex:55
|
||||||
#: lib/mv_web/live/member_live/form.ex:78
|
#: lib/mv_web/live/member_live/form.ex:48
|
||||||
|
#: lib/mv_web/live/member_live/form.ex:210
|
||||||
#: lib/mv_web/live/user_live/form.ex:249
|
#: lib/mv_web/live/user_live/form.ex:249
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "Saving..."
|
msgid "Saving..."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lib/mv_web/live/member_live/form.ex:54
|
#: lib/mv_web/live/member_live/form.ex:91
|
||||||
#: lib/mv_web/live/member_live/index.html.heex:130
|
#: lib/mv_web/live/member_live/index.html.heex:130
|
||||||
#: lib/mv_web/live/member_live/show.ex:60
|
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "Street"
|
msgid "Street"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lib/mv_web/live/member_live/show.ex:48
|
|
||||||
#, elixir-autogen, elixir-format
|
|
||||||
msgid "Id"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: lib/mv_web/live/member_live/index.html.heex:234
|
#: lib/mv_web/live/member_live/index.html.heex:234
|
||||||
#: lib/mv_web/live/member_live/index/formatter.ex:62
|
#: lib/mv_web/live/member_live/index/formatter.ex:62
|
||||||
#: lib/mv_web/live/member_live/show.ex:53
|
#: lib/mv_web/live/member_live/show.ex:290
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "No"
|
msgid "No"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lib/mv_web/live/member_live/show.ex:113
|
#: lib/mv_web/live/member_live/show.ex:196
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "Show Member"
|
msgid "Show Member"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lib/mv_web/live/member_live/show.ex:34
|
|
||||||
#, elixir-autogen, elixir-format
|
|
||||||
msgid "This is a member record from your database."
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: lib/mv_web/live/member_live/index.html.heex:234
|
#: lib/mv_web/live/member_live/index.html.heex:234
|
||||||
#: lib/mv_web/live/member_live/index/formatter.ex:61
|
#: lib/mv_web/live/member_live/index/formatter.ex:61
|
||||||
#: lib/mv_web/live/member_live/show.ex:53
|
#: lib/mv_web/live/member_live/show.ex:290
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "Yes"
|
msgid "Yes"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lib/mv_web/live/custom_field_live/form.ex:110
|
#: lib/mv_web/live/custom_field_live/form.ex:110
|
||||||
#: lib/mv_web/live/custom_field_value_live/form.ex:233
|
#: lib/mv_web/live/custom_field_value_live/form.ex:233
|
||||||
#: lib/mv_web/live/member_live/form.ex:137
|
#: lib/mv_web/live/member_live/form.ex:269
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "create"
|
msgid "create"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lib/mv_web/live/custom_field_live/form.ex:111
|
#: lib/mv_web/live/custom_field_live/form.ex:111
|
||||||
#: lib/mv_web/live/custom_field_value_live/form.ex:234
|
#: lib/mv_web/live/custom_field_value_live/form.ex:234
|
||||||
#: lib/mv_web/live/member_live/form.ex:138
|
#: lib/mv_web/live/member_live/form.ex:270
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "update"
|
msgid "update"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
@ -227,7 +214,7 @@ msgstr ""
|
||||||
msgid "Incorrect email or password"
|
msgid "Incorrect email or password"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lib/mv_web/live/member_live/form.ex:144
|
#: lib/mv_web/live/member_live/form.ex:276
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "Member %{action} successfully"
|
msgid "Member %{action} successfully"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
@ -260,7 +247,7 @@ msgstr ""
|
||||||
#: lib/mv_web/live/custom_field_live/form.ex:69
|
#: lib/mv_web/live/custom_field_live/form.ex:69
|
||||||
#: lib/mv_web/live/custom_field_live/index.ex:120
|
#: lib/mv_web/live/custom_field_live/index.ex:120
|
||||||
#: lib/mv_web/live/custom_field_value_live/form.ex:77
|
#: lib/mv_web/live/custom_field_value_live/form.ex:77
|
||||||
#: lib/mv_web/live/member_live/form.ex:81
|
#: lib/mv_web/live/member_live/form.ex:208
|
||||||
#: lib/mv_web/live/user_live/form.ex:252
|
#: lib/mv_web/live/user_live/form.ex:252
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "Cancel"
|
msgid "Cancel"
|
||||||
|
|
@ -504,7 +491,7 @@ msgstr ""
|
||||||
msgid "Linked Member"
|
msgid "Linked Member"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lib/mv_web/live/member_live/show.ex:63
|
#: lib/mv_web/live/member_live/show.ex:106
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "Linked User"
|
msgid "Linked User"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
@ -515,13 +502,12 @@ msgstr ""
|
||||||
msgid "No member linked"
|
msgid "No member linked"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lib/mv_web/live/member_live/show.ex:73
|
#: lib/mv_web/live/member_live/show.ex:116
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "No user linked"
|
msgid "No user linked"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lib/mv_web/live/member_live/show.ex:37
|
#: lib/mv_web/live/member_live/show.ex:30
|
||||||
#: lib/mv_web/live/member_live/show.ex:39
|
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "Back to members list"
|
msgid "Back to members list"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
@ -602,12 +588,6 @@ msgstr ""
|
||||||
msgid "Choose a custom field"
|
msgid "Choose a custom field"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lib/mv_web/live/member_live/form.ex:58
|
|
||||||
#: lib/mv_web/live/member_live/show.ex:78
|
|
||||||
#, elixir-autogen, elixir-format
|
|
||||||
msgid "Custom Field Values"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: lib/mv_web/live/custom_field_value_live/form.ex:51
|
#: lib/mv_web/live/custom_field_value_live/form.ex:51
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "Custom field"
|
msgid "Custom field"
|
||||||
|
|
@ -644,6 +624,8 @@ msgid "Use this form to manage custom_field records in your database."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lib/mv_web/components/layouts/navbar.ex:26
|
#: lib/mv_web/components/layouts/navbar.ex:26
|
||||||
|
#: lib/mv_web/live/member_live/form.ex:135
|
||||||
|
#: lib/mv_web/live/member_live/show.ex:136
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "Custom Fields"
|
msgid "Custom Fields"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
@ -814,11 +796,6 @@ msgstr ""
|
||||||
msgid "Tip: Paste email addresses into the BCC field for privacy compliance"
|
msgid "Tip: Paste email addresses into the BCC field for privacy compliance"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lib/mv_web/live/member_live/form.ex:40
|
|
||||||
#, elixir-autogen, elixir-format
|
|
||||||
msgid "Fields marked with an asterisk (*) cannot be empty."
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: lib/mv_web/components/core_components.ex:206
|
#: lib/mv_web/components/core_components.ex:206
|
||||||
#: lib/mv_web/components/core_components.ex:223
|
#: lib/mv_web/components/core_components.ex:223
|
||||||
#: lib/mv_web/components/core_components.ex:250
|
#: lib/mv_web/components/core_components.ex:250
|
||||||
|
|
@ -849,6 +826,102 @@ msgstr ""
|
||||||
msgid "Payment filter"
|
msgid "Payment filter"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: lib/mv_web/live/member_live/show.ex:70
|
||||||
|
#, elixir-autogen, elixir-format
|
||||||
|
msgid "Address"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: lib/mv_web/live/member_live/form.ex:37
|
||||||
|
#: lib/mv_web/live/member_live/show.ex:32
|
||||||
|
#, elixir-autogen, elixir-format
|
||||||
|
msgid "Back"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: lib/mv_web/live/member_live/form.ex:65
|
||||||
|
#: lib/mv_web/live/member_live/show.ex:50
|
||||||
|
#, elixir-autogen, elixir-format
|
||||||
|
msgid "Coming soon"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: lib/mv_web/live/member_live/form.ex:57
|
||||||
|
#: lib/mv_web/live/member_live/show.ex:48
|
||||||
|
#, elixir-autogen, elixir-format
|
||||||
|
msgid "Contact Data"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: lib/mv_web/live/member_live/form.ex:175
|
||||||
|
#: lib/mv_web/live/member_live/show.ex:160
|
||||||
|
#, elixir-autogen, elixir-format
|
||||||
|
msgid "Contribution"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: lib/mv_web/live/member_live/form.ex:94
|
||||||
|
#, elixir-autogen, elixir-format
|
||||||
|
msgid "Nr."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: lib/mv_web/live/member_live/form.ex:186
|
||||||
|
#: lib/mv_web/live/member_live/show.ex:161
|
||||||
|
#, elixir-autogen, elixir-format
|
||||||
|
msgid "Payment Cycle"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: lib/mv_web/live/member_live/form.ex:166
|
||||||
|
#: lib/mv_web/live/member_live/show.ex:153
|
||||||
|
#, elixir-autogen, elixir-format
|
||||||
|
msgid "Payment Data"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: lib/mv_web/live/member_live/form.ex:68
|
||||||
|
#: lib/mv_web/live/member_live/show.ex:52
|
||||||
|
#, elixir-autogen, elixir-format
|
||||||
|
msgid "Payments"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: lib/mv_web/live/member_live/show.ex:166
|
||||||
|
#, elixir-autogen, elixir-format
|
||||||
|
msgid "Pending"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: lib/mv_web/live/member_live/form.ex:76
|
||||||
|
#: lib/mv_web/live/member_live/show.ex:60
|
||||||
|
#, elixir-autogen, elixir-format
|
||||||
|
msgid "Personal Data"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: lib/mv_web/live/member_live/form.ex:111
|
||||||
|
#: lib/mv_web/live/member_live/show.ex:87
|
||||||
|
#, elixir-autogen, elixir-format
|
||||||
|
msgid "Phone"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: lib/mv_web/live/member_live/form.ex:49
|
||||||
|
#, elixir-autogen, elixir-format
|
||||||
|
msgid "Save"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: lib/mv_web/live/member_live/form.ex:169
|
||||||
|
#: lib/mv_web/live/member_live/show.ex:156
|
||||||
|
#, elixir-autogen, elixir-format
|
||||||
|
msgid "This data is for demonstration purposes only (mockup)."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: lib/mv_web/live/member_live/form.ex:190
|
||||||
|
#: lib/mv_web/live/member_live/show.ex:161
|
||||||
|
#, elixir-autogen, elixir-format
|
||||||
|
msgid "monthly"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: lib/mv_web/live/member_live/form.ex:194
|
||||||
|
#, elixir-autogen, elixir-format
|
||||||
|
msgid "yearly"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: lib/mv_web/live/member_live/form.ex:242
|
||||||
|
#, elixir-autogen, elixir-format
|
||||||
|
msgid "Create Member"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: lib/mv_web/live/contribution_period_live/show.ex:107
|
#: lib/mv_web/live/contribution_period_live/show.ex:107
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "%{count} period selected"
|
msgid "%{count} period selected"
|
||||||
|
|
|
||||||
|
|
@ -29,9 +29,8 @@ msgstr ""
|
||||||
msgid "Attempting to reconnect"
|
msgid "Attempting to reconnect"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lib/mv_web/live/member_live/form.ex:53
|
#: lib/mv_web/live/member_live/form.ex:100
|
||||||
#: lib/mv_web/live/member_live/index.html.heex:184
|
#: lib/mv_web/live/member_live/index.html.heex:184
|
||||||
#: lib/mv_web/live/member_live/show.ex:59
|
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "City"
|
msgid "City"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
@ -51,16 +50,17 @@ msgstr ""
|
||||||
msgid "Edit"
|
msgid "Edit"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lib/mv_web/live/member_live/show.ex:42
|
#: lib/mv_web/live/member_live/form.ex:242
|
||||||
#: lib/mv_web/live/member_live/show.ex:114
|
#: lib/mv_web/live/member_live/show.ex:40
|
||||||
|
#: lib/mv_web/live/member_live/show.ex:197
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "Edit Member"
|
msgid "Edit Member"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lib/mv_web/live/contribution_period_live/show.ex:58
|
#: lib/mv_web/live/contribution_period_live/show.ex:58
|
||||||
#: lib/mv_web/live/member_live/form.ex:47
|
#: lib/mv_web/live/member_live/form.ex:106
|
||||||
#: lib/mv_web/live/member_live/index.html.heex:112
|
#: lib/mv_web/live/member_live/index.html.heex:112
|
||||||
#: lib/mv_web/live/member_live/show.ex:51
|
#: lib/mv_web/live/member_live/show.ex:75
|
||||||
#: lib/mv_web/live/user_live/form.ex:46
|
#: lib/mv_web/live/user_live/form.ex:46
|
||||||
#: lib/mv_web/live/user_live/index.html.heex:44
|
#: lib/mv_web/live/user_live/index.html.heex:44
|
||||||
#: lib/mv_web/live/user_live/show.ex:49
|
#: lib/mv_web/live/user_live/show.ex:49
|
||||||
|
|
@ -68,25 +68,26 @@ msgstr ""
|
||||||
msgid "Email"
|
msgid "Email"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lib/mv_web/live/member_live/form.ex:45
|
#: lib/mv_web/live/member_live/form.ex:81
|
||||||
#: lib/mv_web/live/member_live/show.ex:49
|
#: lib/mv_web/live/member_live/show.ex:64
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "First Name"
|
msgid "First Name"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lib/mv_web/live/member_live/form.ex:50
|
#: lib/mv_web/live/member_live/form.ex:117
|
||||||
#: lib/mv_web/live/member_live/index.html.heex:220
|
#: lib/mv_web/live/member_live/index.html.heex:220
|
||||||
#: lib/mv_web/live/member_live/show.ex:56
|
#: lib/mv_web/live/member_live/show.ex:93
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "Join Date"
|
msgid "Join Date"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lib/mv_web/live/member_live/form.ex:46
|
#: lib/mv_web/live/member_live/form.ex:84
|
||||||
#: lib/mv_web/live/member_live/show.ex:50
|
#: lib/mv_web/live/member_live/show.ex:65
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "Last Name"
|
msgid "Last Name"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: lib/mv_web/live/member_live/form.ex:44
|
||||||
#: lib/mv_web/live/member_live/index.html.heex:29
|
#: lib/mv_web/live/member_live/index.html.heex:29
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "New Member"
|
msgid "New Member"
|
||||||
|
|
@ -113,22 +114,20 @@ msgstr ""
|
||||||
msgid "close"
|
msgid "close"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lib/mv_web/live/member_live/form.ex:51
|
#: lib/mv_web/live/member_live/form.ex:120
|
||||||
#: lib/mv_web/live/member_live/show.ex:57
|
#: lib/mv_web/live/member_live/show.ex:98
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "Exit Date"
|
msgid "Exit Date"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lib/mv_web/live/member_live/form.ex:55
|
|
||||||
#: lib/mv_web/live/member_live/index.html.heex:148
|
#: lib/mv_web/live/member_live/index.html.heex:148
|
||||||
#: lib/mv_web/live/member_live/show.ex:61
|
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "House Number"
|
msgid "House Number"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lib/mv_web/live/contribution_period_live/show.ex:140
|
#: lib/mv_web/live/contribution_period_live/show.ex:140
|
||||||
#: lib/mv_web/live/member_live/form.ex:52
|
#: lib/mv_web/live/member_live/form.ex:126
|
||||||
#: lib/mv_web/live/member_live/show.ex:58
|
#: lib/mv_web/live/member_live/show.ex:124
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "Notes"
|
msgid "Notes"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
@ -137,28 +136,26 @@ msgstr ""
|
||||||
#: lib/mv_web/live/components/payment_filter_component.ex:144
|
#: lib/mv_web/live/components/payment_filter_component.ex:144
|
||||||
#: lib/mv_web/live/contribution_period_live/show.ex:186
|
#: lib/mv_web/live/contribution_period_live/show.ex:186
|
||||||
#: lib/mv_web/live/contribution_period_live/show.ex:241
|
#: lib/mv_web/live/contribution_period_live/show.ex:241
|
||||||
#: lib/mv_web/live/member_live/form.ex:48
|
#: lib/mv_web/live/member_live/form.ex:199
|
||||||
#: lib/mv_web/live/member_live/index.html.heex:229
|
#: lib/mv_web/live/member_live/index.html.heex:229
|
||||||
#: lib/mv_web/live/member_live/show.ex:52
|
#: lib/mv_web/live/member_live/show.ex:162
|
||||||
|
#: lib/mv_web/live/member_live/show.ex:164
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "Paid"
|
msgid "Paid"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lib/mv_web/live/member_live/form.ex:49
|
|
||||||
#: lib/mv_web/live/member_live/index.html.heex:202
|
#: lib/mv_web/live/member_live/index.html.heex:202
|
||||||
#: lib/mv_web/live/member_live/show.ex:55
|
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "Phone Number"
|
msgid "Phone Number"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lib/mv_web/live/member_live/form.ex:56
|
#: lib/mv_web/live/member_live/form.ex:97
|
||||||
#: lib/mv_web/live/member_live/index.html.heex:166
|
#: lib/mv_web/live/member_live/index.html.heex:166
|
||||||
#: lib/mv_web/live/member_live/show.ex:62
|
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "Postal Code"
|
msgid "Postal Code"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lib/mv_web/live/member_live/form.ex:79
|
#: lib/mv_web/live/member_live/form.ex:211
|
||||||
#, elixir-autogen, elixir-format, fuzzy
|
#, elixir-autogen, elixir-format, fuzzy
|
||||||
msgid "Save Member"
|
msgid "Save Member"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
@ -166,58 +163,48 @@ msgstr ""
|
||||||
#: lib/mv_web/live/custom_field_live/form.ex:66
|
#: lib/mv_web/live/custom_field_live/form.ex:66
|
||||||
#: lib/mv_web/live/custom_field_value_live/form.ex:74
|
#: lib/mv_web/live/custom_field_value_live/form.ex:74
|
||||||
#: lib/mv_web/live/global_settings_live.ex:55
|
#: lib/mv_web/live/global_settings_live.ex:55
|
||||||
#: lib/mv_web/live/member_live/form.ex:78
|
#: lib/mv_web/live/member_live/form.ex:48
|
||||||
|
#: lib/mv_web/live/member_live/form.ex:210
|
||||||
#: lib/mv_web/live/user_live/form.ex:249
|
#: lib/mv_web/live/user_live/form.ex:249
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "Saving..."
|
msgid "Saving..."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lib/mv_web/live/member_live/form.ex:54
|
#: lib/mv_web/live/member_live/form.ex:91
|
||||||
#: lib/mv_web/live/member_live/index.html.heex:130
|
#: lib/mv_web/live/member_live/index.html.heex:130
|
||||||
#: lib/mv_web/live/member_live/show.ex:60
|
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "Street"
|
msgid "Street"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lib/mv_web/live/member_live/show.ex:48
|
|
||||||
#, elixir-autogen, elixir-format
|
|
||||||
msgid "Id"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: lib/mv_web/live/member_live/index.html.heex:234
|
#: lib/mv_web/live/member_live/index.html.heex:234
|
||||||
#: lib/mv_web/live/member_live/index/formatter.ex:62
|
#: lib/mv_web/live/member_live/index/formatter.ex:62
|
||||||
#: lib/mv_web/live/member_live/show.ex:53
|
#: lib/mv_web/live/member_live/show.ex:290
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "No"
|
msgid "No"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lib/mv_web/live/member_live/show.ex:113
|
#: lib/mv_web/live/member_live/show.ex:196
|
||||||
#, elixir-autogen, elixir-format, fuzzy
|
#, elixir-autogen, elixir-format, fuzzy
|
||||||
msgid "Show Member"
|
msgid "Show Member"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lib/mv_web/live/member_live/show.ex:34
|
|
||||||
#, elixir-autogen, elixir-format
|
|
||||||
msgid "This is a member record from your database."
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: lib/mv_web/live/member_live/index.html.heex:234
|
#: lib/mv_web/live/member_live/index.html.heex:234
|
||||||
#: lib/mv_web/live/member_live/index/formatter.ex:61
|
#: lib/mv_web/live/member_live/index/formatter.ex:61
|
||||||
#: lib/mv_web/live/member_live/show.ex:53
|
#: lib/mv_web/live/member_live/show.ex:290
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "Yes"
|
msgid "Yes"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lib/mv_web/live/custom_field_live/form.ex:110
|
#: lib/mv_web/live/custom_field_live/form.ex:110
|
||||||
#: lib/mv_web/live/custom_field_value_live/form.ex:233
|
#: lib/mv_web/live/custom_field_value_live/form.ex:233
|
||||||
#: lib/mv_web/live/member_live/form.ex:137
|
#: lib/mv_web/live/member_live/form.ex:269
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "create"
|
msgid "create"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lib/mv_web/live/custom_field_live/form.ex:111
|
#: lib/mv_web/live/custom_field_live/form.ex:111
|
||||||
#: lib/mv_web/live/custom_field_value_live/form.ex:234
|
#: lib/mv_web/live/custom_field_value_live/form.ex:234
|
||||||
#: lib/mv_web/live/member_live/form.ex:138
|
#: lib/mv_web/live/member_live/form.ex:270
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "update"
|
msgid "update"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
@ -227,7 +214,7 @@ msgstr ""
|
||||||
msgid "Incorrect email or password"
|
msgid "Incorrect email or password"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lib/mv_web/live/member_live/form.ex:144
|
#: lib/mv_web/live/member_live/form.ex:276
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "Member %{action} successfully"
|
msgid "Member %{action} successfully"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
@ -260,7 +247,7 @@ msgstr ""
|
||||||
#: lib/mv_web/live/custom_field_live/form.ex:69
|
#: lib/mv_web/live/custom_field_live/form.ex:69
|
||||||
#: lib/mv_web/live/custom_field_live/index.ex:120
|
#: lib/mv_web/live/custom_field_live/index.ex:120
|
||||||
#: lib/mv_web/live/custom_field_value_live/form.ex:77
|
#: lib/mv_web/live/custom_field_value_live/form.ex:77
|
||||||
#: lib/mv_web/live/member_live/form.ex:81
|
#: lib/mv_web/live/member_live/form.ex:208
|
||||||
#: lib/mv_web/live/user_live/form.ex:252
|
#: lib/mv_web/live/user_live/form.ex:252
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "Cancel"
|
msgid "Cancel"
|
||||||
|
|
@ -504,7 +491,7 @@ msgstr "User will be created without a password. Check 'Set Password' to add one
|
||||||
msgid "Linked Member"
|
msgid "Linked Member"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lib/mv_web/live/member_live/show.ex:63
|
#: lib/mv_web/live/member_live/show.ex:106
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "Linked User"
|
msgid "Linked User"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
@ -515,13 +502,12 @@ msgstr ""
|
||||||
msgid "No member linked"
|
msgid "No member linked"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lib/mv_web/live/member_live/show.ex:73
|
#: lib/mv_web/live/member_live/show.ex:116
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "No user linked"
|
msgid "No user linked"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lib/mv_web/live/member_live/show.ex:37
|
#: lib/mv_web/live/member_live/show.ex:30
|
||||||
#: lib/mv_web/live/member_live/show.ex:39
|
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "Back to members list"
|
msgid "Back to members list"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
@ -602,12 +588,6 @@ msgstr ""
|
||||||
msgid "Choose a custom field"
|
msgid "Choose a custom field"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lib/mv_web/live/member_live/form.ex:58
|
|
||||||
#: lib/mv_web/live/member_live/show.ex:78
|
|
||||||
#, elixir-autogen, elixir-format
|
|
||||||
msgid "Custom Field Values"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: lib/mv_web/live/custom_field_value_live/form.ex:51
|
#: lib/mv_web/live/custom_field_value_live/form.ex:51
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "Custom field"
|
msgid "Custom field"
|
||||||
|
|
@ -644,6 +624,8 @@ msgid "Use this form to manage custom_field records in your database."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lib/mv_web/components/layouts/navbar.ex:26
|
#: lib/mv_web/components/layouts/navbar.ex:26
|
||||||
|
#: lib/mv_web/live/member_live/form.ex:135
|
||||||
|
#: lib/mv_web/live/member_live/show.ex:136
|
||||||
#, elixir-autogen, elixir-format, fuzzy
|
#, elixir-autogen, elixir-format, fuzzy
|
||||||
msgid "Custom Fields"
|
msgid "Custom Fields"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
@ -814,11 +796,6 @@ msgstr ""
|
||||||
msgid "Tip: Paste email addresses into the BCC field for privacy compliance"
|
msgid "Tip: Paste email addresses into the BCC field for privacy compliance"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lib/mv_web/live/member_live/form.ex:40
|
|
||||||
#, elixir-autogen, elixir-format
|
|
||||||
msgid "Fields marked with an asterisk (*) cannot be empty."
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: lib/mv_web/components/core_components.ex:206
|
#: lib/mv_web/components/core_components.ex:206
|
||||||
#: lib/mv_web/components/core_components.ex:223
|
#: lib/mv_web/components/core_components.ex:223
|
||||||
#: lib/mv_web/components/core_components.ex:250
|
#: lib/mv_web/components/core_components.ex:250
|
||||||
|
|
@ -849,6 +826,102 @@ msgstr ""
|
||||||
msgid "Payment filter"
|
msgid "Payment filter"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: lib/mv_web/live/member_live/show.ex:70
|
||||||
|
#, elixir-autogen, elixir-format
|
||||||
|
msgid "Address"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: lib/mv_web/live/member_live/form.ex:37
|
||||||
|
#: lib/mv_web/live/member_live/show.ex:32
|
||||||
|
#, elixir-autogen, elixir-format
|
||||||
|
msgid "Back"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: lib/mv_web/live/member_live/form.ex:65
|
||||||
|
#: lib/mv_web/live/member_live/show.ex:50
|
||||||
|
#, elixir-autogen, elixir-format
|
||||||
|
msgid "Coming soon"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: lib/mv_web/live/member_live/form.ex:57
|
||||||
|
#: lib/mv_web/live/member_live/show.ex:48
|
||||||
|
#, elixir-autogen, elixir-format
|
||||||
|
msgid "Contact Data"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: lib/mv_web/live/member_live/form.ex:175
|
||||||
|
#: lib/mv_web/live/member_live/show.ex:160
|
||||||
|
#, elixir-autogen, elixir-format
|
||||||
|
msgid "Contribution"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: lib/mv_web/live/member_live/form.ex:94
|
||||||
|
#, elixir-autogen, elixir-format
|
||||||
|
msgid "Nr."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: lib/mv_web/live/member_live/form.ex:186
|
||||||
|
#: lib/mv_web/live/member_live/show.ex:161
|
||||||
|
#, elixir-autogen, elixir-format, fuzzy
|
||||||
|
msgid "Payment Cycle"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: lib/mv_web/live/member_live/form.ex:166
|
||||||
|
#: lib/mv_web/live/member_live/show.ex:153
|
||||||
|
#, elixir-autogen, elixir-format
|
||||||
|
msgid "Payment Data"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: lib/mv_web/live/member_live/form.ex:68
|
||||||
|
#: lib/mv_web/live/member_live/show.ex:52
|
||||||
|
#, elixir-autogen, elixir-format
|
||||||
|
msgid "Payments"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: lib/mv_web/live/member_live/show.ex:166
|
||||||
|
#, elixir-autogen, elixir-format, fuzzy
|
||||||
|
msgid "Pending"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: lib/mv_web/live/member_live/form.ex:76
|
||||||
|
#: lib/mv_web/live/member_live/show.ex:60
|
||||||
|
#, elixir-autogen, elixir-format
|
||||||
|
msgid "Personal Data"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: lib/mv_web/live/member_live/form.ex:111
|
||||||
|
#: lib/mv_web/live/member_live/show.ex:87
|
||||||
|
#, elixir-autogen, elixir-format, fuzzy
|
||||||
|
msgid "Phone"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: lib/mv_web/live/member_live/form.ex:49
|
||||||
|
#, elixir-autogen, elixir-format, fuzzy
|
||||||
|
msgid "Save"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: lib/mv_web/live/member_live/form.ex:169
|
||||||
|
#: lib/mv_web/live/member_live/show.ex:156
|
||||||
|
#, elixir-autogen, elixir-format
|
||||||
|
msgid "This data is for demonstration purposes only (mockup)."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: lib/mv_web/live/member_live/form.ex:190
|
||||||
|
#: lib/mv_web/live/member_live/show.ex:161
|
||||||
|
#, elixir-autogen, elixir-format
|
||||||
|
msgid "monthly"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: lib/mv_web/live/member_live/form.ex:194
|
||||||
|
#, elixir-autogen, elixir-format
|
||||||
|
msgid "yearly"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: lib/mv_web/live/member_live/form.ex:242
|
||||||
|
#, elixir-autogen, elixir-format
|
||||||
|
msgid "Create Member"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: lib/mv_web/live/contribution_period_live/show.ex:107
|
#: lib/mv_web/live/contribution_period_live/show.ex:107
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "%{count} period selected"
|
msgid "%{count} period selected"
|
||||||
|
|
@ -895,29 +968,29 @@ msgstr ""
|
||||||
#: lib/mv_web/components/layouts/navbar.ex:34
|
#: lib/mv_web/components/layouts/navbar.ex:34
|
||||||
#: lib/mv_web/live/contribution_settings_live.ex:27
|
#: lib/mv_web/live/contribution_settings_live.ex:27
|
||||||
#: lib/mv_web/live/contribution_settings_live.ex:40
|
#: lib/mv_web/live/contribution_settings_live.ex:40
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format, fuzzy
|
||||||
msgid "Contribution Settings"
|
msgid "Contribution Settings"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lib/mv_web/live/contribution_period_live/show.ex:62
|
#: lib/mv_web/live/contribution_period_live/show.ex:62
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format, fuzzy
|
||||||
msgid "Contribution Start"
|
msgid "Contribution Start"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lib/mv_web/components/layouts/navbar.ex:32
|
#: lib/mv_web/components/layouts/navbar.ex:32
|
||||||
#: lib/mv_web/live/contribution_type_live/index.ex:25
|
#: lib/mv_web/live/contribution_type_live/index.ex:25
|
||||||
#: lib/mv_web/live/contribution_type_live/index.ex:36
|
#: lib/mv_web/live/contribution_type_live/index.ex:36
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format, fuzzy
|
||||||
msgid "Contribution Types"
|
msgid "Contribution Types"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lib/mv_web/live/contribution_settings_live.ex:224
|
#: lib/mv_web/live/contribution_settings_live.ex:224
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format, fuzzy
|
||||||
msgid "Contribution start"
|
msgid "Contribution start"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lib/mv_web/live/contribution_period_live/show.ex:41
|
#: lib/mv_web/live/contribution_period_live/show.ex:41
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format, fuzzy
|
||||||
msgid "Contribution type"
|
msgid "Contribution type"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
|
@ -927,12 +1000,12 @@ msgid "Contribution types define different membership fee structures. Each type
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lib/mv_web/components/layouts/navbar.ex:30
|
#: lib/mv_web/components/layouts/navbar.ex:30
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format, fuzzy
|
||||||
msgid "Contributions"
|
msgid "Contributions"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lib/mv_web/live/contribution_period_live/show.ex:39
|
#: lib/mv_web/live/contribution_period_live/show.ex:39
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format, fuzzy
|
||||||
msgid "Contributions for %{name}"
|
msgid "Contributions for %{name}"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
|
@ -1080,7 +1153,7 @@ msgstr ""
|
||||||
#: lib/mv_web/live/contribution_period_live/show.ex:341
|
#: lib/mv_web/live/contribution_period_live/show.ex:341
|
||||||
#: lib/mv_web/live/contribution_settings_live.ex:273
|
#: lib/mv_web/live/contribution_settings_live.ex:273
|
||||||
#: lib/mv_web/live/contribution_type_live/index.ex:201
|
#: lib/mv_web/live/contribution_type_live/index.ex:201
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format, fuzzy
|
||||||
msgid "Monthly"
|
msgid "Monthly"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
|
@ -1100,7 +1173,7 @@ msgid "Name & Amount"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lib/mv_web/live/contribution_type_live/index.ex:42
|
#: lib/mv_web/live/contribution_type_live/index.ex:42
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format, fuzzy
|
||||||
msgid "New Contribution Type"
|
msgid "New Contribution Type"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
|
@ -1261,7 +1334,7 @@ msgstr ""
|
||||||
#: lib/mv_web/live/contribution_period_live/show.ex:344
|
#: lib/mv_web/live/contribution_period_live/show.ex:344
|
||||||
#: lib/mv_web/live/contribution_settings_live.ex:276
|
#: lib/mv_web/live/contribution_settings_live.ex:276
|
||||||
#: lib/mv_web/live/contribution_type_live/index.ex:204
|
#: lib/mv_web/live/contribution_type_live/index.ex:204
|
||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format, fuzzy
|
||||||
msgid "Yearly"
|
msgid "Yearly"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
|
@ -1275,17 +1348,16 @@ msgstr ""
|
||||||
msgid "Yearly Interval - Joining Period Included"
|
msgid "Yearly Interval - Joining Period Included"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#~ #: lib/mv_web/live/member_live/form.ex:48
|
|
||||||
#~ #: lib/mv_web/live/member_live/show.ex:51
|
|
||||||
#~ #, elixir-autogen, elixir-format
|
|
||||||
#~ msgid "Birth Date"
|
|
||||||
#~ msgstr ""
|
|
||||||
|
|
||||||
#~ #: lib/mv_web/live/user_live/show.ex:49
|
#~ #: lib/mv_web/live/user_live/show.ex:49
|
||||||
#~ #, elixir-autogen, elixir-format
|
#~ #, elixir-autogen, elixir-format
|
||||||
#~ msgid "ID"
|
#~ msgid "ID"
|
||||||
#~ msgstr ""
|
#~ msgstr ""
|
||||||
|
|
||||||
|
#~ #: lib/mv_web/live/member_live/show.ex:47
|
||||||
|
#~ #, elixir-autogen, elixir-format
|
||||||
|
#~ msgid "Id"
|
||||||
|
#~ msgstr ""
|
||||||
|
|
||||||
#~ #: lib/mv_web/live/user_live/show.ex:51
|
#~ #: lib/mv_web/live/user_live/show.ex:51
|
||||||
#~ #, elixir-autogen, elixir-format, fuzzy
|
#~ #, elixir-autogen, elixir-format, fuzzy
|
||||||
#~ msgid "Not set"
|
#~ msgid "Not set"
|
||||||
|
|
@ -1297,8 +1369,7 @@ msgstr ""
|
||||||
#~ msgid "OIDC ID"
|
#~ msgid "OIDC ID"
|
||||||
#~ msgstr ""
|
#~ msgstr ""
|
||||||
|
|
||||||
#~ #: lib/mv_web/live/contribution_period_live/show.ex:273
|
#~ #: lib/mv_web/live/member_live/show.ex:33
|
||||||
#~ #: lib/mv_web/live/contribution_settings_live.ex:248
|
|
||||||
#~ #, elixir-autogen, elixir-format
|
#~ #, elixir-autogen, elixir-format
|
||||||
#~ msgid "Related Pages"
|
#~ msgid "This is a member record from your database."
|
||||||
#~ msgstr ""
|
#~ msgstr ""
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue
I think these tabs are confusing at the moment.