• Jadilah orang yang sesederhana mungkin yang kamu bisa
  • Jadilah orang yang sesederhana mungkin yang kamu bisa
  • Jadilah orang yang sesederhana mungkin yang kamu bisa
  • Jadilah orang yang sesederhana mungkin yang kamu bisa

Search

Loading...

Implementasi MultiLanguage di CodeIgniter

Dalam tutorial kali ini saya akan menjelaskan bagaimana membuat multilanguage di projek kita menggunakan Framework CodeIgniter. Jadi ceritanya kemarin saya disuruh belajar CodeIgniter untuk membuat multilanguage di projek yang sudah dibuat sebelumnya. Sudah lama banget nggak ngoding pakai PHP, jadi rada canggung juga kalau disuruh ngoding pakai PHP. Hehe

Beruntung CodeIgniter sudah menyediakan fitur untuk multilanguage, jadi kita bisa dengan mudah membuat fitur tersebut, Tinggal setting dan koding sedikit, selesai deh. Caranya bagaimana? Simak tutorial berikut sampai selesai:

1. Berikut struktur folder dari Projek CodeIgniter, jadi untuk membuat multilanguage kita cuman men-setting 4 folder penting di dalam folder application:

Struktur folder di CodeIgniter

2. Klik di folder application, nanti akan keluar semua folder seperti dibawah ini (yang akan kita setting adalah folder yang di highlight merah):


3. Pertama: Folder application/config/ (untuk meng-enable Hooks)
Buka folder config dan cari config.php dan cari $config['enable_hooks'] dan ganti FALSE menjadi TRUE

4. Kedua: Masih di dalam folder application/config/
Cari hooks.php selanjutnya copy-paste kodingan dibawah ini (untuk mendefinisikan Hook-nya):

$hook['post_controller_constructor'] = array(
    'class'    => 'LanguageLoader',
    'function' => 'initialize',
    'filename' => 'LanguageLoader.php',
    'filepath' => 'hooks'
);

5. Selanjutnya buat file LanguageLoader.php dan buat kelas LanguageLoader di application/hooks/ kodingannya seperti dibawah:

<?php
class LanguageLoader
{
    function initialize() {
        $ci =& get_instance();
        $ci->load->helper('language');
        $siteLang = $ci->session->userdata('site_lang');
        if ($siteLang) {
            $ci->lang->load('message',$siteLang);
        } else {
            $ci->lang->load('message','english');
        }
    }
}


6. Sebelum membuat kodingan untuk switch bahasanya, kita harus pastikan kalau settingan application/config/autoload.php seperti dibawah: (Untuk men-load session library dan URL helper)

$autoload['libraries'] = array('session');
$autoload['helper'] = array('url');

7. Selanjutnya buat file LanguageSwitcher.php di application/controllers/ dan copy-paste kodingan dibawah ini:

<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
class LanguageSwitcher extends CI_Controller
{
    public function __construct() {
        parent::__construct();    
    }

    function switchLang($language = "") {
       
        $language = ($language != "") ? $language : "english";
        $this->session->set_userdata('site_lang', $language);
       
        redirect($_SERVER['HTTP_REFERER']);
       
    }
}

8. Nah, terakhir di folder application/language/ buat folder bahasa yang mau kita buat. Misal disini saya membuat multilanguage hanya untuk 2 bahasa saja, yaitu bahasa Indonesia dan Inggris (bisa dibuat banyak).

Di dalam folder language

Masing-masing di dalam folder tersebut (english dan indo), buat file message_lang.php dan isinya contohnya seperti dibawah:

- Di application/language/english/message_lang.php

<?php
$lang["menu_test"] = "Test";

- Di application/language/indo/message_lang.php

<?php
$lang["menu_test"] = "Testing";

Poin pentingnya adalah kita harus membuat ID contoh "menu_test" yang sama antara bahasa Inggris dan Indo supaya aplikasi bisa tahu kalau kita pilih bahasa inggris maka akan ditampilkan itu, dan kalau Indonesia akan ditampilkan satunya lagi.

9. Terakhir, di Folder application/view/ tambahkan dropdown berikut untuk mengubah bahasanya:

<select onchange="javascript:window.location.href='<?php echo base_url(); ?>LanguageSwitcher/switchLang/'+this.value;">
<option value="english" <?php if($this->session->userdata('site_lang') == 'english') echo 'selected="selected"'; ?>>English</option>
<option value="indo" <?php if($this->session->userdata('site_lang') == 'indo') echo 'selected="selected"'; ?>>Indonesia</option>
</select>
<p><?php echo $this->lang->line('menu_test'); ?></p>

