most email notifications translatable

This commit is contained in:
Florian Dupret 2020-05-25 19:24:21 +02:00
parent b54bb20617
commit 37b35661be
29 changed files with 179 additions and 92 deletions

View File

@ -84,7 +84,7 @@ class MailError extends Job implements ShouldQueue
$args,
function (Message $message) use ($email) {
if ('mail@example.com' !== $email) {
$message->to($email, $email)->subject('Caught an error in Firefly III');
$message->to($email, $email)->subject(trans('email.error_subject'));
}
}
);

View File

@ -63,6 +63,6 @@ class AccessTokenCreatedMail extends Mailable
public function build(): self
{
return $this->view('emails.access-token-created-html')->text('emails.access-token-created-text')
->subject('A new access token was created');
->subject(trans('email.access_token_created_subject'));
}
}

View File

@ -62,6 +62,6 @@ class AdminTestMail extends Mailable
public function build(): self
{
return $this->view('emails.admin-test-html')->text('emails.admin-test-text')
->subject('A test message from your Firefly III installation');
->subject(trans('email.admin_test_subject'));
}
}

View File

@ -70,6 +70,6 @@ class ConfirmEmailChangeMail extends Mailable
public function build(): self
{
return $this->view('emails.confirm-email-change-html')->text('emails.confirm-email-change-text')
->subject('Your Firefly III email address has changed');
->subject(trans('email.email_change_subject'));
}
}

View File

@ -67,6 +67,6 @@ class OAuthTokenCreatedMail extends Mailable
public function build(): self
{
return $this->view('emails.oauth-client-created-html')->text('emails.oauth-client-created-text')
->subject('A new OAuth client has been created');
->subject(trans('email.oauth_created_subject'));
}
}

View File

@ -61,6 +61,6 @@ class RegisteredUser extends Mailable
*/
public function build(): self
{
return $this->view('emails.registered-html')->text('emails.registered-text')->subject('Welcome to Firefly III!');
return $this->view('emails.registered-html')->text('emails.registered-text')->subject(trans('email.registered_subject'));
}
}

View File

@ -60,6 +60,6 @@ class RequestedNewPassword extends Mailable
*/
public function build(): self
{
return $this->view('emails.password-html')->text('emails.password-text')->subject('Your password reset request');
return $this->view('emails.password-html')->text('emails.password-text')->subject(trans('email.reset_pw_subject'));
}
}

View File

@ -68,6 +68,6 @@ class UndoEmailChangeMail extends Mailable
public function build(): self
{
return $this->view('emails.undo-email-change-html')->text('emails.undo-email-change-text')
->subject('Your Firefly III email address has changed');
->subject(trans('email.email_change_subject'));
}
}

View File

