# `VerifiedTranslations.GettextMacros`
[🔗](https://github.com/treathealth/verified_translations/blob/v0.1.1/lib/verified_translations/gettext_macros.ex#L1)

Gettext's translation macros, compiled to verified JSON translations.

`use VerifiedTranslations` imports these instead of `Gettext.Macros`'
versions, so existing code keeps working while every call is verified at
compile time and read from `priv/translations` like `~t`:

    gettext("Hello %{name}", name: user.name)
    ngettext("1 file", "%{count} files", n)
    dgettext("errors", "Not found")
    pgettext("menu", "Open")

The msgid and binding names stay exactly as written, so the JSON file of
`gettext("Hello %{name}", name: user.name)` has the msgid
`"Hello %{name}"`. A plural call is the same message as
`tn(n, one: "1 file", other: "%{count} files")`.

Msgids, domains and contexts must be compile-time strings, like Gettext
requires. Bindings may be a literal keyword list or any expression
evaluating to a keyword list or map.

Opt out with `use VerifiedTranslations, gettext: false`. Runtime functions
such as `Gettext.dgettext(MyAppWeb.Gettext, "errors", msg)` (used by
`translate_error/1`) are not affected.

# `dgettext`
*macro* 

# `dngettext`
*macro* 

# `dpgettext`
*macro* 

# `dpngettext`
*macro* 

# `gettext`
*macro* 

# `ngettext`
*macro* 

# `pgettext`
*macro* 

# `pngettext`
*macro* 

---

*Consult [api-reference.md](api-reference.md) for complete listing*