NB: Sengaja saya selipkan <p><?php echo $this->lang->line('menu_test'); ?></p> diatas untuk mengetes apakah yang kita buat sudah benar atau belum.

Untuk multilanguage-nya:

Kalau ingin membuat multilanguage di View:
<p><?php echo $this->lang->line('menu_test'); ?></p>

Kalau ingin membuat multilanguage di Controller:
$this->lang->line('menu_test')

Sekian dan Terima gaji.

Source: http://www.codexworld.com/


Related Post



22 comments:

  1. Artikel yang sangat berkualitas. Update terus ya gan dan sukses selalu ^^
    Jangan lupa untuk kunjungi Website kami yaa di www.agenpoker.biz

    Agen Poker
    Agen Poker Online
    Bandar Domino Online
    Judi Poker
    Agen Capsa Susun Online
    Agen Poker Domino

    ReplyDelete
  2. Artikel yang sangat Berkualitas dan bermanfaat.. Update terus ya dan salam sukses Gan!
    Kunjungi website kami ya di www.agenpoker.biz

    Agen Poker
    Agen Poker Online
    Bandar Domino Online
    Judi Poker
    Agen Capsa Susun Online
    Agen Poker Domino

    ReplyDelete
  3. Artikel yang sangat Berkualitas dan bermanfaat.. Update terus ya dan salam sukses Gan!
    Kunjungi website kami ya di www.agenpoker.biz

    Agen Poker
    Agen Poker Online
    Bandar Domino Online
    Judi Poker
    Agen Capsa Susun Online
    Agen Poker Domino

    ReplyDelete
  4. Artikel yang sangat Berkualitas dan bermanfaat.. Update terus ya dan salam sukses Gan!
    Kunjungi website kami ya di www.agenpoker.biz

    Agen Poker
    Agen Poker Online
    Bandar Domino Online
    Judi Poker
    Agen Capsa Susun Online
    Agen Poker Domino

    ReplyDelete
  5. Artikel yang sangat Berkualitas dan bermanfaat.. Update terus ya dan salam sukses Gan!
    Kunjungi website kami ya di www.agenpoker.biz

    Agen Poker
    Agen Poker Online
    Bandar Domino Online
    Judi Poker
    Agen Capsa Susun Online
    Agen Poker Domino

    ReplyDelete
  6. Artikel yang sangat Bagus dan Bermanfaat.. Update terus dan sukses selalu ya Gan

    Agen Poker
    agen domino indonesia
    bandar ceme indonesia
    game capsa online
    blackjack online indonesia


    Sumber : SalamPoker

    ReplyDelete
  7. Artikel yang sangat Bagus dan Bermanfaat.. Update terus dan sukses selalu ya Gan

    Agen Poker
    agen domino indonesia
    bandar ceme indonesia
    game capsa online
    blackjack online indonesia

    Sumber : SalamPoker

    ReplyDelete
  8. Artikel yang sangat berkualitas.. Update terus dan sukses selalu ya Gan
    Kunjungi website kami ya di www.miyabipoker.net

    Agen Poker Terbaik
    Bandar Poker Indonesia
    Agen Domino
    Agen Ceme Online
    Judi Poker Android

    ReplyDelete
  9. Artikel yang sangat bermanfaat dan berkualitas gann.. Update terus dan sukses selalu yaa boss :D
    Kunjungi website kami ya di www.pokershinchan.com

    Agen Poker
    Agen Poker Online
    Poker Online Indonesia
    Judi Poker Android
    Agen Poker Terbaik

    ReplyDelete
  10. Artikel yang sangat berkualitas.. Update terus dan sukses selalu ya Gan
    Kunjungi website kami ya di www.miyabipoker.net

    Agen Poker Terbaik
    Bandar Poker Indonesia
    Agen Domino
    Agen Ceme Online
    Judi Poker Android

    ReplyDelete
  11. Artikel yang sangat bermanfaat dan berkualitas gann.. Update terus dan sukses selalu yaa boss :D
    Kunjungi website kami ya di www.pokershinchan.com

    Agen Poker
    Agen Poker Online
    Poker Online Indonesia
    Judi Poker Android
    Agen Poker Terbaik

    ReplyDelete
  12. ayo gabung bersama kami hanya di SBOBETPK
    Agen Poker

    ReplyDelete
  13. Ayo bergabung bersama kami hanya di sbobetpk dan dapatkan bonusnya!!!
    klik di sini Agen Poker

    ReplyDelete

Copyright © 2015 priawadi.com All Rights Reserved.