Website đa ngôn ngữ luôn là điều được các lập trình viên quan tâm khi sử dụng framework, trong Laravel mọi chuyện trở nên dễ dàng hơn. Laravel cung cấp cho người dùng một cách thức đợn giản để ứng dụng đa ngôn ngữ. Các file Language được lưu trong thư mục resource/lang
Dưới đây mình tạo 2 thư mục en, vi tương ứng với 2 ngôn ngữ là Tiếng Anh và Tiếng Việt
\lang \en auth.php pagination.php passwords.php validation.php \vi auth.php pagination.php passwords.php validation.php
Tất cả các file ngôn ngữ chỉ trả về một mảng các chuỗi. Ví dụ:
Trong thư mục \en mình tạo 1 file tên hello.php với nội dung file là:
return [ 'welcome' => 'Hello World!' ];
Còn trong thư mục \vi mình cũng tạo 1 file tên hello.php với nội dung:
return [ 'welcome' => 'Chào thế giới!' ];
Ngôn ngữ được cấu hình mặc định trong file conflig/app.php
'locale' => 'en',
Để rõ hơn mình sẽ tạo 1 ví dụ nhỏ:
Tạo file route URL để test
Route::get('test-lang', 'DemoController@testLang' );
Tại function testLang :
echo __('hello.welcome'); //hello là tên file, wellcome là key của mảng
kết quả sẽ là:
Lý do là mặc định ngôn ngữ là en nên Laravel sẽ vào thư mục resource/lang/en sau đó truy xuất file hello lấy kết quả
Vậy để biết ngôn ngữ hiện tại là gì và muốn thay đổi ngôn ngữ thì làm thế nào?
$lang = App::getLocale(); // Lấy ngôn ngữ hiện tại trong Laravel // Nhớ use App; trước khi sử dụng nhé ^^! var_dump($lang); App::setLocale('vi'); // Cài đặt ngôn ngữ mới cho Project $lang_new = App::getLocale(); var_dump($lang_new);
Bây giờ bạn đã có thể cài đặt ngôn ngữ mới cho Laravel, thông thường khi đổi ngôn ngữ ta thường lưu vào Session để giữ giá trị lang mà người dùng chọn.
Qua bài này các bạn đã nắm cơ bản về cách thức Laravel hỗ trợ đa ngôn ngữ.Trong bài sau mình sẽ hướng dẫn về Session và Middleware trong Laravel, nếu có gì không hiểu các bạn comment bên dưới nhé
Nhớ like nếu giúp ích được cho bạn :D. Chúc thành công!