Como detectar idiomas (Basic)

Neste documento, você vê como usar a Cloud Translation – Basic (v2) para detectar o idioma de uma string.

Antes de começar

Antes de começar a usar a API Cloud Translation, é preciso ter um projeto em que ela esteja ativada e as credenciais apropriadas. Você também pode instalar bibliotecas de cliente para linguagens de programação comuns para ajudá-lo a fazer chamadas para a API.

Para ver mais informações, consulte a página Configuração.

Como detectar o idioma de uma string de texto

Para detectar o idioma de uma string de texto, envie uma solicitação HTTP usando um URL no seguinte formato:

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

Como detectar o idioma de uma única string

REST e linha de comando

Para detectar o idioma de um texto, faça uma solicitação POST e forneça o corpo apropriado. Veja a seguir um exemplo de uma solicitação POST usando curl ou PowerShell. Nele, é usado o token de acesso de uma conta de serviço configurada para o projeto que usa o SDK do Cloud do Google Cloud. Consulte a página Configuração para ver instruções de como instalar o SDK do Cloud, configurar um projeto com uma conta de serviço e conseguir um token de acesso.

Método HTTP e URL:

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

Corpo JSON da solicitação:

{
  "q": "Mi comida favorita es una enchilada."
}

Para enviar a solicitação, escolha uma destas opções:

curl

Salve o corpo da solicitação em um arquivo chamado request.json e execute o comando a seguir:

curl -X POST \
-H "Authorization: Bearer "$(gcloud auth application-default print-access-token) \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
https://translation.googleapis.com/language/translate/v2/detect

PowerShell

Salve o corpo da solicitação em um arquivo chamado request.json e execute o comando a seguir:

$cred = gcloud auth application-default print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://translation.googleapis.com/language/translate/v2/detect " | Select-Object -Expand Content

Você receberá uma resposta JSON semelhante a esta:

{
  "data": {
    "detections": [
      [
        {
          "confidence": 1,
          "isReliable": false,
          "language": "es"
        }
      ]
    ]
  }
}

Na resposta, language é o código do idioma detectado. Os outros dois campos, isReliable e confidence, estão obsoletos e foram incluídos para fornecer compatibilidade com versões anteriores. Não recomendamos tomar decisões ou estabelecer limites com base nos valores deles.

C#

Antes de testar esta amostra, siga as instruções de configuração para C# no Guia de início rápido do Translation: como usar bibliotecas de cliente. Saiba mais na documentação de referência da API Translation para C#.


using Google.Cloud.Translation.V2;
using System;

public partial class TranslateSample
{
    public Detection DetectLanguage()
    {
        TranslationClient client = TranslationClient.Create();
        var detection = client.DetectLanguage(text: "Hello world.");
        Console.WriteLine(
            $"{detection.Language}\tConfidence: {detection.Confidence}");
        return detection;
    }
}

Go

Antes de testar esta amostra, siga as instruções de configuração para Go no Guia de início rápido do Translation: como usar bibliotecas de cliente. Saiba mais na documentação de referência da API Translation para Go.

import (
	"context"
	"fmt"

	"cloud.google.com/go/translate"
)

func detectLanguage(text string) (*translate.Detection, error) {
	// text := "こんにちは世界"
	ctx := context.Background()
	client, err := translate.NewClient(ctx)
	if err != nil {
		return nil, fmt.Errorf("translate.NewClient: %v", err)
	}
	defer client.Close()
	lang, err := client.DetectLanguage(ctx, []string{text})
	if err != nil {
		return nil, fmt.Errorf("DetectLanguage: %v", err)
	}
	if len(lang) == 0 || len(lang[0]) == 0 {
		return nil, fmt.Errorf("DetectLanguage return value empty")
	}
	return &lang[0][0], nil
}

Java

Antes de testar esta amostra, siga as instruções de configuração para Java no Guia de início rápido do Translation: como usar bibliotecas de cliente. Saiba mais na documentação de referência da API Translation para Java.

Ver no GitHub (em inglês) Feedback
// TODO(developer): Uncomment these lines.
// import com.google.cloud.translate.*;
// Translate translate = TranslateOptions.getDefaultInstance().getService();

List<String> texts = new LinkedList<>();
texts.add("Hello, World!");
texts.add("¡Hola Mundo!");
List<Detection> detections = translate.detect(texts);

System.out.println("Language(s) detected:");
for (Detection detection : detections) {
  System.out.printf("\t%s\n", detection);
}

Node.js

Antes de testar esta amostra, siga as instruções de configuração para Node.js no Guia de início rápido do Translation: como usar bibliotecas de cliente. Saiba mais na documentação de referência da API Translation para Node.js.

