Velké projekty

Aktualizováno: před 2 čtvrtletími · 1 min čtení

Zastaralé

Tato dokumentace pokrývá starší CLI (v0). Aktuální CLI je v1. Zobrazit aktuální dokumentaci CLI

CLI Lingo.dev bez problémů škáluje i pro projekty s tisíci překladových klíčů a desítkami cílových jazyků díky paralelnímu zpracování, inkrementálním překladům přes lockfile a možnostem cíleného zpracování.

Paralelní zpracování#

CLI rozděluje překladové úlohy mezi souběžně běžící workery. Výchozí úroveň souběžnosti je 10 workerů:

bash
npx lingo.dev@latest run

U velkých projektů můžete úroveň souběžnosti navýšit:

bash
npx lingo.dev@latest run --concurrency 20

U projektu s 50 soubory v 10 jazycích (500 překladových úloh) se vše zpracovává paralelně, ne postupně. Podrobnosti o architektuře workerů najdete v části Parallel Processing.

Cílené zpracování#

Zpracovávejte jen konkrétní části místo celého projektu:

bash
# 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

Tyto volby lze kombinovat – --force --bucket json --target-locale es znovu přeloží veškerý JSON obsah pouze do španělštiny.

Integrace CI/CD#

Automatizujte překlady při každém pushi pomocí GitHub Actions:

yaml
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 zajistí, že se překládá jen změněný obsah, takže běhy CI zůstávají rychlé i u velkých projektů.

Organizace bucketů#

Pro cílené zpracování rozdělte různé typy obsahu do samostatných bucketů:

json
{
  "buckets": {
    "json": {
      "include": ["src/locales/[locale].json"]
    },
    "markdown": {
      "include": ["docs/[locale]/*.md"]
    }
  }
}

Díky tomu můžete zpracovávat dokumentaci a obsah aplikace nezávisle na sobě: --bucket markdown přeloží pouze dokumentaci.

Další kroky#