【发布时间】:2022-01-09 07:46:59
【问题描述】:
我有一个多语言 Laravel 应用程序,其中用户表中每个用户的区域设置为 locale 列。
在每个请求开始时,我将应用程序区域设置为当前登录用户的区域:
App::setLocale(App::user()->locale);
当用户 A 进行事件时,我会(通过数据库和邮件)向可能与用户 A 具有不同语言环境的所有其他用户发送通知。
现在我正在使用同步驱动程序进行通知。
我知道我可以在toMail 函数中翻译电子邮件的内容。但是模板中仍然有一些标签,我无法控制它们的翻译。它们是根据用户 A 语言环境而不是 notifiable 语言环境翻译的。
我发布了通知邮件模板:
php artisan vendor:publish --tag=laravel-notifications
将通知邮件模板复制到resources/views/vendor/notifications/email.blade.php
在这个模板中有一些翻译例如:
@lang('Whoops!')
@lang('Hello!')
@lang(
"If you’re having trouble clicking the \":actionText\" button, copy and paste the URL below\n".
'into your web browser:',
[
'actionText' => $actionText,
]
) <span class="break-all">[{{ $displayableActionUrl }}]({{ $actionUrl }})</span>
我需要将可通知的语言环境传递给此文件才能正确翻译标签:
@lang('Whoops!', [], $notifiableLocale)
@lang('Hello!', [], $notifiableLocale)
如何将通知语言环境传递给该模板?
【问题讨论】:
标签: laravel