阅读(2368) (6)

Laravel 8 用户的个性化翻译

2021-07-05 17:12:45 更新

有时,应用程序会为每个用户存储不同的区域设置。通过在一个或多个模型上实现 HasLocalePreference 锲约,可以指示 Laravel 在发送邮件时使用此存储的区域设置:

use Illuminate\Contracts\Translation\HasLocalePreference;

class User extends Model implements HasLocalePreference
{
    /**
     * 返回用户的特定区域信息
     *
     * @return string
     */
    public function preferredLocale()
    {
        return $this->locale;
    }
} 

一旦实现了此契约,Laravel 将在向模型发送邮件和通知时自动使用该语言环境。因此,使用此接口时不需要调用 locale 方法:

Mail::to($request->user())->send(new OrderShipped($order));