Cómo traducir documentación en Markdown para desarrolladores

A
Escrito por
AI Trans Team
22 min de lectura
328 visualizaciones

Los proyectos de código abierto viven o mueren por su documentación. Una biblioteca brillante con README solo en inglés nunca llegará a los desarrolladores en China, Japón o Brasil, mercados que representan el 40% de la población mundial de desarrolladores. Sin embargo, la traducción de documentación en markdown es única y desafiante: debes preservar los bloques de código, mantener la estructura de enlaces, manejar el control de versiones y mantener las traducciones sincronizadas a medida que tu proyecto evoluciona.

Según el informe Octoverse 2024 de GitHub, el 78% de las contribuciones de código abierto provienen de hablantes no nativos de inglés, pero el 92% de la documentación sigue siendo solo en inglés. Esto crea una barrera masiva para la adopción, la contribución y la construcción de comunidades globales.

Esta guía completa te mostrará cómo traducir documentación en markdown de manera efectiva: desde preservar la sintaxis de código y enlaces hasta gestionar flujos de trabajo de traducción en Git, automatizar actualizaciones y construir sitios de documentación multilingües con herramientas como Docusaurus, VuePress y MkDocs.

Por qué la traducción de documentación en Markdown es diferente

Markdown es un lenguaje de marcado diseñado para la escritura técnica. Cuando traduces documentación en markdown, no solo traduces prosa: estás gestionando una mezcla compleja de código, sintaxis de formato, hipervínculos, control de versiones y actualizaciones continuas.

El desafío de la traducción en Markdown

1. Los bloques de código NUNCA deben traducirse

## Installation

Run the following command:

```bash
npm install awesome-library

Al traducir al español:
- "Installation" → "Instalación" ✅
- "Run the following command:" → "Ejecuta el siguiente comando:" ✅
- `npm install awesome-library` → MANTENER SIN CAMBIOS ✅

¡Los traductores genéricos a menudo fallan traduciendo código!

2. La sintaxis de Markdown debe preservarse

**Bold text** should stay **bold**
*Italic text* should stay *italic*
[Link text](url) should maintain link structure
`inline code` should keep backticks

Bad translation might produce:
**Negrita** (loses markdown syntax)
*Cursiva (missing closing asterisk)
[Texto](url (broken link)

3. Los enlaces relativos deben actualizarse para versiones en idioma

English: [See API Reference](./api-reference.md)
Spanish: [Ver Referencia API](./referencia-api.md)
         ^texto del enlace traducido  ^nombre de archivo también traducido

¡Ambos deben existir y enlazar correctamente!

4. La documentación evoluciona: las traducciones también deben hacerlo

Día 1: Traducir README.md (Inglés → Español)
Día 15: README.md en inglés actualizado (nueva función añadida)
Problema: ¡La versión en español ahora está desactualizada!

Se necesita un flujo de trabajo para rastrear y sincronizar actualizaciones de traducción.

Impacto en el mundo real

Historia de éxito: Vue.js

  • Documentación traducida a 10+ idiomas
  • La traducción al chino fue clave para la adopción en Asia
  • Flujo de trabajo de traducción impulsado por la comunidad vía GitHub
  • Resultado: 40% de descargas de npm desde Asia, enorme comunidad china

Historia de éxito: React

  • Traducciones oficiales en 30+ idiomas gestionadas por la comunidad
  • Repositorios separados para cada idioma (react.dev, zh-hans.react.dev, es.react.dev)
  • Guía de traducción y herramientas de automatización proporcionadas
  • Resultado: Adopción global por desarrolladores, contribuciones de 100+ países

Historia de éxito: Lenguaje de programación Rust

  • "The Rust Book" traducido a 15+ idiomas
  • La comunidad mantiene traducciones vía mdBook
  • La traducción al japonés impulsó un aumento del 300% en desarrolladores japoneses de Rust
  • Equipos de traducción activos mantienen la documentación sincronizada con las actualizaciones en inglés

Caso de fracaso: Traducciones abandonadas Muchos proyectos de código abierto tienen traducciones desactualizadas:

  • README en francés actualizado por última vez hace 2 años
  • README en inglés actualizado semanalmente
  • Resultado: Desarrolladores franceses confundidos, abandonan el proyecto o luchan con información desactualizada

Fundamentos de Markdown para la traducción

Elementos centrales de Markdown

Encabezados:

# Heading 1
## Heading 2
### Heading 3

Traducir texto, preservar símbolos:
# Installation → # Instalación
## Quick Start → ## Inicio Rápido

Énfasis:

**bold text** → **texto en negrita**
*italic text* → *texto en cursiva*
~~strikethrough~~ → ~~tachado~~

Mantener la sintaxis de markdown exactamente igual.

Listas:

Sin orden:
- Item one
- Item two
  - Nested item

Con orden:
1. First step
2. Second step
3. Third step

Traducir contenido, mantener estructura:
- Primer elemento
- Segundo elemento
  - Elemento anidado

Enlaces:

[Link text](url)
[Documentation](https://example.com/docs)

Traducir texto, mantener URL (a menos que también se traduzca la página enlazada):
[Documentación](https://example.com/docs)

O si existen docs en español:
[Documentación](https://example.com/es/docs)

Imágenes:

![Alt text](image-url "Optional title")

![Dashboard screenshot](./images/dashboard.png "Admin Dashboard")

Traducir texto alternativo y título:
![Captura de pantalla del panel](./images/dashboard.png "Panel de Administración")

El nombre del archivo de imagen generalmente se mantiene igual (recurso compartido).

Bloques de código:

Código en línea: Usa `npm install` para instalar paquetes.

Traduce el texto narrativo, preserva el código: Usa npm install para instalar paquetes.

Bloques de código delimitados:

function greet(name) {
  console.log(`Hello, ${name}!`);
}

NUNCA traduzcas el código dentro de las vallas. Mantén exactamente como está.


**Tablas:**
```markdown
| Inglés | Español | Francés |
|--------|---------|--------|
| Hello  | Hola    | Bonjour|
| Goodbye| Adiós   | Au revoir|

