Website adalah layanan yang memberikan informasi. Sayangnya karena banyaknya bahasa di dunia, informasi yang diberikan kadang tidak bisa dipahami oleh sebagian pengunjung yang menggunaka bahasa berbeda. Salah satu cara mengatasi permasalahan tersebut adalah dengan membuat website yang mendukung banyak bahasa. Cara ini bisa menggunakan Google translate atau dibuat sendiri dengan PHP. Saya sendiri lebih memilih mengguankan php, alasan utama kenapa tidak menggunakan Google Translate adalah kemampuan translatenya amburadul, kadang tidak bisa dipahami dan kadang malah mengubah makna dari informasi aslinya.

Sekenario

Dalam contoh ini, kita akan membuat website informasi tentang Anime jepang yang terdiri dari 3 bahasa (arab,indonesia,jepang) dan 3 halaman tentang Dragonball, Bleach dan Naruto. saat pertama kali membuka halaman, maka secara default, user akan dibawa ke halaman bahasa indonesia dengan artikel Dragnball. Jika user mengklik link informasi bleach dan naruto, informasi yang muncul juga berbahasa indonesia. Jika kita ingin membaca versi jepangnya, cukup klik bendera jepang dan secara otomatis link dan isi informasinya menggunakan bahasa jepang. Teknik yang kita gunakan menggunakan Session/Cokie dan Array PHP. Cookie disini digunakan untuk menyimpan seting user dibrowser. Jadi misalkan user memilih bahasa arab, lalu menutup halama web kita, kemudian user membuka halaman tersebut di Tab browser yang berbeda,maka secara otomatis halaman bahasa arablah yang akan muncul, kerenkan?

Berikut ini adalah tampilan website demonya
multibahasa

Struktur Direktori Project

berikut ini adalah struktur direktori dari project website multibahasa.

Stuktur direktori

Stuktur direktori

Secara ringkas berikut ini adalah penjelasannya
Assets
Folder aset berisi CSS dan Gambar serta icon bendera untuk masing masing bahasa
bahasa
Berisi judul dan isi artikel sesuai dengan bahasanya. misal lang.id.php berisi artikel dalam bahasa indonesia. berikut ini adalah potongan isi dari file lang.id.php

$lang = array();

$lang['TITLE_BLEACH'] = 'Bleach';
$lang['TITLE_DBZ'] = 'Dragon Ball';
$lang['TITLE_NARUTO'] = 'Naruto';

Untuk lang.ar.php dan lang.jp.php nama array dan variabelnya sama, hanya isinya yang berbeda. Untuk lebih jelas lihat di sourcecodenya.
seting.php

Berisi code untuk menset cokies di user agar seting bahasa tersimpan dibrowser. Bahasa default adalah indonesia

<?php
session_start();
header('Cache-control: private');
// IE 6 FIX
if (isSet($_GET['lang'])) {
	$lang = $_GET['lang'];

	// register the session and set the cookie
	$_SESSION['lang'] = $lang;

	setcookie("lang", $lang, time() + (3600 * 24 * 30));
} else if (isSet($_SESSION['lang'])) {
	$lang = $_SESSION['lang'];
} else if (isSet($_COOKIE['lang'])) {
	$lang = $_COOKIE['lang'];
} else {
	$lang = 'id';
}

switch ($lang) {
	case 'jp' :
		$lang_file = 'lang.jp.php';
		break;
		case 'ar' :
		$lang_file = 'lang.ar.php';
		break;
	case 'id' :
		$lang_file = 'lang.id.php';
		break;

	default :
		$lang_file = 'lang.id.php';
}

include_once 'bahasa/' . $lang_file;
?>

index.php
file utama untuk menampilkan informasi sesuai bahasa yang dipilih.

$content = '';
				
			if (!isset($_GET['pg'])) {
				$content = 'DBZ';
				$title = $lang['TITLE_DBZ'];
				$isi = $lang['CONTENT_DBZ'];
			} else {
				$content = strtoupper($_GET['pg']);
				$titleheader = "TITLE_" . $content;
				$isicontent= "CONTENT_" . $content;
			
				$title = $lang[$titleheader];
				$isi = $lang[$isicontent];

			}

Demo dan source code

seperti biasa,anda bisa mendownload source codenya disini dan mencoba demonya disini

Categories: PHP

Candra Adi Putra

Candra Adi Putra S.Kom adalah Alumni STMIK AKAKOM Yogyakarta. hubungi saya di candraadiputra (at) gmail (dot) com

15 Comments

jerry · 13 April , 2018 at 11:56 pm

malam maaf sebelumnya nama saya jerry saya dari flores NTT mas candra bisa di kontak ya ? ini no wa saya mas ( 081246182169 ) saya ada job android mas kalau bisa hub saya mas maaf menggangu

freddy sidauruk · 15 September , 2014 at 2:44 pm

Iya yang pake database donk bang ?

guzmahesa · 1 September , 2014 at 11:31 am

makasi mass tutornya sangat membantu saya,, oiya 1 lage saya mau nanya misalkan saya lage di page naruto trus kita pindah lang , pasti selalu di lempar balik ke dragonball gmna caranya biar refresh dan tetep di pake trakhir td mas ?

Saya Tidak Percaya Diri · 16 August , 2014 at 11:22 am

Mas, kenapa website ini menggunakan wp tp mas membuat tut php dan beserta cms yg mas buat… pertanyaannya apakah mas tidak percaya diri dgn kemampuan mas atau hanya tut dll hanya copas semata??

    Candra Adi Putra · 16 August , 2014 at 6:55 pm

    semua tutorial orisinil, saya buat sendiri..klo mmg ada yg copas saya minta tunjukin dong tutorial yg mana dan ksh sumber aslix….. :-)

    Desbie · 28 November , 2017 at 1:26 am

    Mas bukanya wp juga support php?

philtyphil · 5 May , 2014 at 3:55 pm

Aduh, maaf. saya rasa ini kurang efektif mas, kita jadi harus menyiapkan dulu masing-masing bahasanya dalam satu view di php nya yah ?.
Ada cara lainnya gak mas?, mungkin dengan plug-in gitu mas

akbar · 20 June , 2013 at 9:43 am

jempol deh buat semua artikelnya, apalagi tentang fitur google. banyak dapat ilmu bray

Yaufani Adam · 20 June , 2013 at 9:28 am

lanjutkan tulisan2 berkualitasnya, mas
udah saya Ctrl+D soalnya

:D

    Candra Adi Putra · 23 June , 2013 at 12:20 am

    makasih atas supportnya…

Anonymous · 8 May , 2013 at 7:31 pm

makasih mas

Anonymous · 5 May , 2013 at 6:29 pm

maaf mas.. kok programnya ada yang kurang?
makasih..

    Candra Adi Putra · 8 May , 2013 at 11:44 pm

    kurang apanya ya?

mir atunnas · 29 April , 2013 at 2:19 pm

kalo di buat nya bisa konek ke db. gmna mas?

    Candra Adi Putra · 29 April , 2013 at 2:40 pm

    belum sempet aq buat, bisa kok, insayallah kalo sempet aq buat

Comments are closed.