Traduci documenti

Cloud Translation - Advanced fornisce un'API Document Translation per tradurre direttamente documenti formattati come PDF e DOCX. Rispetto alle traduzioni di testo normale, Document Translation conserva la formattazione e il layout originali nei documenti tradotti, aiutandoti a mantenere gran parte del contesto originale, come le interruzioni di paragrafo.

Le sezioni seguenti descrivono come tradurre documenti e utilizzare Document Translation con altre funzionalità di Cloud Translation - Advanced, come i glossari e i modelli AutoML Translation. Document Translation supporta le richieste di traduzione online e batch.

Per le traduzioni di testo normale e HTML, consulta Traduci testo.

Formati di file supportati

Document Translation supporta i seguenti tipi di file di input e i relativi tipi di file di output associati.

Input Tipo MIME del documento Output
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

* I contenuti all'interno delle caselle di testo non vengono tradotti e rimangono nella lingua di origine.

Document Translation supporta documenti PDF nativi e scansionati con alcune differenze. Per una gestione ottimale del formato, utilizza file PDF nativi, se possibile. La traduzione dei file PDF scansionati comporta una perdita di formattazione. Anche i layout PDF complessi possono comportare una perdita di formattazione, che può includere tabelle di dati, layout a più colonne e grafici con etichette o legende.

Se hai contenuti PDF in formato DOCX o PPTX, ti consigliamo di tradurli utilizzando questi formati prima di convertirli in PDF. In generale, Document Translation conserva il layout e lo stile dei file DOCX e PPTX meglio dei file PDF. Dopo la traduzione di un documento, puoi convertire i risultati in file PDF.

Traduzioni di documenti PDF nativi e scansionati

Document Translation supporta i file PDF nativi e scansionati, incluse le traduzioni da o verso lingue con scrittura da destra a sinistra. Il supporto per le conversioni da PDF a DOCX è disponibile solo per le traduzioni batch di documenti su file PDF nativi. Inoltre, Document Translation conserva i link ipertestuali, le dimensioni e il colore dei caratteri solo per i file PDF nativi (sia per le traduzioni sincrone che batch).

Se traduci un file PDF con un mix di contenuti PDF scansionati e nativi, i contenuti scansionati non vengono tradotti.

Prima di iniziare

Prima di poter iniziare a utilizzare l'API Cloud Translation, devi avere un progetto in cui sia abilitata l'API Cloud Translation e le credenziali appropriate. Puoi anche installare librerie client per i linguaggi di programmazione più comuni per facilitare le chiamate all'API. Per saperne di più, consulta la pagina Configurazione.

Autorizzazioni obbligatorie

Per le richieste che richiedono l'accesso a Cloud Storage, come la traduzione di documenti batch, potresti aver bisogno delle autorizzazioni Cloud Storage per leggere i file di input o inviare i file di output a un bucket. Ad esempio, per leggere i file di input da un bucket, devi disporre almeno delle autorizzazioni di lettura degli oggetti (fornite dal ruolo roles/storage.objectViewer) sul bucket. Per saperne di più sui ruoli Cloud Storage, consulta la documentazione di Cloud Storage.

Traduci documenti (online)

La traduzione online offre l'elaborazione in tempo reale (elaborazione sincrona) di un singolo file.

Per i PDF, la dimensione del file può essere fino a 20 MB e fino a 300 pagine per i PDF nativi (richiede che il campo isTranslateNativePdfOnly sia true). Se attivi il campo enableShadowRemovalNativePdf, il limite è di 20 pagine. Per i PDF scansionati, il limite è di 20 pagine.

Per gli altri tipi di documenti, le dimensioni dei file possono raggiungere i 20 MB senza limiti di pagine.

Traduci un documento da Cloud Storage

L'esempio seguente traduce un file da un bucket Cloud Storage e restituisce il risultato in un bucket Cloud Storage. La risposta restituisce anche un flusso di byte. Puoi specificare il tipo MIME. Se non lo fai, Document Translation lo determina utilizzando l'estensione del file di input.

Se non specifichi un codice della lingua di origine, Document Translation rileva la lingua per conto tuo. La lingua rilevata è inclusa nell'output nel campo detectedLanguageCode.

REST

