PHP Translate Api İle Çoklu Dil

Batuhan Kaygusuz Kasım 20, 2021 12:10 am

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

Bir cevap yazın

+ 42 = 43

Yorumlar (0)

Bu yazıya ait yorum bulunamadı. İlk yorumu sen yapmak ister misin?