Traduire des documents

Cloud Translation Advanced fournit l'API Document Translation pour traduire directement des documents dans des formats tels que PDF et DOCX. Par rapport aux traductions de texte brut, la Document Translation conserve la mise en forme et la mise en page d'origine dans vos documents traduits, ce qui vous permet de conserver une grande partie du contexte d'origine, comme les sauts de paragraphe.

Les sections suivantes décrivent comment traduire des documents et utiliser Document Translation avec d'autres fonctionnalités de Cloud Translation Advanced, telles que des glossaires et des modèles AutoML Translation. Document Translation est compatible avec les requêtes de traduction en ligne et par lots.

Pour les traductions en texte brut et HTML, consultez Traduire du texte.

Formats de fichiers acceptés

Document Translation accepte les types de fichiers d'entrée et les types de fichiers de sortie associés suivants.

Entrées Type MIME du document Sorties
DOC* application/msword DOC, DOCX
DOCX* application/vnd.openxmlformats-officedocument.wordprocessingml.document DOCX
PDF† application/pdf PDF, DOCX
PPT application/vnd.ms-powerpoint PPT, PPTX
PPTX application/vnd.openxmlformats-officedocument.presentationml.presentation PPTX
XLS application/vnd.ms-excel XLS, XLSX
XLSX application/vnd.openxmlformats-officedocument.spreadsheetml.sheet XLSX

* Le contenu des zones de texte n'est pas traduit et reste dans la langue source.

† Document Translation accepte les documents PDF natifs et scannés, à quelques différences près. Pour une gestion optimale du format, utilisez si possible des fichiers PDF natifs. La traduction des fichiers PDF scannés entraîne une perte de mise en forme. Les mises en page PDF complexes peuvent également entraîner une perte de mise en forme, par exemple pour les tableaux de données, les mises en page multicolonnes, et les graphiques avec des libellés ou des légendes.

Si vous avez du contenu PDF au format DOCX ou PPTX, nous vous recommandons de le traduire en utilisant ces formats avant de les convertir en PDF. En général, Document Translation conserve mieux la mise en page et le style des fichiers DOCX et PPTX que des fichiers PDF. Après la traduction d'un document, vous pouvez convertir le résultat en fichiers PDF.

Traduction de documents PDF natifs et scannés

Document Translation est compatible avec les fichiers PDF natifs et scannés, y compris les traductions vers ou depuis les langues s'écrivant de droite à gauche. L'assistance pour les conversions PDF en DOCX n'est disponible que pour les traductions de documents par lots sur des fichiers PDF natifs. En outre, Document Translation ne conserve les liens hypertextes, la taille et la couleur de police que sur des fichiers PDF natifs (pour les traductions synchrones et par lots).

Si vous traduisez un fichier PDF avec un mélange de contenu PDF scanné et natif, le contenu scanné n'est pas traduit.

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 des 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.

Autorisations requises

Pour les requêtes nécessitant un accès à Cloud Storage, telles que la traduction de documents par lots, vous pouvez avoir besoin des autorisations Cloud Storage pour lire les fichiers d'entrée ou envoyer des fichiers de sortie à un bucket. Par exemple, pour lire des fichiers d'entrée à partir d'un bucket, vous devez disposer au minimum des autorisations de lecture des objets (fournies par le rôle roles/storage.objectViewer) sur le bucket. Pour en savoir plus sur les rôles Cloud Storage, consultez la documentation associée.

Traduire des documents (en ligne)

La traduction en ligne permet de traiter en temps réel (traitement synchrone) un fichier unique.

Pour les PDF, la taille maximale du fichier est de 20 Mo et de 300 pages pour les PDF natifs (la valeur du champ isTranslateNativePdfOnly doit être true). Si vous activez le champ enableShadowRemovalNativePdf, la limite est de 20 pages. Pour les PDF scannés, la limite est de 20 pages.

Pour les autres types de documents, la taille du fichier peut atteindre 20 Mo, sans limite de page.

Traduire un document à partir de Cloud Storage

L’exemple ci-dessous illustre la traduction d’un fichier depuis un bucket Cloud Storage, avec génération du résultat dans un bucket Cloud Storage. La réponse renvoie également un flux d'octets. Vous pouvez spécifier le type MIME. Si vous ne le faites pas, Document Translation le détermine à l'aide de l'extension du fichier d'entrée.

Si vous ne spécifiez pas de code de langue source, Document Translation détecte la langue pour vous. La langue détectée est incluse dans la sortie dans le champ detectedLanguageCode.

REST

