• 09-03-2009, 01:54:47
    #1
    merhaba arkadaşlar.türkçe ve ingilizce olarak çalılşan bir site yapıyorum.phpde acemiyim.sorum şu.türkçe ve ingilizce için dil dosyası oluşturdum ve anasayfaya sayfanın ingilzicesi için index.php?dil=eng linkini verdim ve düzgün bir biçimde sayfa ingilzce oluyor. Fakat menüden site içerisindeki başka bir sayfaya geçince ingilizce olmuyor. ingilizce olması için sayfa.php?dil=eng gibi link veriyorum ancak. istediğim şey şöyle bir şey. kullanıcı hangi dili seçmişse sayfa.php olarak link verdiğimde sayfa.php kullanıcısın daha önceden seçtiği dil ile açılsın. böyle bir şey nasıl yapılabilir. Kullandığım dil kodum şöyle
    <?php
    $dil = $_GET["dil"];
    
    switch ($dil) {
    
    case "tr" ; include("dil/turkce.php"); break;
    
    case "eng" ; include("dil/english.php"); break;
    
    default: include("dil/turkce.php"); break;
    
    } 
    ?>
  • 09-03-2009, 02:10:36
    #2
    Kişi dil seçime geldiği zaman bi SESSION ata mesela $_SESSION['dil'] = "tr"; gibi her sayfada bu session'u al. Session atamadıysa varsayılan bişey belirle öyle yap.
  • 09-03-2009, 02:35:17
    #3
    evet istediğim oldu çok teşekkür ederim
  • 09-03-2009, 09:14:16
    #4
    Üyeliği durduruldu
    blue_devil_tr adlı üyeden alıntı: mesajı görüntüle
    evet istediğim oldu çok teşekkür ederim
    normalde tüm linklere baskasayfa.php?dil=eng gibi eklemeniz gerekir. böyle yapmazda sessionla yaparsanız uğraş olarak işiniz kolaylaşır. Yalnız arama motorundan kaybedersiniz.

    arama motoru çünkü linkler arasında gezer. ama session yada cookie değeri atamaz
  • 09-03-2009, 13:26:45
    #5
    Müdür SEO açısından da işe yaramasını istiyorsan .htaccess e bir kural yaz.
    Mesela mesela

    RewriteRule ^index-([^/-]+)-([^/-]+)\.html$ index.php?sayfa=$1&dil=$2& [L,NC]
    Sonra link yapma ile ilgili bir fonksiyon yap.
    hangi session seçili ise o dile ait lisan kodunu url e bas.
    Mesela örnekteki verdiğim rewrite kod için
    index.php?sayfa=hakkimizda&dil=en adresi
    /hakkimizda-en.html olarak çağırılacaktır.
    Bu sayede kişi hangi sessionda ise linkler o sessionın idsini alır.
    Böylece
    /hakkimizda-tr.html
    /hakkimizda-en.html
    /hakkimizda-ger.html

    gibi her sayfan ayrı olur.

    saygılar
  • 09-03-2009, 14:04:03
    #6
    Müdür SEO açısından da işe yaramasını istiyorsan .htaccess e bir kural yaz.
    Mesela mesela
    RewriteRule ^index-([^/-]+)-([^/-]+)\.html$ index.php?sayfa=$1&dil=$2& [L,NC]
    Sonra link yapma ile ilgili bir fonksiyon yap.
    hangi session seçili ise o dile ait lisan kodunu url e bas.
    Mesela örnekteki verdiğim rewrite kod için
    index.php?sayfa=hakkimizda&dil=en adresi
    /hakkimizda-en.html olarak çağırılacaktır.
    Bu sayede kişi hangi sessionda ise linkler o sessionın idsini alır.
    Böylece
    /hakkimizda-tr.html
    /hakkimizda-en.html
    /hakkimizda-ger.html
    gibi her sayfan ayrı olur.
    saygılar
  • 09-03-2009, 15:19:25
    #7
    ya arkadaşlar bu suefer söyle bi sorunum var. Kullandığım kodlar şöyle
    <?php
    session_start();
    if($_GET['dil']=='eng'){
    $dil='dil/english.php';
    }elseif($_GET['dil']=='tr'){
    $dil='dil/turkce.php';
    }
    $_SESSION['dil']=$dil;
    if(!$_SESSION['dil']){
    $dil='dil/turkce.php';
    $_SESSION['dil']=$dil;
    }
    ?>
    boyle ike localde gayet sorunsuz çalışırken hosta attığımda Warning: session_start() [function.session-start]: Cannot send session cookie gibi hatalar vermeye başladı.
    <?php include("dil.php");
    include($_SESSION['dil']);
    ?>
    bu kodu sayfanın başına alınca o hatalar gitti. Fakat bu seferde şöyle bir sorun ortaya çıktı. Örneğin; kullanıcı ingilizce seçimini yaptıktan sonra başka bir sayfaya giderse orasıda ingilizce çıkması gerekirken türkçe çıkmaya başladı.
    illa linkleri "sayfa.php?dil=eng" gibimi vericez
  • 09-03-2009, 15:22:07
    #8
    Üyeliği durduruldu
    digiklan ın çözümünü incelemeni önerirrim
  • 09-03-2009, 15:23:04
    #9
    Bu arada digiklan vermiş oldduğun bilgiler için çok teşekkür ederim. böyle birşeyde lazımdı