di CodeIgniter 4 terdapat folder Language yang memiliki fungsi untuk menaruh berbagai jenis bahasa yang nantinya digunakan dalam aplikasi
misalnya saya ingin membuat website yang memiliki fitur multi bahasa, maka folder language ini nantinya akan sering saya gunakan untuk menuliskan kumpulan kata dengan bahasa-bahasa yang dibutuhkan
katakanlah saya ingin membuat website berbahasa indonesia dan berbahasa inggirs
maka nantinya saya akan membuat folder baru dengan nama 'id dan en' yang didalam folder tersebut berisi kata yang sama artinya namun berbeda bahasanya
Praktek Menerapkan Multi Bahasa
untuk lebih jelasnya lagi kita langsung praktek saja menggunakan fitur bahasa di CI 4
praktek bahasa kali ini akan memiliki kriteria
- Membuat 1 Controller
- Membuat Support 3 Bahasa yaitu indonesia, inggris dan jepang
- Bahasa dipisah Menggunakan Segment
buat controller melalui spark command, dengan mengetikan perintah
php spark make:controller bahasa
dilanjut dengan membuka file controller bahasa yang telah dibuat kemudian ubah semua kodenya dengan kode dibawah ini
<?php
namespace App\Controllers;
use App\Controllers\BaseController;
class Bahasa extends BaseController
{
public function index($lang)
{
// apply lang
service('language')->setLocale($lang);
// show lang
echo lang('global.hello');
// enter
echo "<br/>";
// show lang with send data
echo lang('global.intro', [
'name' => 'irfan',
'live' => 'indonesia'
]);
}
}
Langkah 2 kemudian dilanjut dengan membuat route untuk membuat segment terpisah tiap bahasanya
buka file config routes yang terletak di 'app/Config/Routes.php' kemudian tambahkan kode ini setelah komentar Route Definitions
$routes->get('/id', 'Bahasa::index/id');
$routes->get('/en', 'Bahasa::index/en');
$routes->get('/jp', 'Bahasa::index/jp');
Langkah 3 lanjut dengan membuat folder tiap bahasanya yang terletak di directory 'app/Language'
silahkan buat 3 folder didalam directory tersebut dengan nama 'id, en dan jp'
Langkah 4kemudian buat file dengan nama global.php ditiap folder bahasa yang telah dibuat diatas
folder dan file akan seperti ini strukturnya
.
└── /app/
└── /Language/
├── /en/
│ └── global.php
├── /id/
│ └── global.php
└── /jp/
└── global.php
setelah itu isi file global.php yang terletak di folder id dengan kode dibawah ini
<?php
$lang['hello'] = 'halo semuanya saya sedang belajar fitur bahasa ci 4';
$lang['intro'] = 'halo nama saya {name} dan saya tinggal di {live}';
return $lang;
isi file global.php yang terletak di folder en dengan kode dibawah ini
<?php
$lang['hello'] = 'hello everyone i\'m learning ci language features 4';
$lang['intro'] = 'hallo my name is {name} and i live in {live}';
return $lang;
isi file global.php yang terletak di folder jp dengan kode dibawah ini
<?php
$lang['hello'] = 'こんにちは皆さん私はci言語機能を学んでいます4';
$lang['intro'] = 'ハロー私の名前は {name} そして私は住んでいます {live}';
return $lang;
Langkah 5 sekarang saatnya ujicoba dengan menjalankan web server melalui spark
php spark serve
buka browser dan kunjungi url
- http://localhost:8080/id
- http://localhost:8080/en
- http://localhost:8080/jp
maka kalian akan melihat perbedaan tiap bahasa saat mengakses ke 3 url diatas, terlihat seperti gambar dibawah ini