문서 번역

Cloud Translation - Advanced는 PDF 및 DOCX와 같은 형식이 지정된 문서를 직접 번역할 수 있는 Document Translation API를 제공합니다. Document Translation은 일반 텍스트 번역과 비교하여 번역된 문서의 원래 형식과 레이아웃을 유지하므로 단락 구분과 같은 원본 컨텍스트의 대부분을 유지할 수 있습니다.

다음 섹션에서는 문서를 번역하고 용어집 및 AutoML Translation 모델과 같은 다른 Cloud Translation - Advanced 기능과 함께 Document Translation을 사용하는 방법을 설명합니다. Document Translation은 온라인 및 일괄 번역 요청을 모두 지원합니다.

일반 텍스트 및 HTML 번역은 텍스트 번역을 참조하세요.

지원되는 파일 형식

Document Translation은 다음 입력 파일 형식과 관련 출력 파일 형식을 지원합니다.

입력 문서 MIME 유형 출력
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

*텍스트 상자 내부 콘텐츠는 번역되지 않고 출발어로 유지됩니다.

Document Translation은 일부 차이점을 포함하여 기본 및 스캔된 PDF 문서를 모두 지원합니다. 최적의 형식을 처리할 수 있도록 가능하면 기본 PDF 파일을 사용합니다. 스캔된 PDF 파일을 번역하면 일부 서식이 손실됩니다. 복잡한 PDF 레이아웃으로 인해 일부 서식이 손실될 수 있으며 여기에는 데이터 테이블, 멀티 열 레이아웃, 라벨이나 범례가 있는 그래픽이 포함될 수 있습니다.

DOCX 또는 PPTX 형식의 PDF 콘텐츠가 있는 경우 이를 PDF로 변환하기 전 해당 형식을 사용하여 콘텐츠를 번역하는 것이 좋습니다. 일반적으로 Document Translation은 DOCX 및 PPTX 파일의 문서 레이아웃 및 스타일을 PDF 파일보다 더 잘 보존합니다. 문서 번역 후에는 결과를 PDF 파일로 변환할 수 있습니다.

기본 및 스캔된 PDF 문서 번역

Document Translation은 오른쪽에서 왼쪽으로 쓰는 언어 번역을 포함하여 기본 및 스캔된 PDF 파일을 모두 지원합니다. PDF에서 DOCX로의 변환은 기본 PDF 파일에서 일괄 문서 번역에만 지원됩니다. 또한 Document Translation은 기본 PDF 파일의 하이퍼링크, 글꼴 크기, 글꼴 색상을 보존합니다(동기 번역과 일괄 번역 모두).

스캔된 PDF 콘텐츠와 기본 PDF 콘텐츠가 혼합된 PDF 파일을 번역하는 경우 스캔된 콘텐츠가 번역되지 않습니다.

시작하기 전에

Cloud Translation API를 사용을 시작하려면 Cloud Translation API가 사용 설정된 프로젝트가 있고 적절한 사용자 인증 정보가 있어야 합니다. 공통 프로그래밍 언어용 클라이언트 라이브러리를 설치하여 API를 호출할 수도 있습니다. 자세한 내용은 설정 페이지를 참조하세요.

필수 권한

일괄 문서 번역과 같이 Cloud Storage 액세스가 필요한 요청의 경우 Cloud Storage에 입력 파일을 읽거나 버킷으로 출력 파일을 보낼 수 있는 권한이 필요할 수 있습니다. 예를 들어 버킷에서 입력 파일을 읽어오려면 최소한 버킷에 대한 읽기 객체 권한(roles/storage.objectViewer 역할로 제공됨)이 있어야 합니다. Cloud Storage 역할에 대한 자세한 내용은 Cloud Storage 문서를 참조하세요.

문서 번역하기(온라인)

온라인 번역은 단일 파일의 실시간 처리(동기 처리)를 제공합니다.

기본 PDF의 경우 파일 크기는 최대 20MB, 페이지는 최대 300페이지까지 가능합니다(isTranslateNativePdfOnly 필드가 true여야 함). enableShadowRemovalNativePdf 필드를 사용 설정한 경우 한도는 20페이지입니다. 스캔된 PDF의 경우에는 한도가 20페이지입니다.

