JSON 번역

키를 건드리지 않고 JSON 로케일 파일 번역하기.

키는 키로 유지됩니다. 중첩은 그대로 유지됩니다. 문자열 값만 번역되며 — 오직 문자열 값만 번역됩니다. 다른 모든 속성 유형은 전송된 그대로 반환됩니다.

항상 보존됨
중첩
객체를 재귀적으로 처리
36
요청당 출력 언어 수
100K
무료 토큰 / 월

일반 번역 도구는 JSON을 이해하지 못합니다.

일반 번역 API는 JSON을 단순한 텍스트 덩어리로 봅니다. 키 이름과 값을 함께 번역합니다. 중첩된 객체를 평탄화합니다. 번역해서는 안 되는 문자열을 연결합니다. 결과는 구조적으로 깨진 JSON으로, 사용하기 전에 수동으로 수정해야 합니다. 프로덕션 애플리케이션의 로케일 파일을 관리하는 경우, 표준 번역 API에 입력하는 것이 절약하는 것보다 더 많은 작업을 만든다는 것을 알고 있습니다.

문제는 키 이름뿐만 아니라 더 깊습니다. 표준 번역 API는 보간 변수도 망가뜨립니다. "Hello {name}, you have {count} messages" 같은 문자열이 변수 이름까지 번역되어 "Hola {nombre}, tienes {cuenta} mensajes"가 되어, 원래 변수 이름을 기대하는 모든 런타임이 깨집니다. 수 시간의 디버깅이 뒤따릅니다.

프로덕션 애플리케이션을 위해 여러 언어의 로케일 파일을 관리하는 팀에게 이는 이론적인 문제가 아닙니다. 이미 발생한 일입니다. 문제는 수동 수리 과정이 매번 얼마나 걸리느냐입니다.

PolyLingo는 번역 전에 JSON을 순회합니다.

PolyLingo는 JSON 구조를 이해합니다. 객체를 재귀적으로 순회하며 번역 가능한 텍스트가 포함된 문자열 값을 식별하고, 해당 값만 번역 모델에 보냅니다. 키 이름은 절대 변경하지 않습니다. 숫자, 불리언, null 값 및 비문자열 유형은 변경 없이 그대로 전달됩니다. 출력은 동일한 구조의 유효한 JSON이며, 번역된 문자열 값만 포함됩니다.

보간 변수 — {name}, {{count}}, %s 및 유사한 패턴 — 는 번역 과정 내내 식별되고 보존됩니다. 번역 전에 플레이스홀더로 대체되고, 출력 시 원래 형태로 복원됩니다. 번역 모델은 이들을 번역 가능한 텍스트로 보지 않습니다.

배열은 올바르게 처리됩니다: 각 문자열 요소는 번역되고, 숫자 인덱스와 배열 구조는 변경되지 않습니다. 문자열과 비문자열(숫자, 객체)이 혼합된 배열도 올바르게 순회하며 비문자열 유형은 변경 없이 전달됩니다.

입력 — 평면 JSON 로케일 (영어)
{
  "nav_home": "Home",
  "nav_pricing": "Pricing",
  "hero_title": "Grow your audience globally",
  "hero_cta": "Get started for free",
  "footer_rights": "All rights reserved."
}
출력 — 프랑스어 (키 동일)
{
  "nav_home": "Accueil",
  "nav_pricing": "Tarifs",
  "hero_title": "Développez votre audience mondiale",
  "hero_cta": "Commencer gratuitement",
  "footer_rights": "Tous droits réservés."
}
입력 — 중첩 JSON 로케일 (영어)
{
  "nav": {
    "home": "Home",
    "pricing": "Pricing",
    "blog": "Blog"
  },
  "hero": {
    "title": "Grow your audience globally",
    "subtitle": "Translate in seconds.",
    "cta": "Get started for free"
  },
  "errors": {
    "notFound": "Page not found",
    "serverError": "Something went wrong"
  }
}
출력 — 스페인어 (구조 유지)
{
  "nav": {
    "home": "Inicio",
    "pricing": "Precios",
    "blog": "Blog"
  },
  "hero": {
    "title": "Expande tu audiencia globalmente",
    "subtitle": "Traduce en segundos.",
    "cta": "Comienza gratis"
  },
  "errors": {
    "notFound": "Página no encontrada",
    "serverError": "Algo salió mal"
  }
}
API 요청 — 한 번에 5개 언어로 번역
curl -X POST https://api.usepolylingo.com/v1/translate \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "content": "{\"nav_home\": \"Home\", \"hero_title\": \"Get started\"}",
    "format": "json",
    "targets": ["es", "fr", "de", "ja", "zh"],
    "model": "standard"
  }'

# Response:
# {
#   "translations": {
#     "es": "{\"nav_home\": \"Inicio\", \"hero_title\": \"Empezar\"}",
#     "fr": "{\"nav_home\": \"Accueil\", \"hero_title\": \"Commencer\"}",
#     ...
#   }
# }

PolyLingo가 모든 JSON 번역에 보장하는 것

  • 키 이름은 절대 변경되지 않음
  • 중첩된 객체와 배열을 재귀적으로 처리
  • 숫자, 불리언, null 값은 변경 없이 전달
  • 한 번의 요청으로 36개 언어 지원
  • 자동으로 JSON으로 감지 — 형식 플래그 불필요
  • 평면 및 깊게 중첩된 로케일 파일 모두 지원
  • 보간 변수({name}, {{count}}, %s) 정확히 보존
  • 출력은 유효한 JSON — 수정 없이 파싱 가능

