Traduce texto

En esta página, se muestra cómo traducir texto de muestra con las ediciones Basic y Advanced de Cloud Translation. Te brindan acceso al modelo estándar de traducción automática neuronal (NMT) y al LLM de Translation, que es nuestro modelo de traducción de estilo LLM más reciente.

La API de Cloud Translation - Basic proporciona acceso inmediato y directo a estos modelos. Por otro lado, Cloud Translation - Advanced está optimizado para casos de uso de contenido con formato largo y personalización. Para ver un ejemplo de código, consulta el ejemplo de traducción de texto avanzada. En situaciones especiales, también puedes usar Cloud Translation - Advanced para crear modelos personalizados.

Cloud Translation Avanzado también proporciona capacidades avanzadas de traducción de texto, como la traducción de documentos y la creación de glosarios, para garantizar que la terminología específica de tu dominio se traduzca de forma correcta.

Antes de comenzar

Antes de comenzar a usar la API de Cloud Translation, debes completar la página de configuración de Cloud Translation, que incluye la creación de un proyecto, la habilitación de la API de Cloud Translation y la configuración de la autenticación. La página de configuración también proporciona instrucciones para instalar bibliotecas cliente para lenguajes de programación comunes, lo que es opcional.

LLM de Translation con la API de Cloud Translation Basic

Para usar el modelo Translation LLM estándar en la API de Cloud Translation Basic, pasa su nombre completo del recurso en el parámetro model.

curl -X POST \
     -H "Content-Type: application/json; charset=utf-8" \
     -d '{
       "q": ["The old lighthouse stood on the edge of the cliff."],
       "target": "es",
       "model": "projects/PROJECT_ID/locations/REGION_NAME/models/general/translation-llm"
     }' \
     "https://translation.googleapis.com/language/translate/v2?key=YOUR_API_KEY"

La API de Cloud Translation Básico solo admite modelos estándar de NMT y LLM, no modelos personalizados. Para usar un modelo personalizado o cualquier otra función avanzada, como la traducción de documentos o los glosarios, usa Cloud Translation - Advanced. Para obtener más información sobre cómo llamar a la API básica, consulta el ejemplo de traducción de texto básica.

Traducción de texto avanzada

Para las traducciones con Cloud Translation Advanced, la entrada puede ser HTML o texto sin formato. La API de Cloud Translation no traduce ninguna etiqueta HTML en la entrada, solo el texto que aparece entre las etiquetas. El resultado conserva las etiquetas HTML (sin traducir), con el texto traducido entre las etiquetas en la medida de lo posible debido a las diferencias entre los idiomas de origen y objetivo.

Ejemplo avanzado de traducción de texto

REST

Si deseas traducir texto, realiza una solicitud POST y proporciona código JSON en el cuerpo de la solicitud que identifique el idioma desde el que se traducirá (source_language_code), el idioma al que se traducirá (target_language_code) y el texto que se traducirá (contents). Puedes proporcionar varias cadenas de texto para traducirlas si las incluyes en tu JSON (consulta el ejemplo). Identifica tus idiomas de origen y de destino con sus códigos ISO-639.

A continuación se muestra un ejemplo de una solicitud POST con curl o PowerShell. En el ejemplo, se usa el token de acceso correspondiente a la configuración de una cuenta de servicio para el proyecto con la Google Cloud CLI de Google Cloud. Si deseas obtener instrucciones para instalar Google Cloud CLI, configurar un proyecto con una cuenta de servicio y obtener un token de acceso, consulta la página Configuración.

Antes de usar cualquiera de los datos de solicitud, realiza los siguientes reemplazos:

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

Método HTTP y URL:

POST https://translation.googleapis.com/v3/projects/PROJECT_NUMBER_OR_ID:translateText

Cuerpo JSON de la solicitud:

{
  "sourceLanguageCode": "en",
  "targetLanguageCode": "ru",
  "contents": ["Dr. Watson, come here!", "Bring me some coffee!"]
}

Para enviar tu solicitud, expande una de estas opciones:

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

{
  "translations": [
    {
      "translatedText": "Доктор Ватсон, иди сюда!",
    },
    {
      "translatedText": "Принеси мне кофе!",
    }
  ]
}

El array translations contiene dos campos translatedText con traducciones proporcionadas en el idioma targetLanguageCode solicitado (ru: ruso). Las traducciones se indican en el mismo orden que el arreglo fuente correspondiente en la solicitud.

Go

Antes de probar este ejemplo, sigue las instrucciones de configuración para Go que encontrarás en la guía de inicio rápido de Cloud Translation sobre las bibliotecas cliente. Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Translation para Go.

Para autenticarte en Cloud Translation, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.

