• 23-08-2021, 19:06:01
    #1
    Merhaba kolay gelsin , temaya çoklu dil entegre etmek istiyoruz fakat çeviri için bu kod parçası kullanımı doğru mudur? Başka bir yolu var mıdır? Sizler temanıza hangi yolla entegre ediyorsunuz?

  • 23-08-2021, 19:11:23
    #2
    Merhaba,

    include yöntemini kullanabilirsiniz. İngilizce ve türkçe dosya oluşturarak içerisine görselde yaptığınız gibi kelimeleri array içerisine ekleyerek kullanabilirsiniz.

    Örnek vermek gerekirse;

    TR Dil dosyası:
    $dil = array(
           "adres"=>"Adres Bilgisi"
    );
    EN Dil dosyası:
    $dil = array(
           "adres"=>"Address"
    );
    Hangi dosyayı include ederseniz o dosyadaki kelime gözükecektir, doğru kullanımı bu şekildedir.
  • 23-08-2021, 19:13:01
    #4
    Merhaba size şunu önerirrim;

    languages/tr.php ve languages/en.php şeklinde bri yapı oluşturun.

    header yada config'de
    include("languages/".$_SESSION['lang']."php"); dosyasını projeye yerleştirin.

    dil dosyalarınızın içi aşağıdaki gibi olsun.


    Sonra örneğin product.php sayfasındasınız. üstte'de en.php ekli.

    Ürün fiyatı <?php echo $fiyat; ?>
    yaptığınız yeri şu şekilde güncelleyin
    <?php echo $_['text_price']; ?> <?php echo $fiyat; ?>
    text_? olan kısımları kendinize göre kurgulayın

    button_?
    table_?
    form_?
    error_?
    required_?
    şeklinde daha hızlı kod yazarsınız.

    birde veritabanı için bonus vereyim.

    Örnek ürünler tablonuz var.


    Sorgunuz da şu
    SELECT * FROM urunler u INNER JOIN urun_meta um ON u.urun_id=um.urun_id WHERE um.language='en'
  • 23-08-2021, 19:19:45
    #5
    Multi language sistemler basitten, kendi Syntax(söz dizimi) içerecek kadar gelişmiş olabilir, dillerin içinde variable kullanmanız gerekebilir veya sitenize giren her kullanıcı başka bir dil seçmek isteyebilir ve ayarları çerezlerde uygun durumda saklamanız gibi dallanıp budaklanan sistemler olur, aynısı multiple-theme sistemler içinde geçerli.

    Dil içinde çok sade bir parse edilmemiş variable kullanımına örnek:
    {1} kullanıcısı hoş geldiniz.
    Fakat o kadar detaya girmeyeceğim. Basit bir dil sisteminde yaptığınız gibi Array içine tanımlı olan ifadeden uygun dil dosyasını include edebilirsiniz. Bu sayede basit bir multi-language sisteminiz olur
  • 23-08-2021, 19:41:50
    #6
    fskgrup adlı üyeden alıntı: mesajı görüntüle
    Merhaba size şunu önerirrim;

    languages/tr.php ve languages/en.php şeklinde bri yapı oluşturun.

    header yada config'de
    include("languages/".$_SESSION['lang']."php"); dosyasını projeye yerleştirin.

    dil dosyalarınızın içi aşağıdaki gibi olsun.


    Sonra örneğin product.php sayfasındasınız. üstte'de en.php ekli.

    Ürün fiyatı <?php echo $fiyat; ?>
    yaptığınız yeri şu şekilde güncelleyin
    <?php echo $_['text_price']; ?> <?php echo $fiyat; ?>
    text_? olan kısımları kendinize göre kurgulayın

    button_?
    table_?
    form_?
    error_?
    required_?
    şeklinde daha hızlı kod yazarsınız.

    birde veritabanı için bonus vereyim.

    Örnek ürünler tablonuz var.


    Sorgunuz da şu
    SELECT * FROM urunler u INNER JOIN urun_meta um ON u.urun_id=um.urun_id WHERE um.language='en'
    Hocamız gayet güzel bir yönet göstermiş. Bende bir kaç ekleme yapayım.

    $_Session['lang'] = $_SERVER['HTTP_ACCEPT_LANGUAGE'];
    Üsteki şekilde kullanıcının tarayıcı dili otomatik olarak belirlenip session değişkenine gönderiyor.
    Ekstra olarak;

    if(isset($_Post['dilsec']))
    { $_Session['lang'] == $_Post['dil']; }
    else { $_Session['lang'] == $_SERVER['HTTP_ACCEPT_LANGUAGE']; }
    Bu yöntem ile de kullanıcı seçim yapabilme imkanı sunabilirsiniz. Seçim yapmadığı takdirde sistem tarayıcının otomatik dilini seçenektir.

    Ayrıca $_Post['dil'] değişkenine seçilecek dilin değerini vermek gerekiyor. Ayrıca formun buton kısmına da name değeri olarak "dilsec" vermelisin.

    Kodu yazarken deneme imkanım olmadı hata çıkarsa yazarsın.