aprs.me/lib/aprsme_web/gettext.ex
2025-07-06 10:08:58 -05:00

38 lines
1 KiB
Elixir

defmodule AprsmeWeb.Gettext do
@moduledoc """
A module providing Internationalization with a gettext-based API.
By using [Gettext](https://hexdocs.pm/gettext),
your module gains a set of macros for translations, for example:
import AprsmeWeb.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](https://hexdocs.pm/gettext) for detailed usage.
"""
use Gettext.Backend, otp_app: :aprsme
@supported_locales ~w(en es de fr)
@doc """
Sets the Gettext locale for the current process.
"""
def put_locale(locale) when locale in @supported_locales do
Gettext.put_locale(__MODULE__, locale)
end
@doc """
Returns the list of supported locales.
"""
def supported_locales, do: @supported_locales
end