rebar3_erli18n_prv_extract (rebar3_erli18n v0.1.0)

Copy Markdown View Source

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

do(State)

-spec do(rebar3_erli18n_host:state()) -> {ok, rebar3_erli18n_host:state()} | {error, string()}.

Run extraction and write the .pot templates.

format_error(Reason)

-spec format_error(term()) -> string().

Render a provider error to a human string.

init(State)

Register the extract provider under the erli18n namespace.