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.
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.
tulisannya sangat bermanfaat min, terimakasih
ReplyDeleteok siap gan, terima kasih telah berkunjung :)
Delete