구조를 유지하는 JSON 번역기 | 무료 i18n 도구
JSON 파일 안의 각 문자열에 대상 언어 코드를 태그로 붙이는 무료 브라우저 도구입니다. 키, 숫자, 불리언 값, 전체 구조는 그대로 유지되어 소프트웨어 다국어 번역 작업에서 데이터 손상 없이 안전하게 활용할 수 있습니다. 다국어 웹사이트와 앱의 번역 워크플로에 유용합니다.
JSON 구조 보존 번역기
이 도구는 JSON 객체의 구조를 유지하면서 내용을 번역합니다. 왼쪽 패널에 JSON을 붙여넣고, 대상 언어를 선택하면 오른쪽에 번역된 출력을 볼 수 있습니다.
번역된 결과가 여기에 표시됩니다...
사용 방법
- 원본 JSON 필드에 JSON 객체를 붙여넣으세요.
- 드롭다운 메뉴에서 대상 언어를 선택하세요.
- 번역된 JSON이 오른쪽 패널에 자동으로 표시됩니다.
- 복사 버튼을 클릭하여 번역된 JSON을 클립보드에 복사하세요.
문서화
JSON 구조 보존 번역기란 무엇인가?
JSON 구조 보존 번역기는 JSON 문서를 순회하면서 내부의 텍스트 값만 변경하는 도구입니다. 객체 키, 숫자, true/false 값, null은 모두 원래 그대로 유지됩니다. 문자열만 변경됩니다.
이 버전의 도구는 어떤 텍스트도 번역 서비스로 보내지 않습니다. 브라우저에서 전적으로 실행됩니다. 발견하는 각 문자열 앞에 대괄호로 묶은 대상 언어 코드를 원문 앞에 추가합니다. 예를 들어 [es] Hello와 같이 표시합니다. 이를 통해 개발자는 실제 번역 서비스에 연결하기 전에 JSON 파일의 어느 부분이 번역될지 정확히 미리 보고, 처리 후에도 구조가 유지되는지 확인할 수 있습니다.
작동 방식
이 도구는 JSON 트리의 모든 수준에서 반복적으로 다음 규칙 하나를 적용합니다.
- 값이 문자열이면 앞에 대괄호로 묶은 대상 언어 코드를 추가합니다.
text는[code] text가 됩니다. 빈 문자열은""로 그대로 둡니다. - 값이 숫자, true, false 또는 null이면 변경하지 않습니다.
- 값이 배열이면 같은 순서로 모든 항목에 이 규칙을 적용합니다.
- 값이 객체이면 모든 값에 이 규칙을 적용하고, 모든 키는 변경하지 않습니다.
문서 전체가 객체일 필요는 없습니다. JSON 텍스트는 하나의 값일 수 있으므로 배열, 문자열, 숫자, true, false 또는 null만 단독으로 있어도 같은 규칙에 따라 허용되고 처리됩니다.
이 도구는 먼저 입력 JSON의 구문이 유효한지 검사합니다. JSON을 구문 분석할 수 없으면 추측하는 대신 중지하고 오류를 표시합니다.
도구 사용 방법
- 왼쪽의 "Source JSON" 필드에 JSON을 붙여 넣습니다. 객체, 배열 또는 단일 값 모두 사용할 수 있습니다.
- 드롭다운에서 대상 언어를 선택합니다. 스페인어, 프랑스어, 독일어, 이탈리아어, 포르투갈어, 중국어, 일본어, 한국어, 러시아어의 9개 언어를 사용할 수 있습니다.
- 오른쪽 패널이 자동으로 업데이트됩니다. 버튼을 클릭할 필요가 없습니다.
- "Copy"를 클릭하면 결과가 클립보드에 복사됩니다.
- "Clear All"을 클릭하면 두 패널이 초기화되고 처음부터 다시 시작할 수 있습니다.
풀이 예시
입력 JSON:
1{
2 "app": {
3 "title": "My Store",
4 "version": 2,
5 "isBeta": false,
6 "tags": ["sale", "new"]
7 }
8}
9대상 언어로 스페인어(es)를 선택하면 도구는 다음을 생성합니다.
1{
2 "app": {
3 "title": "[es] My Store",
4 "version": 2,
5 "isBeta": false,
6 "tags": [
7 "[es] sale",
8 "[es] new"
9 ]
10 }
11}
12"title"과 "tags"는 키로 그대로 유지되고, 2와 false도 변경되지 않으며, 문자열 값에만 [es] 태그가 추가됩니다. 중첩 구조와 배열 순서는 입력과 동일합니다.
변경되는 부분과 그대로 유지되는 부분
| JSON 요소 | 결과 |
|---|---|
| 문자열 값 | [language code] 접두사가 추가됨 |
| 번호 | 변경되지 않음 |
true / false | 변경되지 않음 |
null | 변경되지 않음 |
| 객체 키 | __proto__처럼 키 이름 자체가 해당 문자열인 경우를 포함해 항상 변경되지 않음 |
| 배열 순서 | 항상 변경되지 않음 |
빈 문자열 "" | 변경되지 않음 |
이는 구조 자체에 의미가 있는 파일에서 특히 중요합니다. 예를 들어 웹 앱에서 사용하는 i18n(국제화) 파일이나, 클라이언트 코드가 키 이름으로 읽는 API 응답이 이에 해당합니다. 번역 중에 "welcomeMessage" 같은 키가 변경되면 welcomeMessage를 조회하는 코드가 작동하지 않습니다. 이 도구는 키를 전혀 변경하지 않으므로 여기서는 그런 위험이 발생하지 않습니다.
흔한 오류
"Invalid JSON format. Please check your input." 붙여 넣은 텍스트가 유효한 JSON이 아닐 때 표시됩니다. 일반적인 원인으로는 항목 사이의 쉼표 누락, 마지막 항목 뒤의 불필요한 쉼표, 큰따옴표 대신 작은따옴표 사용, 문자열 내부의 특수 문자를 이스케이프하지 않은 경우가 있습니다. 먼저 입력을 JSON 검사기로 확인하면 정확한 위치를 찾는 데 도움이 됩니다.
"Translation failed. Please try again." 구문 오류가 아닌 실패가 발생했을 때 표시되는 대체 메시지입니다. 이런 경우는 드뭅니다. 가장 가능성 높은 원인은 입력이 너무 커서 형식이 지정된 결과가 브라우저의 단일 텍스트 조각 길이 제한을 초과하는 것입니다. 매우 큰 파일을 더 작은 부분으로 나누면 이를 피할 수 있습니다.
입력 필드를 비워 두면 자리 표시자 메시지가 표시되며 오류로 처리되지 않습니다. 단일 값 null을 붙여 넣는 것도 오류가 아닙니다. null은 유효한 JSON이고, 도구는 null을 반환합니다.
구조 보존이 중요한 이유
en.json과 fr.json처럼 앱 번역을 저장하는 JSON 파일은 일반적으로 동일한 키를 사용해야 합니다. 그래야 주변 코드가 모든 언어에서 동일한 경로를 조회할 수 있습니다. 예를 들어 user.profile.displayName과 같습니다. 필드 이름으로 읽는 API 응답과 키 이름이 변경되면 배포가 중단될 수 있는 구성 파일도 마찬가지입니다. 번역 가능한 문자열을 표시하면서 구조를 보존하는 것은 해당 문자열을 실제 번역 서비스로 보내거나 번역자가 검토하기 전에 거치는 유용한 첫 단계입니다.
자주 묻는 질문
이 도구는 실제 번역 서비스를 호출하나요? 아니요. 브라우저에서만 실행되며 데이터를 어디에도 보내지 않습니다. 번역된 단어를 생성하는 대신 각 문자열에 대상 언어 코드를 표시합니다.
출력에 [es] Hello가 아니라 Hola가 표시되는 이유는 무엇인가요?
대괄호로 표시된 태그는 현재 버전의 자리 표시자 동작입니다. 실제 번역을 수행하지 않고 어떤 문자열이 어느 언어로 번역될지 보여 줍니다.
객체 키나 숫자가 변경되나요?
아니요. 키, 숫자, true/false, null은 배열 내부를 포함한 모든 중첩 수준에서 변경되지 않고 그대로 통과합니다. 일부 JavaScript 코드가 실수로 삭제하는 __proto__ 같은 다루기 까다로운 키 이름도 마찬가지입니다.
인터넷 연결이 필요한가요? 아니요. 구문 분석과 태그 추가는 브라우저 탭에서 로컬로 수행됩니다.
i18next 또는 이와 유사한 번역 파일에 사용할 수 있나요? 출력은 입력과 동일한 키 구조를 유지하므로 언어 파일 간에 일치하는 키를 요구하는 모든 프레임워크에 맞습니다. 다만 실제로 사용하려면 문자열 값 자체를 실제 번역문으로 바꿔야 합니다.
깊게 중첩된 JSON이나 배열 안의 배열은 어떻게 처리되나요? 이 도구는 깊이에 관계없이 모든 수준과 모든 배열 항목을 처리하며, 매번 같은 규칙을 적용합니다.
참고 문헌
- RFC 8259: JavaScript 객체 표기법(JSON) 데이터 교환 형식, IETF: rfc-editor.org/rfc/rfc8259
- ECMA-404: JSON 데이터 교환 구문, Ecma International: ecma-international.org/publications-and-standards/standards/ecma-404/
- MDN Web Docs, JSON 사용: developer.mozilla.org/en-US/docs/Learn/JavaScript/Objects/JSON