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 que tenha a API Cloud Translation ativada e uma chave privada com as credenciais apropriadas. Também é possível instalar bibliotecas de cliente para linguagens de programação comuns para ajudar você 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 CMD

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. O exemplo utiliza o token de acesso para uma conta de serviço configurada para o projeto com o SDK do 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.

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.

// 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.

// 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();

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.

def detect_language(text):
    """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"]))

Outras linguagens

C# : Siga as Instruções de configuração do C# na página das bibliotecas de cliente e acesse Documentação de referência do Translation para o .NET.

PHP : Siga as Instruções de configuração do PHP na página das bibliotecas de cliente e acesse Documentação de referência do Translation para PHP.

Ruby Siga as Instruções de configuração do Ruby na página das bibliotecas de cliente e acesse Documentação de referência do Translation para Ruby.

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.

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.

Outras linguagens

C# : Siga as Instruções de configuração do C# na página das bibliotecas de cliente e acesse Documentação de referência do Translation para o .NET.

PHP : Siga as Instruções de configuração do PHP na página das bibliotecas de cliente e acesse Documentação de referência do Translation para PHP.

Ruby Siga as Instruções de configuração do Ruby na página das bibliotecas de cliente e acesse Documentação de referência do Translation para Ruby.

Ruby

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

Outros recursos

  • Para receber ajuda sobre como resolver erros ou problemas comuns, consulte a página Solução de problemas.