Cara menggunakan php multi language library

Laravel Localization Multi Bahasa – Multi Bahasa atau Multi Language adalah sebuah fitur yang ada pada sebuah website yang memiliki beragam jenis bahasa..

Biasanya digunakan pada sebuah website yang menargetkan pengunjung nya dari berbagai macam jenis negara, misalkan seperti indo, arab, france, dan sebagai nya..

Baca Juga : Cara Compress Gambar di Laravel menggunakan Intervention Image

Walaupun sebetulnya bisa cukup dengan 1 bahasa saja yaitu bahasa inggris, akan tetapi jika kita menyediakan juga bahasa dari negara mereka berasal akan terkesan lebih professional..

Daftar Isi

Laravel Localization Multi Bahasa

Di laravel sendiri sebetulnya sudah mendukung fitur multi language, kita tinggal buatkan saja kamus nya didalam folder “../resources/lang”..

Misalkan sebagai contoh kita ingin membuat 2 bahasa, yaitu Indonesia dengan kita buatkan kode nya adalah id dan inggris dengan kode nya adalah en, maka kita tinggal buatkan saja 2 folder baru dengan nama kode negara nya didalam folder lang, supaya lebih memahami nya bisa kalian cek contoh dibawah ini:

Trending

Tutorial Lengkap Integrasi Laravel Dengan Payment Gateway Xendit

Cara menggunakan php multi language library
Cara menggunakan php multi language library

Setiap folder tersebut mewakili bahasa dari negara nya masing-masing..

Kalau kalian ingin menambahkan satu bahasa lagi misalkan bahasa Spanyol dengan kode nya adalah “sp“, maka kalian tinggal buatkan lagi aja 1 folder baru didalam lang dengan nama sp seperti berikut:

Cara menggunakan php multi language library
Cara menggunakan php multi language library

Nah sekarang untuk menuliskan kamus nya, kalian harus membuat sebuah file didalam masing-masing folder tersebut, dan nama file nya haruslah sama, misalkan kita buat nama file nya yaitu sangcahayaid.php seperti berikut:

Cara menggunakan php multi language library
Cara menggunakan php multi language library

Coba kalian perhatikan gambar di atas, di setiap folder bahasa nya, kita memiliki sebuah file masing-masing dengan nama yang sama yaitu sangcahayaid.php..

Kemudian kamu tinggal tuliskan kamus nya aja didalam file tersebut, format penulisan nya yaitu dalam bentuk array yang terdiri dari key dan value..

Nanti key tersebut yang akan kita panggil didalam script nya, dan value dari key tersebut yang akan tampil di halaman browser nya..

Nah nanti untuk cara pemanggilan nya adalah seperti berikut:

@lang('nama_file_nya.key_array_nya')

Untuk lebih jelas nya, nanti akan kita coba praktekkan di part berikut nya..

Melihat Konfigurasi Default Language

Sebetulnya laravel sudah memiliki file konfigurasi sendiri untuk menentukan bahasa apa yang akan dijalankan di project tersebut.. kita bisa melihat nya didalam file “../config/app.php”..

Cara menggunakan php multi language library
Cara menggunakan php multi language library

Secara default konfigurasi nya berisi nilai “en”, yang berarti bahasa inggris..

Tapi kita juga bisa merubah nya sesuai dengan apa yang sudah kita buat didalam folder lang, yaitu id, en atau sp..

Untuk merubah bahasa nya, gak harus melalui file konfigurasi tersebut, kita juga bisa buatkan secara dinamis melalui url atau cookies, untuk selengkap nya nanti akan kita praktekkan juga..

Mulai Praktek nya

Di part sebelumnya, kita sudah membuat file dengan nama sangcahayaid.php pada setiap folder language..

Nah sekarang tiap2 file tersebut kalian isi seperti berikut:

“../resources/lang/id/sangcahayaid.php”..

<?php

return [

    'nama' => 'Nama',
    'email' => 'Alamat Surel',
    'alamat' => 'Alamat',
    'nope' => 'No Handphone'

];

“../resources/lang/en/sangcahayaid.php”..

<?php

return [

    'nama' => 'Name',
    'email' => 'Email Address',
    'alamat' => 'Address',
    'nope' => 'Phone Number'

];

Coba kalian perhatikan baik-baik yah, untuk key array nya wajib sama, tapi kalo untuk value nya silahkan di sesuaikan dengan bahasa folder nya masing-masing..

