Kodları lütfen aşağıdaki butonları kullanarak renklendirin. Örnek: <php> echo "Selam Dünya"; </php>
Yardım
karakter kaldı

PHP Çoklu Dil Desteği

Hem sitedeki sabit metinleri, hem de veritabanından alacağım dinamik verileri birden çok dilde yayınlamak istiyorum. Bunun için sizce en sağlam yöntem nedir? Kodlama nesne yönelimli.

Daha önce kullandığım bir yöntem var ama bana çok ilkel geliyor. Veritabanındaki tabloda kolon adlarını şu şekilde ayarlıyorum; "isim | ülke | isim_en | ülke_en" ve sondaki eke göre verileri diğer dillerde kaydediyorum.

Şimdi düşündüğüm 10 kadar dile çevirmek. Bu yöntem pek mantıklı gelmiyor, illa ki daha güzel bir yolu vardır diye düşünüyorum. Fikirler için şimdiden teşekkürler.
+0
-0
Cevaba KatılıyorumKatılmıyorum
Cevap Yaz Yorum Yaz Arşivime Ekle Takip Et

Cevaplar

  • park adlı üyenin fotoğrafı
    9 yıl önce yazılmış
    14 cevap - 0 soru
    Çok uğraştık denedik, satırlarca kodlar yazdık, kodlarda açıklar çıktı, kapattık. vs. vs. vs. Yani yeni birşeyler bulmaya ve yapmaya gerek yok. Ömür kısa. Bir grup içinde kendine bir yer bulup orda devam etmenin daha avantajlı olduğunu zannediyorum.

    Diyeceğim, Zend Framework ile bir dene. Başlagıçta zordur. Gerisi php bilginize göre gelir.

    şurdan bir bakın. İşinize gelirse devam edin. kolay gelsin.

    http://www.zendcasts.com/introducing-zend_translate/2009/11/
  • uls adlı üyenin fotoğrafı
    9 yıl önce yazılmış
    65 cevap - 10 soru
    Hazır bir framework kullanmak istemiyorum, daha doğrusu bir framework'e bağlı kalmak istemiyorum.

    Proje henüz fikir aşamasında ama evet, dünyanın her yerinden ziyaretçi alacak bir site olmasını düşünüyorum. İçerik o şekilde yani.

    Sorumu biraz yanlış sordum galiba. Benim asıl problemim sitenin statik metinleri değil, veritabanından çekeceğim dinamik verilerde. Girilecek her verinin dil sayısı olmadan çevirileceği bir sistem oluşturmaya çalışıyorum.

    Aklıma tek gelen şey şöyle 2 tablo yapmak;
    tablo1; id | icerik_id | ...
    tablo2; icerik_id | tr | en | de ...
    bu şekilde bağlamak.

    Daha güzel bir yolunu bilen, kullanan vardır diye sordum.
    • uls adlı üyenin fotoğrafı uls
      Teşekkürler, ben de bunun hemen hemen aynısı bir sistem kullanacağım.

      languages tablosu;
      lang_id | language
      1 | tr
      2 | en
      ...

      contents tablosu;
      cont_id | content_name
      1 | anasayfa_baslik
      2 | anasayfa_icerik
      ...

      translates tablosu;
      id | cont_id | lang_id | content
      1, 1, 1, Anasayfa Başlığı
      2, 1, 2, Homapage Title
      3, 2, 1, Anasayfa içeriği
      4, 2, 2, Homapage content
      ...

      gibi bir şey yapacağım.
      9 yıl önce yazılmış
  • kralmermi adlı üyenin fotoğrafı
    9 yıl önce yazılmış
    102 cevap - 6 soru
    Hocam ben şu şekilde kullaniyorum

    lang tablosu
    id
    name
    shortname
    flag

    metintablom
    id
    status


    yeni bir lan ekledigim zaman ornegin türkçe diye bi dil ekleyelim

    insert into tbllang (name, shortname, flag) VALUES ('Türkçe', 'tr', 'tr.png');
    gibi olsun
    metintablomada hemen alan aciyor statustan sonra
    name_tr
    icerik_tr
    diye ayni işlemi kac dil eklersem ekleyim yapiyor dili sildigim zaman ordaki alanida sildiriyorum
    sitede cekerkende

    $_SESSION[aktfi_dil] = "tr"; //olsun

    $aktif_name = "name_".$_SESSION[aktif_dil];
    $aktif_icerik = "icerik_".$_SESSION[aktif_dil];

    select * from metintablom where id='1'
    while{................................................................}

    sitede cekerkende
    echo $Sonuc[$aktif_name];
    echo $Sonuc[$aktif_icerik];

    seklinde calistiyiroum bu mantiklada diledigim kadar da dil ekleyebiliyorum.
    mantigi geliştirmek size kalmiş ben bu sekilde istedigim kadar dili kullanabiliryorum anlamadiginiz bir nokta olursa soylemeniz yeterli
    kolay gelsin