PHP ile çok dilli web sayfası hazırlamak

Uzun zamandır PHP Eğitimi konusunda yazı yazmamıştım. Bugün size PHP ile nasıl Türkçe, İngilizce, Almanca gibi birçok dile hitap edecek web sayfaları hazırlanacağını anlatacağım. Bu iş için birçok yöntem var ama biz XML kullanacağız.


İlk önce aşağıdaki gibi bir XML dosyası oluşturup ismini languages.xml olarak kaydediyoruz. Bu XML dosyasını basit tutuk ve sadece title ve text etiketleri için dört dilde tanımlama yaptık. 

<?xml version="1.0" encoding="utf-8"?>
<root>
  <title>
    <tr>Merhaba</tr>
    <en>Hello</en>
    <fi>Moro</fi>
    <fr>Bonjour</fr>
</title>
  <text>
    <tr>Türkçe metin...</tr>
    <en>English text</en>
    <fi>Suomi texti höhöh.</fi>
    <fr>Le paguette ah hon hon hon.</fr>
  </text>
 
</root>

 
Ardından index.php dosyası oluşturup, içeriğini aşağıdaki gibi tanımladık.  Burada $_GET ile lang değişkenini alıyoruz ve 4 dilden biri olup olmadığını kontrol ediyoruz, hiçbir dil bulunamamışsa varsayılan olarak "tr" yani Türkçe kabul ediliyoruz.  Ardundan simplexml_load_file fonksiyonu ile XML dosyamızı dahil ediyoruz. Bu şekilde XML dosyasındaki tüm değişkenlere ulaşabileceğiz. XML dosyasındaki değişkenlere ulaşmak için $xml->title->$dil; şeklinde bir yol kullanıyoruz.
 
<?php
$dil= $_GET['lang'];
$diller=array('tr','en','fi','fr');
$bulundu= false;
 
if (in_array($dil, $diller))
$bulundu=true;
 
if (!$bulundu)
$lang='tr';
 
$xml = simplexml_load_file("languages.xml") or die("Diller ile ilgili xml dosyası bulunamadı.");
$baslik= $xml->title->$dil;
$metin = $xml->text->$dil;
?>
<h1><?php echo $baslik;?></h1>
<p><?php echo $metin;?></p>
<br>
Diller:
<br><p>
<a href="?lang=tr">TR</a>
<a href="?lang=en">EN</a>
<a href="?lang=fi">FI</a>
<a href="?lang=fr">FR</a>
</p>

Bu şekilde XML dosyanızın içinde tüm değişkenlerinizi yazıp çağırabilirsiniz. Burada her bir dil linkine tıklandığında aşağıdaki gibi sayfalar gelecek. 




Mutlu kodlamalar,
Oğuzhan TAŞ
Eylül 2017
 
Bookmark and Share