PHP Translate API çoklu dil desteği

PHP jQuery / Ajax Trend Makale

Bu makalemde PHP Translate API ile çoklu dil desteği olan bir uygulama yapacağız.

Günümüzde uluslar arası pazara erişmek oldukça kolay. Bu sebeple artık web sitelerinde birden fazla dil seçeneği zorunlu bir özellik haline geldi, ama tabi herkesin bildiği gibi site içeirğindeki tüm kelime ve cümleleri farklı farklı dillere teker teker çevireceğimizi düşünürsek baya uğraştırıcı bir iş. indecision

Çok tembel birisi olduğum için teker teker uğraşmak yerine bir çözüm bulmak istedim ve yaptığım araştırmalar sonucu tamamen ücretsiz olan Google Translate API hizmeti buldum ve hemen uygulama haline getirdim, artık çevirileri teker teker yapmama gerek kalmadı.

# PHP Translate API çoklu dil desteği nasıl çalışıyor?

Tamamen ücretsiz PHP Translate API'yi composer ile kendi bilgisayarımıza indireceğiz ve çalılır bir hale getireceğiz. Normalde geliştiriciler dil değişim aksiyonlarını sessionlar ile yapıyorlar ama ben cookie ile yapacağım. Dil seçeneklerine bastığımız zaman Jquery ile POST işlemi yaptıracağız ve cookie'ye hangi dili seçtiğimizi söyleceğiz, kafanızı daha çok karıştırmadan uygulamamıza geçelim.

PHP Translate API çoklu dil desteği uygulaması

PHP Translate API çoklu dil desteği uygulaması

İlk adımımız kullancağımız API'yi composer ile kendi bilgisayarımıza kurmak. Ücretsiz PHP Translate API Github Sayfası

Composer:

composer require statickidz/php-google-translate-free
Bilgi!
Eğer bilgisayarınızda composer kurulu değilse yukarıda ki kodu Terminalinize girmeniz bir işe yaramaz.

 

Başlamadan önce Ajax kullanabilmemiz için jquery kütüphensini, görünümün biraz daha estetik olması için boostrap kütüphanesini projemize dahil etmemiz gerekiyor, ayrıca ajax kodlarımızı yazabilmemiz içinde ayrıca bir js dosyası oluşturalım.

Dosya yapımız aşağıdaki gibidir.

  • assets/ => bootstrap.min.cssmaster.cssjquery.min.jsmaster.jstr.svg / en.svg
  • vendor/ API dosyaları
  • index.php
  • cookie.php

Dosyları İndirebilmeniz için bağlantı veriyorum ama vendor/ klasörünü vermiyeceğim, composer ile sizin indirmeniz daha doğru olur. Dosyaları İndirin

index.php

HTML taglarımızı oluşturalım ve dosyalarımızı içe aktaralım.

<!DOCTYPE html>
<html lang="en" dir="ltr">
<head>
  <meta charset="utf-8">
  <title>PHP Translate API ile dil sistemi</title>
  <link rel="stylesheet" href="assets/bootstrap.min.css">
  <link rel="stylesheet" href="assets/master.css">
</head>
<body>

   <!-- Buraya aksiyonlar gelecek! -->

  <script src="assets/jquery.min.js"></script>
  <script src="assets/master.js"></script>
</body>
</html>

şimdiyse index.php dosyamızın en üstünde PHP Translate API'yi dahil edelim ve daha rahat kullanabilmemiz için fonksiyon haline getirelim. 

<?php
require_once 'vendor/autoload.php';
use Stichoza\GoogleTranslate\GoogleTranslate;

function translate($text){
  $translation = new GoogleTranslate();
  // Sitenin mevcut dili.
  $currentLanguage = "tr";
  $translation->setSource($currentLanguage);
  // Sitenin çevrilmesi istenen dil. Cookie bize bu bilgiyi verecek.
  $translation->setTarget((empty($_COOKIE["language"])) ? $currentLanguage : $_COOKIE["language"]);

  return $translation->translate($text);
}
?>

PHP Translate API'miz projemize dahil oldu artık çalışır halde. Oluşturduğumuz fonksyionu aşağıdaki gibi kullanabilirsiniz.

echo translate("Merhaba Dünya");

Şimdi index.php dosyamıza dönelim ve tasarım kısmını yapalım.

index.php

<?php
require_once 'vendor/autoload.php';
use Stichoza\GoogleTranslate\GoogleTranslate;

function translate($text){
  $translation = new GoogleTranslate();
  $currentLanguage = "tr";
  $translation->setSource($currentLanguage);
  $translation->setTarget((empty($_COOKIE["language"])) ? $currentLanguage : $_COOKIE["language"]);

  return $translation->translate($text);
}
?>
<!DOCTYPE html>
<html lang="en" dir="ltr">
<head>
  <meta charset="utf-8">
  <title>PHP Translate API ile dil sistemi</title>
  <link rel="stylesheet" href="assets/bootstrap.min.css">
  <link rel="stylesheet" href="assets/master.css">
</head>
<body>

  <!-- Tasarım Kısmı -->
  <div class="container text-center mt-5">
    <img src="assets/tr.svg" data-language="tr" class="language" width="4%">
    <img src="assets/en.svg" data-language="en" class="language" width="4%">
    <h1><?= translate("Selam, bugün nasılsın?") ?></h1>
    <p><?= translate("Bugün hava çok güzel, günün tadını çıkar!") ?></p>
  </div>
  <!-- Tasarım Kısmı -->

  <script src="assets/jquery.min.js"></script>
  <script src="assets/master.js"></script>
</body>
</html>

Tasarım kısmında <img> etiketimizin içine data-language="" adlı bir parametre belirledik, bu parametrenin değerine sitenin çevrilmesini istediğimiz dilin kısaltılmış kodunu yazacağız. tr, en, ru gibi.

data-language="" parametresi, içindeki değeri ajax kodlarımıza göndermemize yarayacak. Hadi şimdi Ajax ile post işlemine geçelim.

master.js

Bu kısımda data-language="" adlı parametrenin içinde ki değeri ajax ile cookie.php adresine post edeceğiz ve cookie'ye sitenin hangi dile çevrimlesi gerektiğini belirteceğiz.

// Eğer class değeri .language olan bir objeye tıklanır ise aksiyon başlayacak.
$(".language").click(
  function(events){
    $.post("cookie.php",{
      language:$(this).data("language"),
    },(res)=>{
      console.log(res);
    })
  })

İşte bu kadar, şimdi Sağ Tık + İncele yaparak aşağıda ki görünüme geçelim.

Bayrak ikonuna tıkladığımızda adı language olan cookie değerinin değiştiğini göreceksiniz. Dil değiştirdikten sonra F5 kombinasyonu ile sayfayı yenileyin, dil otomatil olarak translate olur.

Umarım yaptığım uygulama sizin için yeterli olmuştur. Ayrıca Ücretsiz Whois API adlı yazımızı da okuyabilirsiniz.


Yorumlar (0)

    Bu yazıya henüz bir yorum yapılmamış! İlk yorum yapan sen ol!