• 02-11-2012, 01:48:04
    #10
    Şöyle anlatayım:

    Worpress temaya çoklu dil eklemek için

    1. Temayı 2 Farklı Dile Göre Düzenliyoruz.
    2. Bu Temaları Farklı Klasör İsimleriyle WP nin Tema Klasörüne Atıyoruz.
    3. ThemeSwitcher eklentisini kuruyoruz.
    4. Farklı Dil Seçimlerini Yapabilecek Bir Alana Bu Temaların Seçimiyle İlgili Link veriyoruz.

    wordpress sistemde siteye giren kişilere göre dil değiştirme olayını nasıl ayarlayabiliriz
  • 02-11-2012, 10:05:49
    #11
    meneleos adlı üyeden alıntı: mesajı görüntüle
    $dil= $_SERVER["HTTP_ACCEPT_LANGUAGE"];
    if ( $dil== "tr") {
    header("Location:index_tr.php");
    } else {
    header("Location:index_en.php");
    }
    Biraz araştırmacı olun.
    Peki şöyle birşey sorayım. Ben çevirilerimi veritabanı üzerinden yapıyorum. Sitenin varsayılan dili ingilizce. Bunların yanında Türkçe, Rusça ve Arapça mevcut. Sitenin dilini seçerkende şu işlemi yapıyorum.

    session_start(); 
    $_SESSION['lang'] = $_GET['lang']; 
    $language = $_SESSION['lang'];
    if($language == ""){ $language = "en"; }else { $language = $_SESSION['lang']; }
    Şimdi verdiğiniz örnek koda baktığımda tr ise index_tr dil dosyasını değilse index_en dosyasını çekiyor. Ben burada 4 tane seçenek oluştursam dediğiniz yerlere kendi dil seçeneklerimi eklesem bu sefer tarayıcıya göre yönlendirme yapacak. Peki Türkiye'de tarayıcısı İngilizce olup siteyi Türkçe görüntülemek isteyenler ne yapacak? Ben index.php?lang=tr dediğimde o an site Türkçe olacaktır fakat sayfa değiştiğinde tekrar browser dilini algılamaz mı bu kod? Bu durumda ilk açılışta $language değişkenine browser dilini daha sonrasında ise kullanıcının seçimini nasıl aktarabilirim?
  • 03-11-2012, 00:34:29
    #12
    Kimlik doğrulama veya yönetimden onay bekliyor.
    loc adlı üyeden alıntı: mesajı görüntüle
    Peki şöyle birşey sorayım. Ben çevirilerimi veritabanı üzerinden yapıyorum. Sitenin varsayılan dili ingilizce. Bunların yanında Türkçe, Rusça ve Arapça mevcut. Sitenin dilini seçerkende şu işlemi yapıyorum.

    session_start(); 
    $_SESSION['lang'] = $_GET['lang']; 
    $language = $_SESSION['lang'];
    if($language == ""){ $language = "en"; }else { $language = $_SESSION['lang']; }
    Şimdi verdiğiniz örnek koda baktığımda tr ise index_tr dil dosyasını değilse index_en dosyasını çekiyor. Ben burada 4 tane seçenek oluştursam dediğiniz yerlere kendi dil seçeneklerimi eklesem bu sefer tarayıcıya göre yönlendirme yapacak. Peki Türkiye'de tarayıcısı İngilizce olup siteyi Türkçe görüntülemek isteyenler ne yapacak? Ben index.php?lang=tr dediğimde o an site Türkçe olacaktır fakat sayfa değiştiğinde tekrar browser dilini algılamaz mı bu kod? Bu durumda ilk açılışta $language değişkenine browser dilini daha sonrasında ise kullanıcının seçimini nasıl aktarabilirim?
    if($_GET['lang']){//getle dil geldiyse
    	$dil = $_GET['lang'];
    }else{//tarayıcıdan al
    	$dil = (isset($_SERVER['HTTP_ACCEPT_LANGUAGE'])) ? $_SERVER['HTTP_ACCEPT_LANGUAGE'] : @getenv('HTTP_ACCEPT_LANGUAGE');
    	$dil = preg_split('/-/', $dil);
    	$dil = $dil[0]; 
    }
    //her ihtimale karşı kayıtlı dillerden mi diye kontrol et değilse varsayılan olarak tr yap
    $diller = array('tr','en','ru','ar');
    $dil = in_array($dil,$diller) ? $dil : 'tr';
    echo $dil;