HTML e-mails for UserMailer (#6256)

- premailer gem to turn CSS into inline styles automatically
- rework UserMailer templates
- reword UserMailer templates
This commit is contained in:
Eugen Rochko 2018-01-16 03:29:11 +01:00 committed by GitHub
parent 7861c5f108
commit 5276c0a090
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
104 changed files with 848 additions and 706 deletions

View File

@ -49,6 +49,7 @@ gem 'oj', '~> 3.3'
gem 'ostatus2', '~> 2.0'
gem 'ox', '~> 2.8'
gem 'pundit', '~> 1.1'
gem 'premailer-rails'
gem 'rack-attack', '~> 5.0'
gem 'rack-cors', '~> 0.4', require: 'rack/cors'
gem 'rack-timeout', '~> 0.4'

View File

@ -122,6 +122,8 @@ GEM
crack (0.4.3)
safe_yaml (~> 1.0.0)
crass (1.0.3)
css_parser (1.6.0)
addressable
debug_inspector (0.0.3)
devise (4.3.0)
bcrypt (~> 3.0)
@ -324,6 +326,13 @@ GEM
activerecord
pkg-config (1.2.8)
powerpack (0.1.1)
premailer (1.11.1)
addressable
css_parser (>= 1.6.0)
htmlentities (>= 4.0.0)
premailer-rails (1.10.1)
actionmailer (>= 3, < 6)
premailer (~> 1.7, >= 1.7.9)
pry (0.11.3)
coderay (~> 1.1.0)
method_source (~> 0.9.0)
@ -600,6 +609,7 @@ DEPENDENCIES
pg (~> 0.20)
pghero (~> 1.7)
pkg-config (~> 1.2)
premailer-rails
pry-rails (~> 0.3)
puma (~> 3.10)
pundit (~> 1.1)

View File

@ -0,0 +1,4 @@
# frozen_string_literal: true
module MailerHelper
end

View File

@ -0,0 +1,4 @@
<svg fill="#FFFFFF" height="24" viewBox="0 0 24 24" width="24" xmlns="http://www.w3.org/2000/svg">
<path d="M20 4H4c-1.1 0-1.99.9-1.99 2L2 18c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm0 4l-8 5-8-5V6l8 5 8-5v2z"/>
<path d="M0 0h24v24H0z" fill="none"/>
</svg>

After

Width:  |  Height:  |  Size: 273 B

View File

@ -0,0 +1,4 @@
<svg fill="#FFFFFF" height="24" viewBox="0 0 24 24" width="24" xmlns="http://www.w3.org/2000/svg">
<path d="M0 0h24v24H0z" fill="none"/>
<path d="M12 17c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2zm6-9h-1V6c0-2.76-2.24-5-5-5S7 3.24 7 6h1.9c0-1.71 1.39-3.1 3.1-3.1 1.71 0 3.1 1.39 3.1 3.1v2H6c-1.1 0-2 .9-2 2v10c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V10c0-1.1-.9-2-2-2zm0 12H6V10h12v10z"/>
</svg>

After

Width:  |  Height:  |  Size: 395 B

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 216.4144 232.00976"><path d="M107.86523 0C78.203984.2425 49.672422 3.4535937 33.044922 11.089844c0 0-32.97656262 14.752031-32.97656262 65.082031 0 11.525-.224375 25.306175.140625 39.919925 1.19750002 49.22 9.02375002 97.72843 54.53124962 109.77343 20.9825 5.55375 38.99711 6.71547 53.505856 5.91797 26.31125-1.45875 41.08203-9.38867 41.08203-9.38867l-.86914-19.08984s-18.80171 5.92758-39.91796 5.20508c-20.921254-.7175-43.006879-2.25516-46.390629-27.94141-.3125-2.25625-.46875-4.66938-.46875-7.20313 0 0 20.536953 5.0204 46.564449 6.21289 15.915.73001 30.8393-.93343 45.99805-2.74218 29.07-3.47125 54.38125-21.3818 57.5625-37.74805 5.0125-25.78125 4.59961-62.916015 4.59961-62.916015 0-50.33-32.97461-65.082031-32.97461-65.082031C166.80539 3.4535938 138.255.2425 108.59375 0h-.72852zM74.296875 39.326172c12.355 0 21.710234 4.749297 27.896485 14.248047l6.01367 10.080078 6.01563-10.080078c6.185-9.49875 15.54023-14.248047 27.89648-14.248047 10.6775 0 19.28156 3.753672 25.85156 11.076172 6.36875 7.3225 9.53907 17.218828 9.53907 29.673828v60.941408h-24.14454V81.869141c0-12.46875-5.24453-18.798829-15.73828-18.798829-11.6025 0-17.41797 7.508516-17.41797 22.353516v32.375002H96.207031V85.423828c0-14.845-5.815468-22.353515-17.417969-22.353516-10.49375 0-15.740234 6.330079-15.740234 18.798829v59.148439H38.904297V80.076172c0-12.455 3.171016-22.351328 9.541015-29.673828 6.568751-7.3225 15.172813-11.076172 25.851563-11.076172z" fill="#fff"/></svg>

After

Width:  |  Height:  |  Size: 1.5 KiB

View File

@ -0,0 +1 @@
require('../styles/mailer.scss');

View File

@ -0,0 +1,392 @@
@import 'mastodon/variables';
@import 'fonts/roboto';
table,
td,
div {
box-sizing: border-box;
}
html,
body {
width: 100% !important;
min-width: 100%;
margin: 0;
padding: 0;
-webkit-text-size-adjust: 100%;
-ms-text-size-adjust: 100%;
}
.email_body {
td,
div,
a,
span {
line-height: inherit;
}
}
a {
&,
&:visited,
span {
text-decoration: none;
color: $ui-highlight-color;
}
#outlook & {
padding: 0;
}
}
img {
outline: none;
border: 0;
text-decoration: none;
-ms-interpolation-mode: bicubic;
clear: both;
line-height: 100%;
}
table {
border-spacing: 0;
mso-table-lspace: 0;
mso-table-rspace: 0;
}
td {
vertical-align: top;
}
.email-table,
.content-section,
.column,
.column-cell {
width: 100%;
min-width: 100%;
}
.email-body {
font-size: 0 !important;
line-height: 100%;
text-align: center;
padding-left: 16px;
padding-right: 16px;
}
.email-start {
padding-top: 32px;
}
.email-end {
padding-bottom: 32px;
}
.email-body,
html,
body {
background-color: lighten($ui-base-color, 4%);
}
.email-container,
.email-row,
.col-0,
.col-1,
.col-2,
.col-3,
.col-4,
.col-5,
.col-6, {
font-size: 0;
display: inline-block;
width: 100%;
min-width: 100%;
min-width: 0 !important;
vertical-align: top;
}
.content-cell {
width: 100%;
min-width: 100%;
min-width: 0 !important;
}
.column-cell {
padding-top: 16px;
padding-bottom: 16px;
vertical-align: top;
&.button-cell {
padding-top: 0;
}
}
.email-container {
max-width: 632px;
margin: 0 auto;
text-align: center;
}
.email-row {
display: block;
max-width: 600px !important;
margin: 0 auto;
text-align: center;
clear: both;
}
.col-0 {
max-width: 50px;
}
.col-1 {
max-width: 100px;
}
.col-2 {
max-width: 200px;
}
.col-3 {
max-width: 300px;
}
.col-4 {
max-width: 400px;
}
.col-5 {
max-width: 500px;
}
.col-6 {
max-width: 600px;
}
.column-cell,
.column-cell td,
p {
font-family: Helvetica, Arial, sans-serif;
@media only screen {
font-family: 'mastodon-font-sans-serif', sans-serif !important;
}
}
.email-body .column-cell,
.column-cell,
p {
font-size: 15px;
line-height: 23px;
color: $ui-primary-color;
mso-line-height-rule: exactly;
text-rendering: optimizelegibility;
}
p {
display: block;
margin-top: 0;
margin-bottom: 16px;
&.small {
font-size: 13px;
}
&.lead {
font-size: 19px;
line-height: 27px;
}
}
h1,
h2,
h3,
h4,
h5,
h6 {
color: $ui-secondary-color;
margin-left: 0;
margin-right: 0;
margin-top: 20px;
margin-bottom: 8px;
padding: 0;
font-weight: 500;
}
h1 {
font-size: 26px;
line-height: 36px;
}
h2 {
font-size: 23px;
line-height: 30px;
}
h3 {
font-size: 19px;
line-height: 25px;
}
.input {
td {
background: darken($ui-base-color, 8%);
border-radius: 4px;
padding: 16px;
line-height: 20px;
mso-line-height-rule: exactly;
border-radius: 4px;
text-align: center;
font-weight: 500;
font-size: 17px;
}
}
.content-cell,
.blank-cell {
width: 100%;
font-size: 0;
text-align: center;
vertical-align: top;
padding-left: 16px;
padding-right: 16px;
}
.content-cell {
background-color: darken($ui-base-color, 4%);
}
.hero {
background-color: $ui-base-color;
padding-top: 20px;
}
.header {
border-radius: 5px 5px 0 0;
background-color: darken($ui-base-color, 8%);
.column-cell {
text-align: center;
padding-top: 20px;
padding-bottom: 8px;
}
}
.content-start {
padding-top: 32px;
}
.content-end {
border-radius: 0 0 5px 5px;
padding-top: 16px;
}
.footer {
.column-cell,
p {
color: lighten($ui-base-color, 26%);
}
p {
margin-bottom: 0;
font-size: 13px;
&.small {
margin-bottom: 0;
}
}
a {
color: lighten($ui-base-color, 26%);
text-decoration: underline;
}
img {
opacity: 0.3;
}
}
.logo {
position: relative;
left: -4px;
}
.button {
display: table;
margin-left: auto;
margin-right: auto;
td {
line-height: 20px;
mso-line-height-rule: exactly;
border-radius: 4px;
text-align: center;
font-weight: 500;
font-size: 17px;
padding: 0 !important;
a,
a span {
color: $primary-text-color;
display: block !important;
text-align: center !important;
vertical-align: top !important;
line-height: inherit !important;
}
a {
padding: 10px 22px !important;
line-height: 26px !important;
font-weight: 500 !important;
}
}
}
.button-default {
background-color: darken($ui-base-color, 8%);
}
.button-primary {
background-color: $ui-highlight-color;
}
.text-center {
text-align: center;
}
.text-right {
text-align: right;
}
.padded {
padding-left: 16px;
padding-right: 16px;
}
.hero-icon {
width: 64px;
td {
text-align: center;
vertical-align: middle;
line-height: 100%;
mso-line-height-rule: exactly;
padding: 16px;
border-radius: 80px;
background: $success-green;
}
img {
max-width: 32px;
width: 32px;
height: 32px;
display: block;
line-height: 100%;
}
}
@media only screen and (min-device-width: 768px) and (max-device-width: 1024px) and (orientation: landscape) {
body {
min-height: 1024px !important;
}
}

