Laravel - Lومی hóa: Hướng dẫn cho người mới bắt đầu

Xin chào, những người đam mê lập trình! Hôm nay, chúng ta sẽ bắt đầu một hành trình thú vị vào thế giới Lومی hóa của Laravel. Đừng lo lắng nếu bạn mới làm quen với lập trình - tôi sẽ là người hướng dẫn thân thiện của bạn, giải thích mọi thứ từng bước. Cuối bài hướng dẫn này, bạn sẽ có khả năng làm cho ứng dụng Laravel của mình nói được nhiều ngôn ngữ! Hãy bắt đầu nào!

Laravel - Localization

Lومی hóa là gì?

Trước khi chúng ta nhảy vào mã, hãy hiểu xem lومی hóa nghĩa là gì. Hãy tưởng tượng bạn đã tạo ra một trang web tuyệt vời, nhưng tất cả người dùng của bạn không nói cùng một ngôn ngữ. Liệu có tuyệt vời nếu trang web của bạn có thể tự động chuyển đổi ngôn ngữ dựa trên sở thích của người dùng? Đó chính xác là điều mà lومی hóa làm!

Lومی hóa là quá trình điều chỉnh ứng dụng của bạn để hỗ trợ nhiều ngôn ngữ và vùng miền. Nó giống như dạy ứng dụng của bạn trở thành đa ngôn ngữ!

Tại sao lومی hóa lại quan trọng?

Hãy để tôi chia sẻ một câu chuyện nhanh. Cách đây vài năm, một trong những học sinh của tôi đã tạo ra một trang web thương mại điện tử tuyệt vời. Nó hoàn hảo... ngoại trừ rằng nó chỉ có tiếng Anh. Khi anh ấy cố gắng mở rộng sang thị trường nói tiếng Tây Ban Nha, anh ấy nhận ra rằng anh ấy cần phải xây dựng lại gần như mọi thứ! Nếu anh ấy đã sử dụng lومی hóa từ đầu, mọi thứ sẽ dễ dàng hơn nhiều.

Lومی hóa giúp bạn:

  1. Đạt được đối tượng toàn cầu
  2. Cải thiện trải nghiệm người dùng
  3. Tăng cường sự tham gia và giữ chân người dùng

Bây giờ, hãy xem Laravel làm cho quá trình này trở nên dễ dàng như thế nào!

Thiết lập Lomi hóa trong Laravel

Bước 1: Tạo các tệp ngôn ngữ

Trước tiên, chúng ta cần tạo các tệp ngôn ngữ. Laravel làm điều này rất dễ dàng!

  1. Đi tới thư mục resources/lang trong dự án Laravel của bạn.
  2. Tạo một thư mục mới cho mỗi ngôn ngữ bạn muốn hỗ trợ. Ví dụ: en cho tiếng Anh, es cho tiếng Tây Ban Nha.
  3. Trong mỗi thư mục, tạo một tệp PHP có tên theo tính năng bạn đang dịch. Hãy bắt đầu với messages.php.

Cấu trúc thư mục của bạn có thể trông như thế này:

resources/
lang/
en/
messages.php
es/
messages.php

Bây giờ, hãy thêm một số dịch vụ vào các tệp này:

// resources/lang/en/messages.php
return [
'welcome' => 'Welcome to our website!',
'goodbye' => 'Goodbye, see you soon!',
];

// resources/lang/es/messages.php
return [
'welcome' => '¡Bienvenido a nuestro sitio web!',
'goodbye' => '¡Adiós, hasta pronto!',
];

Bước 2: Sử dụng các dịch trong mã của bạn

Bây giờ chúng ta đã có các dịch, hãy sử dụng chúng trong mã của mình. Laravel cung cấp nhiều cách để làm điều này:

Phương pháp 1: Sử dụng hàm trợ giúp __()

echo __('messages.welcome');

Điều này sẽ hiển thị "Welcome to our website!" nếu ứng dụng được đặt thành tiếng Anh, hoặc "¡Bienvenido a nuestro sitio web!" nếu nó được đặt thành tiếng Tây Ban Nha.

