Esta página se ha traducido con Cloud Translation API.
Switch to English

Detecta idiomas (básico)

En este documento, se describe cómo usar Cloud Translation básico (v2) para detectar el idioma de una string.

Antes de comenzar

Antes de comenzar a usar la API de Cloud Translation, debes tener un proyecto que tenga habilitada la API de Cloud Translation y las credenciales adecuadas. También puedes instalar bibliotecas cliente para los lenguajes de programación comunes que te ayudarán a realizar llamadas a la API.

Para obtener más información, consulta la página Configuración.

Detecta el idioma de una string de texto

Puedes detectar el idioma de una string de texto mediante el envío de una solicitud HTTP con una URL del siguiente formato:

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

Cómo detectar el idioma de una sola string

LÍNEA DE REST Y CMD

Para detectar el idioma de un texto, realiza una solicitud POST y proporciona el cuerpo de la solicitud correspondiente. A continuación, se muestra un ejemplo de una solicitud POST mediante curl o PowerShell. En el ejemplo, se usa el token de acceso de una cuenta de servicio configurada para el proyecto con el SDK de Cloud. Si deseas obtener instrucciones para instalar el SDK de Cloud, configurar un proyecto con una cuenta de servicio y obtener un token de acceso, consulta la página Configuración.

Método HTTP y URL:

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

Cuerpo JSON de la solicitud:

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

Para enviar tu solicitud, elige una de estas opciones:

curl

Guarda el cuerpo de la solicitud en un archivo llamado request.json y ejecuta el siguiente comando:

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

Guarda el cuerpo de la solicitud en un archivo llamado request.json y ejecuta el siguiente comando:

$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

Deberías recibir una respuesta JSON similar a la que se muestra a continuación:

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

En la respuesta, language es el código de idioma detectado. Los otros dos campos, isReliable y confidence, son campos obsoletos que se incluyen para permitir la compatibilidad con versiones anteriores. Recomendamos no tomar decisiones ni definir los umbrales en función de sus valores.

Comienza a usarlo

Antes de probar este código de muestra, sigue las instrucciones de configuración para Go que encontrarás en la guía de inicio rápido sobre las bibliotecas cliente de Translation. Si deseas obtener más información, consulta la documentación de referencia de la API de 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 probar este código de muestra, sigue las instrucciones de configuración para Java que encontrarás en la guía de inicio rápido sobre las bibliotecas cliente de Translation. Si deseas obtener más información, consulta la documentación de referencia de la API de 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 probar este código de muestra, sigue las instrucciones de configuración para Node.js que encontrarás en la guía de inicio rápido sobre las bibliotecas cliente de Translation. Si deseas obtener más información, consulta la documentación de referencia de la API de 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 probar este código de muestra, sigue las instrucciones de configuración para Python que encontrarás en la guía de inicio rápido sobre las bibliotecas cliente de Translation. Si deseas obtener más información, consulta la documentación de referencia de la API de 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"]))

Detecta el idioma de más de una string

LÍNEA DE REST Y CMD

Para detectar el idioma de más de una string, usa el parámetro q a fin de especificar cada string. En este ejemplo, se pasan dos strings distintas para la detección:

Método HTTP y URL:

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

Cuerpo JSON de la solicitud:

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

Para enviar tu solicitud, elige una de estas opciones:

curl

Guarda el cuerpo de la solicitud en un archivo llamado request.json y ejecuta el siguiente comando:

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

Guarda el cuerpo de la solicitud en un archivo llamado request.json y ejecuta el siguiente comando:

$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

Deberías recibir una respuesta JSON similar a la que se muestra a continuación:

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

Aquí, la respuesta contiene dos detecciones, en el mismo orden en que se proporcionaron las strings de origen correspondientes en la solicitud.

C#

Para detectar el idioma de varios textos, solo debes pasar una lista de strings al método client.DetectLanguage que se muestra en el ejemplo anterior.

Go

Para detectar el idioma de varios textos, debes incluir varias strings en la parte que pasaste al método Client#DetectLanguage que se muestra en el ejemplo anterior.

Java

Para detectar el idioma de varios textos, solo debes pasar una lista de strings al método Translate#detect que se muestra en el ejemplo anterior.

Node.js

Para detectar el idioma de varios textos, solo debes pasar un arreglo de strings al método Translate#detect que se muestra en el ejemplo anterior.

Python

Para detectar el idioma de varios textos, solo debes pasar una lista de strings al método Client#detect_language que se muestra en el ejemplo anterior.

Ruby

Para detectar el idioma de varios textos, solo debes pasar varias strings al método Translate#detect que se muestra en el ejemplo anterior.