🎉 v1.0

Get started

  • Welcome
  • Documentation
  • Pricing
    Soon

Tools

  • I18n MCP
  • CLI
  • CI/CD Integrations
  • Compiler
    Alpha
  • Connect Your Engine

Resources

  • Languages
  • LLM Models
  • Guides

Company

  • Enterprise
  • CareersHiring!
Dashboard

Lingo.dev CLI

  • How it works
  • Setup

Configuration

  • Supported formats
  • i18n.json
  • i18n.lock

Features

  • Existing translations
  • Adding languages
  • Overrides
  • Translator Notes
  • Translation keys
    • Key renaming
    • Key locking
    • Key ignoring
    • Key preserving

Performance

  • Large projects
  • Parallel processing

Retranslation

  • Automatic Retranslation
  • Retranslation
  • Remove translations

Parallel Processing

Max PrilutskiyMax Prilutskiy·Updated 1 day ago·2 min read

The run command processes translation tasks concurrently by distributing them across a worker pool. Each locale/file combination becomes an independent task, and workers process them simultaneously.

Usage#

bash
# Default concurrency (10 workers)
npx lingo.dev@latest run

# Custom concurrency
npx lingo.dev@latest run --concurrency 20

How it works#

  1. Task creation - the CLI analyzes your i18n.json and creates individual tasks for each locale/file combination
  2. Worker distribution - tasks are assigned to available workers using load balancing
  3. Concurrent processing - workers translate simultaneously while file-system locks prevent write conflicts
  4. Result aggregation - completed translations are safely written to target files

Targeting options#

All targeting options from the run command work with parallel processing:

OptionDescription
--target-locale esProcess specific target languages
--source-locale enOverride source locale
--bucket jsonProcess specific bucket types
--file components/headerProcess specific files (supports glob patterns)
--key welcome.titleProcess specific keys (supports glob patterns)
--forceBypass lockfile and retranslate everything
--frozenFail if any content requires translation
--concurrency 20Set number of concurrent workers

Automatic caching#

When using the Lingo.dev API, large locale files are divided into chunks. Target files are incrementally populated as each chunk returns from the API. If the process is interrupted, the next run resumes from where it left off.

For retranslation, use purge first, then run without --force. This leverages the built-in caching mechanism for more efficient processing compared to run --force.

Safety#

The worker pool prevents file corruption through:

  • I/O synchronization - file-system operations are serialized per file
  • Lockfile protection - atomic operations prevent concurrent i18n.lock corruption
  • Transactional processing - each task completes fully or fails cleanly

Next Steps#

Large Projects
Strategies for scaling localization
Retranslation
When and how to retranslate
i18n.lock
How incremental translation works
How It Works
The five-step translation pipeline

Was this page helpful?