function dil($id){
global $db;
$varsayilan = $db->from('siteayarlari')
->select('dilsecimi')
->first();
$dil_teshis = substr($_SERVER['HTTP_ACCEPT_LANGUAGE'],0,2);
if (isset($id)) {
if ($dil_teshis == 'en'){
$dil = $db->from('dil_en')->where('id',$id)->first();
return $dil['cumle'];
}elseif($dil_teshis=='tr'){
$dil = $db->from('dil_tr')->where('id',$id)->first();
return $dil['cumle'];
}elseif($dil_teshis=='de'){
$dil = $db->from('dil_de')->where('id',$id)->first();
return $dil['cumle'];
}elseif($dil_teshis=='az'){
$dil = $db->from('dil_az')->where('id',$id)->first();
return $dil['cumle'];
}else{
$dil = $db->from($varsayilan['dilsecimi'])->where('id',$id)->first();
return $dil['cumle'];
}
}
}
Bu fonksiyona göre diller veritabanında tutuluyor şu şekilde yazarsın.
tablo adı dil_tr, dil_az, dil_en... Tarayıcı diline göre cümleleri o tablodan çeker. Eğer tarayıcının dilini henüz oluşturmadıysan varsayılan olarak bir dil göstermelisin ben bunu site ayarları tablomdan tr_dil olarak çekiyorum. Fonksiyonumun başında bunu ekledim. Bu şekilde varsayılan dili de yönetim panelinden düzenlenebilir yapman mümkün oluyor.
Veri tabanında tutma nedenim ise tüm dilleri kendim yazamayacağımdan, script kullanıcılarının yönetim panelinden bu dilleri ekleyebilmesini veya düzenleyebilmesini istememdi. Böylesi daha esnek.
Örnek vermek gerekirse;
dil_tr
id|cumle
1| Hoşgeldin
dil_en
id|cumle
1| Welcome
Kullanımı ise şöyle;
=dil(1)?>
//ÇIKTI
//En tarayıcıda Welcome
//Tr tarayıcıda Hoşgeldin
Ekstra bilgi; fonksiyon içerisinde kullandığım pdo yapı tayfun erbilenin basicdb classıdır.
Ekstra bilgi2; test edebilmek için tarayıcının dilini değiştirmen yeterlidir.