• 06-02-2022, 18:44:06
    #1
    Merhabalar,

    Php ile yazılmış bir siteyi verileri veri tabanından çekecek şekilde çok dilli yapmak istiyorum ancak bir türlü çözemedim olayı. Tablolardan diller geliyor ama kelimeler;

    eğer GET'le gelen değer tr ise text_1 Türkçe gözüksün

    eğer GET'le gelen değer en ise text_1 İngilizce gözüksün gibi normal kalıbı oluşturmaya çalıştım ama olmadı. Verilerin geldiği tablolar;
    Dil Tablosu;

    Veri Tablosu;

    Yazıpta sonuç alamadığım kodlar;

    <?php
    <div class="btn-group">
        <a class="btn btn-xs dropdown-toggle header_link" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"
           style="font-size:14px; margin-left: 3px; text-decoration:none !important; background-color: #ffffff;"><i
                    class="fas fa-globe-europe" style=" color: #4398f4; font-size: 16px;margin: 6px;"></i></a>
    
        <ul class="dropdown-menu">
            <?php
            global $baglan;
            $dilcek = $baglan->query("SELECT * FROM diller");
            while ($vericek = $dilcek->fetch_assoc()) { ?>
                <li style="background-color: #ffffff"><a href="?lang=<?php echo $vericek ['dil_meta']; ?>"> <img
                                src="assets/images/flags/<?php echo $vericek ['dil_bayrak']; ?>.svg"
                                width="25"> <?php echo $vericek ['dil_adi']; ?></a></li>
    
            <?php } ?>
    
        </ul>
    </div>
    
    
    <?php
    if (isset($_GET['lang'])) {
        $dil = $_GET['lang'];
        $_SESSION['dil'] = $dil;
    } ?>
    
    
    
    
    
    
    
    
    <?php
    global $baglan;
    $baglan->query("SELECT * FROM tumsite where tumsite_id");
    $textsira = $baglan->query("SELECT * FROM tumsite");
    $textsiracek = $textsira->fetch_array();
    
    $dil = $baglan->query("SELECT * FROM tumsite where text_sira");
    $dil = $dil->fetch_array();
    
    $tr = $baglan->query("SELECT * FROM tumsite where tumsite_tr");
    $tumsite_tr = $tr->fetch_array();
    
    $ing = $baglan->query("SELECT * FROM tumsite where tumsite_ing");
    $tumsite_tr = $tr->fetch_array();
    
    if ($_SESSION['dil'] == 'tr' or $_SESSION['dil'] == '') {
        $dil = $tr;
    
    
    } else if ($_SESSION['dil'] == 'gb') {
        $dil = $ing;
    }
    ?>


    Şimdiden ilginize teşekkür ederim,
  • 06-02-2022, 18:50:59
    #2
    direk yandex eklentisini head tagları içine ekleyin site gelen ip ye göre otomatik dili değişir ektra olarak +40 farklı dil seçeneği

    https://ceviri.yandex.com.tr/translate
  • 06-02-2022, 18:56:27
    #3
    Otomatik çeviri kullanmanı öneririm, az uğraş ile çok daha verimli işler yapmana olanak sağlar.
    İllada yapmak istersen.

    TR.php

    $title = "Sitenin  Başlığı";
    $desc = "Sitenin  Açıklaması";
    $keyword = "Sitenin  Anahtar Kelimeleri";
    EN.php

    $title = "Title for website";
    $desc = "Description for website ";
    $keyword = "Keyword for website ";
    index.php veya sayfa.php sayfalarına (siteadresi.com/sayfa.php?dil=tr) şeklinde giriş yapılırsa, türkçe kaydedilen metinler çıkacaktır.

    include("dil/".$_GET["dil"].".php");
    
    # Örnek kullanım
    <html>
    <head>
    <title>$title</title>
    </head>
    <body>
    içerik...
    </body>
    </html>


    Aynısının veritabanı yapısınıda şöyle olabilir; index.php?dil=tr diye örneklendirelim.

    $sorgu = mysqli_query($baglanti,"SELECT * FROM icerik WHERE id=3 AND dil='".$_GET["dil"]."' ");
    $cikti = mysqli_fetch_assoc($sorgu);
    
    # Örnek kullanım
    
    
    <html>
    <head>
    <title>$cikti['baslik']</title>
    </head>
    <body>
    içerik...
    </body>
    </html>
  • 06-02-2022, 19:16:19
    #4
    Kei adlı üyeden alıntı: mesajı görüntüle
    direk yandex eklentisini head tagları içine ekleyin site gelen ip ye göre otomatik dili değişir ektra olarak +40 farklı dil seçeneği

    https://ceviri.yandex.com.tr/translate
    Öncelikle cevabınız için teşekkkür ederim. Google ve yandex ile denedim ancak kelimeler çok anlamsız ya da hatalı çıkıyor o yüzden orjinal yapmak daha uygun gibi
  • 06-02-2022, 19:18:15
    #5
    oktayc0 adlı üyeden alıntı: mesajı görüntüle
    Otomatik çeviri kullanmanı öneririm, az uğraş ile çok daha verimli işler yapmana olanak sağlar.
    İllada yapmak istersen.

    TR.php

    $title = "Sitenin  Başlığı";
    $desc = "Sitenin  Açıklaması";
    $keyword = "Sitenin  Anahtar Kelimeleri";
    EN.php

    $title = "Title for website";
    $desc = "Description for website ";
    $keyword = "Keyword for website ";
    index.php veya sayfa.php sayfalarına (siteadresi.com/sayfa.php?dil=tr) şeklinde giriş yapılırsa, türkçe kaydedilen metinler çıkacaktır.

    include("dil/".$_GET["dil"].".php");
    
    # Örnek kullanım
    <html>
    <head>
    <title>$title</title>
    </head>
    <body>
    içerik...
    </body>
    </html>
    Aynısının veritabanı yapısınıda şöyle olabilir; index.php?dil=tr diye örneklendirelim.

    $sorgu = mysqli_query($baglanti,"SELECT * FROM icerik WHERE id=3 AND dil='".$_GET["dil"]."' ");
    $cikti = mysqli_fetch_assoc($sorgu);
    
    # Örnek kullanım
    
    
    <html>
    <head>
    <title>$cikti['baslik']</title>
    </head>
    <body>
    içerik...
    </body>
    </html>
    Çok kullanışlı ve sade gibi, inşallah bu defa olur çok zamanımı aldı,
    Desteğiniz için teşekkür ederim

    Peki WHERE id=3 burada id yi manuel girmek değil de otomatik getirmeyi nasıl yapabilirim çünkü çok fazla satır olacak, haliyle id olacak
  • 07-02-2022, 03:25:20
    #6
    TahaCan adlı üyeden alıntı: mesajı görüntüle
    Çok kullanışlı ve sade gibi, inşallah bu defa olur çok zamanımı aldı,
    Desteğiniz için teşekkür ederim

    Peki WHERE id=3 burada id yi manuel girmek değil de otomatik getirmeyi nasıl yapabilirim çünkü çok fazla satır olacak, haliyle id olacak

    hocam izninizle bende takipteyim yapabilirseniz dil projenizi banada atarmısınız 2gündür düzgün bir örnek bulamadım
  • 07-02-2022, 04:02:30
    #7
    Darkbey adlı üyeden alıntı: mesajı görüntüle
    hocam izninizle bende takipteyim yapabilirseniz dil projenizi banada atarmısınız 2gündür düzgün bir örnek bulamadım
    kod :

    <?php

    <div class="btn-group">
    <a class="btn btn-xs dropdown-toggle header_link" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"
    style="font-size:14px; margin-left: 3px; text-decoration:none !important; background-color: #ffffff;"><i
    class="fas fa-globe-europe" style=" color: #4398f4; font-size: 16px;margin: 6px;"></i></a>


    ---bu kisim dilleri listeliyor menü olarak---

    <ul class="dropdown-menu">
    <?php
    global $baglan;
    $dilcek = $baglan->query("SELECT * FROM diller");
    while ($vericek = $dilcek->fetch_assoc()) { ?>
    <li style="background-color: #ffffff"><a href="?lang=<?php echo $vericek ['dil_meta']; ?>"> <img
    src="assets/images/flags/<?php echo $vericek ['dil_bayrak']; ?>.svg"
    width="25"> <?php echo $vericek ['dil_adi']; ?></a></li>

    <?php } ?>

    </ul>
    </div>


    Bu kısım Veritabanından dil cekip ekrana yazdıran kısım
    <?php
    if(isset($_SESSION)){session_start();}
    function dil_getir($msg,$ek){
    global $baglan;
    $dil_sec = $baglan->query("SELECT * FROM dilleryeni WHERE dil_degisken = '".$msg."'")->fetch_assoc();
    return $dil_sec["dil_cevap".$ek];
    }
    if(!empty(@$_GET["lang"])) $_SESSION["kullanici"]["dil"] = $_GET["lang"];

    echo dil_getir("anasayfa","_".$_SESSION["kullanici"]["dil"]);
    ?>
    veri tabanı tablo



    çok basit ve kullanışlı bir kod.

    Kolay gelsin
  • 07-02-2022, 04:07:38
    #8
    TahaCan adlı üyeden alıntı: mesajı görüntüle
    kod :

    <?php

    <div class="btn-group">
    <a class="btn btn-xs dropdown-toggle header_link" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"
    style="font-size:14px; margin-left: 3px; text-decoration:none !important; background-color: #ffffff;"><i
    class="fas fa-globe-europe" style=" color: #4398f4; font-size: 16px;margin: 6px;"></i></a>


    ---bu kisim dilleri listeliyor menü olarak---

    <ul class="dropdown-menu">
    <?php
    global $baglan;
    $dilcek = $baglan->query("SELECT * FROM diller");
    while ($vericek = $dilcek->fetch_assoc()) { ?>
    <li style="background-color: #ffffff"><a href="?lang=<?php echo $vericek ['dil_meta']; ?>"> <img
    src="assets/images/flags/<?php echo $vericek ['dil_bayrak']; ?>.svg"
    width="25"> <?php echo $vericek ['dil_adi']; ?></a></li>

    <?php } ?>

    </ul>
    </div>


    Bu kısım Veritabanından dil cekip ekrana yazdıran kısım
    <?php
    if(isset($_SESSION)){session_start();}
    function dil_getir($msg,$ek){
    global $baglan;
    $dil_sec = $baglan->query("SELECT * FROM dilleryeni WHERE dil_degisken = '".$msg."'")->fetch_assoc();
    return $dil_sec["dil_cevap".$ek];
    }
    if(!empty(@$_GET["lang"])) $_SESSION["kullanici"]["dil"] = $_GET["lang"];

    echo dil_getir("anasayfa","_".$_SESSION["kullanici"]["dil"]);
    ?>
    veri tabanı tablo



    çok basit ve kullanışlı bir kod.

    Kolay gelsin
    çok teşekkür ederim takıldıgım yer olursa yardımcı olurmusunuz ?