Menerjemahkan dokumen

Cloud Translation - Advanced menyediakan Document Translation API untuk menerjemahkan dokumen dalam format seperti PDF dan DOCX secara langsung. Dibandingkan dengan terjemahan teks biasa, Document Translation mempertahankan pemformatan dan tata letak asli dalam dokumen terjemahan Anda, sehingga membantu Anda mempertahankan banyak konteks asli seperti jeda paragraf.

Bagian berikut menjelaskan cara menerjemahkan dokumen dan menggunakan Document Translation dengan fitur Cloud Translation - Advanced lainnya seperti glosarium dan model AutoML Translation. Terjemahan Dokumen mendukung permintaan terjemahan online dan batch.

Untuk terjemahan teks biasa dan HTML, silakan melihat Menerjemahkan teks.

Format file yang didukung

Document Translation mendukung jenis file input dan jenis file output yang terkait berikut.

Input Jenis MIME dokumen 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

*Konten di dalam kotak teks tidak diterjemahkan dan tetap dalam bahasa sumber.

Document Translation mendukung dokumen PDF native dan hasil pemindaian dengan beberapa perbedaan. Untuk penanganan format yang optimal, gunakan file PDF native jika memungkinkan. Menerjemahkan file PDF yang dipindai mengakibatkan hilangnya beberapa pemformatan. Tata letak PDF yang kompleks juga dapat mengakibatkan hilangnya pemformatan, yang dapat mencakup tabel data, tata letak multi-kolom, dan grafik dengan label atau keterangan.

Jika Anda memiliki konten PDF dalam format DOCX atau PPTX, sebaiknya terjemahkan konten menggunakan format tersebut sebelum mengonversinya menjadi PDF. Secara umum, Document Translation dapat mempertahankan tata letak dan gaya dokumen file DOCX dan PPTX dengan lebih baik daripada file PDF. Setelah penerjemahan dokumen, Anda kemudian dapat mengonversi hasilnya menjadi file PDF.

Penerjemahan dokumen PDF native dan hasil pemindaian

Document Translation mendukung file PDF native dan hasil pemindaian, termasuk terjemahan ke atau dari bahasa yang ditulis dari kanan ke kiri. Dukungan untuk konversi PDF ke DOCX hanya tersedia untuk penerjemahan dokumen batch pada file PDF native. Selain itu, Document Translation hanya mempertahankan hyperlink, ukuran font, dan warna font untuk file PDF native (untuk terjemahan sinkron dan batch).

Jika Anda menerjemahkan file PDF dengan campuran konten PDF hasil pemindaian dan native, konten hasil pemindaian tidak akan diterjemahkan.

Sebelum memulai

Sebelum dapat mulai menggunakan Cloud Translation API, Anda harus memiliki project yang mengaktifkan Cloud Translation API, dan harus memiliki kredensial yang sesuai. Anda juga dapat menginstal library klien untuk bahasa pemrograman umum guna membantu melakukan panggilan ke API. Untuk mengetahui informasi selengkapnya, silakan melihat halaman Penyiapan.

Izin yang diperlukan

Untuk permintaan yang memerlukan akses Cloud Storage, seperti Document Translation batch, Anda mungkin memerlukan izin Cloud Storage untuk membaca file input atau mengirim file output ke bucket. Misalnya, untuk membaca file input dari bucket, Anda harus memiliki setidaknya izin objek baca (disediakan oleh peran roles/storage.objectViewer) pada bucket. Untuk mengetahui informasi selengkapnya tentang peran Cloud Storage, silakan melihat dokumentasi Cloud Storage.

Menerjemahkan dokumen (online)

Penerjemahan online menyediakan pemrosesan real-time (pemrosesan sinkron) untuk satu file.

Untuk PDF, ukuran file dapat mencapai 20 MB dan hingga 300 halaman untuk PDF native (memerlukan kolom isTranslateNativePdfOnly menjadi true). Jika Anda mengaktifkan kolom enableShadowRemovalNativePdf, batasnya adalah 20 halaman. Untuk PDF hasil pemindaian, batasnya adalah 20 halaman.

Untuk jenis dokumen lainnya, ukuran file dapat mencapai 20 MB tanpa batas halaman.

Menerjemahkan dokumen dari Cloud Storage

