Pertama-tama buat dulu tabel bahasa dan tabel translate bisa langsung copas query dibawah ini :
Saya dah sering dapet pertanyaan tentang cara membuat menu bahasa di CMS Lokomedia ini dan baru sekarang bisa saya posting tutorialnya dikarenakan baru tergerak lagi hatinya untuk mengembangkan CMS yang satu ini (gilax bahasanya) hehe.. Sebenernya fungsi dan modul yang dipakai ini pernah saya share sebelumnya diartikel saya yang berjudul Bikin Web Multi Bahasa Dengan PHP dan MySQL dan sekarang saya coba terapkan ke CMS Lokomedia, mmm... langsung aja deh ke TKP.
CREATE TABLE `bahasa` ( `nama` varchar(50) NOT NULL, `kode_bhs` varchar(5) NOT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1; CREATE TABLE `translate` ( `id` int(11) NOT NULL auto_increment, `dari` varchar(255) NOT NULL, `ke` text NOT NULL, `kode_bhs` varchar(5) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1;dan seperti biasa buka file template.php (boleh yang mana aja tapi yang saya pake disini adalah eljquery) lalu tambahkan skrip dibawah dibagian sidebar-nya atau dimana aja yang menurut kalian cocok, tapi saya anjurkan di sidebar aja biar sejalur sama tutorial ini hehe.. :mrgreen:
<h2>Menu Bahasa</h2> <div align="center" id="listsidebar"> <?php echo " <form name='form_bhs' id='form_bhs' method='post' action=''>"; $tampil=mysql_query("SELECT * FROM bahasa ORDER BY nama"); while ($r=mysql_fetch_array($tampil)){ echo '<input title="$r[nama]" name="pilbahasa" style="color: transparent; background: url('./img_bahasa/$r[kode_bhs].gif') no-repeat scroll 0% 0% transparent; border: medium none; cursor: pointer; width: 36px; height: 27px;" type="submit" value="$r[kode_bhs]" />'; } echo '<input name="url" type="hidden" value="$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]" />'; if(isset($_POST[pilbahasa])){ setcookie("lokolangs",$_POST[pilbahasa],time()+3600*24*30); //set cookie selama 30 hari header("location:http://".$_POST[url]); } ?> </div>buka juga file media.php dan tambahkan skrip include berikut :
include "config/fungsi_translate.php";jangan lupa kita buat dulu file fungsi_translate.php-nya dan simpan difolder config langsung copas skripnya.
<?php function trans($dari){ if(isset($_COOKIE[lokolangs])){ $qr = mysql_query("SELECT * FROM translate WHERE dari='$dari' AND kode_bhs='$_COOKIE[lokolangs]'"); if(mysql_num_rows($qr)>0){ $bhs = mysql_fetch_array($qr); $arti = $bhs[ke]; } else { $qrbhs = mysql_query("SELECT * FROM bahasa"); while($r=mysql_fetch_array($qrbhs)){ mysql_query("INSERT INTO translate SET dari='$dari', ke='$dari', kode_bhs='$r[kode_bhs]'"); } $arti = $dari; } } else { $arti = $dari; } return $arti; } ?>lalu buatlah folder dengan nama img_bahasa, ini untuk menyimpan gambar icon untuk masing-masing bahasa. Untuk penamaan ikonnya sendiri dianjurkan menggunakan kode bahasanya sendiri dan berekstensi .gif misal bahasa indonesia -> nama ikonnya id.gif. Dan untuk cara penggunaanya fungsinya saya akan coba pakai pada menu atas-nya saja untuk menghemat waktu dan halaman berikut contoh penggunaanya :
Buka lagi file template.php lalu cari skrip menu atasnya bisa dengan cara tekan ctrl+f lalu masukan kata kuncinya <!-- MENU --> lalu ganti skripnya jadi :
$main=mysql_query("SELECT * FROM mainmenu WHERE aktif='Y'"); while($r=mysql_fetch_array($main)){ echo "<li><a href='$r[link]'>".trans("$r[nama_menu]")."</a> <ul>"; $sub=mysql_query("SELECT * FROM submenu, mainmenu WHERE submenu.id_main=mainmenu.id_main AND submenu.id_main=$r[id_main] AND submenu.id_submain=0"); while($w=mysql_fetch_array($sub)){ echo "<li><a href='$w[link_sub]'>» ".trans("$w[nama_sub]")."</a>"; $sub2 = mysql_query("SELECT * FROM submenu WHERE id_submain=$w[id_sub] AND id_submain!=0"); if(mysql_num_rows($sub2)!=0){ echo "<ul>"; while($s=mysql_fetch_array($sub2)){ echo "<li><a href='$s[link_sub]'>» ".trans("$s[nama_sub]")."</a></li>"; } echo "</ul>"; } echo "</li>"; } echo "</ul> </li>"; }pada skrip diatas saya hanya menambahkan fungsi trans($string) pada setiap kata/menu yang akan ditranslasi.
dari <a href='$r[link]'>$r[nama_menu]</a> //Menu Utama menjadi <a href='$r[link]'>".trans("$r[nama_menu]")."</a> //Menu Utamaselanjutnya tinggal kalian yang kerjakan sendiri :D.
modul bahasa untuk halaman adminnya bisa didownload disini.
contoh ikon bahasanya bisa didownload disini : id.gif dan en.gif.
Copas
ReplyDelete