Nah kemudian nanti untuk di view nya, kalian tinggal panggil aja key array nya seperti berikut:

....
<div>
    <table class="table">
        <tbody>
            <tr>
                <th>@lang('sangcahayaid.nama')</th>
                <td>:</td>
                <td>Sangcahaya.id</td>
            </tr>
            <tr>
                <th>@lang('sangcahayaid.email')</th>
                <td>:</td>
                <td>[email protected]</td>
            </tr>
            <tr>
                <th>@lang('sangcahayaid.alamat')</th>
                <td>:</td>
                <td>Bekasi</td>
            </tr>
            <tr>
                <th>@lang('sangcahayaid.nope')</th>
                <td>:</td>
                <td>123</td>
            </tr>
        </tbody>
    </table>
</div>
....

Maka nanti di browser nya akan tampil seperti berikut:

Cara menggunakan php multi language library
Cara menggunakan php multi language library

Kalo misalkan konfigurasi locale nya yang berada didalam folder “../config/app.php” kalian ubah menjadi “id” seperti berikut:

Cara menggunakan php multi language library
Cara menggunakan php multi language library

Maka dihalaman view browser nya juga akan otomatis berubah ke id seperti berikut:

Cara menggunakan php multi language library
Cara menggunakan php multi language library

Mengubah bahasa via parameter Url

Kalo kita ingin dapat merubah bahasa nya secara dinamis, salah satu caranya yaitu dengan menentukan nya melalui parameter url..

Contoh nya adalah seperti berikut:

use Illuminate\Support\Facades\App;

Route::get('/home/{lang}', function ($lang) {

    App::setLocale($lang);

    return view('welcome');
});

Coba kalian perhatikan script di atas:

  • Pada baris ke-1, kita memanggil class App nya terlebih dahulu..
  • Baris ke-3 kita membuat route yang terdapat parameter language nya..
  • Kemudian pada baris ke-5, kita menentukan language nya dengan perintah App::setLocale()..

Nah nanti ketika kalian akses url “../home/id”, maka yang tampil adalah bahasa indonesia..

Cara menggunakan php multi language library
Cara menggunakan php multi language library

Kalo kalian akses url nya “../home/en”, maka nanti yang tampil adalah bahasa inggris, seperti berikut:

Cara menggunakan php multi language library
Cara menggunakan php multi language library

Kalo tadi kita merubah bahasa secara dinamis melalui url, sekarang kita akan coba dengan menyimpan nya kedalam cookie..

Sekarang kita punya 2 route seperti berikut, route pertama untuk menyimpan data kedalam cookie, dan route kedua adalah untuk mengarahkan kita kehalaman view nya..

<?php

use Illuminate\Support\Facades\App;
use Illuminate\Support\Facades\Route;

/*
|--------------------------------------------------------------------------
| 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('set-cookie/{lang}', function ($lang) {

    setcookie('lang', $lang, time() + (86400 * 30), "/"); // 86400 = 1 day

});

Route::get('/home', function () {

    if (isset($_COOKIE['lang'])) {
        App::setLocale($_COOKIE['lang']);
    } else {
        App::setLocale('id');
    }

    return view('welcome');
});

Coba kalian script diatas:

  • Pada baris ke-17, kita membuat route untuk meng-set cookie nya yang nilai nya di ambil dari parameter pada route tersebut..
  • Pada baris ke-19, kita memberi cookie nya dengan nama lang..
  • Kemudian pada baris ke-25, kita membuat kondisi, apakah cookie dengan nama lang tersedia atau tidak, jika tersedia maka value dari cookie tersebut akan dibuat sebagai default language nya, tapi jika tidak maka bahasa default language nya akan kita arahkan ke indonesia..

Sekarang coba kalian akses url “../set-cookie/en”, kemudian setelah itu kalian akses url “../home”, maka seharusnya yang tampil adalah bahasa inggris..

Sementara kalo kalian akses url “../set-cookie/id”, kemudian setelah itu kalian akses url “../home”, maka seharusnya yang tampil adalah bahasa indonesia..

Akhir kata

Sekian dari saya, semoga tutorial ini bisa bermanfaat untuk teman-teman sekalian..

Support Us

Jika artikel ini bermanfaat untuk kamu, membantu menyelesaikan masalah yang sedang kamu hadapi, kamu juga bisa dukung kami dengan mengunjungi halaman berikut: https://saweria.co/sangcahayaid