Laravel multi language với api GoogleTranslate

Post on: 2023-11-14 17:33:02 | in: Laravel
Multi language đã được laravel hỗ trợ từ lâu, nhưng với 1 site cho nhiều ngôn ngữ thì bạn đã biết cách xử lý chưa?
Với Multi language được laravel hỗ trợ bạn cẩn phải có các file lang dịch sẵn cho các ngôn ngữ tương ứng để web có thể chạy được.
Điều này sẽ hợp lý với các site chỉ có 2, 3 ngôn ngữ nhưng nếu bạn muốn mở rộng hơn thì phải làm sao.
Câu trả lời chính là GoogleTranslate API cụ thể ở đây mính sẽ xử dụng thư viện stichoza/google-translate-php

Cài đặt thư viện stichoza/google-translate-php

Đầu tiên, bạn cần cài đặt thư viện stichoza/google-translate-php. Bạn có thể sử dụng Composer để cài đặt nó. Mở command line và chạy lệnh sau:
composer require stichoza/google-translate-php

Sử dụng thư viện

Bạn có thể để đoạn code này vào file welcome.blade.php của project laravel của mình để xem kết quả.
<!DOCTYPE html>
<html>
<head>
    <title>Multi-Language Example</title>
</head>
<body>
<h1>{{ __('messages.welcome') }}</h1>
<p>{{ __('messages.description') }}</p>
@php
    use Stichoza\GoogleTranslate\GoogleTranslate;
    $targetLanguage = 'en';
    $tr = new GoogleTranslate($targetLanguage);
@endphp
<p><strong>Translated Description:</strong> {{ $tr->translate('Xin chào') }}</p>
</body>
</html>
Chú ý rằng việc dịch tự động trang web có thể tạo ra kết quả không hoàn hảo và mất đi sự chính xác trong việc dịch ngữ cảnh. Thư viện stichoza/google-translate-php dựa trên Google Translate API, và việc dịch toàn bộ trang web có thể làm giảm hiệu suất và gây cản trở cho trải nghiệm người dùng cuối.