Traducir texto

Este documento describe cómo usar la API de Cloud Translation para traducir texto.

El texto de entrada puede ser texto sin formato o HTML. La API de Cloud Translation no traduce ninguna etiqueta HTML, 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 fuente y objetivo. El orden de las etiquetas HTML en el resultado puede diferir del orden en el texto de entrada debido a los cambios en el orden de las palabras en la traducción.

Traducir texto

Esta sección demuestra algunas maneras de solicitar traducciones desde el extremo https://translation.googleapis.com/language/translate/v2.

Traducir strings de entrada

Protocolo

Para detectar el idioma de algún texto, realiza una solicitud POST y proporciona JSON en el cuerpo de la solicitud que identifique el idioma del que deseas traducir (source), el idioma al que deseas traducir (target) y el texto para traducir (q). Puedes proporcionar múltiples strings de texto para traducir si incluyes varios parámetros q en tu JSON. Identificas tus idiomas fuente y objetivo mediante el uso de sus códigos iso-639-1.

A continuación, se muestra un ejemplo de una solicitud POST que usa curl. En el ejemplo, se usa el token de acceso de una cuenta de servicio configurada para el proyecto con el SDK de Cloud de Google Cloud Platform. Para obtener instrucciones sobre cómo instalar el SDK de Cloud, configurar un proyecto con una cuenta de servicio y obtener un token de acceso, consulta la Guía de inicio rápido.

curl -X POST \
     -H "Authorization: Bearer "$(gcloud auth application-default print-access-token) \
     -H "Content-Type: application/json; charset=utf-8" \
     --data "{
  'q': 'Hello world',
  'q': 'My name is Jeff',
  'target': 'de'
}" "https://translation.googleapis.com/language/translate/v2"

Si la solicitud es exitosa, el servidor muestra un código de estado HTTP 200 OK y la respuesta en formato JSON:

{
  "data": {
    "translations": [
      {
        "translatedText": "Hallo Welt",
        "detectedSourceLanguage": "en"
      },
      {
        "translatedText": "Mein Name ist Jeff",
        "detectedSourceLanguage": "en"
      }
    ]
  }
}

El arreglo translations contiene dos campos translatedText con traducciones proporcionadas en el idioma target solicitado (de: alemán). Las traducciones se indican en el mismo orden que el arreglo fuente correspondiente en la solicitud.

C#

Antes de probar esta muestra, sigue las instrucciones de configuración para C# que se encuentran en la Guía de inicio rápido de la API de Translation con el uso de bibliotecas cliente. Para obtener más información, consulta la documentación de referencia de la API de C# para la API de Translation.

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

public partial class TranslateSample
{
    public string TranslateText()
    {
        TranslationClient client = TranslationClient.Create();
        var response = client.TranslateText(
            text: "Hello World.",
            targetLanguage: "ru",  // Russian
            sourceLanguage: "en");  // English
        Console.WriteLine(response.TranslatedText);
        return response.TranslatedText;
    }
}

Go

Antes de probar esta muestra, sigue las instrucciones de configuración para Go que se encuentran en la Guía de inicio rápido de la API de Translation con el uso de bibliotecas cliente. Para obtener más información, consulta la documentación de referencia de la API de Go para la API de Translation.

func translateText(targetLanguage, text string) (string, error) {
	ctx := context.Background()

	lang, err := language.Parse(targetLanguage)
	if err != nil {
		return "", err
	}

	client, err := translate.NewClient(ctx)
	if err != nil {
		return "", err
	}
	defer client.Close()

	resp, err := client.Translate(ctx, []string{text}, lang, nil)
	if err != nil {
		return "", err
	}
	return resp[0].Text, nil
}

Java

Antes de probar esta muestra, sigue las instrucciones de configuración para Java que se encuentran en la Guía de inicio rápido de la API de Translation con el uso de bibliotecas cliente. Para obtener más información, consulta la documentación de referencia de la API de Java para la API de Translation.

// TODO(developer): Uncomment these lines.
// import com.google.cloud.translate.*;
// Translate translate = TranslateOptions.getDefaultInstance().getService();