다른 문서 유형의 경우 파일 크기는 최대 20MB까지 허용되며 페이지 한도는 없습니다.

Cloud Storage에서 문서 번역하기

다음 예시에서는 Cloud Storage 버킷의 파일을 번역하고 결과를 Cloud Storage 버킷으로 출력합니다. 응답도 바이트 스트림을 반환합니다. MIME 유형을 지정할 수 있습니다. 지정하지 않으면 Document Translation에서 입력 파일의 확장자를 사용하여 이를 확인합니다.

출발어 코드를 지정하지 않으면 Document Translation에서 언어를 감지합니다. 감지된 언어는 detectedLanguageCode 필드의 출력에 포함됩니다.

REST

요청 데이터를 사용하기 전에 다음을 바꿉니다.

  • PROJECT_NUMBER_OR_ID: Google Cloud 프로젝트의 숫자 또는 영숫자 ID
  • LOCATION: 이 작업을 실행할 리전입니다. 예를 들면 us-central1입니다.
  • SOURCE_LANGUAGE: (선택사항) 입력 문서의 언어 코드입니다. 알려진 경우 언어 지원에 나열된 언어 코드 중 하나로 설정합니다.
  • TARGET_LANGUAGE: 입력 문서를 번역할 도착어입니다. 언어 지원에 나열된 언어 코드 중 하나로 설정합니다.
  • INPUT_FILE_PATH: 입력 문서의 Cloud Storage 위치 및 파일 이름입니다.
  • OUTPUT_FILE_PREFIX: 출력 문서가 저장될 Cloud Storage 위치입니다.
  • IS_NATIVE: (선택사항) 기본 PDF 문서의 경우 요청이 기본 PDF 페이지 또는 스캔 PDF 페이지 한도를 사용하는지를 나타내는 불리언 값입니다. true인 경우 기본 PDF 문서에 대해서만 페이지 한도가 300페이지로 증가합니다. false이거나 지정되지 않은 경우 스캔된 PDF 페이지 한도(20페이지)가 사용됩니다.

HTTP 메서드 및 URL:

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

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
}

요청을 보내려면 다음 옵션 중 하나를 펼칩니다.

다음과 비슷한 JSON 응답이 표시됩니다.

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

Node.js

이 샘플을 사용해 보기 전에 Cloud Translation 빠른 시작: 클라이언트 라이브러리 사용Node.js 설정 안내를 따르세요. 자세한 내용은 Cloud Translation Node.js API 참고 문서를 확인하세요.

Cloud Translation에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 로컬 개발 환경의 인증 설정을 참조하세요.

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

문서를 인라인으로 번역하기

다음 예시에서는 요청의 일부로 문서를 인라인으로 보냅니다. 인라인 문서 번역에는 MIME 유형이 포함되어야 합니다.

출발어 코드를 지정하지 않으면 Document Translation에서 언어를 감지합니다. 감지된 언어는 detectedLanguageCode 필드의 출력에 포함됩니다.

REST

요청 데이터를 사용하기 전에 다음을 바꿉니다.

  • PROJECT_NUMBER_OR_ID: Google Cloud 프로젝트의 숫자 또는 영숫자 ID
  • LOCATION: 이 작업을 실행할 리전입니다. 예를 들면 us-central1입니다.
  • SOURCE_LANGUAGE: (선택사항) 입력 문서의 언어 코드입니다. 알려진 경우 언어 지원에 나열된 언어 코드 중 하나로 설정합니다.
  • TARGET_LANGUAGE: 입력 문서를 번역할 도착어입니다. 언어 지원에 나열된 언어 코드 중 하나로 설정합니다.
  • MIME_TYPE: 소스 문서의 형식입니다(예: application/pdf).
  • INPUT_BYTE_STREAM: 입력 문서의 콘텐츠를 바이트 스트림으로 표시합니다.
  • OUTPUT_FILE_PREFIX: 출력 문서가 저장될 Cloud Storage 위치입니다.
  • IS_NATIVE: (선택사항) 기본 PDF 문서의 경우 요청이 기본 PDF 페이지 또는 스캔 PDF 페이지 한도를 사용하는지를 나타내는 불리언 값입니다. true인 경우 기본 PDF 문서에 대해서만 페이지 한도가 300페이지로 증가합니다. false이거나 지정되지 않은 경우 스캔된 PDF 페이지 한도(20페이지)가 사용됩니다.

