Formatierte Dokumente übersetzen

Die Dienste Vertex AI Translation und Optische Zeichenerkennung (Optical Character Recognition, OCR) bieten zusammen eine Dokumentverarbeitungsfunktion namens „Document Translate“.

Mit der Dokumentübersetzung können Sie formatierte Dokumente wie PDF-Dateien direkt übersetzen. Im Vergleich zu Nur-Text-Übersetzungen bleiben damit Originalformatierung und -layout Ihrer übersetzten Dokumente erhalten, sodass ein Großteil der ursprünglichen Struktur wie Absatzumbrüche beibehalten wird.

Document Translate unterstützt Dokumentübersetzungen inline, aus Storage-Buckets und im Batch.

Auf dieser Seite finden Sie eine interaktive Anleitung zur Verwendung der Dokumentverarbeitungsfunktion in Google Distributed Cloud (GDC) mit Air Gap, um Dokumente zu übersetzen und gleichzeitig ihr Format beizubehalten.

Unterstützte Formate

Document Translation unterstützt die folgenden Eingabedateitypen und die zugehörigen Ausgabedateitypen:

Eingaben MIME-Typ für das Dokument Ausgabe
PDF application/pdf PDF, DOCX
DOC application/msword DOC, DOCX
DOCX application/vnd.openxmlformats-officedocument.wordprocessingml.document 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

Übersetzung von Original- und gescannten PDF-Dokumenten

Document Translate unterstützt sowohl native als auch gescannte PDF-Dateien, einschließlich Übersetzungen in oder aus linksläufigen Sprachen bzw. Schriften. Außerdem behält Document Translate Hyperlinks, Schriftgröße und Schriftfarbe aus Dateien bei.

Hinweis

Bevor Sie die Funktion zur Dokumentverarbeitung verwenden können, benötigen Sie ein Projekt mit dem Namen dt-project. Die benutzerdefinierte Ressource des Projekts muss wie im folgenden Beispiel aussehen:

apiVersion: resourcemanager.gdc.goog/v1
kind: Project
metadata:
  labels:
    atat.config.google.com/clin-number: CLIN_NUMBER
    atat.config.google.com/task-order-number: TASK_ORDER_NUMBER
  name: dt-project
  namespace: platform

Außerdem müssen Sie die vortrainierten APIs für Vertex AI Translation und OCR aktivieren und die entsprechenden Anmeldedaten haben. Sie können die Vertex AI Translation- und OCR-Clientbibliotheken installieren, um API-Aufrufe zu vereinfachen. Weitere Informationen zu den Voraussetzungen finden Sie unter Übersetzungsprojekt einrichten.

Dokument aus einem Storage-Bucket übersetzen

Wenn Sie ein Dokument übersetzen möchten, das in einem Bucket gespeichert ist, verwenden Sie die Vertex AI Translation API.

In diesem Abschnitt wird beschrieben, wie Sie ein Dokument aus einem Bucket übersetzen und das Ergebnis in einem anderen Ausgabebucket-Pfad speichern. Die Antwort gibt auch einen Bytestream zurück. Sie können dabei den MIME-Typ angeben. Ohne diese Angabe wird er von Document Translate anhand der Erweiterung der Eingabedatei ermittelt.

Document Translate unterstützt die automatische Spracherkennung für Dokumente, die in Buckets gespeichert sind. Wenn Sie keinen Ausgangssprachcode angeben, ermittelt Document Translation die Sprache automatisch. Die ermittelte Sprache ist in der Ausgabe im Feld detectedLanguageCode enthalten.

