Merhabalar,
Admin paneli eklemeden önce çoklu dil için lang klasörü oluşturup en.php ve tr.php dosyaları oluşturup içerisinde çevirileri yaparak ilgili yerlere tek tek eklemiştim fakat siteye admin paneli ekledim. Admin panelini oluştururken de çoklu dil sistemini unutup sadece TR için oluşturmuştum dolayısıyla sadece TR var. Panel üzerinden eklenen tüm içerikleri sitede yer alan dil seçeneğine göre gösterilmesini nasıl yapabilirim? Veritabanı da tr için oluşturmuştum.
Tek dilli php siteyi çoklu dile nasıl çeviririm?
11
●278
- 19-06-2024, 00:45:15hocam şimdi o uzun mesele ama size kısa şekilde anlatmaya çalışacağım. panele diller diye alan ekleyin. örneğin tr en eklediniz en olanın idsini sessiona alın.
sonra örneğin hizmet ekle sayfası açtınız. hizmet eklerken tabloya dil alanı açın ve dil alanına sessiona aldığınız dilin idsini kaydettirin.
listelerken de aynı şekil session ile dil idsini alıp listeletin.
her alanda bu taktiği kullanın. arayüzde ise yine diller olsun ve tıklandıkca idsini sessiona atsın. ve içeriklerde de php sorgularına where dil ile sessiına aldığınız dil idsi ile eşitleyin. - 19-06-2024, 00:49:35Hocam söylediğin durumla ilgili bir video tarzı bir şey var mı? Yani tam olarak anlayamadımwebsite adlı üyeden alıntı: mesajı görüntüle
- 19-06-2024, 00:50:30hocam bu sistem benim kendimce yaptığım bir sistem. admin panellerimde hep böyle var. videosu yok maalesefAytacgogu adlı üyeden alıntı: mesajı görüntüle
- 19-06-2024, 00:52:23Aslında en iyisi Google Translate API'nin ücretli versiyonunu kullanmak. Eğer hız problemi yaşatmazsa mis gibi. İllaha Google olmak zorunda değil yandex de olabilir.
- 19-06-2024, 01:18:03Şöyle bir şey yaptım. Öncelikle hizmetler tablosu içerisine tr'nin yanında bir de en olarak kısım açtım.
if ( isset( $_POST[ 'hizmetekle' ] ) ) { $uploads_dir = '../assets/img/hizmetler'; @$tmp_name = $_FILES[ 'hizmet_resim' ][ "tmp_name" ]; $benzersizsayi1 = rand( 20000, 32000 ); $benzersizsayi2 = rand( 20000, 32000 ); $uzanti = '.jpg'; $benzersizad = $benzersizsayi1 . $benzersizsayi2; $refimgyol = substr( $uploads_dir, 3 ) . "/" . $benzersizad . $uzanti; @move_uploaded_file( $tmp_name, "$uploads_dir/$benzersizad$uzanti" ); $kaydet = $db->prepare( "INSERT INTO hizmetler SET hizmet_baslik=:baslik, hizmet_baslik_en=:baslik_en, hizmet_icerik=:icerik, hizmet_title=:title, hizmet_descr=:descr, hizmet_keyword=:keyword, hizmet_vitrin=:vitrin, hizmet_resim=:resim"); $insert = $kaydet->execute( array( 'baslik' => $_POST[ 'hizmet_baslik' ], 'baslik_en' => $_POST[ 'hizmet_baslik_en' ], 'icerik' => $_POST[ 'hizmet_icerik' ], 'title' => $_POST[ 'hizmet_title' ], 'descr' => $_POST[ 'hizmet_descr' ], 'keyword' => $_POST[ 'hizmet_keyword' ], 'vitrin' => $_POST[ 'hizmet_vitrin' ], 'resim' => $refimgyol )); if ( $insert ) { Header( "Location:../hizmetler.php?status=ok" ); } else { Header( "Location:../hizmetler.php?status=no" ); } }Yukarıdaki kodu tamamlayıp panel kısmında ise hizmet ekle kısmını ise aşağıdaki gibi yaptım.

Yukarıda tr ve en'ler için ayırım yaptım. Girdiğim şeyler tabloya da işlendi. (Aşağıdaki gibi)
hizmet_baslik olan TR için, hizmet_baslik_en olan ise en için.
Şimdi buradan sonrası patladığım nokta
))
Aşağıda hizmet_baslik'i doğrudan çağırıyorum ve dolayısıyla TR olarak geliyor. İşte tam da burada patlıyorum.
<div class="hb-servicesarea hb-haslayout"> <?php $hizmetarticle=$db->prepare("SELECT * from hizmetler order by hizmet_id DESC"); $hizmetarticle->execute(array(0)); while ($hizmetarticleprint=$hizmetarticle->fetch(PDO::FETCH_ASSOC)) { ?> <div class="col-xs-12 col-sm-6 col-md-4 mb-50"> <div class="hb-servicebox" style="border: 1px solid #f1f1f1;border-radius: 20px; padding: 25px;"> <figure class="hb-serviceimg"> <img style="height: 100px;width: 100px;" src="trex/<?php echo $hizmetarticleprint['hizmet_resim']; ?>" alt="<?php echo $hizmetarticleprint['hizmet_baslik'] ?>"> </figure> <div class="hb-servicecontent"> <h3 class="hb-headingtree" style="height: 30px;"><b><?php echo $hizmetarticleprint['hizmet_baslik'] ?></b></h3> <div class="hb-description"> <p><?php echo mb_substr(strip_tags($hizmetarticleprint['hizmet_icerik']), 0, 107, "UTF-8") ?>...</p> </div> </div> </div> </div> <?php } ?> </div>Yukarıda ne yapmam gerekiyor ki sitenin seçilen dil durumuna göre hizmet_baslik veya hizmet_baslik_en'de yer alan içerik gelsin. Kafayı kırıcam az kaldı.





))