Prima di utilizzare i dati della richiesta, apporta le sostituzioni seguenti:

  • PROJECT_NUMBER_OR_ID: l'ID numerico o alfanumerico del tuo progetto Google Cloud .
  • LOCATION: la regione in cui vuoi eseguire questa operazione. Ad esempio: us-central1.
  • SOURCE_LANGUAGE: (Facoltativo) il codice lingua del documento di input. Se noto, impostalo su uno dei codici lingua elencati in Lingue supportate.
  • TARGET_LANGUAGE: la lingua di destinazione in cui tradurre il documento di input. Impostala su uno dei codici lingua elencati in Lingue supportate.
  • INPUT_FILE_PATH: il percorso di Cloud Storage e il nome del file del documento di input.
  • OUTPUT_FILE_PREFIX: il percorso di Cloud Storage in cui verrà archiviato il documento di output.
  • IS_NATIVE: (Facoltativo) per i documenti PDF nativi, un valore booleano che indica se la richiesta utilizza il limite di pagine per PDF nativi o scansionati. Se vero, il limite di pagine viene aumentato a 300 pagine solo per i documenti PDF nativi. Se il valore è false o non viene specificato, viene applicato il limite di pagine per PDF scansionati (20 pagine).

Metodo HTTP e URL:

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

Corpo JSON della richiesta:

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

Per inviare la richiesta, espandi una di queste opzioni:

Dovresti ricevere una risposta JSON simile alla seguente:

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

Node.js

Prima di provare questo esempio, segui le istruzioni di configurazione di Node.js nella guida rapida di Cloud Translation per l'utilizzo delle librerie client. Per saperne di più, consulta la documentazione di riferimento dell'API Cloud Translation Node.js.

Per eseguire l'autenticazione in Cloud Translation, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configura l'autenticazione per un ambiente di sviluppo locale.

