Skip to content

A Symfony bundle to deals with Google Translate API

License

WeCodePixels/GoogleTranslateBundle

 
 

Repository files navigation

GoogleTranslateBundle

SensioLabsInsight

Build Status Latest Stable Version Total Downloads

Features

  • Detect language used for a string
  • Translate a string from a source language to a target one
  • Translate a string into a target language by using language auto-detection (consume 1 more API call)
  • Retrieve all languages available on API and obtain language names in a given language
  • Profile detector / translate / languages list API calls in the Symfony profiler!

Installation

Add the bundle to your composer.json file:

{ "require" : { "eko/googletranslatebundle": "dev-master" } }

Add this to app/AppKernel.php

<?php public function registerBundles() { $bundles = array( ... new Eko\GoogleTranslateBundle\EkoGoogleTranslateBundle(), ); ... return $bundles; }

Configuration

Edit app/config.yml

The following configuration lines are required:

eko_google_translate: api_key: <your key api string>

Usages

Detect a string language

Retrieve the detector service and call the detect() method:

$detector = $this->get('eko.google_translate.detector'); $value = $detector->detect('Hi, this is my string to detect!'); // This will return 'en'

Translate a string

Retrieve the translator service and call the translate() method:

$translator = $this->get('eko.google_translate.translator'); $value = $translator->translate('Hi, this is my text to detect!', 'fr', 'en'); // This will return 'Salut, ceci est mon texte à détecter!'

Translate a string from unknown language (use detector)

Retrieve the translator service and call the translate() method without the source (third) parameter:

$translator = $this->get('eko.google_translate.translator'); $value = $translator->translate('Hi, this is my text to detect!', 'fr'); // This will return 'Salut, ceci est mon texte à détecter!'

Translate multiple strings

Retrieve the translator service and call the translate() method with an array of your strings:

$translator = $this->get('eko.google_translate.translator'); $value = $translator->translate(array('Hi', 'This is my second text to detect!'), 'fr', 'en'); // This will return the following array: // array( // 0 => 'Salut', // 1 => 'Ceci est mon second texte à détecter !', // )

Note that you can also use an "economic mode" to translate multiple strings in a single request which is better for your application performances.

Your translations will be concatenated in one single Google request. To use it, simply add true to the last argument:

$translator = $this->get('eko.google_translate.translator'); $value = $translator->translate(array('Hi', 'This is my second text to detect!'), 'fr', 'en', true); // This will return the following array: // array( // 0 => 'Salut', // 1 => 'Ceci est mon second texte à détecter !', // )

Obtain all languages codes available

Retrieve the languages service and call the get() method without any argument:

$languages = $this->get('eko.google_translate.languages')->get(); // This will return: // array( // array('language' => 'en'), // array('language' => 'fr'), // ... // )

Obtain all languages codes available with their names translated

Retrieve the languages service and call the get() method with a target language argument:

$languages = $this->get('eko.google_translate.languages')->get('fr'); // This will return: // array( // array('language' => 'en', 'name' => 'Anglais'), // array('language' => 'fr', 'name' => 'Français'), // ... // )

Notice: this will consume a detector API call.

About

A Symfony bundle to deals with Google Translate API

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • PHP 77.9%
  • HTML 22.1%