Daha önce ki scriptimde kullanmış olduğum php çoklu dil dosyasını adım adım nasıl yaptığımı kısacası php dil dosyası yapımını anlatacağım. Sitenizin kodlama dilinin php olması gerektiğini en başta belirteyim. Eğer html bir siteniz var ve php ye hiç bulaşmak istemiyorum diyorsanız google translate kullanarak sitenizde uygun gördüğünüz herhangi bir yere google translate kodlarını ekleyebilirsiniz.

Çeviri yapacağınız sayfada olması gereken kod betiği

Aşağıda ki kodları çevirinin gerçekleşeceği her sayfaya ekleyebilirsiniz. index.php açılış sayfası olduğunu varsayarak oraya eklediğinizi düşünelim.

<?php
	session_start();
	if (!$_SESSION["dil"]){
		require("dil/tr.php");
	}else {
		require("dil/".$_SESSION["dil"].".php");
	}
?>

 Dil fonksiyonu

Aşağıda ki kodları dil.php olarak kaydedelim. Aşağıdaki kod sitenizde iki adet dil olacağı varsayılarak yazılmıştır. tr ve en olmak üzere Türkçe ve İngilizce iki dil olacağı belirtilmiştir.

<?php
session_start();
$dil	=strip_tags($_GET["dil"]);
if ($dil =="tr" || $dil == "en"){
	$_SESSION["dil"] = $dil;
	header("Location:index.php");
}else {
	header("Location:index.php");
}

?>
Yukarıdaki haliyle dil değişimi sayfa içinde gerçekleştikten sonra sizi index.php’ye yönlendirir. Bulunduğunuz sayfada dil değişimi gerçekleşsin ve sizi başka bir sayfaya yönlendirmesin istiyorsanız aşağıdaki minnak değişikliği yapmanız yeterli olacaktır.
<?php
session_start();
$dil =strip_tags($_GET["dil"]);
if ($dil =="tr" || $dil == "en" || $dil == "de" || $dil == "ru"){
 $_SESSION["dil"] = $dil;
 header("location: ".$_SERVER['HTTP_REFERER']."");
}else {
 header("Location:index.html");
}
?>

Eğer Türkçe ve İngilizce dilin yanısıra Rusça, Almanca diye farklı başka dillerde tanımlayacaksak yukarıda ki kodda işaretli olan if satırını şu şekilde değiştirebilirsiniz.

if ($dil =="tr" || $dil == "en" || $dil == "de" || $dil == "ru")

 Dil dosyası hazırlanması

Birden fazla dil olduğu için her ayrı dile, ayrı bir dil.php dosyası oluşturacağız. Örneğin; tr.php, en.php. ru.php gibi

Bundan dolayı tüm bu dosyaları tek bir klasörde toplamakta yarar var. dil adında bir klasör oluşturalım. Klasörümüz index.php ile aynı dizinde olsun. Aşağıda tr.php yani Türkçe dil dosyasının içeriğini görüyorsunuz.

<?php
$dil = array(
"anasayfa"		=> "Anasayfa",
"pvplinkekle"	        => "Pvp Link Ekle",
"dilseciniz"	        => "Dil Seçiniz",
"trdil"			=> "Türkçe",
"ingdil"		=> "İngilizce",
"baslik"		=> "Başlık",
"durum"			=> "Durum",
"servertipi"	        => "Server Tipi",
"git"			=> "Git",
"yorumbirak"	        => "Bir Yorum Bırakın...",
"adsoyad"		=> "Adınız ve Soyadınız...",
"email"			=> "Eposta Adresiniz...",
"yorum"			=> "Yorumunuzu Yazın...",
"gonder"		=> "Gönder",
"onceki"		=> "Önceki",
"sonraki"		=> "Sonraki",
"acik"			=> "Açık",
"kapali"		=> "Kapalı",
);
?>

dil.php Dosyasının Mantığını Anlayalım

Sol tarafta bulunanlar bizim tüm diğer dil dosyalarımızda sabit kalacak olan kelimeler. Türkçe karakterler kullanmamaya özen gösterdik, bu kelimeleri sitemizin kodları arasında bulunan sabit kelimeler için anlaşılır bir isim olarak belirledik. Sağ tarafta bulunanlar ise; yalnızca tr.php dosyası için yani dil Türkçe seçildiğinde karşılığını almak istediğimiz kelimelerimiz.

Buna göre en.php dil dosyasının da içeriği şu şekilde olmalı

<?php
$dil = array(
"anasayfa"		=> "Homepage",
"pvplinkekle"	        => "Add Pvp Link",
"dilseciniz"	        => "Select Language",
"trdil"			=> "Turkish",
"ingdil"		=> "English",
"baslik"		=> "Title",
"durum"			=> "Case",
"servertipi"	        => "Server Type",
"git"			=> "Go",
"yorumbirak"	        => "I leave anywhere ...",
"adsoyad"		=> "Name and Surname...",
"email"			=> "Email address...",
"yorum"			=> "Write your comment...",
"gonder"		=> "Submit",
"onceki"		=> "Previous",
"sonraki"		=> "Next",
"acik"			=> "Open",
"kapali"		=> "Closed",
);
?>

 Dil dosyasının ziyaretçiye sunumu

index.php dosyamızda ziyaretçinin dil dosyasını seçebileceği bir dilden diğer bir dile geçiş yapacağı bir menü olduğunu varsayalım. Kodumuz örnek bir menünün html kod yapısı şu şekilde olmalı;[sociallocker id=4715]

<ul class="dropdown-menu" role="menu">
 <li><a href="dil.php?dil=tr">Türkçe</a></li>
 <li><a href="dil.php?dil=en">İngilizce</a></li>
</ul>

[/sociallocker]Buraya kadar her şey tamam Türkçe linkine tıklandığında dil.php?dil=tr dosyasına gidecek ve sayfa kapatılım yeniden açılıncaya kadar tr dosyası oturum boyunca aktif olacaktır. Tr dosyası varsayılan olarak ayarlanmıştır. Hiç bir dil seçilmezse yine tr dosyası ziyaretçiye sunulacaktır.

İngilizce linkine tıklandığındaysa dil.php?dil=en dosyası okunacak ve oturum boyunca Türkçe dil seçneği seçilmedikçe ziyaretçi İngilizce olarak sunum yapılacaktır.

Peki sitede bulunan sabit Türkçe kelimeleri nasıl değiştireceğiz

Bunun için yine menüden bulunan iki kelimeyi ele alalım. Türkçe ve İngilizce

Ben bu kelimelerin İngilizce dil seçildiğinde Turkish ve English olarak sunmak istiyorsam menü kodumu şu şekilde düzenlemeliyim

<ul class="dropdown-menu" role="menu">
 <li><a href="dil.php?dil=tr"><?php echo $dil["trdil"];?></a></li>
 <li><a href="dil.php?dil=en"><?php echo $dil["ingdil"];?></a></li>
</ul>

Burada değişen sadece şu oldu Türkçe kelimesinin yerini <?php echo $dil[“trdil“];?>

İngilizce kelimesinin yerini ise <?php echo $dil[“ingdil“];?> bu php kalıbı tüm değişen kelimeler için sabit olacak değişen ise sadece kırmızı ile işaretlediğim yerler.

Zaten en.php dil dosyamızın içinde

“trdil” => “Turkish”,
“ingdil” => “English”, karşılıklarını bu şekilde tanımlamıştık hangi kelimenin neyi ifade ettiğini bildiğimiz için kodu da yazan sizseniz çok kolay bir şekilde sitenize dil dosyası hazırlamış olursunuz.