简体   繁体   中英

How can I translate the password reset email in Laravel 5.7?

I'm trying to translate the password reset email, which is English by default, in Laravel 5.7.

Normally – for the login, registration, and password reset views – you would translate the files under /resources/lang/ , but I can't find the corresponding lines for the body on the emails.

How can I translate the password reset email?

In the method Illuminate\Auth\Notifications\ResetPassword::toMail() you can see the Lang::getFromJson() method is used to populate the email:

return (new MailMessage)
    ->subject(Lang::getFromJson('Reset Password Notification'))
    ->line(Lang::getFromJson('You are receiving this email because we received a password reset request for your account.'))
    ->action(Lang::getFromJson('Reset Password'), url(config('app.url').route('password.reset', $this->token, false)))
    ->line(Lang::getFromJson('If you did not request a password reset, no further action is required.'));

So you should be able to add these translations to the resources/lang/xx.json file as described in the documentation (scroll down to "Using Translation Strings As Keys.")

This also applies to the email verification message in Illuminate\Auth\Notifications\VerifyEmail .

For example, this could be the content of resources/lang/fr.json (forgive my high school French from 25 years ago)

{
    "If you did not request a password reset, no further action is required.": "Si vous ne demandez pas le réinitialisation de votre mot de passe, vous ne pouvez rien faire"
}

For both classes, the template file Illuminate/Notifications/resources/views/email.blade.php contains additional text that is in standard Blade @lang tags, which can be translated using message files at resources/lang/xx/messages.php

For example, this could be the content of resources/lang/fr/messages.php :

<?php
return [
    "Regards" => "Félicitations",
];

Just found out that you can also translate the @lang tags within your json file:

{
  "Regards": "Met vriendelijke groet",
  "If you’re having trouble clicking the \":actionText\" button, copy and paste the URL below\ninto your web browser: [:actionURL](:actionURL)": "Als u problemen ondervindt bij het klikken op de knop \":actionText\" kopieert en plakt u de onderstaande URL in uw webbrowser\n[:actionURL](:actionURL)",
  "All rights reserved.": "Alle rechten voorbehouden."
}

Look at the repository for all translation files:

https://github.com/caouecs/Laravel-lang

I'm trying to translate the password reset email, which is English by default, in Laravel 5.7.

Normally – for the login, registration, and password reset views – you would translate the files under /resources/lang/ , but I can't find the corresponding lines for the body on the emails.

How can I translate the password reset email?

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM