• 04-09-2013, 12:07:38
    #10
    Üyeliği durduruldu
    loc adlı üyeden alıntı: mesajı görüntüle
    Zaten çoğunluk olarak böyle yapılıyor. Peki bulunduğun sayfanın diğer dildeki çevirisini nasıl gösteriyorsun? Mesela bir ingilizce makale içindesin ama ziyaretçi bunun türkçesini görmek istiyor. Önce Türkçe siteye geçip oradan aynı makaleyi mi bulacak bu adam yoksa makalenin başına veya sonuna bu makalenin Türkçe çevirisini oku şeklinde bir linke tıklayıp oradan mı okuyacak.

    1. yani senin de dediğin yöntem kullanılırsa basit bir çeviriden farkı kalmıyor. 2. yöntem uygulanırsa daha dinamik olur ve tablo yapısı https://www.r10.net/1067852207-post2.html burada söylediğim şekle gelir mesela.

    Sizce hangisi daha mantıklı?
    Hocam Aynı Makalenin Cevirisi İçin Hiç Ugrasmadım.

    Mesela Diyelim İngilizce Dile Tıkladı. Sadece İngilizce Olanlar Cıkıyor Tr ye Tıkladıgında Sadece tr Cıkıyor.

    Sabit Linklerde İse Direk Bir Sayfa içindeyken ingilizce Dile Tıklandıgında İngilizce Dildeki Sayfasına Geçiyor.

    örnek yaptıgım bir çalışma bimas.com.tr

    girerseniz mantıgı görebilirsiniz geneli sabit link buradaki verilerin.

    haberler ve bazı sayfalar hariç
  • 04-09-2013, 13:13:50
    #11
    Sample adlı üyeden alıntı: mesajı görüntüle
    Hocam Aynı Makalenin Cevirisi İçin Hiç Ugrasmadım.

    Mesela Diyelim İngilizce Dile Tıkladı. Sadece İngilizce Olanlar Cıkıyor Tr ye Tıkladıgında Sadece tr Cıkıyor.

    Sabit Linklerde İse Direk Bir Sayfa içindeyken ingilizce Dile Tıklandıgında İngilizce Dildeki Sayfasına Geçiyor.

    örnek yaptıgım bir çalışma bimas.com.tr

    girerseniz mantıgı görebilirsiniz geneli sabit link buradaki verilerin.

    haberler ve bazı sayfalar hariç
    Şuanda yaptığın siteyi inceledim. Yaptığın mantığı bende kullanıyorum ona birşey dediğim yok. Ama şöyle bir durum var ki hakkımızda sayfasına girip ingilizceye bastığımda yine türkçe hakkımızda sayfası çıktı karşıma. Ben buna sunulabilecek alternatifi anlatmaya çalıştım ilk mesajımda Yani adam hakkımızda sayfasına girmişken ingilizceye bastıysa eğer about us çıksın direk karşısında. Olması gereken de normalde budur. Bir sonraki projemde bunu yapacağım mesela ben. Şuanki sitemde

    id - title - text - lang şeklinde tutuyorum verileri. Türkçe ise tr İngilizce ise en şeklinde değer veriyorum lang sütununa. Ama yeni projemde direk var olan içeriğin çevirisini gösterebilmek için

    id - title_tr, title_en, text_tr, text_en gibi bir yapıya geçeceğim.
  • 04-09-2013, 14:03:52
    #12
    Üyeliği durduruldu
    loc adlı üyeden alıntı: mesajı görüntüle
    Şuanda yaptığın siteyi inceledim. Yaptığın mantığı bende kullanıyorum ona birşey dediğim yok. Ama şöyle bir durum var ki hakkımızda sayfasına girip ingilizceye bastığımda yine türkçe hakkımızda sayfası çıktı karşıma. Ben buna sunulabilecek alternatifi anlatmaya çalıştım ilk mesajımda Yani adam hakkımızda sayfasına girmişken ingilizceye bastıysa eğer about us çıksın direk karşısında. Olması gereken de normalde budur. Bir sonraki projemde bunu yapacağım mesela ben. Şuanki sitemde

    id - title - text - lang şeklinde tutuyorum verileri. Türkçe ise tr İngilizce ise en şeklinde değer veriyorum lang sütununa. Ama yeni projemde direk var olan içeriğin çevirisini gösterebilmek için

    id - title_tr, title_en, text_tr, text_en gibi bir yapıya geçeceğim.
    Şuan Çok İyi Anladım Hocam Anlatmak İstediginiz Mantıgı.

    Kafama Yattı Harbiden bende bu mantıga geçeyim yavaş yavaş)
  • 05-09-2013, 11:04:46
    #13
    arkadaşlar çok dilli siteler her dil için sütun yaratmak çok mantıksız 6 dilli bir sitede
    text_tr , text_en, text_fr, text_ru, text_de falan diyemi yaratacaksınız??
    hadi müşteri 6ay sonra arapçayı istedi gidip her tabloya text_ar mı ekliceksiniz elinizle?
    ben her satıra dil sütunu oluşturdum veriyi girdikten sonra artık hangi GET ten giriyorsa onu ekliyor onda sıkıntı yok ayrıca aynı sayfalar için ortak kod oluşturuyorum mesela
    Hakkımızda sayfası id=>1 sayfa_kod=>md5(Hakkımızda) dil=>tr
    About Us sayfası id=>2 sayfa_kod=>md5(Hakkımızda) dil=>en

    böylece sayfalarda ortak düzenlemeler veya silme işleminde sayfa_kod unu kullanıyorum.

    Ama sormak istediğim bu değil

    örneğin ben xxx.com/hakkimizda.html linkine direk giriş yaparsam browser diline göre yazıyor veriyi yani ingilizceyse sayfa yine xxx.com/hakkimizda.html kalıyor ancak içerik ingilizce geliyor bunun sakıncası varmı? onu sormak istiyorum. Bi müşterim için yaptım bu sistemi önce google sadece varsayılan dili indexler diye düşünmüştüm ama türkçe sayfalarıda çekiyor sıkıntı yok. Korktuğum şey ise xxx.com/about-us.html i türkçe, xxx.com/hakkimizda.html i ingilizce indexlemesi??
    Doğrumu yapıyorum yanlışmı yapıyorum bilmiyorum.

    + olarak dil yapısı örneği vereyim

    lang.php }
    $diller_sorgu = $db->get_results("SELECT * FROM dil_degisken WHERE dil='". $_SESSION['lang'] ."'");
    foreach($diller_sorgu AS diller){
    foreach ($diller AS $key=>$value){
    define("__". $key . "__",$value);
    }
    }

    bunu header a include edersiniz.

    sonra sayfalar içinde

    <?=__ana_sayfa__;?> dersiniz böylece

    dil_degisken tablosunda ana_sayfa sütununda ve dil sütununda ortaklaşan veri neyse o çıkar.

    TABLO YAPISI
    id ana_sayfa dil
    1 Ana Sayfa tr
    2 Home Page en

    gibi.. Burdaki mantık nedir açıklayayım örneğin sisteme 3. dil eklemek istiyorsunuz hemen dil_degisken tablosuna 3. bir satır ekliyorsunuz ve sadece dil sütununa kullanacağınız ortak dil iso kodunu ekliyorsunuz

    3 "" fr
    3 "" ru

    2 dil daha eklemiş olduk

    sonra bu satırları dil sütununa göre döngüye sokup panelde editleme imkanı sunuyorsunuz.

    $diller = $db->get_results("SELECT * FROM diller");
    foreach($diller AS $dil)
    {
      $dil_degisken = $db->get_results("SELECT * FROM dil_degisken WHERE dil='". $dil->iso ."'");
      foreach($dil_degiskenler AS $dil_degisken) {
      foreach($dil_degisken AS $key=>$value)
      echo '<input type="text" name="'. $key .'"' value="'. $value .'"><br/>;
      }
    }
  • 19-10-2017, 11:29:10
    #14
    Vidoc Hocam anlatımınız için teşekkürler,
    Hocam Türkçe, İngilizce ve Almanca link yapısı nasıl olacak, diyelimki hakkimizda.php, iletisim.php ve ilanlar.php gibi sayfalarımızı Almanca veya İngilizce çağırdığımızda link yapısı, Sayfalama ve bunu .htaccess`e html link olarak nasıl uygulamamız gerekiyor, bu konuda yardım edebilirmisin.
    teşekkürler.
    Vidoc adlı üyeden alıntı: mesajı görüntüle
    Arkadaşlar uzun zamandır döküman yazamıyordum ama bir anlık şevk ile bir döküman kaleme aldım hatalı kısımlar varsa lütfen belirtin. Forumumuz kodları bozduğu ve şu güzelim sitemizde kod ekleme eklentisi bulunmadığı için her kodun altına github linki vereceğim kodları oradan kontrol edin.

    Bu makalede web sitelerine çoklu dil desteği ekleme konusunu anlatmaya çalışacağım.

    Niçin Gerekli?
    Günümüzde firmalar için uluslar arası pazara erişmek oldukça kolay. Bu sebeple artık web sitelerinde birden fazla dil seçeneği zorunlu bir özellik haline geldi.

    Nasıl?
    Aslında mantık oldukça basit. Dile göre değişen kısımları bir değişkene atayacağız ve dil seçimine göre bu değişkenlerin değerini değiştireceğiz.

    Uygulama
    Şimdi örnek bir web sitesi düşünelim. Ben konuyu anlatmak adına sitenin menüsü üzerinden gideceğim. Siz de aynı mantıkla sitenin diğer kısımlarına bunu uygulayabilirsiniz. Örneğin sitemizde menümüz şu şekilde olsun.

    <ul>
    <li><a href= "index.php">Anasayfa</a></li>
    <li><a href= "hakkimizda.php">Hakkımızda</a></li>
    <li><a href= "iletisim.php">İletişim</a></li>
    </ul>

    Kodlar

    Şimdi menüde yer alan menü isimleri yerine değişkenler yazıyoruz. Böylece menü isimlerinin dinamik bir hal almasını sağlıyoruz.

    <ul>
    <li><a href= "index.php"><?php echo $diller[’anasayfa’];?></a></li>
    <li><a href= "hakkimizda.php"><?php echo $diller[’hakkimizda’];?></a></li>
    <li><a href= "iletisim.php"><?php echo $diller[’iletisim’];?></a></li>
    </ul>

    Kodlar

    Artık menü isimlerimiz dinamik. Sıradaki işlem bu değişkenlere seçilen dile göre uygun veriyi getirmek.
    Öncelikle sitemizin menü isimlerini tanımlayacağımız dil dosyaları oluşturacağız. Bunun için dil isimli bir klasör oluşturup içine tr.php ve en.php adında iki adet dil dosyası oluşturalım ve değişkenlerimizi burada tanımlayalım.

    //tr.php
    $diller[’title’] = "Test Sayfası - zaferk.com";
    $diller[’anasayfa’] = "Anasayfa";
    $diller[’hakkimizda’] = "Hakkımızda";
    $diller[’iletisim’] = "İletişim";

    //en.php
    $diller[’title’] = "Test Page - zaferk.com";
    $diller[’anasayfa’] = "Home";
    $diller[’hakkimizda’] = "About Us";
    $diller[’iletisim’] = "Contact";

    Kodlar

    Burada her dil dosyasında her bir menünün Türkçe ve İngilizce karşılığı için bir değişken oluşturuyoruz.
    Şimdi dil seçimi olayına bakalım. Dil seçimini session ile tutacağız.

    # Seçili dili kontrol ediyoruz
    if ($_SESSION[’dil’] == "en") {
    $dil = "en";
    }
    elseif ($_SESSION[’dil’] == "tr") {
    $dil = "tr";
    }
    else {
    # Eğer dil seçilmemişse tarayıcı dilini varsayılan dil olarak seçiyoruz
    $dil = substr($_SERVER[’HTTP_ACCEPT_LANGUAGE’],0,2);
    }

    Kodlar

    Burada sistemde seçilmiş bir dil varsa bu seçimi session’dan alıp değişkene atıyoruz. Eğer herhangi bir seçim yapılmamışsa tarayıcı dilini alıp onu varsayılan dil yapıyoruz.
    Sonraki aşama olarak dil seçme butonlarına bakalım. Dil seçim butonları yardımı ile kullanıcı seçimini kodlarımıza iletiyoruz. Ben normalde bu işi jQuery ile yapıyorum ancak burada get metodu üzerinden örnek vereceğim.

    Dil butonlarımız şu şekilde olsun.

    <a class="dilSec" href= "?dil=tr">TR</a>
    <a class="dilSec" href= "?dil=en">En</a>

    Kodlar

    Burada dil seçimini get metodu ile gönderiyoruz.
    Son olarak seçilen dilin sessiona atanması olayına bakalım. Burada get ile gelen dil verimizi session’a atıyoruz.

    # Dil seçimi yapılmışsa
    if($_GET[’dil’]) {
    # Dil seçimini session’a ata.
    $_SESSION[’dil’] = $_GET[’dil’];

    # Anasayfa’ya yönlendir.
    header("Location:index.php");
    }

    Kodlar

    Şimdi kodları toparlayıp yapıya genel olarak bakalım. Kodları sadece link ile veriyorum.

    Kodlar


    Buraya kadar olan kısım sistemin temeli ve bu temelin sitenin ana yapısı üzerine uygulanışı üzerine idi. Ancak çoklu dil yapısında dil seçimi değiştiğinde seçilen dile uygun içeriği de getirmeniz gerekir. Bu kısım sizin veri tabanı yapınız ile alakalı. Ben her bir dildeki veri için ayrı bir kayıt girildiği duruma göre olayı kısaca anlatacağım.

    //Tablo Yapısı
    id baslik icerik
    1 Hakkımızda Hakkımızda Yazısı.
    2 About US About us text.

    Buna göre hakkimizda.php’de şöyle bir kod yapısı işimizi görecektir.

    if ($dil == "en") {
    $ID = 2;
    }else {
    $ID = 1;
    }

    sorgu-> ... WHERE id = ’$ID’

    Dil yapısı genel olarak böyle. Bu mantık üzerine kodları kendi sisteminize uyarlayabilirsiniz.

    NOT: Bu makaledeki kodlar sadece çok dilli yapının mantığını anlatmak amacıyla örnek olarak verilmiştir ve kod güvenlik kontrolleri bulunmamaktadır. Kodları kendi sisteminize entegre ederken gerekli güvenlik önlemlerini alın.

    İyi çalışmalar. Bu makale sana yardımcı olur inş.
    Alıntı: Zafer K. arkadaşıma makalesi için teşekkürler.
  • 19-10-2017, 12:14:08
    #15
    Linkle tutmak yerine sessionla tutabilirsiniz. Bu sayede link yapısına gerek kalmaz
  • 19-10-2017, 12:24:40
    #16
    Merhaba Bay_Keskin Hocam
    PHP de yeniyim, örnek verebilirmisin Hocam, birde Türkçe, İngilizce, Almanca dillerini .htaccess`e html link olarak nasıl uygularız, bu konuda yardım edebilirmisin.
    teşekkürler.
    Bay_Keskin adlı üyeden alıntı: mesajı görüntüle
    Linkle tutmak yerine sessionla tutabilirsiniz. Bu sayede link yapısına gerek kalmaz