who_need_help/lib/who_need_help_web/locale.ex

20 lines
484 B
Elixir

defmodule WhoNeedHelpWeb.Locale do
import Plug.Conn
@locales ~w(en uk ru)
def init(opts), do: opts
def call(conn, _opts) do
locale =
conn.params["locale"] ||
get_session(conn, :locale) ||
get_in(conn.assigns, [:current_scope, Access.key(:user), Access.key(:locale)]) ||
"en"
locale = if locale in @locales, do: locale, else: "en"
Gettext.put_locale(WhoNeedHelpWeb.Gettext, locale)
put_session(conn, :locale, locale)
end
end