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代码,正常打印即可