View File

@ -1,7 +1,9 @@
# frozen_string_literal: true
class AdminMailer < ApplicationMailer
helper StreamEntriesHelper
layout 'plain_mailer'
helper :stream_entries
def new_report(recipient, report)
@report = report

View File

@ -2,7 +2,9 @@
class ApplicationMailer < ActionMailer::Base
layout 'mailer'
helper :instance
helper :mailer
protected

View File

@ -1,7 +1,9 @@
# frozen_string_literal: true
class NotificationMailer < ApplicationMailer
helper StreamEntriesHelper
layout 'plain_mailer'
helper :stream_entries
def mention(recipient, notification)
@me = recipient

View File

@ -0,0 +1,55 @@
!!!
%html{ lang: I18n.locale }
%head
%meta{ 'http-equiv' => 'Content-Type', 'content' => 'text/html; charset=utf-8' }/
%meta{ name: 'viewport', content: 'width=device-width, initial-scale=1.0, shrink-to-fit=no' }
%title/
= stylesheet_pack_tag 'mailer'
%body
%table.email-table{ cellspacing: 0, cellpadding: 0 }
%tbody
%tr
%td.email-body.email-start
.email-container
%table.content-section{ cellspacing: 0, cellpadding: 0 }
%tbody
%tr
%td.content-cell.header
.email-row
.col-6
%table.column{ cellspacing: 0, cellpadding: 0 }
%tbody
%tr
%td.column-cell
= link_to root_url do
= image_tag asset_pack_path('logo_full.svg'), height: 34, class: 'logo'
= yield
%table.email-table{ cellspacing: 0, cellpadding: 0 }
%tbody
%tr
%td.email-body.email-end
.email-container
%table.content-section{ cellspacing: 0, cellpadding: 0 }
%tbody
%tr
%td.content-cell.content-end
!= "&nbsp; "
%tr
%td.blank-cell.footer
.email-row
.col-4
%table.column{ cellspacing: 0, cellpadding: 0 }
%tbody
%td.column-cell
%p= t 'about.hosted_on', domain: site_hostname
%p= link_to t('application_mailer.notification_preferences'), settings_notifications_url
.col-2
%table.column{ cellspacing: 0, cellpadding: 0 }
%tbody
%td.column-cell.text-right
= link_to root_url do
= image_tag asset_pack_path('logo_transparent.svg'), height: 24

