Detectar idiomas (básico)

En este documento se describe cómo usar Cloud Translation - Basic (versión 2) para detectar el idioma de una cadena.

Antes de empezar

Para empezar a usar la API Cloud Translation, debes tener un proyecto en el que esté habilitada la API Cloud Translation y las credenciales adecuadas. También puedes instalar bibliotecas de cliente de los lenguajes de programación comunes para ayudarte a hacer llamadas a la API. Para obtener más información, consulta la página Configuración.

Limitaciones

La detección de idiomas no admite fr-CR ni pt-BR.

Detectar el idioma de una cadena de texto

Puedes detectar el idioma de una cadena de texto enviando una solicitud HTTP con una URL con el siguiente formato:

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

Detectar el idioma de una sola cadena

REST

Para detectar el idioma de un texto, haz una solicitud POST y proporciona el cuerpo de solicitud adecuado. A continuación, se muestra un ejemplo de una solicitud POST que utiliza curl o PowerShell. En el ejemplo se usa el token de acceso de una cuenta de servicio configurada para el proyecto mediante la CLI de Google Cloud. Para obtener instrucciones sobre cómo instalar la CLI de Google Cloud, configurar un proyecto con una cuenta de servicio y obtener un token de acceso, consulta la página Configuración.

Antes de usar los datos de la solicitud, haz las siguientes sustituciones:

  • PROJECT_NUMBER_OR_ID: el ID numérico o alfanumérico de tu Google Cloud proyecto

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, despliega una de estas opciones:

Deberías recibir una respuesta JSON similar a la siguiente:

{
  "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 mantener la compatibilidad con versiones anteriores. Te recomendamos que no bases ninguna decisión ni umbral en sus valores.

Go

Antes de probar este ejemplo, sigue las Go instrucciones de configuración de la guía de inicio rápido de Cloud Translation con bibliotecas de cliente. Para obtener más información, consulta la documentación de referencia de la API Go Cloud Translation.

Para autenticarte en Cloud Translation, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación en un entorno de desarrollo local.

import (
	"context"
	"fmt"

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

func detectLanguage(text string) (*translate.Detection, error) {
	// text := "こんにちは世界"
	ctx := context.Background()
	client, err := translate.NewCtranslate.NewClient!= nil {
		return nil, fmt.Errorf("translate.NewClient: %w", err)
	}
	defer client.Close()
	lang, err := client.DetectLanguage(ctx, []string{text})
	if err != nil {
		return nil, fmt.Errorf("DetectLanguage: %w", 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 ejemplo, sigue las Java instrucciones de configuración de la guía de inicio rápido de Cloud Translation con bibliotecas de cliente. Para obtener más información, consulta la documentación de referencia de la API Java Cloud Translation.

Para autenticarte en Cloud Translation, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación en un entorno de desarrollo local.

// 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 ejemplo, sigue las Node.js instrucciones de configuración de la guía de inicio rápido de Cloud Translation con bibliotecas de cliente. Para obtener más información, consulta la documentación de referencia de la API Node.js Cloud Translation.

Para autenticarte en Cloud Translation, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación en un entorno de desarrollo local.

// 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 ejemplo, sigue las Python instrucciones de configuración de la guía de inicio rápido de Cloud Translation con bibliotecas de cliente. Para obtener más información, consulta la documentación de referencia de la API Python Cloud Translation.

Para autenticarte en Cloud Translation, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación en un entorno de desarrollo local.

def detect_language(text: str) -> dict:
    """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(f"Text: {text}")
    print("Confidence: {}".format(result["confidence"]))
    print("Language: {}".format(result["language"]))

    return result

Idiomas adicionales

C#: Sigue las instrucciones de configuración de C# en la página de bibliotecas de cliente y, a continuación, consulta la documentación de referencia de Cloud Translation para .NET.

PHP Sigue las instrucciones de configuración de PHP en la página de bibliotecas de cliente y, a continuación, consulta la documentación de referencia de Cloud Translation para PHP.

Ruby: Sigue las instrucciones de configuración de Ruby en la página de bibliotecas de cliente y, a continuación, consulta la documentación de referencia de Cloud Translation para Ruby.

Detectar el idioma de más de una cadena

REST

Para detectar el idioma de más de una cadena, usa el parámetro q para especificar cada cadena. En este ejemplo se pasan dos cadenas independientes para la detección:

Antes de usar los datos de la solicitud, haz las siguientes sustituciones:

  • PROJECT_NUMBER_OR_ID: el ID numérico o alfanumérico de tu Google Cloud proyecto

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, despliega una de estas opciones:

Deberías recibir una respuesta JSON similar a la siguiente:

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

En este caso, la respuesta contiene dos detecciones, en el mismo orden en que se proporcionaron las cadenas de origen correspondientes en la solicitud.

Go

Para detectar el idioma de varios textos, incluye varias cadenas en el segmento que se pasa al método Client#DetectLanguage que se muestra en el ejemplo anterior.

Java

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

Node.js

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

Python

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

Idiomas adicionales

C#: Sigue las instrucciones de configuración de C# en la página de bibliotecas de cliente y, a continuación, consulta la documentación de referencia de Cloud Translation para .NET.

PHP Sigue las instrucciones de configuración de PHP en la página de bibliotecas de cliente y, a continuación, consulta la documentación de referencia de Cloud Translation para PHP.

Ruby: Sigue las instrucciones de configuración de Ruby en la página de bibliotecas de cliente y, a continuación, consulta la documentación de referencia de Cloud Translation para Ruby.

Ruby

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

Recursos adicionales

  • Para obtener ayuda sobre cómo resolver problemas o errores habituales, consulta la página Solución de problemas.