Contoh berikut menerjemahkan file dari bucket Cloud Storage dan menampilkan outputnya ke bucket Cloud Storage. Responsnya juga menampilkan aliran byte. Anda dapat menentukan jenis MIME; jika tidak, Document Translation menentukannya menggunakan ekstensi file input.

Jika Anda tidak menentukan kode bahasa sumber, Document Translation akan mendeteksi bahasanya untuk Anda. Bahasa yang terdeteksi disertakan dalam output di kolom detectedLanguageCode.

REST

Sebelum menggunakan data permintaan apa pun, ganti nilai berikut ini:

  • PROJECT_NUMBER_OR_ID: ID numerik atau alfanumerik untuk project Google Cloud Anda.
  • LOCATION: Region tempat Anda ingin menjalankan operasi ini. Contoh, us-central1.
  • SOURCE_LANGUAGE: (Opsional) Kode bahasa dokumen input. Jika diketahui, tetapkan ke salah satu kode bahasa yang tercantum di Dukungan bahasa.
  • TARGET_LANGUAGE: Target bahasa untuk menerjemahkan dokumen input. Tetapkan ke salah satu kode bahasa yang tercantum di Dukungan bahasa.
  • INPUT_FILE_PATH: Lokasi Cloud Storage dan nama file dokumen input.
  • OUTPUT_FILE_PREFIX: Lokasi Cloud Storage tempat dokumen output akan disimpan.
  • IS_NATIVE: (Opsional) Untuk dokumen PDF native, nilai boolean yang menunjukkan apakah permintaan Anda menggunakan batas halaman PDF native atau hasil pemindaian. Jika benar, batas halaman akan ditingkatkan menjadi 300 halaman hanya untuk dokumen PDF native. Jika salah (false) atau tidak ditentukan, batas halaman PDF hasil pemindaian akan digunakan (20 halaman).

Metode HTTP dan URL:

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

Meminta isi JSON:

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

Untuk mengirim permintaan Anda, perluas salah satu opsi berikut:

Anda akan melihat respons JSON yang mirip dengan berikut ini:

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

Node.js

Sebelum mencoba contoh ini, ikuti petunjuk penyiapan Node.js di panduan memulai Cloud Translation menggunakan library klien. Untuk mengetahui informasi selengkapnya, silakan melihat dokumentasi referensi API Node.js Cloud Translation.

Untuk melakukan autentikasi ke Cloud Translation, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, baca Menyiapkan autentikasi untuk lingkungan pengembangan lokal.

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

Menerjemahkan dokumen secara langsung

Contoh berikut mengirim dokumen secara langsung sebagai bagian dari permintaan. Anda harus menyertakan jenis MIME untuk penerjemahan dokumen secara langsung.

Jika Anda tidak menentukan kode bahasa sumber, Document Translation akan mendeteksi bahasanya untuk Anda. Bahasa yang terdeteksi disertakan dalam output di kolom detectedLanguageCode.

REST

Sebelum menggunakan data permintaan apa pun, ganti nilai berikut ini:

  • PROJECT_NUMBER_OR_ID: ID numerik atau alfanumerik untuk project Google Cloud Anda.
  • LOCATION: Region tempat Anda ingin menjalankan operasi ini. Contoh, us-central1.
  • SOURCE_LANGUAGE: (Opsional) Kode bahasa dokumen input. Jika diketahui, tetapkan ke salah satu kode bahasa yang tercantum di Dukungan bahasa.
  • TARGET_LANGUAGE: Target bahasa untuk menerjemahkan dokumen input. Tetapkan ke salah satu kode bahasa yang tercantum di Dukungan bahasa.
  • MIME_TYPE: Format dokumen sumber, seperti application/pdf.
  • INPUT_BYTE_STREAM: Konten dokumen input yang direpresentasikan sebagai aliran byte.
  • OUTPUT_FILE_PREFIX: Lokasi Cloud Storage tempat dokumen output akan disimpan.
  • IS_NATIVE: (Opsional) Untuk dokumen PDF native, nilai boolean yang menunjukkan apakah permintaan Anda menggunakan batas halaman PDF native atau hasil pemindaian. Jika benar, batas halaman akan ditingkatkan menjadi 300 halaman hanya untuk dokumen PDF native. Jika salah (false) atau tidak ditentukan, batas halaman PDF hasil pemindaian akan digunakan (20 halaman).

