我正在建设一个多语言的Laravel网站。
我需要能够用保存的变量确定的语言发送客户端。我就是这样做的:
$broker = $this->getSiteInstanceDetails($broker_id);
$transport = Swift_SmtpTransport::newInstance($broker->smtp_server, $broker->smtp_port, $broker->smtp_encryption)
->setUsername($broker->smtp_username)
->setPassword($broker->smtp_password);
// creating the Swift_Mailer instance and pass the config settings
$mailer = Swift_Mailer::newInstance($transport);
$mailer->send($message);因此,我使用swift_mailer实例发送邮件。问题是,我没有看到一个地区配置。我希望能够设置每个客户端的区域设置(例如,我可能需要用多种语言向客户端发送邮件)
作为管理员,我有一个地区设置为'en',但是我想用'it‘、'ko’和'jp‘来攻击客户。
我需要在每个客户端使用App::setLocale('en');吗?例如,循环遍历我的客户端列表,将地区设置为当前客户端,发送电子邮件,然后将地区设置为admin?当我只需要翻译一个视图时,设置整个应用程序的区域设置似乎很混乱。
欢迎任何意见或建议。
发布于 2014-10-16 16:27:33
您可以将lang参数作为第3参数传递到locale:
Lang::get($key, array $replace = array(), $locale = null)因此,您可以将地区设置为en,但可以在DB中签入,对于用户x,您希望在fr中发送电子邮件区域设置,所以在使用lang时,您需要使用:
Lang::get('general.hello', [], 'fr');而且它应该能正常工作。这样,您就不需要将区域设置更改为整个应用程序,而只有在您希望以当前语言环境集以外的语言进行翻译时,才需要传递自定义。
https://stackoverflow.com/questions/26408985
复制相似问题