andriajah Thu Aug 2022 1 year ago

Contoh Google Translate Package di Laravel 9

Hari ini, saya ingin menunjukkan contoh google translate package laravel 9. Pada artikel ini, kami akan menerapkan penerjemah google how-to-use di laravel. Anda dapat memahami konsep laravel google translate situs web multi-bahasa. Anda akan belajar laravel paket google translate. Ikuti langkah tutorial google translate multi-bahasa laravel di bawah ini.

Pustaka Google Terjemahan digunakan untuk situs web multi-bahasa tanpa memasukkan terjemahan kata situs web Anda secara manual. Laravel juga menyediakan situs web multi-bahasa menggunakan pelokalan tetapi Anda perlu menambahkan setiap pekerjaan pada file konfigurasi. jadi menggunakan google translate Anda tidak perlu melakukan apa-apa.

Dalam contoh ini, saya akan menunjukkan kepada Anda langkah demi langkah cara menginstal google translate di laravel dan Anda juga tidak perlu menambahkan kunci API apa pun. kita akan menggunakan paket komposer stichoza/google-translate-php. kami akan membuat halaman situs web sederhana dengan dropdown bahasa. kemudian Anda dapat mengganti bahasa dari sana dan konten akan ditampilkan dalam bahasa yang dipilih. Tanpa basa-basi lagi, mari kita lihat langkah-langkah contoh kode di bawah ini.

 

Anda dapat menggunakan contoh ini dengan versi laravel 6, laravel 7, laravel 8, dan laravel 9.

Langkah 1: Instal Laravel 9

Ini opsional; namun, jika Anda belum membuat aplikasi laravel, maka Anda dapat melanjutkan dan menjalankan perintah di bawah ini:

 

composer create-project laravel/laravel example-app

Langkah 2: Install Google Translate Package

Pada langkah ini, kita akan menginstal paket komposer stichoza/google-translate-php dan menambahkan alias pada file konfigurasi.

 

Mari kita jalankan perintah di bawah ini dengan file konfigurasi.

composer require stichoza/google-translate-php

mari kita tambahkan alias pada file app.php:

config/app.php

<?PHP
  
    ...
    ...
    ...
  
    'aliases' => Facade::defaultAliases()->merge([
        'GoogleTranslate' => Stichoza\GoogleTranslate\GoogleTranslate::class
    ])->toArray(),
  
];

 

Langkah 3: Create Routes

Pada langkah ini, kami akan membuat dua route satu untuk menampilkan halaman dashbor dengan drop-down bahasa dan satu lagi untuk Anda dapat mengubah logika bahasa.

 

jadi tambahkan rute di bawah ini.

routes/web.php

<?php
  
use Illuminate\Support\Facades\Route;
  
use App\Http\Controllers\LangController;
  
/*
|--------------------------------------------------------------------------
| Web Routes
|--------------------------------------------------------------------------
|
| Here is where you can register web routes for your application. These
| routes are loaded by the RouteServiceProvider within a group which
| contains the "web" middleware group. Now create something great!
|
*/
  
Route::get('lang/home', [LangController::class, 'index']);
Route::get('lang/change', [LangController::class, 'change'])->name('changeLang');

Langkah 4: Create LangController Controller

Pada titik ini, sekarang kita harus membuat controller baru sebagai LangController. controller ini akan mengatur tata letak dan mengubah logika bahasa secara dinamis, jadi letakkan konten di bawah ini di file pengontrol:

 

app/Http/Controllers/LangController.php

<?php
  
namespace App\Http\Controllers;
  
use Illuminate\Http\Request;
use App;
  
class LangController extends Controller
{
    /**
     * Display a listing of the resource.
     *
     * @return \Illuminate\Http\Response
    */
    public function index()
    {
        return view('lang');
    }
  
    /**
     * Display a listing of the resource.
     *
     * @return \Illuminate\Http\Response
    */
    public function change(Request $request)
    {
        App::setLocale($request->lang);
        session()->put('locale', $request->lang);
  
        return redirect()->back();
    }
}

 

