Setup Menus in Admin Panel

Mempelajari Konsep Website Multi Bahasa Dengan PHP

Mempelajari Konsep Website Multi Bahasa Dengan PHP

Mempelajari Konsep Website Multi Bahasa Dengan PHP – Sudah banyak website diluar sana yang menggunakan dua atau lebih  bahasa atau bisa disebut dengan multi-language website. Banyak faktor yang memaksa kita untuk menggunakan beberapa bahasa dalam satu website contoh salah satunya adalah toko online yang tersedia di beberapa negara. Sekarang, kita akan mencoba untuk memahami konsep dasar atau konsep sederhana dari website multi bahasa itu sendiri.

Konsep dari website multi bahasa itu sendiri sangat mudah dipelajari. Ada beberapa tahapan membuat website dengan multi bahasa salah satunya, kita hanya perlu mengubah kebiasaan menulis teks pada konten/Elemen HTML menjadi sebuah variable dan variable tersebut di kumpulkan dalam satu file. Belum paham? oke santai. Contohnya kita ingin menulikan tulisan “Hai, selamat datang di website kami”.

Berikut contoh penulisan pada umumnya.

<p>Hai, selamat datang di website kami</p>

Maka diubah menjadi.

<p><?php echo $lang_selamat_datang; ?></p>

Lah? variable $lang_selamat_datangini dari mana? nah disinilah perbedaan dasarnya. Ketika kita menuliskan teks pada konten dengan cara langsung maka, pada konsep multi bahasa ini kita harus menulisnya didalam variable kemudian variable tersebut disimpan didalam sebuah file yang dimana file tersebut berisi variable teks lainnya dengan bahasa yang sama. Bingung? ya pasti. Contohnya saja kita akan membuat konten dengan bahasa Indonesia maka, kita buat satu buah file misal dengan nama bahasa_indonesia.php didalam file ini nantinya akan diisi variable-variable dengan nilai bahasa Indonesia.

Contoh file bahasa_indonesia.php

<?php
$lang_judul = "Beranda";
$lang_selamat_datang = "Hai, selamat datang di website kami";
$lang_menu_home = "Beranda";
$lang_menu_profile = "Profil";
$lang_menu_contact = "Kontak";
?>

dan kemudian kita akan membuat halaman Home dengan nama index.php. Biasanya kita menulis langsung teks pada konten seperti berikut.

<!DOCTYPE html>
<html>
  <head>
    <title>Beranda</title>
  </head>

  <body>
    <nav>
      <ul>
        <li><a href="#">Beranda</a></li>
        <li><a href="#">Profil</a></li>
        <li><a href="#">Contact</a></li>
      </ul>
    </nav>

    <p>
      Hai, selamat datang di website kami
    </p>
  </body>
</html>

maka ubah teks biasa diatas menjadi variable yang sudah kita buat di file sebelumnya yaitu bahasa_indonesia.php dan include file bahasa_indonesia.php kedalam file index.php.

<?php include "bahasa_indonesia.php"; ?>
<!DOCTYPE html>
<html>
  <head>
    <title><?php echo $lang_judul; ?></title>
  </head>

  <body>
    <nav>
      <ul>
        <li><a href="#"><?php echo $lang_menu_home; ?></a></li>
        <li><a href="#"><?php echo $lang_menu_profile; ?></a></li>
        <li><a href="#"><?php echo $lang_menu_contact; ?></a></li>
      </ul>
    </nav>

    <p>
      <?php echo $lang_selamat_datang; ?>
    </p>
  </body>
</html>

Sampai sini apa kamu sudah paham? Baik kita lanjutkan. Selanjutnya kita buat file yang berisi bahasa inggris dan beri nama bahasa_inggris.php. Dan ingat isi dari file bahasa_inggris.php ini sama dengan file bahasa_indonesia.php hanya saja yang berbeda ialah nilai dari variable yang ada. Jadi, jangan mengubah nama variable nya tetapi ubah nilai dari variable nya kedalam bahasa inggris. Contoh:

