Traduire du texte (version Basic)

Ce document décrit comment traduire du texte à l'aide de Cloud Translation – Basic (v2).

Le texte d'entrée peut être du texte brut ou du texte au format HTML. Cloud Translation – Basic ne traduit pas les balises HTML contenues dans le texte d'entrée. Il traduit seulement le texte qui se trouve entre les balises. La sortie conserve les balises HTML (non traduites) autour du texte traduit dans la mesure du possible étant donné que les langues source et cible sont différentes. L'ordre des balises HTML peut différer dans la sortie par rapport au texte d'entrée, car la traduction entraîne une variation de l'ordre des mots.

Avant de commencer

Pour pouvoir utiliser l'API Cloud Translation, vous devez disposer d'un projet pour lequel cette API est activée, ainsi que d'une clé privée avec les identifiants appropriés. Vous pouvez également installer des bibliothèques clientes pour les langages de programmation courants afin de faciliter les appels à l'API. Pour en savoir plus, consultez la page Configuration.

Traduire le texte

Cette section décrit plusieurs manières de demander des traductions à partir du point de terminaison https://translation.googleapis.com/language/translate/v2.

Traduire des chaînes d'entrée

API REST et ligne de commande

Pour traduire du texte, effectuez une requête POST dont le corps contienne un format JSON qui identifie la langue cible (target) et le texte à traduire (q). Vous pouvez fournir plusieurs segments de texte à traduire en incluant plusieurs champs q ou une liste de valeurs pour le champ q. Vous ne pouvez pas dépasser 128 segments de texte. Vous spécifiez les langues cibles à l'aide de leurs codes ISO-639-1.

Vous trouverez ci-dessous un exemple de requête POST effectuée avec curl ou PowerShell. Cet exemple fait intervenir le jeton d'accès associé à un compte de service configuré pour le projet à l'aide du SDK Cloud de Google Cloud. Pour obtenir des instructions sur l'installation du SDK Cloud, la configuration d'un projet avec un compte de service et l'obtention d'un jeton d'accès, consultez la page Configuration.

Méthode HTTP et URL :

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

Corps JSON de la requête :

{
  "q": ["Hello world", "My name is Jeff"],
  "target": "de"
}

Pour envoyer votre requête, choisissez l'une des options suivantes :

curl

Enregistrez le corps de la requête dans un fichier nommé request.json, puis exécutez la commande suivante :

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 "

PowerShell

Enregistrez le corps de la requête dans un fichier nommé request.json, puis exécutez la commande suivante :

$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 " | Select-Object -Expand Content

Vous devriez recevoir une réponse JSON de ce type :

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

Le tableau translations contient deux champs translatedText avec des traductions fournies dans la langue target demandée (de : allemand). Les traductions sont répertoriées suivant le même ordre que le tableau source correspondant de la requête.

Go

Avant d'essayer cet exemple, suivez les instructions de configuration pour Go du guide de démarrage rapide de Translation : Utiliser les bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence de l'API Translation pour Go.

import (
	"context"
	"fmt"

	"cloud.google.com/go/translate"
	"golang.org/x/text/language"
)

func translateText(targetLanguage, text string) (string, error) {
	// text := "The Go Gopher is cute"
	ctx := context.Background()

	lang, err := language.Parse(targetLanguage)
	if err != nil {
		return "", fmt.Errorf("language.Parse: %v", 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 "", fmt.Errorf("Translate: %v", err)
	}
	if len(resp) == 0 {
		return "", fmt.Errorf("Translate returned empty response to text: %s", text)
	}
	return resp[0].Text, nil
}

Java

Avant d'essayer cet exemple, suivez les instructions de configuration pour Java du guide de démarrage rapide de Translation : Utiliser les bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence de l'API Translation pour Java.

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

Avant d'essayer cet exemple, suivez les instructions de configuration pour Node.js du guide de démarrage rapide de Translation : Utiliser les bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence de l'API Translation pour 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 lines before running the sample.
 */
// const text = 'The text to translate, e.g. Hello, world!';
// const target = 'The target language, e.g. ru';

async function translateText() {
  // 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}`);
  });
}

translateText();

Python

Avant d'essayer cet exemple, suivez les instructions de configuration pour Python du guide de démarrage rapide de Translation : Utiliser les bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence de l'API Translation pour Python.

def translate_text(target, text):
    """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
    """
    import six
    from google.cloud import translate_v2 as translate

    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"]))

Langues supplémentaires

C# : Veuillez suivre les instructions de configuration de C# sur la page des bibliothèques clientes, puis consultez la documentation de référence sur Translation pour .NET.

PHP : Veuillez suivre les instructions de configuration de PHP sur la page des bibliothèques clientes, puis consultez la documentation de référence sur Translation pour PHP.

Ruby : Veuillez suivre les instructions de configuration de Ruby sur la page des bibliothèques clientes, puis consultez la documentation de référence sur Translation pour Ruby.

Paramètre de modèle

Lorsque vous effectuez une requête de traduction dans Cloud Translation Basic, votre texte est traduit à l'aide du modèle de traduction automatique neuronale (NMT, Neural Machine Translation) de Google. Vous ne pouvez utiliser aucun autre modèle. Pour traduire du texte à l'aide de modèles AutoML, utilisez Cloud Translation Advanced.

Faites l'essai

Si vous débutez sur Google Cloud, créez un compte pour évaluer les performances de Cloud Translation en conditions réelles. Les nouveaux clients bénéficient également de 300 $ de crédits gratuits pour exécuter, tester et déployer des charges de travail.

Profiter d'un essai gratuit de Cloud Translation

Autres ressources

  • Pour obtenir de l'aide sur la résolution des erreurs ou des problèmes courants, consultez la page Dépannage.