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.

Traduction de chaînes d'entrée

Commande curl

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 en utilisant leurs codes iso-639-1.

Voici un exemple de requête POST utilisant curl. L'exemple utilise le jeton d'accès pour un compte de service configuré pour le projet à l'aide du SDK Cloud de Google Cloud Platform. 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 le guide de démarrage rapide.

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 requête aboutit, le serveur renvoie un code d'état HTTP 200 OK et la réponse au format JSON :

{
  "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 de C# dans le guide de démarrage rapide de l'API Translation à l'aide des bibliothèques clientes. Pour plus d'informations, consultez la documentation de référence de l'API Translation en 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 de Go dans le guide de démarrage rapide de l'API Translation à l'aide des bibliothèques clientes/0}. Pour plus d'informations, consultez la documentation de référence de l'API Translation en 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 de Java dans le guide de démarrage rapide de l'API Translation à l'aide des bibliothèques clientes. Pour plus d'informations, consultez la documentation de référence de l'API Translation en 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 de Node.js dans le guide de démarrage rapide de l'API Translation à l'aide des bibliothèques clientes. Pour plus d'informations, consultez la documentation de référence de l'API Translation en 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 de PHP dans le guide de démarrage rapide de l'API Translation à l'aide des bibliothèques clientes. Pour plus d'informations, consultez la documentation de référence de l'API Translation en PHP.

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

Avant d'essayer cet exemple, suivez les instructions de configuration de Python dans le guide de démarrage rapide de l'API Translation à l'aide des bibliothèques clientes. Pour plus d'informations, consultez la documentation de référence de l'API Translation en 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 de Ruby dans le guide de démarrage rapide de l'API Translation à l'aide des bibliothèques clientes. Pour plus d'informations, consultez la documentation de référence de l'API Translation en 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.

Commande curl

Pour traduire du texte à l'aide du modèle nmt, incluez le paramètre model dans votre requête 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 requête aboutit, le serveur renvoie un code d'état HTTP 200 OK et la réponse au format 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#

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

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

Avant d'essayer cet exemple, suivez les instructions de configuration de Python dans le guide de démarrage rapide de l'API Translation à l'aide des bibliothèques clientes. Pour plus d'informations, consultez la documentation de référence de l'API Translation en 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 de Ruby dans le guide de démarrage rapide de l'API Translation à l'aide des bibliothèques clientes. Pour plus d'informations, consultez la documentation de référence de l'API Translation en 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…

API Cloud Translation
Besoin d'aide ? Consultez notre page d'assistance.