View File

@ -0,0 +1 @@
= yield

View File

@ -1,12 +0,0 @@
<p>مرحبا <%= @resource.email %> !</p>
<p>لقد قمت بإنشاء حساب على <%= @instance %>.</p>
<p>لتأكيد التسجيل يرجى النقر على الرابط التالي : <br>
<%= link_to 'تأكيد إنشاء الحساب', confirmation_url(@resource, confirmation_token: @token) %>
<p>يرجى الإطلاع على <%= link_to 'شروط الإستخدام', terms_url %>.</p>
<p>مع أجمل التحيات،<p>
<p>فريق <%= @instance %> </p>

View File

@ -1,12 +0,0 @@
<p>Benvingut <%= @resource.email %> !</p>
<p>Has creat un compte a <%= @instance %>.</p>
<p>Per confirmar la subscripció si us plau fes clic en el següent vincle : <br>
<%= link_to 'Confirmar el meu compte', confirmation_url(@resource, confirmation_token: @token) %>
<p>Si us plau, també fes un cop d'ull als nostres <%= link_to 'termes i condicions', terms_url %>.</p>
<p>Sincerament,<p>
<p>L'equip <%= @instance %> </p>

View File

@ -1,15 +0,0 @@
<p>Welcome <%= @resource.email %> !</p>
<p>You just created an account on <%= @instance %>.</p>
<p>To confirm your inscription, please click on the following link : <br>
<%= link_to 'Confirm my account', confirmation_url(@resource, confirmation_token: @token) %></p>
<p>If the above link did not work, copy and paste this URL into your address bar: <br>
<span><%= confirmation_url(@resource, confirmation_token: @token) %></span>
<p>Please also check out our <%= link_to 'terms and conditions', terms_url %>.</p>
<p>Sincerely,<p>
<p>The <%= @instance %> team</p>

View File

@ -1,12 +0,0 @@
<p>¡Bienvenido, <%= @resource.email %>!</p>
<p>Acabas de crear una cuenta en <%= @instance %>.</p>
<p>Para confirmar tu registro, por favor ingresa al siguiente enlace:<br>
<%= link_to 'Confirmar mi cuenta', confirmation_url(@resource, confirmation_token: @token) %>
<p>También revisa nuestros <%= link_to 'términos y condiciones', terms_url %>.</p>
<p>Sinceramente,<p>
<p>El equipo de <%= @instance %></p>

View File

@ -1,12 +0,0 @@
<p dir="rtl">خوش آمدید <%= @resource.email %> !</p>
<p dir="rtl">شما الان در <%= @instance %> حساب باز کردید.</p>
<p dir="rtl">برای تأیید عضویت، لطفاً روی پیوند زیر کلیک کنید: <br>
<%= link_to 'تأیید حساب', confirmation_url(@resource, confirmation_token: @token) %>
<p dir="rtl">لطفاً همچنین <%= link_to 'شرایط و مقررات استفادهٔ', terms_url %> ما را هم بخوانید.</p>
<p dir="rtl">با احترام,<p>
<p dir="rtl">گردانندگان سرور <%= @instance %></p>

View File

@ -1,5 +0,0 @@
<p>Tervetuloa <%= @resource.email %>!</p>
<p>Voit vahvistaa Mastodon tilisi klikkaamalla alla olevaa linkkiä:</p>
<p><%= link_to 'Varmista tilini', confirmation_url(@resource, confirmation_token: @token) %></p>

View File