Phương pháp 2: Sử dụng hàm trợ giúp trans()

echo trans('messages.goodbye');

Điều này làm cùng việc như __() nhưng một số nhà phát triển thích cú pháp này.

Phương pháp 3: Sử dụng chỉ thị @lang trong các mẫu Blade

Trong các mẫu Blade của bạn, bạn có thể sử dụng chỉ thị @lang:

<h1>@lang('messages.welcome')</h1>

Điều này đặc biệt hữu ích khi bạn làm việc với các mẫu HTML.

Bước 3: Thay đổi ngôn ngữ của ứng dụng

Bây giờ, làm thế nào chúng ta nói Laravel sử dụng ngôn ngữ nào? Có một vài cách:

Phương pháp 1: Đặt ngôn ngữ mặc định

Trong tệp config/app.php, bạn có thể đặt ngôn ngữ mặc định:

'locale' => 'en',

Phương pháp 2: Thay đổi ngôn ngữ tại runtime

Bạn có thể thay đổi ngôn ngữ động trong mã của mình:

App::setLocale('es');

Điều này hữu ích khi bạn muốn thay đổi ngôn ngữ dựa trên sở thích hoặc thiết lập của người dùng.

Phương pháp 3: Sử dụng middleware để đặt ngôn ngữ

Để kiểm soát nâng cao hơn, bạn có thể tạo một middleware để đặt ngôn ngữ dựa trên nhiều yếu tố. Dưới đây là một ví dụ đơn giản:

namespace App\Http\Middleware;

use Closure;
use Illuminate\Support\Facades\App;

class SetLocale
{
public function handle($request, Closure $next)
{
if ($request->session()->has('locale')) {
App::setLocale($request->session()->get('locale'));
}
return $next($request);
}
}

Sau đó, đăng ký middleware này trong app/Http/Kernel.php:

protected $middlewareGroups = [
'web' => [
// ... middleware khác
\App\Http\Middleware\SetLocale::class,
],
];

Kỹ thuật Lomi hóa nâng cao

Đa số

Laravel có thể xử lý đa số cho bạn! Dưới đây là cách:

// Trong tệp ngôn ngữ của bạn
'apples' => '{0} No apples|{1} One apple|[2,*] :count apples',

// Trong mã của bạn
echo trans_choice('apples', 0); // Outputs: No apples
echo trans_choice('apples', 1); // Outputs: One apple
echo trans_choice('apples', 5); // Outputs: 5 apples

Lomi hóa với tham số

Bạn cũng có thể sử dụng tham số trong các dịch của mình:

// Trong tệp ngôn ngữ của bạn
'welcome_name' => 'Welcome, :name!',

// Trong mã của bạn
echo __('messages.welcome_name', ['name' => 'John']); // Outputs: Welcome, John!

Kết luận

Chúc mừng! Bạn đã刚刚 bước vào thế giới Lomi hóa của Laravel. Với những công cụ này, bạn bây giờ có thể tạo ra các ứng dụng nói được nhiều ngôn ngữ, không matter where they are in the world.

Nhớ rằng, chìa khóa để thành thạo lomi hóa (và lập trình nói chung) là thực hành. Hãy thử tạo một dự án nhỏ và triển khai lomi hóa từ đầu. Bạn sẽ ngạc nhiên khi nó nhanh chóng trở thành thói quen!

Chúc bạn lập trình vui vẻ, và mong rằng các ứng dụng của bạn có thể nói nhiều ngôn ngữ! ??️?

Phương pháp Mô tả Ví dụ
__() Hàm trợ giúp dịch __('messages.welcome')
trans() Hàm trợ giúp dịch khác trans('messages.goodbye')
@lang Chỉ thị Blade cho dịch @lang('messages.welcome')
App::setLocale() Đặt ngôn ngữ ứng dụng App::setLocale('es')
trans_choice() Dịch với đa số trans_choice('apples', 5)

Credits: Image by storyset