• 10-12-2016, 00:42:05
    #1
    Merhabalar,

    Çoklu dil kullandığım bir sitemde tarayıcı diline göre açılış sayfasını düzenliyorum. Yani tarayıcısı Türkçe olan ziyaretçiyi /tr sayfasına ingilizce olanı /en sayfamıza yönlendiriyorum. Bu yönlendirmeyi aşağıdaki kod ile yapıyorum.

    <?php 
    ob_start(); 
    $lg = substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2); // Kullanıcının dilini çektik :) 
    
    // $lg değişkenini dil dosyalarımıza göre if koşuluna bağlayarak içeriğini değiştiriyoruz. 
    if ($lg=="fr") { 
    $lg = "fr"; 
    } 
    if ($lg=="en") { 
    $lg = "en"; 
    } 
    if ($lg=="it") { 
    $lg = "it"; 
    } 
    if ($lg=="tr") { 
    $lg = "tr"; 
    } 
    
    // Kullanıcı farklı bir dile mensup ise bunu otomatik olarak türkçe dil destekli sayfamıza yönlendiriyoruz. 
    if (($lg != 'tr') and ($lg != 'en') and ($lg != 'fr') and ($lg != 'it')) { 
    
    $git = "http://www.site.com/tr/"; 
    header("Location: $git"); 
    
    }else { // Bizim desteklediğimiz dillerden biri ile bağlanmışsa o zaman diline göre yönlendiriyoruz. 
    
    $git = "http://www.site.com/".$lg."/"; 
    header("Location: $git"); 
    
    } 
    
    ?>
    Ama bu kodlar çok agresif, sürekli kontrol ettiği için diğer sitelere giriş yapmayı engelliyor. Yani sitenin başında bayraklarla dil seçimi sunuyorum ama bu kodlarla diğer sayfalara geçiş dahi yapılamıyor. Ben sadece açılış adresi değişsin istiyorum sonrası için kontrol etmesini engellemek istiyorum. Bu kodlar üzerinde yada yeni bir php kod ile yardımcı olursanız sevinirim, teşekkürler.
  • 10-12-2016, 02:26:19
    #2
    Üyeliği durduruldu
    Açılış için olmasını istiyorsan sadece index.php'e atmalısın header.php falan varsa oralara koyma.
  • 10-12-2016, 03:54:05
    #3
    Üyeliği durduruldu
    Session tanımlayarak dil tanımlanmışsa bir daha yönlendirme yapmazsınız.

    Örnek:

    <?php  
    ob_start();  
    session_start();
    if($_SESSION["dil"]=="")
    {
    $lg = substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2); // Kullanıcının dilini çektik :)  
    
    $_SESSION["dil"]="$lg";
    
    // $lg değişkenini dil dosyalarımıza göre if koşuluna bağlayarak içeriğini değiştiriyoruz.  
    if ($lg=="fr") {  
    $lg = "fr";  
    }  
    if ($lg=="en") {  
    $lg = "en";  
    }  
    if ($lg=="it") {  
    $lg = "it";  
    }  
    if ($lg=="tr") {  
    $lg = "tr";  
    }  
    
    // Kullanıcı farklı bir dile mensup ise bunu otomatik olarak türkçe dil destekli sayfamıza yönlendiriyoruz.  
    if (($lg != 'tr') and ($lg != 'en') and ($lg != 'fr') and ($lg != 'it')) {  
    
    $git = "http://www.site.com/tr/";  
    header("Location: $git");  
    
    }else { // Bizim desteklediğimiz dillerden biri ile bağlanmışsa o zaman diline göre yönlendiriyoruz.  
    
    $git = "http://www.site.com/".$lg."/";  
    header("Location: $git");  
    
    }  
    }
    ?>