---
title: "웹 번역"
slug: "ai-naver-papagowebsitetranslation-translation"
tags: ["Papago Translation", "Papago Website Translation"]
updated: 2026-04-23T08:55:33Z
published: 2026-04-23T09:02:14Z
---

> ## Documentation Index
> Fetch the complete documentation index at: https://api.ncloud-docs.com/llms.txt
> Use this file to discover all available pages before exploring further.

# 웹 번역

Classic/VPC 환경에서 이용 가능합니다.

웹사이트를 구성하는 HTML 문서 전체 또는 특정 영역의 엘리먼트(Element)를 다른 언어로 번역합니다.

참고

사용 전 다음 내용을 참고해 주십시오.

- 이미지로 된 텍스트는 번역 불가
- 텍스트에 적용된 스타일은 일부 일치하지 않거나 누락될 수 있음
- 텍스트에 적용된 링크나 액션은 일부 동작하지 않거나 누락될 수 있음
- html 파라미터 크기 제한 존재: UTF-8 기준 태그, 공백 등 모든 캐릭터 포함 200,000 바이트
- html 파라미터의 크기가 클수록 응답이 느려지므로 번역 영역의 element 요청을 권장
  - [Website Translation 예제](/docs/ai-naver-papagowebsitetranslation) 참조
- 1회당 권장 최대 글자: 60,000자
- 1분당 권장 최대 글자: 3,600,000자
- 과금: 태그 및 공백 포함 모든 캐릭터 수 카운팅

## 요청

요청 형식을 설명합니다. 요청 형식은 다음과 같습니다.

| 메서드 | URI |
| --- | --- |
| POST | /translate |

### 요청 헤더

