구조를 유지하는 JSON 번역기 | 무료 i18n 도구
JSON 파일 안의 각 문자열에 대상 언어 코드를 태그로 붙이는 무료 브라우저 도구입니다. 키, 숫자, 불리언 값, 전체 구조는 그대로 유지되어 소프트웨어 다국어 번역 작업에서 데이터 손상 없이 안전하게 활용할 수 있습니다. 다국어 웹사이트와 앱의 번역 워크플로에 유용합니다.
JSON 구조 보존 번역기
이 도구는 JSON 객체의 구조를 유지하면서 내용을 번역합니다. 왼쪽 패널에 JSON을 붙여넣고, 대상 언어를 선택하면 오른쪽에 번역된 출력을 볼 수 있습니다.
번역된 결과가 여기에 표시됩니다...
사용 방법
- 원본 JSON 필드에 JSON 객체를 붙여넣으세요.
- 드롭다운 메뉴에서 대상 언어를 선택하세요.
- 번역된 JSON이 오른쪽 패널에 자동으로 표시됩니다.
- 복사 버튼을 클릭하여 번역된 JSON을 클립보드에 복사하세요.
문서화
JSON 구조 보존 번역기란 무엇인가?
구글 번역에 JSON을 복사했다가 깨진 키, 누락된 대괄호, 또는 망가진 구문을 경험해본 적 있나요? 바로 이 도구가 그 문제를 해결합니다.
JSON 구조 보존 번역기는 JSON 객체 내부의 문자열 값을 다른 언어로 변환하면서 다른 모든 것은 그대로 유지합니다 - 키는 동일하게 유지되고, 숫자는 숫자로, 부울은 부울로 남으며, 중첩된 구조는 무너지지 않습니다.
이것이 일반 번역 도구와 다른 점은 다음과 같습니다: 50개 이상의 중첩된 키가 있는 일반적인 i18n 파일을 번역할 때, 코드가 여전히 스페인어, 프랑스어 또는 일본어로 user.profile.displayName을 참조할 수 있도록 구조를 동일하게 유지해야 합니다. 구조가 깨지면 수 시간 동안 디버깅하게 됩니다.
이 도구는 재귀적 순회를 자동으로 처리하여 어떤 문자열을 번역해야 하는지, 그리고 API 키, 구성 값 또는 숫자 ID와 같은 요소는 그대로 유지해야 하는지 식별합니다.
JSON 구조 보존 작동 방식
구조 보존의 중요성
JSON 번역 작업 시, 일반적으로 다음과 같은 시나리오를 다룹니다:
- i18n 파일 앱에서
en.json과fr.json이 동일한 키를 가져야 하는 경우 - API 응답이 클라이언트 파싱을 위해 언어 간 일관된 구조를 필요로 하는 경우
- 구성 파일에서 키 이름 변경이 전체 애플리케이션을 중단시키는 경우
- 데이터베이스 내보내기에서 관계가 특정 필드 이름에 의존하는 경우
과제: JSON은 단순한 텍스트가 아니라 코드가 의존하는 구조화된 데이터입니다. 번역 중 "userName"을 "nombreUsuario"로 변경하면 앱에서 undefined 오류가 발생합니다.
번역 프로세스 작동 방식
후드 아래에서 JSON 번역 시 다음과 같은 일이 발생합니다:
1. 구문 분석 및 검증 도구는 먼저 JSON 구문을 검증합니다. 쉼표가 누락되거나 대괄호가 추가되면 번역 시작 전에 명확한 오류 메시지를 받게 됩니다 - 손상된 출력을 방지합니다.
2. 재귀적 순회 루트부터 시작하여 알고리즘은 JSON 트리의 모든 노드를 순회합니다. 각 요소에 대해 데이터 유형을 확인합니다:
- 문자열? 번역 대기열에 추가
- 숫자, 부울, null? 완전히 건너뜀
- 객체 또는 배열? 재귀적으로 들어감
3. 유형 안전 번역
문자열 값만 번역 API로 전송됩니다. "quantity": 42는 42로 유지되며 "cuarenta y dos"가 되지 않습니다. "isActive": true는 true로 유지되며 "verdadero"가 되지 않습니다.
4. 키 보존
모든 객체 키는 원래 언어로 유지됩니다. 이는 translations.header.welcomeMessage가 모든 언어 파일에서 동일한 경로여야 하기 때문에 중요합니다.
5. 구조 재조립 번역된 문자열은 모든 중첩 수준, 배열 인덱스, 객체 계층을 유지하면서 정확히 동일한 위치에 삽입됩니다.
일반적인 함정: 일부 개발자는 객체를 JSON.stringify()하고, 전체 문자열을 번역한 후 다시 구문 분석하려고 시도합니다. 이는 번역기가 키, 대괄호, 구문을 수정하기 때문에 중단됩니다. 재귀적 접근 방식은 이를 완전히 방지합니다.
JSON 구조 보존 번역기 사용하기
단계별 가이드
1. JSON 붙여넣기 JSON 객체를 복사하여 왼쪽 패널에 붙여넣습니다. 이 도구는 5개의 키를 가진 간단한 객체든 배열과 여러 레벨의 중첩된 구조든 모든 유효한 JSON을 처리할 수 있습니다.
2. 대상 언어 선택 언어 드롭다운에서 선택: 스페인어, 프랑스어, 독일어, 이탈리아어, 포르투갈어, 중국어, 일본어, 한국어, 러시아어 등. i18next 프로젝트용으로 번역하는 경우, 프레임워크에서 예상하는 언어 코드와 일치시키세요.
3. 즉시 번역 번역된 출력이 자동으로 오른쪽 패널에 나타납니다. "번역" 버튼이 필요 없으며, 유효한 JSON과 선택된 언어가 있으면 즉시 처리됩니다.
4. 복사 및 사용 "복사" 버튼을 클릭하여 번역된 JSON을 가져옵니다. 프로젝트에 바로 붙여넣을 수 있으며 정리할 필요가 없습니다.
5. 다음 번역을 위해 지우기 다른 파일을 번역할 준비가 되면 "모두 지우기"를 누릅니다. 도구가 즉시 두 패널을 초기화합니다.
일반적인 문제 및 해결 방법
"잘못된 JSON 형식" 오류 구문 문제가 있을 때 이 메시지가 표시됩니다. 일반적인 원인:
- 키-값 쌍 사이에 쉼표 누락
- 마지막 항목 뒤의 trailing 쉼표 (JavaScript에서는 유효하지만 JSON에서는 아님)
- 큰따옴표 대신 작은따옴표 사용
- 문자열의 이스케이프되지 않은 특수 문자
빠른 해결: JSON을 JSONLint와 같은 검증기에 먼저 통과시키세요.
자동으로 번역 실패 출력 패널이 비어 있는 경우:
- 인터넷 연결 확인 - 번역에는 API 접근이 필요합니다
- 대상 언어를 선택했는지 확인
- 문제를 분리하기 위해 작은 JSON 조각으로 시도해보세요
번역의 예상치 못한 결과 기계 번역은 표준 문구에는 잘 작동하지만 다음에서는 어려움을 겪습니다:
- 기술 용어 또는 특정 도메인 용어
- 브랜드 이름 (대개 번역되지 않은 상태로 유지해야 함)
{{username}}또는%s와 같은 자리 표시자 구문
프로덕션 애플리케이션의 경우, 이 도구를 첫 번째 패스로 사용하고, 도메인별 또는 고객 대면 콘텐츠는 원어민이 검토하도록 하세요.
더 나은 결과를 위한 프로 팁
기술 문자열 분리 JSON에 사용자 대면 텍스트와 기술 식별자가 혼합된 경우, 분리를 고려하세요. 예:
1{
2 "display": {"welcome": "다시 오신 것을 환영합니다"},
3 "config": {"apiKey": "abc123", "endpoint": "https://api.example.com"}
4}
5config 값을 실수로 처리하지 않도록 display 객체를 별도로 번역하세요.
문자열에 컨텍스트 사용 "제출"은 컨텍스트에 따라 다르게 번역될 수 있습니다. "양식 제출" 또는 "결제 제출"은 번역자(인간 또는 기계)에게 더 정확한 결과를 위한 더 나은 컨텍스트를 제공합니다.
실제 데이터로 테스트 500개 이상의 키를 가진 전체 i18n 파일을 번역하기 전에, 모든 데이터 유형(문자열, 숫자, 중첩된 객체, 배열)을 포함하는 작은 샘플로 테스트하세요.
코드 예시
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, "es");
48console.log(JSON.stringify(translatedJson, null, 2));
49Python으로 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: 대상 언어 코드 (예: 'es', '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": ["자바스크립트", "파이썬", "리액트"],
45 "active": True,
46 "followers": 245
47 }
48}
49
50translated_json = translate_json_structure(source_json, "fr")
51print(json.dumps(translated_json, indent=2))
52PHP로 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, "de");
62echo json_encode($translatedJson, JSON_PRETTY_PRINT);
63?>
64실제 사용 사례
웹 애플리케이션 i18n 파일
Next.js, React, Vue와 같은 최신 프레임워크는 대부분 JSON 형식으로 번역을 저장합니다. 앱에 새 언어를 추가해야 할 때, 수동으로 각 키를 복사-붙여넣기하고 번역하는 (오류가 발생하기 쉬운) 방법 대신 이 도구를 사용하여 몇 분 만에 초안을 생성할 수 있습니다.
실제 시나리오: 앱에 중첩된 카테고리(내비게이션, 양식, 오류 메시지, 툴팁)에 걸쳐 200개 이상의 번역 키가 있는 en.json이 있습니다. 다음 스프린트까지 프랑스어와 독일어 버전이 필요합니다.
입력 (en.json):
1{
2 "common": {
3 "welcome": "Welcome to our application",
4 "login": "Log in",
5 "signup": "Sign up",
6 "errorMessages": {
7 "required": "This field is required",
8 "invalidEmail": "Please enter a valid email address"
9 }
10 }
11}
12프랑스어로 번역하여 동일한 구조의 fr.json을 얻습니다. 코드는 여전히 t('common.errorMessages.required')를 참조합니다.
제가 잘 작동한다고 발견한 방법: 이 도구로 번역을 생성한 후, 이중 언어 사용 팀원이 기술 용어와 버튼 레이블을 확인합니다. 이를 통해 "제출"이 "양식 제출" vs "결제 제출"에 따라 다른 번역이 필요한 경우를 포착할 수 있습니다.
API 응답 현지화
여러 국가에 서비스를 제공하는 API를 구축하고 있나요? 언어 간 일관된 응답 구조가 필요합니다. 알림 API는 다음과 같이 반환할 수 있습니다:
1{
2 "status": "success",
3 "notification": {
4 "title": "Order Shipped",
5 "message": "Your order #12345 has been shipped",
6 "priority": 1,
7 "timestamp": 1678901234
8 }
9}
10모바일 앱은 notification.title과 notification.message를 구문 분석합니다. 프랑스어 번역이 키 구조를 변경하면 프랑스 사용자를 위한 앱이 중단됩니다.
이 도구는 모든 언어에서 notification.title이 notification.title로 유지되도록 하며, 문자열 값만 번역됩니다. 클라이언트 코드는 모든 로케일에서 동일하게 작동합니다.
주의할 제한 사항: 자동 번역은 도메인을 이해하지 못합니다. 전자상거래 컨텍스트의 "배송"은 물류 또는 해상 컨텍스트와 다르게 번역될 수 있습니다. 고객 대면 API의 경우, 배포 전 출력을 검토하세요.
헤드리스 CMS 콘텐츠 번역
Contentful이나 Strapi와 같은 헤드리스 CMS 플랫폼은 종종 콘텐츠를 JSON으로 내보냅니다. 작성자, 태그, 대표 이미지 URL, 게시 날짜와 함께 50개의 블로그 포스트가 있을 때, 메타데이터를 건드리지 않고 본문과 제목을 번역하고 싶습니다.
일반적인 내보내기에는 콘텐츠 문자열과 구성이 포함됩니다:
- 콘텐츠: 기사 본문, 헤드라인, 발췌
- 구조: 작성자 ID, 이미지 경로, 카테고리 슬러그, 타임스탬프
수동 번역은 technology에서 tecnología로 변경되어 라우팅을 중단할 위험이 있습니다. 구조를 유지하는 번역은 콘텐츠 필드만 처리합니다.
다중 지역 배포를 위한 구성 파일
지역에 걸쳐 배포하나요? 구성 파일에 엔드포인트, 자격 증명, 기능 플래그는 그대로 두고 현지화된 문자열이 필요할 수 있습니다:
1{
2 "region": "eu-west",
3 "welcomeMessage": "Welcome to our service",
4 "endpoint": "https://api.eu.example.com",
5 "retryAttempts": 3,
6 "features": {"darkMode": true}
7}
8endpoint, retryAttempts, features는 그대로 두고 welcomeMessage를 독일어로 번역합니다.
번역 접근 방식 비교
| 방법 | 가장 적합한 상황 | 속도 | 정확성 | 구조 안전성 | 비용 |
|---|---|---|---|---|---|
| 이 도구 | 빠른 i18n 파일 생성, 프로토타입, 내부 도구 | 즉시 | 표준 콘텐츠에 적합 | 100% 보존 | 무료 |
| 구글 번역 (복사/붙여넣기) | 단일 문구, 비기술적 텍스트 | 즉시 | 다양 | JSON 깨짐 | 무료 |
| 전문 번역 | 고객 대면 콘텐츠, 법적 문서, 마케팅 | 며칠 | 탁월 | 수동 작업 필요 | $0.08-0.15/단어 |
| 번역 관리 시스템 (Lokalise, Phrase) | 엔터프라이즈 앱, 협업 워크플로 | 몇 시간-며칠 | 검토 포함 탁월 | 내장 JSON 지원 | $$$+ |
이 도구 사용 시기: 초기 단계 프로젝트, 검토를 위한 초안 생성, 완벽한 번역이 중요하지 않은 내부 애플리케이션.
전문 번역에 투자할 시기: 고객 대면 콘텐츠, 법적/규정 준수 텍스트, 브랜드 메시징, 또는 문화적 뉘앙스가 속도보다 중요한 경우.
기술적 고려사항 및 엣지 케이스
번역되는 내용 (그리고 되지 않는 내용)
도구는 타입 검사를 사용하여 무엇을 번역할지 결정합니다:
✅ 번역됨:
- 문자열 값:
"Welcome"→"환영합니다" - 배열의 문자열:
["Hello", "World"]→["안녕하세요", "세계"] - 모든 중첩 수준의 문자열
❌ 번역되지 않음:
- 숫자:
42,3.14,-10은 변경되지 않음 - 부울:
true와false는 그대로 유지 - Null:
null은 그대로null - 객체 키:
"userName"과 같은 키는 그대로"userName" - 빈 문자열:
""는 그대로 유지
특수 문자 처리
유니코드 및 이모지 도구는 UTF-8을 제대로 처리하므로 이모지와 비 라틴 문자도 잘 작동합니다:
1{"greeting": "👋 Hello"}
2한국어로 번역:
1{"greeting": "👋 안녕하세요"}
2이스케이프 시퀀스
JSON 이스케이프 시퀀스(\n, \t, \")는 보존됩니다:
1{"message": "Line 1\nLine 2"}
2\n은 번역 중에도 그대로 유지됩니다.
플레이스홀더
잠재적인 문제: 문자열에 {username} 또는 %s와 같은 플레이스홀더가 포함된 경우, 번역되거나 재정렬될 수 있습니다. 아랍어나 히브리어와 같은 오른쪽에서 왼쪽으로 쓰는 언어에서는 플레이스홀더 위치가 변경될 수 있으므로 주의 깊게 검토해야 합니다.
대용량 JSON 성능
웹 기반 도구는 일반적인 i18n 파일(500KB 미만)을 문제없이 처리합니다. 대용량 데이터셋의 경우:
- 500KB - 2MB: 브라우저에서 작동하지만 느릴 수 있음
- 2MB 초과: 논리적 청크(예: 기능 또는 섹션별 별도 파일)로 분할하는 것을 고려하세요
브라우저 메모리가 알고리즘 자체보다 제한 요인입니다.
자주 묻는 질문
Google 번역에 JSON을 붙여넣는 것과 어떻게 다른가요?
Google 번역은 JSON을 일반 텍스트로 취급하여 키, 구문 문자, 숫자 값을 포함한 모든 것을 번역하려고 합니다. 다음과 같은 출력을 얻게 됩니다:
1{ "nom d'utilisateur": "Jean Dupont", "âge": "vingt-cinq" }
2"username"이 "nom d'utilisateur"로 변경되고 숫자 25가 문자열 "vingt-cinq"로 변경된 것을 주목하세요? 코드가 즉시 중단됩니다.
이 도구는 JSON 구조를 이해하고 문자열 값만 번역하며 키와 다른 데이터 유형은 그대로 유지합니다.
배열이 있는 깊이 중첩된 JSON도 처리할 수 있나요?
네. 재귀 알고리즘은 중첩의 모든 수준을 처리합니다:
1{
2 "users": [
3 {"name": "John", "roles": ["admin", "editor"]},
4 {"name": "Jane", "roles": ["viewer"]}
5 ]
6}
7정확한 구조를 유지하면서 모든 문자열 값("John", "Jane", "admin", "editor", "viewer")을 번역합니다.
영어와 이미 번역된 내용이 모두 있는 JSON의 경우는 어떻게 되나요?
이 도구는 발견되는 모든 문자열을 번역하며, 일부가 이미 대상 언어로 되어 있더라도 마찬가지입니다. 기존 번역 파일에 새 키를 추가하는 경우, 새 섹션만 별도로 번역한 다음 결과를 병합하세요.
i18next 또는 react-intl 파일에 사용할 수 있나요?
물론입니다. 출력 구조는 이러한 프레임워크에서 예상하는 형식과 일치합니다. i18next JSON 파일이:
1{"translation": {"welcome": "Hello", "goodbye": "Goodbye"}}
2다음과 같이 변환됩니다:
1{"translation": {"welcome": "Hola", "goodbye": "Adiós"}}
2t('translation.welcome') 호출은 변경되지 않고 작동합니다.
기술 콘텐츠에 대한 자동 번역의 정확성은 어떤가요?
컨텍스트에 따라 다릅니다:
- 일반 UI 텍스트: "저장", "취소", "제출" → 대개 정확함
- 기술 용어: "webhook", "OAuth2", "idempotent" → 잘못 번역되거나 그대로 유지될 수 있음
- 도메인별 용어: "환자 기록"(의료) vs "환자"(인내) → 컨텍스트를 놓치는 경우가 많음
프로덕션 앱의 경우, 초기 번역으로 사용하고 기술 및 도메인별 용어를 누군가 검토하세요.
다른 문자 세트(중국어, 아랍어, 러시아어)는 어떻게 처리되나요?
이 도구는 유니코드를 제대로 처리하므로 모든 문자 세트가 작동합니다. 주의할 점: 아랍어와 히브리어는 오른쪽에서 왼쪽(RTL)이므로 번역된 문자열의 자리표시자 표시에 영향을 줄 수 있습니다. JSON 구조는 정확하게 유지되지만, 가독성을 위해 번역된 텍스트를 검토하세요.
내 서식(들여쓰기, 줄바꿈)을 유지할 수 있나요?
출력은 유효한 JSON이지만, 서식(공백, 들여쓰기)은 입력과 다를 수 있습니다. 특정 서식이 필요한 경우, 원하는 설정으로 JSON 포맷터를 통해 출력을 실행하세요.
URL이나 API 키와 같은 구성 값을 번역할 수 있나요?
이 도구는 URL 및 구성 값을 포함한 모든 문자열을 번역합니다. 이를 방지하려면:
- JSON을 사용자 대면 콘텐츠와 구성으로 분할
- 콘텐츠 섹션만 번역
- 구성은 번역하지 않고 유지
더 좋은 방법은 처음부터 번역 가능한 콘텐츠와 기술적 값을 분리하여 파일을 구성하는 것입니다.
무료인가요? 속도 제한이 있나요?
웹 기반 도구는 일반적인 사용에 대해 무료입니다. 매우 대량의 번역(분당 수백 개 파일)은 기본 번역 서비스의 속도 제한에 도달할 수 있습니다. 대부분의 개발 워크플로우에서는 제한에 도달하지 않을 것입니다.
참고 자료 및 추가 읽기 자료
JSON 구조, 국제화 표준 및 모범 사례에 대한 심층적인 이해를 위해:
-
ECMA-404: JSON 데이터 교환 구문 - 표준 형식을 정의하는 Ecma International의 공식 JSON 사양: ecma-international.org/publications-and-standards/standards/ecma-404/
-
MDN 웹 문서: JSON 작업 - JSON 파싱, 문자열화 및 구조에 대한 Mozilla의 포괄적인 가이드: developer.mozilla.org/en-US/docs/Learn/JavaScript/Objects/JSON
-
W3C 국제화(i18n) 활동 - 웹 국제화를 위한 표준 및 모범 사례: w3.org/International/
-
RFC 8259: JSON 데이터 교환 형식 - JSON 구문 및 의미론에 대한 IETF 사양: datatracker.ietf.org/doc/html/rfc8259
JSON 파일 번역 시작하기
다국어 애플리케이션을 위한 번역 파일을 빠르게 생성해야 하나요? JSON을 붙여넣고, 대상 언어를 선택한 후, 즉시 구조를 유지하는 번역을 받으세요. i18next, react-intl, vue-i18n 및 일관된 JSON 구조를 기대하는 모든 프레임워크와 호환됩니다.
번역 시작하기: