run 명령은 번역 작업을 워커 풀에 분산해 동시에 처리합니다. 각 로캘/파일 조합은 하나의 독립적인 작업이 되며, 워커들이 이를 병렬로 처리합니다.
사용법#
bash
# Default concurrency (10 workers)
npx lingo.dev@latest run
# Custom concurrency
npx lingo.dev@latest run --concurrency 20작동 방식#
- 작업 생성 - CLI가
i18n.json을 분석해 각 로캘/파일 조합별로 개별 작업을 생성합니다 - 워커 분배 - 작업은 로드 밸런싱을 통해 사용 가능한 워커에 할당됩니다
- 동시 처리 - 워커가 번역을 동시에 수행하고, 파일 시스템 잠금이 쓰기 충돌을 방지합니다
- 결과 집계 - 완료된 번역은 대상 파일에 안전하게 기록됩니다
대상 지정 옵션#
run 명령의 모든 대상 지정 옵션은 병렬 처리에서도 사용할 수 있습니다:
| 옵션 | 설명 |
|---|---|
--target-locale es | 특정 대상 언어 처리 |
--source-locale en | 소스 로캘 재정의 |
--bucket json | 특정 버킷 유형 처리 |
--file components/header | 특정 파일 처리(glob 패턴 지원) |
--key welcome.title | 특정 키 처리(glob 패턴 지원) |
--force | lockfile을 무시하고 전체를 다시 번역 |
--frozen | 번역이 필요한 콘텐츠가 하나라도 있으면 실패 처리 |
--concurrency 20 | 동시 실행할 워커 수 설정 |
자동 캐싱#
Lingo.dev API를 사용할 때 큰 로캘 파일은 여러 청크로 나뉩니다. 각 청크가 API에서 반환될 때마다 대상 파일이 순차적으로 채워집니다. 프로세스가 중단되더라도 다음 실행에서 중단된 지점부터 이어서 시작합니다.
다시 번역하려면 먼저 purge를 실행한 뒤, --force 없이 run를 사용하세요. 이렇게 하면 run --force보다 더 효율적으로 내장 캐싱 메커니즘을 활용할 수 있습니다.
안전성#
워커 풀은 다음과 같은 방식으로 파일 손상을 방지합니다:
- I/O 동기화 - 파일 시스템 작업은 파일별로 직렬화됩니다
- Lockfile 보호 - 원자적 작업으로
i18n.lock의 동시 손상을 방지합니다 - 트랜잭션 처리 - 각 작업은 완전히 성공하거나 깔끔하게 실패합니다