번역된 로케일 파일을 위한 세 단계

1

JSON 붙여넣기 또는 API 호출

일회성 번역을 위해 코드 없는 번역기를 사용하세요: JSON을 붙여넣고, 언어를 선택하고, 번역된 파일을 다운로드합니다. 자동화를 위해 POST /v1/translate에 JSON 내용과 대상 언어 코드를 보내세요.

2

모든 언어를 한 번에 받기

API는 대상 언어별로 하나씩 완전히 번역된 로케일 파일을 포함하는 JSON 객체를 반환합니다. 언어별 호출 없음. 반복 없음. 모든 출력에 대해 한 번의 요청.

3

출력을 메시지 디렉터리에 저장

각 번역 파일을 messages/es.json, messages/fr.json, messages/de.json 등에 저장하세요 — 또는 i18n 라이브러리가 기대하는 위치에 저장하세요. 구조는 원본 파일과 동일하므로 추가 처리가 필요 없습니다.

JSON 번역이 가장 중요한 곳

🌐

next-intl 또는 i18next를 사용하는 앱 i18n

messages/*.json 또는 locales/*.json 파일을 직접 번역하세요. 키는 그대로 유지되고, 중첩은 보존되며, 보간 변수는 변경 없이 전달됩니다. 파일을 메시지 디렉터리에 넣고 배포하세요.

🗄️

CMS 콘텐츠 내보내기

헤드리스 CMS 플랫폼은 종종 구조화된 콘텐츠를 JSON으로 내보냅니다. PolyLingo는 필드 이름, 중첩 콘텐츠 유형, 날짜, 불리언, ID 같은 비문자열 값을 보존하면서 문자열 값만 번역합니다.

⚙️

API 응답 및 구성 파일

번역 가능한 문자열 값을 포함하는 모든 JSON 구조 — 제품 설명, 알림 템플릿, API를 통해 제공되는 앱 내 문구 — 는 애플리케이션이 의존하는 구조를 변경하지 않고 번역할 수 있습니다.

JSON 번역에 관한 자주 묻는 질문

{name} 또는 {{count}} 같은 보간 변수가 보존되나요?

네. PolyLingo는 {variable}, {{variable}}, %(variable)s, %s 등 일반적인 보간 패턴을 번역 전에 식별합니다. 이들은 안정적인 플레이스홀더로 대체되고, 주변 텍스트는 번역되며, 원래 변수 이름은 출력에서 복원됩니다. 번역 모델은 변수 이름을 번역 가능한 내용으로 보지 않습니다.

숫자, 불리언, null 같은 비문자열 값은 어떻게 되나요?

비문자열 값은 완전히 변경 없이 전달됩니다. PolyLingo는 자연어 텍스트가 포함된 문자열 값만 번역합니다. 숫자, 불리언, null 값 및 비문자열 배열은 원본과 정확히 동일하게 보존됩니다.

PolyLingo가 깊게 중첩된 JSON 구조도 처리할 수 있나요?

네. PolyLingo는 모든 중첩 깊이의 객체를 재귀적으로 순회합니다. 번역은 구조 내 모든 문자열 값에 적용되며, 중첩 깊이에 상관없습니다.

일부 키에 슬러그나 코드 같은 번역 불가능한 내용이 포함되어 있으면 어떻게 하나요?

PolyLingo는 기본적으로 모든 문자열 값을 번역합니다. 번역하지 말아야 할 문자열 필드(슬러그, 언어 코드, 기술 식별자 등)가 있다면, 해당 필드를 JSON에서 제외하거나 명시적 형식 매개변수를 사용해 건너뛰도록 지정하는 방법(곧 제공 예정)을 권장합니다. 대부분의 로케일 파일에서는 모든 문자열 값이 번역 대상입니다.

JSON5 또는 JSONC(주석 포함 JSON)도 지원하나요?

현재 PolyLingo는 표준 JSON만 처리합니다. JSON5 및 JSONC(주석 포함)는 주석을 제거하고 표준 JSON으로 변환한 후 보내야 합니다. 이는 빌드 파이프라인에서 흔히 수행되는 단계이며 오버헤드는 거의 없습니다.

한 번의 요청으로 몇 개 언어를 대상으로 할 수 있나요?

최대 36개 지원 언어를 한 번의 요청으로 처리할 수 있습니다. 응답은 언어 코드별로 하나씩 번역된 JSON 객체를 포함합니다. 요금제에 따라 속도 제한이 다르며, 무료 요금제는 분당 10회 요청, Growth 및 Scale 요금제는 분당 200~600회 요청을 허용합니다.

몇 초 만에 로케일 파일 번역하기.

JSON을 붙여넣고, 언어를 선택하면, 모든 대상 언어에 대해 유효한 로케일 파일을 받습니다.

무료로 번역 시작

로케일 JSON을 붙여넣고 출력을 확인하세요 — 무료, 계정 불필요.

키를 건드리지 않고 JSON 로케일 파일 번역 — PolyLingo | PolyLingo