translate field names for visibility dropdown
Some checks failed
continuous-integration/drone/push Build is failing
Some checks failed
continuous-integration/drone/push Build is failing
This commit is contained in:
parent
8512be0282
commit
1675d66b67
2 changed files with 59 additions and 2 deletions
41
lib/mv_web/translations/member_fields.ex
Normal file
41
lib/mv_web/translations/member_fields.ex
Normal file
|
|
@ -0,0 +1,41 @@
|
|||
defmodule MvWeb.Translations.MemberFields do
|
||||
@moduledoc """
|
||||
Helper module to dynamically translate member field names.
|
||||
|
||||
## Features
|
||||
- Translates technical field names (atoms) to human-friendly localized text
|
||||
- Used primarily in the field visibility dropdown component
|
||||
|
||||
## Example
|
||||
|
||||
iex> MvWeb.Translations.MemberFields.label(:first_name)
|
||||
"Vorname" # when locale is "de"
|
||||
|
||||
iex> MvWeb.Translations.MemberFields.label(:first_name)
|
||||
"First Name" # when locale is "en"
|
||||
"""
|
||||
use Gettext, backend: MvWeb.Gettext
|
||||
|
||||
@spec label(atom()) :: String.t()
|
||||
def label(:first_name), do: gettext("First Name")
|
||||
def label(:last_name), do: gettext("Last Name")
|
||||
def label(:email), do: gettext("Email")
|
||||
def label(:paid), do: gettext("Paid")
|
||||
def label(:phone_number), do: gettext("Phone")
|
||||
def label(:join_date), do: gettext("Join Date")
|
||||
def label(:exit_date), do: gettext("Exit Date")
|
||||
def label(:notes), do: gettext("Notes")
|
||||
def label(:city), do: gettext("City")
|
||||
def label(:street), do: gettext("Street")
|
||||
def label(:house_number), do: gettext("House Number")
|
||||
def label(:postal_code), do: gettext("Postal Code")
|
||||
|
||||
# Fallback for unknown fields
|
||||
def label(field) do
|
||||
field
|
||||
|> to_string()
|
||||
|> String.replace("_", " ")
|
||||
|> String.split()
|
||||
|> Enum.map_join(" ", &String.capitalize/1)
|
||||
end
|
||||
end
|
||||
Loading…
Add table
Add a link
Reference in a new issue