|
Documentation
Réserver une démoPlateforme
PlateformeMCPCLIAPIWorkflows
Guides
Changelog

Localisation

  • Aperçu
  • API de traduction
  • Localisation d’applications web
  • Localisation d’apps mobiles
  • iOS avec String Catalogs
  • Android avec strings.xml
  • Localisation des e-mails
  • Contenu statique (ex. : .md, .json)
  • Next.js avec Markdoc
  • Rails avec i18n

Workflows

  • Configurer un moteur avec le MCP
  • Triage Jira
  • CI/CD

Localisation de contenu statique

La CLI Lingo.dev traduit les fichiers statiques de votre dépôt — Markdown, MDX, Markdoc, JSON, YAML, sous-titres et plus encore — via un moteur de localisation configuré. Pointez-la vers votre contenu, lancez une seule commande et récupérez les fichiers traduits à côté des originaux.

Types de contenu pris en charge#

Le CLI détecte le format de chaque fichier à partir de son extension — aucun type de bucket n’est à configurer. La langue se trouve dans le chemin (content/en/x.md devient content/de/x.md), donc aucun placeholder [locale] n’est nécessaire.

Type de contenuFormatExemple de chemin
DocumentationMarkdowndocs/en/getting-started.md
DocumentationMDXdocs/en/getting-started.mdx
DocumentationMarkdocdocs/en/getting-started.mdoc
Données structuréesJSONdata/en.json
Données structuréesYAMLdata/en.yaml
Articles de blogMarkdown / MDXblog/en/post-slug.md
LocalisationGettext POlocale/en/messages.po
LocalisationXLIFFlocale/en.xliff
Sous-titresSRTsubs/en/intro.srt

Consultez la Référence des formats pour voir la liste complète des types de fichiers pris en charge.

Pas encore pris en charge dans le nouveau CLI

Les fichiers CSV (csv-per-locale), les sous-titres VTT, le texte brut .txt et Java .properties ne sont pas encore pris en charge par le nouveau CLI. Pour le moment, gardez ces fichiers sur le legacy CLI et consultez le changelog pour suivre les mises à jour.

Prérequis#

À chaque exécution, le contenu passe par un moteur de localisation — la configuration qui détermine le modèle de LLM, le glossaire, la voix de marque et les règles à appliquer. Créez-en un dans le tableau de bord Lingo.dev, puis configurez le CLI (Node 22+) :

bash
npm install -g @lingo.dev/cli
lingo login
lingo init
lingo link

lingo init et lingo link créent .lingo/config.json, ce qui relie le CLI à votre organisation et à votre moteur. Validez ce fichier afin que tous les environnements partagent la même configuration.

json
{
  "orgId": "org_abc123",
  "engineId": "eng_abc123",
  "sourceLocale": "en",
  "targetLocales": ["es", "fr", "de", "ja"],
  "files": [{ "pattern": "docs/en/getting-started.md" }]
}

En CI, ignorez lingo login et fournissez plutôt LINGO_API_KEY via une variable d’environnement. Vous pouvez en générer une depuis les clés API.

Sites de documentation#

La plupart des frameworks de documentation organisent le contenu traduit dans des répertoires par langue. Ajoutez un motif par fichier source (ou un glob) à files. Le CLI préserve le frontmatter, les blocs de code et la syntaxe des composants tout en traduisant les fichiers Markdown, MDX et Markdoc.

json
{
  "orgId": "org_abc123",
  "engineId": "eng_abc123",
  "sourceLocale": "en",
  "targetLocales": ["es", "fr", "de", "ja"],
  "files": [
    { "pattern": "docs/en/getting-started.md" },
    { "pattern": "docs/en/setup.mdx" }
  ]
}

Lancez une première traduction pour remplir toutes les langues cibles :

bash
lingo push --backfill-missing

Lors des exécutions suivantes, lingo push ne traduit que ce qui a changé. Utilisez lingo pull pour récupérer des traductions produites ailleurs.

