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-phpCài đặt thư viện
Đầu tiên, bạn cần cài đặt thư viện
Đ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 <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>
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.