@ -1,14 +0,0 @@
<p>Bonjour <%= @resource.email %>&nbsp;!<p>
<p>Vous venez de vous créer un compte sur <%= @instance %> et nous vous en remercions :)</p>
<p>Pour confirmer votre inscription, merci de cliquer sur le lien suivant : <br>
<%= link_to 'Confirmer mon compte', confirmation_url(@resource, confirmation_token: @token) %></p>
<p>Après votre première connexion, vous pourrez accéder à la documentation de loutil.</p>
<p>Pensez également à jeter un œil à nos <%= link_to 'conditions d\'utilisation', terms_url %>.</p>
<p>Amicalement,</p>
<p>Léquipe <%= @instance %></p>

View File

@ -1,14 +0,0 @@
<div lang="he" dir="rtl">
<p>שלום <%= @resource.email %> !</p>
<p>הרגע יצרת חשבון בקהילה <%= @instance %>.</p>
<p>כדי לוודא את הרשמתך, יש ללחוץ על הקישורית הבאה : <br>
<%= link_to 'Confirm my account', confirmation_url(@resource, confirmation_token: @token) %>
<p>יש לעבור גם על תנאי השימוש <%= link_to 'terms and conditions', terms_url %>.</p>
<p>בתודה מראש,<p>
<p>צוות ניהול <%= @instance %></p>
</div>

View File

@ -0,0 +1,76 @@
%table.email-table{ cellspacing: 0, cellpadding: 0 }
%tbody
%tr
%td.email-body
.email-container
%table.content-section{ cellspacing: 0, cellpadding: 0 }
%tbody
%tr
%td.content-cell.hero
.email-row
.col-6
%table.column{ cellspacing: 0, cellpadding: 0 }
%tbody
%tr
%td.column-cell.text-center.padded
%table.hero-icon{ align: 'center', cellspacing: 0, cellpadding: 0 }
%tbody
%tr
%td
= image_tag asset_pack_path('icon_email.svg')
%h1= t 'devise.mailer.confirmation_instructions.title'
%table.email-table{ cellspacing: 0, cellpadding: 0 }
%tbody
%tr
%td.email-body
.email-container
%table.content-section{ cellspacing: 0, cellpadding: 0 }
%tbody
%tr
%td.content-cell.content-start
.email-row
.col-6
%table.column{ cellspacing: 0, cellpadding: 0 }
%tbody
%tr
%td.column-cell.text-center
%p= t 'devise.mailer.confirmation_instructions.explanation', host: site_hostname
%table.email-table{ cellspacing: 0, cellpadding: 0 }
%tbody
%tr
%td.email-body
.email-container
%table.content-section{ cellspacing: 0, cellpadding: 0 }
%tbody
%tr
%td.content-cell
%table.column{ cellspacing: 0, cellpadding: 0 }
%tbody
%tr
%td.column-cell.button-cell
%table.button{ align: 'center', cellspacing: 0, cellpadding: 0 }
%tbody
%tr
%td.button-primary
= link_to confirmation_url(@resource, confirmation_token: @token) do
%span= t 'devise.mailer.confirmation_instructions.action'
%table.email-table{ cellspacing: 0, cellpadding: 0 }
%tbody
%tr
%td.email-body
.email-container
%table.content-section{ cellspacing: 0, cellpadding: 0 }
%tbody
%tr
%td.content-cell
.email-row
.col-6
%table.column{ cellspacing: 0, cellpadding: 0 }
%tbody
%tr
%td.column-cell.text-center
%p= t 'devise.mailer.confirmation_instructions.extra_html', terms_path: about_more_url, policy_path: terms_url

View File

@ -1,12 +0,0 @@
<p>Selamat datang <%= @resource.email %> !</p>
<p>Anda barus saja membuat akun di <%= @instance %>.</p>
<p>Untuk mengkonfirmasi, silakan klik link berikut ini : <br>
<%= link_to 'Konfirmasikan akun saya', confirmation_url(@resource, confirmation_token: @token) %>
<p>Silakan cek juga <%= link_to 'ketentuan layanan', terms_url %> kami.</p>
<p>Hormat kami,<p>
<p>Tim <%= @instance %></p>

View File

@ -1,12 +0,0 @@
<p>Benvenuto <%= @resource.email %> !</p>
<p>Hai appena creato un account su <%= @instance %>.</p>
<p>Per confermare la tua iscrizione, fai clic sul seguente link: <br>
<%= link_to 'Confirm my account', confirmation_url(@resource, confirmation_token: @token) %>
<p>Per piacere leggi anche i nostri <%= link_to 'terms and conditions', terms_url %>.</p>
<p>Sinceramente,<p>
<p>The <%= @instance %> team</p>

View File

@ -1,11 +0,0 @@
<p>ようこそ<%= @resource.email %>さん</p>
<p><%= @instance %>にアカウントが作成されました。</p>
<p>以下のリンクをクリックしてMastodonアカウントのメールアドレスを確認してください。</p>
<p><%= link_to 'メールアドレスの確認', confirmation_url(@resource, confirmation_token: @token) %></p>
<p>また、インスタンスの<%= link_to '利用規約', terms_url %>についてもご確認ください。</p>
<p><%= @instance %> チーム</p>

View File

@ -1,13 +0,0 @@
<p>안녕하세요 <%= @resource.email %> 님!</p>
<p><%= @instance %>에 새로 계정을 만들었습니다.</p>
<p>아래 링크를 눌러 회원가입을 완료 하세요:<br>
<%= link_to '계정 활성화', confirmation_url(@resource, confirmation_token: @token) %></p>
<p>만약 위의 링크가 작동하지 않는다면 아래 URL을 복사하여 주소창에 붙여넣으세요</p>
<span><%= confirmation_url(@resource, confirmation_token: @token) %></span>
<p> <%= link_to '약관', terms_url %>도 확인 바랍니다.</p>
<p><%= @instance %> 드림</p>

