20 lines
481 B
Elixir
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
|