π Laravel Multilanguage: Panduan Lengkap Membuat Aplikasi Multi-Bahasa
π Panduan Lengkap Laravel Multilanguage (Localization)
Kalau kamu sedang membangun aplikasi Laravel yang digunakan oleh banyak orang dari berbagai negara, maka fitur multilanguage atau localization adalah jawabannya. Dengan fitur ini, kamu bisa menampilkan teks dan konten sesuai bahasa pilihan pengguna.
Bayangkan, satu aplikasi tapi bisa berbicara Bahasa Indonesia, Bahasa Inggris, bahkan Bahasa Jepang β tanpa ribet bikin project terpisah. Laravel sudah menyiapkan semua βalatβ bawaan untuk mewujudkannya.
π Apa Itu Localization di Laravel?
Localization (l10n) adalah proses menerjemahkan teks dan pesan aplikasi ke dalam berbagai bahasa. Laravel menyediakan mekanisme bawaan untuk mengatur dan mengambil terjemahan sesuai locale atau bahasa yang digunakan.
Secara default, Laravel menggunakan bahasa Inggris. Tapi tenang, kamu bisa menambah bahasa lain hanya dengan membuat folder dan file terjemahan baru.
βοΈ Langkah Dasar Konfigurasi
1. Atur Default Locale
Buka file config/app.php lalu ubah nilai locale sesuai bahasa default yang kamu mau. Misalnya, kalau ingin aplikasi default ke bahasa Indonesia:
'locale' => 'id',
2. Struktur Folder Bahasa
Laravel menyimpan semua file terjemahan di folder resources/lang/. Struktur dasarnya kira-kira seperti ini:
resources/lang/
βββ en/
β βββ messages.php
βββ id/
β βββ messages.php
Setiap folder = 1 bahasa.
Di dalamnya, kita simpan file PHP berisi array terjemahan.
3. Contoh Isi File Bahasa
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 Terjemahan di Blade
Laravel menyediakan dua cara utama untuk memanggil teks terjemahan:
{{ __('messages.welcome') }}
Atau bisa juga dengan:
@lang('messages.login')
Keduanya sama-sama valid, tinggal pilih mana yang lebih nyaman.
π Menentukan Bahasa Secara Dinamis
Kadang, pengguna ingin mengganti bahasa sesuai preferensi mereka. Laravel mendukung pengaturan locale secara dinamis.
1. Mengubah Locale Saat Runtime
Kamu bisa mengatur bahasa secara langsung lewat kode:
App::setLocale('id');
Biasanya kode ini ditempatkan di AppServiceProvider atau melalui Middleware supaya otomatis untuk setiap request.
2. Middleware Otomatis untuk Bahasa
Supaya lebih rapi, kita bisa membuat middleware khusus:
php artisan make:middleware SetLocale
Edit file app/Http/Middleware/SetLocale.php:
public function handle($request, Closure $next)
{
$locale = session('locale', config('app.locale'));
app()->setLocale($locale);
return $next($request);
}
Lalu, daftarkan middleware-nya di app/Http/Kernel.php:
protected $middlewareGroups = [
'web' => [
// middleware bawaan Laravel
\App\Http\Middleware\SetLocale::class,
],
];
Dengan cara ini, Laravel akan otomatis membaca bahasa dari session.
3. Ganti Bahasa Lewat URL
Kalau mau lebih simpel, kamu bisa membuat route untuk mengganti bahasa:
Route::get('/lang/{locale}', function ($locale) {
session(['locale' => $locale]);
return redirect()->back();
});
Lalu di Blade, tinggal tambahkan tombol untuk memilih bahasa:
<a href="{{ url('/lang/en') }}">English</a>
<a href="{{ url('/lang/id') }}">Indonesia</a>
π Tips Lanjutan
1. Pisahkan File Berdasarkan Fitur
Supaya lebih rapi, sebaiknya buat file terjemahan per fitur:
resources/lang/en/
βββ auth.php
βββ dashboard.php
βββ messages.php
2. Menggunakan Parameter dan Plural
Kadang, kita butuh menampilkan teks yang dinamis. Contohnya:
// messages.php
'welcome_user' => 'Welcome, :name!',
Di Blade:
{{ __('messages.welcome_user', ['name' => 'Rumasoreng']) }}
Laravel akan otomatis mengganti :name dengan nama pengguna.
π― Kapan Harus Menggunakan Localization?
Kebutuhan | Cocok Pakai Laravel Localization |
|---|---|
Aplikasi multi-bahasa UI | β Sangat cocok |
Set bahasa per pengguna | β Bisa pakai session/middleware |
Produk internasional / SaaS | β Mudah diterapkan |
β Kesimpulan
Laravel sudah menyediakan fitur localization bawaan.
Cukup buat folder dan file bahasa di
resources/lang.Gunakan middleware atau session untuk mengatur bahasa per pengguna.
Sangat cocok untuk aplikasi yang menargetkan pengguna global.
Dengan memanfaatkan fitur localization, kamu tidak hanya membuat aplikasi lebih user-friendly, tapi juga siap bersaing di pasar internasional.
π¬ Komentar
Im interested
Thanks bang π