Localize.PersonName.MF2 (Localize Person Names v0.1.0)

Copy Markdown View Source

MF2 custom function for locale-aware person name formatting.

Implements Localize.Message.Function so that %Localize.PersonName{} structs can be formatted directly inside MF2 messages:

{$name :personName}
{$name :personName format=long formality=formal}

Registration

# config/config.exs
config :localize, :mf2_functions, %{
  "personName" => Localize.PersonName.MF2
}

Per-call

Localize.Message.format(
  "{$name :personName format=long}",
  %{"name" => person},
  locale: :en,
  functions: %{"personName" => Localize.PersonName.MF2}
)

Supported MF2 options

MF2 optionMaps toValues
format:formatshort, medium, long
formality:formalityformal, informal
usage:usageaddressing, referring, monogram
order:ordergivenFirst, surnameFirst, sorting

The :locale is inherited from the MF2 message's interpreter options and does not need to be specified as an MF2 function option.