Translation translation = translate.translate("¡Hola Mundo!");
System.out.printf("Translated Text:\n\t%s\n", translation.getTranslatedText());

Node.js

Antes de probar esta muestra, sigue las instrucciones de configuración para Node.js que se encuentran en la Guía de inicio rápido de la API de Translation con el uso de bibliotecas cliente. Si quieres obtener más información, consulta la documentación de referencia de la API de Node.js para la API de Translation.

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

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

/**
 * TODO(developer): Uncomment the following lines before running the sample.
 */
// const text = 'The text to translate, e.g. Hello, world!';
// const target = 'The target language, e.g. ru';

// Translates the text into the target language. "text" can be a string for
// translating a single piece of text, or an array of strings for translating
// multiple texts.
let [translations] = await translate.translate(text, target);
translations = Array.isArray(translations) ? translations : [translations];
console.log('Translations:');
translations.forEach((translation, i) => {
  console.log(`${text[i]} => (${target}) ${translation}`);
});

PHP

Antes de probar esta muestra, sigue las instrucciones de configuración para PHP que se encuentran en la Guía de inicio rápido de la API de Translation con el uso de bibliotecas cliente. Para obtener más información, consulta la documentación de referencia de la API de PHP para la API de Translation.

use Google\Cloud\Translate\TranslateClient;

// $text = 'The text to translate."
// $targetLanguage = 'ja';  // Which language to translate to?

$translate = new TranslateClient();
$result = $translate->translate($text, [
    'target' => $targetLanguage,
]);
print("Source language: $result[source]\n");
print("Translation: $result[text]\n");

Python

Antes de probar esta muestra, sigue las instrucciones de configuración para Python que se encuentran en la Guía de inicio rápido de la API de Translation con el uso de bibliotecas cliente. Para obtener más información, consulta la documentación de referencia de la API de Python para la API de Translation.

"""Translates text into the target language.

Target must be an ISO 639-1 language code.
See https://g.co/cloud/translate/v2/translate-reference#supported_languages
"""
translate_client = translate.Client()

if isinstance(text, six.binary_type):
    text = text.decode('utf-8')

# 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.translate(
    text, target_language=target)

print(u'Text: {}'.format(result['input']))
print(u'Translation: {}'.format(result['translatedText']))
print(u'Detected source language: {}'.format(
    result['detectedSourceLanguage']))

Ruby

Antes de probar esta muestra, sigue las instrucciones de configuración para Ruby que se encuentran en la Guía de inicio rápido de la API de Translation con el uso de bibliotecas cliente. Para obtener más información, consulta la documentación de referencia de la API de Ruby para la API de Translation.

# project_id    = "Your Google Cloud project ID"
# text          = "The text you would like to translate"
# language_code = "The ISO 639-1 code of language to translate to, eg. 'en'"

require "google/cloud/translate"

translate   = Google::Cloud::Translate.new project: project_id
translation = translate.translate text, to: language_code

puts "Translated '#{text}' to '#{translation.text.inspect}'"
puts "Original language: #{translation.from} translated to: #{translation.to}"

Especificar un modelo

Según la configuración predeterminada, cuando realizas una solicitud de traducción a la API de Cloud Translation, tu texto se traduce con el modelo de traducción automática neuronal (NMT). Si el modelo de NMT no es compatible con el par de traducción de idioma solicitado, se usa el modelo de traducción automática basada en frases (PBMT).

Comparar modelos

El modelo NMT puede proporcionar una traducción mejorada para contenidos más largos y complejos. Por ejemplo, considera la siguiente solicitud:

{
  'q': 'So let us begin anew--remembering on both sides that civility is not a
        sign of weakness, and sincerity is always subject to proof. Let us never
        negotiate out of fear. But let us never fear to negotiate.',
  'target': 'de',
}

Debido a que no se especifica ningún model en la solicitud, y el par de idiomas de traducción de inglés a alemán es compatible con el modelo de NMT, la solicitud se traduce con el uso del modelo nmt. Se muestra lo siguiente en el campo translations de la respuesta:

