대규모 프로젝트
Lingo.dev CLI는 수십만 개의 번역 키, 다양한 언어 및 복잡한 콘텐츠 구조를 가진 대규모 현지화 프로젝트를 위한 성능 최적화 및 워크플로우 전략을 제공합니다.
방대한 콘텐츠를 가진 프로젝트의 경우, CLI는 병렬 처리 및 CI/CD 통합을 통해 대규모 번역을 효율적으로 처리합니다.
병렬 처리
Lingo.dev CLI는 여러 번역 작업을 동시에 처리하는 병렬 워커를 사용하여 대규모 프로젝트를 더 빠르게 처리합니다.
병렬 처리 활성화:
npx lingo.dev@latest run
이는 번역 작업을 여러 워커에 분산시켜 대규모 프로젝트의 처리 시간을 크게 단축합니다.
워커 동시성 제어:
npx lingo.dev@latest run --concurrency 16
기본 동시성은 10개 워커입니다. 값이 높을수록 더 많은 작업을 동시에 처리하지만 API 속도 제한에 도달할 수 있습니다.
병렬 처리 작동 방식
CLI는 파일 손상을 방지하면서 번역 작업을 동시에 처리하는 워커 풀을 생성합니다:
- 작업 분배 — 현지화를 로케일 및 파일별 개별 작업으로 분할
- 워커 할당 — 부하 분산을 사용하여 가용 워커에 작업 할당
- 경쟁 조건 방지 — 여러 워커가 동일한 파일에 접근할 때 충돌을 방지하기 위해 파일 시스템 잠금 사용
- 진행 상황 추적 — 모든 워커의 실시간 진행 상황 보고
대규모 프로젝트 예시:
// 10개 언어에 걸쳐 50개 파일이 있는 프로젝트 = 500개 번역 작업
{
"locale": {
"source": "en",
"targets": ["es", "fr", "de", "ja", "zh", "ko", "pt", "it", "ru", "ar"]
},
"buckets": {
"json": {
"include": ["src/locales/[locale]/*.json"]
},
"markdown": {
"include": ["docs/[locale]/*.md"]
}
}
}
병렬 처리를 통해 이 500개의 작업은 순차적으로 처리하는 대신 워커들에게 분산됩니다.
대상 지정 처리
대규모 프로젝트의 경우, 모든 것을 한 번에 처리하는 대신 특정 부분만 처리할 수 있습니다:
특정 언어 처리:
npx lingo.dev@latest run --locale es --locale fr
특정 파일 유형 처리:
npx lingo.dev@latest run --bucket json
특정 파일 처리:
npx lingo.dev@latest run --file components/header
이러한 선택적 처리는 개발 중 점진적 업데이트에 유용합니다.
CI/CD 통합
대규모 프로젝트는 GitHub Actions 또는 다른 CI/CD 시스템을 사용한 자동화된 번역 워크플로우의 이점을 얻을 수 있습니다.
GitHub Actions 워크플로우:
name: Lingo.dev Localization
on:
workflow_dispatch:
permissions:
contents: write
pull-requests: write
jobs:
localize:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- uses: lingodotdev/lingo.dev@main
with:
api-key: ${{ secrets.LINGODOTDEV_API_KEY }}
이 워크플로우는 전용 브랜치에서 번역을 처리하여 번역 작업을 개발과 분리합니다.
브랜치 기반 워크플로우
대규모 프로젝트의 경우, 번역 작업을 위한 전용 브랜치를 사용하세요:
번역 브랜치 생성:
git checkout main
git checkout -b localize/content-update
# 콘텐츠 변경하기
git push -u origin localize/content-update
GitHub Actions를 통한 번역 트리거:
- 저장소 Actions 탭으로 이동
- "Lingo.dev Localization" 워크플로우 선택
- 번역 브랜치에서 워크플로우 실행
- 번역된 콘텐츠 검토 및 병합
이 접근 방식은 콘텐츠 변경과 번역 처리 사이에 명확한 분리를 제공합니다.
성능 고려사항
시스템 리소스:
- 병렬 처리는 더 많은 CPU와 메모리를 사용합니다
- 높은 동시성 설정에서 시스템 성능을 모니터링하세요
- 클라우드 CI/CD 러너는 병렬 워크로드를 효율적으로 처리합니다
API 속도 제한:
- 높은 동시성은 속도 제한을 유발할 수 있습니다
- 기본 설정으로 시작하여 성능에 따라 조정하세요
- Lingo.dev 엔진은 속도 제한을 자동으로 처리합니다
파일 시스템:
- 대규모 프로젝트는 많은 번역 파일을 생성합니다
- 필요한 경우 임시 파일에 .gitignore를 사용하세요
- 콘텐츠 추적을 위해
i18n.lock
파일을 커밋하세요
프로젝트 구성
버킷 분리:
{
"buckets": {
"app": {
"include": ["src/locales/[locale].json"]
},
"marketing": {
"include": ["marketing/[locale]/*.json"]
},
"docs": {
"include": ["docs/[locale]/*.md"]
}
}
}
분리된 버킷을 통해 다양한 콘텐츠 영역에 대한 타겟팅된 처리가 가능합니다.
파일 구조:
project/
src/locales/ # 애플리케이션 콘텐츠
marketing/ # 마케팅 콘텐츠
docs/ # 문서
i18n.json # 구성
i18n.lock # 콘텐츠 추적
체계적인 구조는 대규모 프로젝트를 관리하기 쉽게 만들고 선택적 처리를 가능하게 합니다.
확장 전략
점진적 처리:
- 락파일을 사용하여 변경된 콘텐츠만 처리
- 필요에 따라 특정 언어 또는 버킷 업데이트
- CI/CD와 결합하여 자동화된 점진적 업데이트 구현
팀 워크플로우:
- 협업을 위한 브랜치 기반 번역 사용
- 콘텐츠 변경과 번역 작업 분리
- 프로덕션에 병합하기 전 번역 검토
리소스 최적화:
- 시스템 성능에 따라 동시성 조정
- 대규모 처리 워크로드에 클라우드 러너 활용
- 처리 시간 모니터링 및 버킷 구성 최적화