다국어 콘텐츠를 위한 JSON 구조 유지 번역기
구조 무결성을 유지하면서 JSON 콘텐츠를 번역합니다. 중첩된 객체와 배열을 처리하고 데이터 유형을 보존하여 원활한 국제화 구현을 지원합니다.
JSON 구조 보존 번역기
이 도구는 JSON 객체의 내용을 번역하면서 구조를 보존합니다. 왼쪽 패널에 JSON을 붙여넣고, 대상 언어를 선택한 후, 오른쪽에서 번역된 출력을 확인하세요.
사용 방법
- 원본 JSON 필드에 JSON 객체를 붙여넣으세요.
- 드롭다운 메뉴에서 대상 언어를 선택하세요.
- 번역된 JSON이 자동으로 오른쪽 패널에 나타납니다.
- 복사 버튼을 클릭하여 번역된 JSON을 클립보드에 복사하세요.
문서화
JSON 구조 보존 번역기
소개
JSON 구조 보존 번역기는 원래의 구조와 속성을 그대로 유지하면서 JSON 객체의 내용을 번역하도록 설계된 전문 도구입니다. 이 강력한 유틸리티는 개발자, 콘텐츠 관리자 및 현지화 전문가가 구조화된 데이터 형식을 로컬화할 때 발생하는 일반적인 문제를 제거하여 JSON 데이터를 원활하게 번역할 수 있도록 합니다. 번역 중 구조를 보존함으로써 이 도구는 다국적 개발 프로젝트 및 콘텐츠 로컬화 워크플로우에 필수적인 리소스가 됩니다.
전통적인 텍스트 번역기와 달리 이 도구는 JSON 객체를 지능적으로 처리하여 번역이 필요한 문자열 값을 식별하는 동시에 비문자 데이터 유형(숫자, 부울, null 값) 및 구조적 요소(키, 괄호, 콜론)는 변경하지 않습니다. 이러한 접근 방식은 번역된 JSON이 유효하고 원본과 기능적으로 동등하게 유지되도록 하여 구조 조정이나 디버깅 없이 다국어 애플리케이션에 직접 구현할 수 있게 합니다.
JSON 구조 보존 작동 방식
JSON 구조 이해하기
JSON(자바스크립트 객체 표기법)은 데이터 객체를 저장하고 전송하는 데 사용되는 경량 데이터 교환 형식으로, 사람이 읽을 수 있는 텍스트를 사용합니다. 일반적인 JSON 구조는 다음으로 구성됩니다:
- 키-값 쌍 (예:
"name": "John Doe"
) - 중첩된 객체 (예:
"address": { "street": "123 Main St", "city": "Anytown" }
) - 배열 (예:
"hobbies": ["reading", "swimming", "hiking"]
) - 다양한 데이터 유형 (문자열, 숫자, 부울, null, 객체, 배열)
국제화 목적으로 JSON을 번역할 때는 문자열 값만 수정하고 나머지 구조를 유지하는 것이 중요합니다.
번역 프로세스
JSON 구조 보존 번역기는 구조적 무결성을 유지하면서 정확한 번역을 보장하기 위해 다음 단계를 따릅니다:
- 파싱: 입력 JSON이 메모리 표현으로 파싱되어 모든 구조적 요소가 보존됩니다.
- 탐색: 도구는 JSON 구조를 재귀적으로 탐색하여 번역이 필요한 문자열 값을 식별합니다.
- 유형 보존: 비문자 값(숫자, 부울, null)은 변경되지 않습니다.
- 키 보존: 객체 키는 구조를 유지하기 위해 변경되지 않습니다.
- 번역: 문자열 값만 대상 언어로 번역됩니다.
- 재조립: 번역된 문자열이 원래 구조에 다시 삽입됩니다.
- 직렬화: 수정된 구조가 유효한 JSON 형식으로 다시 직렬화됩니다.
이 프로세스는 출력 JSON이 입력 JSON과 완벽하게 구조적으로 일치하도록 하며, 문자열 값의 내용만 번역됩니다.
JSON 구조 보존 번역기 사용하기
단계별 가이드
-
도구에 접근하기: 웹 브라우저에서 JSON 구조 보존 번역기로 이동합니다.
-
JSON 입력하기: JSON 객체를 왼쪽의 "소스 JSON" 텍스트 영역에 붙여넣습니다. 이 도구는 중첩된 객체와 배열을 포함한 유효한 JSON을 수용합니다.
-
대상 언어 선택하기: 드롭다운 메뉴에서 원하는 대상 언어를 선택합니다. 이 도구는 스페인어, 프랑스어, 독일어, 이탈리아어, 포르투갈어, 중국어, 일본어, 한국어 및 러시아어를 포함한 여러 언어를 지원합니다.
-
번역 보기: 번역된 JSON이 오른쪽 패널의 "번역된 JSON"에 자동으로 나타납니다. 원래 JSON의 정확한 구조를 유지합니다.
-
결과 복사하기: "복사" 버튼을 클릭하여 번역된 JSON을 클립보드에 복사하여 애플리케이션이나 프로젝트에 사용할 수 있습니다.
-
지우기 및 재설정: 새 번역을 시작해야 하는 경우 "모두 지우기" 버튼을 사용하여 입력 및 출력 필드를 재설정합니다.
오류 처리
번역기를 사용하는 동안 문제가 발생하면 도구에서 유용한 오류 메시지를 제공합니다:
-
유효하지 않은 JSON 형식: 입력 JSON에 구문 오류가 있는 경우 도구는 JSON 형식이 유효하지 않다는 오류 메시지를 표시합니다. 누락된 괄호, 쉼표 또는 기타 구문 문제를 확인하십시오.
-
번역 오류: 번역이 실패하는 경우 도구가 알림을 제공합니다. 이는 연결 문제 또는 번역 서비스의 문제로 인해 발생할 수 있습니다.
최적 결과를 위한 팁
- JSON 유효성 검사: 번역 전에 JSON이 유효한지 확인하십시오.
- 명확한 문자열 값 사용: 명확하고 맥락이 풍부한 문자열은 일반적으로 더 정확하게 번역됩니다.
- 번역 검토: 번역된 출력을 항상 검토하십시오. 특히 기술적이거나 도메인 특정 콘텐츠의 경우 더욱 그렇습니다.
- 대형 파일 처리: 매우 큰 JSON 파일의 경우 번역을 위해 더 작은 청크로 나누는 것을 고려하십시오.
코드 예제
JavaScript로 JSON 번역하기
1// 유사한 기능을 JavaScript로 구현하는 방법의 예
2function translateJsonStructure(jsonObj, targetLanguage) {
3 // 문자열 번역을 위한 도우미 함수
4 function translateString(str, lang) {
5 // 실제 구현에서는 번역 API를 호출합니다
6 return `[${lang}] ${str}`;
7 }
8
9 // JSON을 탐색하고 번역하는 재귀 함수
10 function processNode(node) {
11 if (node === null) return null;
12
13 if (typeof node === 'string') {
14 return translateString(node, targetLanguage);
15 }
16
17 if (Array.isArray(node)) {
18 return node.map(item => processNode(item));
19 }
20
21 if (typeof node === 'object') {
22 const result = {};
23 for (const key in node) {
24 result[key] = processNode(node[key]);
25 }
26 return result;
27 }
28
29 // 숫자, 부울 등은 변경하지 않고 그대로 반환
30 return node;
31 }
32
33 return processNode(jsonObj);
34}
35
36// 사용 예
37const sourceJson = {
38 "product": {
39 "name": "무선 헤드폰",
40 "description": "소음 제거 기능이 있는 고품질 무선 헤드폰",
41 "features": ["블루투스 5.0", "40시간 배터리 수명", "접이식 디자인"],
42 "price": 99.99,
43 "inStock": true
44 }
45};
46
47const translatedJson = translateJsonStructure(sourceJson, "ko");
48console.log(JSON.stringify(translatedJson, null, 2));
49
Python으로 JSON 번역하기
1import json
2
3def translate_json_structure(json_obj, target_language):
4 """
5 JSON 객체의 문자열 값을 번역하면서 구조를 보존합니다.
6
7 Args:
8 json_obj: 파싱된 JSON 객체
9 target_language: 대상 언어 코드 (예: 'ko', 'fr')
10
11 Returns:
12 번역된 JSON 객체
13 """
14 def translate_string(text, lang):
15 # 실제 구현에서는 번역 API를 호출합니다
16 return f"[{lang}] {text}"
17
18 def process_node(node):
19 if node is None:
20 return None
21
22 if isinstance(node, str):
23 return translate_string(node, target_language)
24
25 if isinstance(node, list):
26 return [process_node(item) for item in node]
27
28 if isinstance(node, dict):
29 result = {}
30 for key, value in node.items():
31 result[key] = process_node(value)
32 return result
33
34 # 숫자, 부울 등은 변경하지 않고 그대로 반환
35 return node
36
37 return process_node(json_obj)
38
39# 사용 예
40source_json = {
41 "user": {
42 "name": "제인 스미스",
43 "bio": "소프트웨어 개발자 및 오픈 소스 기여자",
44 "skills": ["JavaScript", "Python", "React"],
45 "active": True,
46 "followers": 245
47 }
48}
49
50translated_json = translate_json_structure(source_json, "ko")
51print(json.dumps(translated_json, indent=2))
52
PHP로 JSON 번역하기
1<?php
2/**
3 * 원래 구조를 보존하면서 JSON 구조를 번역합니다.
4 *
5 * @param mixed $jsonObj 파싱된 JSON 객체
6 * @param string $targetLanguage 대상 언어 코드
7 * @return mixed 번역된 JSON 객체
8 */
9function translateJsonStructure($jsonObj, $targetLanguage) {
10 // 문자열 번역을 위한 도우미 함수
11 function translateString($text, $lang) {
12 // 실제 구현에서는 번역 API를 호출합니다
13 return "[$lang] $text";
14 }
15
16 // 각 노드를 처리하는 재귀 함수
17 function processNode($node, $lang) {
18 if ($node === null) {
19 return null;
20 }
21
22 if (is_string($node)) {
23 return translateString($node, $lang);
24 }
25
26 if (is_array($node)) {
27 // 연관 배열(객체)인지 인덱스 배열인지 확인
28 if (array_keys($node) !== range(0, count($node) - 1)) {
29 // 연관 배열(객체)
30 $result = [];
31 foreach ($node as $key => $value) {
32 $result[$key] = processNode($value, $lang);
33 }
34 return $result;
35 } else {
36 // 인덱스 배열
37 return array_map(function($item) use ($lang) {
38 return processNode($item, $lang);
39 }, $node);
40 }
41 }
42
43 // 숫자, 부울 등은 변경하지 않고 그대로 반환
44 return $node;
45 }
46
47 return processNode($jsonObj, $targetLanguage);
48}
49
50// 사용 예
51$sourceJson = [
52 "company" => [
53 "name" => "글로벌 기술 솔루션",
54 "description" => "혁신적인 소프트웨어 개발 회사",
55 "founded" => 2010,
56 "services" => ["웹 개발", "모바일 앱", "클라우드 솔루션"],
57 "active" => true
58 ]
59];
60
61$translatedJson = translateJsonStructure($sourceJson, "ko");
62echo json_encode($translatedJson, JSON_PRETTY_PRINT);
63?>
64
사용 사례 및 애플리케이션
웹 애플리케이션의 국제화 (i18n)
JSON 구조 보존 번역기는 웹 애플리케이션의 국제화에 특히 유용합니다. 현대 웹 애플리케이션은 종종 JSON 형식으로 로컬화 문자열을 저장하며, 이 도구를 사용하면 개발자가:
- 기존 언어 파일을 번역하여 새로운 로케일을 지원
- 새로운 콘텐츠가 추가될 때 번역 파일 업데이트
- 모든 언어 버전 간의 일관성 보장
- i18next, react-intl 또는 vue-i18n과 같은 i18n 프레임워크와의 호환성 유지
예를 들어, 일반적인 i18n JSON 파일은 다음과 같을 수 있습니다:
1{
2 "common": {
3 "welcome": "우리 애플리케이션에 오신 것을 환영합니다",
4 "login": "로그인",
5 "signup": "회원가입",
6 "errorMessages": {
7 "required": "이 필드는 필수입니다",
8 "invalidEmail": "유효한 이메일 주소를 입력하십시오"
9 }
10 }
11}
12
JSON 구조 보존 번역기를 사용하면 개발자는 애플리케이션에서 기대하는 중첩 구조를 유지하면서 여러 언어에 대한 동등한 파일을 빠르게 생성할 수 있습니다.
API 응답 로컬화
국제 사용자를 위한 API는 종종 로컬화된 응답을 제공해야 합니다. JSON 구조 보존 번역기는 다음을 용이하게 합니다:
- API 응답의 즉각적인 번역
- 미리 번역된 응답 템플릿 생성
- 다국어 API 엔드포인트 테스트
- 로컬화된 JSON 구조 검증
콘텐츠 관리 시스템
콘텐츠 관리 시스템은 종종 콘텐츠를 구조화된 JSON 형식으로 저장합니다. 이 도구는 콘텐츠 관리자에게:
- 메타데이터를 보존하면서 콘텐츠 블록 번역
- 콘텐츠 조각 간의 관계 유지
- 동적 콘텐츠 템플릿이 모든 언어에서 작동하도록 보장
- 특별한 형식이나 구성 매개변수를 보존
문서 번역
기술 문서는 종종 JSON을 구성 예제나 API 참조에 사용합니다. 번역기는 문서 팀이:
- 국제 문서에 대한 예제 코드 조각 번역
- 기술 예제의 정확성 유지
- 모든 언어 버전에서 코드 샘플이 유효하도록 보장
다른 번역 방법과의 비교
기능 | JSON 구조 보존 번역기 | 일반 텍스트 번역기 | 수동 번역 | 번역 관리 시스템 |
---|---|---|---|---|
구조 보존 | ✅ 완벽한 보존 | ❌ 종종 JSON 구조를 깨뜨림 | ✅ 번역가의 기술에 따라 다름 | ⚠️ 시스템에 따라 다름 |
번역 품질 | ⚠️ 자동화 (간단한 콘텐츠에 적합) | ⚠️ 자동화 (맥락 부족할 수 있음) | ✅ 높은 품질의 인간 번역 | ✅ 인간 검토로 높은 품질 |
속도 | ✅ 즉시 | ✅ 즉시 | ❌ 느림 | ⚠️ 보통 |
중첩 구조 처리 | ✅ 우수 | ❌ 불량 | ⚠️ 오류 발생 가능 | ⚠️ 시스템에 따라 다름 |
기술 지식 필요 | ⚠️ 기본 JSON 이해 필요 | ❌ 필요 없음 | ❌ 필요 없음 | ⚠️ 시스템 특정 지식 필요 |
대형 파일에 적합 | ✅ 예 | ⚠️ 제한이 있을 수 있음 | ❌ 시간 소모 | ✅ 예 |
기술적 지식 필요 | ⚠️ 기본 JSON 이해 필요 | ❌ 필요 없음 | ❌ 필요 없음 | ⚠️ 시스템 특정 지식 필요 |
엣지 케이스 처리
순환 참조
JSON은 본래 순환 참조를 지원하지 않지만 일부 자바스크립트 객체에는 이를 포함할 수 있습니다. JSON으로 직렬화되면 이러한 참조는 오류를 발생시킵니다. JSON 구조 보존 번역기는 다음과 같이 처리합니다:
- 탐색 중 순환 참조 감지
- 무한 재귀를 방지하기 위해 방문한 객체 맵 유지
- 순환 참조 오류를 발생시키지 않으면서 구조 보존
비문자 값
번역기는 다양한 데이터 유형을 지능적으로 처리합니다:
- 문자열: 대상 언어로 번역됨
- 숫자: 그대로 보존됨 (예:
42
는42
로 유지) - 부울: 그대로 보존됨 (예:
true
는true
로 유지) - null: 그대로 보존됨 (
null
은null
로 유지) - 객체: 구조가 보존되며 그 안의 문자열 값이 번역됨
- 배열: 구조가 보존되며 그 안의 문자열 값이 번역됨
특수 문자 및 인코딩
번역기는 다음을 적절하게 처리합니다:
- 여러 언어의 유니코드 문자
- 문자열 내 HTML 엔티티
- JSON 문자열 내 이스케이프 시퀀스
- 특별한 형식 문자
대형 JSON 구조
매우 큰 JSON 구조의 경우, 번역기는:
- 재귀 탐색을 사용하여 효율적으로 구조를 처리
- 비문자 값을 복제하지 않고 메모리 효율성을 유지
- 번역 프로세스 중 명확한 피드백 제공
자주 묻는 질문
JSON 구조 보존 번역기란 무엇인가요?
JSON 구조 보존 번역기는 JSON 객체 내의 텍스트 콘텐츠를 번역하면서 원래 구조, 형식 및 비문자 값을 그대로 유지하는 전문 도구입니다. 이 도구는 번역된 JSON이 원본 JSON과 유효하고 기능적으로 동등하게 유지되도록 하며, 문자열 내용만 대상 언어로 변경됩니다.
번역기는 중첩 JSON 객체를 어떻게 처리하나요?
번역기는 재귀 탐색을 사용하여 중첩 JSON 객체를 처리합니다. 모든 중첩 수준을 탐색하면서 각 수준에서 문자열 값을 번역하고 구조, 객체 키 및 비문자 값을 보존합니다. 이를 통해 깊게 중첩된 JSON 객체도 번역 후 원래 구조를 유지합니다.
JSON의 배열을 처리할 수 있나요?
예, 번역기는 JSON의 배열을 완전히 지원합니다. 배열 내 각 요소를 개별적으로 처리하여 문자열 값을 번역하면서 배열 구조와 비문자 요소를 보존합니다. 이는 문자열의 단순 배열뿐만 아니라 혼합 데이터 유형 또는 중첩 객체를 포함하는 복잡한 배열에도 적용됩니다.
번역기가 JSON 키를 수정하나요?
아니요, 번역기는 JSON의 구조를 보존하도록 설계되었으며, 모든 키는 변경되지 않습니다. 문자열 값만 번역되므로 코드가 번역 후에도 동일한 속성 이름을 참조할 수 있습니다.
이 도구는 i18next와 호환되나요?
JSON 구조 보존 번역기는 i18next를 위해 특별히 구축된 것은 아니지만, i18next 및 유사한 국제화 프레임워크와 호환되는 출력을 생성합니다. 번역된 JSON은 이러한 프레임워크에서 기대하는 중첩 구조를 유지하므로 i18next 기반 애플리케이션의 로컬화 파일을 생성하는 데 적합합니다.
번역의 정확성은 어느 정도인가요?
번역기는 자동화된 번역 서비스를 사용하여 일반 콘텐츠에 대해 좋은 결과를 제공하지만, 미묘한 의미나 맥락 특정 용어를 완벽하게 포착하지 못할 수 있습니다. 전문적인 번역 품질을 위해서는 고객 대면 콘텐츠의 경우 인간 번역가가 출력을 검토하고 수정하는 것이 권장됩니다.
비문자 값을 포함한 JSON을 번역할 수 있나요?
예, 번역기는 혼합 콘텐츠를 지능적으로 처리합니다. 문자열 값만 번역하고 숫자, 부울, null 값 및 구조적 요소는 원래 JSON에서 나타나는 그대로 보존합니다. 이를 통해 데이터 무결성이 번역 프로세스 전반에 걸쳐 유지됩니다.
번역 오류를 어떻게 처리하나요?
번역 오류가 발생하면 먼저 입력이 유효한 JSON인지 확인하십시오. 도구는 유효하지 않은 JSON 구문에 대한 오류 메시지를 제공합니다. JSON이 유효하지만 번역이 실패하는 경우 복잡한 구조를 더 작은 부분으로 나누거나 문제가 발생할 수 있는 특이한 문자나 형식을 확인하십시오.
JSON 번역에 크기 제한이 있나요?
웹 기반 도구는 적당한 크기의 JSON 객체를 처리할 수 있지만, 매우 큰 파일(수 MB)은 브라우저에서 성능 문제를 일으킬 수 있습니다. 매우 큰 JSON 구조의 경우, 번역을 위해 더 작은 논리 단위로 나누는 것을 고려하거나 유사한 기능의 서버 측 구현을 사용할 수 있습니다.
한 번에 여러 언어에 대한 JSON 파일을 번역할 수 있나요?
현재 구현은 한 번에 하나의 대상 언어로 번역합니다. 여러 언어에 대해서는 각 대상 언어에 대해 별도의 번역을 수행해야 합니다. 그러나 이 과정은 빠르며 필요한 각 언어에 대해 쉽게 반복할 수 있습니다.
참고 자료
-
"JSON (자바스크립트 객체 표기법)." json.org. 2025년 7월 10일 접속.
-
Ecma International. "표준 ECMA-404: JSON 데이터 교환 구문." ecma-international.org. 2025년 7월 10일 접속.
-
"i18next: 국제화 프레임워크." i18next.com. 2025년 7월 10일 접속.
-
Mozilla Developer Network. "JSON으로 작업하기." developer.mozilla.org. 2025년 7월 10일 접속.
-
W3C. "국제화 (i18n)." w3.org. 2025년 7월 10일 접속.
지금 사용해 보세요
구조를 보존하면서 JSON을 번역할 준비가 되셨나요? 지금 JSON 구조 보존 번역기 도구를 사용하여 데이터 구조의 무결성을 유지하면서 정확한 번역을 빠르게 생성하십시오. JSON을 붙여넣고 대상 언어를 선택한 후 다국어 애플리케이션에 직접 구현할 수 있는 즉각적인 결과를 얻으십시오.
피드백
이 도구에 대한 피드백을 제공하려면 피드백 토스트를 클릭하세요.
관련 도구
귀하의 워크플로에 유용할 수 있는 더 많은 도구를 발견하세요.