Ajustez le chemin source pour qu’il corresponde à la convention de répertoires de votre framework :

FrameworkConvention de répertoire par langueRéférence
Docusaurusi18n/[locale]/docusaurus-plugin-content-docs/current/Guide i18n de Docusaurus
NextraPages par langue ou dictionnaires JSONDocumentation Nextra
Hugocontent/[locale]/Guide multilingue de Hugo
Astrosrc/content/[locale]/ ou dictionnaires JSONGuide i18n d’Astro
VitePressPréfixe de répertoire [locale]/i18n de VitePress
MkDocsdocs/ par langue avec le plugin i18nPlugin i18n de MkDocs

Composants MDX

La traduction MDX préserve la syntaxe des composants JSX. Les composants personnalisés comme <Callout>, <Tabs> et <CodeBlock> restent inchangés — seul leur contenu textuel est traduit.

Données structurées#

Les fichiers JSON et YAML sont traduits automatiquement en fonction de leur extension. Utilisez les contrôles de clés pour empêcher la modification des valeurs non traduisibles (ID, URL, indicateurs de configuration).

json
{
  "orgId": "org_abc123",
  "engineId": "eng_abc123",
  "sourceLocale": "en",
  "targetLocales": ["es", "fr", "de", "ja"],
  "files": [
    { "pattern": "content/en.json" },
    { "pattern": "data/en.yaml" }
  ]
}

Le YAML générique ne nécessite pas de champ format. Seuls yaml-openapi, yaml-root-key et android requièrent un "format" explicite dans l’entrée du fichier.

YAML avec clé racine de langue

Les fichiers YAML qui utilisent le code de langue comme clé racine (comme c’est souvent le cas avec Rails et Hugo) nécessitent un "format": "yaml-root-key" explicite — la clé racine est réécrite dans la langue cible. Voir la Référence des formats.

Sous-titres#

Les fichiers de sous-titres SRT sont traduits en fonction de leur extension. Le CLI préserve toutes les données de minutage, les indices de repère et les balises de mise en forme — seul le contenu textuel est traduit.

json
{
  "orgId": "org_abc123",
  "engineId": "eng_abc123",
  "sourceLocale": "en",
  "targetLocales": ["es", "fr", "de", "ja"],
  "files": [{ "pattern": "subs/en/intro.srt" }]
}

VTT n’est pas encore pris en charge

Les sous-titres WebVTT (.vtt) ne sont pas encore pris en charge par le nouveau CLI. Conservez les fichiers VTT sur le CLI hérité et suivez le changelog pour les mises à jour.

Gérer des volumes de contenu importants#

Les dépôts de contenu statique peuvent contenir des milliers de fichiers. Le CLI gère cela efficacement :

MécanismeComment ça aide
État d’exécution.lingo/lock.json suit les empreintes du contenu source, afin que lingo push ne traduise que les fichiers nouveaux ou modifiés. Validez-le ; il est régénéré à chaque push.
Parallélisme côté serveurLe moteur parallélise la traduction pour vous — aucun paramètre de concurrence n’est à ajuster.
Exécutions cibléesLimitez une exécution à des fichiers spécifiques avec un glob : lingo push "docs/en/**".

Pour vérifier que les traductions sont à jour sans écrire de fichiers — pratique comme garde-fou en CI — exécutez lingo check.

Étapes suivantes#

Formats pris en charge
Référence complète de tous les formats de fichiers que le CLI peut traduire
Exemples de projets
Des dépôts Markdown, MDX, Markdoc et OpenAPI prêts à l’emploi, avec la configuration et les traductions versionnées
Contrôles de clés
Empêchez la traduction de certaines valeurs
GitHub App
Automatisez la traduction de contenu statique à chaque push
État d’exécution
Comment fonctionne le suivi incrémentiel des traductions avec .lingo/lock.json

Cette page vous a-t-elle été utile ?

Max PrilutskiyMax Prilutskiy·Mis à jour il y a 13 jours·5 min de lecture