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