diff --git a/lib/pleroma/emails/user_email.ex b/lib/pleroma/emails/user_email.ex index 8e21e9987..8b05a5b8d 100644 --- a/lib/pleroma/emails/user_email.ex +++ b/lib/pleroma/emails/user_email.ex @@ -5,9 +5,12 @@ defmodule Pleroma.Emails.UserEmail do @moduledoc "User emails" + require Pleroma.Web.Gettext + alias Pleroma.Config alias Pleroma.User alias Pleroma.Web.Endpoint + alias Pleroma.Web.Gettext alias Pleroma.Web.Router import Swoosh.Email @@ -30,25 +33,64 @@ def welcome(user, opts \\ %{}) do new() |> to(recipient(user)) |> from(Map.get(opts, :sender, sender())) - |> subject(Map.get(opts, :subject, "Welcome to #{instance_name()}!")) - |> html_body(Map.get(opts, :html, "Welcome to #{instance_name()}!")) - |> text_body(Map.get(opts, :text, "Welcome to #{instance_name()}!")) + |> subject( + Map.get( + opts, + :subject, + Gettext.dpgettext("static_pages", "welcome email subject", "Welcome to %{instance_name}!", + instance_name: instance_name() + ) + ) + ) + |> html_body( + Map.get( + opts, + :html, + Gettext.dpgettext( + "static_pages", + "welcome email html body", + "Welcome to %{instance_name}!", + instance_name: instance_name() + ) + ) + ) + |> text_body( + Map.get( + opts, + :text, + Gettext.dpgettext( + "static_pages", + "welcome email text body", + "Welcome to %{instance_name}!", + instance_name: instance_name() + ) + ) + ) end def password_reset_email(user, token) when is_binary(token) do password_reset_url = Router.Helpers.reset_password_url(Endpoint, :reset, token) - html_body = """ -
Someone has requested password change for your account at #{instance_name()}.
-If it was you, visit the following link to proceed: reset password.
-If it was someone else, nothing to worry about: your data is secure and your password has not been changed.
- """ + html_body = + Gettext.dpgettext( + "static_pages", + "password reset email body", + """ +Someone has requested password change for your account at %{instance_name}.
+If it was you, visit the following link to proceed: reset password.
+If it was someone else, nothing to worry about: your data is secure and your password has not been changed.
+ """, + instance_name: instance_name(), + password_reset_url: password_reset_url + ) new() |> to(recipient(user)) |> from(sender()) - |> subject("Password reset") + |> subject( + Gettext.dpgettext("static_pages", "password reset email subject", "Password reset") + ) |> html_body(html_body) end @@ -65,16 +107,31 @@ def user_invitation_email( user_invite_token.token ) - html_body = """ -#{user.name} invites you to join #{instance_name()}, an instance of Pleroma federated social networking platform.
-Click the following link to register: accept invitation.
- """ + html_body = + Gettext.dpgettext( + "static_pages", + "user invitation email body", + """ +%{inviter_name} invites you to join %{instance_name}, an instance of Pleroma federated social networking platform.
+Click the following link to register: accept invitation.
+ """, + instance_name: instance_name(), + inviter_name: user.name, + registration_url: registration_url + ) new() |> to(recipient(to_email, to_name)) |> from(sender()) - |> subject("Invitation to #{instance_name()}") + |> subject( + Gettext.dpgettext( + "static_pages", + "user invitation email subject", + "Invitation to %{instance_name}", + instance_name: instance_name() + ) + ) |> html_body(html_body) end @@ -87,43 +144,83 @@ def account_confirmation_email(user) do to_string(user.confirmation_token) ) - html_body = """ -Email confirmation is required to activate the account.
-Please click the following link to activate your account.
- """ + html_body = + Gettext.dpgettext( + "static_pages", + "confirmation email body", + """ +Email confirmation is required to activate the account.
+Please click the following link to activate your account.
+ """, + instance_name: instance_name(), + confirmation_url: confirmation_url + ) new() |> to(recipient(user)) |> from(sender()) - |> subject("#{instance_name()} account confirmation") + |> subject( + Gettext.dpgettext( + "static_pages", + "confirmation email subject", + "%{instance_name} account confirmation", + instance_name: instance_name() + ) + ) |> html_body(html_body) end def approval_pending_email(user) do - html_body = """ -Your account at #{instance_name()} is being reviewed by staff. You will receive another email once your account is approved.
- """ + html_body = + Gettext.dpgettext( + "static_pages", + "approval pending email body", + """ +Your account at %{instance_name} is being reviewed by staff. You will receive another email once your account is approved.
+ """, + instance_name: instance_name() + ) new() |> to(recipient(user)) |> from(sender()) - |> subject("Your account is awaiting approval") + |> subject( + Gettext.dpgettext( + "static_pages", + "approval pending email subject", + "Your account is awaiting approval" + ) + ) |> html_body(html_body) end def successful_registration_email(user) do - html_body = """ -Your account at #{instance_name()} has been registered successfully.
-No further action is required to activate your account.
- """ + html_body = + Gettext.dpgettext( + "static_pages", + "successful registration email body", + """ +Your account at %{instance_name} has been registered successfully.
+No further action is required to activate your account.
+ """, + nickname: user.nickname, + instance_name: instance_name() + ) new() |> to(recipient(user)) |> from(sender()) - |> subject("Account registered on #{instance_name()}") + |> subject( + Gettext.dpgettext( + "static_pages", + "successful registration email subject", + "Account registered on %{instance_name}", + instance_name: instance_name() + ) + ) |> html_body(html_body) end @@ -193,7 +290,14 @@ def digest_email(user) do new() |> to(recipient(user)) |> from(sender()) - |> subject("Your digest from #{instance_name()}") + |> subject( + Gettext.dpgettext( + "static_pages", + "digest email subject", + "Your digest from %{instance_name}", + instance_name: instance_name() + ) + ) |> put_layout(false) |> render_body("digest.html", html_data) |> attachment(Swoosh.Attachment.new(logo_path, filename: "logo.svg", type: :inline)) @@ -230,23 +334,40 @@ def backup_is_ready_email(backup, admin_user_id \\ nil) do html_body = if is_nil(admin_user_id) do - """ -You requested a full backup of your Pleroma account. It's ready for download:
- - """ + Gettext.dpgettext( + "static_pages", + "account archive email body - self-requested", + """ +You requested a full backup of your Pleroma account. It's ready for download:
+ + """, + download_url: download_url + ) else admin = Pleroma.Repo.get(User, admin_user_id) - """ -Admin @#{admin.nickname} requested a full backup of your Pleroma account. It's ready for download:
- - """ + Gettext.dpgettext( + "static_pages", + "account archive email body - admin requested", + """ +Admin @%{admin_nickname} requested a full backup of your Pleroma account. It's ready for download:
+ + """, + admin_nickname: admin.nickname, + download_url: download_url + ) end new() |> to(recipient(user)) |> from(sender()) - |> subject("Your account archive is ready") + |> subject( + Gettext.dpgettext( + "static_pages", + "account archive email subject", + "Your account archive is ready" + ) + ) |> html_body(html_body) end end diff --git a/priv/gettext/static_pages.pot b/priv/gettext/static_pages.pot index b76641e28..a14cedae9 100644 --- a/priv/gettext/static_pages.pot +++ b/priv/gettext/static_pages.pot @@ -409,3 +409,105 @@ msgid "%{count} New Follower" msgid_plural "%{count} New Followers" msgstr[0] "" msgstr[1] "" + +#, elixir-format +#: lib/pleroma/emails/user_email.ex:349 +msgctxt "account archive email body - admin requested" +msgid "Admin @%{admin.nickname} requested a full backup of your Pleroma account. It's ready for download:
\n\n" +msgstr "" + +#, elixir-format +#: lib/pleroma/emails/user_email.ex:337 +msgctxt "account archive email body - self-requested" +msgid "You requested a full backup of your Pleroma account. It's ready for download:
\n\n" +msgstr "" + +#, elixir-format +#: lib/pleroma/emails/user_email.ex:365 +msgctxt "account archive email subject" +msgid "Your account archive is ready" +msgstr "" + +#, elixir-format +#: lib/pleroma/emails/user_email.ex:176 +msgctxt "approval pending email body" +msgid "Your account at %{instance_name} is being reviewed by staff. You will receive another email once your account is approved.
\n" +msgstr "" + +#, elixir-format +#: lib/pleroma/emails/user_email.ex:190 +msgctxt "approval pending email subject" +msgid "Your account is awaiting approval" +msgstr "" + +#, elixir-format +#: lib/pleroma/emails/user_email.ex:148 +msgctxt "confirmation email body" +msgid "Email confirmation is required to activate the account.
\nPlease click the following link to activate your account.
\n" +msgstr "" + +#, elixir-format +#: lib/pleroma/emails/user_email.ex:164 +msgctxt "confirmation email subject" +msgid "%{instance_name} account confirmation" +msgstr "" + +#, elixir-format +#: lib/pleroma/emails/user_email.ex:294 +msgctxt "digest email subject" +msgid "Your digest from %{instance_name}" +msgstr "" + +#, elixir-format +#: lib/pleroma/emails/user_email.ex:75 +msgctxt "password reset email body" +msgid "Someone has requested password change for your account at %{instance_name}.
\nIf it was you, visit the following link to proceed: reset password.
\nIf it was someone else, nothing to worry about: your data is secure and your password has not been changed.
\n" +msgstr "" + +#, elixir-format +#: lib/pleroma/emails/user_email.ex:92 +msgctxt "password reset email subject" +msgid "Password reset" +msgstr "" + +#, elixir-format +#: lib/pleroma/emails/user_email.ex:201 +msgctxt "successful registration email body" +msgid "Your account at %{instance_name} has been registered successfully.
\nNo further action is required to activate your account.
\n" +msgstr "" + +#, elixir-format +#: lib/pleroma/emails/user_email.ex:217 +msgctxt "successful registration email subject" +msgid "Account registered on %{instance_name}" +msgstr "" + +#, elixir-format +#: lib/pleroma/emails/user_email.ex:111 +msgctxt "user invitation email body" +msgid "%{inviter_name} invites you to join %{instance_name}, an instance of Pleroma federated social networking platform.
\nClick the following link to register: accept invitation.
\n" +msgstr "" + +#, elixir-format +#: lib/pleroma/emails/user_email.ex:128 +msgctxt "user invitation email subject" +msgid "Invitation to %{instance_name}" +msgstr "" + +#, elixir-format +#: lib/pleroma/emails/user_email.ex:49 +msgctxt "welcome email html body" +msgid "Welcome to %{instance_name}!" +msgstr "" + +#, elixir-format +#: lib/pleroma/emails/user_email.ex:40 +msgctxt "welcome email subject" +msgid "Welcome to %{instance_name}!" +msgstr "" + +#, elixir-format +#: lib/pleroma/emails/user_email.ex:61 +msgctxt "welcome email text body" +msgid "Welcome to %{instance_name}!" +msgstr ""