Başlıkta da bahsettiğim gibi tüm siteler için uyumlu çoklu dil desteği modeli geliştirdim. Tarayıcı dilini otomatik algılıyor ve eğer tarayıcı dilinin çevirisini yapmışsak otomatik açılıyor eğer yapmamışsak orjinal (default) site dili kullanıcıya gösteriliyor.

Bunun için basit ve kullanışlı bir kod geliştirdim. Bu sitemle dilerseniz çeviri yaptığınız dile uygun logo da katabiliyorsunuz.

Öncelikle klasör ve gerekli dosyaları listeleyelim

Başlangıç klasörümüz "lang" olacak. "lang" klasörü içinde tarayıcı dilini algılayan ve ona göre dilleri çağıran"language.php" dosyası ve dilleri ekleyeceğimiz "code" klasörü olacak.

"language.php" kodu


set_time_limit(0);
error_reporting(0);
date_default_timezone_set('Europe/Istanbul');

//tarayıcı dilini algılayan kodumuz. Örneğin Türkçe ise tr, ingilizce ise en şeklinde algılıyor
$lang = substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2);

//bu kodumuz bulunduğumuz dizini bize verir
$dir = dirname(__FILE__);

//aşağıdaki kodlar çeviri yaptığımız dillerin dizinlerini bize verir
$filename = "$dir/code/$lang.php";
$file = "code/$lang.php";


//aşağıdaki kodlar, algılanan tarayıcı dili code klasöründe mevcut ise o dil dosyasını çağır eğer yok ise orjinal site dilini göster anlamını ifade etmektedir. else kodundan sonra yazılan dil dosyasını ben en.php şeklinde belirledim. Yani sitemin orjinal dili ingilizce de görünmesini istiyorum. Örneğin tarayıcı dili Arapça lakin ben o dili çevirmemişsem site dilim otomatik olarak ingilizce olarak kullanıcıya görünecektir. Tabi siz bunu Türkçe de yapabilirsiniz. Lakin global dünyada en çok konuşulan dil İngilizce olduğu için orjinal dilin İngilizce olarak gözükmesi daha mantıklı. Ve ayrıca aşağıda açıklama da belirttiğim gibi dile göre logo özelliğini kullandım. Eğer çeviri dili var ise ona göre logoyu da bu şekilde ayarlayabilirim.

if (file_exists($filename)) {
include("".$file."");
$logo = "logo-$lang.png";
} else {
include("code/en.php");
$logo = "logo-en.png";
}
?>


"code" klasöründe olan dil kodları...

Burası tamamen sitenize özel çevirilerin olduğu bölümdür. Sitenizde nereyi çeviri yapacaksanız değişkene atayıp çeviri metnini ekleyebilirsiniz.

Bu dosyayı da dil koduna göre kaydedin. aşağıdaki örnek çeviri dilleri biri Türkçe olduğu için dosya ismi tr.php diğeri İngilizce olduğu için en.php olması gerek. Bunu yaparken de dil kodlarını bilmeniz gerek. Bunun için aşağıdaki adresten dil kodlarını inceleyip ona göre çeviri yapmanızda fayda buluyorum.

Global Dil ve Ülke Kodları: http://www.lingoes.net/en/translator/langcode.htm

Türkçe Dil için tr.php dosyası

//tr dil kodunu TR ise ülke kodunu simgeler. TR Turkey yani Türkiye devletini ifade eder. Yani bir nevi Türkiye Türkçesi
$lang_code = "tr-TR";
$html_lang = "tr";

$lang_son_sayfa = "Son Sayfa";
$lang_ilk_sayfa = "İlk Sayfa";
$lang_ana_sayfa = "Ana Sayfa";

?>


İngilizce Dil için en.php dosyası

//en dil kodunu US ise ülke kodunu simgeler. US United States yani amerika birleşik devletlerini ifade eder. Yani bir nevi Amerikan İngilizcesi
$lang_code = "en-US";
$html_lang = "en";

$lang_son_sayfa = "Last Page";
$lang_ilk_sayfa = "First Page";
$lang_ana_sayfa = "Home";

?>


Yukarıda örnek olarak Türkçe ve İngilizce çevirilerinin nasıl yapılacağını açıkladım. Bunu kullanmak için yapmanız gereken tek şey hangi sayfayı çevirdiyseniz o sayfanın header.php dosyasına yada bu yoksa direk olarak çeviri yaptığınız dosyaya



Yukarıdaki gibi eklemeniz gerek. Daha sonra çeviri yapmak istediğiniz bölüme dil dosyasına atadığınız değişkeni yapıştırmanız gerek Örneğin;





Yukarıdaki gibi eklemeniz yeterli olacaktır. Örnek kodları aşağıda verdiğim linkten indirebilir ve kendinize göre düzenleyebilirsiniz.

Şimdiden Herkese iyi günler dilerim.

Örnek Kodları İndir: http://appstrdesign.com/lang.zip

Örnek Kullanılan Site: http://mp3indir.fun

Örnek Siteden Görüntüler

Tarayıcı dili ne ise site aşağıdaki gibi görüntülenmektedir. Geçerli dili ben ingilizce yaptım. Ve toplamda en çok kullanılan 22 dile siteyi çevirdim. Aşağıda bazılarının görünümünü sizler için örnek babında yükledim.


Orjinal Dil Türkçe



Arapça



İngilizce



Japonca