who_need_help/lib/who_need_help_web/locale.ex

20 lines
481 B
Elixir

defmodule WhoNeedHelpWeb.Locale do
import Plug.Conn
alias WhoNeedHelp.Locales
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)]) ||
Locales.default()
locale = Locales.normalize(locale)
Gettext.put_locale(WhoNeedHelpWeb.Gettext, locale)
put_session(conn, :locale, locale)
end
end