PHP ile Çoklu Dil Desteği Sistemi

PHP ile çoklu dil desteği sistemi örneğine değindim.

×

Merhabalar, sizlere bu makalemde PHP ile Çoklu Dil Desteği sisteminin işleyişi ve çalışma mantığına ilişkin açıklama ve örnekte bulunmak istedim.

Neden, Çoklu Dil Desteği ?

Çoklu Dil desteğini nerelerde kullanmalıyım ?

Hangi dilden sitemize girildiğini nasıl anlayabiliriz ?

Bunun bir çok alternatifi bulunabilir. Bunlardan bazıları ;

Daha da fazla kafanızı karıştırmadan ve ufkunuzun derinliklerine daha sonra inmenizi temenni ederek basit örneklere başlamak istiyorum;

Not: Her sitenin varsayılan bir dili olmak zorundadır. Çoklu dil sisteminin mantığı ise, her sitenin varsayılan diline ek olarak, alternatif bir veya birden fazla dil seçeneği sunuluyor olmasıdır.

Örneğin; Benim sitemin varsayılan dili Türkçedir. Benim siteme, varsayılan tarayıcı dili Türkçe (TR) olarak giren bir kişi, içeriklerimi Türkçe okur. Eğer varsayılan dili Türkçe değil ise, alternatif dil olarak, İngilizce dili içeriği görüyor olurlar.

Bir Not daha: Türkçe sadece Türkiyede konuşulmadığı gibi, Varsayılan tarayıcı dili, herhangi bir internet kullanıcısının ülkesi fark etmeksizin değiştirilebilinir. Yani Amerikada bulunan bir Türk de varsayılan tarayıcı dili Türkçe ise içeriğinizi Türkçe görüntüleyebilmektedir. Tarayıcı dil seçimleri lokasyona bağımsız çalışmaktadır.

Tarayıcı dilleri, dizi halinde listelenmektedir. Dizinin ilk elemanı aynı zamanda  varsayılan tarayıcı dili seçimidir.

Örnek 1 - PHP ile Tarayıcı Dilinin Algılanması

Örneğin dil.php için;
$step_one = $_SERVER['HTTP_ACCEPT_LANGUAGE'];
//echo $step_one;
$step_two = substr($step_one,0,2);
echo $step_two;
//Çıktı: tr

Örnek 2 - Tarayıcı dilinin algılanıp, ilgili dile göre içerik gösterilmesi

Örneğin index.php için;

include_once('diller.php');

echo $dil_dizisi[0];

diller.php için;

$dil = substr($_SERVER['HTTP_ACCEPT_LANGUAGE'],0,2);

if($dil=="tr"){
    $dil_dizisi[0]="Merhaba";
}else if($dil=="es"){
    $dil_dizisi[0]="Hola";
}else{ // Alternatif dili ifade eder
    $dil_dizisi[0]="Hello";
}

// Çıktı: Varsayılan dil seçimine göre değişecektir.

Test etmek için;
Firefox tarayıcısı için, Seçenekler > İçerik > Diller > Seç > En üstteki dili değiştirip test edebilirsiniz.

Örnek 3 - Klasörde bulunan dil dosyalarına göre içerik listelemek

$alternatif_dil = "en";
if(file_exists('diller/'.substr($_SERVER['HTTP_ACCEPT_LANGUAGE'],0,2) . '.php')) {
        include('diller/'.substr($_SERVER['HTTP_ACCEPT_LANGUAGE'],0,2) . '.php');
} else {
         include_once("diller/".$alternatif_dil.".php");
}
Açıklama;
Eğer diller klasörümün içinde 2 karakter uzunluğunda, şuanda sayfaya girdiğim tarayıcı dilinin dosyası varsa onu çek, eğer yoksa benim alternatif dil dosyamı göster.

Örnek 4 - Dil dosyaları dizi sistemi nasıl olabilir ?

İç içe diziler veya define kullanabilirsiniz.
💬 Yorumlar
Henüz yorum yapılmamış. İlk yorumu sen yap! 👆