Kamis, 12 Juli 2012

Membuat File Language di CodeIgniter

Buat apa sih bikin file language di CI?
Buat apa ya? gue juga bingung. Eeemmm, misalkan gini deh, kita punya sebuah website dimana website kita default language-nya english, lalu kita ingin mengubahnya menjadi bahasa indonesia.
Nah dari pada nge-ganti tuh bahasa dari awal, mending pake cara ini biar gampang.
Disini gue mau bikin sebuah halaman untuk buku tamu yang mempunyai 2 bahasa, Indonesia dan Inggris.
Pertama buat folder tambahan dengan nama indonesia pada directory application\language (sebelumnya sudah ada folder english di dalam directory tersebut)
Lalu setelah itu buat file bukutamu_lang.php di dalam folder indonesia (application\language\indonesia).

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

$lang['title'] = 'Buku Tamu';
$lang['field1'] = 'Nama';
$lang['field2'] = 'Email';
$lang['field3'] = 'Website';
$lang['field4'] = 'Komentar';
$lang['error_field1'] = 'Kolom nama harus diisi';
$lang['error_field2'] = 'Kolom email harus diisi';
$lang['error_field4'] = 'Kolom komentar harus diisi';


Lalu buat juga guestbook_lang.php di dalam folder english

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

$lang['title'] = 'Guest Book';
$lang['field1'] = 'Name';
$lang['field2'] = 'Email';
$lang['field3'] = 'Website';
$lang['field4'] = 'Comment';
$lang['error_field1'] = 'Column name must be filled';
$lang['error_field2'] = 'Column email must be filled';
$lang['error_field4'] = 'Column comment must be filled';


Oh iya, dianjurkan untuk mempersingkat URL-nya agar lebih enak dilihat dan lebih ringkas, bisa dilihat di sini Kalau mau memakai bahasa Indonesia, maka harus di set di file config.php baris 72.
Ganti 'english' menjadi 'indonesia'
Oke lanjut untuk membuat controller-nya.

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

class Multilanguage extends CI_Controller {

function __construct()
{
parent::__construct();
$this->load->language('bukutamu');
}

function index()
{
$this->load->view('bukutamu');
}

function proses()
{
$name = $this->input->post('name');
$email = $this->input->post('email');
$website = $this->input->post('website');
$comment = $this->input->post('comment');

if ($name == '') {
echo "<script type=\"text/javascript\">alert('".$this->lang->line('error_field1')."');
window.location = \"".base_url()."multilanguage\"</script>";
} else if ($email == '') {
echo "<script type=\"text/javascript\">alert('".$this->lang->line('error_field2')."');
window.location = \"".base_url()."multilanguage\"</script>";
} else if ($comment == '') {
echo "<script type=\"text/javascript\">alert('".$this->lang->line('error_field4')."');
window.location = \"".base_url()."multilanguage\"</script>";
} else {
echo "<script type=\"text/javascript\">alert('".$this->lang->line('success')."');
window.location = \"".base_url()."multilanguage\"</script>";
}
}

}

/* End of file multilanguage.php */
/* Location: ./application/controllers/multilanguage.php */


Simpan dengan nama multilanguage.php
Lalu buat view-nya

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Blog Willy - Multilanguage</title>
</head>
<body>
<h1><?=$this->lang->line('title');?></h1>
<form action="<?=base_url();?>multilanguage/proses" method="post">
<table border="1" cellpadding="0" cellspacing="0" width="600">
<tr>
<td width="150"><?=$this->lang->line('field1');?></td>
<td><input type="text" size="20" name="name"></td>
</tr>
<tr>
<td><?=$this->lang->line('field2');?></td>
<td><input type="text" size="20" name="email"></td>
</tr>
<tr>
<td><?=$this->lang->line('field3');?></td>
<td><input type="text" size="20" name="website"></td>
</tr>
<tr>
<td><?=$this->lang->line('field4');?></td>
<td><textarea rows="5" cols="45" name="comment"></textarea></td>
</tr>
<tr><td>&nbsp;</td><td><input type="submit" value="submit"></td><tr>
</table>
</form>
</body>
</html>


Simpan dengan nama bukutamu.php
Sekarang tinggal jalankan di browser http://localhost/CodeIgniter_2.1.0/multilanguage
Jika ingin mengganti menjadi bahasa Inggris maka edit dahulu file config.php pada baris 72, ubah yang tadinya 'indonesia' menjadi 'english'
Setelah itu ganti $this->load->language('bukutamu'); menjadi $this->load->language('guestbook');

Catatan Untuk penamaan file language harus diakhiri dengan '_lang' (tanpa tanda kutip), contoh namafile_lang.php Akan tetapi untuk me-load namafile_lang.php cukup ditulis dengan namafile (tanpa _lang.php)

2 komentar: