Bài viết được viết dựa trên ý tưởng gốc của tác giả Nguyễn Trần Chung.
Chào các bạn! Trong quá trình làm dự án, nếu bạn muốn tích hợp nhiều ngôn ngữ khác nhau, thì bài viết này sẽ giúp bạn thực hiện điều đó một cách dễ dàng hơn.
Bạn đang xem: Đa ngôn ngữ đơn giản trong Laravel
Trong Laravel, chúng ta có sẵn chức năng Retrieving Translation Strings. Ví dụ, trong file blade, bạn có thể sử dụng 3 cách để viết mã ngôn ngữ:
- Cách 1:
{{ __('Ngôn ngữ') }}
- Cách 2:
{{ trans('Ngôn ngữ') }}
- Cách 3:
@lang('Ngôn ngữ')
Để xác định ngôn ngữ cho dự án, bạn có thể chỉnh sửa tại file config/app.php
và thay đổi các cài đặt sau:
'locale' => 'en', // Ngôn ngữ mặc định
'fallback_locale' => 'en', // Ngôn ngữ dự phòng
Trong Laravel, chúng ta còn có cách khác để thay đổi ngôn ngữ là sử dụng App::setLocale($locale)
. Với cách này, bạn có thể lấy giá trị từ cơ sở dữ liệu và gán cho biến $locale
để các thành viên có thể tự đổi ngôn ngữ theo ý riêng. Tuy nhiên, trong bài viết này, mình sẽ chỉ hướng dẫn cách viết đa ngôn ngữ, còn việc thay đổi options sẽ có một bài viết khác.
Xem thêm : Flutter Là Gì? Vì Sao Bạn Nên Học Ngôn Ngữ Flutter?
Giờ thì chúng ta vào phần chính. Bạn vào thư mục /resources/lang
và bạn sẽ thấy một folder có sẵn là ‘en’, đây chính là thư mục chứa file ngôn ngữ Tiếng Anh của dự án. Trong en
, có file validation.php
chứa các nội dung tiếng Anh dùng cho việc validation trong dự án. Bạn có thể dịch các nội dung này theo ý muốn.
Các bạn có thể tạo một thư mục ngang hàng với ‘en’, như tên là ‘vn’, chẳng hạn. Sau đó, bạn copy toàn bộ các file từ thư mục ‘en’ vào thư mục ‘vn’ và tiến hành việt hóa nó.
Xong! Bây giờ các bạn đã có thể việt hóa dự án theo ý muốn. Bạn cũng có thể tự tạo ra các chuỗi văn bản riêng để dịch.
Ví dụ, bạn có thể tạo một file có tên là ‘content.php’ hoặc tên khác tuỳ ý, nội dung file sẽ như sau:
<?php
return [
// Nội dung các chuỗi text được dịch ở đây
];
Nội dung thật ra tương tự như 4 file đã có sẵn.
Tiếp theo, mình sẽ sử dụng các template auth có sẵn trong Laravel để tiết kiệm thời gian và công sức. Ví dụ, trong file Login.blade.php
, chúng ta có chuỗi “E-Mail Address” làm ví dụ. Bạn chỉ cần sửa {{ __('E-Mail Address') }}
thành {{ __('content.E-Mail Address') }}
, trong đó ‘content’ chính là tên file content.php
mà bạn đã tạo. Bạn có thể đặt tên file theo ý muốn. Và trong file content.php
, bạn viết như sau:
<?php
return [
'E-Mail Address' => 'Địa chỉ Email',
];
Xem thêm : Hoàng Mẫn’Site
Kết quả sẽ như sau:
Tương tự, bạn có thể làm với các từ khác và phân chia file thành nhiều phần nếu cần thiết. Ngoài ra, chúng ta cũng có thể sử dụng 2 cách khác mà tôi đã đề cập ở phần trước.
Đây là bản dịch và viết mới dựa trên bài viết gốc của tác giả Nguyễn Trần Chung. Bài viết gốc được đăng tải tại chungnguyen.xyz.
Có thể bạn quan tâm:
- 4 ngôn ngữ phát triển game indie phổ biến
- SASS/SCSS là gì?
- Top 8 Framework Web Development hot nhất 2019
Xem thêm các việc làm Laravel Developer hấp dẫn tại TopDev.
Nguồn: https://laptrinhc.edu.vn
Danh mục: Ngôn ngữ lập trình