18 lines
391 B
Elixir
18 lines
391 B
Elixir
defmodule MvWeb.LocaleController do
|
|
use MvWeb, :controller
|
|
|
|
def set_locale(conn, %{"locale" => locale}) do
|
|
conn
|
|
|> put_session(:locale, locale)
|
|
|> redirect(to: get_referer(conn) || "/")
|
|
end
|
|
|
|
defp get_referer(conn) do
|
|
conn.req_headers
|
|
|> Enum.find(fn {k, _v} -> k == "referer" end)
|
|
|> case do
|
|
{_, v} -> URI.parse(v).path
|
|
_ -> nil
|
|
end
|
|
end
|
|
end
|