/**
 * 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();

Traduci un documento incorporato

L'esempio seguente invia un documento incorporato nella richiesta. Devi includere il tipo MIME per le traduzioni dei documenti incorporati.

Se non specifichi un codice della lingua di origine, Document Translation rileva la lingua per conto tuo. La lingua rilevata è inclusa nell'output nel campo detectedLanguageCode.

REST

Prima di utilizzare i dati della richiesta, apporta le sostituzioni seguenti:

  • PROJECT_NUMBER_OR_ID: l'ID numerico o alfanumerico del tuo progetto Google Cloud .
  • LOCATION: la regione in cui vuoi eseguire questa operazione. Ad esempio: us-central1.
  • SOURCE_LANGUAGE: (Facoltativo) il codice lingua del documento di input. Se noto, impostalo su uno dei codici lingua elencati in Lingue supportate.
  • TARGET_LANGUAGE: la lingua di destinazione in cui tradurre il documento di input. Impostala su uno dei codici lingua elencati in Lingue supportate.
  • MIME_TYPE: il formato del documento di origine, ad esempio application/pdf.
  • INPUT_BYTE_STREAM: i contenuti del documento di input rappresentati come un flusso di byte.
  • OUTPUT_FILE_PREFIX: il percorso di Cloud Storage in cui verrà archiviato il documento di output.
  • IS_NATIVE: (Facoltativo) per i documenti PDF nativi, un valore booleano che indica se la richiesta utilizza il limite di pagine per PDF nativi o scansionati. Se vero, il limite di pagine viene aumentato a 300 pagine solo per i documenti PDF nativi. Se il valore è false o non viene specificato, viene applicato il limite di pagine per PDF scansionati (20 pagine).

Metodo HTTP e URL:

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

Corpo JSON della richiesta:

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

Per inviare la richiesta, espandi una di queste opzioni:

Dovresti ricevere una risposta JSON simile alla seguente:

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

Python

Prima di provare questo esempio, segui le istruzioni di configurazione di Python nella guida rapida di Cloud Translation per l'utilizzo delle librerie client. Per saperne di più, consulta la documentazione di riferimento dell'API Cloud Translation Python.

Per eseguire l'autenticazione in Cloud Translation, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configura l'autenticazione per un ambiente di sviluppo locale.

from google.cloud import translate_v3beta1 as translate


def translate_document(
    project_id: str,
    file_path: str,
) -> translate.TranslationServiceClient:
    """Translates a document.

    Args:
        project_id: The GCP project ID.
        file_path: The path to the file to be translated.

    Returns:
        The translated document.
    """

    client = translate.TranslationServiceClient()
    location = "us-central1"
    parent = f"projects/{project_id}/locations/{location}"

    # Supported file types: https://cloud.google.com/translate/docs/supported-formats
    with open(file_path, "rb") as document:
        document_content = document.read()

    document_input_config = {
        "content": document_content,
        "mime_type": "application/pdf",
    }

    response = client.translate_document(
        request={
            "parent": parent,
            "target_language_code": "fr-FR",
            "document_input_config": document_input_config,
        }
    )

    # To output the translated document, uncomment the code below.
    # f = open('/tmp/output', 'wb')
    # f.write(response.document_translation.byte_stream_outputs[0])
    # f.close()

    # If not provided in the TranslationRequest, the translated file will only be returned through a byte-stream
    # and its output mime type will be the same as the input file's mime type
    print(
        f"Response: Detected Language Code - {response.document_translation.detected_language_code}"
    )

    return response

Utilizza un modello AutoML o un glossario

Invece del modello gestito da Google, puoi utilizzare i tuoi modelli di AutoML Translation per tradurre i documenti. Oltre a specificare un modello, puoi anche includere un glossario per gestire la terminologia di un ambito specifico. Se specifichi un modello o un glossario, devi indicare la lingua di origine. L'esempio seguente utilizza un modello AutoML e un glossario. Se il modello o il glossario si trovano in un progetto diverso, devi disporre dell'autorizzazione IAM corrispondente per accedere a queste risorse.

REST

Prima di utilizzare i dati della richiesta, apporta le sostituzioni seguenti:

  • PROJECT_NUMBER_OR_ID: l'ID numerico o alfanumerico del tuo progetto Google Cloud .
  • LOCATION: la regione in cui vuoi eseguire questa operazione, ad esempio us-central1. La località deve corrispondere alla regione in cui si trovano il modello, il glossario o entrambi.
  • SOURCE_LANGUAGE: il codice lingua del documento di input. Impostalo su uno dei codici lingua elencati in Lingue supportate.
  • TARGET_LANGUAGE: la lingua di destinazione in cui tradurre il documento di input. Impostala su uno dei codici lingua elencati in Lingue supportate.
  • INPUT_FILE_PATH: il percorso di Cloud Storage e il nome del file del documento di input.
  • OUTPUT_FILE_PREFIX: il percorso di Cloud Storage in cui verrà archiviato il documento di output.
  • MODEL_PROJECT_ID: l'ID progetto in cui si trova il modello.
  • MODEL_LOCATION: la regione in cui si trova il modello.
  • MODEL_ID: l'ID del modello da utilizzare.
  • GLOSSARY_PROJECT_ID: l'ID progetto in cui si trova il glossario.
  • GLOSSARY_LOCATION: la regione in cui si trova il glossario.
  • GLOSSARY_ID: l'ID del glossario da utilizzare.

Metodo HTTP e URL:

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

Corpo JSON della richiesta:

{
  "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"
    }
  },
  "model": "projects/MODEL_PROJECT_ID/locations/MODEL_LOCATION/models/MODEL_ID",
  "glossary_config": {
    "glossary": "projects/GLOSSARY_PROJECT_ID/locations/MODEL_LOCATION/glossaries/GLOSSARY_ID"
  }
}

Per inviare la richiesta, espandi una di queste opzioni:

Dovresti ricevere una risposta JSON simile alla seguente:

{
  "documentTranslation": {
    "byteStreamOutputs": ["BYTE_STREAM"],
    "mimeType": "MIME_TYPE"
  },
  "glossary_document_translation": {
    "byteStreamOutputs": ["BYTE_STREAM_USING_GLOSSARY"],
    "mimeType": "MIME_TYPE"
  },
  "model": "projects/MODEL_PROJECT_ID/locations/MODEL_LOCATION/models/MODEL_ID",
  "glossaryConfig": {
    "glossary": "projects/GLOSSARY_PROJECT_ID/locations/MODEL_LOCATION/glossaries/GLOSSARY_ID"
  }
}

Traduci documenti (batch)

La traduzione batch ti consente di tradurre più file in più lingue in un'unica richiesta. Per ogni richiesta, puoi inviare fino a 100 file con una dimensione totale dei contenuti fino a 1 GB o 100 milioni di punti di codice Unicode, a seconda del limite raggiunto per primo. Puoi specificare un modello di traduzione specifico per ogni lingua.

Traduci più documenti

L'esempio seguente include più configurazioni di input. Ogni configurazione di input è un puntatore a un file in un bucket Cloud Storage.

REST

Prima di utilizzare i dati della richiesta, apporta le sostituzioni seguenti:

  • PROJECT_NUMBER_OR_ID: l'ID numerico o alfanumerico del tuo progetto Google Cloud .
  • LOCATION: la regione in cui vuoi eseguire questa operazione. Ad esempio: us-central1.
  • SOURCE_LANGUAGE: il codice lingua dei documenti di input. Impostalo su uno dei codici lingua elencati in Lingue supportate.
  • TARGET_LANGUAGE: la lingua o le lingue di destinazione in cui tradurre i documenti di input. Utilizza i codici lingua elencati in Lingue supportate.
  • INPUT_FILE_PATH: il percorso di Cloud Storage e il nome del file di uno o più documenti di input.
  • OUTPUT_FILE_PREFIX: il percorso di Cloud Storage in cui sono archiviati tutti i documenti di output.

Metodo HTTP e URL:

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

Corpo JSON della richiesta:

{
  "source_language_code": "SOURCE_LANGUAGE",
  "target_language_codes": ["TARGET_LANGUAGE", ...],
  "input_configs": [
    {
      "gcsSource": {
        "inputUri": "gs://INPUT_FILE_PATH_1"
      }
    },
    {
      "gcsSource": {
        "inputUri": "gs://INPUT_FILE_PATH_2"
      }
    },
    ...
  ],
  "output_config": {
    "gcsDestination": {
      "outputUriPrefix": "gs://OUTPUT_FILE_PREFIX"
    }
  }
}

Per inviare la richiesta, espandi una di queste opzioni:

La risposta contiene l'ID di un'operazione a lunga esecuzione.
{
  "name": "projects/PROJECT_NUMBER/locations/LOCATION/operations/OPERATION_ID",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.translation.v3.BatchTranslateDocumentMetadata",
    "state": "RUNNING"
  }
}

Node.js

Prima di provare questo esempio, segui le istruzioni di configurazione di Node.js nella guida rapida di Cloud Translation per l'utilizzo delle librerie client. Per saperne di più, consulta la documentazione di riferimento dell'API Cloud Translation Node.js.

Per eseguire l'autenticazione in Cloud Translation, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configura l'autenticazione per un ambiente di sviluppo locale.

/**
 * TODO(developer): Uncomment these variables before running the sample.
 */
