Php PDO Mysql Çoklu Dil Mantığı
İyi günler, internette araştırdım fakat sonuç bulamadım mysql ile çok dil mantığını bir türlü anlayıp kavrayamadım yardımcı olabilecek varsa sevinirim.
Soru hatalı mı? 👎
Eğer sorunun kurallara aykırı olduğunu düşünüyorsanız lütfen bize bildirin!
Cevaplar (15)
https://www.youtube.com/watch?v=_cYUea6cyXc
bu video tam senlik videonun 2 side var onuda izle ondan sonra rahatça yaparsın.
Sanırım bu işini görür https://github.com/BenEgeDeniz/Langy
dili session ile aynı tablo içerinde tutmak daha iyi olur gibi duruyor sanki
bunların yanı sıra
dil/***.php
içindede sabit yazılar için sutun ile bağlarsın
herşeyi session üzerinden yaparsın.
ha üye en son hangi dilde bıraktı ise onuda üyeye kaydedersin gelen dili
listelemedede sorun yaşamazsın
dili get ile gönder form dan onu sesion a aktar php tarafından.
sorgularına da dil diye bir sütun ekle sorgu yazarkende SELECT * FROM urunler WHERE dil=sessin(gelendeğer)
atıyorum 1 se türkçe kayıtlar gelir 2 ise ingilizce kayıtlar.
$_SESSION["language"]
varya bunu mesela tablon langEN
ve langTR
ya senin TR
yada EN
olarak sessionda tuturman lazım zaten ondan sonra o yazıcak boş bi sayfada dene ve üstünde çalış mantığı kavrarsın.
$langs = $db->query("SELECT * FROM table ");
$selectLang = $_SESSION["language"];
while ($lang = $langs->fetch(PDO::FETCH_ASSOC)) {
if ($lang["lang"] == $selectLang) {
echo $lang["lang{$selectLang}"];
break;
}
}
Hocam ben şöyle bir şey diyeyim
id | lang | langEN | lanTR |
---|---|---|---|
1 | home | Home | Ana Sayfa |
2 | page | Page | Sayfa |
Lang sütunum sabit olsun hocam kullanıcı ingilizce veya türkçe için langEN veya langTR seçe bilsin
ve hocam böyle bir tabladan nasıl veri elde edebilirim ve bunu nasıl suna bilirim
Javascript ile yapmak daha mantıklı bence.
Örnek:
localstorage.setItem("language", "tr");
let lang = localstorage.getItem("language");
if (lang == "tr") {
document.write("Dil Türkçe");
} else if (lang == "en") {
document.write("Language English");
}
// ...
mantıgı anlatayım en basıt halı ıle
bır tablo olusturacaksın dil diye tabı sana kalmıs ısmı
id anasayfa hakkımızda iletisim vs
veya
id d1 d2 d3 d4 dıye
degerlerıde işte ana sayfa hakkımızda vs ekleyeceksın
bunları normal sorgu yapar gıbı sorgulayacak ve dil.php diye kaydedeceksin örnek
$dil=$db->prepare("SELECT * FROM dil WHERE id=?");
$dil->execute([$_SESSION['dil']]);
$d=$dil->FETCH(PDO::FETCH_ASSOC);
sonra session ile varsayılan dil belirleyeceksın örnek
if(empty($_SESSION['dil'])){ // ilk sayfaya gırınce dil 1 olarak ayarladık
$_SESSION['dil']=1;
}
if(isset($_GET['dil'])){ // dil sectıyse id atadık örnek ingilizce id 2
$_SESSION['dil']=$_GET['dil'];
header( 'Location: index.php' ) ; // VEYA O ANKI SAYFAYA YONEDIRECEKSIN
}
BUNU TUM SAYFALARIN EN USTUNE KOYACAKSIN VEYA HER SAYFADA BU SORGUYU CALISTIRACAKSIN
sonrasında misal ana sayfa yazacak yerde
<?php echo $d['d1']; ?> veya <?php echo $d['anasayfa']; ?>
ILERI SEVIYEDE BU dil.php SAYFASINI json yapabılırsın veya FETCHALL olarak sorgulatabılrısın vs vs
sonrasında json olarakta cekebılırsın bla bla mantıgı sordun mantık bu