Haytni v0.0.1 Haytni.Gettext View Source

Link to this section Summary

Link to this section Functions

Link to this macro dgettext(msgid) View Source (macro)
Link to this macro dgettext(domain, msgid, bindings \\ Macro.escape(%{})) View Source (macro)
Link to this macro dgettext_noop(domain, msgid) View Source (macro)
Link to this macro dngettext(domain, msgid, msgid_plural, n, bindings \\ Macro.escape(%{})) View Source (macro)
Link to this macro dngettext_noop(domain, msgid, msgid_plural) View Source (macro)
Link to this macro gettext(msgid, bindings \\ Macro.escape(%{})) View Source (macro)
Link to this macro gettext_comment(comment) View Source (macro)
Link to this macro gettext_noop(msgid) View Source (macro)
Link to this function handle_missing_bindings(exception, incomplete) View Source

Default handling for missing bindings.

This function is called when there are missing bindings in a translation. It takes a Gettext.MissingBindingsError struct and the translation with the wrong bindings left as is with the %{} syntax.

For example, if something like this is called:

MyApp.Gettext.gettext("Hello %{name}, welcome to %{country}", name: "Jane", country: "Italy")

and our it/LC_MESSAGES/default.po looks like this:

msgid "Hello %{name}, welcome to %{country}"
msgstr "Ciao %{name}, benvenuto in %{cowntry}" # (typo)

then Gettext will call:

MyApp.Gettext.handle_missing_bindings(exception, "Ciao Jane, benvenuto in %{cowntry}")

where exception is a struct that looks like this:

%Gettext.MissingBindingsError{
  backend: MyApp.Gettext,
  domain: "default",
  locale: "it",
  msgid: "Hello %{name}, welcome to %{country}",
  bindings: [:country],
}

The return value of the c:handle_missing_bindings/2 callback is used as the translated string that the translation macros and functions return.

The default implementation for this function uses Logger.error/1 to warn about the missing binding and returns the translated message with the incomplete bindings.

This function can be overridden. For example, to raise when there are missing bindings:

def handle_missing_bindings(exception, _incomplete) do
  raise exception
end

Callback implementation for Gettext.Backend.handle_missing_bindings/2.

Link to this function lgettext(locale, domain, msgid, bindings) View Source
Link to this function lngettext(locale, domain, msgid, msgid_plural, n, bindings) View Source
Link to this macro ngettext(msgid, msgid_plural, n, bindings \\ Macro.escape(%{})) View Source (macro)
Link to this macro ngettext_noop(msgid, msgid_plural) View Source (macro)