Laravel使用Illuminate\Auth\Notifications\ResetPassword
类发送密码重置电子邮件。消息是用英文写的。如何将其翻译成另一种语言。发布供应商文件不会复制此类。我无法编辑它,因为它在供应商文件中,并且不在vcs存储库中。
答案 0 :(得分:2)
电子邮件通知是从CanResetPassword
特征发送的,您需要覆盖对此负责的方法并提供您自己的通知类。
User extends Authenticatable
{
// ...
public function sendPasswordResetNotification($token)
{
$this->notify(new MyResetPasswordNotification($token));
}
// ...
}
并创建通知:
MyResetPasswordNotification extends Notification
{
public $token;
public function __construct($token)
{
$this->token = $token;
}
public function via($notifiable)
{
return ['mail'];
}
public function toMail($notifiable)
{
return (new MailMessage)
->line(trans('reset_password.first_line'))
->action(trans('reset_password.action', ['route' => route('password.reset', $this->token)))
->line(trans('reset_password.last_line');
}
}
现在您只需要提供翻译。