"translatedText": "Fangen wir also von neuem an - auf beiden Seiten erinnern wir
                   uns, daß die Höflichkeit kein Zeichen der Schwäche ist und
                   die Aufrichtigkeit immer unter Beweis gestellt wird. Lasst
                   uns nie aus Furcht verhandeln. Aber lassen Sie uns niemals
                   Angst haben, zu verhandeln.",
"detectedSourceLanguage": "en",
"model": "nmt"

Como alternativa, puedes solicitar específicamente que el texto se traduzca con el modelo base (PBMT).

{
  'q': 'So let us begin anew--remembering on both sides that civility is not a
        sign of weakness, and sincerity is always subject to proof. Let us never
        negotiate out of fear. But let us never fear to negotiate.',
  'target': 'de',
  'model': 'base',
}

El uso del modelo base muestra el siguiente resultado en el campo translations de la respuesta, que difiere de la traducción con el modelo nmt.

"translatedText": "Lassen Sie uns also neu beginnen - auf beiden Seiten nicht
                   vergessen, dass Zivilität ist kein Zeichen von Schwäche, und
                   Aufrichtigkeit ist immer unter Beweis. Lassen Sie uns nie aus
                   Angst verhandeln. Aber lassen Sie uns nie zu verhandeln
                   fürchten.",
"detectedSourceLanguage": "en",
"model": "base"

Usar el parámetro del modelo

Puedes especificar qué modelo utilizar para la traducción mediante el uso del parámetro de consulta model. Especifica base para usar el modelo de PBMT y nmt para usar el modelo de NMT. Si especificas el modelo de NMT en tu solicitud y el par de traducción de idioma solicitado no es compatible con el modelo de NMT, entonces se usa el modelo de PBMT.

La muestra a continuación indica cómo usar el parámetro model en una solicitud de traducción.

Protocolo

Para traducir texto mediante el uso del modelo de nmt, incluye el parámetro model en tu solicitud POST.

curl -X POST \
     -H "Authorization: Bearer "$(gcloud auth application-default print-access-token) \
     -H "Content-Type: application/json; charset=utf-8" \
     --data "{
  'q': 'So let us begin anew--remembering on both sides that civility is not a
        sign of weakness, and sincerity is always subject to proof. Let us never
        negotiate out of fear. But let us never fear to negotiate.',
  'target': 'de',
  'model': 'nmt',
}" "https://translation.googleapis.com/language/translate/v2"

Si la solicitud es exitosa, el servidor muestra un código de estado HTTP 200 OK y la respuesta en formato JSON:

{
  "data": {
    "translations": [
      {
        "translatedText": "Lasst uns also von neuem beginnen - erinnert euch
           auf beiden Seiten, dass Höflichkeit kein Zeichen von Schwäche ist,
           und Aufrichtigkeit immer dem Beweis unterliegt. Lasst uns niemals
           aus Angst verhandeln. Aber lassen Sie uns niemals Angst haben zu
           verhandeln.",
        "detectedSourceLanguage": "en",
        "model": "nmt"
      }
    ]
  }
}

C#

Antes de probar esta muestra, sigue las instrucciones de configuración para C# que se encuentran en la Guía de inicio rápido de la API de Translation con el uso de bibliotecas cliente. Para obtener más información, consulta la documentación de referencia de la API de C# para la API de Translation.

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

public partial class TranslateSample
{
    public TranslationResult TranslateTextWithModel()
    {
        TranslationClient client = TranslationClient.Create();
        TranslationResult result = client.TranslateText(
            text: "Hello World.",
            targetLanguage: "ja",  // Japanese
            sourceLanguage: "en",  // English
            model: TranslationModel.NeuralMachineTranslation);
        Console.WriteLine($"Model: {result.Model}");
        Console.WriteLine(result.TranslatedText);
        return result;
    }
}

Java

Antes de probar esta muestra, sigue las instrucciones de configuración para Java que se encuentran en la Guía de inicio rápido de la API de Translation con el uso de bibliotecas cliente. Para obtener más información, consulta la documentación de referencia de la API de Java para la API de Translation.