Metode HTTP dan URL:

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

Meminta isi JSON:

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

Untuk mengirim permintaan Anda, perluas salah satu opsi berikut:

Anda akan melihat respons JSON yang mirip dengan berikut ini:

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

Python

Sebelum mencoba contoh ini, ikuti petunjuk penyiapan Python di panduan memulai Cloud Translation menggunakan library klien. Untuk mengetahui informasi selengkapnya, silakan melihat dokumentasi referensi API Python Cloud Translation.

Untuk melakukan autentikasi ke Cloud Translation, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, baca Menyiapkan autentikasi untuk lingkungan pengembangan lokal.

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

Menggunakan model AutoML atau glosarium

Anda dapat menggunakan model Terjemahan AutoML Anda sendiri untuk menerjemahkan dokumen, bukan model yang dikelola Google. Selain menentukan model, Anda juga dapat menyertakan glosarium untuk menangani terminologi khusus domain. Jika menentukan model atau glosarium, Anda harus menentukan bahasa sumber. Contoh berikut menggunakan model AutoML dan glosarium. Jika model atau glosarium berada dalam project yang berbeda, Anda harus memiliki izin IAM yang sesuai untuk mengakses referensi tersebut.

REST

Sebelum menggunakan data permintaan apa pun, ganti nilai berikut ini:

  • PROJECT_NUMBER_OR_ID: ID numerik atau alfanumerik untuk project Google Cloud Anda.
  • LOCATION: Region tempat Anda ingin menjalankan operasi ini, seperti us-central1. Lokasi harus cocok dengan region tempat model, glosarium, atau keduanya berada.
  • SOURCE_LANGUAGE: Kode bahasa dokumen input. Tetapkan ke salah satu kode bahasa yang tercantum di Dukungan bahasa.
  • TARGET_LANGUAGE: Target bahasa untuk menerjemahkan dokumen input. Tetapkan ke salah satu kode bahasa yang tercantum di Dukungan bahasa.
  • INPUT_FILE_PATH: Lokasi Cloud Storage dan nama file dokumen input.
  • OUTPUT_FILE_PREFIX: Lokasi Cloud Storage tempat dokumen output akan disimpan.
  • MODEL_PROJECT_ID: Project ID tempat model berada.
  • MODEL_LOCATION: Region tempat model berada.
  • MODEL_ID: ID model yang akan digunakan.
  • GLOSSARY_PROJECT_ID: Project ID tempat glosarium berada.
  • GLOSSARY_LOCATION: Region tempat glosarium berada.
  • GLOSSARY_ID: ID glosarium yang akan digunakan.

Metode HTTP dan URL:

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

Meminta isi JSON:

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

Untuk mengirim permintaan Anda, perluas salah satu opsi berikut:

Anda akan melihat respons JSON yang mirip dengan berikut ini:

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

Menerjemahkan dokumen (batch)

Dengan terjemahan batch, Anda dapat menerjemahkan beberapa file ke dalam beberapa bahasa dalam satu permintaan. Untuk setiap permintaan, Anda dapat mengirim hingga 100 file dengan total ukuran konten hingga 1 GB atau 100 juta codepoint Unicode, mana pun batas yang tercapai terlebih dahulu. Anda dapat menentukan model terjemahan tertentu untuk setiap bahasa.

Menerjemahkan beberapa dokumen

Contoh berikut menyertakan beberapa konfigurasi input. Setiap konfigurasi input adalah pointer ke file di bucket Cloud Storage.

REST

Sebelum menggunakan data permintaan apa pun, lakukan penggantian sebagai berikut:

  • PROJECT_NUMBER_OR_ID: ID numerik atau alfanumerik untuk project Google Cloud Anda
  • LOCATION: Region tempat Anda ingin menjalankan operasi ini. Contoh, us-central1.
  • SOURCE_LANGUAGE: Kode bahasa dokumen input. Tetapkan ke salah satu kode bahasa yang tercantum di Dukungan bahasa.
  • TARGET_LANGUAGE: Target bahasa atau bahasa untuk menerjemahkan dokumen input. Gunakan kode bahasa yang tercantum di Dukungan bahasa.
  • INPUT_FILE_PATH: Lokasi Cloud Storage dan nama file dari satu atau beberapa dokumen input.
  • OUTPUT_FILE_PREFIX: Lokasi Cloud Storage tempat semua dokumen output akan disimpan.

