PHP - Traduzindo Textos via API do Google Translation

Olá meus Unicórnios! 🦄✨

Traduzir grandes quantidades de texto manualmente é loucura, um tempo gigante sendo perdido.

Uma solução barata é utilizar a API do Google Translation, para isto, primeiramente, precisamos criar uma API KEY.

Gerando nossa API KEY

Acesso o Console de APIs do Google:

Google Cloud Platform
Google Cloud Platform lets you build, deploy, and scale applications, websites, and services on the same infrastructure as Google.

Crie ou selecione um dos projetos:

Clique em "Credenciais" e clique em "Criar Credenciais -> Chave de API":

Copie a API KEY:

Agora precisamos ativar o Google Translation neste Projeto, para isto, clique em "APIs e Serviços Ativados" e em seguida em "ATIVAR APIS E SERVIÇOS":

Procure por "Cloud Translation API":

Clique em "Cloud Translation API":

Clique em "Ativar":

Pronto! Agora já podemos utilizar a API.

Fazendo uma Tradução

Para este teste, iremos traduzir o texto "Oi" do Português para o Inglês.

As traduções são feitas, enviando um POST para:

https://translation.googleapis.com/language/translate/v2

Com os parâmetros a seguir:

  • q: O texto Origem
  • source: O idioma de Origem, neste exemplo, "pt-BR"
  • target: O idioma de Destino, neste exemplo, "en"
  • key: A API Key que geramos no Console da Google

O retorno, será uma HttpCode 200, onde a tradução fica em "data.translations[0].translatedText":

{
  "data": {
    "translations": [
      {
        "translatedText": "Hey"
      }
    ]
  }
}

No final, iremos ter uma requisição semelhante a requisição abaixo:

<?
// ----------------------

$Params				            = array();
$Params["key"]		            = "XXXXXXXXXXXXXXXXX";
$Params["q"]		            = "oi";
$Params["source"]		        = "pt-BR";
$Params["target"]		        = "en";
$ParamsTxt			            = http_build_query($Params);

// ----------------------

$ch            	 	            = curl_init();		
curl_setopt($ch, CURLOPT_URL, "https://translation.googleapis.com/language/translate/v2");
curl_setopt($ch, CURLOPT_POSTFIELDS, $ParamsTxt);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_FILETIME, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_TIMEOUT, 30);
$GetUrl            	            = curl_exec($ch);		
$GetUrl2            	        = json_decode($GetUrl, true);
curl_close($ch);

// ----------------------

echo $GetUrl2["data"]["translations"][0]["translatedText"];

// ----------------------
?>

Por hoje é só, meus unicórnios! 🦄✨

Que a magia do arco-íris continue brilhando em suas vidas! Até mais! 🌈🌟