Laravel chuyển đổi ngôn ngữ trong email khi chạy lệnh command

Laravel chuyển đổi ngôn ngữ trong email khi chạy lệnh command

- Nhiều thắc mắc đưa ra là mình có Middleware Locale rồi đã đặt trong Kernel rồi.
- Trong API cũng set middleware('locale') rồi mà sau khi chạy command gởi mail ra nó không nhận file ngôn ngữ.

Hiểu đơn giản là khi chạy 1 command nó không gọi bất cứ 1 API nào cả thì đâu có đi qua middleware đâu mà nhận locale.

Để thực hiện translate nội dung mail khi chạy command thì từ Laravel 5.4 đã hổ trợ cài locale

1. Mail::to('abc@test.com')->locale('nl')->send(new InviteUserMail());
2. Trong file .blade.php bạn phải đổi thành
Thay vì:
Dear Administrator thì phải đổi thành {{__('Dear Adminitrator')}} << với cặp {{}} và __() thì việc chuyển đổi ngôn ngữ trong blade template mới được thực hiện.

Một lưu ý: file chuyển ngôn ngữ phải là file .json và đặt ở lang/nl.json

chỉ với ->locale('language') thì chắc chắn nội dung mail của bạn sẽ được dịch

Post a Comment

Previous Post Next Post