Herkese merhaba, bu yazımda PHP yazılımımıza nasıl çoklu dil ekleyebiliriz bunu anlatacağım. Kafanız karışmasın diye oldukça basit bir anlatım yapacağım. Söylediklerimi sıralamaya göre yaparsanız sorunsuz bir şekilde çoklu dil sistemine kavuşmuş olıursunuz.

Şimdi ilk olarak JSON ile çalışacağımızdan hostinginizde bulunan public_html klasörü içerisine Lang klasörü oluşturun ve bu klasör içerisine tr.json ve en.json dosyalarını oluşturun.


tr.json dosyasını açıp eklemek istediğiniz verileri şu şekilde ekleyin.


Buradaki verileri aynı şekilde en.json içerrisine ekleyip Türkçe alanları İngilizce'ye çevirebilirsiniz.

Şimdi sitenizin index.php ya da header.php'sine gelip şu kodu en üste ekleyin.

// Varsayılan Dil
if(!isset($_SESSION['lang'])){
$_SESSION['lang'] = 'TR';

}

// Değer değişince SESSION'ı güncelle
if(isset($_GET['lang'])){
if($_GET['lang'] == 'tr'){
$_SESSION['lang'] = 'TR';
}else{
$_SESSION['lang'] = 'OTHER';
}
}

Burada yaptığımız şey şu; eğer SESSION'da lang değeri yoksa lang'i TR'ye eşitle. Yani sitemiz varsayılan olarak Türkçe olarak açılacak.

Aşağıdaki bölümde ise değer değiştirdiğimizde SESSION'ı güncellemiş olacağız. Bu sayede istediğimiz dil dosyasına erişebileceğiz.

Aşağıdaki fonksiyon dosyasını ise, fonksiyonların bulunduğu PHP dosyasına ekleyebilirsiniz. Fonksiyon dosyasında bunu kolay bir şekilde çağırabiliriz.

function Lang($name){
$country = isset($_SESSION['lang']) ? $_SESSION['lang'] : null;
if($country == 'TR'){
$file = 'https://www.site.com/Lang/tr.json';
$read = file_get_contents($file, true);
$decode = json_decode($read, true);

return $decode[$name];
}else{
$file = 'https://www.site.com/Lang/en.json';
$read = file_get_contents($file, true);
$decode = json_decode($read, true);

return $decode[$name];
}
}
Burada yaptığımız işlem ise şu; SESSION'a göre JSON dosyasını çekiyoruz. Eğer SESSION, TR ise tr.json'ı diğer dil ise en.json'ı çağırıyoruz. Buradaki mantık ise çoğaltılabilir. TR, FR, DE gibi if else mantığıyla dili çoğaltabilirsiniz.

Buraya kadar sorunsuz bir şekilde geldiyseniz artık sonuca varmışsınız demektir. Aşağıdaki kod ile de dildeki değeri çağırabilirsiniz.

<?php echo Lang('latestPosts') ?>
Dilleri değiştirmek istediğiniz alanlarda bu şekilde kullanabilirsiniz.

Dili değiştirmek için de

http://www.site.com?lang=en

ya da

http://www.site.com?lang=tr

şeklinde kullanabilirsiniz.

Örnek için sitemi inceleyebilirsiniz :)

Umarım faydalı bir yazı olmuştur sizin için. Herhangi bir sorun yaşamanız durumunda yorum yaparsanız yardımcı olurum. Bir sonraki yazımda görüşmek üzere.