<?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;
}
?> PHP çoklu dil - Sayfa içi Dolaşım
10
●3.927
- 09-03-2009, 01:54:47merhaba 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
- 09-03-2009, 09:14:16Üyeliği durduruldunormalde 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.blue_devil_tr adlı üyeden alıntı: mesajı görüntüle
arama motoru çünkü linkler arasında gezer. ama session yada cookie değeri atamaz - 09-03-2009, 13:26:45Mü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:03Mü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:25ya 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:23:04Bu arada digiklan vermiş oldduğun bilgiler için çok teşekkür ederim. böyle birşeyde lazımdı