View File

@ -1,12 +0,0 @@
<p>Welkom <%= @resource.email %> !</p>
<p>Je hebt zojuist een account aangemaakt op <%= @instance %>.</p>
<p>Klik op de volgende link om jouw registratie te bevestigen :<br />
<%= link_to 'Confirm my account', confirmation_url(@resource, confirmation_token: @token) %> </p>
<p>Lees ook onze gebruikersvoorwaarden op <%= link_to 'terms and conditions', terms_url %>.</p>
<p>Vriendelijke groet,</p>
<p>De beheerder(s) van <%= @instance %></p>

View File

@ -1,12 +0,0 @@
<p>Velkommen <%= @resource.email %> !</p>
<p>Du har akkurat opprettet en konto på <%= @instance %>.</p>
<p>For å bekrefte innskriving i manntallet vennligst trykk på følgende lenke : <br>
<%= link_to 'Bekreft min bruker', confirmation_url(@resource, confirmation_token: @token) %>
<p>Vennligst også les våre <%= link_to 'brukervilkår', terms_url %>.</p>
<p>Med vennlig hilsen,<p>
<p>Gjengen bak <%= @instance %> </p>

View File

@ -1,14 +0,0 @@
<p>Bonjorn <%= @resource.email %>!<p>
<p>Venètz de vos crear un compte sus <%= @instance %> e vos mercegem :)</p>
<p>Per confirmar vòstra inscripcion, mercés de clicar sul ligam seguent:<br>
<%= link_to 'Confirmar mon compte', confirmation_url(@resource, confirmation_token: @token) %></p>
<p>Aprèp vòstra primièra connexion, poiretz accedir a la documentacion de laisina.</p>
<p>Pensatz tanben de gaitar nòstres <%= link_to 'tèrmes e condicions d\'utilizacion', terms_url %>.</p>
<p>Amistosament,</p>
<p>La còla <%= @instance %></p>

View File

@ -1,12 +0,0 @@
<p>Witaj, <%= @resource.email %>!</p>
<p>Właśnie utworzyłeś konto na instancji <%= @instance %>.</p>
<p>Aby aktywować konto, odwiedź poniższy link: <br>
<%= link_to 'Potwierdź rejestrację', confirmation_url(@resource, confirmation_token: @token) %>
<p>Pamiętaj przeczytać nasz <%= link_to 'regulamin i zasady użytkowania', terms_url %>.</p>
<p>Z pozdrowieniami,<p>
<p>Zespół <%= @instance %></p>

View File

@ -1,12 +0,0 @@
<p>Boas vindas, <%= @resource.email %>!</p>
<p>Você acabou de criar uma conta na instância <%= @instance %>.</p>
<p>Para confirmar o seu cadastro, por favor clique no link a seguir: <br>
<%= link_to 'Confirmar cadastro', confirmation_url(@resource, confirmation_token: @token) %>
<p>Por favor, leia também os nossos <%= link_to 'termos de serviços', terms_url %>.</p>
<p>Atenciosamente,<p>
<p>A equipe da instância <%= @instance %></p>

View File

@ -1,12 +0,0 @@
<p>Добро пожаловать, <%= @resource.email %> !</p>
<p>Вы только что завели аккаунт на <%= @instance %>.</p>
<p>Чтобы подтвердить создание аккаунта, пожалуйста, перейдите по этой ссылке: <br>
<%= confirmation_url(@resource, confirmation_token: @token) %></p>
<p>Также просим Вас прочитать об условиях использования аккаунта здесь: <%= terms_url %></p>
<p>Искренне Ваши,</p>
<p>Команда <%= @instance %></p>

View File

@ -1,15 +0,0 @@
<p>Dobrodošao <%= @resource.email %> !</p>
<p>Upravo ste napravili nalog na instanci <%= @instance %>.</p>
<p>Da potvrdite Vašu registraciju, molimo Vas kliknite na sledeći link: <br>
<%= link_to 'Potvrdi moj nalog', confirmation_url(@resource, confirmation_token: @token) %></p>
<p>Ako link iznad ne radi, kopirajte i nalepite ovu adresu u adresnu traku: <br>
<span><%= confirmation_url(@resource, confirmation_token: @token) %></span>
<p>Takođe pogledajte i <%= link_to 'pravila i uslove korišćenja', terms_url %>.</p>
<p>S poštovanjem,<p>
<p><%= @instance %> tim</p>

View File

@ -1,15 +0,0 @@
<p>Добродошао <%= @resource.email %> !</p>
<p>Управо сте направили налог на инстанци <%= @instance %>.</p>
<p>Да потврдите Вашу регистрацију, молимо Вас кликните на следећи линк: <br>
<%= link_to 'Потврди мој налог', confirmation_url(@resource, confirmation_token: @token) %></p>
<p>Ако линк изнад не ради, копирајте и налепите ову адресу у адресну траку: <br>
<span><%= confirmation_url(@resource, confirmation_token: @token) %></span>
<p>Такође погледајте и <%= link_to 'правила и услове коришћења', terms_url %>.</p>
<p>С поштовањем,<p>
<p><%= @instance %> тим</p>

View File

@ -1,15 +0,0 @@
<p>Välkommen <%= @resource.email %> !</p>
<p>Du har precis startat upp ett konto på <%= @instance %>.</p>
<p>För att bekräfta din inskrift, vänligen klicka på följande länk : <br>
<%= link_to 'Confirm my account', confirmation_url(@resource, confirmation_token: @token) %></p>
<p>Om länken ovan inte fungerar, kopiera och klistra in den här webbadressen i adressfältet: <br>
<span><%= confirmation_url(@resource, confirmation_token: @token) %></span>
<p>Vänligen kolla även våra <%= link_to 'terms and conditions', terms_url %>.</p>
<p>Vänliga hälsningar,<p>
<p>Teamet på <%= @instance %></p>