Traduce las celdas de contenido, mantén la estructura:
| Inglés | Español | Francés |
|--------|---------|--------|
| Hello  | Hola    | Bonjour |
| Goodbye| Adiós   | Au revoir|

Características Avanzadas de Markdown

Citas en bloque:

> Esta es información importante que los usuarios deben saber.

Reglas horizontales:

---
o
***
o
___

Mantén sin cambios (separador visual, sin texto).

HTML en Markdown:

<div class="warning">
  ¡Ten cuidado al usar esta función!
</div>

Notas al pie:

Aquí hay una referencia a nota al pie[^1].

[^1]: Este es el contenido de la nota al pie.

Flujo de Trabajo de Traducción para Documentos Markdown

Opción 1: Archivos Separados por Idioma (Recomendado)

Estructura de directorios:

docs/
├── en/
│   ├── README.md
│   ├── installation.md
│   ├── api-reference.md
│   └── troubleshooting.md
├── es/
│   ├── README.md
│   ├── instalacion.md
│   ├── referencia-api.md
│   └── solucion-problemas.md
├── fr/
│   ├── README.md
│   ├── installation.md
│   ├── reference-api.md
│   └── depannage.md
└── zh/
    ├── README.md
    ├── installation.md
    ├── api-reference.md
    └── troubleshooting.md

Ventajas: ✅ Separación limpia (sin idiomas mezclados) ✅ Cada idioma puede tener una estructura de archivos diferente si es necesario ✅ Fácil ver qué archivos están traducidos ✅ Enlaces simples dentro del mismo idioma

Desventajas: ❌ Más difícil rastrear qué traducciones están desactualizadas ❌ Más archivos para gestionar

Opción 2: Basada en Sufijos (Alternativa)

Estructura de directorios:

docs/
├── README.md (Inglés por defecto)
├── README.es.md (Español)
├── README.fr.md (Francés)
├── README.zh.md (Chino)
├── installation.md
├── installation.es.md
├── installation.fr.md
└── installation.zh.md

