如何在 laravel 5 中翻译我的密码重置电子邮件的主题

Posted

技术标签:

【中文标题】如何在 laravel 5 中翻译我的密码重置电子邮件的主题【英文标题】:How do I translate the subject of my password reset email in laravel 5 【发布时间】:2015-12-18 18:06:24 【问题描述】:

我是 laravel 新手,目前正在构建一个多语言应用程序。我正在使用 laravel 提供的方法实现密码重置。在 ResetsPasswords trait 中查看此方法后:

 protected function getEmailSubject()
    
        return isset($this->subject) ? $this->subject : 'Your Password Reset Link';
    

我注意到我可以在 PasswordController 中为我的主题指定一个变量,如下所示:

protected $subject = '密码重置';

如何从语言文件中获取该值并分配给变量?

【问题讨论】:

【参考方案1】:

在构造函数中使用 trans() 辅助函数

<?php

namespace App\Http\Controllers\Auth;

use App\Http\Controllers\Controller;
use Illuminate\Foundation\Auth\ResetsPasswords;

class PasswordController extends Controller

    use ResetsPasswords;

    /**
     * Create a new password controller instance.
     *
     * @return void
     */
    public function __construct()
    
        $this->subject = trans('passwords.subject');
        $this->middleware($this->guestMiddleware());
    

【讨论】:

【参考方案2】:

经过一番挖掘,我找到了如下所示的答案。

protected function getEmailSubject()
    return Lang::has('passwords.password_reset')
         ? Lang::get('passwords.password_reset')
         : 'Your Password Reset Link.';

使用方法覆盖,我覆盖了 ResetsPasswords 特征中的 getEmailSubject 方法,并提供了必要的实现,如电子邮件正文所示。 passwords.password_reset 是我的语言文件中文本的键。

【讨论】:

以上是关于如何在 laravel 5 中翻译我的密码重置电子邮件的主题的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 laravel 5 中的队列通过电子邮件发送密码重置链接

Laravel 5 密码重置电子邮件未发送

Laravel 5 重置密码通知不会发送

Laravel 5.1/AngularJS:在 Angular 视图中重置密码(如何验证 CSRF 令牌?)

如何在 Lumen 6x 中实现默认 Laravel 重置密码

Laravel 5.1 密码重置电子邮件主题行