Pleroma v1.1.9-10-g42f76306+dev Pleroma.Web.Gettext View Source

A module providing Internationalization with a gettext-based API.

By using Gettext, your module gains a set of macros for translations, for example:

import Pleroma.Web.Gettext

# Simple translation
gettext "Here is the string to translate"

# Plural translation
ngettext "Here is the string to translate",
         "Here are the strings to translate",
         3

# Domain-based translation
dgettext "errors", "Here is the error message to translate"

See the Gettext Docs for detailed usage.

Link to this section Summary

Link to this section Functions

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

handle_missing_plural_translation(locale, domain, msgid, msgid_plural, n, bindings)

View Source

Default handling for plural translations with a missing translation.

Same as c:handle_missing_translation/4, but for plural translations. In this case, n is the number used for pluralizing the translated string.

Callback implementation for Gettext.Backend.handle_missing_plural_translation/6.

Link to this function

handle_missing_translation(locale, domain, msgid, bindings)

View Source

Default handling for translations with a missing translation.

When a Gettext function/macro is called with a string to translate into a locale but that locale doesn't provide a translation for that string, this callback is invoked. msgid is the string that Gettext tried to translate.

This function should return {:ok, translated} if a translation can be fetched or constructed for the given string, or {:default, msgid} otherwise.

Callback implementation for Gettext.Backend.handle_missing_translation/4.

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)