Translation translation =
    translate.translate(
        "Hola Mundo!",
        Translate.TranslateOption.sourceLanguage("es"),
        Translate.TranslateOption.targetLanguage("de"),
        // Use "base" for standard edition, "nmt" for the premium model.
        Translate.TranslateOption.model("nmt"));

System.out.printf("TranslatedText:\nText: %s\n", translation.getTranslatedText());

Node.js

Antes de probar esta muestra, sigue las instrucciones de configuración para Node.js que se encuentran en la Guía de inicio rápido de la API de Translation con el uso de bibliotecas cliente. Si quieres obtener más información, consulta la documentación de referencia de la API de Node.js para la API de Translation.

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

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

/**
 * TODO(developer): Uncomment the following lines before running the sample.
 */
// const text = 'The text to translate, e.g. Hello, world!';
// const target = 'The target language, e.g. ru';
// const model = 'The model to use, e.g. nmt';

const options = {
  // The target language, e.g. "ru"
  to: target,
  // Make sure your project is whitelisted.
  // Possible values are "base" and "nmt"
  model: model,
};

// Translates the text into the target language. "text" can be a string for
// translating a single piece of text, or an array of strings for translating
// multiple texts.
let [translations] = await translate.translate(text, options);
translations = Array.isArray(translations) ? translations : [translations];
console.log('Translations:');
translations.forEach((translation, i) => {
  console.log(`${text[i]} => (${target}) ${translation}`);
});

PHP

Antes de probar esta muestra, sigue las instrucciones de configuración para PHP que se encuentran en la Guía de inicio rápido de la API de Translation con el uso de bibliotecas cliente. Para obtener más información, consulta la documentación de referencia de la API de PHP para la API de Translation.

use Google\Cloud\Translate\TranslateClient;

// $text = 'The text to translate.';
// $targetLanguage = 'ja';  // Which language to translate to?
// $model = 'nmt';  // "base" for standard edition, "nmt" for premium

$translate = new TranslateClient();
$result = $translate->translate($text, [
    'target' => $targetLanguage,
    'model'  => $model,
]);
print("Source language: $result[source]\n");
print("Translation: $result[text]\n");
print("Model: $result[model]\n");

Python

Antes de probar esta muestra, sigue las instrucciones de configuración para Python que se encuentran en la Guía de inicio rápido de la API de Translation con el uso de bibliotecas cliente. Para obtener más información, consulta la documentación de referencia de la API de Python para la API de Translation.

"""Translates text into the target language.

Make sure your project is whitelisted.

Target must be an ISO 639-1 language code.
See https://g.co/cloud/translate/v2/translate-reference#supported_languages
"""
translate_client = translate.Client()

if isinstance(text, six.binary_type):
    text = text.decode('utf-8')

# 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.translate(
    text, target_language=target, model=model)

print(u'Text: {}'.format(result['input']))
print(u'Translation: {}'.format(result['translatedText']))
print(u'Detected source language: {}'.format(
    result['detectedSourceLanguage']))

Ruby

Antes de probar esta muestra, sigue las instrucciones de configuración para Ruby que se encuentran en la Guía de inicio rápido de la API de Translation con el uso de bibliotecas cliente. Para obtener más información, consulta la documentación de referencia de la API de Ruby para la API de Translation.

# project_id    = "Your Google Cloud project ID"
# text          = "The text you would like to translate"
# language_code = "The ISO 639-1 code of language to translate to, eg. 'en'"

require "google/cloud/translate"

translate   = Google::Cloud::Translate.new project: project_id
translation = translate.translate text, to: language_code, model: "nmt"

puts "Translated '#{text}' to '#{translation.text.inspect}'"
puts "Original language: #{translation.from} translated to: #{translation.to}"

¿Te ha resultado útil esta página? Enviar comentarios:

Enviar comentarios sobre...

API de Cloud Translation
Si necesitas ayuda, visita nuestra página de asistencia.