Avant d'utiliser les données de requête, effectuez les remplacements suivants :

  • PROJECT_NUMBER_OR_ID : ID numérique ou alphanumérique de votre projet Google Cloud .
  • LOCATION : région dans laquelle vous souhaitez exécuter cette opération. Exemple : us-central1.
  • SOURCE_LANGUAGE (facultatif) : code de langue du document d'entrée. Si vous le connaissez, spécifiez l'un des codes de langue répertoriés dans la page Langues acceptées.
  • TARGET_LANGUAGE : langue cible vers laquelle traduire le document d'entrée. Spécifiez l'un des codes de langue répertoriés dans la page Langues acceptées.
  • INPUT_FILE_PATH : emplacement Cloud Storage et nom de fichier du document d'entrée.
  • OUTPUT_FILE_PREFIX : emplacement Cloud Storage où le document de sortie sera stocké.
  • IS_NATIVE (facultatif) : pour les documents PDF natifs, une valeur booléenne indique si votre requête doit appliquer la limite de pages des PDF natifs ou celle des PDF scannés. Si la valeur est "true", la limite maximale de pages passe à 300 (pour les PDF natifs uniquement). Si la valeur est "false" ou non spécifiée, la limite des PDF scannés est appliquée (20 pages).

Méthode HTTP et URL :

POST https://translation.googleapis.com/v3/projects/PROJECT_NUMBER_OR_ID/locations/LOCATION:translateDocument

Corps JSON de la requête :

{
  "source_language_code": "SOURCE_LANGUAGE",
  "target_language_code": "TARGET_LANGUAGE",
  "document_input_config": {
    "gcsSource": {
      "inputUri": "gs://INPUT_FILE_PATH"
    }
  },
  "document_output_config": {
    "gcsDestination": {
      "outputUriPrefix": "gs://OUTPUT_FILE_PREFIX"
    }
  },
  "isTranslateNativePdfOnly": IS_NATIVE
}

Pour envoyer votre requête, développez l'une des options suivantes :

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

{
  "documentTranslation": {
    "byteStreamOutputs": ["BYTE_STREAM"],
    "mimeType": "MIME_TYPE"
  },
  "model": "projects/PROJECT_NUMBER/locations/LOCATION/models/general/nmt"
}

Node.js

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

Pour vous authentifier auprès de Cloud Translation, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.

/**
 * TODO(developer): Uncomment these variables before running the sample.
 */
// const projectId = 'YOUR_PROJECT_ID';
// const location = 'global';
// const inputUri = 'path_to_your_file';

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

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

const documentInputConfig = {
  gcsSource: {
    inputUri: inputUri,
  },
};

async function translateDocument() {
  // Construct request
  const request = {
    parent: translationClient.locationPath(projectId, location),
    documentInputConfig: documentInputConfig,
    sourceLanguageCode: 'en-US',
    targetLanguageCode: 'sr-Latn',
  };

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

  console.log(
    `Response: Mime Type - ${response.documentTranslation.mimeType}`
  );
}

translateDocument();

Traduire un document intégré

L’exemple ci-dessous illustre l’envoi d’un document intégré dans le corps de la requête. Pour les traductions de documents intégrés, vous devez inclure le type MIME.

Si vous ne spécifiez pas de code de langue source, Document Translation détecte la langue pour vous. La langue détectée est incluse dans la sortie dans le champ detectedLanguageCode.

REST

Avant d'utiliser les données de requête, effectuez les remplacements suivants :

  • PROJECT_NUMBER_OR_ID : ID numérique ou alphanumérique de votre projet Google Cloud .
  • LOCATION : région dans laquelle vous souhaitez exécuter cette opération. Exemple : us-central1.
  • SOURCE_LANGUAGE (facultatif) : code de langue du document d'entrée. Si vous le connaissez, spécifiez l'un des codes de langue répertoriés dans la page Langues acceptées.
  • TARGET_LANGUAGE : langue cible vers laquelle traduire le document d'entrée. Spécifiez l'un des codes de langue répertoriés dans la page Langues acceptées.
  • MIME_TYPE : format du document source, tel que application/pdf.
  • INPUT_BYTE_STREAM : contenu du document d'entrée représenté sous forme de flux d'octets.
  • OUTPUT_FILE_PREFIX : emplacement Cloud Storage où le document de sortie sera stocké.
  • IS_NATIVE (facultatif) : pour les documents PDF natifs, une valeur booléenne indique si votre requête doit appliquer la limite de pages des PDF natifs ou celle des PDF scannés. Si la valeur est "true", la limite maximale de pages passe à 300 (pour les PDF natifs uniquement). Si la valeur est "false" ou non spécifiée, la limite des PDF scannés est appliquée (20 pages).

Méthode HTTP et URL :

POST https://translation.googleapis.com/v3/projects/PROJECT_NUMBER_OR_ID/locations/LOCATION:translateDocument

Corps JSON de la requête :

{
  "source_language_code": "SOURCE_LANGUAGE",
  "target_language_code": "TARGET_LANGUAGE",
  "document_input_config": {
    "mimeType": "MIME_TYPE",
    "content": "INPUT_BYTE_STREAM"
  },
  "document_output_config": {
    "gcsDestination": {
      "outputUriPrefix": "gs://OUTPUT_FILE_PREFIX"
    }
  },
  "isTranslateNativePdfOnly": IS_NATIVE
}

Pour envoyer votre requête, développez l'une des options suivantes :