Membuat Website Multibahasa dengan PHP

multibahasa

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

Author: Candra Adi Putra

Candra Adi Putra adalah Alumni STMIK AKAKOM Yogyakarta. Like Candralab Studio Di Facebook.

13 thoughts on “Membuat Website Multibahasa dengan PHP”

  1. 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 ?

  2. 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??

  3. 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

Tinggalin komentar dong!