Localization using ex_cldr

I am trying to use ex_cldr for localization. I want to use path parameters to change languages and it doesn’t work, but works with query parameters. Requesting http://localhost:4000/en will use fa as locale but http://localhost:4000/?locale=en uses en.

I have added this to the endpoint.ex:

plug Cldr.Plug.SetLocale,
    apps: [:cldr, :gettext],
    from: [:path, :query],
    gettext: MyAppWeb.Gettext,
    cldr: MyApp.Cldr

This is the cldr module:

defmodule MyApp.Cldr do
  use Cldr,
    locales: ["en", "fa"],
    default_locale: "fa",
    gettext: MyAppWeb.Gettext
end

And my routes:

scope "/:locale" do
  pipe_through [:browser, :simple_layout]

  pow_routes()
end

scope "/:locale", MyAppWeb do
  pipe_through :browser

  get "/", PageController, :index
end

scope "/:locale/admin", MyAppWeb do
  pipe_through [:browser, :protected, :admin_layout]
end

scope "/" do
  pipe_through [:browser, :simple_layout]

  pow_routes()
end

scope "/", MyAppWeb do
  pipe_through :browser

  get "/", PageController, :index
end

scope "/admin", MyAppWeb do
  pipe_through [:browser, :protected, :admin_layout]
end