Traduire des textes

Ce document explique comment utiliser l'API Cloud Translation pour traduire des textes.

Le texte source, ou texte d'entrée, peut être du texte brut ou du texte au format HTML. L'API Cloud Translation ne traduit pas les balises HTML contenues dans le texte source. Elle traduit uniquement 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.

Traduire des textes

Cette section présente quelques méthodes pour 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 détecter la langue d'un texte, effectuez une requête POST et fournissez un format JSON dans le corps de la requête permettant d'identifier la langue source (source), la langue cible (target) et le texte à traduire (q). Vous pouvez fournir plusieurs chaînes de texte à traduire en incluant plusieurs paramètres q dans votre JSON. Vous identifiez vos langues source et cible à 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 Platform. Pour savoir comment installer le SDK Cloud, configurer un projet avec un compte de service et obtenir un jeton d'accès, consultez la page Démarrage rapide.

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.

C#

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


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

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


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

Avant d'essayer cet exemple, suivez les instructions de configuration pour Java du guide de démarrage rapide de l'API Translation à l'aide des bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence sur 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 l'API Translation avec les bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence sur l'API Translation pour Node.js.

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

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

use Google\Cloud\Translate\TranslateClient;

/** Uncomment and populate these variables in your code */
// $text = 'The text to translate."
// $targetLanguage = 'ja';  // 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

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

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

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

# 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}"

Spécifier un modèle

Par défaut, lorsque vous effectuez une requête de traduction dans l'API Cloud Translation, votre texte est traduit à l'aide du modèle de traduction automatique neuronale (NMT, Neural Machine Translation). Si le modèle NMT n'est pas compatible avec la combinaison linguistique demandée, le modèle de traduction automatique sous-phrastique (PBMT, Phrase-Based Machine Translation) est utilisé.

Comparer des modèles

Le modèle NMT offre des traductions de meilleure qualité pour des contenus plus longs et plus complexes. Par exemple, examinez la requête suivante :

{
  "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"
}

Comme aucun model n'est spécifié dans la requête, et que la combinaison linguistique anglais-allemand est compatible avec le modèle NMT, la requête est traduite à l'aide du modèle nmt. La traduction ci-dessous est renvoyée dans le champ translations de la réponse :

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

Vous pouvez aussi demander spécifiquement à ce que le texte soit traduit en utilisant le modèle (PBMT) base.

{
  "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",
}

Le modèle base renvoie le résultat suivant dans le champ translations de la réponse. Il est différent de celui obtenu avec le modèle 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"

Utiliser le paramètre du modèle

Vous pouvez spécifier le modèle à utiliser pour la traduction à l'aide du paramètre de requête model. Indiquez base pour utiliser le modèle PBMT et nmt pour utiliser le modèle NMT. Si vous indiquez le modèle NMT dans votre requête, et que la combinaison linguistique demandée n'est pas compatible avec le modèle NMT, le modèle PBMT est utilisé.

L'exemple suivant montre comment utiliser le paramètre model dans une requête de traduction.

API REST et ligne de commande

Pour traduire du texte à l'aide du modèle nmt, incluez le paramètre model dans votre requête POST.

Méthode HTTP et URL :

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

Corps JSON de la requête :

{
   "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"
}

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": "Fangen wir also von vorne an - denken wir auf beiden Seiten daran, dass Höflichkeit kein Zeichen von Schwäche ist und dass Aufrichtigkeit immer ein Beweis ist. Lasst uns niemals aus Angst verhandeln. Aber fürchten wir uns niemals vor Verhandlungen.",
        "detectedSourceLanguage": "en"
      }
    ]
  }
}

C#

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


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

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

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

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

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

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

use Google\Cloud\Translate\TranslateClient;

/** Uncomment and populate these variables in your code */
// $text = 'The text to translate."
// $targetLanguage = 'ja';  // 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

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

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

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

# 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}"

Cette page vous a-t-elle été utile ? Évaluez-la :

Envoyer des commentaires concernant…

Besoin d'aide ? Consultez notre page d'assistance.