It's me ;-)

Khắc phục lỗi Carbon formatLocalized() không hiển thị định dạng ngày tháng theo locale được chọn

Một ngày đẹp trời, khách hàng nhắn: anh ơi em đổi ngôn ngữ sang tiếng Việt mà cái chỗ ngày đăng nó vẫn hiển thị tiếng Anh!

Thật ra thì nếu làm kiểu “nông dân” thì cứ thêm 1 mảng dạng key – value kiểu:

$months = [7 => 'Tháng 7'];

Xong lúc hiển thị thì cứ lấy tháng dạng số rồi map sang cái mảng $month kia để hiển thị thôi 🤣

Nhưng mình code có tâm ai lại làm thế, nên là đằng nào thì cũng đang dùng Carbon để hiển thị/định dạng dữ liệu ngày tháng rồi nên mình cũng xài luôn cái formatLocalized() method.

Tuy nhiên, sau khi làm như hướng dẫn thì nó vẫn hiển thị tiếng Anh thay vì tiếng Việt 🤪

setlocale(LC_TIME, 'vi_VN');
Carbon::setLocale('vi');

Nếu các bạn cũng gặp trường hợp này thì đơn giản là server chạy PHP của các bạn có thể chưa cài các gọi locale tương ứng. Để khắc phục, chỉ cần chạy lệnh theo cú pháp sau:

sudo locale-gen id_ID.UTF-8

Với id_ID là locale cần cài, ở đây mình thiếu tiếng Việt nên sẽ gõ lệnh cụ thể sau:
sudo locale-gen vi_VN.UTF-8

Tada! Long lanh luôn 😍

Leave a Reply

Your email address will not be published.