So übersetzen Sie ein Dokument aus einem Storage-Bucket:

  1. gdcloud CLI für Objektspeicher konfigurieren
  2. Erstellen Sie einen Storage-Bucket im Namespace dt-project. Verwenden Sie eine Standard-Speicherklasse.

    Sie können den Storage-Bucket erstellen, indem Sie eine Bucket-Ressource im Namespace dt-project bereitstellen:

      apiVersion: object.gdc.goog/v1
      kind: Bucket
      metadata:
        name: dt-bucket
        namespace: dt-project
      spec:
        description: bucket for document vision service
        storageClass: Standard
        bucketPolicy:
          lockingPolicy:
            defaultObjectRetentionDays: 90
    
  3. Gewähren Sie den Dienstkonten (ai-translation-system-sa und g-vai-translation-sie-sa), die vom Vertex AI Translation-Dienst verwendet werden, die Berechtigungen read und write für den Bucket.

    So erstellen Sie die Rolle und die Rollenbindung mithilfe von benutzerdefinierten Ressourcen auf dem Management API-Server:

    1. Erstellen Sie die Rolle, indem Sie eine Role-Ressource im Namespace dt-project bereitstellen:

        apiVersion: rbac.authorization.k8s.io/v1
        kind: Role
        metadata:
          name: dvs-reader-writer
          namespace: dt-project
        rules:
          -
            apiGroups:
              - object.gdc.goog
            resources:
              - buckets
            verbs:
              - read-object
              - write-object
      
    2. Erstellen Sie die Rollenbindung, indem Sie eine RoleBinding-Ressource im Namespace dt-project bereitstellen:

        apiVersion: rbac.authorization.k8s.io/v1
        kind: RoleBinding
        metadata:
          name: dvs-reader-writer-rolebinding
          namespace: dt-project
        roleRef:
          apiGroup: rbac.authorization.k8s.io
          kind: Role
          name: dvs-reader-writer
        subjects:
          -
            kind: ServiceAccount
            name: ai-translation-system-sa
            namespace: g-vai-translation-sie
          -
            kind: ServiceAccount
            name: g-vai-translation-sie-sa
            namespace: g-vai-translation-sie
      
  4. Laden Sie Ihr Dokument in den erstellten Storage-Bucket hoch. Weitere Informationen finden Sie unter Speicherobjekte in Projekten hoch- und herunterladen.

  5. Senden Sie eine Anfrage an die vortrainierte Vertex AI Translation API:

    curl

    So stellen Sie eine curl-Anfrage:

    1. Speichern Sie die folgende request.json-Datei:

      cat <<- EOF > request.json
      {
        "parent": "projects/PROJECT_ID/locations/PROJECT_ID",
        "source_language_code": "SOURCE_LANGUAGE",
        "target_language_code": "TARGET_LANGUAGE",
        "document_input_config": {
          "mime_type": "application/pdf",
          "s3_source": {
            "input_uri": "s3://INPUT_FILE_PATH"
          }
        },
        "document_output_config": {
          "mime_type": "application/pdf"
        },
        "enable_rotation_correction": "true"
      }
      EOF
      

      Ersetzen Sie Folgendes:

      • PROJECT_ID: Ihre Projekt-ID.
      • SOURCE_LANGUAGE: die Sprache, in der Ihr Dokument verfasst ist. Hier finden Sie eine Liste der unterstützten Sprachen und der zugehörigen Sprachcodes.
      • TARGET_LANGUAGE: die Sprache oder Sprachen, in die Sie Ihr Dokument übersetzen möchten. Hier finden Sie eine Liste der unterstützten Sprachen und der zugehörigen Sprachcodes.
      • INPUT_FILE_PATH: der Pfad zur Dokumentdatei im Storage-Bucket.

      Ändern Sie den Wert mime_type entsprechend Ihrem Dokument.

    2. Authentifizierungstoken abrufen

    3. Stellen Sie die Anfrage:

      curl -vv --data-binary @- -H "Content-Type: application/json" -H "Authorization: Bearer TOKEN" https://ENDPOINT:443/v3/projects/PROJECT_ID/locations/PROJECT_ID:translateDocument < request.json
      

      Ersetzen Sie Folgendes:

Dokument inline übersetzen

In diesem Abschnitt wird beschrieben, wie Sie ein Dokument inline als Teil der API-Anfrage senden. Für Inline-Dokumentübersetzungen muss der MIME-Typ angegeben werden.