Papago Translation API에서 공통으로 사용하는 헤더에 대한 정보는 [Papago Translation 요청 헤더](/docs/ai-naver-papagonmt#%EC%9A%94%EC%B2%AD%ED%97%A4%EB%8D%94)를 참조해 주십시오.

### 요청 바디

요청 바디에 대한 설명은 다음과 같습니다.

| 필드 | 타입 | 필수 여부 | 설명 |
| --- | --- | --- | --- |
| `source` | String | Required | 원본 텍스트(Source)의 언어 코드 - `auto`(자동 언어 감지) \| `ko`(한국어) \| `en`(영어) \| `ja`(일본어) \| `zh-CN`(중국어(간체)) \| `zh-TW`(중국어(번체)) \| `vi`(베트남어) \| `th`(태국어) \| `id`(인도네시아어) \| `fr`(프랑스어) \| `es`(스페인어) \| `ru`(러시아어) - 번역이 지원되는 언어쌍에 대한 정보는 [번역 지원 언어](/docs/ai-naver-papagowebsitetranslation-translation#%EB%B2%88%EC%97%AD%EC%A7%80%EC%9B%90%EC%96%B8%EC%96%B4) 참조 |
| `target` | String | Required | 번역할 텍스트(Target)의 언어 코드 - `ko`(한국어) \| `en`(영어) \| `ja`(일본어) \| `zh-CN`(중국어(간체)) \| `zh-TW`(중국어(번체)) \| `vi`(베트남어) \| `th`(태국어) \| `id`(인도네시아어) \| `fr`(프랑스어) \| `es`(스페인어) \| `ru`(러시아어) - 번역이 지원되는 언어쌍에 대한 정보는 [번역 지원 언어](/docs/ai-naver-papagowebsitetranslation-translation#%EB%B2%88%EC%97%AD%EC%A7%80%EC%9B%90%EC%96%B8%EC%96%B4) 참조 |
| `glossaryKey` | String | Optional | 용어집 아이디 - 용어집 데이터를 기반으로 치환 번역 적용 - 한국어⇔영어, 한국어⇔일본어, 한국어⇔중국어(간체), 한국어⇔중국어(번체), 한국어⇔프랑스어, 영어⇔일본어, 영어⇔중국어(간체), 영어⇔중국어(번체), 영어⇔베트남어, 영어⇔태국어, 영어⇔인도네시아어, 영어⇔프랑스어, 일본어⇔중국어(간체), 일본어⇔중국어(번체) |
| `html` | String | Required | 번역할 HTML 문서 전체 또는 특정 영역의 엘리먼트(Element) - 최대 200,000 Bytes 입력 가능 (UTF-8 기준 태그, 공백 포함) |

참고

소스 언어를 특정 언어로 지정하지 않더라도(`auto`로 지정) 자동으로 언어를 감지하여 번역 결과를 제공합니다. 이 경우, 언어 감지에 대한 추가 과금 없이 번역 요청 글자 수 기준으로만 과금합니다.

#### 번역 지원 언어

번역 지원 언어에 대한 설명은 다음과 같습니다.

| 지원 언어 | 번역 방향 | 지원 언어 |
| --- | --- | --- |
| 한국어 | ⇔ | 영어, 일본어, 중국어(간체), 중국어(번체), 베트남어, 태국어, 인도네시아어, 프랑스어, 스페인어, 러시아어 |
| 영어 | ⇔ | 한국어, 일본어, 베트남어, 태국어, 인도네시아어, 프랑스어 |
| 일본어 | ⇔ | 한국어, 영어 |
| 중국어(간체) | ⇔ | 한국어 |
| 중국어(번체) | ⇔ | 한국어 |

### 요청 예시

요청 예시는 다음과 같습니다.

#### HTML 문서 전체를 번역한 경우

HTML 문서 전체를 번역한 경우의 요청 예시는 다음과 같습니다.

```
curl --location --request POST 'https://papago.apigw.ntruss.com/web-trans/v1/translate' \
--header 'X-NCP-APIGW-API-KEY-ID: {앱 등록 시 발급받은 Client ID}' \
--header 'X-NCP-APIGW-API-KEY: {앱 등록 시 발급 받은 Client Secret}' \
--header 'Content-Type: application/x-www-form-urlencoded' \
--data-urlencode 'source=auto' \
--data-urlencode 'target=ja' \
--data-urlencode '<div> 안녕하세요. 파파고입니다.</div>'\''
<div papago-id="0" papago-translate="translated"><font class="papago-parent"><font class="papago-source" style="display:none;">
</font>
</font><font class="papago-parent"><font class="papago-source" style="display:none;"> 안녕하세요. 파파고입니다.</font>Hello, I'm Papago.</font><font class="papago-parent"><font class="papago-source" style="display:none;">
</font>
</font></div>%'
```

#### 특정 영역의 엘리먼트(Element)를 번역한 경우

특정 영역의 엘리먼트(Element)를 번역한 경우의 요청 예시는 다음과 같습니다.

```
curl --location --request POST 'https://papago.apigw.ntruss.com/web-trans/v1/translate' \
--header 'X-NCP-APIGW-API-KEY-ID: {앱 등록 시 발급받은 Client ID}' \
--header 'X-NCP-APIGW-API-KEY: {앱 등록 시 발급 받은 Client Secret}' \
--header 'Content-Type: application/x-www-form-urlencoded' \
--data-urlencode 'source=auto' \
--data-urlencode 'target=ko' \
--data-urlencode 'html=<!DOCTYPE html>
<html lang="ko">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Example</title>
    <style>
      body {
        margin-top: 50px;
      }

      ul.comment_container {
        width: 500px;
        list-style-type: none;
      }

      li.comment_item_wrapper {
        margin-bottom: 5rem;
        padding: 10px 20px;
        border: 1px solid gray;
        border-radius: 10px;
      }

      .user_info {
        font-weight: bold;
      }
    </style>
  </head>
  <body>
    <!-- comments -->
    <ul class="comment_container">
      <!-- comment -->
      <li class="comment_item_wrapper">
        <div class="user_info">
          <span class="nickname">user1</span>
        </div>
        <div class="content">
          <p>
            Lorem ipsum dolor sit amet consectetur adipisicing elit. Natus
            nostrum in earum minus voluptates nobis fugiat rerum totam illum
            ipsum.
          </p>
        </div>
      </li>
      <!-- comment -->

      <!-- comment -->
      <li class="comment_item_wrapper">
        <div class="user_info">
          <span class="nickname">user2</span>
        </div>
        <div class="content">
          <p>Lorem ipsum dolor sit amet.</p>
        </div>
      </li>
      <!-- comment -->

      <!-- comment -->
      <li class="comment_item_wrapper">
        <div class="user_info">
          <span class="nickname">user3</span>
        </div>
        <div class="content">
          <p>
            Lorem ipsum dolor sit, amet consectetur adipisicing elit. Ex tempora
            ipsa iusto temporibus consectetur. Libero sequi consequatur
            quibusdam dignissimos totam, praesentium harum dolor nisi
            repudiandae in error tempora incidunt aperiam.
          </p>
        </div>
      </li>
      <!-- comment -->

      <!-- comment -->
      <li class="comment_item_wrapper">
        <div class="user_info">
          <span class="nickname">user4</span>
        </div>
        <div class="content">
          <p>
            Lorem ipsum dolor sit amet consectetur adipisicing elit. Natus
            nostrum in earum minus voluptates nobis fugiat rerum totam illum
            ipsum.
          </p>
          <br />
          <p>Lorem ipsum dolor sit amet.</p>
        </div>
      </li>
      <!-- comment -->
    </ul>
    <!-- comments -->

    <script>
      const comments = [
        ...document.getElementsByClassName('\''comment_item_wrapper'\''),
      ];
      const htmlsToRequest = comments.map((comment) => comment.outerHTML);

      console.log(htmlsToRequest);
    </script>
  </body>
</html>'
```

## 응답

응답 형식을 설명합니다.

### 응답 바디

응답 바디에 대한 설명은 다음과 같습니다.

| 필드 | 타입 | 필수 여부 | 설명 |
| --- | --- | --- | --- |
| status_code | Integer | - | 응답 상태 |
| data | String | - | 번역된 HTML 문서 전체 또는 특정 영역의 Element |

### 응답 상태 코드

Papago Translation API에서 공통으로 사용하는 응답 상태 코드에 대한 정보는 [Papago Translation 응답 상태 코드](/docs/ai-naver-papagonmt#%EC%9D%91%EB%8B%B5%EC%83%81%ED%83%9C%EC%BD%94%EB%93%9C)를 참조해 주십시오.

### 응답 예시

응답 예시는 다음과 같습니다.

#### HTML 문서 전체를 번역한 경우

HTML 문서 전체를 번역한 경우의 응답 예시는 다음과 같습니다.

```
<div> こんにちは。パパゴです。</div>'\''

<div papago-id="0" papago-translate="translated">
    <font class="papago-source" style="display:none;">

    </font>
    <font class="papago-parent">Hello, I'm Papago.</font>
    <font class="papago-source" style="display:none;">

    </font>
</div>%
```

#### 특정 영역의 엘리먼트(Element)를 번역한 경우

특정 영역의 엘리먼트(Element)를 번역한 경우의 응답 예시는 다음과 같습니다.

```
<!doctype html>
<html lang="ko">
  <head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Example</title>
    <style>
      body {
        margin-top: 50px;
}

      ul.comment_container {
        width: 500px;
        list-style-type: none;
}

      li.comment_item_wrapper {
        margin-bottom: 5rem;
        padding: 10px 20px;
        border: 1px solid gray;
        border-radius: 10px;
}

      .user_info {
        font-weight: bold;
}
    </style>
  </head>
  <body>
    <!-- comments -->
    <ul class="comment_container">
      <!-- comment -->
      <li class="comment_item_wrapper">
        <div class="user_info">
          <span class="nickname">user1</span>
        </div>
        <div class="content">
          <p>
            로렘입숨 돌로르싯은 콩츄르 아디피시싱 엘리트입니다. 나투스
            고막의 콧구멍에서 볼륨을 뺀 부분은 땀을 흘리기 위해 비후성 고막을 뺀 부분입니다.
            입섬
          </p>
        </div>
      </li>
      <!-- comment -->

      <!-- comment -->
      <li class="comment_item_wrapper">
        <div class="user_info">
          <span class="nickname">user2</span>
        </div>
        <div class="content">
          <p>로렘심품 돌로르 좌담회.</p>
        </div>
      </li>
      <!-- comment -->

      <!-- comment -->
      <li class="comment_item_wrapper">
        <div class="user_info">
          <span class="nickname">user3</span>
        </div>
        <div class="content">
          <p>
            로렘입숨 돌로르시트, 결구 아디피시싱 엘리트. 임시
            temporbus constetur에 동의합니다. 리베로수차 결과자
            퀴부스담 디그니소스 토탐, 프라센티움 하룸 돌로니시
            일시적인 사고 주변에 오류가 있습니다.
          </p>
        </div>
      </li>
      <!-- comment -->

      <!-- comment -->
      <li class="comment_item_wrapper">
        <div class="user_info">
          <span class="nickname">user4</span>
        </div>
        <div class="content">
          <p>
            로렘입숨 돌로르싯은 콩츄르 아디피시싱 엘리트입니다. 나투스
            고막의 콧구멍에서 볼륨을 뺀 부분은 땀을 흘리기 위해 비후성 고막을 뺀 부분입니다.
            입섬
          </p>
          <br>
          <p>로렘심품 돌로르 좌담회.</p>
        </div>
      </li>
      <!-- comment -->
    </ul>
    <!-- comments -->

    <script>
      const comments = [
        ...document.getElementsByClassName('comment_item_wrapper'),
];
      const htmlsToRequest = comments.map((comment) => comment.outerHTML);

      console.log(htmlsToRequest);
    </script>
  
</body></html>
```
