CLI Lingo.dev подходит для проектов с тысячами ключей перевода и десятками целевых языков благодаря параллельной обработке, инкрементальному переводу через lockfile и возможностям точечной обработки.
Параллельная обработка#
CLI распределяет задачи перевода между несколькими воркерами. По умолчанию используется 10 воркеров:
npx lingo.dev@latest runДля крупных проектов можно увеличить уровень параллелизма:
npx lingo.dev@latest run --concurrency 20Если в проекте 50 файлов и 10 языков (500 задач перевода), параллельная обработка выполняет их одновременно, а не по очереди. Подробнее об архитектуре воркеров см. в разделе Parallel Processing.
Точечная обработка#
Обрабатывайте отдельные части проекта, а не весь проект целиком:
# Specific languages
npx lingo.dev@latest run --target-locale es --target-locale fr
# Specific file format
npx lingo.dev@latest run --bucket json
# Specific files
npx lingo.dev@latest run --file components/header
# Specific keys
npx lingo.dev@latest run --key welcome.titleЭти параметры можно комбинировать — --force --bucket json --target-locale es заново переводит весь JSON-контент только на испанский язык.
Интеграция с CI/CD#
Автоматизируйте перевод при каждом push с помощью 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 }}Lockfile гарантирует, что переводится только изменённый контент, поэтому CI-прогоны остаются быстрыми даже в крупных проектах.
Организация бакетов#
Разделяйте разные типы контента по отдельным бакетам для точечной обработки:
{
"buckets": {
"json": {
"include": ["src/locales/[locale].json"]
},
"markdown": {
"include": ["docs/[locale]/*.md"]
}
}
}Это позволяет обрабатывать документацию и контент приложения независимо: --bucket markdown переводит только документацию.