View File

@ -1,15 +0,0 @@
<p> Aramıza hoşgeldin <%= @resource.email %> </p>
<p>Bu sunucumuzda yeni bir hesap oluşturduğunu görüyoruz: <%= @instance %>.</p>
<p>Siz olduğunuzu teyit edebilmemiz için lütfen aşağıdaki linke tıklaman yeterli: <br>
<%= link_to 'Hesabımı doğrula', confirmation_url(@resource, confirmation_token: @token) %>
<p>Ayrıca <%= link_to 'kullanım şartları ve koşullarımızı', terms_url %> inceleyebilirsin.</p>
<p>En içten dileklerimizle,<p>
<p> <%= @instance %> ekibi</p>

View File

@ -1,13 +0,0 @@
<p><%= @resource.email %>,你好呀!</p>
<p>你刚刚在 <%= @instance %> 创建了一个帐户呢。</p>
<p>点击下面的链接来完成注册啦:<br>
<%= link_to '确认帐户', confirmation_url(@resource, confirmation_token: @token) %>
<p>上面的链接按不动?把下面的链接复制到地址栏再试试:<br>
<span><%= confirmation_url(@resource, confirmation_token: @token) %></span>
<p>记得读一读我们的<%= link_to '使用条款', terms_url %>哦。</p>
<p>来自 <%= @instance %> 管理团队</p>

View File

@ -1,15 +0,0 @@
<p>Hello <%= @resource.email %>!</p>
<% if @resource&.unconfirmed_email? %>
<p>We're contacting you to notify you that the email you use on <%= @instance %> is being changed to <%= @resource.unconfirmed_email %>.</p>
<% else %>
<p>We're contacting you to notify you that the email you use on <%= @instance %> has been changed to <%= @resource.email %>.</p>
<% end %>
<p>
If you did not change your email, it is likely that someone has gained access to your account. Please change your password immediately or contact the instance admin if you're locked out of your account.
</p>
<p>Sincerely,<p>
<p>The <%= @instance %> team</p>

View File

@ -0,0 +1,58 @@
%table.email-table{ cellspacing: 0, cellpadding: 0 }
%tbody
%tr
%td.email-body
.email-container
%table.content-section{ cellspacing: 0, cellpadding: 0 }
%tbody
%tr
%td.content-cell.hero
.email-row
.col-6
%table.column{ cellspacing: 0, cellpadding: 0 }
%tbody
%tr
%td.column-cell.text-center.padded
%table.hero-icon{ align: 'center', cellspacing: 0, cellpadding: 0 }
%tbody
%tr
%td
= image_tag asset_pack_path('icon_email.svg')
%h1= t 'devise.mailer.email_changed.title'
%p.lead= t 'devise.mailer.email_changed.explanation'
%table.email-table{ cellspacing: 0, cellpadding: 0 }
%tbody
%tr
%td.email-body
.email-container
%table.content-section{ cellspacing: 0, cellpadding: 0 }
%tbody
%tr
%td.content-cell.content-start
%table.column{ cellspacing: 0, cellpadding: 0 }
%tbody
%tr
%td.column-cell.input-cell
%table.input{ align: 'center', cellspacing: 0, cellpadding: 0 }
%tbody
%tr
%td= @resource.unconfirmed_email
%table.email-table{ cellspacing: 0, cellpadding: 0 }
%tbody
%tr
%td.email-body
.email-container
%table.content-section{ cellspacing: 0, cellpadding: 0 }
%tbody
%tr
%td.content-cell
.email-row
.col-6
%table.column{ cellspacing: 0, cellpadding: 0 }
%tbody
%tr
%td.column-cell.text-center.padded
%p= t 'devise.mailer.email_changed.extra'

View File

@ -1,13 +0,0 @@
<p>こんにちは<%= @resource.email %>さん</p>
<% if @resource&.unconfirmed_email? %>
<p><%= @instance %>で使っているメールアドレスが<%= @resource.unconfirmed_email %>に変更されようとしています。</p>
<% else %>
<p><%= @instance %>で使っているメールアドレスが<%= @resource.email %>に変更されました。</p>
<% end %>
<p>
メールアドレスを変更した覚えがない場合、誰かがあなたのアカウントにアクセスしたおそれがあります。すぐにパスワードを変更するか、アカウントにアクセスできない場合はインスタンスの管理者に連絡してください。
</p>
<p><%= @instance %>チームより</p>

View File

@ -1,15 +0,0 @@
<p>Bonjorn <%= @resource.email %>!</p>
<% if @resource&.unconfirmed_email? %>
<p>Vos contactem per vos senhalar que ladreça quutilizatz per <%= @instance %> es cambiada per aquesta daquí <%= @resource.unconfirmed_email %>.</p>
<% else %>
<p>Vos contactem per vos senhalar que ladreça quutilizatz per <%= @instance %> es cambiada per aquesta daquí <%= @resource.email %>.</p>
<% end %>
<p>
Savètz pas demandat aqueste cambiament dadreça, poiriá arribar que qualquun mai aguèsse agut accès a vòstre compte. Mercés de cambiar sulpic vòstre senhal o de contactar vòstre administrator dinstància se laccès a vòstre compte vos es barrat.
</p>
<p>Amistosament,<p>
<p>La còla <%= @instance %></p>

View File

