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

@@ -10,7 +10,7 @@ defmodule Mobilizon.Web.Email.Activity do
alias Mobilizon.Activities.Activity
alias Mobilizon.Actors.Actor
alias Mobilizon.Config
alias Mobilizon.Web.{Email, Gettext}
alias Mobilizon.Web.Email
@spec direct_activity(String.t(), list(), String.t()) ::
Bamboo.Email.t()

View File

@@ -13,7 +13,7 @@ defmodule Mobilizon.Web.Email.Admin do
alias Mobilizon.Reports.Report
alias Mobilizon.Users.User
alias Mobilizon.Web.{Email, Gettext}
alias Mobilizon.Web.Email
@spec report(User.t(), Report.t(), String.t()) :: Bamboo.Email.t()
def report(%User{email: email} = user, %Report{} = report, default_locale \\ "en") do

View File

@@ -16,7 +16,6 @@ defmodule Mobilizon.Web.Email.Event do
alias Mobilizon.Users.{Setting, User}
alias Mobilizon.Web.Email
alias Mobilizon.Web.Gettext, as: GettextBackend
@important_changes [:title, :begins_on, :ends_on, :status, :physical_address]
@@ -31,7 +30,7 @@ defmodule Mobilizon.Web.Email.Event do
timezone \\ "Etc/UTC",
locale \\ "en"
) do
GettextBackend.put_locale(locale)
Gettext.put_locale(locale)
subject =
gettext(

View File

@@ -11,7 +11,7 @@ defmodule Mobilizon.Web.Email.Follow do
alias Mobilizon.Actors.{Actor, Follower}
alias Mobilizon.Federation.ActivityPub.Relay
alias Mobilizon.Users.User
alias Mobilizon.Web.{Email, Gettext}
alias Mobilizon.Web.Email
@doc """
Send follow notification to admins if the followed actor

View File

@@ -10,7 +10,7 @@ defmodule Mobilizon.Web.Email.Group do
alias Mobilizon.{Actors, Config, Users}
alias Mobilizon.Actors.{Actor, Member}
alias Mobilizon.Users.User
alias Mobilizon.Web.{Email, Gettext}
alias Mobilizon.Web.Email
@doc """
Send emails to local user

View File

@@ -9,7 +9,7 @@ defmodule Mobilizon.Web.Email.Notification do
alias Mobilizon.Events.{Event, Participant}
alias Mobilizon.Users.{Setting, User}
alias Mobilizon.Web.{Email, Gettext}
alias Mobilizon.Web.Email
@spec before_event_notification(String.t(), Participant.t(), String.t()) ::
Bamboo.Email.t()

View File

@@ -12,7 +12,7 @@ defmodule Mobilizon.Web.Email.Participation do
alias Mobilizon.Events.{Event, Participant}
alias Mobilizon.Users
alias Mobilizon.Users.User
alias Mobilizon.Web.{Email, Gettext}
alias Mobilizon.Web.Email
@doc """
Send participation emails to local user

View File

@@ -7,13 +7,13 @@ defmodule Mobilizon.Web.Email.User do
import Bamboo.Phoenix
import Mobilizon.Web.Gettext
import Mobilizon.Web.Gettext, only: [gettext: 2]
alias Mobilizon.{Config, Crypto, Users}
alias Mobilizon.Storage.Repo
alias Mobilizon.Users.User
alias Mobilizon.Web.{Email, Gettext}
alias Mobilizon.Web.Email
require Logger