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#
| Type de contenu | Format | Bucket CLI | Exemple de chemin |
|---|---|---|---|
| Documentation | Markdown | markdown | docs/[locale]/getting-started.md |
| Documentation | MDX | mdx | docs/[locale]/getting-started.mdx |
| Documentation | Markdoc | markdoc | docs/[locale]/getting-started.mdoc |
| Données structurées | JSON | json | data/[locale].json |
| Données structurées | YAML | yaml | data/[locale].yaml |
| Articles de blog | Markdown / MDX | markdown / mdx | blog/[locale]/post-slug.md |
| Sous-titres | SRT | srt | subs/[locale]/intro.srt |
| Sous-titres | VTT | vtt | subs/[locale]/intro.vtt |
| Feuilles de calcul | CSV | csv-per-locale | data/[locale].csv |
| Chaînes de configuration | Properties | properties | lang/[locale].properties |
| Chaînes de configuration | Gettext PO | po | locale/[locale]/messages.po |
| Texte brut | TXT | txt | content/[locale]/readme.txt |
Prérequis#
Chaque exécution de la CLI fait passer votre contenu par un moteur de localisation : c’est lui qui détermine le modèle LLM, le glossaire, la voix de marque et les instructions à appliquer. Créez-en un dans le tableau de bord Lingo.dev et générez une clé API.
Sites de documentation#
La plupart des frameworks de documentation organisent les contenus traduits dans des répertoires dédiés par langue. Les buckets markdown, mdx et markdoc de la CLI traduisent ces fichiers tout en préservant le frontmatter, les blocs de code et la syntaxe des composants.
{
"$schema": "https://lingo.dev/schema/i18n.json",
"version": "1.15",
"locale": {
"source": "en",
"targets": ["es", "fr", "de", "ja"]
},
"buckets": {
"markdown": {
"include": ["docs/[locale]/getting-started.md"]
},
"mdx": {
"include": ["docs/[locale]/setup.mdx"]
}
}
}Ajustez le motif include pour qu’il corresponde à la convention de répertoires de votre framework :
| Framework | Convention de répertoire par langue | Référence |
|---|---|---|
| Docusaurus | i18n/[locale]/docusaurus-plugin-content-docs/current/ | Guide i18n de Docusaurus |
| Nextra | Pages par langue ou dictionnaires JSON | Documentation Nextra |
| Hugo | content/[locale]/ | Guide multilingue de Hugo |
| Astro | src/content/[locale]/ ou dictionnaires JSON | Guide i18n d’Astro |
| VitePress | Préfixe de répertoire [locale]/ | i18n de VitePress |
| MkDocs | docs/ par langue avec le plugin i18n | Plugin i18n de MkDocs |
Composants MDX
Le bucket mdx préserve la syntaxe des composants JSX pendant la traduction. Les composants personnalisés comme <Callout>, <Tabs> et <CodeBlock> restent inchangés : seul le texte qu’ils contiennent est traduit.
Données structurées#
Les fichiers JSON et YAML se traduisent avec les buckets json et yaml. Utilisez des clés verrouillées pour éviter que les valeurs non traduisibles (ID, URL, indicateurs de configuration) ne soient modifiées.
{
"$schema": "https://lingo.dev/schema/i18n.json",
"version": "1.15",
"locale": {
"source": "en",
"targets": ["es", "fr", "de", "ja"]
},
"buckets": {
"json": {
"include": ["content/[locale].json"],
"lockedKeys": ["id", "slug", "url"]
},
"yaml": {
"include": ["data/[locale].yaml"]
}
}
}Pour les fichiers YAML qui utilisent le code de langue comme clé racine — un cas fréquent dans Rails et Hugo — utilisez plutôt le bucket yaml-root-key : il lit la clé de langue source et écrit les clés des langues cibles dans le même fichier.
Sous-titres#
Les fichiers de sous-titres SRT et VTT se traduisent avec les buckets srt et vtt. La CLI préserve toutes les données de timing, les indices de repère et les balises de formatage : seul le contenu textuel est traduit.
{
"$schema": "https://lingo.dev/schema/i18n.json",
"version": "1.15",
"locale": {
"source": "en",
"targets": ["es", "fr", "de", "ja"]
},
"buckets": {
"srt": {
"include": ["subs/[locale]/intro.srt"]
}
}
}Gérer des volumes de contenu importants#
Les dépôts de contenu statique peuvent contenir des milliers de fichiers. La CLI gère cela efficacement grâce à trois mécanismes :
| Mécanisme | Comment ça aide |
|---|---|
| Lockfile | Suit les empreintes SHA-256 du contenu source. Lors des exécutions suivantes, seuls les fichiers nouveaux ou modifiés déclenchent une traduction. |
| Traitement parallèle | Répartit la traduction entre plusieurs workers en parallèle. À configurer avec run --concurrency 20. |
| Exécutions ciblées | Traitez un bucket ou une langue spécifique : run --bucket markdown ou run --target-locale es. |