HTTP 메서드 및 URL:

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

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
}

요청을 보내려면 다음 옵션 중 하나를 펼칩니다.

다음과 비슷한 JSON 응답이 표시됩니다.

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

Python

이 샘플을 사용해 보기 전에 Cloud Translation 빠른 시작: 클라이언트 라이브러리 사용Python 설정 안내를 따르세요. 자세한 내용은 Cloud Translation Python API 참고 문서를 확인하세요.

Cloud Translation에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 로컬 개발 환경의 인증 설정을 참조하세요.

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

AutoML 모델 또는 용어집 사용하기

Google 관리형 모델 대신 자체 AutoML Translation 모델을 사용하여 문서를 번역할 수 있습니다. 모델 지정 외에도 도메인별 용어를 처리하기 위한 용어집을 포함할 수도 있습니다. 모델이나 용어집을 지정하는 경우 출발어를 지정해야 합니다. 다음 예시에서는 AutoML 모델과 용어집을 사용합니다. 모델 또는 용어집이 다른 프로젝트에 있는 경우 해당 리소스에 액세스하려면 해당 IAM 권한이 있어야 합니다.

REST

요청 데이터를 사용하기 전에 다음을 바꿉니다.

  • PROJECT_NUMBER_OR_ID: Google Cloud 프로젝트의 숫자 또는 영숫자 ID
  • LOCATION: 이 작업을 실행할 리전입니다(예: us-central1). 이 위치는 모델, 용어집 또는 둘 다 있는 리전과 일치해야 합니다.
  • SOURCE_LANGUAGE: 입력 문서의 언어 코드입니다. 언어 지원에 나열된 언어 코드 중 하나로 설정합니다.
  • TARGET_LANGUAGE: 입력 문서를 번역할 도착어입니다. 언어 지원에 나열된 언어 코드 중 하나로 설정합니다.
  • INPUT_FILE_PATH: 입력 문서의 Cloud Storage 위치 및 파일 이름입니다.
  • OUTPUT_FILE_PREFIX: 출력 문서가 저장될 Cloud Storage 위치입니다.
  • MODEL_PROJECT_ID: 모델이 있는 프로젝트 ID입니다.
  • MODEL_LOCATION: 모델이 있는 리전입니다.
  • MODEL_ID: 사용할 모델의 ID입니다.
  • GLOSSARY_PROJECT_ID: 용어집이 있는 프로젝트 ID입니다.
  • GLOSSARY_LOCATION: 용어집이 있는 리전입니다.
  • GLOSSARY_ID: 사용할 용어집의 ID입니다.

HTTP 메서드 및 URL:

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

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

요청을 보내려면 다음 옵션 중 하나를 펼칩니다.

다음과 비슷한 JSON 응답이 표시됩니다.

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

문서 번역하기(일괄)

일괄 번역을 사용하면 요청 한 번으로 여러 파일을 여러 언어로 번역할 수 있습니다. 요청별로 총 콘텐츠 크기가 최대 1GB 또는 1억 개의 유니코드 코드포인트인 파일을 최대 100개까지 전송할 수 있습니다(둘 중 먼저 도달하는 한도 기준). 언어별로 특정 번역 모델을 지정할 수 있습니다.

여러 문서 번역하기

다음 예시에는 여러 입력 구성이 포함되어 있습니다. 각 입력 구성은 Cloud Storage 버킷의 파일을 가리키는 포인터입니다.

REST

요청 데이터를 사용하기 전에 다음을 바꿉니다.

  • PROJECT_NUMBER_OR_ID: Google Cloud 프로젝트의 숫자 또는 영숫자 ID
  • LOCATION: 이 작업을 실행할 리전입니다. 예를 들면 us-central1입니다.
  • SOURCE_LANGUAGE: 입력 문서의 언어 코드입니다. 언어 지원에 나열된 언어 코드 중 하나로 설정합니다.
  • TARGET_LANGUAGE: 도착어 또는 입력 문서를 번역할 언어입니다. 언어 지원에 나열된 언어 코드를 사용합니다.
  • INPUT_FILE_PATH: 하나 이상의 입력 문서의 Cloud Storage 위치 및 파일 이름입니다.
  • OUTPUT_FILE_PREFIX: 모든 출력 문서가 저장되는 Cloud Storage 위치입니다.

