Multilanguage dalam CodeIgniter Versi 2

Contoh Kasus:

Saya diminta oleh sebuah software house untuk membuat aplikasi yang mendukung multilanguage.

Asumsi Saya:

Saya akan membuat aplikasi yang mendukung 2 bahasa, yaitu bahasa Inggris dan bahasa Indonesia.

Pertanyaan:

Bagaimana membuatnya … ?

Jawaban:

Saya akan membuat translasi dari form validation CodeIgniter.

Ikutilah langkah-langkah dibawah ini:

Pembuatan file Language

Bahasa default CodeIgniter adalah bahasa Inggris jadi kita tidak perlu membuatnya lagi.

Buatlah satu folder bernama indonesia dalam file application/language.

Lalu buatlah satu file form_validation_lang.php yang berisi kode dibawah ini:

<?php 

$lang[‘required’] = “Field %s dibutuhkan.”;

$lang[‘isset’] = “Field %s harus mempunyai nilai.”;

$lang[‘valid_email’] = “Field %s harus berisi alamat email yang benar.”;

$lang[‘valid_emails’] = “Field %s harus berisi semua alamat email yang valid.”;

$lang[‘valid_url’] = “Field %s harus berisi must url yang valid.”;

$lang[‘valid_ip’] = “Field %s harus berisi IP yang valid.”;

$lang[‘min_length’] = “Field %s harus berisi sekurang-kurangnya %s karakter.”;

$lang[‘max_length’] = “Field %s tidak boleh melebihi %s karakter.”;

$lang[‘exact_length’] = “Field %s panjangnya harus %s karakter.”;

$lang[‘alpha’] = “Field %s hanya boleh berisi karakter alphabetical.”;

$lang[‘alpha_numeric’] = “Field %s hanya boleh berisi karakter alpha-numeric.”;

$lang[‘alpha_dash’] = “Field %s hanya boleh berisi karakter alpha-numeric, garis bawah dan dash.”;

$lang[‘numeric’] = “Field %s harus berisi angka.”;

$lang[‘is_numeric’] = “Field %s harus berisi karakter angka.”;

$lang[‘integer’] = “Field %s harus berisi integer.”;

$lang[‘regex_match’] = “Field %s formatnya belum benar.”;

$lang[‘matches’] = “Field %s tidak match dengan field %s.”;

$lang[‘is_natural’] = “Field %s harus berisi hanya angka positif.”;

$lang[‘is_natural_no_zero’] = “Field %s harus berisi angka yang lebih besar dari nol.”;

Pembuatan File View

Buatlah satu file view bernama bahasa.php seperti dibawah ini:

<script type=”text/javascript”> 

function GantiBahasa(nilai){

$.post(“<?php echo site_url(‘bahasa/gantiBahasa’);?>”, {data:nilai} );

}

</script>

<?php

$bendera_ina=base_url().”images/bendera/Indonezia.png”; $bendera_eng=base_url().”images/bendera/England.png”;

echo  “<img src=$bendera_ina alt=’Indonesia’ onClick=GantiBahasa(‘ina’)>”;

echo   “<img src=$bendera_eng alt=’English’ onClick=GantiBahasa(‘eng’)>”;

?>

Hasil:

Pembuatan Controller

Buatlah satu controller bernama bahasa.php dengan isi seperti dibawah ini:

<?php defined(‘BASEPATH’) OR exit(‘No direct script access allowed’); 

 

class Bahasa extends CI_Controller{

function gantiBahasa(){

$this->load->library(‘ganti_bahasa’);

$bahasa=$_POST[‘data’];

 

if($bahasa==’ina’){

$this->ganti_bahasa->ganti_ina();

}else{

$this->ganti_bahasa->ganti_english();

}

 

}

}

Pembuatan Library

Buatlah satu library bernama Ganti_bahasa.php dengan isi seperti dibawah ini:

<?php  if (!defined(‘BASEPATH’)) exit(‘No direct script access allowed’); 

class Ganti_bahasa{

function Ganti_bahasa() {

$this->ci =& get_instance();

}

function ganti_ina(){

$ganti[‘bahasa’]=’indonesia’;

$this->ci->config->set_item(‘language’,’indonesia’);

$this->ci->session->set_userdata($ganti);

}

function ganti_english(){

$this->ci->session->unset_userdata(‘bahasa’);

}

}

Keterangan:

  • $this->ci->config->set_item(‘language’,’indonesia’), kode ini akan mengganti $config[‘language’]=’indonesia’ pada saat skrip ini dijalankan, oleh karena itu kita perlu membuat session agar kita dapat mengganti $config[‘language’] pada semua halaman.
  • $this->ci->session->set_userdata($ganti), kode ini digunakan untuk membuat session ‘bahasa’.

Pengesetan Bahasa di Setiap Controller

Pada setiap controller masukkan kode seperti dibawah ini:

function __construct(){ 

if($this->session->userdata(‘bahasa’)){

$this->config->set_item(‘language’, ‘indonesia’);

}

}

Keterangan:

  • if($this->session->userdata(‘bahasa’)), kode ini berarti jika session ‘bahasa’ itu ada.
  • $this->config->set_item(‘language’, ‘indonesia’), kode ini berarti kita merubah isi dari $config[‘language’] menjadi ‘indonesia’.

 

Jika tutorial ini bermanfaat silahkan katakan ‘Terima Kasih Fahmi Basya Kartapura‘.

You may also like...

2 Responses

  1. anjieya says:

    Mas fahmi….. tutorialnya bagus2, tapi kenapa disable click kanan n disable select content? Ehmm… klo tutorial ttg pemrograman enaknya dicopy dulu trus dilihat hasilnya terus dipahami. itu menurut saya, hehehe. Mas…yg namanya klo orang mau copast itu banyak cara ga cuma click kanan n disable select. bisa disave page as or inspect element. iya ga? CMIIW

  2. zahra says:

    Thanks ya mas, tutorialnya.
    Sangat membantu.

Leave a Reply

Your email address will not be published. Required fields are marked *