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

@@ -22,17 +22,19 @@ defmodule Mobilizon.Web.Auth.Context do
def set_user_information_in_context(conn) do
context = %{ip: conn.remote_ip |> :inet.ntoa() |> to_string()}
context =
{conn, context} =
case Guardian.Plug.current_resource(conn) do
%User{id: user_id, email: user_email} = user ->
if SentryAdapter.enabled?() do
Sentry.Context.set_user_context(%{id: user_id, name: user_email})
end
Map.put(context, :current_user, user)
context = Map.put(context, :current_user, user)
conn = assign(conn, :user_locale, user.locale)
{conn, context}
nil ->
context
{conn, context}
end
context =