samsonphp/google_translate

Google Translate SamsonPHP module

1.0.1 2015-01-27 10:21 UTC

This package is not auto-updated.

Last update: 2024-04-13 14:29:14 UTC


README

Latest Stable Version Build Status Code Coverage Total Downloads Scrutinizer Code Quality Stories in Ready

##Configuration

Before using translate module methods, you must create configuration and enter your Google API Key for using Google Translate API

All you need is create configuration class which is working thanks to SamsonPHP module/service configuration:

class Google_TranslateConfig extends \samson\core\Config
{
    public $apiKey = 'Your_Google_API_Key';
}

Creating translate request

After creating configuration you can make request to Google Translate API. To create simple request you must define source language of your text and target language which you want to get. To identify languages you can use source($source) and target($target) methods.

For example you want to translate 'Hello World' to french:

/** @var \samson\google\Translate $trans Get SamsonPHP GoogleTranslate module */
$trans = & m('google_translate');

// Source text
$helloWorld = 'Hello World';

// Translated text
$bonjourLeMonde = $trans->source('en')->target('fr')->trans($helloWorld);

Fixing translation errors

If you have some problems with API Key or you have make some errors in defining source or target locales, you will get error from Google Translate API. You can check status of your request using method lastRequestStatus():

/** @var \samson\google\Translate $trans Get SamsonPHP GoogleTranslate module */
$trans = & m('google_translate');

// Source text
$helloWorld = 'Hello World';

// Translated text
$bonjourLeMonde = $trans->source('gb')->target('fr')->trans($helloWorld);
echo 'Translated string - "'.$bonjourLeMonde.'"; <br>';

// Is false, because gb locale is not found in Google language codes.
echo 'Request status is '.$trans->lastRequestStatus();

Using this code you will get:

Translated string - "Invalid value";
Request status is false

Translate array of information using just one request

If you need to translate a lot of strings, the best way is define array of your strings as trans($data) parameter. Simple example:

/** @var \samson\google\Translate $trans Get SamsonPHP GoogleTranslate module */
$trans = & m('google_translate');

// Source strings
$myStrings = array('white dog', 'cat', 'rabbit', 'squirrel');

// Translate it
$myTranslatedStrings = $trans->source('en')->target('fr')->trans($myStrings);

// Look at the response
print_r($myTranslatedStrings);

If your Google API Key is active, you will get this data:

Array
(
    [white dog] => chien blanc
    [cat] => chat
    [rabbit] => lapin
    [squirrel] => écureuil
)

This module is working using Google Translate API