Merge branch 'bug/fix-instance-host-in-emails' into 'master'
🎨 Add fancy html emails See merge request framasoft/mobilizon!192
This commit is contained in:
commit
6628586fcc
BIN
js/public/img/mobilizon_logo.png
Normal file
BIN
js/public/img/mobilizon_logo.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 7.1 KiB |
@ -6,9 +6,6 @@ defmodule Mobilizon.Config do
|
||||
@spec instance_config :: keyword
|
||||
def instance_config, do: Application.get_env(:mobilizon, :instance)
|
||||
|
||||
@spec instance_url :: String.t()
|
||||
def instance_url, do: instance_config()[:instance]
|
||||
|
||||
@spec instance_name :: String.t()
|
||||
def instance_name, do: instance_config()[:name]
|
||||
|
||||
|
@ -5,7 +5,7 @@ defmodule MobilizonWeb.Email.Admin do
|
||||
|
||||
use Bamboo.Phoenix, view: MobilizonWeb.EmailView
|
||||
|
||||
import Bamboo.{Email, Phoenix}
|
||||
import Bamboo.Phoenix
|
||||
|
||||
import MobilizonWeb.Gettext
|
||||
|
||||
@ -19,20 +19,17 @@ defmodule MobilizonWeb.Email.Admin do
|
||||
def report(%User{email: email}, %Report{} = report, locale \\ "en") do
|
||||
Gettext.put_locale(locale)
|
||||
|
||||
instance_url = Config.instance_url()
|
||||
|
||||
subject =
|
||||
gettext(
|
||||
"Mobilizon: New report on instance %{instance}",
|
||||
instance: instance_url
|
||||
"New report on Mobilizon instance %{instance}",
|
||||
instance: Config.instance_name()
|
||||
)
|
||||
|
||||
Email.base_email()
|
||||
|> to(email)
|
||||
|> subject(subject)
|
||||
|> put_header("Reply-To", Config.instance_email_reply_to())
|
||||
Email.base_email(to: email, subject: subject)
|
||||
|> assign(:locale, locale)
|
||||
|> assign(:subject, subject)
|
||||
|> assign(:report, report)
|
||||
|> assign(:instance, instance_url)
|
||||
|> render(:report)
|
||||
|> render("report.html")
|
||||
|> Email.premail()
|
||||
end
|
||||
end
|
||||
|
@ -7,11 +7,24 @@ defmodule MobilizonWeb.Email do
|
||||
|
||||
alias Mobilizon.Config
|
||||
|
||||
@spec base_email :: Bamboo.Email.t()
|
||||
def base_email do
|
||||
new_email()
|
||||
@spec base_email(keyword()) :: Bamboo.Email.t()
|
||||
def base_email(args) do
|
||||
instance = Config.instance_config()
|
||||
|
||||
new_email(args)
|
||||
|> from(Config.instance_email_from())
|
||||
|> put_header("Reply-To", Config.instance_email_reply_to())
|
||||
|> assign(:instance, instance)
|
||||
|> put_html_layout({MobilizonWeb.EmailView, "email.html"})
|
||||
|> put_text_layout({MobilizonWeb.EmailView, "email.text"})
|
||||
|> put_text_layout(false)
|
||||
end
|
||||
|
||||
def premail(email) do
|
||||
html = Premailex.to_inline_css(email.html_body)
|
||||
text = Premailex.to_text(email.html_body)
|
||||
|
||||
email
|
||||
|> html_body(html)
|
||||
|> text_body(text)
|
||||
end
|
||||
end
|
||||
|
@ -5,7 +5,7 @@ defmodule MobilizonWeb.Email.User do
|
||||
|
||||
use Bamboo.Phoenix, view: MobilizonWeb.EmailView
|
||||
|
||||
import Bamboo.{Email, Phoenix}
|
||||
import Bamboo.Phoenix
|
||||
|
||||
import MobilizonWeb.Gettext
|
||||
|
||||
@ -21,21 +21,18 @@ defmodule MobilizonWeb.Email.User do
|
||||
) do
|
||||
Gettext.put_locale(locale)
|
||||
|
||||
instance_url = Config.instance_url()
|
||||
|
||||
subject =
|
||||
gettext(
|
||||
"Mobilizon: Confirmation instructions for %{instance}",
|
||||
instance: instance_url
|
||||
"Instructions to confirm your Mobilizon account on %{instance}",
|
||||
instance: Config.instance_name()
|
||||
)
|
||||
|
||||
Email.base_email()
|
||||
|> to(email)
|
||||
|> subject(subject)
|
||||
|> put_header("Reply-To", Config.instance_email_reply_to())
|
||||
Email.base_email(to: email, subject: subject)
|
||||
|> assign(:locale, locale)
|
||||
|> assign(:token, confirmation_token)
|
||||
|> assign(:instance, instance_url)
|
||||
|> render(:registration_confirmation)
|
||||
|> assign(:subject, subject)
|
||||
|> render("registration_confirmation.html")
|
||||
|> Email.premail()
|
||||
end
|
||||
|
||||
@spec reset_password_email(User.t(), String.t()) :: Bamboo.Email.t()
|
||||
@ -45,20 +42,17 @@ defmodule MobilizonWeb.Email.User do
|
||||
) do
|
||||
Gettext.put_locale(locale)
|
||||
|
||||
instance_url = Config.instance_url()
|
||||
|
||||
subject =
|
||||
gettext(
|
||||
"Mobilizon: Reset your password on %{instance} instructions",
|
||||
instance: instance_url
|
||||
"Instructions to reset your password on %{instance}",
|
||||
instance: Config.instance_name()
|
||||
)
|
||||
|
||||
Email.base_email()
|
||||
|> to(email)
|
||||
|> subject(subject)
|
||||
|> put_header("Reply-To", Config.instance_email_reply_to())
|
||||
Email.base_email(to: email, subject: subject)
|
||||
|> assign(:locale, locale)
|
||||
|> assign(:token, reset_password_token)
|
||||
|> assign(:instance, instance_url)
|
||||
|> render(:password_reset)
|
||||
|> assign(:subject, subject)
|
||||
|> render("password_reset.html")
|
||||
|> Email.premail()
|
||||
end
|
||||
end
|
||||
|
@ -1,10 +1,138 @@
|
||||
<html>
|
||||
<head>
|
||||
<link rel="stylesheet" href="<%= static_url(MobilizonWeb.Endpoint, "/css/email.css") %>">
|
||||
</head>
|
||||
<body>
|
||||
<%= render @view_module, @view_template, assigns %>
|
||||
<!-- THIS EMAIL WAS BUILT AND TESTED WITH LITMUS http://litmus.com -->
|
||||
<!-- IT WAS RELEASED UNDER THE MIT LICENSE https://opensource.org/licenses/MIT -->
|
||||
<!-- QUESTIONS? TWEET US @LITMUSAPP -->
|
||||
<!DOCTYPE html>
|
||||
<html lang="<%= @locale %>">
|
||||
<head>
|
||||
<title><%= @subject %></title>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
|
||||
<style type="text/css">
|
||||
/* CLIENT-SPECIFIC STYLES */
|
||||
body, table, td, a { -webkit-text-size-adjust: 100%; -ms-text-size-adjust: 100%; }
|
||||
table, td { mso-table-lspace: 0pt; mso-table-rspace: 0pt; }
|
||||
img { -ms-interpolation-mode: bicubic; }
|
||||
|
||||
<p><%= gettext "An email sent by Mobilizon on %{instance}.", instance: @instance %></p>
|
||||
</body>
|
||||
/* RESET STYLES */
|
||||
img { border: 0; height: auto; line-height: 100%; outline: none; text-decoration: none; }
|
||||
table { border-collapse: collapse !important; }
|
||||
body { height: 100% !important; margin: 0 !important; padding: 0 !important; width: 100% !important; }
|
||||
|
||||
/* iOS BLUE LINKS */
|
||||
a[x-apple-data-detectors] {
|
||||
color: inherit !important;
|
||||
text-decoration: none !important;
|
||||
font-size: inherit !important;
|
||||
font-family: inherit !important;
|
||||
font-weight: inherit !important;
|
||||
line-height: inherit !important;
|
||||
}
|
||||
|
||||
/* MOBILE STYLES */
|
||||
@media screen and (max-width:600px){
|
||||
h1 {
|
||||
font-size: 32px !important;
|
||||
line-height: 32px !important;
|
||||
}
|
||||
}
|
||||
|
||||
/* ANDROID CENTER FIX */
|
||||
div[style*="margin: 16px 0;"] { margin: 0 !important; }
|
||||
</style>
|
||||
</head>
|
||||
<body style="background-color: #f4f4f4; margin: 0 !important; padding: 0 !important;">
|
||||
<!-- HIDDEN PREHEADER TEXT -->
|
||||
<!--<div style="display: none; font-size: 1px; color: #fefefe; line-height: 1px; font-family: 'Lato', Helvetica, Arial, sans-serif; max-height: 0px; max-width: 0px; opacity: 0; overflow: hidden;">
|
||||
Looks like you tried signing in a few too many times. Let's see if we can get you back into your account.
|
||||
</div>-->
|
||||
<table border="0" cellpadding="0" cellspacing="0" width="100%">
|
||||
<!-- LOGO -->
|
||||
<tr>
|
||||
<td bgcolor="#424056" align="center">
|
||||
<!--[if (gte mso 9)|(IE)]>
|
||||
<table align="center" border="0" cellspacing="0" cellpadding="0" width="600">
|
||||
<tr>
|
||||
<td align="center" valign="top" width="600">
|
||||
<![endif]-->
|
||||
<table border="0" cellpadding="0" cellspacing="0" width="100%" style="max-width: 600px;" >
|
||||
<tr>
|
||||
<td align="center" valign="top" style="padding: 40px 10px 40px 10px;">
|
||||
<a href="<%= MobilizonWeb.Endpoint.url() %>" target="_blank">
|
||||
<img alt="Logo" src="<%= "#{MobilizonWeb.Endpoint.url()}/img/mobilizon_logo.png" %>" width="366" height="108" style="display: block; width: 366px; max-width: 366px; min-width: 366px; font-family: 'Lato', Helvetica, Arial, sans-serif; color: #ffffff; font-size: 18px;" border="0">
|
||||
</a>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<!--[if (gte mso 9)|(IE)]>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<![endif]-->
|
||||
</td>
|
||||
</tr>
|
||||
<%= render @view_module, @view_template, assigns %>
|
||||
<!-- SUPPORT CALLOUT -->
|
||||
<tr>
|
||||
<td bgcolor="#f4f4f4" align="center" style="padding: 30px 10px 0px 10px;">
|
||||
<!--[if (gte mso 9)|(IE)]>
|
||||
<table align="center" border="0" cellspacing="0" cellpadding="0" width="600">
|
||||
<tr>
|
||||
<td align="center" valign="top" width="600">
|
||||
<![endif]-->
|
||||
<table border="0" cellpadding="0" cellspacing="0" width="100%" style="max-width: 600px;" >
|
||||
<!-- HEADLINE -->
|
||||
<tr>
|
||||
<td bgcolor="#C6C2ED" align="center" style="padding: 30px 30px 30px 30px; border-radius: 4px 4px 4px 4px; color: #666666; font-family: 'Lato', Helvetica, Arial, sans-serif; font-size: 18px; font-weight: 400; line-height: 25px;" >
|
||||
<h2 style="font-size: 20px; font-weight: 400; color: #111111; margin: 0;">
|
||||
<%= gettext "Need some help? Something not working properly?" %>
|
||||
</h2>
|
||||
<p style="margin: 0;"><a href="https://framacolibri.org/c/mobilizon" target="_blank" style="color: #424056;">
|
||||
<%= gettext "Ask the community on Framacolibri" %>
|
||||
</a></p>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<!--[if (gte mso 9)|(IE)]>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<![endif]-->
|
||||
</td>
|
||||
</tr>
|
||||
<!-- FOOTER -->
|
||||
<tr>
|
||||
<td bgcolor="#f4f4f4" align="center" style="padding: 0px 10px 0px 10px;">
|
||||
<!--[if (gte mso 9)|(IE)]>
|
||||
<table align="center" border="0" cellspacing="0" cellpadding="0" width="600">
|
||||
<tr>
|
||||
<td align="center" valign="top" width="600">
|
||||
<![endif]-->
|
||||
<table border="0" cellpadding="0" cellspacing="0" width="100%" style="max-width: 600px;" >
|
||||
<!-- UNSUBSCRIBE -->
|
||||
<!--<tr>
|
||||
<td bgcolor="#f4f4f4" align="left" style="padding: 30px 30px 30px 30px; color: #666666; font-family: 'Lato', Helvetica, Arial, sans-serif; font-size: 14px; font-weight: 400; line-height: 18px;" >
|
||||
<p style="margin: 0;">If these emails get annoying, please feel free to <a href="http://litmus.com" target="_blank" style="color: #111111; font-weight: 700;">unsubscribe</a>.</p>
|
||||
</td>
|
||||
</tr>-->
|
||||
<!-- ADDRESS -->
|
||||
<tr>
|
||||
<td bgcolor="#f4f4f4" align="center" style="padding: 0px 30px 30px 30px; color: #666666; font-family: 'Lato', Helvetica, Arial, sans-serif; font-size: 14px; font-weight: 400; line-height: 18px;" >
|
||||
<p style="margin: 0;">
|
||||
<%= gettext "%{instance} is a Mobilizon server.", instance: @instance[:name] %>
|
||||
<a href="https://joinmobilizon.org"><%= gettext "Learn more about Mobilizon." %></a>
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<!--[if (gte mso 9)|(IE)]>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<![endif]-->
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
|
@ -1,5 +1,105 @@
|
||||
<h1><%= gettext "Password reset" %></h1>
|
||||
<p><%= gettext "You requested a new password for your account on %{host}.", host: @instance %></p>
|
||||
<p><%= gettext "If you didn't request this, please ignore this email. Your password won't change until you access the link below and create a new one." %></p>
|
||||
|
||||
<p><%= link "Change password", to: MobilizonWeb.Endpoint.url() <> "/password-reset/#{@token}", target: "_blank" %></p>
|
||||
<!-- HERO -->
|
||||
<tr>
|
||||
<td bgcolor="#424056" align="center" style="padding: 0px 10px 0px 10px;">
|
||||
<!--[if (gte mso 9)|(IE)]>
|
||||
<table align="center" border="0" cellspacing="0" cellpadding="0" width="600">
|
||||
<tr>
|
||||
<td align="center" valign="top" width="600">
|
||||
<![endif]-->
|
||||
<table border="0" cellpadding="0" cellspacing="0" width="100%" style="max-width: 600px;" >
|
||||
<tr>
|
||||
<td bgcolor="#ffffff" align="center" valign="top" style="padding: 40px 20px 20px 20px; border-radius: 4px 4px 0px 0px; color: #111111; font-family: 'Lato', Helvetica, Arial, sans-serif; font-size: 48px; font-weight: 400; letter-spacing: 4px; line-height: 48px;">
|
||||
<h1 style="font-size: 48px; font-weight: 400; margin: 0;">
|
||||
<%= gettext "Trouble signing in?" %>
|
||||
</h1>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<!--[if (gte mso 9)|(IE)]>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<![endif]-->
|
||||
</td>
|
||||
</tr>
|
||||
<!-- COPY BLOCK -->
|
||||
<tr>
|
||||
<td bgcolor="#f4f4f4" align="center" style="padding: 0px 10px 0px 10px;">
|
||||
<!--[if (gte mso 9)|(IE)]>
|
||||
<table align="center" border="0" cellspacing="0" cellpadding="0" width="600">
|
||||
<tr>
|
||||
<td align="center" valign="top" width="600">
|
||||
<![endif]-->
|
||||
<table border="0" cellpadding="0" cellspacing="0" width="100%" style="max-width: 600px;" >
|
||||
<!-- COPY -->
|
||||
<tr>
|
||||
<td bgcolor="#ffffff" align="left" style="padding: 20px 30px 0px 30px; color: #666666; font-family: 'Lato', Helvetica, Arial, sans-serif; font-size: 18px; font-weight: 400; line-height: 25px;" >
|
||||
<p style="margin: 0;">
|
||||
<%= gettext "You requested a new password for your account on %{server}.", server: @instance[:name] %>
|
||||
</p>
|
||||
<p style="margin: 0">
|
||||
<%= gettext "Resetting your password is easy. Just press the button below and follow the instructions. We'll have you up and running in no time." %>
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td bgcolor="#ffffff" align="left" style="padding: 20px 30px 40px 30px; color: #777777; font-family: 'Lato', Helvetica, Arial, sans-serif; font-size: 14px; font-weight: 400; line-height: 20px;" >
|
||||
<p style="margin: 0">
|
||||
<%= gettext "If you didn't request this, please ignore this email. Your password won't change until you access the link below and create a new one." %>
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
<!-- BULLETPROOF BUTTON -->
|
||||
<tr>
|
||||
<td bgcolor="#ffffff" align="left">
|
||||
<table width="100%" border="0" cellspacing="0" cellpadding="0">
|
||||
<tr>
|
||||
<td bgcolor="#ffffff" align="center" style="padding: 20px 30px 60px 30px;">
|
||||
<table border="0" cellspacing="0" cellpadding="0">
|
||||
<tr>
|
||||
<td align="center" style="border-radius: 3px;" bgcolor="#424056"><a href="<%= "#{MobilizonWeb.Endpoint.url()}/password-reset/#{@token}" %>" target="_blank" style="font-size: 20px; font-family: Helvetica, Arial, sans-serif; color: #ffffff; text-decoration: none; color: #ffffff; text-decoration: none; padding: 15px 25px; border-radius: 2px; border: 1px solid #424056; display: inline-block;">
|
||||
<%= gettext "Reset Password" %>
|
||||
</a></td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<!--[if (gte mso 9)|(IE)]>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<![endif]-->
|
||||
</td>
|
||||
</tr>
|
||||
<!-- SUPPORT CALLOUT -->
|
||||
<tr>
|
||||
<td bgcolor="#f4f4f4" align="center" style="padding: 30px 10px 0px 10px;">
|
||||
<!--[if (gte mso 9)|(IE)]>
|
||||
<table align="center" border="0" cellspacing="0" cellpadding="0" width="600">
|
||||
<tr>
|
||||
<td align="center" valign="top" width="600">
|
||||
<![endif]-->
|
||||
<table border="0" cellpadding="0" cellspacing="0" width="100%" style="max-width: 600px;" >
|
||||
<!-- HEADLINE -->
|
||||
<tr>
|
||||
<td bgcolor="#C6C2ED" align="center" style="padding: 30px 30px 30px 30px; border-radius: 4px 4px 4px 4px; color: #666666; font-family: 'Lato', Helvetica, Arial, sans-serif; font-size: 18px; font-weight: 400; line-height: 25px;" >
|
||||
<h2 style="font-size: 20px; font-weight: 400; color: #111111; margin: 0;">
|
||||
<%= gettext "Need some help? Something not working properly?" %>
|
||||
</h2>
|
||||
<p style="margin: 0;"><a href="https://framacolibri.org/c/mobilizon" target="_blank" style="color: #424056;">
|
||||
<%= gettext "Ask the community on Framacolibri" %>
|
||||
</a></p>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<!--[if (gte mso 9)|(IE)]>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<![endif]-->
|
||||
</td>
|
||||
</tr>
|
@ -1,11 +0,0 @@
|
||||
<%= gettext "Password reset" %>
|
||||
|
||||
==
|
||||
|
||||
<%= gettext "You requested a new password for your account on %{host}.", host: @instance %>
|
||||
|
||||
<%= gettext "If you didn't request this, please ignore this email. Your password won't change until you access the link below and create a new one." %>
|
||||
|
||||
<%= MobilizonWeb.Endpoint.url() <> "/password-reset/#{@token}" %>
|
||||
|
||||
|
@ -1,4 +1,74 @@
|
||||
<h1><%= gettext "Confirm the email address" %></h1>
|
||||
<p><%= gettext "You created an account on %{host} with this email address. You are one click away from activating it. If this wasn't you, please ignore this email.", host: @instance %></p>
|
||||
|
||||
<p><%= link "Confirm your email address", to: MobilizonWeb.Endpoint.url() <> "/validate/#{@token}", target: "_blank" %></p>
|
||||
<!-- HERO -->
|
||||
<tr>
|
||||
<td bgcolor="#424056" align="center" style="padding: 0px 10px 0px 10px;">
|
||||
<!--[if (gte mso 9)|(IE)]>
|
||||
<table align="center" border="0" cellspacing="0" cellpadding="0" width="600">
|
||||
<tr>
|
||||
<td align="center" valign="top" width="600">
|
||||
<![endif]-->
|
||||
<table border="0" cellpadding="0" cellspacing="0" width="100%" style="max-width: 600px;" >
|
||||
<tr>
|
||||
<td bgcolor="#ffffff" align="center" valign="top" style="padding: 40px 20px 20px 20px; border-radius: 4px 4px 0px 0px; color: #111111; font-family: 'Lato', Helvetica, Arial, sans-serif; font-size: 48px; font-weight: 400; letter-spacing: 4px; line-height: 48px;">
|
||||
<h1 style="font-size: 48px; font-weight: 400; margin: 0;">
|
||||
<%= gettext "Nearly here!" %>
|
||||
</h1>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<!--[if (gte mso 9)|(IE)]>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<![endif]-->
|
||||
</td>
|
||||
</tr>
|
||||
<!-- COPY BLOCK -->
|
||||
<tr>
|
||||
<td bgcolor="#f4f4f4" align="center" style="padding: 0px 10px 0px 10px;">
|
||||
<!--[if (gte mso 9)|(IE)]>
|
||||
<table align="center" border="0" cellspacing="0" cellpadding="0" width="600">
|
||||
<tr>
|
||||
<td align="center" valign="top" width="600">
|
||||
<![endif]-->
|
||||
<table border="0" cellpadding="0" cellspacing="0" width="100%" style="max-width: 600px;" >
|
||||
<!-- COPY -->
|
||||
<tr>
|
||||
<td bgcolor="#ffffff" align="left" style="padding: 20px 30px 0px 30px; color: #666666; font-family: 'Lato', Helvetica, Arial, sans-serif; font-size: 18px; font-weight: 400; line-height: 25px;" >
|
||||
<p style="margin: 0;">
|
||||
<%= gettext "You created an account on %{host} with this email address. You are one click away from activating it.", host: @instance[:name] %>
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td bgcolor="#ffffff" align="left" style="padding: 20px 30px 40px 30px; color: #777777; font-family: 'Lato', Helvetica, Arial, sans-serif; font-size: 14px; font-weight: 400; line-height: 20px;" >
|
||||
<p style="margin: 0">
|
||||
<%= gettext "If you didn't request this, please ignore this email." %>
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
<!-- BULLETPROOF BUTTON -->
|
||||
<tr>
|
||||
<td bgcolor="#ffffff" align="left">
|
||||
<table width="100%" border="0" cellspacing="0" cellpadding="0">
|
||||
<tr>
|
||||
<td bgcolor="#ffffff" align="center" style="padding: 20px 30px 60px 30px;">
|
||||
<table border="0" cellspacing="0" cellpadding="0">
|
||||
<tr>
|
||||
<td align="center" style="border-radius: 3px;" bgcolor="#424056"><a href="<%= "#{MobilizonWeb.Endpoint.url()}/validate/#{@token}" %>" target="_blank" style="font-size: 20px; font-family: Helvetica, Arial, sans-serif; color: #ffffff; text-decoration: none; color: #ffffff; text-decoration: none; padding: 15px 25px; border-radius: 2px; border: 1px solid #424056; display: inline-block;">
|
||||
<%= gettext "Activate my account" %>
|
||||
</a></td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<!--[if (gte mso 9)|(IE)]>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<![endif]-->
|
||||
</td>
|
||||
</tr>
|
@ -1,9 +0,0 @@
|
||||
<%= gettext "Confirm the email address" %>
|
||||
|
||||
==
|
||||
|
||||
<%= gettext "You created an account on %{host} with this email address. You are one click away from activating it. If this wasn't you, please ignore this email.", host: @instance %>
|
||||
|
||||
<%= MobilizonWeb.Endpoint.url() <> "/validate/#{@token}" %>
|
||||
|
||||
|
@ -1,15 +1,116 @@
|
||||
<h1><%= gettext "New report from %{reporter} on %{instance}", reporter: @report.reporter.preferred_username, instance: @instance %></h1>
|
||||
|
||||
<% if @report.event do %>
|
||||
<p><%= gettext "Event: %{event}", event: @report.event.title %></p>
|
||||
<% end %>
|
||||
|
||||
<%= for comment <- @report.comments do %>
|
||||
<p><%= gettext "Comment: %{comment}", comment: comment %></p>
|
||||
<% end %>
|
||||
|
||||
<% if @report.content do %>
|
||||
<p><%= gettext "Reason: %{content}", event: @report.content %></p>
|
||||
<% end %>
|
||||
|
||||
<p><%= link "View the report", to: moderation_report_url(MobilizonWeb.Endpoint, :index, @report.id), target: "_blank" %></p>
|
||||
<!-- HERO -->
|
||||
<tr>
|
||||
<td bgcolor="#424056" align="center" style="padding: 0px 10px 0px 10px;">
|
||||
<!--[if (gte mso 9)|(IE)]>
|
||||
<table align="center" border="0" cellspacing="0" cellpadding="0" width="600">
|
||||
<tr>
|
||||
<td align="center" valign="top" width="600">
|
||||
<![endif]-->
|
||||
<table border="0" cellpadding="0" cellspacing="0" width="100%" style="max-width: 600px;" >
|
||||
<tr>
|
||||
<td bgcolor="#ffffff" align="center" valign="top" style="padding: 40px 20px 20px 20px; border-radius: 4px 4px 0px 0px; color: #111111; font-family: 'Lato', Helvetica, Arial, sans-serif; font-size: 48px; font-weight: 400; letter-spacing: 4px; line-height: 48px;">
|
||||
<h1 style="font-size: 48px; font-weight: 400; margin: 0;">
|
||||
<%= gettext "New report on %{instance}", instance: @instance[:name] %>
|
||||
</h1>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<!--[if (gte mso 9)|(IE)]>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<![endif]-->
|
||||
</td>
|
||||
</tr>
|
||||
<!-- COPY BLOCK -->
|
||||
<tr>
|
||||
<td bgcolor="#f4f4f4" align="center" style="padding: 0px 10px 0px 10px;">
|
||||
<!--[if (gte mso 9)|(IE)]>
|
||||
<table align="center" border="0" cellspacing="0" cellpadding="0" width="600">
|
||||
<tr>
|
||||
<td align="center" valign="top" width="600">
|
||||
<![endif]-->
|
||||
<table border="0" cellpadding="0" cellspacing="0" width="100%" style="max-width: 600px;" >
|
||||
<!-- COPY -->
|
||||
<tr>
|
||||
<td bgcolor="#ffffff" align="left" style="padding: 20px 30px 0px 30px; color: #666666; font-family: 'Lato', Helvetica, Arial, sans-serif; font-size: 18px; font-weight: 400; line-height: 25px;" >
|
||||
<p style="margin: 0;">
|
||||
<%= gettext "%{reporter_name} (%{reporter_username}) reported the following content.", reporter_name: @report.reporter.name, reporter_username: Mobilizon.Actors.Actor.preferred_username_and_domain(@report.reporter) %>
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
<%= if Map.has_key?(@report, :event) do %>
|
||||
<tr>
|
||||
<td bgcolor="#ffffff" align="left" style="padding: 20px 30px 0px 30px; color: #666666; font-family: 'Lato', Helvetica, Arial, sans-serif; font-size: 18px; font-weight: 400; line-height: 25px;" >
|
||||
<p style="margin: 0;">
|
||||
<h3><%= gettext "Event" %></h3>
|
||||
<a href="<%= "#{MobilizonWeb.Endpoint.url()}/events/#{@report.event.uuid}" %>" target="_blank">
|
||||
<%= gettext "%{title} by %{creator}", title: @report.event.title, creator: Mobilizon.Actors.Actor.preferred_username_and_domain(@report.reported) %>
|
||||
</a>
|
||||
</p>
|
||||
<table cellspacing="0" cellpadding="0" border="0" width="100%" style="width: 100% !important;">
|
||||
<tr>
|
||||
<td align="left" valign="top" width="600px" height="1" style="background-color: #f0f0f0; border-collapse:collapse; mso-table-lspace: 0pt; mso-table-rspace: 0pt; mso-line-height-rule: exactly; line-height: 1px;"><!--[if gte mso 15]> <![endif]--></td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
<% end %>
|
||||
<%= if Map.has_key?(@report, :comments) && length(@report.comments) > 0 do %>
|
||||
<tr>
|
||||
<td bgcolor="#ffffff" align="left" style="padding: 20px 30px 0px 30px; color: #666666; font-family: 'Lato', Helvetica, Arial, sans-serif; font-size: 18px; font-weight: 400; line-height: 25px;" >
|
||||
<p><%= gettext "Comments" %></p>
|
||||
<%= for comment <- @report.comments do %>
|
||||
<p style="margin: 0;">
|
||||
<%= comment.text %>
|
||||
</p>
|
||||
<% end %>
|
||||
<table cellspacing="0" cellpadding="0" border="0" width="100%" style="width: 100% !important;">
|
||||
<tr>
|
||||
<td align="left" valign="top" width="600px" height="1" style="background-color: #f0f0f0; border-collapse:collapse; mso-table-lspace: 0pt; mso-table-rspace: 0pt; mso-line-height-rule: exactly; line-height: 1px;"><!--[if gte mso 15]> <![endif]--></td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
<% end %>
|
||||
<%= if Map.has_key?(@report, :content) do %>
|
||||
<tr>
|
||||
<td bgcolor="#ffffff" align="left" style="padding: 20px 30px 0px 30px; color: #666666; font-family: 'Lato', Helvetica, Arial, sans-serif; font-size: 18px; font-weight: 400; line-height: 25px;" >
|
||||
<p style="margin: 0">
|
||||
<h3><%= gettext "Reason" %></h3>
|
||||
<%= @report.content %>
|
||||
</p>
|
||||
<table cellspacing="0" cellpadding="0" border="0" width="100%" style="width: 100% !important;">
|
||||
<tr>
|
||||
<td align="left" valign="top" width="600px" height="1" style="background-color: #f0f0f0; border-collapse:collapse; mso-table-lspace: 0pt; mso-table-rspace: 0pt; mso-line-height-rule: exactly; line-height: 1px;"><!--[if gte mso 15]> <![endif]--></td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
<% end %>
|
||||
<!-- BULLETPROOF BUTTON -->
|
||||
<tr>
|
||||
<td bgcolor="#ffffff" align="left">
|
||||
<table width="100%" border="0" cellspacing="0" cellpadding="0">
|
||||
<tr>
|
||||
<td bgcolor="#ffffff" align="center" style="padding: 20px 30px 60px 30px;">
|
||||
<table border="0" cellspacing="0" cellpadding="0">
|
||||
<tr>
|
||||
<td align="center" style="border-radius: 3px;" bgcolor="#424056"><a href="<%= moderation_report_url(MobilizonWeb.Endpoint, :index, @report.id) %>" target="_blank" style="font-size: 20px; font-family: Helvetica, Arial, sans-serif; color: #ffffff; text-decoration: none; color: #ffffff; text-decoration: none; padding: 15px 25px; border-radius: 2px; border: 1px solid #424056; display: inline-block;">
|
||||
<%= gettext "View the report" %>
|
||||
</a></td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<!--[if (gte mso 9)|(IE)]>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<![endif]-->
|
||||
</td>
|
||||
</tr>
|
@ -1,19 +0,0 @@
|
||||
<%= gettext "New report from %{reporter} on %{instance}", reporter: @report.reporter.preferred_username, instance: @instance %>
|
||||
|
||||
--
|
||||
|
||||
<% if @report.event do %>
|
||||
<%= gettext "Event: %{event}", event: @report.event.title %>
|
||||
<% end %>
|
||||
|
||||
<%= for comment <- @report.comments do %>
|
||||
<%= gettext "Comment: %{comment}", comment: comment.text %>
|
||||
<% end %>
|
||||
|
||||
<% if @report.content do %>
|
||||
<%= gettext "Reason: %{content}", event: @report.content %>
|
||||
<% end %>
|
||||
|
||||
View the report: <%= moderation_report_url(MobilizonWeb.Endpoint, :index, @report.id) %>
|
||||
|
||||
|
1
mix.exs
1
mix.exs
@ -90,6 +90,7 @@ defmodule Mobilizon.Mixfile do
|
||||
{:earmark, "~> 1.3.1"},
|
||||
{:geohax, "~> 0.3.0"},
|
||||
{:mogrify, "~> 0.7.2"},
|
||||
{:premailex, "~> 0.3.0"},
|
||||
{:auto_linker,
|
||||
git: "https://git.pleroma.social/pleroma/auto_linker.git",
|
||||
ref: "95e8188490e97505c56636c1379ffdf036c1fdde"},
|
||||
|
3
mix.lock
3
mix.lock
@ -47,6 +47,7 @@
|
||||
"exvcr": {:hex, :exvcr, "0.10.3", "1ae3b97560430acfa88ebc737c85b2b7a9dbacd8a2b26789a19718b51ae3522c", [:mix], [{:exactor, "~> 2.2", [hex: :exactor, repo: "hexpm", optional: false]}, {:exjsx, "~> 4.0", [hex: :exjsx, repo: "hexpm", optional: false]}, {:httpoison, "~> 1.0", [hex: :httpoison, repo: "hexpm", optional: true]}, {:httpotion, "~> 3.1", [hex: :httpotion, repo: "hexpm", optional: true]}, {:ibrowse, "~> 4.4", [hex: :ibrowse, repo: "hexpm", optional: true]}, {:meck, "~> 0.8", [hex: :meck, repo: "hexpm", optional: false]}], "hexpm"},
|
||||
"feeder": {:hex, :feeder, "2.2.4", "56ec535cf2f79719bc53b5c2abe5f6cf481fc01e5ae6229ab7cc829644f039ec", [:make], [], "hexpm"},
|
||||
"file_system": {:hex, :file_system, "0.2.7", "e6f7f155970975789f26e77b8b8d8ab084c59844d8ecfaf58cbda31c494d14aa", [:mix], [], "hexpm"},
|
||||
"floki": {:hex, :floki, "0.23.0", "956ab6dba828c96e732454809fb0bd8d43ce0979b75f34de6322e73d4c917829", [:mix], [{:html_entities, "~> 0.4.0", [hex: :html_entities, repo: "hexpm", optional: false]}], "hexpm"},
|
||||
"gen_smtp": {:hex, :gen_smtp, "0.14.0", "39846a03522456077c6429b4badfd1d55e5e7d0fdfb65e935b7c5e38549d9202", [:rebar3], [], "hexpm"},
|
||||
"geo": {:hex, :geo, "3.1.0", "727e005262430d037e870ff364e65d80ca5ca21d5ac8eddd57a1ada72c3f83b0", [:mix], [], "hexpm"},
|
||||
"geo_postgis": {:hex, :geo_postgis, "3.1.0", "d06c8fa5fd140a52a5c9dab4ad6623a696dd7d99dd791bb361d3f94942442ff9", [:mix], [{:geo, "~> 3.1", [hex: :geo, repo: "hexpm", optional: false]}, {:jason, "~> 1.0", [hex: :jason, repo: "hexpm", optional: true]}, {:poison, "~> 2.2 or ~> 3.0 or ~> 4.0", [hex: :poison, repo: "hexpm", optional: true]}, {:postgrex, "~> 0.14", [hex: :postgrex, repo: "hexpm", optional: false]}], "hexpm"},
|
||||
@ -56,6 +57,7 @@
|
||||
"guardian": {:hex, :guardian, "1.2.1", "bdc8dd3dbf0fb7216cb6f91c11831faa1a64d39cdaed9a611e37f2413e584983", [:mix], [{:jose, "~> 1.8", [hex: :jose, repo: "hexpm", optional: false]}, {:phoenix, "~> 1.3", [hex: :phoenix, repo: "hexpm", optional: true]}, {:plug, "~> 1.3.3 or ~> 1.4", [hex: :plug, repo: "hexpm", optional: true]}], "hexpm"},
|
||||
"guardian_db": {:hex, :guardian_db, "2.0.1", "e62e383197e957cb9c6683926d45056ab814eb0362e3de7f65d4619ae19544e8", [:mix], [{:ecto, "~> 3.0", [hex: :ecto, repo: "hexpm", optional: false]}, {:ecto_sql, "~> 3.1.0", [hex: :ecto_sql, repo: "hexpm", optional: false]}, {:guardian, "~> 1.0", [hex: :guardian, repo: "hexpm", optional: false]}, {:postgrex, "~> 0.13", [hex: :postgrex, repo: "hexpm", optional: true]}], "hexpm"},
|
||||
"hackney": {:hex, :hackney, "1.15.1", "9f8f471c844b8ce395f7b6d8398139e26ddca9ebc171a8b91342ee15a19963f4", [:rebar3], [{:certifi, "2.5.1", [hex: :certifi, repo: "hexpm", optional: false]}, {:idna, "6.0.0", [hex: :idna, repo: "hexpm", optional: false]}, {:metrics, "1.0.1", [hex: :metrics, repo: "hexpm", optional: false]}, {:mimerl, "~>1.1", [hex: :mimerl, repo: "hexpm", optional: false]}, {:ssl_verify_fun, "1.1.4", [hex: :ssl_verify_fun, repo: "hexpm", optional: false]}], "hexpm"},
|
||||
"html_entities": {:hex, :html_entities, "0.4.0", "f2fee876858cf6aaa9db608820a3209e45a087c5177332799592142b50e89a6b", [:mix], [], "hexpm"},
|
||||
"html_sanitize_ex": {:hex, :html_sanitize_ex, "1.3.0", "f005ad692b717691203f940c686208aa3d8ffd9dd4bb3699240096a51fa9564e", [:mix], [{:mochiweb, "~> 2.15", [hex: :mochiweb, repo: "hexpm", optional: false]}], "hexpm"},
|
||||
"http_sign": {:hex, :http_sign, "0.1.1", "b16edb83aa282892f3271f9a048c155e772bf36e15700ab93901484c55f8dd10", [:mix], [{:plug, "~> 1.0", [hex: :plug, repo: "hexpm", optional: false]}], "hexpm"},
|
||||
"http_signatures": {:git, "https://git.pleroma.social/pleroma/http_signatures.git", "293d77bb6f4a67ac8bde1428735c3b42f22cbb30", [ref: "293d77bb6f4a67ac8bde1428735c3b42f22cbb30"]},
|
||||
@ -91,6 +93,7 @@
|
||||
"poison": {:hex, :poison, "4.0.1", "bcb755a16fac91cad79bfe9fc3585bb07b9331e50cfe3420a24bcc2d735709ae", [:mix], [], "hexpm"},
|
||||
"poolboy": {:hex, :poolboy, "1.5.2", "392b007a1693a64540cead79830443abf5762f5d30cf50bc95cb2c1aaafa006b", [:rebar3], [], "hexpm"},
|
||||
"postgrex": {:hex, :postgrex, "0.15.0", "dd5349161019caeea93efa42f9b22f9d79995c3a86bdffb796427b4c9863b0f0", [:mix], [{:connection, "~> 1.0", [hex: :connection, repo: "hexpm", optional: false]}, {:db_connection, "~> 2.1", [hex: :db_connection, repo: "hexpm", optional: false]}, {:decimal, "~> 1.5", [hex: :decimal, repo: "hexpm", optional: false]}, {:jason, "~> 1.0", [hex: :jason, repo: "hexpm", optional: true]}], "hexpm"},
|
||||
"premailex": {:hex, :premailex, "0.3.8", "708f7e56d4753d0cbd3fce32e475fc5a00e6da44bf41b630684dbd35beb5263b", [:mix], [{:certifi, ">= 0.0.0", [hex: :certifi, repo: "hexpm", optional: true]}, {:floki, ">= 0.19.0 or < 0.21.0", [hex: :floki, repo: "hexpm", optional: false]}, {:meeseeks, ">= 0.9.0 or < 0.11.0", [hex: :meeseeks, repo: "hexpm", optional: true]}, {:ssl_verify_fun, ">= 0.0.0", [hex: :ssl_verify_fun, repo: "hexpm", optional: true]}], "hexpm"},
|
||||
"ranch": {:hex, :ranch, "1.7.1", "6b1fab51b49196860b733a49c07604465a47bdb78aa10c1c16a3d199f7f8c881", [:rebar3], [], "hexpm"},
|
||||
"rdf": {:hex, :rdf, "0.6.1", "e5464a7c0d91719bef6870eafe7efb3786c5622e4de592c84b8a32308de66c89", [:mix], [{:decimal, "~> 1.5", [hex: :decimal, repo: "hexpm", optional: false]}], "hexpm"},
|
||||
"rsa_ex": {:hex, :rsa_ex, "0.4.0", "e28dd7dc5236e156df434af0e4aa822384c8866c928e17b785d4edb7c253b558", [:mix], [], "hexpm"},
|
||||
|
@ -1,79 +1,126 @@
|
||||
#, elixir-format
|
||||
#: lib/mobilizon_web/templates/email/email.html.eex:8
|
||||
#: lib/mobilizon_web/templates/email/email.text.eex:3
|
||||
msgid "An email sent by Mobilizon on %{instance}."
|
||||
msgstr ""
|
||||
|
||||
#, elixir-format
|
||||
#: lib/mobilizon_web/templates/email/registration_confirmation.html.eex:1
|
||||
#: lib/mobilizon_web/templates/email/registration_confirmation.text.eex:1
|
||||
msgid "Confirm the email address"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-format
|
||||
#: lib/mobilizon_web/templates/email/password_reset.html.eex:3
|
||||
#: lib/mobilizon_web/templates/email/password_reset.text.eex:7
|
||||
#: lib/mobilizon_web/templates/email/password_reset.html.eex:48
|
||||
msgid "If you didn't request this, please ignore this email. Your password won't change until you access the link below and create a new one."
|
||||
msgstr ""
|
||||
|
||||
#, elixir-format
|
||||
#: lib/mobilizon/email/user.ex:19
|
||||
msgid "Mobilizon: Confirmation instructions for %{instance}"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-format
|
||||
#: lib/mobilizon/email/user.ex:34
|
||||
msgid "Mobilizon: Reset your password on %{instance} instructions"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-format
|
||||
#: lib/mobilizon_web/templates/email/password_reset.html.eex:1
|
||||
#: lib/mobilizon_web/templates/email/password_reset.text.eex:1
|
||||
msgid "Password reset"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-format
|
||||
#: lib/mobilizon_web/templates/email/registration_confirmation.html.eex:2
|
||||
#: lib/mobilizon_web/templates/email/registration_confirmation.text.eex:5
|
||||
msgid "You created an account on %{host} with this email address. You are one click away from activating it. If this wasn't you, please ignore this email."
|
||||
msgstr ""
|
||||
|
||||
#, elixir-format
|
||||
#: lib/mobilizon_web/templates/email/password_reset.html.eex:2
|
||||
#: lib/mobilizon_web/templates/email/password_reset.text.eex:5
|
||||
msgid "You requested a new password for your account on %{host}."
|
||||
msgstr ""
|
||||
|
||||
#, elixir-format
|
||||
#: lib/mobilizon_web/templates/email/report.html.eex:8
|
||||
#: lib/mobilizon_web/templates/email/report.text.eex:10
|
||||
msgid "Comment: %{comment}"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-format
|
||||
#: lib/mobilizon_web/templates/email/report.html.eex:4
|
||||
#: lib/mobilizon_web/templates/email/report.text.eex:6
|
||||
msgid "Event: %{event}"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-format
|
||||
#: lib/service/export/feed.ex:161
|
||||
msgid "Feed for %{email} on Mobilizon"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-format
|
||||
#: lib/mobilizon/email/admin.ex:19
|
||||
msgid "Mobilizon: New report on instance %{instance}"
|
||||
#: lib/mobilizon_web/templates/email/email.html.eex:122
|
||||
msgid "%{instance} is a Mobilizon server."
|
||||
msgstr ""
|
||||
|
||||
#, elixir-format
|
||||
#: lib/mobilizon_web/templates/email/report.html.eex:1
|
||||
#: lib/mobilizon_web/templates/email/report.text.eex:1
|
||||
msgid "New report from %{reporter} on %{instance}"
|
||||
#: lib/mobilizon_web/templates/email/report.html.eex:38
|
||||
msgid "%{reporter_name} (%{reporter_username}) reported the following content."
|
||||
msgstr ""
|
||||
|
||||
#, elixir-format
|
||||
#: lib/mobilizon_web/templates/email/report.html.eex:12
|
||||
#: lib/mobilizon_web/templates/email/report.text.eex:14
|
||||
msgid "Reason: %{content}"
|
||||
#: lib/mobilizon_web/templates/email/report.html.eex:48
|
||||
msgid "%{title} by %{creator}"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-format
|
||||
#: lib/mobilizon_web/templates/email/registration_confirmation.html.eex:58
|
||||
msgid "Activate my account"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-format
|
||||
#: lib/mobilizon_web/templates/email/email.html.eex:91
|
||||
#: lib/mobilizon_web/templates/email/password_reset.html.eex:94
|
||||
msgid "Ask the community on Framacolibri"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-format
|
||||
#: lib/mobilizon_web/templates/email/report.html.eex:62
|
||||
msgid "Comments"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-format
|
||||
#: lib/mobilizon_web/templates/email/report.html.eex:46
|
||||
msgid "Event"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-format
|
||||
#: lib/mobilizon_web/templates/email/registration_confirmation.html.eex:45
|
||||
msgid "If you didn't request this, please ignore this email."
|
||||
msgstr ""
|
||||
|
||||
#, elixir-format
|
||||
#: lib/mobilizon_web/email/user.ex:46
|
||||
msgid "Instructions to reset your password on %{instance}"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-format
|
||||
#: lib/mobilizon_web/templates/email/email.html.eex:123
|
||||
msgid "Learn more about Mobilizon."
|
||||
msgstr ""
|
||||
|
||||
#, elixir-format
|
||||
#: lib/mobilizon_web/templates/email/registration_confirmation.html.eex:13
|
||||
msgid "Nearly here!"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-format
|
||||
#: lib/mobilizon_web/templates/email/email.html.eex:88
|
||||
#: lib/mobilizon_web/templates/email/password_reset.html.eex:91
|
||||
msgid "Need some help? Something not working properly?"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-format
|
||||
#: lib/mobilizon_web/templates/email/report.html.eex:13
|
||||
msgid "New report on %{instance}"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-format
|
||||
#: lib/mobilizon_web/templates/email/report.html.eex:80
|
||||
msgid "Reason"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-format
|
||||
#: lib/mobilizon_web/templates/email/password_reset.html.eex:61
|
||||
msgid "Reset Password"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-format
|
||||
#: lib/mobilizon_web/templates/email/password_reset.html.eex:41
|
||||
msgid "Resetting your password is easy. Just press the button below and follow the instructions. We'll have you up and running in no time."
|
||||
msgstr ""
|
||||
|
||||
#, elixir-format
|
||||
#: lib/mobilizon_web/templates/email/password_reset.html.eex:13
|
||||
msgid "Trouble signing in?"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-format
|
||||
#: lib/mobilizon_web/templates/email/report.html.eex:100
|
||||
msgid "View the report"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-format
|
||||
#: lib/mobilizon_web/templates/email/registration_confirmation.html.eex:38
|
||||
msgid "You created an account on %{host} with this email address. You are one click away from activating it."
|
||||
msgstr ""
|
||||
|
||||
#, elixir-format
|
||||
#: lib/mobilizon_web/templates/email/password_reset.html.eex:38
|
||||
msgid "You requested a new password for your account on %{server}."
|
||||
msgstr ""
|
||||
|
||||
#, elixir-format
|
||||
#: lib/mobilizon_web/email/user.ex:25
|
||||
msgid "Instructions to confirm your Mobilizon account on %{instance}"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-format
|
||||
#: lib/mobilizon_web/email/admin.ex:23
|
||||
msgid "New report on Mobilizon instance %{instance}"
|
||||
msgstr ""
|
||||
|
@ -12,81 +12,128 @@ msgstr ""
|
||||
"Plural-Forms: nplurals=2\n"
|
||||
|
||||
#, elixir-format
|
||||
#: lib/mobilizon_web/templates/email/email.html.eex:8
|
||||
#: lib/mobilizon_web/templates/email/email.text.eex:3
|
||||
msgid "An email sent by Mobilizon on %{instance}."
|
||||
msgstr ""
|
||||
|
||||
#, elixir-format
|
||||
#: lib/mobilizon_web/templates/email/registration_confirmation.html.eex:1
|
||||
#: lib/mobilizon_web/templates/email/registration_confirmation.text.eex:1
|
||||
msgid "Confirm the email address"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-format
|
||||
#: lib/mobilizon_web/templates/email/password_reset.html.eex:3
|
||||
#: lib/mobilizon_web/templates/email/password_reset.text.eex:7
|
||||
#: lib/mobilizon_web/templates/email/password_reset.html.eex:48
|
||||
msgid "If you didn't request this, please ignore this email. Your password won't change until you access the link below and create a new one."
|
||||
msgstr ""
|
||||
|
||||
#, elixir-format
|
||||
#: lib/mobilizon/email/user.ex:19
|
||||
msgid "Mobilizon: Confirmation instructions for %{instance}"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-format
|
||||
#: lib/mobilizon/email/user.ex:34
|
||||
msgid "Mobilizon: Reset your password on %{instance} instructions"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-format
|
||||
#: lib/mobilizon_web/templates/email/password_reset.html.eex:1
|
||||
#: lib/mobilizon_web/templates/email/password_reset.text.eex:1
|
||||
msgid "Password reset"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-format
|
||||
#: lib/mobilizon_web/templates/email/registration_confirmation.html.eex:2
|
||||
#: lib/mobilizon_web/templates/email/registration_confirmation.text.eex:5
|
||||
msgid "You created an account on %{host} with this email address. You are one click away from activating it. If this wasn't you, please ignore this email."
|
||||
msgstr ""
|
||||
|
||||
#, elixir-format
|
||||
#: lib/mobilizon_web/templates/email/password_reset.html.eex:2
|
||||
#: lib/mobilizon_web/templates/email/password_reset.text.eex:5
|
||||
msgid "You requested a new password for your account on %{host}."
|
||||
msgstr ""
|
||||
|
||||
#, elixir-format
|
||||
#: lib/mobilizon_web/templates/email/report.html.eex:8
|
||||
#: lib/mobilizon_web/templates/email/report.text.eex:10
|
||||
msgid "Comment: %{comment}"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-format
|
||||
#: lib/mobilizon_web/templates/email/report.html.eex:4
|
||||
#: lib/mobilizon_web/templates/email/report.text.eex:6
|
||||
msgid "Event: %{event}"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-format
|
||||
#: lib/service/export/feed.ex:161
|
||||
msgid "Feed for %{email} on Mobilizon"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-format
|
||||
#: lib/mobilizon_web/templates/email/email.html.eex:122
|
||||
msgid "%{instance} is a Mobilizon server."
|
||||
msgstr ""
|
||||
|
||||
#, elixir-format
|
||||
#: lib/mobilizon_web/templates/email/report.html.eex:38
|
||||
msgid "%{reporter_name} (%{reporter_username}) reported the following content."
|
||||
msgstr ""
|
||||
|
||||
#, elixir-format
|
||||
#: lib/mobilizon_web/templates/email/report.html.eex:48
|
||||
msgid "%{title} by %{creator}"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-format
|
||||
#: lib/mobilizon_web/templates/email/registration_confirmation.html.eex:58
|
||||
msgid "Activate my account"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-format
|
||||
#: lib/mobilizon_web/templates/email/email.html.eex:91
|
||||
#: lib/mobilizon_web/templates/email/password_reset.html.eex:94
|
||||
msgid "Ask the community on Framacolibri"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-format
|
||||
#: lib/mobilizon_web/templates/email/report.html.eex:62
|
||||
msgid "Comments"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-format
|
||||
#: lib/mobilizon_web/templates/email/report.html.eex:46
|
||||
msgid "Event"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-format
|
||||
#: lib/mobilizon_web/templates/email/registration_confirmation.html.eex:45
|
||||
msgid "If you didn't request this, please ignore this email."
|
||||
msgstr ""
|
||||
|
||||
#, elixir-format
|
||||
#: lib/mobilizon_web/email/user.ex:46
|
||||
msgid "Instructions to reset your password on %{instance}"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-format
|
||||
#: lib/mobilizon_web/templates/email/email.html.eex:123
|
||||
msgid "Learn more about Mobilizon."
|
||||
msgstr ""
|
||||
|
||||
#, elixir-format
|
||||
#: lib/mobilizon_web/templates/email/registration_confirmation.html.eex:13
|
||||
msgid "Nearly here!"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-format
|
||||
#: lib/mobilizon_web/templates/email/email.html.eex:88
|
||||
#: lib/mobilizon_web/templates/email/password_reset.html.eex:91
|
||||
msgid "Need some help? Something not working properly?"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-format
|
||||
#: lib/mobilizon_web/templates/email/report.html.eex:13
|
||||
msgid "New report on %{instance}"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-format
|
||||
#: lib/mobilizon_web/templates/email/report.html.eex:80
|
||||
msgid "Reason"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-format
|
||||
#: lib/mobilizon_web/templates/email/password_reset.html.eex:61
|
||||
msgid "Reset Password"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-format
|
||||
#: lib/mobilizon_web/templates/email/password_reset.html.eex:41
|
||||
msgid "Resetting your password is easy. Just press the button below and follow the instructions. We'll have you up and running in no time."
|
||||
msgstr ""
|
||||
|
||||
#, elixir-format
|
||||
#: lib/mobilizon_web/templates/email/password_reset.html.eex:13
|
||||
msgid "Trouble signing in?"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-format
|
||||
#: lib/mobilizon_web/templates/email/report.html.eex:100
|
||||
msgid "View the report"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-format
|
||||
#: lib/mobilizon_web/templates/email/registration_confirmation.html.eex:38
|
||||
msgid "You created an account on %{host} with this email address. You are one click away from activating it."
|
||||
msgstr ""
|
||||
|
||||
#, elixir-format
|
||||
#: lib/mobilizon_web/templates/email/password_reset.html.eex:38
|
||||
msgid "You requested a new password for your account on %{server}."
|
||||
msgstr ""
|
||||
|
||||
#, elixir-format
|
||||
#: lib/mobilizon_web/email/user.ex:25
|
||||
msgid "Instructions to confirm your Mobilizon account on %{instance}"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-format, fuzzy
|
||||
#: lib/mobilizon/email/admin.ex:19
|
||||
msgid "Mobilizon: New report on instance %{instance}"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-format
|
||||
#: lib/mobilizon_web/templates/email/report.html.eex:1
|
||||
#: lib/mobilizon_web/templates/email/report.text.eex:1
|
||||
msgid "New report from %{reporter} on %{instance}"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-format
|
||||
#: lib/mobilizon_web/templates/email/report.html.eex:12
|
||||
#: lib/mobilizon_web/templates/email/report.text.eex:14
|
||||
msgid "Reason: %{content}"
|
||||
#: lib/mobilizon_web/email/admin.ex:23
|
||||
msgid "New report on Mobilizon instance %{instance}"
|
||||
msgstr ""
|
||||
|
@ -1,92 +1,123 @@
|
||||
## `msgid`s in this file come from POT (.pot) files.
|
||||
##
|
||||
## Do not add, change, or remove `msgid`s manually here as
|
||||
## they're tied to the ones in the corresponding POT file
|
||||
## (with the same domain).
|
||||
##
|
||||
## Use `mix gettext.extract --merge` or `mix gettext.merge`
|
||||
## to merge POT files into PO files.
|
||||
# # `msgid`s in this file come from POT (.pot) files.
|
||||
# #
|
||||
# # Do not add, change, or remove `msgid`s manually here as
|
||||
# # they're tied to the ones in the corresponding POT file
|
||||
# # (with the same domain).
|
||||
# #
|
||||
# # Use `mix gettext.extract --merge` or `mix gettext.merge`
|
||||
# # to merge POT files into PO files.
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Language: fr_FR\n"
|
||||
"Plural-Forms: nplurals=2\n"
|
||||
"Plural-Forms: nplurals=2;\n"
|
||||
"Project-Id-Version: \n"
|
||||
"POT-Creation-Date: \n"
|
||||
"PO-Revision-Date: \n"
|
||||
"Last-Translator: \n"
|
||||
"Language-Team: \n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Generator: Poedit 2.2.3\n"
|
||||
|
||||
#, elixir-format
|
||||
#: lib/mobilizon_web/templates/email/email.html.eex:8
|
||||
#: lib/mobilizon_web/templates/email/email.text.eex:3
|
||||
msgid "An email sent by Mobilizon on %{instance}."
|
||||
msgstr ""
|
||||
|
||||
#, elixir-format
|
||||
#: lib/mobilizon_web/templates/email/registration_confirmation.html.eex:1
|
||||
#: lib/mobilizon_web/templates/email/registration_confirmation.text.eex:1
|
||||
msgid "Confirm the email address"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-format
|
||||
#: lib/mobilizon_web/templates/email/password_reset.html.eex:3
|
||||
#: lib/mobilizon_web/templates/email/password_reset.text.eex:7
|
||||
#: lib/mobilizon_web/templates/email/password_reset.html.eex:48
|
||||
msgid "If you didn't request this, please ignore this email. Your password won't change until you access the link below and create a new one."
|
||||
msgstr ""
|
||||
msgstr "Si vous n'avez pas demandé ceci, vous pouvez ignorer cet email. Votre mot de passe ne changera pas tant que vous n'accédez pas au lien ci-dessous et que vous en définissiez un nouveau."
|
||||
|
||||
#, elixir-format
|
||||
#: lib/mobilizon/email/user.ex:19
|
||||
msgid "Mobilizon: Confirmation instructions for %{instance}"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-format
|
||||
#: lib/mobilizon/email/user.ex:34
|
||||
msgid "Mobilizon: Reset your password on %{instance} instructions"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-format
|
||||
#: lib/mobilizon_web/templates/email/password_reset.html.eex:1
|
||||
#: lib/mobilizon_web/templates/email/password_reset.text.eex:1
|
||||
msgid "Password reset"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-format
|
||||
#: lib/mobilizon_web/templates/email/registration_confirmation.html.eex:2
|
||||
#: lib/mobilizon_web/templates/email/registration_confirmation.text.eex:5
|
||||
msgid "You created an account on %{host} with this email address. You are one click away from activating it. If this wasn't you, please ignore this email."
|
||||
msgstr ""
|
||||
|
||||
#, elixir-format
|
||||
#: lib/mobilizon_web/templates/email/password_reset.html.eex:2
|
||||
#: lib/mobilizon_web/templates/email/password_reset.text.eex:5
|
||||
msgid "You requested a new password for your account on %{host}."
|
||||
msgstr ""
|
||||
|
||||
#, elixir-format
|
||||
#: lib/mobilizon_web/templates/email/report.html.eex:8
|
||||
#: lib/mobilizon_web/templates/email/report.text.eex:10
|
||||
msgid "Comment: %{comment}"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-format
|
||||
#: lib/mobilizon_web/templates/email/report.html.eex:4
|
||||
#: lib/mobilizon_web/templates/email/report.text.eex:6
|
||||
msgid "Event: %{event}"
|
||||
msgstr ""
|
||||
|
||||
#, elixir-format
|
||||
#: lib/service/export/feed.ex:161
|
||||
msgid "Feed for %{email} on Mobilizon"
|
||||
msgstr ""
|
||||
msgstr "Flux pour %{email} sur Mobilizon"
|
||||
|
||||
#, elixir-format, fuzzy
|
||||
#: lib/mobilizon/email/admin.ex:19
|
||||
msgid "Mobilizon: New report on instance %{instance}"
|
||||
msgstr ""
|
||||
#: lib/mobilizon_web/templates/email/email.html.eex:122
|
||||
msgid "%{instance} is a Mobilizon server."
|
||||
msgstr "%{instance} est une instance Mobilizon."
|
||||
|
||||
#, elixir-format
|
||||
#: lib/mobilizon_web/templates/email/report.html.eex:1
|
||||
#: lib/mobilizon_web/templates/email/report.text.eex:1
|
||||
msgid "New report from %{reporter} on %{instance}"
|
||||
msgstr ""
|
||||
#: lib/mobilizon_web/templates/email/report.html.eex:38
|
||||
msgid "%{reporter_name} (%{reporter_username}) reported the following content."
|
||||
msgstr "%{reporter_name} (%{reporter_username}) a signalé le contenu suivant."
|
||||
|
||||
#, elixir-format
|
||||
#: lib/mobilizon_web/templates/email/report.html.eex:12
|
||||
#: lib/mobilizon_web/templates/email/report.text.eex:14
|
||||
msgid "Reason: %{content}"
|
||||
msgstr ""
|
||||
#: lib/mobilizon_web/templates/email/report.html.eex:48
|
||||
msgid "%{title} by %{creator}"
|
||||
msgstr "%{title} par %{creator}"
|
||||
|
||||
#: lib/mobilizon_web/templates/email/registration_confirmation.html.eex:58
|
||||
msgid "Activate my account"
|
||||
msgstr "Activer mon compte"
|
||||
|
||||
#: lib/mobilizon_web/templates/email/email.html.eex:91
|
||||
#: lib/mobilizon_web/templates/email/password_reset.html.eex:94
|
||||
msgid "Ask the community on Framacolibri"
|
||||
msgstr "Demander à la communauté sur Framacolibri"
|
||||
|
||||
#: lib/mobilizon_web/templates/email/report.html.eex:62
|
||||
msgid "Comments"
|
||||
msgstr "Commentaires"
|
||||
|
||||
#: lib/mobilizon_web/templates/email/report.html.eex:46
|
||||
msgid "Event"
|
||||
msgstr "Événement"
|
||||
|
||||
#: lib/mobilizon_web/templates/email/registration_confirmation.html.eex:45
|
||||
msgid "If you didn't request this, please ignore this email."
|
||||
msgstr "Si vous n'avez pas demandé ceci, merci d'ignorer cet email."
|
||||
|
||||
#: lib/mobilizon_web/email/user.ex:46
|
||||
msgid "Instructions to reset your password on %{instance}"
|
||||
msgstr "Instructions pour réinitialiser votre mot de passe sur %{instance}"
|
||||
|
||||
#: lib/mobilizon_web/templates/email/email.html.eex:123
|
||||
msgid "Learn more about Mobilizon."
|
||||
msgstr "En apprendre plus à propos de Mobilizon."
|
||||
|
||||
#: lib/mobilizon_web/templates/email/registration_confirmation.html.eex:13
|
||||
msgid "Nearly here!"
|
||||
msgstr "Vous y êtes presque !"
|
||||
|
||||
#: lib/mobilizon_web/templates/email/email.html.eex:88
|
||||
#: lib/mobilizon_web/templates/email/password_reset.html.eex:91
|
||||
msgid "Need some help? Something not working properly?"
|
||||
msgstr "Besoin d'aide ? Quelque chose ne fonctionne pas correctement ?"
|
||||
|
||||
#: lib/mobilizon_web/templates/email/report.html.eex:13
|
||||
msgid "New report on %{instance}"
|
||||
msgstr "Nouveau signalement sur %{instance}"
|
||||
|
||||
#: lib/mobilizon_web/templates/email/report.html.eex:80
|
||||
msgid "Reason"
|
||||
msgstr "Raison"
|
||||
|
||||
#: lib/mobilizon_web/templates/email/password_reset.html.eex:61
|
||||
msgid "Reset Password"
|
||||
msgstr "Réinitialiser mon mot de passe"
|
||||
|
||||
#: lib/mobilizon_web/templates/email/password_reset.html.eex:41
|
||||
msgid "Resetting your password is easy. Just press the button below and follow the instructions. We'll have you up and running in no time."
|
||||
msgstr "Réinitialiser votre mot de passe est facile. Cliquez simplement sur le bouton et suivez les inscriptions. Vous serez opérationnel en un rien de temps."
|
||||
|
||||
#: lib/mobilizon_web/templates/email/password_reset.html.eex:13
|
||||
msgid "Trouble signing in?"
|
||||
msgstr "Des problèmes à vous connecter ?"
|
||||
|
||||
#: lib/mobilizon_web/templates/email/report.html.eex:100
|
||||
msgid "View the report"
|
||||
msgstr "Voir le signalement"
|
||||
|
||||
#: lib/mobilizon_web/templates/email/registration_confirmation.html.eex:38
|
||||
msgid "You created an account on %{host} with this email address. You are one click away from activating it."
|
||||
msgstr "Vous avez créé un compte sur %{host} avec cette adresse email. Vous êtes à un clic de l'activer."
|
||||
|
||||
#: lib/mobilizon_web/templates/email/password_reset.html.eex:38
|
||||
msgid "You requested a new password for your account on %{server}."
|
||||
msgstr "Vous avez demandé un nouveau mot de passe pour votre compte sur %{server}"
|
||||
|
||||
#: lib/mobilizon_web/email/user.ex:25
|
||||
msgid "Instructions to confirm your Mobilizon account on %{instance}"
|
||||
msgstr "Instructions pour confirmer votre compte Mobilizon sur %{instance}"
|
||||
|
||||
#: lib/mobilizon_web/email/admin.ex:23
|
||||
msgid "New report on Mobilizon instance %{instance}"
|
||||
msgstr "Nouveau signalement sur l'instance Mobilizon %{instance}"
|
||||
|
Loading…
Reference in New Issue
Block a user