<?php
$lang_judul = "Home";
$lang_selamat_datang = "Hi, welcome to our website";
$lang_menu_home = "Home";
$lang_menu_profile = "Profile";
$lang_menu_contact = "Contact";
?>

Sudah jelas perbedaanya? Ya! yang berubah adalah nilai/isi dari variable nya namun nama dari variable tetap sama seperti dengan file bahasa_indonesia.php. Nah, sekarang untuk merubah file index.php kedalam bahasa inggris maka include file bahasa_inggris.php kedalam file index.php.

<?php include "bahasa_inggris.php"; ?>
<!DOCTYPE html>
<html>
  <head>
    <title><?php echo $lang_judul; ?></title>
  </head>

  <body>
    <nav>
      <ul>
        <li><a href="#"><?php echo $lang_menu_home; ?></a></li>
        <li><a href="#"><?php echo $lang_menu_profile; ?></a></li>
        <li><a href="#"><?php echo $lang_menu_contact; ?></a></li>
      </ul>
    </nav>

    <p>
      <?php echo $lang_selamat_datang; ?>
    </p>
  </body>
</html>

Maka sekarang website akan berubah menjadi bahasa inggris. Berikutnya, bagaimana mengubah bahasa secara dinamis atau mengubah bahasa pada browser tanpa harus mengubah file index.php secara manual? Tentu ini hal yang sangat penting. Untuk melakukannya cukup sederhana kita akan menggunakan session untuk menyimpan bahasa yang sedang digunakan saat ini. Contoh:

<?php
// memulai sesi
session_start();
// bahasa default website
$default_lang = 'bahasa_indonesia';

// jika user merubah bahasa
if($_GET['lang']) {
  // ubah bahasa sesuai keinginan user
  $_SESSION['lang'] = $_GET['lang'];
  // kembalikan ke halaman index.php
  header("Location: index.php");
}

// jika tidak ada bahasa terdeteksi
if(!$_SESSION['lang']) {
  // atur bahasa ke bahasa default
  $_SESSION['lang'] = $default_lang;
}

// masukan file bahasa yang sedang aktif
include $_SESSION['lang'] . '.php';
?>

<!DOCTYPE html>
<html>
  <head>
    <title><?php echo $lang_judul; ?></title>
  </head>
  <body>
    <nav>
      <ul>
        <li><a href="#"><?php echo $lang_menu_home; ?></a></li>
        <li><a href="#"><?php echo $lang_menu_profile; ?></a></li>
        <li><a href="#"><?php echo $lang_menu_contact; ?></a></li>
      </ul>
    </nav>
    <p>
      <?php echo $lang_selamat_datang; ?>
    </p>
  </body>
</html>
p

Cara merubah bahasa cukup sederhana, tambahkan parameter ?lang={nama_file_bahasa} pada address bar maka bahasa akan berubah sesuai permintaan. Contoh: ?lang=bahasa_indonesia agar lebih mudah lagi kamu bisa membuat 2 buah link untuk bahasa Indonesia dan bahasa Inggris dan arahkan ke URL tersebut.

<a href="?lang=bahasa_inggris">Bahasa Inggris</a>
<a href="?lang=bahasa_indonesia">Bahasa Indonesia</a>

 Final Words

Mudah bukan membuat website multi bahasa? Cara seperti inilah yang banyak digunakan pada website dengan multi bahasa. Sebenarnya ada cara lain untuk membuat website dengan multi bahasa namun ini kelihatannya cara termudah. Semoga bermanfaat.

Digital Ocean baner
December 28, 2017
  • awenk she

    Punya saya masih ada yang error..
    kenapa yah

    Notice: Undefined index: lang in D:server5.6.31htdocsMultiple_Languagesindex.php on line 13

    • Itu hanya Notice, kok 🙂
      Jadi, kode kamu tetap berjalan hanya ada peringatan saja. Kamu bisa menyembunyikan notice-nya atau memperbaikinya dengan menggunakan fungsi isset().

      • awenk she

        OK gan, Thank You

Copyright © Kodinger 2018. Powered by Multinity

X