Ventajas: ✅ Archivos traducidos junto a la fuente (más fácil detectar traducciones faltantes) ✅ Ordenados alfabéticamente por nombre base

Desventajas: ❌ Se desordena con muchos idiomas ❌ Más difícil navegar docs específicos de un idioma

Veredicto: Usa directorios separados para proyectos con documentación completa.

Proceso de Traducción Paso a Paso

Paso 1: Configura la Estructura de Directorios de Traducción

# Crear directorios de idioma
mkdir -p docs/es docs/fr docs/zh

# Copiar estructura en inglés a nuevo idioma
cp -r docs/en/* docs/es/

# Ahora traduce cada archivo en docs/es/

Paso 2: Crear Seguimiento de Traducción

translation-status.md:

# Estado de Traducción

## Español (es)

| Archivo | Estado | Última Actualización | Traductor |
|---------|--------|---------------------|-----------|
| README.md | ✅ Actual | 2025-01-25 | @translator1 |
| installation.md | ⚠️ Desactualizado | 2025-01-10 | @translator1 |
| api-reference.md | ❌ No iniciado | - | - |

## Francés (fr)

| Archivo | Estado | Última Actualización | Traductor |
|---------|--------|---------------------|-----------|
| README.md | ✅ Actual | 2025-01-22 | @translator2 |
| installation.md | ✅ Actual | 2025-01-22 | @translator2 |

O usa herramientas automatizadas (cubiertas más adelante).

Paso 3: Traducir con Preservación de Bloques de Código

Original (en/installation.md):

# Installation

## Prerequisites

- Node.js 18+
- npm or yarn

## Install via npm

Run the following command in your terminal:

```bash
npm install awesome-library

Verify Installation

Create a test file test.js:

const awesome = require('awesome-library');
console.log(awesome.version);

Run it:

node test.js

You should see the version number printed.


**Traducido (es/instalacion.md):**
```markdown
# Instalación

## Prerrequisitos

- Node.js 18+
- npm o yarn

## Instalar vía npm

Ejecuta el siguiente comando en tu terminal:

```bash
npm install awesome-library

Verificar la Instalación

Crea un archivo de prueba test.js:

const awesome = require('awesome-library');
console.log(awesome.version);

Ejecútalo:

node test.js

Deberías ver el número de versión impreso.


**Qué cambió:**
- Encabezados traducidos
- Texto narrativo traducido
- Bloques de código SIN CAMBIOS (comandos bash, código JavaScript)
- Código en línea SIN CAMBIOS (`test.js`, nombres de paquetes npm)
- Estructura de archivos mantenida

**Paso 4: Actualizar Enlaces Internos**

**Inglés (en/README.md):**
```markdown
See [Installation Guide](./installation.md) for setup instructions.

Paso 5: Hacer commit en Git

git add docs/es/
git commit -m "Add Spanish translation of installation docs"
git push origin main

Manejo de Casos Especiales

1. Comentarios de Código en Bloques de Código

¿Deberías traducir los comentarios?

## Ejemplo

```javascript
// Initialize the application
const app = createApp();

// Start the server on port 3000
app.listen(3000);

**Opción A: Mantener comentarios de código en inglés**
```javascript
// Initialize the application
const app = createApp();

// Start the server on port 3000
app.listen(3000);

Pros: Universal (los desarrolladores leen comentarios en inglés) Contras: Menos accesible para principiantes

Opción B: Traducir comentarios de código

// Inicializar la aplicación
const app = createApp();

// Iniciar el servidor en el puerto 3000
app.listen(3000);

Pros: Más accesible para desarrolladores no angloparlantes Contras: El código ya no es copiable directamente (mezcla de idiomas)

Recomendación: Mantener en inglés para ejemplos de código de producción. Traducir para contenido tutorial/aprendizaje donde la comprensión > copiar y pegar.

2. Nombres de Variables y Funciones

Nunca traducir en código:

// INCORRECTO - No traduzcas nombres de variables
function obtenerUsuario(idUsuario) {
  return database.buscar(idUsuario);
}

// CORRECTO - Mantén el código en inglés
function getUser(userId) {
  return database.find(userId);
}

Excepción: Pseudocódigo o ejemplos conceptuales

Inglés:

if user is logged in: show dashboard else: redirect to login


Español (aceptable para pseudocódigo):

si usuario está conectado: mostrar panel sino: redirigir a inicio de sesión


3. Ejemplos de Línea de Comandos

Traducir descripciones, no comandos:

Inglés:
## Generate a New Component

Use the CLI to create a component:

```bash
npx create-component MyComponent

This creates a new component in src/components/MyComponent/.

Español:

Generar un Nuevo Componente

Usa la CLI para crear un componente:

npx create-component MyComponent

Esto crea un nuevo componente en src/components/MyComponent/.


**Los comandos permanecen en inglés, las explicaciones se traducen.**

### 4. URLs de Endpoints de API

**Mantener URLs sin cambios:**

```markdown
Inglés:
### Get User Profile

GET /api/v1/users/:id


Español:
### Obtener Perfil de Usuario

GET /api/v1/users/:id


No: `GET /api/v1/usuarios/:id` (¡rompería la API!)

5. Variables de Entorno y Configuración

Mantener nombres de variables, traducir descripciones:

Inglés:
Set your API key:

```bash
export API_KEY=your_key_here

Español: Configura tu clave de API:

export API_KEY=tu_clave_aqui

API_KEY permanece en inglés (nombre de variable de entorno). your_key_heretu_clave_aqui (valor de ejemplo, se puede traducir).


### 6. Enlaces de Badges y Shields

**Comunes en archivos README.md:**

```markdown
Inglés:
[![Build Status](https://travis-ci.org/user/repo.svg?branch=main)](https://travis-ci.org/user/repo)
[![npm version](https://badge.fury.io/js/awesome-lib.svg)](https://www.npmjs.com/package/awesome-lib)

Español: Mantener badges como están
(Los badges son automáticos de servicios externos, agnósticos al idioma)

O si quieres badges con texto traducido:
[![Estado de Construcción](https://travis-ci.org/user/repo.svg?branch=main)](https://travis-ci.org/user/repo)

Normalmente: Mantener badges en inglés (los desarrolladores los esperan, el estado es universal).

Automatización y Herramientas

Sistemas de Gestión de Traducciones para Markdown

1. Crowdin

Características:

  • Integración con GitHub/GitLab
  • Soporte para archivos Markdown
  • Preserva bloques de código automáticamente
  • Traducción comunitaria (colaboradores traducen vía interfaz web)
  • Memoria de traducción

Flujo de trabajo:

1. Conectar Crowdin al repositorio de GitHub
2. Crowdin detecta archivos nuevos/cambiados en docs/en/
3. Los traductores traducen vía interfaz web de Crowdin
4. Crowdin envía pull request con traducciones
5. Revisar y hacer merge

Precio: Gratis para open-source, $40/mes+ para comercial

2. Lokalise

Características:

  • Similar a Crowdin
  • Mejor API para automatización
  • Soporte para Markdown
  • Herramienta CLI para sincronización

Flujo de trabajo:

# Subir archivos fuente
lokalise2 file upload --lang-iso en --file docs/en/README.md

# Descargar traducciones
lokalise2 file download --lang-iso es --dest docs/es/

Precio: $120/mes+

3. Transifex

Características:

  • Amigable con open-source
  • Soporte para Markdown
  • Revisiones de traducción
  • Controles de calidad

Precio: Gratis para open-source, $30/mes+ para comercial

Flujos de Trabajo de Traducción Basados en Git

Enfoque: Ramas separadas para traducciones

# Rama principal: Documentación en inglés
git checkout main

# Crear rama de traducción
git checkout -b translate/spanish

# Traducir archivos
# ...

# Hacer commit
git add docs/es/
git commit -m "Agregar traducción al español"

# Hacer push y crear PR
git push origin translate/spanish
# Abrir pull request en GitHub

Beneficios:

  • Los traductores trabajan de forma independiente
  • Proceso de revisión vía PR
  • Seguimiento de traducciones como características

Enfoque: Seguimiento de traducciones con metadatos de Git

en/installation.md:

<!--
Última actualización: 2025-01-25
Estado de traducción:
- es: 2025-01-20 (desactualizada)
- fr: 2025-01-24 (actual)
- zh: no iniciada
-->

# Instalación
...

Un script automatizado puede verificar estos comentarios y marcar las traducciones desactualizadas.

Detección automática de actualizaciones de traducciones

Script para detectar traducciones desactualizadas:

import os
from datetime import datetime

def check_translation_status(base_dir="docs"):
    languages = ['en', 'es', 'fr', 'zh']
    base_lang = 'en'

    for lang in languages:
        if lang == base_lang:
            continue

        en_dir = os.path.join(base_dir, base_lang)
        lang_dir = os.path.join(base_dir, lang)

        for file in os.listdir(en_dir):
            if not file.endswith('.md'):
                continue

            en_file = os.path.join(en_dir, file)
            lang_file = os.path.join(lang_dir, file)

            if not os.path.exists(lang_file):
                print(f"⚠️ {lang}/{file} - No traducido")
                continue

            en_modified = os.path.getmtime(en_file)
            lang_modified = os.path.getmtime(lang_file)

            if en_modified > lang_modified:
                print(f"❌ {lang}/{file} - Desactualizada (EN actualizada después de la traducción)")
            else:
                print(f"✅ {lang}/{file} - Actual")

check_translation_status()

Ejecutar como GitHub Action:

# .github/workflows/check-translations.yml
name: Verificar estado de traducciones

on:
  push:
    paths:
      - 'docs/**'

jobs:
  check:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3
      - name: Verificar traducciones
        run: python scripts/check-translations.py
      - name: Comentar en PR
        if: github.event_name == 'pull_request'
        run: |
          python scripts/check-translations.py > translation-status.txt
          gh pr comment ${{ github.event.number }} --body-file translation-status.txt

Traducción de Markdown asistida por IA

AI Trans para documentación markdown:

Características:

  • Preserva bloques de código automáticamente
  • Mantiene la sintaxis markdown
  • Conserva los enlaces intactos
  • Rápido (traduce toda la documentación en minutos)

Flujo de trabajo:

# Traducir README.md del inglés al español
ai-translator translate \
  --input docs/en/README.md \
  --output docs/es/README.md \
  --source en \
  --target es \
  --format markdown

# Traducción masiva de todos los archivos
for file in docs/en/*.md; do
  filename=$(basename "$file")
  ai-translator translate \
    --input "$file" \
    --output "docs/es/$filename" \
    --source en \
    --target es \
    --format markdown
done

Precios: $10 por 1M caracteres (Estándar) o $50 por 10M caracteres (Negocios) Paquete inicial gratuito: 100,000 caracteres para pruebas Ejemplos de costos típicos:

  • Documentación pequeña (50K chars): $0.50
  • Documentación mediana (200K chars): $2
  • Documentación grande (1M chars): $10

Mejor práctica: Traducción IA → revisión humana → commit

Creación de sitios de documentación multilingüe

Docusaurus (basado en React)

Configuración:

npx create-docusaurus@latest my-docs classic
cd my-docs

Configuración i18n (docusaurus.config.js):

module.exports = {
  i18n: {
    defaultLocale: 'en',
    locales: ['en', 'es', 'fr', 'zh'],
    localeConfigs: {
      en: { label: 'English' },
      es: { label: 'Español' },
      fr: { label: 'Français' },
      zh: { label: '中文' }
    }
  },
  // ...
};

Estructura de directorios:

docs/
├── intro.md (inglés por defecto)
├── installation.md
i18n/
├── es/
│   └── docusaurus-plugin-content-docs/
│       └── current/
│           ├── intro.md (español)
│           └── installation.md
├── fr/
│   └── docusaurus-plugin-content-docs/
│       └── current/
│           ├── intro.md (francés)
│           └── installation.md

Construcción:

# Construir todos los idiomas
npm run build

# Construir idioma específico
npm run build -- --locale es

Resultado: Selector de idioma automático, sitio multilingüe optimizado para SEO.

VuePress (basado en Vue)

Configuración i18n (.vuepress/config.js):

module.exports = {
  locales: {
    '/': {
      lang: 'en-US',
      title: 'My Documentation',
      description: 'Documentation for awesome library'
    },
    '/es/': {
      lang: 'es-ES',
      title: 'Mi Documentación',
      description: 'Documentación para awesome library'
    },
    '/fr/': {
      lang: 'fr-FR',
      title: 'Ma Documentation',
  description: 'Documentación para awesome library'
}

}, themeConfig: { locales: { '/': { selectText: 'Idiomas', label: 'Inglés', nav: [ { text: 'Guía', link: '/guide/' }, { text: 'API', link: '/api/' } ] }, '/es/': { selectText: 'Idiomas', label: 'Español', nav: [ { text: 'Guía', link: '/es/guide/' }, { text: 'API', link: '/es/api/' } ] } } } };

Directorio:

docs/
├── README.md (Inglés)
├── guide/
│   └── installation.md
├── es/
│   ├── README.md (Español)
│   └── guide/
│       └── installation.md
└── fr/
    ├── README.md (Francés)
    └── guide/
        └── installation.md

MkDocs (Basado en Python)

Instalar con plugin i18n:

pip install mkdocs mkdocs-static-i18n

mkdocs.yml:

plugins:
  - i18n:
      default_language: en
      languages:
        en: English
        es: Español
        fr: Français
      material_alternate: true

nav:
  - Home: index.md
  - Installation: installation.md
  - API Reference: api.md

Directorio:

docs/
├── index.md (Inglés por defecto)
├── index.es.md (Español)
├── index.fr.md (Francés)
├── installation.md
├── installation.es.md
├── installation.fr.md

Construir:

mkdocs build

Resultado: Genera site/ con selector de idiomas.

Despliegue en GitHub Pages

Desplegar sitio Docusaurus multilingüe:

# .github/workflows/deploy.yml
name: Desplegar Documentación

on:
  push:
    branches: [main]

jobs:
  deploy:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3
      - uses: actions/setup-node@v3
        with:
          node-version: 18
      - name: Instalar dependencias
        run: npm install
      - name: Construir sitio web
        run: npm run build
      - name: Desplegar en GitHub Pages
        uses: peaceiris/actions-gh-pages@v3
        with:
          github_token: ${{ secrets.GITHUB_TOKEN }}
          publish_dir: ./build

Acceso:

Mejores Prácticas y Errores Comunes

Mejores Prácticas

1. Comenzar con páginas de alto impacto

Priorizar:
1. README.md (lo primero que ven los usuarios)
2. Instalación/Primeros Pasos (bloqueador para la adopción)
3. Referencia de API (los desarrolladores lo necesitan)
4. Guía de Contribución (para colaboradores internacionales)

Omitir inicialmente:
- Registros de cambios (menos críticos)
- Documentación obsoleta
- Notas internas para desarrolladores

2. Mantener una guía de estilo de traducción

# Guía de Estilo de Traducción - Español

## Terminología
- "library" → "biblioteca" (no "librería" que significa librería de libros)
- "framework" → mantener como "framework" (ampliamente entendido)
- "deploy" → "desplegar" (no "implementar")

## Tono
- Usar "usted" formal para documentación técnica
- Usar "tú" informal para tutoriales/guías
- Ser conciso (el español es 20% más largo que el inglés en promedio)

## Código
- Nunca traducir bloques de código
- Mantener términos técnicos en inglés si son ampliamente usados

3. Versionar las traducciones

README.md:
<!--
Translation: Spanish
Source version: v2.5.0
Translated: 2025-01-25
Translator: @username
-->

# Instalación
...

Esto ayuda a rastrear cuándo las traducciones están desactualizadas.

4. Fomentar contribuciones de la comunidad

## Contribuyendo con Traducciones

¡Bienvenidas las traducciones! Para contribuir:

1. Haz fork de este repositorio
2. Crea el directorio `docs/[código-idioma]/`
3. Traduce archivos desde `docs/en/`
4. Envía un pull request

Guía de traducción: [TRANSLATION.md](./TRANSLATION.md)

Errores Comunes

Error 1: Traducir URLs y rutas de archivos

❌ INCORRECTO:
[Ver instalación](./instalación.md)
# El archivo no existe (tiene caracteres acentuados)

✅ CORRECTO:
[Ver instalación](./instalacion.md)
# Archivo: instalacion.md (sin acentos en el nombre del archivo)

Error 2: Romper enlaces relativos

Inglés: docs/en/guide.md enlaza a: ../assets/image.png
Español: docs/es/guia.md debe enlazar a: ../assets/image.png (¡misma ruta!)

¡Si el traductor español escribe: ./assets/image.png (¡roto!)

Error 3: Olvidar texto alternativo de imágenes

![](./screenshot.png)

Debería ser:
![Captura de pantalla del panel](./screenshot.png)

Español:
![Captura de pantalla del panel](./screenshot.png)

¡El texto alternativo es importante para la accesibilidad!

Error 4: Terminología inconsistente

Página 1: "servidor" (server)
Página 3: "server" (mantenido en inglés)
Página 5: "servidor" de nuevo

¡Elige uno y manténlo! Usa glosario.

Midiendo el Éxito

Métricas a Seguir

1. Uso de la documentación por idioma

Google Analytics (sitio de documentación):
- Tráfico por idioma (es, fr, de, etc.)
- Tiempo en la página (mayor = mejor comprensión)
- Tasa de rebote (menor para documentación en idioma nativo)

Ejemplo:
Documentación en inglés: 70% de usuarios
Documentación en español: 15% de usuarios (¡pero creciendo!)
Documentación en francés: 10% de usuarios
Otros: 5%

2. Insights de GitHub

GitHub Issues:
- Contar issues presentados en cada idioma
- Tiempo de respuesta a issues no ingleses

Pull Requests:
- Contribuciones desde países no angloparlantes
- Tras docs en español: +40% contribuciones de desarrolladores de LATAM

Stars/Forks:
- Seguimiento del crecimiento tras lanzamientos de traducciones

3. Crecimiento de la comunidad

Discord/Slack:
- Actividad en canales específicos por idioma
- Preguntas en idiomas nativos

Stack Overflow:
- Preguntas etiquetadas con tu librería en diferentes idiomas

4. Descargas de npm/PyPI por geografía

npm download stats por país:
Antes de la traducción al chino:
- China: 5% de descargas

Tras la traducción al chino:
- China: 22% de descargas (¡crecimiento 4.4x!)

Costes y ROI

Inversión en traducción

Librería open-source pequeña (5.000 palabras de docs):

Traducción profesional:

Traducción: 5.000 × $0.08 = $400 por idioma
Revisión: $100
Total por idioma: $500

3 idiomas (es, fr, zh): $1.500

Traducción asistida por IA:

Traducción IA (AI Trans): 5.000 palabras × 6 chars avg = 30.000 chars = $0.30
Revisor técnico: 5 horas × $75 = $375
Total por idioma: $375.30

3 idiomas: $1.126 (ahorra 25%)

Contribuida por la comunidad (gratis pero más lenta):

Configurar Crowdin: Gratis para open-source
Traducciones: Gratis (voluntarios de la comunidad)
Tiempo de revisión: Tu tiempo (5-10 horas por idioma)

3 idiomas: $0 coste monetario, 15-30 horas de inversión de tiempo

ROI para proyectos open-source

El ROI no siempre es monetario: es crecimiento de la comunidad:

Métricas antes de traducciones español/chino:
- Descargas npm mensuales: 50.000
- Stars en GitHub: 2.500
- Contribuidores: 40 (mayormente EE.UU./Europa)

6 meses tras traducciones:
- Descargas npm mensuales: 120.000 (crecimiento 140%)
- Stars en GitHub: 6.800 (crecimiento 172%)
- Contribuidores: 95 (55 nuevos de LATAM/Asia)

Valor de la comunidad: Incalculable
Coste: $1.500 para IA asistida + revisión

Herramientas y recursos

Herramientas de traducción

AI Trans

  • Preserva formato markdown automáticamente
  • Mantiene bloques de código intactos (nunca traduce código)
  • Conserva estructura de enlaces
  • $10 por 1M caracteres (Standard) o $50 por 10M caracteres (Business)
  • Paquete inicial gratis de 100K caracteres
  • 57 idiomas soportados

DeepL API

  • Alta calidad en idiomas europeos
  • Soporte markdown con preprocesamiento
  • $25 por millón de caracteres + $5.49/mes suscripción

Google Cloud Translation

  • 133 idiomas
  • Bueno para amplia cobertura de idiomas
  • $20 por millón de caracteres
  • Sin conciencia de markdown (requiere preprocesamiento)

Linting y validación de Markdown

markdownlint

  • Valida sintaxis markdown
  • Asegura formato consistente
  • CLI y plugins para editores
npm install -g markdownlint-cli
markdownlint docs/es/*.md

markdown-link-check

  • Valida todos los enlaces en archivos markdown
  • Detecta enlaces relativos rotos
npm install -g markdown-link-check
markdown-link-check docs/es/README.md

Generadores de sitios de documentación

Docusaurus (React)

  • Ideal para: Desarrolladores React, docs SPA modernas
  • i18n integrado
  • Gratis

VuePress (Vue.js)

  • Ideal para: Desarrolladores Vue
  • Configuración simple
  • Gratis

MkDocs (Python)

  • Ideal para: Proyectos Python
  • Configuración mínima
  • Gratis

GitBook

  • Ideal para: No desarrolladores (editor GUI)
  • Solución alojada
  • Gratis para open-source

Conclusión

Traducir documentación markdown es una de las contribuciones de mayor impacto que puedes hacer para construir una comunidad global de desarrolladores. Al hacer tu proyecto accesible en múltiples idiomas, desbloqueas la adopción por parte de miles de millones de desarrolladores no angloparlantes y fomentas una colaboración diversa e internacional.

Lecciones clave:

  • Preserva bloques de código, sintaxis markdown y estructura de enlaces
  • Usa directorios separados por idioma para una organización limpia
  • Automatiza la sincronización de traducciones con flujos de trabajo Git
  • Aprovecha traducción IA + revisión humana para calidad rentable
  • Construye sitios multilingües con Docusaurus, VuePress o MkDocs
  • Rastrea traducciones con metadatos y chequeos automatizados
  • Fomenta contribuciones comunitarias para traducciones sostenibles

Herramientas IA modernas como AI Trans pueden reducir los costes de traducción un 70-90% mientras preservan todos los elementos markdown críticos como bloques de código, enlaces y formato. El flujo óptimo: IA traduce la documentación inicial (minutos, no semanas), revisores técnicos aseguran precisión y consistencia, luego la comunidad ayuda a mantener las actualizaciones.

Coste típico de traducción de documentación:

  • Proyecto pequeño (50K chars): $0.50 con AI Trans vs. $400 traducción humana
  • Proyecto mediano (200K chars): $2 con AI Trans vs. $1.600 traducción humana
  • Proyecto grande (1M chars): $10 con AI Trans vs. $8.000 traducción humana

Ahorro de tiempo: 95%+ (minutos vs. semanas)

Ya sea que mantengas una pequeña librería de utilidades o un gran framework open-source, la documentación traducida elimina barreras idiomáticas y da la bienvenida a desarrolladores de todo el mundo a tu proyecto.

¿Listo para traducir tu documentación? Comienza a traducir tus documentos markdown con el motor de traducción que preserva el código de AI Trans y llega a desarrolladores globales.