Türkçe karakterlerde problem - detaylı soru

phpBB 2.0.x dil ve MOD Dosyalarını Türkçeleştirme bölümü. Lütfen bu foruma mesaj ya da başlık göndermeden önce [url=http://www.phpbbturkey.com/about5385.html:2e3bn3ui]Türkçeleştirme forumunun kullanımı hakkında bilgi[/url:2e3bn3ui] başlığını okuyunuz.
Kilitli
Danila
Kayıtlı Kullanıcı
Mesajlar: 16
Kayıt: 28.01.2007, 16:40
İletişim:

Türkçe karakterlerde problem - detaylı soru

Mesaj gönderen Danila »

Sorunum çözüldü. Özetini buradanbulabilirsiniz:

Merhaba,

Forumunuzdaki Türkçe karakter sorunu ile ilgili tüm iletileri okudum fakat soruna çözüm bulamadım. Benim gibi birçok kişinin karşılaştığı bu soruya yeterli cevapların verilmemesi ve sorunun devam etmesi nedeniyle konuyu bir kez daha burada dile getirme gereği duydum. Cevapların daha açıklayıcı (ve tabi ki soruların da daha kapsamlı) olmasını rica ederim.

Sorun:

1. Türkçe dil paketini (phbb.com.tr ve ********** adresindeki dil paketlerinin ikisini de denedim) yükleyip sayfa başlığında veya konu başlıklarında "İ" ve “Ğ” harflerine kullandığımda "?" simgesine dönüşüyorlar. Bununla birlikte diğer Türkçe harflerinde bozulma görünmüyor.

2. Herşeyi silip forumu en baştan İngilizce olarak kurunca "İ" ve “Ğ” harfleri normal gözüküyor. (Ama forumu Türkçeleştirmem gerekiyor).

3. Hosting firmasıyla yaptığım konuşmada sunucumun Türkçe dilini ve phpBB'yi desteklediğini öğrendim.

4. Temalar klasöründeki dosyaların şifreleme (karakter seti) ayarlarını iso-8859-9 olarak düzelttim ve forumumun başlığında görünen "İ" ve “Ğ” harfleri düzeldi. Fakat yeni bir kategori ve forum açmaya çalıştığımda hem kategori/forum konusunda, hem de forum başlığındaki "İ" harfleri tekrar soru işaretlerine dönüştü ve bir daha düzelmedi.

5. Bunun üzerine forumun klasöründeki tüm dosyaları açıp kontrol ettim. Sonuç olarak iso-8859-9 ifadesinin yerleştirilebileceği ve benim de yerleştirdiğim/olduğu gibi bıraktığım dosyalar aşağıdaki gibidir:
admin / page_header_admin.php
cache / index.htm
db/ index.htm
images / index.htm
images / avatars / index.htm
images / avatars / gallery / index.htm
includes / functions.php – sayfanın başında değil, fakat kodun ilerleyen kısımlarında saklanıyor
includes / index.htm
includes / page_header.php
language / index.htm
language / lang_turkish / index.html
language / lang_turkish / lang_main.php
templates / subSilver / index.html
templates / index.htm
templates / subSilver / overall_header.tpl
templates / subSilver / simple_header.tpl
templates / subSilver / admin / index.htm
templates / subSilver / admin / index_frameset.tpl
templates / subSilver / admin / page_header.tpl
templates / subSilver / images / index.htm
templates / subSilver / images / lang_turkish/ index.html
language / lang_turkish / email / klasöründeki tüm dosyalar

Sonuç değişmedi.

6. Aynı dosyalardaki "iso-8859-9" ifadesini "iso-8859-1" olarak değiştirdim. Bu sefer başlıklardaki "İ" harfleri görünüyor, fakat diğer yerler (örneğin "Toplam x kullanıcı çevrimiçi" vs.) bozuk çıkıyor.

Nerede yanlış yapıyorum?

Anladığım kadarıyla bazı dosyaların "iso-8859-1" olarak kalması, bazı dosyaların ise "iso-8859-1" olarak değiştirilmesi gerekiyor. Konunun uzmanlarından ilgilenmelerini rica ederim.

Forumun adresi: http://www.ruscaceviri.net/forum/

Veritabanıyla ilgili bilgiler:
(Veritabanı yönetim panelinin anasayfasında görünen bilgiler)
- Kullandığım phpMyAdmin programının sürümü: 2.8.2.4
- My SQL istemci (client) sürümü: 4.1.18
(Sanırım bu sürüm phpAdmin ile ilişkili; çünkü anasayfanın başka bir yerinde kalın harflerle şöyle yazıyor: "MySQL - 5.0.22-Debian_0ubuntu6.06.2-log")
- MySQL karakter seti: UTF-8 Unicode (utf8)
- MySQL bağlantı karşılaştırması: utf_general_ci
Veritabanı yönetim panelinden oluşturulan tabloların özelliklerine baktığımda, metin içeren alanların karşılaştırma özelliklerinin hep "latin5_turkish_ci" olduğunu görüyorum.
En son Danila tarafından 11.03.2007, 16:23 tarihinde düzenlendi, toplamda 2 kere düzenlendi.
Danila
Kayıtlı Kullanıcı
Mesajlar: 16
Kayıt: 28.01.2007, 16:40
İletişim:

Mesaj gönderen Danila »

Sorunu daha da basite indirgiyorum.

lang_main.php dosyasında "8859-1" kullanınca başlıklar düzgün oluyor, yeni başlıkları ve konuları sorunsuz ekleyebiliyorum; fakat sayfanın aşağısında bulunan yazılar bozuk oluyor (toplam misafir sayısı vs.)

lang_main.php dosyasında "8859-9" kullanınca sayfanın "toplam misafir sayısı" gibi diğer kısmındaki yazılar normal çıkıyor; sayfanın başlığı da normal çıkıyor; fakat yönetim panelinden herhangi bir değişiklik yapınca daha önceden normal görünün sayfanın başlığı bozuluyor.
Kullanıcı avatarı
cerkiner
Kayıtlı Kullanıcı
Mesajlar: 120
Kayıt: 10.10.2006, 10:34
İletişim:

Mesaj gönderen cerkiner »

Kod: Tümünü seç

##########################################
#
#------[Aç]------
#

/includes/page_header.php 

#
#-----[En Üste Bu Kodu Ekle]-----
#

<?php 
header ("Content-Type: text/html; charset=iso-8859-9"); 
?>
 
#
#-----[Aç]-----

/admin/page_header_admin.php yi ac 

#
#-----[En Üste Bu Kodu Ekle]-----
#
 
<?php 
header ("Content-Type: text/html; charset=iso-8859-9"); 
?> 

#
#-----[Kaydet Ve Servera Gönder]-----
#
########################################
#Büyük ihtimal işe yarar ben bu yöntem ile düzelttim.
########################################
Danila
Kayıtlı Kullanıcı
Mesajlar: 16
Kayıt: 28.01.2007, 16:40
İletişim:

Mesaj gönderen Danila »

ÖZET:

1. Dil paketimde bir sorun yoktu. En son dil paketini indirip kurulumdan önce forumun klasöründeki tüm dosyaları açıp kontrol ettim.
Bazı dosyalarda iso-8859-9 ifadesi yerine iso-8859-1 ifadesinin kullanıldığını gördüm. Sonuç olarak iso-8859-9 ifadesinin yerleştirilebileceği ve benim de yerleştirdiğim/olduğu gibi bıraktığım dosyalar aşağıdaki gibidir:
admin / page_header_admin.php
cache / index.htm
db/ index.htm
images / index.htm
images / avatars / index.htm
images / avatars / gallery / index.htm
includes / functions.php – sayfanın başında değil, fakat kodun ilerleyen kısımlarında saklanıyor
includes / index.htm
includes / page_header.php
language / index.htm
language / lang_turkish / index.html
language / lang_turkish / lang_main.php
templates / subSilver / index.html
templates / index.htm
templates / subSilver / overall_header.tpl
templates / subSilver / simple_header.tpl
templates / subSilver / admin / index.htm
templates / subSilver / admin / index_frameset.tpl
templates / subSilver / admin / page_header.tpl
templates / subSilver / images / index.htm
templates / subSilver / images / lang_turkish/ index.html
language / lang_turkish / email / klasöründeki tüm dosyalar

Bu uzun çalışmanın ardından sorunum yine çözülmedi.

Fakat ne zaman ki lang_main.php dosyasındaki 8859-9 ifadesini 8859-1 olarak değiştirdim “İ” harfleri normal göründü, bu sefer sayfanın diğer yerlerindeki karakterler (örneğin forumdaki “toplam misafir sayısı” gibi bir metindeki karakterler) bozuk göründü.

Fakat bu sefer, bazı forum dosyalarında (overall_header.tpl gibi) bulunan {S_CONTENT_ENCODING} ifadesini "iso-8859-9" ile değiştirdiğimde; yani Internet Explorer gibi programların dili otomatik olarak seçmesini değil de, özellikle “iso-8859-9" ayarını kullanmasını sağladığımda; veya Internet Explorer programının “görünüm / dil kodlaması” ayarından Türkçe’yi seçtiğimde problem çözüldü.

Fakat bu şekilde ileride veritabanın yedeğini alırken vb. işlemlerde sorunun çıkabileceğini öğrendim. Yani sorunuma henüz çözüm bulamamıştım.

Bu arada neden 8859-1 dil setinde “ç” “ş” gibi harfler görünürken “İ”, “Ğ” gibi harfler görünmüyor? Çünkü iso-8859-1 dil seti “ç” ve “ş” gibi harfleri okuyabiliyor. Bu harfler 8859-1’nin desteklediği diğer dillerde de var. Ama Türkçe’ye özgü diğer harfler (“İ” gibi) 8859-1 tarafından desteklenmiyor. Problemin yaşanmaması için 8859-9’u kullanmak gerekiyor.

2. Foruma yazdığım başlıklar ve yeni açtığım konular veritabanında saklanıyor. Veritabanında veya veritabanı ile olan bağlantıda sorun varsa doğal olarak karakterler bozuk görünüyor.

Hosting firmasıyla yaptığım sözlü görüşmede sunucumun Türkçe dilini ve phpBB'yi desteklediğini öğrendim. Bu kadar uğraşmama rağmen soruna çözüm bulamayınca hosting firmasıyla yazıştım. Bunun üzerine, sadece sunucu sahipleri tarafından değiştirilebilen php.ini ve httpd.conf dosyalarının içindeki ISO-8859-1 ifadesini ISO-8859-9 ile değiştirdiler.
Sorunum devam etti.

3. Son olarak, sorunun veritabanından kaynaklandığını düşündüğümden bir yerde bulduğum şu kodu denedim:

“includes/db.php

// Make the database connection.
$db = @new sql_db($dbhost, $dbuser, $dbpasswd, $dbname, false);
mysql_query("SET NAMES 'latin5'");
mysql_query("SET CHARACTER SET latin5");
mysql_query("SET COLLATION_CONNECTION = 'latin5_turkish_ci'");

Sorunum şimdilik çözüldü.

İlginiz için teşekkür ederim.


NOT: /includes/page_header.php

dosyasının en üstünde şu kodu eklediğimde hata alıyordum.

<?php
header ("Content-Type: text/html; charset=iso-8859-9");
?>


header ("Content-Type: text/html; charset=iso-8859-9"); kodunu <?php ifadesinin altına eklediğimde de hata aldım.

Belki bu durum bana özgü birşey, bilemiyorum.
Kilitli

“2.0.x Türkçeleştirme” sayfasına dön

Kimler çevrimiçi

Bu forumu görüntüleyen kullanıcılar: Hiç bir kayıtlı kullanıcı yok ve 3 misafir