rebar3 erli18n extract — walk the project's abstract forms and write one
.pot per domain.
For every .erl file in each project app's src/ dir, the provider runs
rebar3_erli18n_extract_forms:scan_file/2 (one epp pass + keyword spec),
groups the resulting entries by domain, deduplicates by {Context, Msgid}
(merging each duplicate's #: references in source order), and serializes
each domain to priv/gettext/<Domain>.pot via rebar3_erli18n_po_meta.
The .pot is the extraction template: every msgstr is empty (PSD-003),
references are emitted as #: lines, and the keys are the source strings
(source-string-as-key). Dynamic (non-literal) call sites produce no entry,
so the template never carries a key the code cannot actually request.
Summary
Functions
Run extraction and write the .pot templates.
Render a provider error to a human string.
Register the extract provider under the erli18n namespace.
Functions
-spec do(rebar3_erli18n_host:state()) -> {ok, rebar3_erli18n_host:state()} | {error, string()}.
Run extraction and write the .pot templates.
Render a provider error to a human string.
-spec init(rebar3_erli18n_host:state()) -> {ok, rebar3_erli18n_host:state()}.
Register the extract provider under the erli18n namespace.