@ -1,15 +0,0 @@
<p>Witaj, <%= @resource.email %>!</p>
<% if @resource&.unconfirmed_email? %>
<p>Informujemy, że e-mail używany przez Ciebie na <%= @instance %> został zmieniony na <%= @resource.unconfirmed_email %>.</p>
<% else %>
<p>Informujemy, że e-mail używany przez Ciebie na <%= @instance %> został zmieniony na <%= @resource.email %>.</p>
<% end %>
<p>
Jeżeli to nie Ty, prawdopodobnie ktoś uzyskał dostęp do Twojego konta. Zalecana jest natychmiastowa zmiana hasła lub skontaktowanie się z administratorem, jeżeli nie masz dostępu do swojego konta.
</p>
<p>Z pozdrowieniami,<p>
<p>Zespół <%= @instance %></p>

View File

@ -1,13 +0,0 @@
<p><%= @resource.email %>,你好呀!</p>
<% if @resource&.unconfirmed_email? %>
<p>我们发送这封邮件是为了提醒你,你在 <%= @instance %> 上使用的电子邮件地址即将变更为 <%= @resource.unconfirmed_email %>。</p>
<% else %>
<p>我们发送这封邮件是为了提醒你,你在 <%= @instance %> 上使用的电子邮件地址已经变更为 <%= @resource.unconfirmed_email %>。</p>
<% end %>
<p>
如果你并没有请求更改你的电子邮件地址,则他人很有可能已经入侵你的帐户。请立即更改你的密码;如果你已经无法访问你的帐户,请联系实例的管理员请求协助。
</p>
<p>来自 <%= @instance %> 管理团队</p>

View File

@ -1,3 +0,0 @@
<p>صباح الخير <%= @resource.email %>&nbsp;!</p>
<p>نود أن نخبرك أنه قد تم تعديل كلمة مرور ماستدون الخاصة بك بنجاح.</p>

View File

@ -1,3 +0,0 @@
<p>Hola <%= @resource.email %>!</p>
<p>Aquest correu es per a notificar-te que la teva contrasenya a mastodont.cat ha canviat.</p>

View File

@ -1,3 +0,0 @@
<p>Hello <%= @resource.email %>!</p>
<p>We're contacting you to notify you that your password on <%= @instance %> has been changed.</p>

View File

@ -1,3 +0,0 @@
<p>¡Hola, <%= @resource.email %>!</p>
<p>Te contactamos para notificarte que tu contraseña en <%= @instance %> ha sido modificada.</p>

View File

@ -1,3 +0,0 @@
<p dir="rtl">سلام <%= @resource.email %>!</p>
<p dir="rtl">این پیغام برای این است که به شما بگوییم رمز شما در ماستدون تغییر کرده است.</p>

View File

@ -1,3 +0,0 @@
<p>Hei <%= @resource.email %>!</p>
<p>Lähetämme tämän viestin ilmoittaaksemme että salasanasi on vaihdettu.</p>

View File

@ -1,3 +0,0 @@
<p>Bonjour <%= @resource.email %>&nbsp;!</p>
<p>Nous vous contactons pour vous informer que votre mot de passe sur Mastodon a bien été modifié.</p>

View File

@ -1,4 +0,0 @@
<div lang="he" dir="rtl">
<p>שלום <%= @resource.email %>!</p>
<p>רצינו להודיע לך שסיסמתך במסטודון אצלנו הוחלפה.</p>

View File

@ -0,0 +1,40 @@
%table.email-table{ cellspacing: 0, cellpadding: 0 }
%tbody
%tr
%td.email-body
.email-container
%table.content-section{ cellspacing: 0, cellpadding: 0 }
%tbody
%tr
%td.content-cell.hero
.email-row
.col-6
%table.column{ cellspacing: 0, cellpadding: 0 }
%tbody
%tr
%td.column-cell.text-center.padded
%table.hero-icon{ align: 'center', cellspacing: 0, cellpadding: 0 }
%tbody
%tr
%td
= image_tag asset_pack_path('icon_lock_open.svg')
%h1= t 'devise.mailer.password_change.title'
%p.lead= t 'devise.mailer.password_change.explanation'
%table.email-table{ cellspacing: 0, cellpadding: 0 }
%tbody
%tr
%td.email-body
.email-container
%table.content-section{ cellspacing: 0, cellpadding: 0 }
%tbody
%tr
%td.content-cell.content-start
.email-row
.col-6
%table.column{ cellspacing: 0, cellpadding: 0 }
%tbody
%tr
%td.column-cell.text-center.padded
%p= t 'devise.mailer.password_change.extra'

View File

@ -1,3 +0,0 @@
<p>Hai <%= @resource.email %>!</p>
<p>Kami menghubungi anda untuk memberitahu bahwa kata sandi anda di Mastodon telah diubah.</p>

View File

@ -1,3 +0,0 @@
<p>Ciao <%= @resource.email %>!</p>
<p>Ti stiamo contattando per avvisarti che la tua password su Mastodon è stata cambiata.</p>

View File

@ -1,3 +0,0 @@
<p>こんにちは<%= @resource.email %>さん</p>
<p>Mastodonアカウントのパスワードが変更されました。</p>

View File

@ -1,3 +0,0 @@
<p>Hallo <%= @resource.email %>!</p>
<p>Hierbij laten we jou weten dat jouw wachtwoord op Mastodon is veranderd.</p>

View File

@ -1,3 +0,0 @@
<p>Hei <%= @resource.email %>!</p>
<p>Ditt Mastodon-passord har blitt endret.</p>

View File

@ -1,3 +0,0 @@
<p>Bonjorn <%= @resource.email %>!</p>
<p>Vos contactem per vos avisar quavèm ben cambiat vòstre senhal Mastodon.</p>

View File

@ -1,3 +0,0 @@
<p>Witaj, <%= @resource.email %>!</p>
<p>Informujemy, że ostatnio zmieniono Twoje hasło na <%= @instance %>.</p>

