Wawasan & Cerita dari BBYTS

Temukan artikel, ide, dan teknologi terbaru yang kami bagikan untuk menginspirasi dan mengedukasi.

🌐 Laravel Multilanguage: Panduan Lengkap Membuat Aplikasi Multi-Bahasa

CNFadil Hijayat RumasorengΒ· 02 Sep 2025Β· 2
🌐 Laravel Multilanguage: Panduan Lengkap Membuat Aplikasi Multi-Bahasa

Bayangkan kamu sedang mengembangkan aplikasi Laravel untuk sebuah startup yang ingin merambah pasar global.
Hari ini pengguna aplikasi kamu berasal dari Indonesia, besok mungkin dari Jepang, dan minggu depan bisa saja dari Amerika.

Masalahnya, bagaimana caranya membuat satu aplikasi Laravel bisa menampilkan bahasa yang berbeda sesuai dengan penggunanya β€” tanpa membuat project terpisah untuk setiap bahasa?

Jawabannya ada pada Laravel Localization.


Apa Itu Laravel Localization?

Localization atau sering disingkat l10n adalah fitur bawaan Laravel yang memungkinkan kita menerjemahkan teks, label, dan pesan aplikasi ke berbagai bahasa.

Secara default, Laravel menggunakan bahasa Inggris. Tapi dengan menambahkan beberapa file konfigurasi, kamu bisa membuat aplikasi mendukung banyak bahasa seperti Indonesia, Jepang, Jerman, atau lainnya.


Menyiapkan Localization di Laravel

Mari kita mulai dari langkah paling dasar.

1. Atur Bahasa Default

Buka file config/app.php dan ubah konfigurasi berikut:

'locale' => 'id', // ganti 'id' jika ingin bahasa Indonesia sebagai default

Kalau dibiarkan en, maka bahasa default aplikasi akan tetap bahasa Inggris.


2. Struktur Folder Bahasa

Laravel menyimpan semua terjemahan di folder resources/lang/.
Setiap bahasa punya folder sendiri:

resources/lang/
β”œβ”€β”€ en/
β”‚   └── messages.php
β”œβ”€β”€ id/
β”‚   └── messages.php

Setiap file di dalam folder berisi array teks yang akan diterjemahkan.


3. Contoh File Terjemahan

Misalnya kita membuat file messages.php untuk bahasa Inggris dan Indonesia:

resources/lang/en/messages.php

return [
    'welcome' => 'Welcome to our website!',
    'login'   => 'Login',
];

resources/lang/id/messages.php

return [
    'welcome' => 'Selamat datang di situs kami!',
    'login'   => 'Masuk',
];

4. Cara Menampilkan Teks Terjemahan di Blade

Laravel menyediakan dua cara mudah untuk memanggil teks terjemahan:

{{ __('messages.welcome') }}

Atau:

@lang('messages.login')

Hasilnya akan otomatis menyesuaikan bahasa yang sedang digunakan aplikasi.


Mengatur Bahasa Secara Dinamis

Bayangkan kamu punya aplikasi e-commerce dan penggunanya berasal dari berbagai negara. Tentu mereka ingin membaca aplikasi dalam bahasa mereka sendiri.

Laravel memungkinkan kita mengubah bahasa secara dinamis, misalnya lewat tombol, URL, atau preferensi pengguna.


1. Mengatur Locale Secara Langsung

Kalau hanya ingin mengubah bahasa sementara, cukup gunakan:

App::setLocale('id');

Tapi cara ini kurang fleksibel kalau aplikasimu punya banyak pengguna.
Lebih baik gunakan middleware agar bahasa tersimpan per sesi pengguna.


2. Membuat Middleware untuk Bahasa

Buat middleware baru:

php artisan make:middleware SetLocale

Lalu isi dengan logika berikut:

public function handle($request, Closure $next)
{
    $locale = session('locale', config('app.locale'));
    app()->setLocale($locale);

    return $next($request);
}

Daftarkan middleware ini di app/Http/Kernel.php:

protected $middlewareGroups = [
    'web' => [
        // middleware bawaan Laravel
        \App\Http\Middleware\SetLocale::class,
    ],
];

3. Mengubah Bahasa Melalui URL

Salah satu cara termudah adalah membuat route untuk ganti bahasa:

Route::get('/lang/{locale}', function ($locale) {
    session(['locale' => $locale]);
    return redirect()->back();
});

Kemudian tambahkan tombol atau link di Blade:

<a href="{{ url('/lang/en') }}">English</a>
<a href="{{ url('/lang/id') }}">Indonesia</a>

Setiap kali pengguna memilih bahasa, aplikasi akan otomatis menyesuaikan.


Tips Lanjutan untuk Localization

1. Pisahkan File Per Fitur

Daripada menaruh semua teks dalam satu file besar, sebaiknya pisahkan berdasarkan fitur:

resources/lang/en/
β”œβ”€β”€ auth.php
β”œβ”€β”€ dashboard.php
β”œβ”€β”€ messages.php

Struktur seperti ini akan memudahkan pengelolaan teks jika aplikasi semakin besar.


2. Menggunakan Parameter Dinamis

Kadang, kita butuh menampilkan teks yang berbeda untuk setiap pengguna.
Misalnya:

// messages.php
'welcome_user' => 'Welcome, :name!',

Lalu di Blade:

{{ __('messages.welcome_user', ['name' => 'Fadil']) }}

Laravel akan otomatis mengganti :name dengan nama pengguna.


Kapan Harus Menggunakan Localization?

Laravel Localization cocok dipakai kalau aplikasi kamu:

  • Menargetkan pengguna dari berbagai negara

  • Membutuhkan UI multi-bahasa

  • Digunakan untuk produk SaaS atau aplikasi global

Dengan fitur ini, satu codebase cukup untuk mendukung berbagai bahasa.


Kesimpulan

Fitur Localization di Laravel membuat aplikasi lebih ramah pengguna dan siap digunakan di berbagai negara.
Kamu tidak perlu plugin tambahan atau library eksternal, cukup memanfaatkan fitur bawaan Laravel.

Langkahnya sederhana:

  1. Buat folder bahasa di resources/lang/.

  2. Tambahkan file terjemahan sesuai kebutuhan.

  3. Tampilkan teks menggunakan __() atau @lang().

  4. Gunakan middleware atau session untuk mengganti bahasa per pengguna.

Dengan pendekatan ini, aplikasi Laravel kamu akan terasa lebih personal, user-friendly, dan siap go internasional.

πŸ’¬ Komentar

Yanto
03/09/25, 05.23

Im interested

Zayn
03/09/25, 02.55

Thanks bang πŸ™