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

Comments

Bài đăn phổ biến

Deploy website lên VPS hoặc Hosting với Gitlab CI/CD

Tính Bình Phương 1 Số Trong Python

MỞ CAMERA VÀ CHỤP ẢNH BẰNG PHP

Đường dẫn tương đối trong Java

Salesforce là gì? tích hợp salesforce, tìm hiểu salesforce trong 1 bài viết