View File

@ -1,3 +0,0 @@
<p>Olá, <%= @resource.email %>!</p>
<p>Estamos te contatando para te notificar que a sua senha na instância <%= @instance %> foi modificada.</p>

View File

@ -1,3 +0,0 @@
<p>Здравствуйте, <%= @resource.email %>!</p>
<p>Мы пишем, чтобы оповестить Вас о смене пароля на Вашем аккаунте Mastodon.</p>

View File

@ -1,3 +0,0 @@
<p>Zdravo <%= @resource.email %>!</p>
<p>Želimo samo da Vas obavestimo da je Vaša lozinka na Mastodont instanci <%= @instance %> promenjena.</p>

View File

@ -1,3 +0,0 @@
<p>Здраво <%= @resource.email %>!</p>
<p>Желимо само да Вас обавестимо да је Ваша лозинка на Мастодонт инстанци <%= @instance %> промењена.</p>

View File

@ -1,3 +0,0 @@
<p>Hej <%= @resource.email %>!</p>
<p>Vi kontaktar dig för att meddela dig att ditt lösenord på <%= @instance %> har blivit ändrat.</p>

View File

@ -1,3 +0,0 @@
<p>สวัสดี <%= @resource.email %>!</p>
<p>เราติดต่อเข้ามาเพื่อจะแจ้งให้คุณทราบว่าพาสเวิร์ด Mastodon เปลี่ยนแล้ว </p>

View File

@ -1,8 +0,0 @@
<p>Merhaba <%= @resource.email %>!</p>
<p> <%= @instance %>'deki parolanızın değiştirildiğini hatırlatmak isteriz.</p>
<p>En içten dileklerimizle,<p>
<p> <%= @instance %> ekibi</p>

View File

@ -1,3 +0,0 @@
<p><%= @resource.email %>,你好呀!</p>
<p>提醒一下,你在 <%= @instance %> 上的密码被更改了哦。</p>

View File

@ -1,15 +0,0 @@
<p>Hello <%= @resource.unconfirmed_email %>!</p>
<p>You requested a change to the email address you use on <%= @instance %>.</p>
<p>To confirm your new email, please click on the following link:<br>
<%= link_to 'Confirm my email address', confirmation_url(@resource, confirmation_token: @token) %></p>
<p>If the above link did not work, copy and paste this URL into your address bar: <br>
<span><%= confirmation_url(@resource, confirmation_token: @token) %></span>
<p>Please also check out our <%= link_to 'terms and conditions', terms_url %>.</p>
<p>Sincerely,<p>
<p>The <%= @instance %> team</p>

View File

@ -0,0 +1,60 @@
%table.email-table{ cellspacing: 0, cellpadding: 0 }
%tbody
%tr
%td.email-body
.email-container
%table.content-section{ cellspacing: 0, cellpadding: 0 }
%tbody
%tr
%td.content-cell.hero
.email-row
.col-6
%table.column{ cellspacing: 0, cellpadding: 0 }
%tbody
%tr
%td.column-cell.text-center.padded
%table.hero-icon{ align: 'center', cellspacing: 0, cellpadding: 0 }
%tbody
%tr
%td
= image_tag asset_pack_path('icon_email.svg')
%h1= t 'devise.mailer.reconfirmation_instructions.title'
%p.lead= t 'devise.mailer.reconfirmation_instructions.explanation'
%table.email-table{ cellspacing: 0, cellpadding: 0 }
%tbody
%tr
%td.email-body
.email-container
%table.content-section{ cellspacing: 0, cellpadding: 0 }
%tbody
%tr
%td.content-cell.content-start
%table.column{ cellspacing: 0, cellpadding: 0 }
%tbody
%tr
%td.column-cell.button-cell
%table.button{ align: 'center', cellspacing: 0, cellpadding: 0 }
%tbody
%tr
%td.button-primary
= link_to confirmation_url(@resource, confirmation_token: @token) do
%span= t 'devise.mailer.confirmation_instructions.action'
%table.email-table{ cellspacing: 0, cellpadding: 0 }
%tbody
%tr
%td.email-body
.email-container
%table.content-section{ cellspacing: 0, cellpadding: 0 }
%tbody
%tr
%td.content-cell
.email-row
.col-6
%table.column{ cellspacing: 0, cellpadding: 0 }
%tbody
%tr
%td.column-cell.text-center.padded
%p= t 'devise.mailer.reconfirmation_instructions.extra'

View File

@ -1,13 +0,0 @@
<p>こんにちは<%= @resource.unconfirmed_email %>さん</p>
<p><%= @instance %>で使っているメールアドレスの変更をあなたがリクエストしました。</p>
<p>新しいメールアドレスを確認するには次のリンクをクリックしてください:<br>
<%= link_to 'わたしのメールアドレスを確認する', confirmation_url(@resource, confirmation_token: @token) %></p>
<p>上記のリンクがうまくいかなかった場合はこのURLをコピーしてアドレスバーに貼り付けてください:<br>
<span><%= confirmation_url(@resource, confirmation_token: @token) %></span>
<p>また<%= link_to '利用規約', terms_url %>もご確認ください。</p>
<p><%= @instance %>チームより</p>

View File

@ -1,15 +0,0 @@
<p>Bonjorn <%= @resource.unconfirmed_email %>!</p>
<p>Avètz demandat a cambiar vòstra adreça de corrièl quutilizatz per <%= @instance %>.</p>
<p>Per confirmar vòstra novèla adreça, mercés de clicar lo ligam seguent:<br>
<%= link_to 'Confirmar mon adreça', confirmation_url(@resource, confirmation_token: @token) %></p>