// const projectId = 'YOUR_PROJECT_ID';
// const location = 'us-central1';
// const inputUri = 'path_to_your_files';
// const outputUri = 'path_to_your_output_bucket';

// 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 batchTranslateDocument() {
  // Construct request
  const request = {
    parent: translationClient.locationPath(projectId, location),
    documentInputConfig: documentInputConfig,
    sourceLanguageCode: 'en-US',
    targetLanguageCodes: ['sr-Latn'],
    inputConfigs: [
      {
        gcsSource: {
          inputUri: inputUri,
        },
      },
    ],
    outputConfig: {
      gcsDestination: {
        outputUriPrefix: outputUri,
      },
    },
  };

  // Batch translate documents using a long-running operation.
  // You can wait for now, or get results later.
  const [operation] = await translationClient.batchTranslateDocument(request);

  // Wait for operation to complete.
  const [response] = await operation.promise();

  console.log(`Total Pages: ${response.totalPages}`);
}

batchTranslateDocument();

Python

Prima di provare questo esempio, segui le istruzioni di configurazione di Python nella guida rapida di Cloud Translation per l'utilizzo delle librerie client. Per saperne di più, consulta la documentazione di riferimento dell'API Cloud Translation Python.

Per eseguire l'autenticazione in Cloud Translation, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configura l'autenticazione per un ambiente di sviluppo locale.


from google.cloud import translate_v3beta1 as translate