Document Translate unterstützt die automatische Spracherkennung für Inline-Textübersetzungen. Wenn Sie keinen Ausgangssprachcode angeben, ermittelt Document Translation die Sprache automatisch. Die ermittelte Sprache ist in der Ausgabe im Feld detectedLanguageCode enthalten.

Senden Sie eine Anfrage an die vortrainierte Vertex AI Translation API:

curl

So stellen Sie eine curl-Anfrage:

  1. Authentifizierungstoken abrufen

  2. Stellen Sie die Anfrage:

echo '{"parent": "projects/PROJECT_ID/locations/PROJECT_ID","source_language_code": "SOURCE_LANGUAGE", "target_language_code": "TARGET_LANGUAGE", "document_input_config": { "mime_type": "application/pdf", "content": "'$(base64 -w 0 INPUT_FILE_PATH)'" }, "document_output_config": { "mime_type": "application/pdf" }, "enable_rotation_correction": "true"}' | curl --data-binary @- -H "Content-Type: application/json" -H "Authorization: Bearer TOKEN" https://ENDPOINT/v3/projects/PROJECT_ID/locations/PROJECT_ID:translateDocument

Ersetzen Sie Folgendes:

  • PROJECT_ID: Ihre Projekt-ID.
  • SOURCE_LANGUAGE: die Sprache, in der Ihr Dokument verfasst ist. Hier finden Sie eine Liste der unterstützten Sprachen und der zugehörigen Sprachcodes.
  • TARGET_LANGUAGE: die Sprache oder Sprachen, in die Sie Ihr Dokument übersetzen möchten. Hier finden Sie eine Liste der unterstützten Sprachen und der zugehörigen Sprachcodes.
  • INPUT_FILE_PATH: der lokale Pfad Ihrer Dokumentdatei.
  • TOKEN: das von Ihnen abgerufene Authentifizierungstoken.
  • ENDPOINT: der Vertex AI Translation-Endpunkt, den Sie für Ihre Organisation verwenden. Weitere Informationen finden Sie unter Dienststatus und Endpunkte ansehen.

Dokumente im Batch übersetzen

Mit einer Batchübersetzung haben Sie die Möglichkeit, mit einer einzigen Anfrage mehrere Dateien in mehrere Sprachen zu übersetzen. Für jede Anfrage können Sie bis zu 100 Dateien mit einer Gesamtgröße von bis zu 1 GB oder bis zu 100 Millionen Unicode-Codepoints senden, je nachdem, welches Limit zuerst erreicht wird. Sie können für jede Sprache ein eigenes Übersetzungsmodell angeben.

Weitere Informationen finden Sie unter batchTranslateDocument.

Mehrere Dokumente übersetzen

Das folgende Beispiel beinhaltet mehrere Eingabekonfigurationen. Jede Eingabekonfiguration ist ein Verweis auf eine Datei in einem Storage-Bucket.

Senden Sie eine Anfrage an die vortrainierte Vertex AI Translation API:

curl

So stellen Sie eine curl-Anfrage:

  1. Speichern Sie den folgenden Anfragetext in einer Datei mit dem Namen request.json:

    {
      "source_language_code": "SOURCE_LANGUAGE",
      "target_language_codes": ["TARGET_LANGUAGE"],
      "input_configs": [
        {
          "s3_source": {
            "input_uri": "s3://INPUT_FILE_PATH_1"
          }
        },
        {
          "s3_source": {
            "input_uri": "s3://INPUT_FILE_PATH_2"
          }
        }
      ],
      "output_config": {
        "s3_destination": {
          "output_uri_prefix": "s3://OUTPUT_FILE_PREFIX"
        }
      }
    }
    

    Ersetzen Sie Folgendes:

    • SOURCE_LANGUAGE: der Sprachcode der Eingabedokumente. Hier finden Sie eine Liste der unterstützten Sprachen und der zugehörigen Sprachcodes.
    • TARGET_LANGUAGE: Die Zielsprache oder ‑sprachen, in die die Eingabedokumente übersetzt werden sollen. Hier finden Sie eine Liste der unterstützten Sprachen und der zugehörigen Sprachcodes.
    • INPUT_FILE_PATH_1 und INPUT_FILE_PATH_2: Die Speicher-Bucket-Speicherorte und Dateinamen der Eingabedokumente.
    • OUTPUT_FILE_PREFIX: der Speicherort des Storage-Buckets, an dem alle Ausgabedokumente gespeichert werden.
  2. Authentifizierungstoken abrufen

  3. Stellen Sie die Anfrage:

    curl -X POST \
      -H "Authorization: Bearer TOKEN" \
      -H "Content-Type: application/json; charset=utf-8" \
      -d @request.json \
      "https://ENDPOINT:443/v3/projects/PROJECT_ID/locations/PROJECT_ID:batchTranslateDocument"
    

    Ersetzen Sie Folgendes:

Die Antwort enthält die ID für einen Vorgang mit langer Ausführungszeit:

{
"name": "projects/PROJECT_ID/operations/OPERATION_ID",
"metadata": {
  "@type": "type.googleapis.com/google.cloud.translation.v3.BatchTranslateDocumentMetadata",
  "state": "RUNNING"
}
}

Original-PDF-Datei übersetzen und konvertieren

Im folgenden Beispiel wird eine Original-PDF-Datei übersetzt und in eine DOCX-Datei konvertiert. Sie können mehrere Eingaben verschiedener Dateitypen angeben. Es muss sich nicht bei allen Dateien um Original-PDF-Dateien handeln. Gescannte PDF-Dateien können jedoch nicht verwendet werden, wenn diese auch konvertiert werden sollen. Die Anfrage wird dann abgelehnt und es erfolgt keine Übersetzung. Es können nur native PDF-Dateien übersetzt und in DOCX-Dateien konvertiert werden. Wenn Sie beispielsweise PPTX-Dateien verwenden, werden diese übersetzt und als PPTX-Dateien zurückgegeben.

Wenn Sie regelmäßig eine Kombination aus gescannten und Original-PDF-Dateien übersetzen möchten, sollten Sie diese in separaten Buckets ablegen. Auf diese Weise können Sie bei der Anfrage bezüglich einer Batchübersetzung und ‑konvertierung ganz einfach den Bucket mit den gescannten PDF-Dateien ausschließen, anstatt einzelne Dateien auszuschließen.

Senden Sie eine Anfrage an die vortrainierte Vertex AI Translation API:

curl

So stellen Sie eine curl-Anfrage:

  1. Speichern Sie den folgenden Anfragetext in einer Datei mit dem Namen request.json:

    {
      "source_language_code": "SOURCE_LANGUAGE",
      "target_language_codes": ["TARGET_LANGUAGE"],
      "input_configs": [
        {
          "s3_source": {
            "input_uri": "s3://INPUT_FILE_PATH_1"
          }
        },
        {
          "s3_source": {
            "input_uri": "s3://INPUT_FILE_PATH_2"
          }
        }
      ],
      "output_config": {
        "s3_destination": {
          "output_uri_prefix": "s3://OUTPUT_FILE_PREFIX"
        }
      },
      "format_conversions": {
        "application/pdf": "application/vnd.openxmlformats-officedocument.wordprocessingml.document"
      }
    }
    

    Ersetzen Sie Folgendes:

    • SOURCE_LANGUAGE: der Sprachcode der Eingabedokumente. Hier finden Sie eine Liste der unterstützten Sprachen und der zugehörigen Sprachcodes.
    • TARGET_LANGUAGE: Die Zielsprache oder ‑sprachen, in die die Eingabedokumente übersetzt werden sollen. Hier finden Sie eine Liste der unterstützten Sprachen und der zugehörigen Sprachcodes.
    • INPUT_FILE_PATH_1 und INPUT_FILE_PATH_2: Die Speicher-Bucket-Speicherorte und Dateinamen der Eingabedokumente.
    • OUTPUT_FILE_PREFIX: der Speicherort des Storage-Buckets, an dem alle Ausgabedokumente gespeichert werden.
  2. Authentifizierungstoken abrufen

  3. Stellen Sie die Anfrage:

    curl -X POST \
      -H "Authorization: Bearer TOKEN" \
      -H "Content-Type: application/json; charset=utf-8" \
      -d @request.json \
      "https://ENDPOINT:443/v3/projects/PROJECT_ID/locations/PROJECT_ID:batchTranslateDocument"
    

    Ersetzen Sie Folgendes:

