Lingo.dev + .md/.mdx (Documentación)
Lingo.dev CLI traduce documentación en Markdown y MDX, blogs y contenido mientras preserva el formato, bloques de código, enlaces, componentes de React y elementos interactivos. La CLI utiliza el bucket mdx
como la configuración recomendada tanto para archivos .md
como .mdx
, protegiendo bloques de código y código en línea de la traducción, preservando URLs mientras traduce descripciones, manteniendo los metadatos del frontmatter, conservando intactos los componentes e importaciones de React, traduciendo props JSX de manera inteligente, y funcionando perfectamente con Next.js, Gatsby y herramientas MDX.
Configuración rápida
Configure utilizando el bucket mdx
tanto para archivos Markdown como MDX:
{
"locale": {
"source": "en",
"targets": ["es", "fr", "de"]
},
"buckets": {
"mdx": {
"include": ["docs/[locale]/*.md", "content/[locale]/*.mdx"]
}
}
}
Recordatorio: [locale]
es un marcador de posición que debe permanecer literalmente en la configuración, ya que se reemplaza con el locale real durante la ejecución de la CLI.
Traducir documentación
npx lingo.dev@latest i18n
Traduce el contenido mientras preserva todo el formato Markdown y los componentes React de MDX.
Manejo de contenido Markdown
Preservación de bloques de código
```javascript
const message = "Hello, world!";
console.log(message);
```
El código permanece sin traducir mientras que las explicaciones circundantes se localizan.
Manejo de enlaces y referencias
Visit [our website](https://example.com) for more details.
See the [configuration guide](./config.md) for setup instructions.
Las URLs y rutas relativas permanecen intactas mientras que el texto del enlace se traduce.
Protección del frontmatter
---
title: "Getting Started"
date: 2024-01-15
tags: ["tutorial", "beginner"]
---
# Getting Started
Your content begins here...
El frontmatter YAML permanece intacto mientras que el contenido se traduce.
Características de componentes MDX
Bloques de componentes React
import { Alert } from "@components/Alert";
# Guía de bienvenida
<Alert type="info">Esta es información importante para los usuarios.</Alert>
El contenido regular de markdown se traduce aquí.
Las importaciones de componentes y JSX permanecen intactos mientras que el contenido de texto se localiza.
Elementos JSX en línea
Aquí hay un botón <Button variant="primary">Comenzar</Button> en el texto.
El componente permanece, pero "Comenzar" se traduce.
Props con contenido traducible
<VideoPlayer
title="Vídeo de introducción"
description="Aprende lo básico en 5 minutos"
src="/videos/intro.mp4"
/>
Las props de tipo string se traducen mientras que las props técnicas permanecen sin cambios.
Declaraciones de exportación
export const title = "Guía de usuario";
export const published = "2024-01-15";
# {title}
El contenido comienza aquí...
Las exportaciones con nombre que contienen contenido traducible se localizan.
Frontmatter con componentes
---
title: "Primeros pasos"
components:
- Alert
- CodeBlock
---
import { Alert, CodeBlock } from "@components";
<Alert>¡Bienvenidos a nuestra plataforma!</Alert>
Configuración avanzada
Múltiples directorios de contenido
"mdx": {
"include": [
"docs/[locale]/*.md",
"content/[locale]/*.mdx",
"blog/[locale]/*.{md,mdx}"
]
}
Nota: Los asteriscos dobles (**
) no son compatibles en los patrones glob. Utilice un solo asterisco (*
) para la coincidencia de archivos dentro de los directorios.
Excluir archivos específicos
"mdx": {
"include": ["docs/[locale]/*.{md,mdx}"],
"exclude": ["docs/[locale]/drafts/*.{md,mdx}"]
}
Bloquear props de componentes
"mdx": {
"include": ["content/[locale]/*.{md,mdx}"],
"lockedKeys": ["src", "href", "id", "className"]
}