Ver no GitHub (em inglês) Feedback
// Imports the Google Cloud client library
const {Translate} = require('@google-cloud/translate').v2;

// Creates a client
const translate = new Translate();

/**
 * TODO(developer): Uncomment the following line before running the sample.
 */
// const text = 'The text for which to detect language, e.g. Hello, world!';

// Detects the language. "text" can be a string for detecting the language of
// a single piece of text, or an array of strings for detecting the languages
// of multiple texts.
async function detectLanguage() {
  let [detections] = await translate.detect(text);
  detections = Array.isArray(detections) ? detections : [detections];
  console.log('Detections:');
  detections.forEach(detection => {
    console.log(`${detection.input} => ${detection.language}`);
  });
}

detectLanguage();

PHP

Antes de testar esta amostra, siga as instruções de configuração para PHP no Guia de início rápido do Translation: como usar bibliotecas de cliente. Saiba mais na documentação de referência da API Translation para PHP.

Ver no GitHub (em inglês) Feedback
use Google\Cloud\Translate\TranslateClient;

/** Uncomment and populate these variables in your code */
// $text = 'The text whose language to detect.  This will be detected as en.';

$translate = new TranslateClient();
$result = $translate->detectLanguage($text);
print("Language code: $result[languageCode]\n");
print("Confidence: $result[confidence]\n");

Python

Antes de testar esta amostra, siga as instruções de configuração para Python no Guia de início rápido do Translation: como usar bibliotecas de cliente. Saiba mais na documentação de referência da API Translation para Python.

Ver no GitHub (em inglês) Feedback
"""Detects the text's language."""
from google.cloud import translate_v2 as translate

translate_client = translate.Client()

# Text can also be a sequence of strings, in which case this method
# will return a sequence of results for each text.
result = translate_client.detect_language(text)

print("Text: {}".format(text))
print("Confidence: {}".format(result["confidence"]))
print("Language: {}".format(result["language"]))

Ruby

Antes de testar esta amostra, siga as instruções de configuração para Ruby no Guia de início rápido do Translation: como usar bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API Translation para Ruby.

# project_id = "Your Google Cloud project ID"
# text       = "The text you would like to detect the language of"

require "google/cloud/translate"

translate = Google::Cloud::Translate.translation_v2_service project_id: project_id
detection = translate.detect text

puts "'#{text}' detected as language: #{detection.language}"
puts "Confidence: #{detection.confidence}"

Como detectar o idioma de mais de uma string

REST e linha de comando

Para detectar o idioma de mais de uma string, use o parâmetro q para especificar cada string. Neste exemplo, duas strings separadas são transmitidas para detecção:

Método HTTP e URL:

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

Corpo JSON da solicitação:

{
  "q": ["Hello world", "我的名字叫傑夫"]
}

Para enviar a solicitação, escolha uma destas opções:

curl

Salve o corpo da solicitação em um arquivo chamado request.json e execute o comando a seguir:

curl -X POST \
-H "Authorization: Bearer "$(gcloud auth application-default print-access-token) \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
https://translation.googleapis.com/language/translate/v2/detect

PowerShell

Salve o corpo da solicitação em um arquivo chamado request.json e execute o comando a seguir:

$cred = gcloud auth application-default print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://translation.googleapis.com/language/translate/v2/detect " | Select-Object -Expand Content

Você receberá uma resposta JSON semelhante a esta:

{
  "data": {
    "detections": [
      [
        {
          "confidence": 1,
          "isReliable": false,
          "language": "en"
        }
      ],
      [
        {
          "confidence": 1,
          "isReliable": false,
          "language": "zh-TW"
        }
      ]
    ]
  }
}

A resposta contém duas detecções, na mesma ordem em que as strings de origem correspondentes foram fornecidas na solicitação.

C#

Para detectar o idioma de vários textos, basta transmitir uma lista de strings para o método client.DetectLanguage mostrado no exemplo anterior.

Go

Para detectar o idioma de vários textos, inclua várias strings na fração transmitida para o método Client#DetectLanguage mostrado no exemplo anterior.

Java

Para detectar o idioma de vários textos, basta transmitir uma lista de strings para o método Translate#detect mostrado no exemplo anterior.

Node.js

Para detectar o idioma de vários textos, basta transmitir uma matriz de strings para o método Translate#detect mostrado no exemplo anterior.

Python

Para detectar o idioma de vários textos, basta transmitir uma lista de strings para o método Client#detect_language mostrado no exemplo anterior.

Ruby

Para detectar o idioma de vários textos, basta transmitir várias strings para o método Translate#detect mostrado no exemplo anterior.