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;