Laravel 如何将电子邮件模板翻译为Different lang?

Laravel 如何将电子邮件模板翻译为Different lang?,laravel,Laravel,我的应用程序是多语言的(AR,EN),我需要根据用户打开应用程序时使用的语言来制作电子邮件模板,就像是AR发送AR和EN一样 在我的模板中,我刚刚使用了 @lang('site.hello') 我有两个文件 /resources /lang /en /site.php /ar /site.php. 我的电子邮件的结果如下: <h1>Hello</h1> 你好 Laravel允许您以当前语言以外的

我的应用程序是多语言的
(AR,EN)
,我需要根据用户打开应用程序时使用的语言来制作电子邮件模板,就像是AR发送AR和EN一样

在我的模板中,我刚刚使用了

@lang('site.hello')
我有两个文件

/resources
/lang
    /en
        /site.php
    /ar            
       /site.php. 
我的电子邮件的结果如下:

<h1>Hello</h1>
你好
Laravel允许您以当前语言以外的语言环境发送邮件,如果邮件排队,它甚至会记住此语言环境

为了实现这一点,
Mail
facade提供了一个
locale
方法来设置所需的语言。格式化邮件时,应用程序将更改为此区域设置,然后在格式化完成后恢复为以前的区域设置:

Mail::to($request->user())->locale('es')->send(
    new OrderShipped($order)
);
用户首选地区

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

use Illuminate\Contracts\Translation\HasLocalePreference;

class User extends Model implements HasLocalePreference
{
    /**
     * Get the user's preferred locale.
     *
     * @return string
     */
    public function preferredLocale()
    {
        return $this->locale;
    }
}
一旦实现了该接口,Laravel将在向模型发送邮件和通知时自动使用首选区域设置。因此,使用此接口时不需要调用
locale
方法:

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

你能展示完整的代码和翻译文件吗?非常感谢,但是电子邮件的标题将如何翻译?你说在你的模板中你只有
@lang('site.hello')
,这就是要翻译的文本。请看这张图,为什么h1没有打印为html标记?你在哪里有这些代码?它已经逃逸了问题的参数。请参阅电子邮件的balde代码,正常打印即可