@ -0,0 +1,98 @@
<?php
/**
* email.php
* Copyright (c) 2019 james@firefly-iii.org
*
* This file is part of Firefly III (https://github.com/firefly-iii).
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as
* published by the Free Software Foundation, either version 3 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
declare(strict_types=1);
return [
// common items
'greeting' => 'Hi there,',
'closing' => 'Beep boop,',
'signature' => 'The Firefly III Mail Robot',
'footer_ps' => 'PS: This message was sent because a request from IP :ipAddress triggered it.',
// admin test
'admin_test_subject' => 'A test message from your Firefly III installation',
'admin_test_body' => 'This is a test message from your Firefly III instance. It was sent to :email.',
// access token created
'access_token_created_subject' => 'A new access token was created',
'access_token_created_body_1' => 'Somebody (hopefully you) just created a new Firefly III API Access Token for your user account.',
'access_token_created_body_2_html' => 'With this token, they can access <strong>all</strong> of your financial records through the Firefly III API.',
'access_token_created_body_2_text' => 'With this token, they can access *all* of your financial records through the Firefly III API.',
'access_token_created_body_3' => 'If this wasn\'t you, please revoke this token as soon as possible at :url.',
// registered
'registered_subject' => 'Welcome to Firefly III!',
'registered_welcome_html' => 'Welcome to <a style="color:#337ab7" href=":address">Firefly III</a>. Your registration has made it, and this email is here to confirm it. Yay!',
'registered_welcome_text' => 'Welcome to Firefly III. Your registration has made it, and this email is here to confirm it. Yay!',
'registered_pw_html' => 'If you have forgotten your password already, please reset it using <a style="color:#337ab7" href=":address/password/reset">the password reset tool</a>.',
'registered_pw_text' => 'If you have forgotten your password already, please reset it using the password reset tool.',
'registered_help' => 'There is a help-icon in the top right corner of each page. If you need help, click it!',
'registered_doc_html' => 'If you haven\'t already, please read the <a style="color:#337ab7" href="https://docs.firefly-iii.org/about-firefly-iii/grand-theory">grand theory</a>.',
'registered_doc_text' => 'If you haven\'t already, please read the first use guide and the full description.',
'registered_closing' => 'Enjoy!',
'registered_firefly_iii_link' => 'Firefly III:',
'registered_pw_reset_link' => 'Password reset:',
'registered_doc_link' => 'Documentation:',
// email change
'email_change_subject' => 'Your Firefly III email address has changed',
'email_change_body_to_new' => 'You or somebody with access to your Firefly III account has changed your email address. If you did not expect this message, please ignore and delete it.',
'email_change_body_to_old_html' => 'You or somebody with access to your Firefly III account has changed your email address.
If you did not expect this to happen, you <strong>must</strong> follow the "undo"-link below to protect your account!',
'email_change_body_to_old_text' => 'You or somebody with access to your Firefly III account has changed your email address. If you did not expect this to happen,
you must follow the "undo"-link below to protect your account!',
'email_change_ignore' => 'If you initiated this change, you may safely ignore this message.',
'email_change_old' => 'The old email address was:',
'email_change_new' => 'The new email address is:',
'email_change_instructions' => 'You cannot use Firefly III until you confirm this change. Please follow the link below to do so.',
'email_change_undo_link' => 'To undo the change, follow this link:',
// OAuth token created
'oauth_created_subject' => 'A new OAuth client has been created',
'oauth_created_body_html' => 'Somebody (hopefully you) just created a new Firefly III API OAuth Client for your user account. It\'s labeled ":name" and has callback URL <span style="font-family: monospace;">:url</span>.',
'oauth_created_body_text' => 'Somebody (hopefully you) just created a new Firefly III API OAuth Client for your user account. It\'s labeled ":name" and has callback URL:',
'oauth_created_explanation_html' => 'With this client, they can access <strong>all</strong> of your financial records through the Firefly III API.',
'oauth_created_explanation_text' => 'With this client, they can access *all* of your financial records through the Firefly III API.',
'oauth_created_undo' => 'If this wasn\'t you, please revoke this client as soon as possible at :url.',
// reset password
'reset_pw_subject' => 'Your password reset request',
'reset_pw_instructions' => 'Somebody tried to reset your password. If it was you, please follow the link below to do so.',
'reset_pw_warning_html' => '<strong>PLEASE</strong> verify that the link actually goes to the Firefly III you expect it to go!',
'reset_pw_warning_text' => '*PLEASE* verify that the link actually goes to the Firefly III you expect it to go!',
// error
'error_subject' => 'Caught an error in Firefly III',
'error_intro_html' => 'Firefly III v:version ran into an error: <span style="font-family: monospace;">:errorMessage</span>',
'error_type' => 'The error was of type ":class".',
'error_timestamp' => 'The error occurred on/at: :time.',
'error_location_html' => 'This error occurred in file <span style="font-family: monospace;">:file</span> on line :line with code :code.',
'error_user_html' => 'The error was encountered by user #:id, <a href="mailto::email">:email</a>.',
'error_no_user' => 'There was no user logged in for this error or no user was detected.',
'error_ip' => 'The IP address related to this error is:',
'error_url' => 'URL is:',
'error_user_agent' => 'User agent:',
'error_stacktrace' => 'The full stacktrace is below. If you think this is a bug in Firefly III, you can forward this message to :email. This can help fix the bug you just encountered.',
'error_github' => 'If you prefer, you can also open a new issue on :link.',
'error_stacktrace_below' => 'The full stacktrace is below:'
];

View File

@ -1621,15 +1621,6 @@ return [
'box_net_worth_in_currency' => 'Net worth (:currency)',
'box_spend_per_day' => 'Left to spend per day: :amount',
// emails
'email_greeting' => 'Hi there,',
'email_closing' => 'Beep boop,',
'email_signature' => 'The Firefly III Mail Robot',
'email_footer_ps' => 'PS: This message was sent because a request from IP :ip:userIp:ipAddress triggered it.',
'email_admin_test_subject' => 'A test message from your Firefly III installation',
'email_admin_test_body' => 'This is a test message from your Firefly III instance. It was sent to :email.',
// telemetry
'telemetry_admin_index' => 'Telemetry',
'telemetry_intro' => 'Firefly III supports the collection and sending of usage telemetry. This means that Firefly III will try to collect info on how you use Firefly III, and send it to the developer of Firefly III. This is always opt-in, and is disabled by default. Firefly III will never collect or send financial information. Firefly III will also never collect or send financial meta-information, like sums or calculations. The collected data will never be made publicly accessible.',

View File

@ -1,13 +1,13 @@
{% include 'emails.header-html' %}
<p style="font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;font-size:13px;">
Somebody (hopefully you) just created a new Firefly III API Access Token for your user account.
{{ trans('email.access_token_created_body_1')}}
</p>
<p style="font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;font-size:13px;">
With this token, they can access <strong>all</strong> of your financial records through the Firefly III API.
{{ trans('email.access_token_created_body_2_html')|raw }}
</p>
<p style="font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;font-size:13px;">
If this wasn't you, please revoke this token as soon as possible at {{ route('profile.index') }}.
{{ trans('email.access_token_created_body_3', {url: route('profile.index') })}}
</p>
{% include 'emails.footer-html' %}

View File

@ -1,7 +1,7 @@
{% include 'emails.header-text' %}
Somebody (hopefully you) just created a new Firefly III API Access Token for your user account.
{{ trans('email.access_token_created_body_1')}}
With this token, they can access all of your financial records through the Firefly III API.
{{ trans('email.access_token_created_body_2_text')}}
If this wasn't you, please revoke this token as soon as possible at {{ route('profile.index') }}.
{{ trans('email.access_token_created_body_3', {url: route('profile.index') })}}
{% include 'emails.footer-text' %}

View File

@ -1,5 +1,5 @@
{% include 'emails.header-html' %}
<p style="font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;font-size:13px;">
{{ trans('firefly.email_admin_test_body', {email: email })}}
{{ trans('email.admin_test_body', {email: email })}}
</p>
{% include 'emails.footer-html' %}

View File

@ -1,3 +1,3 @@
{% include 'emails.header-text' %}
{{ trans('firefly.email_admin_test_body', {email: email })}}
{{ trans('email.admin_test_body', {email: email })}}
{% include 'emails.footer-text' %}

View File

@ -1,15 +1,15 @@
{% include 'emails.header-html' %}
<p style="font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;font-size:13px;">
You or somebody with access to your Firefly III account has changed your email address. If you did not expect this message, please ignore and delete it.
{{ trans('email.email_change_body_to_new')}}
</p>
<p style="font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;font-size:13px;">
The old email address was: {{ oldEmail }}
{{trans('email.email_change_old')}} {{ oldEmail }}
</p>
<p style="font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;font-size:13px;">
The new email address is: <strong>{{ newEmail }}</strong>
{{trans('email.email_change_new')}} <strong>{{ newEmail }}</strong>
</p>
<p style="font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;font-size:13px;">
You cannot use Firefly III until you confirm this change. Please follow the link below to do so.
{{ trans('email.email_change_instructions')}}
</p>
<p style="font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;font-size:13px;">

View File

@ -1,9 +1,10 @@
{% include 'emails.header-text' %}
You or somebody with access to your Firefly III account has changed your email address. If you did not expect this message, please ignore and delete it.
{{ trans('email.email_change_body_to_new')}}
The old email address was: {{ oldEmail }}
{{trans('email.email_change_old')}} {{ oldEmail }}
The new email address is: {{ newEmail }}
{{trans('email.email_change_new')}} {{ newEmail }}
You cannot use Firefly III until you confirm this change. Please follow the link to do so: {{ uri }}
{{ trans('email.email_change_instructions')}}
{{ uri }}
{% include 'emails.footer-text' %}

View File

@ -1,46 +1,44 @@
{% include 'emails.header-html' %}
<p style="font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;font-size:13px;">
Firefly III v{{ version }} ran into an error: <span style="font-family: monospace;">{{ errorMessage }}</span>
{{ trans('email.error_intro_html', { version: version, errorMessage: errorMessage })|raw }}
</p>
<p style="font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;font-size:13px;">
The error was of type "{{ class }}".
{{ trans('email.error_type', {class: class }) }}
</p>
<p style="font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;font-size:13px;">
The error occurred on/at: {{ time }}.
{{ trans('email.error_timestamp', {time: time }) }}
</p>
<p style="font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;font-size:13px;">
This error occurred in file <span style="font-family: monospace;">{{ file }}</span> on line {{ line }} with code {{ code }}.
{{ trans('email.error_location_html', { file: file, line: line, code: code })|raw }}
</p>
<p style="font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;font-size:13px;">
{% if loggedIn %}
The error was encountered by user #{{ user.id }}, <a href="mailto:{{ user.email }}">{{ user.email }}</a>.
{{ trans('email.error_user_html', { id: user.id, email: user.email })|raw }}
{% else %}
There was no user logged in for this error or no user was detected.
{{ trans('email.error_no_user') }}
{% endif %}
</p>
<p style="font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;font-size:13px;">
The IP address related to this error is: {{ ip }}<br />
URL is: {{ url }}<br>
User agent: {{ userAgent }}
{{ trans('email.error_ip') }} {{ ip }}<br />
{{ trans('email.error_url') }} {{ url }}<br>
{{ trans('email.error_user_agent') }} {{ userAgent }}
</p>
<p style="font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;font-size:13px;">
The full stacktrace is below. If you think this is a bug in Firefly III, you
can forward this message to
<a href="mailto:james@firefly-iii.org?subject=BUG!">james@firefly-iii.org</a>.
This can help fix the bug you just encountered.
{{ trans('email.error_stacktrace', { email: '<a href="mailto:james@firefly-iii.org?subject=BUG!">james@firefly-iii.org</a>' })|raw }}
</p>
<p style="font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;font-size:13px;">
If you prefer, you can also open a new issue on <a href="https://github.com/firefly-iii/firefly-iii/issues">GitHub</a>.
{{ trans('email.error_github', { link: '<a href="https://github.com/firefly-iii/firefly-iii/issues">GitHub</a>' })|raw }}
</p>
<p style="font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;font-size:13px;">
The full stacktrace is below:</p>
{{ trans('email.error_stacktrace_below') }}</p>
<p style="font-family: monospace;font-size:11px;color:#aaa">
{{ stackTrace|nl2br }}
</p>

View File

@ -1,12 +1,12 @@
<p style="font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;font-size:13px;">
{{ trans('firefly.email_closing') }}
{{ trans('email.closing') }}
</p>
<p style="font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;font-size:13px;">
{{ trans('firefly.email_signature') }}
{{ trans('email.signature') }}
</p>
<p style="font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;font-size:11px;color:#aaa;">
{{ trans('firefly.email_footer_ps', {ip: ip, userIp: userIp, ipAddress: ipAddress}) }}
{{ trans('email.footer_ps', {ipAddress: ipAddress}) }}
</p>
</body>

View File

@ -1,6 +1,6 @@
{{ trans('firefly.email_closing') }}
{{ trans('email.closing') }}
{{ trans('firefly.email_signature') }}
{{ trans('email.signature') }}
{{ trans('firefly.email_footer_ps', {ip: ip, userIp: userIp, ipAddress: ipAddress}) }}
{{ trans('email.footer_ps', {ipAddress: ipAddress}) }}

View File

@ -6,5 +6,5 @@
</head>
<body>
<p style="font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;font-size:13px;">
{{ trans('firefly.email_greeting') }}
{{ trans('email.greeting') }}
</p>

View File

@ -1 +1 @@
{{ trans('firefly.email_greeting') }}
{{ trans('email.greeting') }}

View File

@ -1,14 +1,13 @@
{% include 'emails.header-html' %}
<p style="font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;font-size:13px;">
Somebody (hopefully you) just created a new Firefly III API OAuth Client for your user account. It's labeled "{{ client.name }}"
and has callback URL <span style="font-family: monospace;">{{ client.redirect }}</span>.
{{ trans('email.oauth_created_body_html', { name:client.name, url:client.redirect})|raw }}
</p>
<p style="font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;font-size:13px;">
With this client, they can access <strong>all</strong> of your financial records through the Firefly III API.
{{ trans('email.oauth_created_explanation_html')|raw }}
</p>
<p style="font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;font-size:13px;">
If this wasn't you, please revoke this client as soon as possible at {{ route('profile.index') }}.
{{ trans('email.oauth_created_undo', { url:route('profile.index')}) }}
</p>
{% include 'emails.footer-html' %}

View File

@ -1,9 +1,9 @@
{% include 'emails.header-text' %}
Somebody (hopefully you) just created a new Firefly III API OAuth Client for your user account. It's labeled "{{ client.name }}" and has callback URL:
{{ trans('email.oauth_created_body_text', {name: client.name }) }}
{{ client.redirect }}
With this client, they can access <strong>all</strong> of your financial records through the Firefly III API.
{{ trans('email.oauth_created_explanation_text') }}
If this wasn't you, please revoke this client as soon as possible at {{ route('profile.index') }}.
{{ trans('email.oauth_created_undo') }}
{% include 'emails.footer-text' %}

View File

@ -1,10 +1,10 @@
{% include 'emails.header-html' %}
<p style="font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;font-size:13px;">
Somebody tried to reset your password. If it was you, please follow the link below to do so.
{{ trans('email.reset_pw_instructions') }}
</p>
<p style="font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;font-size:13px;">
<strong>PLEASE</strong> verify that the link actually goes to the Firefly III you expect it to go!
{{ trans('email.reset_pw_warning_html')|raw }}
</p>
<p style="font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;font-size:13px;">

View File

@ -1,7 +1,7 @@
{% include 'emails.header-text' %}
Somebody tried to reset your password. If it was you, please follow the link below to do so.
{{ trans('email.reset_pw_instructions') }}
PLEASE verify that the link actually goes to the Firefly III you expect it to go!
{{ trans('email.reset_pw_warning_text') }}
{{ url }}
{% include 'emails.footer-text' %}

View File

@ -1,18 +1,20 @@
{% include 'emails.header-html' %}
<p style="font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;font-size:13px;">
Welcome to <a style="color:#337ab7" href="{{ address }}">Firefly III</a>. Your registration has made it, and this email is here to confirm it. Yay!
{{ trans('email.registered_welcome_html', {address: address})|raw }}
</p>
<ul>
<li style="font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;font-size:13px;">
If you have forgotten your password already, please reset it using
<a style="color:#337ab7" href="{{ address }}/password/reset">the password reset tool</a>.
{{ trans('email.registered_pw_html', {address: address})|raw }}
</li>
<li style="font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;font-size:13px;">
There is a help-icon in the top right corner of each page. If you need help, click it!
{{ trans('email.registered_help')}}
</li>
<li style="font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;font-size:13px;">
If you haven't already, please read the <a style="color:#337ab7" href="https://docs.firefly-iii.org/about-firefly-iii/grand-theory">grand theory</a>.
{{ trans('email.registered_doc_html')|raw }}
</li>
</ul>
<p style="font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;font-size:13px;">
{{ trans('email.registered_closing')}}
</p>
{% include 'emails.footer-html' %}

View File

@ -1,19 +1,19 @@
{% include 'emails.header-text' %}
Welcome to Firefly III. Your registration has made it, and this email is here to confirm it. Yay!
{{ trans('email.registered_welcome_text')}}
* If you have forgotten your password already, please reset it using the password reset tool.
* There is a help-icon in the top right corner of each page. If you need help, click it!
* If you haven't already, please read the first use guide and the full description.
* {{ trans('email.registered_pw_text')}}
* {{ trans('email.registered_help')}}
* {{ trans('email.registered_doc_text')}}
Enjoy!
{{ trans('email.registered_closing')}}
Firefly III:
{{ trans('email.registered_firefly_iii_link')}}
{{ address }}
Password reset:
{{ trans('email.registered_pw_reset_link')}}
{{ address }}/password/reset
Documentation:
{{ trans('email.registered_doc_link')}}
https://github.com/firefly-iii/firefly-iii
https://firefly-iii.org/

View File

@ -1,18 +1,17 @@
{% include 'emails.header-html' %}
<p style="font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;font-size:13px;">
You or somebody with access to your Firefly III account has changed your email address.
If you did not expect this to happen, you <strong>must</strong> follow the "undo"-link below to protect your account!
{{ trans('email.email_change_body_to_old_html')|raw }}
</p>
<p style="font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;font-size:13px;">
If you initiated this change, you may safely ignore this message.
{{ trans('email.email_change_ignore') }}
</p>
<p style="font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;font-size:13px;">
The old email address was: <strong>{{ oldEmail }}</strong>
{{trans('email.email_change_old')}} <strong>{{ oldEmail }}</strong>
</p>
<p style="font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;font-size:13px;">
The new email address is: {{ newEmail }}
{{trans('email.email_change_new')}} {{ newEmail }}
</p>
<p style="font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;font-size:13px;">
To undo the change, follow this link: <a href="{{ uri }}">{{ uri }}</a>
{{trans('email.email_change_undo_link')}} <a href="{{ uri }}">{{ uri }}</a>
</p>
{% include 'emails.footer-html' %}

View File

@ -1,12 +1,11 @@
{% include 'emails.header-text' %}
You or somebody with access to your Firefly III account has changed your email address. If you did not expect this to happen,
you must follow the "undo"-link below to protect your account!
{{ trans('email.email_change_body_to_old_text')}}
If you initiated this change, you may safely ignore this message.
{{ trans('email.email_change_ignore')}}
The old email address was: {{ oldEmail }}
{{trans('email.email_change_old')}} {{ oldEmail }}
The new email address is: {{ newEmail }}
{{trans('email.email_change_new')}} {{ newEmail }}
To undo the change, follow this link: {{ uri }}
{{ trans('email.email_change_undo_link')}} {{ uri }}
{% include 'emails.footer-text' %}