mat*_*e64 6 php email laravel laravel-5
我正在寻找一个有效的解决方案,在laravel-5中翻译排队的电子邮件.不幸的是,所有电子邮件都使用默认语言环境(在下面定义).app.locale
让我们假设,我们有两个邮件管道,一个是英语en的用户和另一个为日本jp用户.
我应该将哪些数据传递到Mail外观以翻译(本地化)排队的电子邮件?
// User model
$user = User:find(1)->first();
Mailer::queue($email, 'Party at Batman\'s cave (Batcave)', 'emails.party-invitation', [
...
'locale' => $user->getLocale(), // value: "jp", but does not work
'lang' => $user->getLocale(), // value: "jp", but does not work
'language' => $user->getLocale(), // value: "jp", but does not work
]);
Run Code Online (Sandbox Code Playgroud)
我一直在努力以更有效的方式完成这项工作.目前我的设置是这样的.希望这可以帮助将来解决这个问题:
// Fetch the locale of the receiver.
$user = Auth::user();
$locale = $user->locale;
Mail::queue('emails.welcome.template', ['user' => $user, 'locale' => $locale], function($mail) use ($user, $locale) {
$mail->to($user->email);
$mail->subject(
trans(
'mails.subject_welcome',
[], null, $locale
)
);
});
Run Code Online (Sandbox Code Playgroud)
并在模板中使用以下内容:
{{ trans('mails.welcome', ['name' => ucfirst($user['first_name'])], null, $locale) }}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3278 次 |
| 最近记录: |