Tutorial Membuat Fitur Multi bahasa Pada Laravel – Pada halaman web terkadang perlu menggunakan multi bahasa untuk mempermudah pengujung untuk menjalajahi website tersebut. Untuk membuat multi bahasa pada Laravel tidaklah sulit karena fitur multi bahasa sudah disediakan dari package laravelnya, sehingga tidak perlu menginstall Thirt Party / package lagi.
Fitur multibahasa pada Laravel yaitu Localization, kita bebas untuk membuata variasi bahasa yang banyak sekalipun asalkan kata terjemahannya sudah tersedia. Konsep Multi Bahasa pada Laravel yaitu dengan membuat string text yang berbeda setiap bahasa, sehingga pemanggilannya disesuaikan dengan bahasa yang diminta.
Letak penempatan text masing-masing bahasa terletak di resource/lang/ di ikuti nama folder bahasanya, misalnya bahasa inggris boleh memberi nama “en”. Secara bawaan folder yang tersedia adalah en.
├── js
│ ├── app.js
│ ├── bootstrap.js
│ └── components
│ └── ExampleComponent.vue
├── lang
│ └── en
│ ├── auth.php
│ ├── pagination.php
│ ├── passwords.php
│ └── validation.php
├── sass
│ ├── app.scss
│ └── _variables.scss
└── views
└── welcome.blade.php
Pada susunan folder di atas terdapat 4 file yang ada pada bahasa inggris.
Oke mari kita bahas mengenai cara membuat multi bahasa pada Laravel, Kali ini saya akan memberikan contoh multi localization dengan 2 bahasa yaitu bahasa inggris dan indonesia.
Tutorial Membuat Fitur Multi bahasa Pada Laravel
Membuat Folder dan File Multi Bahasa
Langkah pertama silahkan bikin folder di folder /resource/lang, saya akan menambahkan satu bahasa lagi yaitu indonesia, maka harus bikin folder dengan nama “id” berdarkan kode negara kita.
Setelah membuaat Folder maka langkah selanjutnya kita buat filenya, kali ini saya ingin membuat file dengan nama post di resource/lang/id/post.php dan resource/lang/en/post.php
├── en
│ ├── auth.php
│ ├── pagination.php
│ ├── passwords.php
│ ├── post.php
│ └── validation.php
└── id
└── post.php
Di bawah ini merupakan text string dengan bahasa indonesia.
Resource/lang/id/post.php
1 2 3 4 5 6 7 8 9 10 11 12 | <?php return [ 'title' => 'Ini Adalah Judul', 'body' => 'Ini adalah body', 'author' => [ 'name' => 'ini adalah nama penulis', 'address' => 'ini adalah alamat penulis', ] ]; |
Di bawah ini text string dengan bahasa inggris.
Resource/lang/en/post.php
1 2 3 4 5 6 7 8 9 10 11 | <?php return [ 'title' => 'This Is Title', 'body' => 'This is body', 'author' => [ 'name' => 'This is Name For Author', 'address' => 'This is Address For Author', ] ]; |
Membuat Controller dan Route di Laravel
Langkah selanjutnya kita akan membuat controller untuk memanggil file view. Asumsikan kita udah punya file view dengan name post.blade.php. Silahkan buat controller baru dengan nama PostController.php. Di bawah ini kodingannya,
App\Http\Controllers\UserController.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | <?php namespace App\Http\Controllers; use Illuminate\Http\Request; use App; class PostController extends Controller { public function index($lang) { App::setLocale($lang); return view('post'); } } |
Penjelasan :
- Line 6, berfungsi untuk memanggil class App Localization
- Line 10, Berfungsi untuk mengatur bahasa yang ingin digunakan yang berasal dari paramer URL.
Selanjutnya kita buat routing baru dengan kode di bawah ini.
Routes\web.php
1 | Route::get('/post/{lang}', 'PostController@index'); |
Membuat View Multi Bahasa Laravel
Selanjutnya yaitu mengampilkan di halaman web dengan menggunakan view, silahkan buat view dengan nama post.blade.php dengan kode seperti di bawah ini.
Resource\Views\post.blade.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title>Post - Kodingin.com</title> </head> <body> <h1>Title : @lang('post.title')</h1> <h2>Body : @lang('post.body')</h2> <h2>Author : </h2> <ul> <li>Name : @lang('post.author.name')</li> <li>Address : @lang('post.author.address')</li> </ul> </body> </html> |
Penulisan pemanggilan text mult bahasa dengan laravel dengan format yaitu namafile di ikuti dengan tanda titik kemudian nama arraynya. Contohnya post.title. Selain menggunakan @lang anda juga bisa mengganti dengan kode trans contohnya.
1 | <h1>Title : {{ @trans('post.title') }} </h1> |
Uji Coba Laravel Multi Bahasa
Setelah semuanya kodingan sudah dirasa benar maka mari kita lakukan uji coba denngan mengakses URL /post/id dan /post/en dan lihat hasilnya

Pada Uji coba di atas udah jelas dan benar bahwa membuat multi bahasa di laravel berhasil, dimana pada browser sebelah kiri menampilkan dalam bahsa inggris dan sebelah kanan menggunakan format bahasa indonesia.
Penutup
Proses membuat fitur multi bahasa pada Laravel sudah berhasil, anda juga dapat mengembangkan dengan menggunakan metode yang berbeda , misalnya menggunakan session untuk mengatur bahasa, sehingga di URL tidak perlu ada pengambahan parameter lagi.
Oke sekian cara membuat fitur multi bahasa pada Laravel.
Semoga Bermanfaat.
Baca Juga :
- Tutorial Design Pattern Repository pada Laravel
- Kumpulan Magic Property pada Laravel dan penggunaannya
- Tutorial menggunakan Collection pada Laravel
- Tutorial menggunakan Laravel Collective pada Laravel
- Tutorial Integrasi TinyMCE dengan File Manager pada Laravel
mantap ne