Đa ngôn ngữ đơn giản trong Laravel

Published by

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.

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.

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',
];

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.

This post was last modified on Tháng Năm 8, 2024 12:03 chiều

Đinh Thái Hoàng

Đinh Thái Hoàng - tác giả của Laptrinhc.edu.vn, chuyên sâu trong lĩnh vực lập trình. Trang web chia sẻ kiến thức, hướng dẫn và tin tức về lập trình, giúp bạn khám phá thế giới mã nguồn và nâng cao kỹ năng coder.

Published by

Bài đăng mới nhất

Tổng hợp app bán hàng online uy tín nhất tại Việt Nam

Khám phá và tận dụng tiềm năng kinh doanh trên nhiều nền tảng là điều…

6 ngày ago

HỌC THIẾT KẾ MOBILE APP Ở ĐÂU UY TÍN?

Mobile App đang trở thành một phần thiết yếu trong cuộc sống hiện đại. Với…

6 ngày ago

Cách phá mật khẩu Windows bằng DLC Boot

Bạn đã bao giờ quên mật khẩu máy tính và không biết phải làm sao?…

6 ngày ago

Cách kiểm tra và cài đặt Driver cho Windows 10 chuẩn nhất

Driver chính là phần mềm giúp hệ điều hành nhận diện phần cứng trên máy…

6 ngày ago

Top 10 công cụ viết phần mềm tốt nhất

Hiện nay, lập trình viên không cần phải thực hiện toàn bộ công việc lập…

6 ngày ago

Những Công Ty Lập Trình Ứng Dụng Cho IOS Hàng Đầu Việt Nam

Lập trình ứng dụng cho iOS không chỉ đơn thuần là một quyết định khó…

6 ngày ago