// Imports the Google Cloud Translation library
import (
	"context"
	"fmt"
	"io"

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

func translateText(w io.Writer, projectID string, sourceLang string, targetLang string, text string) error {
	// projectID := "your-project-id"
	// sourceLang := "en-US"
	// targetLang := "fr"
	// text := "Text you wish to translate"

	// Instantiates a client
	ctx := context.Background()
	client, err := translate.NewTranslationClient(ctx)
	if err != nil {
		return fmt.Errorf("NewTranslationClient: %w", err)
	}
	defer client.Close()

	// Construct request
	req := &translatepb.TranslateTextRequest{
		Parent:             fmt.Sprintf("projects/%s/locations/global", projectID),
		SourceLanguageCode: sourceLang,
		TargetLanguageCode: targetLang,
		MimeType:           "text/plain", // Mime types: "text/plain", "text/html"
		Contents:           []string{text},
	}

	resp, err := client.TranslateText(ctx, req)
	if err != nil {
		return fmt.Errorf("TranslateText: %w", err)
	}

	// Display the translation for each input text provided
	for _, translation := range resp.GetTranslations() {
		fmt.Fprintf(w, "Translated text: %v\n", translation.GetTranslatedText())
	}

	return nil
}

Java

Antes de probar este ejemplo, sigue las instrucciones de configuración para Java que encontrarás en la guía de inicio rápido de Cloud Translation sobre las bibliotecas cliente. Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Translation para Java.

Para autenticarte en Cloud Translation, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.

// Imports the Google Cloud Translation library.
import com.google.cloud.translate.v3.LocationName;
import com.google.cloud.translate.v3.TranslateTextRequest;
import com.google.cloud.translate.v3.TranslateTextResponse;
import com.google.cloud.translate.v3.Translation;
import com.google.cloud.translate.v3.TranslationServiceClient;
import java.io.IOException;


public class TranslateText {

  // Set and pass variables to overloaded translateText() method for translation.
  public static void translateText() throws IOException {
    // TODO(developer): Replace these variables before running the sample.
    String projectId = "YOUR-PROJECT-ID";
    // Supported Languages: https://cloud.google.com/translate/docs/languages
    String targetLanguage = "your-target-language";
    String text = "your-text";
    translateText(projectId, targetLanguage, text);
  }

  // Translate text to target language.
  public static void translateText(String projectId, String targetLanguage, String text)
      throws IOException {

    // Initialize client that will be used to send requests. This client only needs to be created
    // once, and can be reused for multiple requests. After completing all of your requests, call
    // the "close" method on the client to safely clean up any remaining background resources.
    try (TranslationServiceClient client = TranslationServiceClient.create()) {
      // Supported Locations: `global`, [glossary location], or [model location]
      // Glossaries must be hosted in `us-central1`
      // Custom Models must use the same location as your model. (us-central1)
      LocationName parent = LocationName.of(projectId, "global");

      // Supported Mime Types: https://cloud.google.com/translate/docs/supported-formats
      TranslateTextRequest request =
          TranslateTextRequest.newBuilder()
              .setParent(parent.toString())
              .setMimeType("text/plain")
              .setTargetLanguageCode(targetLanguage)
              .addContents(text)
              .build();

      TranslateTextResponse response = client.translateText(request);

      // Display the translation for each input text provided
      for (Translation translation : response.getTranslationsList()) {
        System.out.printf("Translated text: %s\n", translation.getTranslatedText());
      }
    }
  }
}

Node.js

Antes de probar este ejemplo, sigue las instrucciones de configuración para Node.js que encontrarás en la guía de inicio rápido de Cloud Translation sobre las bibliotecas cliente. Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Translation para Node.js.

Para autenticarte en Cloud Translation, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.

/**
 * TODO(developer): Uncomment these variables before running the sample
 */
// const projectId = 'YOUR_PROJECT_ID';
// const location = 'global';
// const text = 'text to translate';

// Imports the Google Cloud Translation library
const {TranslationServiceClient} = require('@google-cloud/translate');

// Instantiates a client
const translationClient = new TranslationServiceClient();

async function translateText() {
  // MIME type of the content to translate
  // Supported MIME types:
  // https://cloud.google.com/translate/docs/supported-formats
  const mimeType = 'text/plain';

  // Construct request
  const request = {
    parent: `projects/${projectId}/locations/${location}`,
    contents: [text],
    mimeType: mimeType,
    sourceLanguageCode: 'en',
    targetLanguageCode: 'sr-Latn',
  };

  // Run request
  const [response] = await translationClient.translateText(request);

  for (const translation of response.translations) {
    console.log(`Translation: ${translation.translatedText}`);
  }
}

translateText();

Python

Antes de probar este ejemplo, sigue las instrucciones de configuración para Python que encontrarás en la guía de inicio rápido de Cloud Translation sobre las bibliotecas cliente. Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Translation para Python.

Para autenticarte en Cloud Translation, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.

import os

# Import the Google Cloud Translation library.
from google.cloud import translate_v3

PROJECT_ID = os.environ.get("GOOGLE_CLOUD_PROJECT")


def translate_text(
    text: str = "YOUR_TEXT_TO_TRANSLATE",
    source_language_code: str = "en-US",
    target_language_code: str = "fr",
) -> translate_v3.TranslationServiceClient:
    """Translate Text from a Source language to a Target language.
    Args:
        text: The content to translate.
        source_language_code: The code of the source language.
        target_language_code: The code of the target language.
            For example: "fr" for French, "es" for Spanish, etc.
            Find available languages and codes here:
            https://cloud.google.com/translate/docs/languages#neural_machine_translation_model
    """

    # Initialize Translation client.
    client = translate_v3.TranslationServiceClient()
    parent = f"projects/{PROJECT_ID}/locations/global"

    # MIME type of the content to translate.
    # Supported MIME types:
    # https://cloud.google.com/translate/docs/supported-formats
    mime_type = "text/plain"

    # Translate text from the source to the target language.
    response = client.translate_text(
        contents=[text],
        parent=parent,
        mime_type=mime_type,
        source_language_code=