Joomla Ýçerik Yönetim Sisteminde (v1.x) , özellikle MySQL 5 kullanýmýnda, diðer bir çok veritabaný kullanan sistemde olduðu gibi Türkçe karakterlerin kullanýmýnda sorunlar yaþanmaktadýr.
Öncelikle hangi sistemi kullanýyor olursanýz olun, elinizdeki veritabaný yedeðinin düzgün ve sorunsuz olduðundan emin olmanýzý öneririm. Veritabanýnýzýn
MySQL charset: Latin 5
MySQL connection collation: latin5_turkish_ci
olarak ayarlanmýþ olmasý tavsiye edilir. Ama MySQL charset farklýda olsa sorun yaþamadan aþaðýdaki düzenlemelerle sonuca ulaþabilirsiniz.
Bazen önceki sunucunun ne olduðunu hatýrlamayabilir ya da farklý yapýlandýrýlmýþ bir sunucudanda geliyor olabilirsiniz. Bu durumda elinizdeki veritabaný yedeði anlamsýz karakterlerle dolu olabilir. Gokhansonmez.com’un bir önceki veritabanýnda buna dikkat etmemiþtim. Aldýðým yedekleri kullanmak istediðimde ve veritabaný yedeðini incelediðimde bir sürü garip karakterle karþýlaþtým. Sorunu önce elle karakterleri deðiþtirerek çözmeye kalktým
Elle dediysek text editörlerinin replace fonksiyonuyla. Ama sorunu çözemedim
ç ve þ harfleri en azýndan birbirine girdi. Sorunu ultraedit ile çözdüm. Veritabaný yedeðimi bu yazýlýmda açýp, File – convert kýsmýnda bir iki denemeden sonra Türkçe karakterlerim geri geldi.
Bu sadece elimdeki veritabanýný düzgün hale getirmeyi saðladý… Joomla ve diðerlerindeki sorunu gidermek için yeterli olmadý…
Joomla Türkçe Ayarlarý
Joomla Global Configuration panelinde Locale sekmesinde Country Local’de tr_TR, turkish yazmasýna raðmen karakterleriniz sorun çýkabilir. Bunun sebeplerinden bir tanesi kullandýðýnýz template sisteminin Global Configuration dosyasýndan bu bilgileri almamasý olabilir. Template’i kontrol edip aþaðýdaki satýrýn varlýðýna ya da Global Config’den doðru bilgilerin alýnmasýnda sorun olmadýðýný kontrol ediniz.
<META http-equiv=”Content-Type” content=”text/html; charset=iso-8859-9″>
Yinede sorun çözülmüyorsa, includes klasörü database.php dosyasýnda 102. satýrda yer alan
//@mysql_query(“SET NAMES ‘utf8′”, $this->_resource);
satýrýnýn hemen altýna aþaðýdaki satýrlarý ekleyip kayýt ediniz.
@mysql_query(“SET NAMES ‘latin5′”, $this->_resource);
@mysql_query(“SET CHARACTER SET latin5″, $this->_resource);
@mysql_query(“SET COLLATION_CONNECTION = ‘latin5_turkish_ci’”, $this->_resource);
Sorun büyük ihtimalle çözülecektir.
WordPress’de Türkçe sorunu
mysql ile ilgili bu tür sorunlar sadece joomla ile sýnýrlý deðil, SMF (forum yazýlýmý) ve WordPress (günlük yazýlýmý) gibi mysql eriþimi saðlayan birçok sistemde benzer sorunlar yaþanmasý olasýdýr. Hatta bu günlüðü yeni sunucuya taþýdýðýmda bende bu sorunu yaþadým ve geri dönerek, notlarýma çözüm hakkýnda birþeyler yazmaya karar verdim
WordPress’in veritabanýyla ilgili iþlemleri gerçekleþtirdiði dosya, includes klasöründe, wp-db.php olarak yer almaktadýr. Bu dosya içerisinde,
function select($db) {
if (!@mysql_select_db($db, $this->dbh)) {
$this->bail("
<h1>Can't select database</h1>
<p>We were able to connect to the database server (which means your username and password is okay) but not able to select the <code>$db</code> database.</p>
<ul>
<li>Are you sure it exists?</li>
<li>On some systems the name of your database is prefixed with your username, so it would be like username_wordpress. Could that be the problem?</li>
</ul>
<p>If you don't know how to setup a database you should <strong>contact your host</strong>. If all else fails you may find help at the <a href='http://wordpress.org/support/'>WordPress Support Forums</a>.</p>");
}
kýsmýnýn hemen alt bölümüne, aþaðýdaki satýrlarý eklemeniz yeterli olacaktýr.
mysql_query(“SET NAMES ‘latin5′”);
mysql_query(“SET CHARACTER SET latin5″);
mysql_query(“SET COLLATION_CONNECTION = ‘latin5_turkish_ci’”);
SMF Forum yazýlým ve Türkçe düzenlemesi
SMF bence oldukça baþarýlý ve güzel bir forum yazýlýmý ve birçok sitede sorunsuz kullanýyorum. Bu sistemi kullanýrkende diðerlerinde olduðu gibi Latin5 türkçe kullanýmýnda sorunlar oluþabiliyor. Bu sorunu çözmek için aþaðýdaki düzeltmeyi yapmak gerekmektedir.
SMF’yi kurduðunuz ana dizinde (root) index.php dosyasýný bulun. Bu dosyayý bir editörde açarak aþaðýdaki satýrý bulun.
// Connect to the MySQL database. if (empty($db_persist)) $db_connection = @mysql_connect($db_server, $db_user, $db_passwd); else $db_connection = @mysql_pconnect($db_server, $db_user, $db_passwd);
hemen altýna aþaðýdaki satýlarý yazýn..
mysql_query(“SET NAMES ‘latin5′”);
mysql_query(“SET CHARACTER SET latin5″);
mysql_query(“SET COLLATION_CONNECTION = ‘latin5_turkish_ci’”);
KBPublisher, yazýlýmý bilgi bankasý ya da sýkça sorulan sorular için kullanýlan bir yazýlým. Eski ücretsiz sürümlerinden birini sourceforge sitesinden indirip commodore.gen.tr’de kullanmak istediðimde Türkçe problemiyle karþýlaþtým. Internette aradým cevabýný bulamadým ama yukarýdaki düzenlemeyle onunda çözümünü buldum.
kb\admin\lib\adodb\drivers klasöründe yer alan adodb-mysql.inc.php dosyasýný açýn.
//global $ADODB_COUNTRECS;
//if($ADODB_COUNTRECS)
satýrýný bulun ve hemen altýna aþaðýdaki satýrý ekleyin.
mysql_query(“SET NAMES ‘latin5′”);
mysql_query(“SET CHARACTER SET latin5″);
mysql_query(“SET COLLATION_CONNECTION = ‘latin5_turkish_ci’”);
umarým bu düzenlemelerden sonra hiçbir sorununuz kalmaz… Kolay gelsin..
Tags: programcýlýk
-
saðol dostum. 5 saattir uðrasýyordum…….

2 comments
Comments feed for this article
Trackback link: http://www.gokhansonmez.com/2007/27/joomla-turkce-sorunu/trackback/