TALHA KESKİN

Web Developer / UI Designer / Graphic & Web Designer

Kartal - İSTANBUL

Hoşgeldiniz. PHP, CSS, Javascript, jQuery, Bootstrap, PSD TO CSS, C#, .NET, Ajax, MsSQL, MySQL İşlerinizi yapabilirim.

Sosyal Profillerim
  • Yazı Detayı

PHP ile Çoklu Dil Yapmak

Bu Yazı PHP İçin Yazılmıştır.

Globalleşen web dünyası ile birlikte artık yapılan her web sitesinde birden çok dil entegrasyonu müşterilerimiz tarafından haklı olarak istenmeye başlandı. PHP ile Çoklu Dil Yapmak PHP’ye yeni başlayan birisi için zor bir kavramdır. İlerleyen zamanlarda ve PHP ile uygulamalar yazdıktan sonra ise daha basit hale gelmektedir. Bende bu yazımda PHP ile Çoklu Dil Yapmak konusunu ele almak istedim.

Tüm PHP konularıma Buradan ulaşabilirsiniz

Avantajları

PHP ile çoklu dil yapımının bir çok avantajı vardır. Öncelikle yapılan web sitesi global hale gelmektedir. Türkçe olarak yapılan bir web sitesi sadece Türklere hitap ederken, birden çok dil ekleyerek uygulama global milletlere hitap etmeye başlar. Bu nedenle özellikle satış amacı güdülen uygulamalarda daha fazla kar elde etmek mümkündür. Tüm bunların yanında daha fazla millete hitap eden özellikle Saç Ekimi, Güzellik Merkezleri, E-Ticaret Siteleri, Turizm siteleri gibi pek çok alanda kullanılmaktadır.

PHP ile Çoklu Dil Yapmak İçin Neler Gerekli ?

Öncellikle PHP’de Junior diye tabir ettiğimiz acemilik dönemini atlatmak gerekiyor. Bunun dışında PHP’de sabit değişken kavramına yabancı olmamak gerekiyor. Ayrıca MySQL veya diğer veritabanı dillerinde normalizasyon kavramını da bilmek gerekiyor.

Kaç türü var

PHP’de çoklu dil yapımının iki türü var diyebilirim.

  1. Sınırsız Dil
  2. Belirli Diller

Bizim bu konuda ele alacağımız belirli dillerin yapımı olacak. Sınırsız dil olayını da başka bir konumda ele almayı düşünüyorum.

Eğer hazırsak anlatıma geçebiliriz.

Öncelikle uygulamamızda Türkçe ve İngilizce dillerinin olduğunu varsayalım.

  1. Veritabanımızda turkcedil ve ingilizcedil şeklinde 2 tablo oluşturalım. Tabloların her ikisinde de id, baslik, karsilik alanları olsun ve id otomatik artan ve birincil anahtar niteliğinde olsun.
  2. uygulamamıza diller isminde bir klasör açalım ve içerisinde TR.php, EN.php şeklinde 2 PHP dosyası açalım.
  3. oluşturduğumuz tablolara sırası ile id -> 1 header_başlık->anasayfa karsilik->Anasayfa şeklinde kayıtlar girelim
  4. oluşturduğumuz ingilizce tablosundaki kaydımızın karsilik alanındaki Anasayfa değerini Home yapalım.

PHP ile Çoklu Dil Yapmak

Dil dosyalarının içerikleri

TR.php dosyasına aşağıdaki kodları yazalım

EN.php dosyasına aşağıdaki kodları yazalım

Uyarı : Ben burada kendi yazdığım veritabanı sınıfını kullandım. Yapılan işlem tablodaki tüm alanları çekip döngüye sokup sabit değişken haline getirmektir.

Şimdi index.php dosyamızı oluşturalım ve içerisine şu kodları yazalım

Burada yaptığımız işlem Eğer GET’den gelen bir dil parametresi varsa dili o parametreye eşitlemek. Eğer yoksa dili varsayılan olarak TÜRKÇE olarak açmak olacak. daha sonra header_baslik isimli dil değişkenimizi yazdırıyoruz.

Şimdi index.php dosyamıza index.php?dil=TR şeklinde girersek Anasayfa index.php?dil=EN olarak girersek Home yazdığını göreceksiniz.

Bunun bir ileri versiyonunda veritabanına kayıtlarımızı türkçe ve ingilizce olarak eklemek var. Şimdi veritabanımıza index isimli bir tablo oluşturalım ve id,baslikTR,baslikEN alanlarını oluşturalım. Kayıt olarak id->1, baslikTR->Türkçe İçerik,baslikEN->İngilizce içerik girelim.

index.php dosyamızı aşağıdaki gibi güncelleyelim

Not ben burada kendi yazdığım veritabanı sınıfımı kullandım aslında yapılan işlem index tablosundan eğer dil TR ise baslikTR, değilse baslikEN alanını çekmektir.

Şimdi index.php’yi index.php?dil=TR olarak çalıştırdığınızda Anasayfa ve Türkçe İçerik, index.php?dil=EN olarak çalıştırdığınızda Home ve İngilizce İçerik yazılarını göreceksiniz

Hepsi bu kadar. Ben bu yazımda basite indirgeyerek anlatmaya çalıştım. Tabi tüm bu işlemleri otomatik hale getiren daha ileri metotlar var ama hepsi bu yazıdaki temele dayanmaktadır.


Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

*

*

*