Skip to content Skip to sidebar Skip to footer

Membuat Translate Sederhana

Membuat Translate Sederhana

Kali ini saya ingin bagikan cara atau teknik membuat translate yang di sederhanakan dengan kode PHP. Mungkin sobat bisa kembangkan lagi kode ini untuk di terapkan di situs pribadi sobat. Apabila sudah memahami kode tersebut.

Baik saya akan langsung saja.

Dibawah ini adalah contoh struktur folder yang saya buat, mungkin sobat bisa mengikuti atau tidak.

Membuat Translate Sederhana

Dan di bawah ini adalah contoh kode pada masing masing file pada gambar di atas.

File index.php
<?php

// panggil class bahasa
require "class.language.php";

// buat objek bahasa
$language = new language();
$lang = $language->get(@$_POST['lang']);

?>

<!DOCTYPE html>
<html>
<head>
 <title>Contoh Membuat Translate Bahasa Sendiri</title>
</head>
<body>

<!-- Contoh Pemakaian System Bahasa -->
<div align="center">
    <h1> <?= $lang['h1']; ?> </h1>
    <form name="language" action="<?= $_SERVER['PHP_SELF']; ?>" method="post">
        <select onchange="document.language.submit()" onload="document.language.reload()" name="lang">
            <option value="0"><?= $lang['select-lang']; ?></option>
            <option value="ID">Indonesia</option>
            <option value="EN">English</option>
         </select>
    </form>
    <br /> <br /> 
    <a href="#" onclick="window.location.href = 'index.php'">Reload Halaman</a>
</div>

</body>
</html>

File class.language.php
<?php 

// hiddent bug error
error_reporting(0);

// starting class
class Language 
{
 /**
  * Bahasa default 
  */
 private $default = 'ID';

 /*
  * lokasi file
  */
 private $langpath = 'bahasa/';

 /**
  * fungsi auto detect bahasa yang terdapat browser
  * dan default bahasa di browser adalah english
  * alternative
  * @return bool
  */
 private function _detect() 
 {
  // bahasa default di browser (en)
  $lang_in_browser = substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2);

  // jika bahasa di browser == data di property
  if ($lang_in_browser == $this->default) // true
  {
   // mengembalikan nilai
   $this->language = strtoupper($lang_in_browser);
  }
  else // false
  {
   $this->language = strtoupper($this->default);
  }
 }

 /**
  * fungsi pengecekan file
  * @param  $language = value bisa { ID, EN, DLL }
  * @return bool
  */
 private function _check($language = null) 
 {
  $filename = $this->langpath . strtoupper($language) . "_lang.php";

  // jika file tersedia
  if(file_exists($filename)) 
  {
   return true;
  }
  else // false
  {
   return false;
  }
 } 

 /**
  * fungsi set bahasa ke browser dan data sebegai data yang di simpan sementara
  * @param  $language = value bisa { ID, EN, DLL }
  * @return bool
  */
 private function _set($language = null) 
 {
  // sesi memulai
  session_start();

  if($language)
  {
   // buat sesi bahasa
   $_SESSION['language'] = $language;
  }

  // cek jika sesi belum ada 
  if(!$_SESSION['language'])
  {
   $_SESSION['language'] = $this->default;
  }

  // cek data bahasa jika sudah di buat sesi
  // pernyataannya
  // jika nama file tersedia dengan mangacu param $_SESSION['language'] adalah nama filenya maka
        if($this->_check($_SESSION['language'])) 
        {
         // mengembalikan nilai nya
         return $_SESSION['language'];
        }
        else 
        {
         // mengembalikan ke default bahasa
         return $this->default;
        }
 } 

 /*
  * otentikasi untuk membaca file dan mendapatkanya
  * contoh pemakaian :
  * $lang = new Language($_POST['lang']);
  * $lang['key dalam array'];
  */
 public function get($language = null) 
 {
  $language = $this->_set($language);
  require $this->langpath . $language. "_lang.php";
  return $language = $lang;
 }

}

?>

Kode di bawah ini terdapat dalam folder bahasa jadi simpan kode ini di dalam folder tersebut.

File EN_lang.php
<?php

$lang = [

 'h1' => 'Welcome at Webme Studio',

 'select-lang' => 'Select Language'
];

?>

File ID_lang.php
<?php

$lang = [

 'h1' => 'Selamat Datang di Webme Studio',

 'select-lang' => 'Pilih Bahasa'
];

?>

Jika sudah disimpan pada masing masing file silahkan untuk jalankan di browser sobat semoga ini bisa bermanfaat. Dan jika ada yang di tanyakan jangan segan untuk bertanya. Terima kasih sudah berkunjung.

2 comments for "Membuat Translate Sederhana"