Remove paid field from Member resource, database migration, tests, seeds, and UI. This field is no longer needed as payment status is now tracked via membership fee cycles.
40 lines
1.3 KiB
Elixir
40 lines
1.3 KiB
Elixir
defmodule MvWeb.Translations.MemberFields do
|
|
@moduledoc """
|
|
Helper module to dynamically translate member field names.
|
|
|
|
## Features
|
|
- Translates technical field names (atoms) to human-friendly localized text
|
|
- Used primarily in the field visibility dropdown component
|
|
|
|
## Example
|
|
|
|
iex> MvWeb.Translations.MemberFields.label(:first_name)
|
|
"Vorname" # when locale is "de"
|
|
|
|
iex> MvWeb.Translations.MemberFields.label(:first_name)
|
|
"First Name" # when locale is "en"
|
|
"""
|
|
use Gettext, backend: MvWeb.Gettext
|
|
|
|
@spec label(atom()) :: String.t()
|
|
def label(:first_name), do: gettext("First Name")
|
|
def label(:last_name), do: gettext("Last Name")
|
|
def label(:email), do: gettext("Email")
|
|
def label(:phone_number), do: gettext("Phone")
|
|
def label(:join_date), do: gettext("Join Date")
|
|
def label(:exit_date), do: gettext("Exit Date")
|
|
def label(:notes), do: gettext("Notes")
|
|
def label(:city), do: gettext("City")
|
|
def label(:street), do: gettext("Street")
|
|
def label(:house_number), do: gettext("House Number")
|
|
def label(:postal_code), do: gettext("Postal Code")
|
|
|
|
# Fallback for unknown fields
|
|
def label(field) do
|
|
field
|
|
|> to_string()
|
|
|> String.replace("_", " ")
|
|
|> String.split()
|
|
|> Enum.map_join(" ", &String.capitalize/1)
|
|
end
|
|
end
|