def batch_translate_document(
    input_uri: str,
    output_uri: str,
    project_id: str,
    timeout: int = 180,
) -> translate.BatchTranslateDocumentResponse:
    """Batch translate documents.

    Args:
        input_uri: Google Cloud Storage location of the input document.
        output_uri: Google Cloud Storage location of the output document.
        project_id: The GCP project ID.
        timeout: The timeout for this request.

    Returns:
        Translated document response
    """
    client = translate.TranslationServiceClient()

    # The ``global`` location is not supported for batch translation
    location = "us-central1"

    # Google Cloud Storage location for the source input. This can be a single file
    # (for example, ``gs://translation-test/input.docx``) or a wildcard
    # (for example, ``gs://translation-test/*``).
    # Supported file types: https://cloud.google.com/translate/docs/supported-formats
    gcs_source = {"input_uri": input_uri}

    batch_document_input_configs = {
        "gcs_source": gcs_source,
    }
    gcs_destination = {"output_uri_prefix": output_uri}
    batch_document_output_config = {"gcs_destination": gcs_destination}
    parent = f"projects/{project_id}/locations/{location}"

    # Supported language codes: https://cloud.google.com/translate/docs/language
    operation = client.batch_translate_document(
        request={
            "parent": parent,
            "source_language_code": "en-US",
            "target_language_codes": ["fr-FR"],
            "input_configs": [batch_document_input_configs],
            "output_config": batch_document_output_config,
        }
    )

    print("Waiting for operation to complete...")
    response = operation.result(timeout)

    print(f"Total Pages: {response.total_pages}")

    return response

Traduci e converti un file PDF nativo

L'esempio seguente traduce e converte un file PDF nativo in un file DOCX. Puoi specificare più input di vari tipi di file; non devono essere tutti file PDF nativi. Tuttavia, i file PDF scansionati non possono essere inclusi quando effettui una conversione; la richiesta viene rifiutata e non vengono eseguite traduzioni. Vengono tradotti e convertiti in file DOCX solo i file PDF nativi. Ad esempio, se includi file PPTX, questi vengono tradotti e restituiti come file PPTX.

Se traduci regolarmente un mix di file PDF scansionati e nativi, ti consigliamo di organizzarli in bucket Cloud Storage separati. In questo modo, quando richiedi una traduzione e una conversione batch, puoi escludere facilmente il bucket che contiene i file PDF scansionati invece di dover escludere i singoli file.

REST

Prima di utilizzare i dati della richiesta, apporta le sostituzioni seguenti:

  • PROJECT_NUMBER_OR_ID: l'ID numerico o alfanumerico del tuo progetto Google Cloud .
  • LOCATION: la regione in cui vuoi eseguire questa operazione. Ad esempio: us-central1.
  • SOURCE_LANGUAGE: il codice lingua dei documenti di input. Impostalo su uno dei codici lingua elencati in Lingue supportate.
  • TARGET_LANGUAGE: la lingua o le lingue di destinazione in cui tradurre i documenti di input. Utilizza i codici lingua elencati in Lingue supportate.
  • INPUT_FILE_PATH: il percorso di Cloud Storage e il nome del file di uno o più file PDF nativi.
  • OUTPUT_FILE_PREFIX: il percorso di Cloud Storage in cui sono archiviati tutti i documenti di output.

Metodo HTTP e URL:

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

Corpo JSON della richiesta:

{
  "source_language_code": "SOURCE_LANGUAGE",
  "target_language_codes": ["TARGET_LANGUAGE", ...],
  "input_configs": [
    {
      "gcsSource": {
        "inputUri": "gs://INPUT_FILE_PATH_1"
      }
    },
    {
      "gcsSource": {
        "inputUri": "gs://INPUT_FILE_PATH_2"
      }
    },
    ...
  ],
  "output_config": {
    "gcsDestination": {
      "outputUriPrefix": "gs://OUTPUT_FILE_PREFIX"
    }
  },
  "format_conversions": {
    "application/pdf": "application/vnd.openxmlformats-officedocument.wordprocessingml.document"
  }
}

Per inviare la richiesta, espandi una di queste opzioni:

La risposta contiene l'ID di un'operazione a lunga esecuzione.
{
  "name": "projects/PROJECT_NUMBER/locations/LOCATION/operations/OPERATION_ID",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.translation.v3.BatchTranslateDocumentMetadata",
    "state": "RUNNING"
  }
}

Utilizza un modello AutoML o un glossario

Invece del modello gestito da Google, puoi utilizzare i tuoi modelli di AutoML Translation per tradurre i documenti. Oltre a specificare un modello, puoi anche includere un glossario per gestire la terminologia di un ambito specifico. Se specifichi un modello o un glossario, devi indicare la lingua di origine. L'esempio seguente utilizza un modello AutoML e un glossario. Puoi specificare fino a 10 lingue di destinazione con il relativo modello e glossario.

Se specifichi un modello per alcune lingue di destinazione e non per altre, Document Translation utilizza il modello gestito da Google per le lingue non specificate. Analogamente, se specifichi un glossario per alcune lingue di destinazione, Document Translation non utilizza alcun glossario per le lingue non specificate.

REST

