|
Dokumentace
Rezervovat demoPlatforma
PlatformaMCPCLIAPIWorkflows
Návody
Changelog

Lokalizace

  • Přehled
  • Translation API
  • Lokalizace webových aplikací
  • Lokalizace mobilních aplikací
  • iOS se String Catalogs
  • Android a strings.xml
  • Lokalizace e-mailů
  • Statický obsah (např. .md, .json)
  • Next.js s Markdoc
  • Rails s i18n

Workflows

  • Nastavení engine pomocí MCP
  • Jira Triage
  • CI/CD

Lokalizační workflowy pro CI/CD

CLI od Lingo.dev běží v libovolném CI/CD prostředí s Node.js. Přidejte ho jako krok do pipeline a překládejte při každém pushi – lockfile zajistí, že se zpracují jen změněné řetězce, takže překlady zůstávají rychlé a nákladově efektivní i s růstem projektu.

Na GitHubu? Máte dvě možnosti

GitHub App je na GitHubu nejjednodušší volba – nainstalujete ji jednou a na push i pull requesty reaguje automaticky. Nepotřebujete runner, secret s API klíčem ani lockfile; repozitář nastavíte pomocí .lingo/config.json a engineId.

GitHub Action a ostatní integrace níže spouštějí CLI přímo ve vaší vlastní pipeline pomocí i18n.json, i18n.lock lockfile a secretu LINGODOTDEV_API_KEY. Tuhle cestu zvolte, pokud chcete překlady spouštět spolu s ostatními CI kroky nebo pokud nejste na GitHubu.

Zbytek této příručky se věnuje GitHub Action a CLI.

Jak to funguje#

CI/CD pipeline spustí CLI jako krok po checkoutu. CLI načte vaši konfiguraci i18n.json, porovná zdrojové soubory s lockfile a identifikuje změny, přeloží rozdíl přes nakonfigurovaný lokalizační engine a zapíše výsledky do souborů cílového jazyka. Pipeline potom přeložené soubory commitne nebo otevře pull request – podle toho, jaký workflow preferujete.

Vyberte si workflow#

Čtyři workflow pokrývají většinu týmových uspořádání. Začněte tím nejjednodušším a přejděte na pokročilejší variantu, až váš tým poroste.

WorkflowJak fungujeIdeální proNevýhoda
Commit do mainuPřeloží a commitne přímo do mainuMalé týmy, bez zbytečného třeníBez kroku pro kontrolu překladů
PR z mainuPřeloží a otevře PR ke kontroleTýmy, které překlady kontrolujíVyžaduje ruční schválení PR
Commit do feature branchePřekládá při pushi do feature brancheDlouho žijící feature brancheCommit s překlady zůstane v historii branche
PR z feature branchePřeloží a otevře PR z feature brancheMaximální kontrola nad každou featureVíce PR na jednu feature

Doporučení na začátek

Commit do mainu funguje dobře pro většinu týmů. Překlady se nasazují s každým pushem, lockfile zajišťuje konzistenci a o kvalitu se starají pravidla glosáře a hlasu značky v lokalizačním engine. Na workflow založené na PR přejděte ve chvíli, kdy potřebujete lidskou kontrolu překladů.

Rychlé nastavení#

Uložte API klíč Lingo.dev jako CI/CD secret a potom do pipeline přidejte krok pro překlad.

Lingo.dev nabízí oficiální GitHub Action, která se postará o checkout, překlad i vytvoření commitu nebo PR.

Nechcete spravovat workflow soubor, secret s API klíčem ani lockfile? GitHub App zajišťuje průběžnou lokalizaci na GitHubu bez ničeho z toho – stačí ji jednou nainstalovat a nastavit .lingo/config.json.

Commit do mainu:

yaml
name: Translate
on:
  push:
    branches: [main]
permissions:
  contents: write
jobs:
  translate:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: lingodotdev/lingo.dev@main
        with:
          api-key: ${{ secrets.LINGODOTDEV_API_KEY }}

PR z mainu – přidejte pull-request: true a GH_TOKEN:

yaml
name: Translate
on:
  push:
    branches: [main]
permissions:
  contents: write
  pull-requests: write
jobs:
  translate:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: lingodotdev/lingo.dev@main
        with:
          api-key: ${{ secrets.LINGODOTDEV_API_KEY }}
          pull-request: true
        env:
          GH_TOKEN: ${{ github.token }}

Podívejte se na kompletní příručku k integraci GitHub Actions, kde najdete workflow pro feature branche, vlastní commit messages, podporu monorepa i GPG podepisování.

Ověření překladů#

Flag --frozen i lockfile jsou součástí GitHub Action a CLI. GitHub App sleduje stav překladů na straně serveru a nemá lockfile ani ekvivalent --frozen.

Použijte flag --frozen jako podmínku pro nasazení, aby se do produkce nedostal žádný nepřeložený obsah. Pokud některé řetězce potřebují překlad, CLI skončí s nenulovým stavovým kódem.

bash
npx lingo.dev@latest run --frozen

Přidejte to jako samostatný krok pipeline, který poběží před nasazením:

yaml
- name: Verify translations
  run: npx lingo.dev@latest run --frozen

Workflow pro monorepo#

U monorep s více balíčky, z nichž každý má vlastní soubory s překlady, použijte volbu working-directory a zacílete na konkrétní balíčky:

yaml
- uses: lingodotdev/lingo.dev@main
  with:
    api-key: ${{ secrets.LINGODOTDEV_API_KEY }}
    working-directory: apps/web

Konflikty při merge#

Tohle platí pro GitHub Action i CLI. GitHub App lockfile nepoužívá, takže neřeší konflikty i18n.lock.

Lockfile (i18n.lock) může při merge větví se změnami v překladech způsobit konflikt. Řešení je jednoduché – smažte konfliktní lockfile, dokončete merge a pak ho znovu vygenerujte:

bash
git merge feature-branch
rm i18n.lock
git add .
git merge --continue
npx lingo.dev@latest lockfile --force

Příkaz lockfile --force znovu sestaví lockfile z aktuálního stavu zdrojových souborů, aniž by spouštěl nové překlady. Postupy založené na rebase a strategie, jak konfliktům předcházet, najdete v příručce pokročilé integrační vzory.

Další kroky#

GitHub App
Spravovaná průběžná lokalizace na GitHubu – bez runneru, secretu a lockfile
GitHub Actions
Kompletní nastavení GitHub Actions včetně GPG podepisování a vlastní konfigurace
GitLab CI
Kompletní nastavení GitLab CI/CD s access tokeny a merge requesty
Bitbucket Pipelines
Kompletní nastavení Bitbucket Pipelines s pipes a pull requesty
Pokročilé vzory
Výběr workflow, řešení konfliktů a podmínky pro nasazení

Byla tato stránka užitečná?

Max PrilutskiyMax Prilutskiy·Aktualizováno před 4 dny·5 min čtení