포맷 인식 번역
yaku는 입력 포맷을 감지하고 구조를 보존하도록 번역 전략을 조정합니다. 키, 코드 블록, URL 등 번역하지 않아야 할 요소는 그대로 유지됩니다.
포맷 감지
섹션 제목: “포맷 감지”yaku는 다음 순서로 포맷을 결정합니다:
--format옵션 — 명시적 재정의:--format json-f의 파일 확장자 —.md,.json,.yaml,.yml- 기본값 — 일반 텍스트
| 확장자 | 감지된 포맷 |
|---|---|
.md, .markdown, .mdx | Markdown |
.json | JSON |
.yaml, .yml | YAML |
| 그 외 | 텍스트 |
Markdown
섹션 제목: “Markdown”yaku는 전체 Markdown 문서를 구조를 보존하는 추가 규칙과 함께 LLM에 전송합니다:
yaku --to ko -f README.en.md -o README.md번역되는 것:
- 본문 텍스트
- 제목 텍스트
- 목록 항목 텍스트
- 링크 표시 텍스트 (예:
[이 부분](url)) - 인용문 텍스트
그대로 유지되는 것:
- 제목 마커 (
#,##,###) - 코드 블록 (펜스 및 들여쓰기)
- 인라인 코드 (백틱)
- 링크 URL 및 이미지 경로
- 프론트 매터 (
--- ... ---) - HTML 태그
- 목록 및 인용문 마커
- 파일 경로, URL, 이메일 주소
입력 (README.en.md):
# Quick Start
Install the package:
```bashnpm install my-package```
See the [documentation](https://example.com) for more details.yaku --to ko -f README.en.md출력:
# 빠른 시작
패키지를 설치합니다:
```bashnpm install my-package```
자세한 내용은 [문서](https://example.com)를 참조하세요.참고: 제목 마커, 코드 블록, URL은 보존됩니다. 본문만 번역됩니다.
JSON
섹션 제목: “JSON”yaku는 모든 문자열 값을 추출하고 일괄 번역한 뒤 원래 구조로 재조립합니다:
yaku --to ko -f en.json -o ko.json번역되는 것:
- 문자열 값
그대로 유지되는 것:
- 모든 키
- 숫자, 불리언, null
- 중첩 구조
- 배열 순서
입력 (en.json):
{ "nav": { "home": "Home", "about": "About Us", "contact": "Contact" }, "hero": { "title": "Build something great", "subtitle": "The fastest way to ship your product", "cta": "Get Started" }, "footer": { "copyright": "All rights reserved", "version": 2 }}yaku --to ko -f en.json -o ko.json출력 (ko.json):
{ "nav": { "home": "홈", "about": "회사 소개", "contact": "문의하기" }, "hero": { "title": "멋진 것을 만들어 보세요", "subtitle": "제품을 가장 빠르게 출시하는 방법", "cta": "시작하기" }, "footer": { "copyright": "모든 권리 보유", "version": 2 }}키, 구조, 숫자 version 필드가 정확히 보존됩니다.
YAML
섹션 제목: “YAML”JSON과 동일하게 작동합니다. 문자열 값을 추출하고 번역한 뒤 재조립합니다:
yaku --to ko -f en.yaml -o ko.yaml입력 (en.yaml):
app: name: My Application description: A task management tool
messages: welcome: Welcome back! error: Something went wrong confirm: Are you sure?
settings: max_retries: 3 debug: falseyaku --to ko -f en.yaml -o ko.yaml출력 (ko.yaml):
app: name: 내 애플리케이션 description: 작업 관리 도구
messages: welcome: 다시 오신 것을 환영합니다! error: 문제가 발생했습니다 confirm: 정말 실행하시겠습니까?
settings: max_retries: 3 debug: false키, 정수, 불리언은 보존됩니다. 문자열 값만 번역됩니다. "dark"이나 "urgent" 같은 짧은 단일 단어 값도 포함됩니다. 코드 식별자(camelCase, snake_case, ALL_CAPS)와 로케일 코드(예: "en", "zh-TW")는 그대로 유지됩니다.
일반 텍스트
섹션 제목: “일반 텍스트”기본 포맷입니다. 전체 입력이 LLM에 그대로 전송됩니다:
echo "Hello, world" | yaku --to koyaku --to ko "Good morning"구조 분석은 수행되지 않습니다. 짧은 텍스트, 단락 또는 구조화되지 않은 콘텐츠에 사용하세요.
포맷 강제 지정
섹션 제목: “포맷 강제 지정”--format으로 자동 감지를 재정의합니다:
# 파일 확장자가 없어도 stdin을 Markdown으로 처리cat doc.txt | yaku --to ko --format md
# .txt 파일을 YAML로 처리yaku --to ko -f data.txt --format yaml