Langkah 5: Create View

Pada langkah terakhir, mari kita buat lang.blade.php(resources/views/lang.blade.php) untuk layout dan kita akan menulis kode desain di sini dan memasukkan kode berikut:

 

resources/views/lang.blade.php

<!DOCTYPE html>
<html>
<head>
    <title>Laravel 9 Google Translate Package Example - Medikre.com</title>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <link href="https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-EVSTQN3/azprG1Anm3QDgpJLIm9Nao0Yz1ztcQTwFspd3yD65VohhpuuCOmLASjC" crossorigin="anonymous">
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
</head>
<body>
    <div class="container">
        <div class="card">
            <div class="card-header">
                <h1>Laravel Google Translate Example - NiceSnippets.com</h1>
            </div>
            <div class="card-body">
                <div class="row">
                    <div class="col-md-2">
                        <strong>Select Language: </strong>
                    </div>
                    <div class="col-md-4">
                        <select class="form-select changeLang">
                            <option value="en" {{ session()->get('locale') == 'en' ? 'selected' : '' }}>English</option>
                            <option value="fr" {{ session()->get('locale') == 'fr' ? 'selected' : '' }}>France</option>
                            <option value="es" {{ session()->get('locale') == 'es' ? 'selected' : '' }}>Spanish</option>
                        </select>
                    </div>
                </div>
                <h3>{{ GoogleTranslate::trans('Welcome to Medikre.com', app()->getLocale()) }}</h3>
                <h3>{{ GoogleTranslate::trans('Hello World', app()->getLocale()) }}</h3>
            </div>
        </div>
    </div>
</body>
    
<script type="text/javascript">
    var url = "{{ route('changeLang') }}";
    $(".changeLang").change(function(){
        window.location.href = url + "?lang="+ $(this).val();
    });
</script>
</html>

 

Langkah 6: Create Middleware

Dalam file ini, kita perlu membuat satu middleware yang akan mengelola bahasa dinamis yang kita pilih pada dropdown. jadi mari kita buat middleware menggunakan bahasa di bawah ini.

php artisan make:middleware LanguageManager

Sekarang Anda harus memperbarui file middleware seperti di bawah ini:

 

app/Http/Middleware/LanguageManager.php

<?php
  
namespace App\Http\Middleware;
  
use Closure;
use App;
  
class LanguageManager
{
    /**
     * Handle an incoming request.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  \Closure  $next
     * @return mixed
     */
    public function handle($request, Closure $next)
    {
        if (session()->has('locale')) {
            App::setLocale(session()->get('locale'));
        }
          
        return $next($request);
    }
}

Sekarang kita perlu mendaftarkannya ke file kernel. jadi mari kita tambahkan seperti di bawah ini:

app/Http/Kernel.php

<?php
  
namespace App\Http;
  
use Illuminate\Foundation\Http\Kernel as HttpKernel;
  
class Kernel extends HttpKernel
{
    ....
  
    /**
     * The application's route middleware groups.
     *
     * @var array
     */
    protected $middlewareGroups = [
        'web' => [
            \App\Http\Middleware\EncryptCookies::class,
            \Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class,
            \Illuminate\Session\Middleware\StartSession::class,
            \Illuminate\View\Middleware\ShareErrorsFromSession::class,
            \App\Http\Middleware\VerifyCsrfToken::class,
            \Illuminate\Routing\Middleware\SubstituteBindings::class,
            \App\Http\Middleware\LanguageManager::class,
        ],
  
        'api' => [
            'throttle:60,1',
            \Illuminate\Routing\Middleware\SubstituteBindings::class,
        ],
    ];
  
    ...

Run Laravel App:

Semua langkah yang diperlukan telah dilakukan, sekarang Anda harus mengetikkan perintah yang diberikan di bawah ini dan tekan enter untuk menjalankan aplikasi Laravel:

php artisan serve

Sekarang, Buka browser web Anda, ketik URL yang diberikan dan lihat output aplikasi:

http://localhost:8000/lang/home

 

laravel laravel 9 google translate laravel 9 example tutorial laravel