대규모 프로젝트
Lingo.dev CLI는 수십만 개의 번역 키, 여러 언어 및 복잡한 콘텐츠 구조를 가진 대규모 로컬라이제이션 프로젝트를 위한 성능 최적화 및 워크플로 전략을 제공합니다.
광범위한 콘텐츠를 가진 프로젝트의 경우, CLI는 병렬 처리 및 CI/CD 통합을 제공하여 대규모 번역을 효율적으로 처리합니다.
병렬 처리
Lingo.dev CLI는 여러 번역 작업을 동시에 처리하는 병렬 워커를 사용하여 대규모 프로젝트를 더 빠르게 처리합니다.
병렬 처리 활성화:
npx lingo.dev@latest run
이는 번역 작업을 여러 워커에 분산시켜 대규모 프로젝트의 처리 시간을 크게 단축합니다.
워커 동시성 제어:
npx lingo.dev@latest run --concurrency 16
기본 동시성은 10개의 워커입니다. 더 높은 값은 더 많은 작업을 동시에 처리하지만 API 속도 제한에 도달할 수 있습니다.
병렬 처리 작동 방식
CLI는 파일 손상을 방지하면서 번역 작업을 동시에 처리하는 워커 풀을 생성합니다:
- 작업 분산 — 로컬라이제이션을 로케일 및 파일별 개별 작업으로 분할
- 워커 할당 — 로드 밸런싱을 사용하여 사용 가능한 워커에 작업 할당
- 경쟁 조건 방지 — 여러 워커가 동일한 파일에 액세스할 때 충돌을 방지하기 위해 파일 시스템 잠금 사용
- 진행 상황 추적 — 모든 워커에 걸쳐 실시간 진행 상황 보고
대규모 프로젝트 예시:
// Project with 50 files across 10 languages = 500 translation tasks
{
"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 --target-locale es --target-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
# Make content changes
git push -u origin localize/content-update
GitHub Actions를 통한 번역 트리거:
- 리포지토리 Actions 탭으로 이동
- "Lingo.dev Localization" 워크플로우 선택
- 번역 브랜치에서 워크플로우 실행
- 번역된 콘텐츠 검토 및 병합
이 접근 방식은 콘텐츠 변경과 번역 처리를 명확하게 분리합니다.
성능 고려사항
시스템 리소스:
- 병렬 처리는 더 많은 CPU와 메모리를 사용합니다
- 높은 동시성 설정으로 시스템 성능을 모니터링하세요
- 클라우드 CI/CD 러너는 병렬 워크로드를 효율적으로 처리합니다
API 속도 제한:
- 높은 동시성은 속도 제한을 트리거할 수 있습니다
- 기본 설정으로 시작하여 성능에 따라 조정하세요
- Lingo.dev Engine은 속도 제한을 자동으로 처리합니다
파일 시스템:
- 대규모 프로젝트는 많은 번역 파일을 생성합니다
- 필요한 경우 임시 파일에 .gitignore를 사용하세요
- 콘텐츠 추적을 위해
i18n.lock파일을 커밋하세요
프로젝트 구성
버킷 분리:
{
"buckets": {
"app": {
"include": ["src/locales/[locale].json"]
},
"marketing": {
"include": ["marketing/[locale]/*.json"]
},
"docs": {
"include": ["docs/[locale]/*.md"]
}
}
}
별도의 버킷을 사용하면 다양한 콘텐츠 영역을 대상으로 처리할 수 있습니다.
파일 구조:
project/
src/locales/ # Application content
marketing/ # Marketing content
docs/ # Documentation
i18n.json # Configuration
i18n.lock # Content tracking
체계적인 구조는 대규모 프로젝트를 관리 가능하게 만들고 선택적 처리를 가능하게 합니다.
확장 전략
증분 처리:
- 잠금 파일을 사용하여 변경된 콘텐츠만 처리
- 필요에 따라 특정 언어 또는 버킷 업데이트
- CI/CD와 결합하여 자동화된 증분 업데이트 수행
팀 워크플로:
- 협업을 위해 브랜치 기반 번역 사용
- 콘텐츠 변경과 번역 작업 분리
- 프로덕션에 병합하기 전에 번역 검토
리소스 최적화:
- 시스템 성능에 따라 동시성 조정
- 대량 처리 워크로드에 클라우드 러너 사용
- 처리 시간 모니터링 및 버킷 구성 최적화