PHP Translate Api İle Çoklu Dil
PHP translate api, translate php api, Yandex translate api, Yandex translate api php, php çeviri api, php translate api kullanımı, multi language php, php çoklu dil, php otomatik çoklu dil, php api çoklu dil yapımı
Müşterimin isteği üzerine araştırma yapıp sitesine çoklu dil desteği ekledim. Sitesinde ücretsiz api veren Yandex çeviriyi kullandım. Sizde araştırma yaptığınızda bu konuyla ilgili yeterli konu olmadığını olanların da artık çalışmadığını göreceksiniz. Sizlere bu yazıda tarayıcı dili ve session ile otomatik bir şekilde çeviri yapmayı anlatacağım. Hazır mısınız? Hemen başlayalım o zaman.
Yandex Translate Api Alma
Yandex translateyi kullanmamızda neden hem ücretsiz hem de apiyi kolay bir şekilde vermesidir. Buraya tıklayarak Yandex hesabıyla giriş yapın. Hesabınız yoksa hemen hesap açın. Giriş yaptıktan sonra soldaki menüden Account information ve Payment methods yazılara tıklayarak açılan yerleri doldurun. Artık 75$’lık ücretsiz krediye sahipsiniz Alanları doldurduktan sonra menüden Api keys yazısına tıklayıp api keyinizi oluşturun.
Yandex Translate Api Kullanımı
Örnek olması açısın bu başlıkta sadece nasıl kullanacağımızı göstereceğim.
$api = ""; $text = "merhaba batukay.com okuyucuları"; $from = "tr"; //Metnimizin dili $to = "en"; //Çevrilecek dil $url = 'https://translate.yandex.net/api/v1.5/tr.json/translate?key='.$api.'&lang='.$from.'-'.$to.'&text='.rawurlencode($text); $url = file_get_contents($url); $json = json_decode($url,true); echo $json['text'][0]; //hello batukay.com readers
Kodumuz yukarıdaki olduğundan ibaret. Fakat biz bunu hem fonksiyon haline hem de otomatik çevireceği dili belirleyecek hale getireceğiz.
Tarayıcı Dilini Çekip Sessiona Aktarmak
Sessiona aktarmaya ne gerek var diye dediğinizi duyar gibiyim. Çünkü örnek olarak tarayıcısının dili İngilizce’dir ama kendisi sadece Türkçeyi biliyordur. Bunun için de okuyucuya manuel olarak çeviri hakkı da vermemiz gerekecek.
if(!$_SESSION['language']){ $_SESSION['language'] = substr($_SERVER['HTTP_ACCEPT_LANGUAGE'],0,2); } //Language sessionunu kontrol ediyoruz. Eğer yoksa tarayıcı dilini sessiona aktarıyoruz.
Bu şekilde session kontrolü ve tarayıcı dilini sessiona aktarma işlemini tamamladık.
Manuel Dil Değişimini Yapmak
Okuyuculara yanlış dilde çeviri yapıldığı zaman bunu değiştirmeleri için çözüm yolu üretiyoruz.
<?php $lang = $_GET['lang']; if($lang){ session_start(); $lang = $_SESSION['language']; } ?> <a href="?lang=tr">TR</> <a href="?lang=en">EN</> <a href="?lang=de">DE/> //Bunları artırabilirsiniz.
Artık belirlediğiniz diller arasında değişiklik yapabilecekler. Tüm dilleri de isterseniz foreach ile rahatlıkla ekleyebilirsiniz.
Translate Api Fonksiyon İle Kullanımı
Şimdi asıl noktaya geldik. Tüm kodları birleştirip bir bütün yapalım. Bir tane fonksiyon oluşturalım adı da translate olsun.
function translate($text){ $api = ""; $from = "tr"; //Metnimizin dili $to = $_SESSION['language']; //Çevrilecek dil sessiondan aldık $url = 'https://translate.yandex.net/api/v1.5/tr.json/translate?key='.$api.'&lang='.$from.'-'.$to.'&text='.rawurlencode($text); $url = file_get_contents($url); $json = json_decode($url,true); return $json['text'][0]; //hello batukay.com readers }
Fonksiyonumuzu tamamladık. Çevrilecek dili de otomatik olarak sessiondan aktardık. Artık hepsini birleştirip olayı bitirelim.
<?php session_start(); //session kontrol if(!$_SESSION['language']){ $_SESSION['language'] = substr($_SERVER['HTTP_ACCEPT_LANGUAGE'],0,2); } //Language sessionunu kontrol ediyoruz. Eğer yoksa tarayıcı dilini sessiona aktarıyoruz. //fonksiyon function translate($text){ $api = ""; //api keyiniz $from = "tr"; //Metnimizin dili $to = $_SESSION['language']; //Çevrilecek dil sessiondan aldık $url = 'https://translate.yandex.net/api/v1.5/tr.json/translate?key='.$api.'&lang='.$from.'-'.$to.'&text='.rawurlencode($text); $url = file_get_contents($url); $json = json_decode($url,true); return $json['text'][0]; //hello batukay.com readers } //Dil değiştirme $lang = $_GET['lang']; if($lang){ $_SESSION['language'] = $lang; } ?> <a href="?lang=tr">TR</a> <a href="?lang=en">EN</a> <a href="?lang=de">DE</a> <!– Bunları artırabilirsiniz.-> Metnimiz: <?=translate("Merhaba Batukay.com Okuyucuları")?>
multi language php php api çoklu dil yapımı php çeviri api php çoklu dil php otomatik çoklu dil php translate api php translate api kullanımı translate php api Yandex translate api Yandex translate api php
Yorumlar (0)