Metode HTTP dan URL:

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

Meminta isi JSON:

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

Untuk mengirim permintaan Anda, perluas salah satu opsi berikut:

Respons ini akan berisi ID untuk operasi yang berjalan lama.
{
  "name": "projects/PROJECT_NUMBER/locations/LOCATION/operations/OPERATION_ID",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.translation.v3.BatchTranslateDocumentMetadata",
    "state": "RUNNING"
  }
}

Node.js

Sebelum mencoba contoh ini, ikuti petunjuk penyiapan Node.js di panduan memulai Cloud Translation menggunakan library klien. Untuk mengetahui informasi selengkapnya, silakan melihat dokumentasi referensi API Node.js Cloud Translation.

Untuk melakukan autentikasi ke Cloud Translation, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, baca Menyiapkan autentikasi untuk lingkungan pengembangan lokal.

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

Sebelum mencoba contoh ini, ikuti petunjuk penyiapan Python di panduan memulai Cloud Translation menggunakan library klien. Untuk mengetahui informasi selengkapnya, silakan melihat dokumentasi referensi API Python Cloud Translation.

Untuk melakukan autentikasi ke Cloud Translation, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, baca Menyiapkan autentikasi untuk lingkungan pengembangan lokal.


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

Menerjemahkan dan mengonversi file PDF native

Contoh berikut menerjemahkan dan mengonversi file PDF native menjadi file DOCX. Anda dapat menentukan beberapa input untuk berbagai jenis file; tidak semua harus berupa file PDF native. Namun, file PDF yang dipindai tidak dapat disertakan saat menyertakan konversi; permintaan akan ditolak dan tidak ada terjemahan yang diselesaikan. Hanya file PDF native yang diterjemahkan dan dikonversi menjadi file DOCX. Misalnya, jika Anda menyertakan file PPTX, file tersebut akan diterjemahkan dan ditampilkan sebagai file PPTX.

Jika Anda secara rutin menerjemahkan campuran file PDF native dan hasil pemindaian, sebaiknya Anda mengorganisir file tersebut ke dalam bucket Cloud Storage yang terpisah. Dengan begitu, saat meminta terjemahan dan konversi batch, Anda dapat dengan mudah mengecualikan bucket yang berisi file PDF hasil pemindaian, bukannya mengecualikan file satu per satu.

REST

Sebelum menggunakan data permintaan apa pun, lakukan penggantian sebagai berikut:

  • PROJECT_NUMBER_OR_ID: ID numerik atau alfanumerik untuk project Google Cloud Anda
  • LOCATION: Region tempat Anda ingin menjalankan operasi ini. Contoh, us-central1.
  • SOURCE_LANGUAGE: Kode bahasa dokumen input. Tetapkan ke salah satu kode bahasa yang tercantum di Dukungan bahasa.
  • TARGET_LANGUAGE: Target bahasa atau bahasa untuk menerjemahkan dokumen input. Gunakan kode bahasa yang tercantum di Dukungan bahasa.
  • INPUT_FILE_PATH: Lokasi Cloud Storage dan nama file satu atau beberapa file PDF native.
  • OUTPUT_FILE_PREFIX: Lokasi Cloud Storage tempat semua dokumen output akan disimpan.

Metode HTTP dan URL:

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

Meminta isi JSON:

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

Untuk mengirim permintaan Anda, perluas salah satu opsi berikut:

Respons ini akan berisi ID untuk operasi yang berjalan lama.
{
  "name": "projects/PROJECT_NUMBER/locations/LOCATION/operations/OPERATION_ID",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.translation.v3.BatchTranslateDocumentMetadata",
    "state": "RUNNING"
  }
}

Menggunakan model AutoML atau glosarium

Anda dapat menggunakan model Terjemahan AutoML Anda sendiri untuk menerjemahkan dokumen, bukan model yang dikelola Google. Selain menentukan model, Anda juga dapat menyertakan glosarium untuk menangani terminologi khusus domain. Jika menentukan model atau glosarium, Anda harus menentukan bahasa sumber. Contoh berikut menggunakan model AutoML dan glosarium. Anda dapat menentukan hingga 10 target bahasa yang memiliki model dan glosariumnya sendiri.

