콘텐츠로 이동

포맷 인식 번역

yaku는 입력 포맷을 감지하고 구조를 보존하도록 번역 전략을 조정합니다. 키, 코드 블록, URL 등 번역하지 않아야 할 요소는 그대로 유지됩니다.

yaku는 다음 순서로 포맷을 결정합니다:

  1. --format 옵션 — 명시적 재정의: --format json
  2. -f의 파일 확장자.md, .json, .yaml, .yml
  3. 기본값 — 일반 텍스트
확장자감지된 포맷
.md, .markdown, .mdxMarkdown
.jsonJSON
.yaml, .ymlYAML
그 외텍스트

yaku는 전체 Markdown 문서를 구조를 보존하는 추가 규칙과 함께 LLM에 전송합니다:

Terminal window
yaku --to ko -f README.en.md -o README.md

번역되는 것:

  • 본문 텍스트
  • 제목 텍스트
  • 목록 항목 텍스트
  • 링크 표시 텍스트 (예: [이 부분](url))
  • 인용문 텍스트

그대로 유지되는 것:

  • 제목 마커 (#, ##, ###)
  • 코드 블록 (펜스 및 들여쓰기)
  • 인라인 코드 (백틱)
  • 링크 URL 및 이미지 경로
  • 프론트 매터 (--- ... ---)
  • HTML 태그
  • 목록 및 인용문 마커
  • 파일 경로, URL, 이메일 주소

입력 (README.en.md):

# Quick Start
Install the package:
```bash
npm install my-package
```
See the [documentation](https://example.com) for more details.
Terminal window
yaku --to ko -f README.en.md

출력:

# 빠른 시작
패키지를 설치합니다:
```bash
npm install my-package
```
자세한 내용은 [문서](https://example.com)를 참조하세요.

참고: 제목 마커, 코드 블록, URL은 보존됩니다. 본문만 번역됩니다.

yaku는 모든 문자열 값을 추출하고 일괄 번역한 뒤 원래 구조로 재조립합니다:

Terminal window
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
}
}
Terminal window
yaku --to ko -f en.json -o ko.json

출력 (ko.json):

{
"nav": {
"home": "",
"about": "회사 소개",
"contact": "문의하기"
},
"hero": {
"title": "멋진 것을 만들어 보세요",
"subtitle": "제품을 가장 빠르게 출시하는 방법",
"cta": "시작하기"
},
"footer": {
"copyright": "모든 권리 보유",
"version": 2
}
}

키, 구조, 숫자 version 필드가 정확히 보존됩니다.

JSON과 동일하게 작동합니다. 문자열 값을 추출하고 번역한 뒤 재조립합니다:

Terminal window
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: false
Terminal window
yaku --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에 그대로 전송됩니다:

Terminal window
echo "Hello, world" | yaku --to ko
yaku --to ko "Good morning"

구조 분석은 수행되지 않습니다. 짧은 텍스트, 단락 또는 구조화되지 않은 콘텐츠에 사용하세요.

--format으로 자동 감지를 재정의합니다:

Terminal window
# 파일 확장자가 없어도 stdin을 Markdown으로 처리
cat doc.txt | yaku --to ko --format md
# .txt 파일을 YAML로 처리
yaku --to ko -f data.txt --format yaml