如何翻译ResetPasswordNotification

I wonder whats the best way to translate the mail from the PasswortResetNotification.

public function toMail($notifiable)
{
    return (new MailMessage)
        ->line('You are receiving this email because we received a password reset request for your account.')
        ->action('Reset Password', route('password.reset', $this->token))
        ->line('If you did not request a password reset, no further action is required.');
}

Change the code inside ResetPassword(above) seems not applicable, since this is part of the vendor folder - same for the CanResetPassword-trait.

My guess is, I have to create my own MyResetPasswordNotification (which could inherit from ResetPasswordNotification) and overwrite the sendPasswordResetNotification-method in my own User Model.

Or is there a better approach, I currently not see?

These days in Laravel 5.6+ you can create the locale json file at the top level and translate the keys in ResetPassword.

E.g.

fr.json
{
  "Reset Password Notification" => "Changement de mot de passe"
}

See https://laravel.com/docs/5.6/localization#using-translation-strings-as-keys

The relevent lines to translate are in the Illuminate\Auth\Notifications\ResetPassword password file.

    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.'));

Edit: Not all the translations are here, you will also need to see Illuminate/Notifications/resources/views/email.blade.php and translate those keys.

Overall it still may be easier to follow what is hinted at in the docs:

$ php artisan make:mail ResetPassword

// pass the token to the view in the created file, e.g. 
public $link;
public function __construct($token, $notifiable)
{
    $this->link = url('password/reset', $token).'?email='.urlencode($notifiable->getEmailForPasswordReset());
}

$ php artisan make:notification ResetPassword

// change toMail method in the created file
use App\Mail\ResetPassword as ResetPasswordEmail;

...
public function toMail($notifiable)
{
    return (new ResetPasswordEmail($this->token, $notifiable))->to($notifiable);
}

// User Model

use App\Notifications\ResetPassword as ResetPasswordNotification;

...
public function sendPasswordResetNotification($token)
{
    $this->notify(new ResetPasswordNotification($token));
}

Then implement the build method on the ResetPassword email, and write the blade templates for this. This gives you full control over the blade and translations in the normal manner.

you can use php artisan vendor:publish this will give you esources\views\vendor otifications which is configurable

vendor:publish options:

php artisan help vendor:publish
Usage:
 vendor:publish [--force] [--provider[="..."]] [--tag[="..."]]

Options:
 --force               Overwrite any existing files.
 --provider            The service provider that has assets you want to publish.
 --tag                 The tag that has assets you want to publish.
 --help (-h)           Display this help message
 --quiet (-q)          Do not output any message
 --verbose (-v|vv|vvv) Increase the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debug
 --version (-V)        Display this application version
 --ansi                Force ANSI output
 --no-ansi             Disable ANSI output
 --no-interaction (-n) Do not ask any interactive question
 --env                 The environment the command should run under.