Drupal 6 Türkçe Karakter Sorunları

Blog Kategori: 

Hemen her yazılımda olduğu gibi Drupal'de de Türkçe karakterlerle ilgili bazı sorunlar yaşanabiliyor. Neyse ki bunların çözümleri var. Bu sayfada Türkçe karakterlerle ilgili karşılaşılan sorunları ve çözüm yöntemlerini bulabilirsiniz.

Pathauto ile linklerde Türkçe karakter dönüşümü

Pathauto sayesinde içerik yollarında içerik başlığı vb. düğüm bilgilerinden faydalanabiliyoruz. Ancak bu durum ı, ş, ç, ğ, ö, ü gibi Türkçe karakterlerin standart karakterlere dönüştürülmesini gerektirmekte. Pathauto eklentisinin 6.x-2.x öncesi sürümlerinde (6.x-1.x ve 5.x sürümleri) bu işlem, Pathauto eklenti klasörüne koyulacak i18n-ascii.txt dosyası ile mümkün oluyor. Zaten bu klasörde mevcut olan i18n-ascii.example.txt dosyasının adını bu şekilde değiştirmek yeterli. Ancak bu dosyayı olduğu gibi kullandığımızda ö ve ü karakterleri ö » oe, ü » ue biçiminde dönüştürülüyor ki bu pek tercih edilen bir dönüşüm değil. Bu durumda yapabileceğiniz iki şey var:

  • i18n-ascii.txt dosyasını not defteri ile açıp Ö, Ü, ö ve ü karakterleri için yapılan dönüşümleri bulup O, U, o ve u olarak değiştirmek.
  • Doğrudan burada yer alan hazır dosyayı indirip Pathauto klasörünüze açmak.

Bu işlemleri gerçekleştirdikten sonra, Pathauto eklentisinin ayar sayfasında, Genel Ayarlar başlığı altında mevcut olan Transliterate prior to creating alias seçeneğini işaretlemeyi unutmayın.

Not-1: Eğer Pathauto klasöründe i18n-ascii.txt adında bir dosya bulunmuyorsa bu seçenek devre dışıdır.
Not-2: Yapılan değişikliğin mevcut yollarda etkili olabilmesi için mevcut takma adları silmelisiniz.

# Pathauto eklentisinin 6.x-2.x ve sonraki sürümlerinde karakter dönüşüm işlemlerinde Transliteration eklentisinden faydalanılıyor. Dolayısıyla bu eklentiyi kurmanız gerekmekte. Ancak daha önceden i18n-ascii.txt dosyasında olduğu gibi bu eklentide de Türkçe karakterler doğru olarak dönüştürülmüyor. Bu sorunu kendiniz aşağıdaki değişiklikleri yaparak giderebileceğiniz gibi buradaki arşivde yer alan iki dosyayı orjinalleri ile değiştirerek de çözebilirsiniz:

  1. transliteration\data dizininde yer alan x00.php dosyasını açarak son satırını aşağıdaki gibi değiştirin:
      'tr' => array(0xDC => 'U', 0xFC => 'u', 0xC7 => 'C', 0xE7 => 'c', 0xD6 => 'O', 0xF6 => 'o'),
     );
  2. yine aynı dizinde yer alan x01.php dosyasını açarak son satırını aşağıdaki gibi değiştirin:
        'tr' => array(0x30 => 'I', 0x31 => 'i', 0x1E => 'G', 0x1F => 'g', 0x5E => 'S', 0x5F => 's'),
     );

Imagecache dosya isimlerinde Türkçe karakter dönüşümü

Imagecache eklentisi ile yüklenen bir resmin farklı boyutlardaki versiyonlarını oluşturulabilirsiniz. Fakat resmin adında boşluklar ve Türkçe karakterler olması durumunda hatalarla karşılaşmanız mümkün. Dolayısıyla bu sorunu Transliteration eklentisi ile çözebilmeniz için bir yöntem önerilmiş durumda. Bunun için yapmanız gerekenler şöyle:
Not: Yöntem 5.x sürümü için yazılmış. Drupal 6.x'te de aynı sorunla karşılaşıyorsanız deneyebilirsiniz.

  1. Transliteration eklentisini kurun.
  2. imagecache eklenti klasöründe yer alan imagecache.module dosyasını not defteriyle açıp aşağıdaki satırları bulun
    function theme_imagecache($namespace, $path, $alt = '', $title = '', $attributes = NULL) {
      $attributes = drupal_attributes($attributes);
      $imagecache_path = file_create_url(file_directory_path() .'/imagecache/'. $namespace .'/'. $path);
      return '<img src="'. $imagecache_path .'" alt="'. check_plain($alt) .'" title="'. check_plain($title) .'" '. $attributes .' />';
    }
  3. bu şekilde değiştirip kaydedin
    function theme_imagecache($namespace, $path, $alt = '', $title = '', $attributes = NULL) {
      $attributes = drupal_attributes($attributes);
      if (module_exists('transliteration'))
      $imagecache_path = file_create_url(file_directory_path() .'/imagecache/'. $namespace .'/'. transliteration_get($path));
      else
      $imagecache_path = file_create_url(file_directory_path() .'/imagecache/'. $namespace .'/'. $path);
      return '<img src="'. $imagecache_path .'" alt="'. check_plain($alt) .'" title="'. check_plain($title) .'" '. $attributes .' />';
    }

Alıntı: http://drupaldersleri.org/ders/66/drupalde-turkce-karakter-sorunlari.html / Onur SERKAN

Yeni yorum ekle