Jika Anda menentukan model untuk beberapa target bahasa dan tidak menentukannya untuk bahasa lain, Document Translation akan menggunakan model yang dikelola Google untuk bahasa yang tidak ditentukan. Demikian pula, jika Anda menentukan glosarium untuk beberapa target bahasa, Document Translation tidak menggunakan glosarium untuk bahasa yang tidak ditentukan.

REST

Sebelum menggunakan data permintaan apa pun, lakukan penggantian sebagai berikut:

  • PROJECT_NUMBER_OR_ID: ID numerik atau alfanumerik untuk project Google Cloud Anda
  • LOCATION: Region tempat Anda ingin menjalankan operasi ini, seperti us-central1. Lokasi harus cocok dengan region tempat model, glosarium, atau keduanya berada.
  • SOURCE_LANGUAGE: Kode bahasa dokumen input. Tetapkan ke salah satu kode bahasa yang tercantum di Dukungan bahasa.
  • TARGET_LANGUAGE: Target bahasa atau bahasa untuk menerjemahkan dokumen input. Gunakan kode bahasa yang tercantum di Dukungan bahasa.
  • INPUT_FILE_PATH: Lokasi Cloud Storage dan nama file dari satu atau beberapa dokumen input.
  • OUTPUT_FILE_PREFIX: Lokasi Cloud Storage tempat semua dokumen output akan disimpan.
  • MODEL_PROJECT_ID: Project ID tempat model berada.
  • MODEL_LOCATION: Region tempat model berada.
  • MODEL_ID: ID model yang akan digunakan.
  • GLOSSARY_PROJECT_ID: Project ID tempat glosarium berada.
  • GLOSSARY_LOCATION: Region tempat glosarium berada.
  • GLOSSARY_ID: ID glosarium yang akan digunakan.

Metode HTTP dan URL:

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

Meminta isi JSON:

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

Untuk mengirim permintaan Anda, perluas salah satu opsi berikut:

Respons ini berisi ID untuk operasi yang berjalan lama.
{
  "name": "projects/PROJECT_NUMBER/locations/LOCATION/operations/OPERATION_ID",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.translation.v3.BatchTranslateDocumentMetadata",
    "state": "RUNNING"
  }
}

Teks yang tumpang-tindih

Dalam beberapa kasus, terjemahan PDF native mungkin menyertakan teks terjemahan yang menimpa teks sumber. Masalah ini disebut sebagai teks bayangan.

Dalam kasus tertentu, Anda dapat menghapus teks bayangan dengan mengaktifkan opsi enableShadowRemovalNativePdf. Jika Anda mengaktifkan opsi ini, latensi respons akan meningkat dan, untuk penerjemahan dokumen online, batas halaman dikurangi menjadi 20. Anda hanya dapat mengetahui apakah dokumen memerlukan penghapusan teks bayangan setelah dokumen selesai diterjemahkan.

Dalam kasus lain, jika opsi enableShadowRemovalNativePdf tidak berfungsi, konversikan PDF ke gambar, lalu terjemahkan. Biasanya, kasus ini menyertakan beberapa lapisan teks, seperti saat teks yang dapat dipilih berada di atas gambar latar belakang yang juga menyertakan teks. Mengonversi PDF menjadi gambar memungkinkan Cloud Translation memproses dokumen sebagai PDF yang dipindai. Untuk melakukan konversi, Anda dapat menggunakan Chrome (cetak sebagai gambar) atau alat pihak ketiga lainnya.

Orientasi teks

Untuk terjemahan PDF hasil pemindaian, teks sumber harus diorientasikan secara horizontal. Misalnya, jika dokumen yang dipindai menyertakan teks yang miring ke atas atau ke bawah, Cloud Translation mungkin tidak menguraikan semua teks dengan benar, sehingga menghasilkan terjemahan yang salah atau tidak lengkap.

Jika dokumen tidak memiliki orientasi yang konsisten, Anda dapat meminta Cloud Translation untuk mengorientasikannya. Dalam permintaan terjemahan, aktifkan opsi enableRotationCorrection sehingga teks diorientasikan dengan benar sebelum diterjemahkan.

Langkah berikutnya

  • Document Translation dikenakan harga per halaman. Untuk informasi selengkapnya, silakan melihat harga.