Prima di utilizzare i dati della richiesta, apporta le sostituzioni seguenti:

  • PROJECT_NUMBER_OR_ID: l'ID numerico o alfanumerico del tuo progetto Google Cloud .
  • LOCATION: la regione in cui vuoi eseguire questa operazione, ad esempio us-central1. La località deve corrispondere alla regione in cui si trovano il modello, il glossario o entrambi.
  • SOURCE_LANGUAGE: il codice lingua dei documenti di input. Impostalo su uno dei codici lingua elencati in Lingue supportate.
  • TARGET_LANGUAGE: la lingua o le lingue di destinazione in cui tradurre i documenti di input. Utilizza i codici lingua elencati in Lingue supportate.
  • INPUT_FILE_PATH: il percorso di Cloud Storage e il nome del file di uno o più documenti di input.
  • OUTPUT_FILE_PREFIX: il percorso di Cloud Storage in cui sono archiviati tutti i documenti di output.
  • MODEL_PROJECT_ID: l'ID progetto in cui si trova il modello.
  • MODEL_LOCATION: la regione in cui si trova il modello.
  • MODEL_ID: l'ID del modello da utilizzare.
  • GLOSSARY_PROJECT_ID: l'ID progetto in cui si trova il glossario.
  • GLOSSARY_LOCATION: la regione in cui si trova il glossario.
  • GLOSSARY_ID: l'ID del glossario da utilizzare.

Metodo HTTP e URL:

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

Corpo JSON della richiesta:

{
  "source_language_code": "SOURCE_LANGUAGE",
  "target_language_codes": "[TARGET_LANGUAGE, ...]",
  "input_configs": [
    {
      "gcsSource": {
        "inputUri": "gs://INPUT_FILE_PATH"
      }
    }
  ],
  "output_config": {
    "gcsDestination": {
      "outputUriPrefix": "gs://OUTPUT_FILE_PREFIX"
    }
  },
  "models": {
    "TARGET_LANGUAGE": "projects/MODEL_PROJECT_ID/locations/MODEL_LOCATION/models/MODEL_ID",
    ...
  },
  "glossaries": {
    "TARGET_LANGUAGE": {
      "glossary": "projects/GLOSSARY_PROJECT_ID/locations/MODEL_LOCATION/glossaries/GLOSSARY_ID"
    },
    ...
  }
}

Per inviare la richiesta, espandi una di queste opzioni:

La risposta contiene l'ID di un'operazione a lunga esecuzione.
{
  "name": "projects/PROJECT_NUMBER/locations/LOCATION/operations/OPERATION_ID",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.translation.v3.BatchTranslateDocumentMetadata",
    "state": "RUNNING"
  }
}

Sovrapposizione di testo

In alcuni casi, le traduzioni di PDF nativi potrebbero includere testo tradotto sovrapposto al testo di origine. Questo problema è noto come shadow text, o testo ombra.

In alcuni casi, puoi rimuovere il testo ombra attivando l'opzione enableShadowRemovalNativePdf. Se attivi questa opzione, la latenza della risposta aumenta e, per le traduzioni di documenti online, il limite di pagine viene ridotto a 20. Puoi sapere se il tuo documento richiede la rimozione del testo ombra solo dopo che è stato tradotto.

In altri casi, se l'opzione enableShadowRemovalNativePdf non funziona, converti il PDF in un'immagine e poi traducila. In genere, questi casi includono testo su più livelli, ad esempio quando il testo selezionabile si trova sopra un'immagine di sfondo che include del testo. La conversione del PDF in un'immagine consente a Cloud Translation di elaborare il documento come PDF scansionato. Per eseguire la conversione, puoi utilizzare Chrome (stampa come immagine) o altri strumenti di terze parti.

Orientamento del testo

Per le traduzioni di PDF scansionati, il testo di origine deve essere orientato orizzontalmente. Se, ad esempio, un documento scansionato include testo con inclinazione verso l'alto o verso il basso, Cloud Translation potrebbe non analizzarlo tutto correttamente, causando traduzioni errate o incomplete.

Se l'orientamento dei documenti non è coerente, puoi chiedere a Cloud Translation di orientarli per te. Nella richiesta di traduzione, attiva l'opzione enableRotationCorrection, in modo che il testo sia orientato correttamente prima della traduzione.

Passaggi successivi

  • Il prezzo di Document Translation viene calcolato per pagina. Per saperne di più, consulta i prezzi.