View Source mix gettext.extract (gettext v0.22.0)

Extracts messages by recompiling the Elixir source code.

mix gettext.extract [OPTIONS]

messages are extracted into POT (Portable Object Template) files with a .pot extension. The location of these files is determined by the :otp_app and :priv options given by Gettext modules when they call use Gettext. One POT file is generated for each message domain.

All automatically-extracted messages are assigned the elixir-autogen flag. If a message from the POT is no longer present and has the elixir-autogen flag, the message is removed.

Before v0.19.0, the elixir-format flag was used to detect automatically extracted messages. This has been deprecated in v0.19.0. When extracting with the newest version, the new elixir-autogen flag is added to all automatically extracted messages.

All messages are assigned a format flag. When using the default interpolation module, that flag is elixir-format. With other interpolation modules, the flag name is defined by that implementation (see Gettext.Interpolation.message_format/0).

If you would like to verify that your POT files are up to date with the current state of the codebase, you can provide the --check-up-to-date flag. This is particularly useful for automated checks and in CI systems. This validation will fail even when the same calls to Gettext only change location in the codebase:

mix gettext.extract --check-up-to-date

It is possible to pass the --merge option to perform merging for every Gettext backend updated during merge:

mix gettext.extract --merge

All other options passed to gettext.extract are forwarded to the gettext.merge task (Mix.Tasks.Gettext.Merge), which is called internally by this task. For example:

mix gettext.extract --merge --no-fuzzy