Fix and improve language handling

- Refactor plugs to detect and set language
- Translate ecto validation errors
- Use Gettext directly, not Mobilizon.Web.Gettext
- Set the language in the <html> attribute according to the one loaded
  on front-end

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
This commit is contained in:
Thomas Citharel
2021-07-27 19:47:54 +02:00
parent 7c943dc09a
commit a670a7d7a7
37 changed files with 286 additions and 218 deletions

View File

@@ -7,10 +7,12 @@ defmodule Mobilizon.Web.Router do
pipeline :graphql do
# plug(:accepts, ["json"])
plug(Mobilizon.Web.Auth.Pipeline)
plug(Mobilizon.Web.Plugs.SetLocalePlug)
end
pipeline :graphiql do
plug(Mobilizon.Web.Auth.Pipeline)
plug(Mobilizon.Web.Plugs.SetLocalePlug)
plug(Mobilizon.Web.Plugs.HTTPSecurityPlug,
script_src: ["cdn.jsdelivr.net"],
@@ -46,6 +48,8 @@ defmodule Mobilizon.Web.Router do
plug(:accepts, ["html", "activity-json"])
plug(:put_secure_browser_headers)
plug(Mobilizon.Web.Plugs.SetLocalePlug)
plug(Cldr.Plug.AcceptLanguage,
cldr_backend: Mobilizon.Cldr,
no_match_log_level: :debug
@@ -60,6 +64,8 @@ defmodule Mobilizon.Web.Router do
pipeline :browser do
plug(Plug.Static, at: "/", from: "priv/static")
plug(Mobilizon.Web.Plugs.SetLocalePlug)
plug(Cldr.Plug.AcceptLanguage,
cldr_backend: Mobilizon.Cldr,
no_match_log_level: :debug