Ketika diminta membuat web site dengan struktur menu yang dwibahasa tanpa bergantung library, framework, maupun cms tertentu saya memiliki solusi sederhana yaitu dengan memanfaatkan variable constant PHP dengan bantuan fungsi define(); dan memanfaatkan session untuk menyimpan variable languagenya.

Misalnya kasusnya seperti berikut ini:

Struktur menu web terdiri dari: Home, About Me, News, Contact, Download

Kita ingin struktur menu tersebut tampil juga dalam bahasa indonesia bila link bahasa indonesia diklik,berikut previewnya.

English | Indonesian

Home | About Me | Contact | News | Download

Beberapa cara yang saya lakukan antara lain:

  • membuat file utama yang menampung struktur menu tersebut misalnya “topmenu.php
  • membuat file language (en.php dan id.php) untuk menampung variable constant untuk menu.
  • include fileĀ  language ke “index.php”, tentunya dengan memberikan kondisi file language yang mana yang harus diinclude

Berikut kode file “topmenu.php”

<? include "langsession.php";?>

<!-- main menu -->
<a href="<?=$_SERVER['PHP_SELF']?>?lang=en"><?=ENG?></a> |
<a href="<?=$_SERVER['PHP_SELF']?>?lang=id"><?=ID?></a><br /><br />

<a href="#"><?=HOME?></a> | <a href="#"><?=ABOUT?></a> |
<a href="#"><?=CONTACT?></a>  | <a href="#"><?=NEWS?></a> |
<a href="#"><?=DOWNLOAD?></a>

Untuk file en.php

<?
//language menu
define(ENG,"English");
define(ID,"Indonesian");
//main menu
define(HOME,"Home");
define(ABOUT,"About Me");
define(CONTACT,"Contact");
define(NEWS,"News");
define(DOWNLOAD,"Download");

?>

Untuk file id.php

<?
//language menu
define(ENG,"Bahasa Inggris");
define(ID,"Bahasa Indonesia");
//main menu
define(HOME,"Beranda");
define(ABOUT,"Tentang Saya");
define(CONTACT,"Kontak");
define(NEWS,"Berita");
define(DOWNLOAD,"Unduh");

?>

Satu kode lagi yang menjadi triger semuanya bekerja yaitu langsession.php

<?
session_start();

if(empty($_SESSION['lang']) ){
	$_SESSION['lang']='en';
}else if(isset($_REQUEST['lang'])){
	$_SESSION['lang']=$_REQUEST['lang'];
}

switch($_SESSION['lang']){
	case('en'):
		include "lang/en.php";
	break;
	case('id'):
		include "lang/id.php";
	break;
	default:
		include "lang/en.php";
	break;
}

?>

Demo : Demo Web Dua Bahasa

Dowload Code: Code Web Dua Bahasa

Related posts:

  1. Codeigniter 1.7.2 system language bahasa indonesia