Die Antwort enthält die ID für einen Vorgang mit langer Ausführungszeit:

{
"name": "projects/PROJECT_ID/operations/OPERATION_ID",
"metadata": {
  "@type": "type.googleapis.com/google.cloud.translation.v3.BatchTranslateDocumentMetadata",
  "state": "RUNNING"
}
}

Glossar verwenden

Sie können ein Glossar für eine fachspezifische Terminologie angeben. Wenn Sie ein Glossar festlegen, müssen Sie auch die Ausgangssprache angeben. Im folgenden Beispiel wird ein Glossar verwendet. Sie können bis zu zehn Zielsprachen mit einem eigenen Glossar angeben.

Wenn Sie nur für einige Zielsprachen ein Glossar angeben, wird für die anderen Sprachen kein Glossar genutzt.

Senden Sie eine Anfrage an die vortrainierte Vertex AI Translation API:

curl

So stellen Sie eine curl-Anfrage:

  1. Speichern Sie den folgenden Anfragetext in einer Datei mit dem Namen request.json:

    {
      "source_language_code": "SOURCE_LANGUAGE",
      "target_language_codes": ["TARGET_LANGUAGE"],
      "input_configs": [
        {
          "s3_source": {
            "input_uri": "s3://INPUT_FILE_PATH"
          }
        }
      ],
      "output_config": {
        "s3_destination": {
          "output_uri_prefix": "s3://OUTPUT_FILE_PREFIX"
        }
      },
      "glossaries": {
        "TARGET_LANGUAGE": {
          "glossary": "projects/GLOSSARY_PROJECT_ID/glossaries/GLOSSARY_ID"
        }
      }
    }
    

    Ersetzen Sie Folgendes:

    • SOURCE_LANGUAGE: der Sprachcode der Eingabedokumente. Hier finden Sie eine Liste der unterstützten Sprachen und der zugehörigen Sprachcodes.
    • TARGET_LANGUAGE: Die Zielsprache oder ‑sprachen, in die die Eingabedokumente übersetzt werden sollen. Hier finden Sie eine Liste der unterstützten Sprachen und der zugehörigen Sprachcodes.
    • INPUT_FILE_PATH: Der Speicherort des Storage-Buckets und der Dateiname eines oder mehrerer Eingabedokumente.
    • OUTPUT_FILE_PREFIX: der Speicherort des Storage-Buckets, an dem alle Ausgabedokumente gespeichert werden.
    • GLOSSARY_PROJECT_ID: die Projekt-ID, in der sich das Glossar befindet.
    • GLOSSARY_ID: die ID des Glossars.
  2. Authentifizierungstoken abrufen

  3. Stellen Sie die Anfrage:

    curl -X POST \
      -H "Authorization: Bearer TOKEN" \
      -H "Content-Type: application/json; charset=utf-8" \
      -d @request.json \
      "https://ENDPOINT:443/v3/projects/PROJECT_ID/locations/PROJECT_ID:batchTranslateDocument"
    

    Ersetzen Sie Folgendes:

Die Antwort enthält die ID für einen Vorgang mit langer Ausführungszeit:

{
"name": "projects/PROJECT_ID/operations/OPERATION_ID",
"metadata": {
  "@type": "type.googleapis.com/google.cloud.translation.v3.BatchTranslateDocumentMetadata",
  "state": "RUNNING"
}
}