HTTP 메서드 및 URL:

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

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

요청을 보내려면 다음 옵션 중 하나를 펼칩니다.

응답에는 장기 실행 작업의 ID가 포함됩니다.
{
  "name": "projects/PROJECT_NUMBER/locations/LOCATION/operations/OPERATION_ID",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.translation.v3.BatchTranslateDocumentMetadata",
    "state": "RUNNING"
  }
}

Node.js

이 샘플을 사용해 보기 전에 Cloud Translation 빠른 시작: 클라이언트 라이브러리 사용Node.js 설정 안내를 따르세요. 자세한 내용은 Cloud Translation Node.js API 참고 문서를 확인하세요.

Cloud Translation에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 로컬 개발 환경의 인증 설정을 참조하세요.

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

이 샘플을 사용해 보기 전에 Cloud Translation 빠른 시작: 클라이언트 라이브러리 사용Python 설정 안내를 따르세요. 자세한 내용은 Cloud Translation Python API 참고 문서를 확인하세요.

Cloud Translation에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 로컬 개발 환경의 인증 설정을 참조하세요.


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

기본 PDF 파일 번역 및 변환

다음 예시에서는 기본 PDF 파일을 번역하여 DOCX 파일로 변환합니다. 다양한 파일 형식의 입력을 여러 개 지정할 수 있습니다. 기본 PDF 파일일 필요는 없습니다. 그러나 스캔된 PDF 파일은 변환을 포함할 때 포함될 수 없습니다. 요청이 거부되고 번역이 수행되지 않습니다. 기본 PDF 파일만 번역되고 DOCX 파일로 변환됩니다. 예를 들어 PPTX 파일이 포함되어 있으면 번역되고 PPTX 파일로 반환됩니다.

정기적으로 스캔된 PDF 파일과 기본 PDF 파일이 혼합된 파일을 번역하는 경우 이러한 파일을 별도의 Cloud Storage 버킷으로 구성하는 것이 좋습니다. 이렇게 하면 일괄 번역 및 변환을 요청할 때 개별 파일을 제외할 필요 없이 스캔된 PDF 파일이 포함된 버킷을 간편하게 제외할 수 있습니다.

REST

요청 데이터를 사용하기 전에 다음을 바꿉니다.

  • PROJECT_NUMBER_OR_ID: Google Cloud 프로젝트의 숫자 또는 영숫자 ID
  • LOCATION: 이 작업을 실행할 리전입니다. 예를 들면 us-central1입니다.
  • SOURCE_LANGUAGE: 입력 문서의 언어 코드입니다. 언어 지원에 나열된 언어 코드 중 하나로 설정합니다.
  • TARGET_LANGUAGE: 도착어 또는 입력 문서를 번역할 언어입니다. 언어 지원에 나열된 언어 코드를 사용합니다.
  • INPUT_FILE_PATH: Cloud Storage 위치와 기본 PDF 파일 하나 이상의 파일 이름입니다.
  • OUTPUT_FILE_PREFIX: 모든 출력 문서가 저장되는 Cloud Storage 위치입니다.

HTTP 메서드 및 URL:

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

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

요청을 보내려면 다음 옵션 중 하나를 펼칩니다.

응답에는 장기 실행 작업의 ID가 포함됩니다.
{
  "name": "projects/PROJECT_NUMBER/locations/LOCATION/operations/OPERATION_ID",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.translation.v3.BatchTranslateDocumentMetadata",
    "state": "RUNNING"
  }
}

AutoML 모델 또는 용어집 사용하기

Google 관리형 모델 대신 자체 AutoML Translation 모델을 사용하여 문서를 번역할 수 있습니다. 모델 지정 외에도 도메인별 용어를 처리하기 위한 용어집을 포함할 수도 있습니다. 모델이나 용어집을 지정하는 경우 출발어를 지정해야 합니다. 다음 예시에서는 AutoML 모델과 용어집을 사용합니다. 자체 모델 및 용어집과 함께 최대 10개까지 대상 언어를 지정할 수 있습니다.

일부 도착어에는 모델을 지정하고 다른 도착어에는 지정하지 않으면 Document Translation은 지정되지 않은 언어에 Google 관리형 모델을 사용합니다. 마찬가지로 일부 도착어에 용어집을 지정하면 Document Translation은 지정되지 않은 언어에 용어집을 사용하지 않습니다.

REST

요청 데이터를 사용하기 전에 다음을 바꿉니다.

  • PROJECT_NUMBER_OR_ID: Google Cloud 프로젝트의 숫자 또는 영숫자 ID
  • LOCATION: 이 작업을 실행할 리전입니다(예: us-central1). 이 위치는 모델, 용어집 또는 둘 다 있는 리전과 일치해야 합니다.
  • SOURCE_LANGUAGE: 입력 문서의 언어 코드입니다. 언어 지원에 나열된 언어 코드 중 하나로 설정합니다.
  • TARGET_LANGUAGE: 도착어 또는 입력 문서를 번역할 언어입니다. 언어 지원에 나열된 언어 코드를 사용합니다.
  • INPUT_FILE_PATH: 하나 이상의 입력 문서의 Cloud Storage 위치 및 파일 이름입니다.
  • OUTPUT_FILE_PREFIX: 모든 출력 문서가 저장되는 Cloud Storage 위치입니다.
  • MODEL_PROJECT_ID: 모델이 있는 프로젝트 ID입니다.
  • MODEL_LOCATION: 모델이 있는 리전입니다.
  • MODEL_ID: 사용할 모델의 ID입니다.
  • GLOSSARY_PROJECT_ID: 용어집이 있는 프로젝트 ID입니다.
  • GLOSSARY_LOCATION: 용어집이 있는 리전입니다.
  • GLOSSARY_ID: 사용할 용어집의 ID입니다.

HTTP 메서드 및 URL:

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

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

요청을 보내려면 다음 옵션 중 하나를 펼칩니다.

응답에는 장기 실행 작업의 ID가 포함됩니다.
{
  "name": "projects/PROJECT_NUMBER/locations/LOCATION/operations/OPERATION_ID",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.translation.v3.BatchTranslateDocumentMetadata",
    "state": "RUNNING"
  }
}

텍스트가 겹침

경우에 따라 기본 PDF 번역에 소스 텍스트에 오버레이된 번역된 텍스트가 포함될 수 있습니다. 이러한 문제를 섀도 텍스트라고 합니다.

경우에 따라 enableShadowRemovalNativePdf 옵션을 사용 설정하여 섀도 텍스트를 삭제할 수 있습니다. 이 옵션을 사용 설정하면 응답 지연 시간이 늘어나고 온라인 문서 번역의 경우 페이지 한도가 20으로 줄어듭니다. 번역 후 문서에 섀도 텍스트 삭제가 필요한지 여부만 알 수 있습니다.

다른 경우에는 enableShadowRemovalNativePdf 옵션이 작동하지 않으면 PDF를 이미지로 변환한 후 번역합니다. 일반적으로 이러한 경우에는 선택 가능한 텍스트가 텍스트도 포함된 배경 이미지 위에 있을 때와 같이 여러 레이어 텍스트가 포함됩니다. PDF를 이미지로 변환하면 Cloud Translation이 문서를 스캔된 PDF로 처리할 수 있습니다. Chrome(이미지로 인쇄) 또는 기타 서드 파티 도구를 사용하여 변환하면 됩니다.

텍스트 방향

스캔된 PDF 번역의 경우 소스 텍스트가 가로 방향이어야 합니다. 예를 들어 스캔한 문서에 위 또는 아래 방향의 텍스트가 포함된 경우 Cloud Translation이 모든 텍스트를 올바르게 파싱하지 못해서 잘못되었거나 불완전한 번역이 발생할 수 있습니다.

문서 방향이 일관적이지 않으면 Cloud Translation가 자동으로 방향을 지정하도록 할 수 있습니다. 번역 전에 텍스트 방향이 올바르게 지정되도록 번역 요청에서 enableRotationCorrection 옵션을 사용 설정합니다.

다음 단계

  • 문서 번역 요금은 페이지 단위로 책정됩니다. 자세한 내용은 가격 책정을 참조하세요.