Comment traduire la documentation Markdown pour les développeurs

A
Écrit par
AI Trans Team
24 min de lecture
334 vues

Les projets open-source vivent ou meurent par leur documentation. Une bibliothèque brillante avec un README en anglais uniquement n'atteindra jamais les développeurs en Chine, au Japon ou au Brésil — des marchés représentant 40 % de la population mondiale de développeurs. Pourtant, la traduction de documentation markdown est particulièrement ardue : il faut préserver les blocs de code, maintenir la structure des liens, gérer le contrôle de version et garder les traductions synchronisées au fur et à mesure que le projet évolue.

Selon le rapport GitHub Octoverse 2024, 78 % des contributions open-source proviennent de locuteurs non natifs d'anglais, pourtant 92 % de la documentation reste en anglais uniquement. Cela crée une barrière massive à l'adoption, à la contribution et à la construction de communautés mondiales.

Ce guide complet vous montrera comment traduire efficacement la documentation markdown : de la préservation de la syntaxe des code et des liens à la gestion des flux de traduction dans Git, l'automatisation des mises à jour, et la création de sites de documentation multilingues avec des outils comme Docusaurus, VuePress et MkDocs.

Pourquoi la traduction de documentation Markdown est différente

Markdown est un langage de balisage conçu pour l'écriture technique. Quand vous traduisez des docs markdown, vous ne traduisez pas seulement de la prose — vous gérez un mélange complexe de code, de syntaxe de formatage, de liens hypertextes, de contrôle de version et de mises à jour continues.

Le défi de la traduction Markdown

1. Les blocs de code ne doivent JAMAIS être traduits

## Installation

Run the following command:

```bash
npm install awesome-library

Quand on traduit en espagnol :
- "Installation" → "Instalación" ✅
- "Run the following command:" → "Ejecuta el siguiente comando:" ✅
- `npm install awesome-library` → GARDER INCHANGÉ ✅

Les traducteurs génériques cassent souvent en traduisant le code !

2. La syntaxe Markdown doit être préservée

**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. Les liens relatifs doivent être mis à jour pour les versions linguistiques

English: [See API Reference](./api-reference.md)
Spanish: [Ver Referencia API](./referencia-api.md)
         ^link text translated  ^filename also translated

Both must exist and link correctly!

4. La documentation évolue — les traductions aussi

Day 1: Translate README.md (English → Spanish)
Day 15: English README.md updated (new feature added)
Problem: Spanish version is now outdated!

Need workflow to track and sync translation updates.

Impact dans le monde réel

Success Story: Vue.js

  • Translated documentation to 10+ languages
  • Chinese translation critical for Asian adoption
  • Community-driven translation workflow via GitHub
  • Result: 40% of npm downloads from Asia, massive Chinese community

Success Story: React

  • Official translations in 30+ languages managed by community
  • Separate repos for each language (react.dev, zh-hans.react.dev, es.react.dev)
  • Translation guide and automation tools provided
  • Result: Global developer adoption, contributions from 100+ countries

Success Story: Rust Programming Language

  • "The Rust Book" translated to 15+ languages
  • Community maintains translations via mdBook
  • Japanese translation drove 300% increase in Japanese Rust developers
  • Active translation teams keep docs in sync with English updates

Failure Case: Abandoned Translations Many open-source projects have outdated translations:

  • French README last updated 2 years ago
  • English README updated weekly
  • Result: French developers confused, abandon project or struggle with outdated info

Fondamentaux Markdown pour la traduction

Éléments de base du Markdown

Titres :

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

Translate text, preserve symbols:
# Installation → # Instalación
## Quick Start → ## Inicio Rápido

Mise en évidence :

**bold text** → **texte en gras**
*italic text* → *texte en italique*
~~strikethrough~~ → ~~barré~~

Keep markdown syntax exactly as-is.

Listes :

Unordered:
- Item one
- Item two
  - Nested item

Ordered:
1. First step
2. Second step
3. Third step

Translate content, keep structure:
- Premier élément
- Deuxième élément
  - Élément imbriqué

Liens :

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

Translate text, keep URL (unless also translating linked page):
[Documentation](https://example.com/docs)

Or if Spanish docs exist:
[Documentation](https://example.com/es/docs)

Images :

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

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

Translate alt text and title:
![Capture d'écran du tableau de bord](./images/dashboard.png "Tableau de bord d'administration")

Image filename usually stays the same (shared resource).

Blocs de code :

Inline code: Use `npm install` to install packages.

Traduire le prose, préserver le code : Utilisez npm install pour installer des paquets.

Blocs de code délimités :

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

NEVER translate code inside fences. Keep exactly as-is.


**Tableaux :**
```markdown
| English | Spanish | French |
|---------|---------|--------|
| Hello   | Hola    | Bonjour|
| Goodbye | Adiós   | Au revoir|

Translate content cells, keep structure:
| Anglais  | Espagnol | Français |
|---------|---------|---------|
| Hello   | Hola    | Bonjour |
| Goodbye | Adiós   | Au revoir|

Fonctionnalités avancées de Markdown

Bloc-notes :

> This is important information that users should know.

Translate content, keep > symbol:
> Ceci est une information importante que les utilisateurs doivent connaître.

Règles horizontales :

---
or
***
or
___

Keep unchanged (visual separator, no text).

HTML dans Markdown :

<div class="warning">
  Be careful when using this feature!
</div>

Keep HTML tags, translate content:
<div class="warning">
  Soyez prudent lors de l'utilisation de cette fonctionnalité !
</div>

Notes de bas de page :

Here is a footnote reference[^1].

[^1]: This is the footnote content.

Translate both reference context and footnote text:
Voici une référence de note de bas de page[^1].

[^1]: Ceci est le contenu de la note de bas de page.

Flux de travail de traduction pour les documents Markdown

Option 1 : Fichiers séparés par langue (Recommandé)

Structure des répertoires :

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

Avantages : ✅ Séparation claire (pas de langues mélangées) ✅ Chaque langue peut avoir une structure de fichiers différente si nécessaire ✅ Facile de voir quels fichiers sont traduits ✅ Liens simples au sein de la même langue

Inconvénients : ❌ Plus difficile de suivre les traductions obsolètes ❌ Plus de fichiers à gérer

Option 2 : Basée sur les suffixes (Alternative)

Structure des répertoires :

docs/
├── README.md (English default)
├── README.es.md (Spanish)
├── README.fr.md (French)
├── README.zh.md (Chinese)
├── installation.md
├── installation.es.md
├── installation.fr.md
└── installation.zh.md

Avantages : ✅ Fichiers traduits à côté de la source (plus facile de repérer les traductions manquantes) ✅ Tri alphabétique par nom de base

Inconvénients : ❌ Devient désordonné avec de nombreuses langues ❌ Plus difficile de parcourir les documents spécifiques à une langue

Verdict : Utiliser des répertoires séparés pour les projets avec une documentation complète.

Processus de traduction étape par étape

Étape 1 : Configurer la structure des répertoires de traduction

# Create language directories
mkdir -p docs/es docs/fr docs/zh

# Copy English structure to new language
cp -r docs/en/* docs/es/

# Now translate each file in docs/es/

Étape 2 : Créer le suivi des traductions

translation-status.md :

# Translation Status

## Spanish (es)

| File | Status | Last Updated | Translator |
|------|--------|--------------|------------|
| README.md | ✅ Current | 2025-01-25 | @translator1 |
| installation.md | ⚠️ Outdated | 2025-01-10 | @translator1 |
| api-reference.md | ❌ Not started | - | - |

## French (fr)

| File | Status | Last Updated | Translator |
|------|--------|--------------|------------|
| README.md | ✅ Current | 2025-01-22 | @translator2 |
| installation.md | ✅ Current | 2025-01-22 | @translator2 |

Or use automated tools (covered later).

Étape 3 : Traduire avec préservation des blocs de code

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.


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

## Prerequisitos

- 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.


**Ce qui a changé :**
- Headers translated
- Prose translated
- Code blocks UNCHANGED (bash commands, JavaScript code)
- Inline code UNCHANGED (`test.js`, npm package names)
- File structure maintained

**Étape 4 : Mettre à jour les liens internes**

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

Vérifiez la Référence API pour une documentation détaillée.

Français (fr/README.md):

Consultez le [Guide d'Installation](./installation.md) pour les instructions de configuration.

Consultez la [Référence API](./reference-api.md) pour une documentation détaillée.

Critique :

  • Texte des liens traduit
  • URL du lien mise à jour vers le nom de fichier français
  • Les fichiers français doivent exister réellement !

Étape 5 : Valider dans Git

git add docs/fr/
git commit -m "Ajouter la traduction française des docs d'installation"
git push origin main

Gestion des Cas Particuliers

1. Commentaires de Code dans les Blocs de Code

Devez-vous traduire les commentaires ?

## Exemple

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

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

**Option A : Garder les commentaires de code en anglais**
```javascript
// Initialize the application
const app = createApp();

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

Avantages : Universel (les développeurs lisent les commentaires en anglais) Inconvénients : Moins accessible aux débutants

Option B : Traduire les commentaires de code

// Initialiser l'application
const app = createApp();

// Démarrer le serveur sur le port 3000
app.listen(3000);

Avantages : Plus accessible aux développeurs non anglophones Inconvénients : Le code n'est plus copiable-collable (mélange de langues)

Recommandation : Garder l'anglais pour les exemples de code de production. Traduire pour les tutoriels/contenus d'apprentissage où la compréhension > copier-coller.

2. Noms de Variables et de Fonctions

Ne jamais traduire dans le code :

// MAUVAIS - Ne pas traduire les noms de variables
function obtenirUtilisateur(idUtilisateur) {
  return database.chercher(idUtilisateur);
}

// BON - Garder le code en anglais
function getUser(userId) {
  return database.find(userId);
}

Exception : Pseudocode ou exemples conceptuels

Anglais :

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


Français (acceptable pour le pseudocode) :

si utilisateur est connecté : afficher tableau de bord sinon : rediriger vers connexion


3. Exemples de Ligne de Commande

Traduire les descriptions, pas les commandes :

Anglais :
## Générer un Nouveau Composant

Utilisez la CLI pour créer un composant :

```bash
npx create-component MyComponent

Cela crée un nouveau composant dans src/components/MyComponent/.

Français :

Générer un Nouveau Composant

Utilisez la CLI pour créer un composant :

npx create-component MyComponent

Cela crée un nouveau composant dans src/components/MyComponent/.


**Les commandes restent en anglais, les explications sont traduites.**

### 4. URLs des Endpoints API

**Garder les URLs inchangées :**

```markdown
Anglais :
### Obtenir le Profil Utilisateur

GET /api/v1/users/:id


Français :
### Obtenir le Profil Utilisateur

GET /api/v1/users/:id


Pas : `GET /api/v1/utilisateurs/:id` (casserait l'API !)

5. Variables d'Environnement et Configuration

Garder les noms de variables, traduire les descriptions :

Anglais :
Définissez votre clé API :

```bash
export API_KEY=your_key_here

Français : Configurez votre clé API :

export API_KEY=votre_cle_ici

API_KEY reste en anglais (nom de variable d'environnement). your_key_herevotre_cle_ici (valeur d'exemple, peut être traduite).


### 6. Badges et Liens Shields

**Courants dans les fichiers README.md :**

```markdown
Anglais :
[![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)

Français : Garder les badges tels quels
(Ils sont automatiques depuis des services externes, indépendants de la langue)

Ou si vous voulez des badges avec texte traduit :
[![État de Construction](https://travis-ci.org/user/repo.svg?branch=main)](https://travis-ci.org/user/repo)

Généralement : Garder les badges en anglais (les développeurs les attendent, le statut est universel).

Automatisation et Outils

Systèmes de Gestion de Traduction pour Markdown

1. Crowdin

Fonctionnalités :

  • Intégration GitHub/GitLab
  • Support des fichiers Markdown
  • Préserve automatiquement les blocs de code
  • Traduction communautaire (contributeurs traduisent via interface web)
  • Mémoire de traduction

Workflow :

1. Connecter Crowdin au repo GitHub
2. Crowdin détecte les nouveaux/fichiers modifiés dans docs/en/
3. Les traducteurs traduisent via l'interface web Crowdin
4. Crowdin soumet une pull request avec les traductions
5. Réviser et merger

Tarification : Gratuit pour open-source, 40$/mois+ pour commercial

2. Lokalise

Fonctionnalités :

  • Similaire à Crowdin
  • Meilleure API pour l'automatisation
  • Support Markdown
  • Outil CLI pour synchronisation

Workflow :

# Uploader les fichiers source
lokalise2 file upload --lang-iso fr --file docs/fr/README.md

# Télécharger les traductions
lokalise2 file download --lang-iso fr --dest docs/fr/

Tarification : 120$/mois+

3. Transifex

Fonctionnalités :

  • Amical pour open-source
  • Support Markdown
  • Révisions de traduction
  • Contrôles qualité

Tarification : Gratuit pour open-source, 30$/mois+ pour commercial

Workflows de Traduction Basés sur Git

Approche : Branches séparées pour les traductions

# Branche principale : Documentation en anglais
git checkout main

# Créer une branche de traduction
git checkout -b translate/spanish

# Traduire les fichiers
# ...

# Commit
git add docs/es/
git commit -m "Ajouter la traduction espagnole"

# Pousser et créer une PR
git push origin translate/spanish
# Ouvrir une pull request sur GitHub

Avantages :

  • Les traducteurs travaillent indépendamment
  • Processus de revue via PR
  • Suivi des traductions comme des fonctionnalités

Approche : Suivi des traductions avec métadonnées Git

en/installation.md :

<!--
Dernière mise à jour : 2025-01-25
Statut de traduction :
- es : 2025-01-20 (obsolète)
- fr : 2025-01-24 (à jour)
- zh : non commencé
-->

# Installation
...

Un script automatisé peut vérifier ces commentaires et signaler les traductions obsolètes.

Détection automatique des mises à jour de traduction

Script pour détecter les traductions obsolètes :

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} - Non traduit")
                continue

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

            if en_modified > lang_modified:
                print(f"❌ {lang}/{file} - Obsolète (EN mis à jour après traduction)")
            else:
                print(f"✅ {lang}/{file} - À jour")

check_translation_status()

Exécuter en tant que GitHub Action :

# .github/workflows/check-translations.yml
name: Vérifier le statut des traductions

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

jobs:
  check:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3
      - name: Vérifier les traductions
        run: python scripts/check-translations.py
      - name: Commenter la 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

Traduction Markdown assistée par IA

AI Trans pour les docs markdown :

Fonctionnalités :

  • Préserve automatiquement les blocs de code
  • Maintient la syntaxe markdown
  • Garde les liens intacts
  • Rapide (traduire toute la documentation en minutes)

Workflow :

# Traduire README.md de l'anglais vers l'espagnol
ai-translator translate \
  --input docs/en/README.md \
  --output docs/es/README.md \
  --source en \
  --target es \
  --format markdown

# Traduction par lots de tous les fichiers
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

Tarification : 10 $ pour 1M de caractères (Standard) ou 50 $ pour 10M de caractères (Business) Pack de démarrage gratuit : 100 000 caractères pour tester Exemples de coûts typiques :

  • Petits docs (50K chars) : 0,50 $
  • Docs moyens (200K chars) : 2 $
  • Gros docs (1M chars) : 10 $

Meilleure pratique : Traduction IA → revue humaine → commit

Construction de sites de documentation multilingues

Docusaurus (basé sur React)

Configuration :

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

Configuration 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: '中文' }
    }
  },
  // ...
};

Structure des répertoires :

docs/
├── intro.md (anglais par défaut)
├── installation.md
i18n/
├── es/
│   └── docusaurus-plugin-content-docs/
│       └── current/
│           ├── intro.md (espagnol)
│           └── installation.md
├── fr/
│   └── docusaurus-plugin-content-docs/
│       └── current/
│           ├── intro.md (français)
│           └── installation.md

Build :

# Build de toutes les langues
npm run build

# Build d'une langue spécifique
npm run build -- --locale es

Résultat : Sélecteur de langue automatique, site multilingue optimisé SEO.

VuePress (basé sur Vue)

Configuration 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: 'Documentation pour awesome library'
    }
  },
  themeConfig: {
    locales: {
      '/': {
        selectText: 'Langues',
        label: 'English',
        nav: [
          { text: 'Guide', link: '/guide/' },
          { text: 'API', link: '/api/' }
        ]
      },
      '/es/': {
        selectText: 'Idiomas',
        label: 'Español',
        nav: [
          { text: 'Guía', link: '/es/guide/' },
          { text: 'API', link: '/es/api/' }
        ]
      }
    }
  }
};

**Répertoire :**

docs/ ├── README.md (Anglais) ├── guide/ │ └── installation.md ├── es/ │ ├── README.md (Espagnol) │ └── guide/ │ └── installation.md └── fr/ ├── README.md (Français) └── guide/ └── installation.md


### MkDocs (basé sur Python)

**Installation avec le plugin i18n :**

```bash
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:
  - Accueil: index.md
  - Installation: installation.md
  - Référence API: api.md

Répertoire :

docs/
├── index.md (Anglais par défaut)
├── index.es.md (Espagnol)
├── index.fr.md (Français)
├── installation.md
├── installation.es.md
├── installation.fr.md

Construction :

mkdocs build

Résultat : Génère site/ avec un sélecteur de langue.

Déploiement sur GitHub Pages

Déployer un site Docusaurus multilingue :

# .github/workflows/deploy.yml
name: Déployer la Documentation

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: Installer les dépendances
        run: npm install
      - name: Construire le site
        run: npm run build
      - name: Déployer sur GitHub Pages
        uses: peaceiris/actions-gh-pages@v3
        with:
          github_token: ${{ secrets.GITHUB_TOKEN }}
          publish_dir: ./build

Accès :

Bonnes Pratiques et Erreurs Courantes

Bonnes Pratiques

1. Commencer par les pages à fort impact

Prioriser :
1. README.md (première chose que voient les utilisateurs)
2. Installation/Démarrage rapide (obstacle à l'adoption)
3. Référence API (nécessaire pour les développeurs)
4. Guide de contribution (pour les contributeurs internationaux)

Ignorer initialement :
- Journaux des changements (moins critique)
- Documentation obsolète
- Notes internes des développeurs

2. Maintenir un guide de style de traduction

# Guide de Style de Traduction - Espagnol

## Terminologie
- "library" → "biblioteca" (pas "librería" qui signifie librairie)
- "framework" → garder "framework" (largement compris)
- "deploy" → "desplegar" (pas "implementar")

## Ton
- Utiliser le "usted" formel pour la documentation technique
- Utiliser le "tú" informel pour les tutoriels/guides
- Être concis (l'espagnol est 20% plus long que l'anglais en moyenne)

## Code
- Ne jamais traduire les blocs de code
- Garder les termes techniques en anglais s'ils sont largement utilisés

3. Versionner les traductions

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

# Instalación
...

Cela aide à suivre quand les traductions sont en retard.

4. Encourager les contributions communautaires

## Contribuer aux Traductions

Nous accueillons les traductions ! Pour contribuer :

1. Forker ce dépôt
2. Créer le répertoire `docs/[code-langue]/`
3. Traduire les fichiers depuis `docs/en/`
4. Soumettre une pull request

Guide de traduction : [TRANSLATION.md](./TRANSLATION.md)

Erreurs Courantes

Erreur 1 : Traduire les URL et chemins de fichiers

❌ MAUVAIS :
[Voir installation](./instalación.md)
# Le fichier n'existe pas (caractères accentués)

✅ BON :
[Voir installation](./instalacion.md)
# Fichier : instalacion.md (pas d'accents dans le nom de fichier)

Erreur 2 : Casser les liens relatifs

Anglais : docs/en/guide.md lie vers : ../assets/image.png
Espagnol : docs/es/guia.md doit lier vers : ../assets/image.png (même chemin !)

Si le traducteur espagnol écrit : ./assets/image.png (cassé !)

Erreur 3 : Oublier le texte alternatif des images

![](./screenshot.png)

Devrait être :
![Capture d'écran du tableau de bord](./screenshot.png)

Espagnol :
![Captura de pantalla del panel](./screenshot.png)

Le texte alternatif est important pour l'accessibilité !

Erreur 4 : Terminologie incohérente

Page 1 : "servidor" (serveur)
Page 3 : "server" (gardé en anglais)
Page 5 : "servidor" à nouveau

Choisir un terme et s'y tenir ! Utiliser un glossaire.

Mesurer le Succès

Métriques à Suivre

1. Utilisation de la documentation par langue

Google Analytics (site de documentation) :
- Trafic par langue (es, fr, de, etc.)
- Temps sur la page (plus élevé = meilleure compréhension)
- Taux de rebond (plus bas pour les docs dans la langue native)

Exemple :
Docs anglais : 70% des utilisateurs
Docs espagnols : 15% des utilisateurs (mais en croissance !)
Docs français : 10% des utilisateurs
Autres : 5%

2. Insights GitHub

Problèmes GitHub :
- Compter les problèmes signalés dans chaque langue
- Temps de réponse aux problèmes en langues non anglaises

Requêtes de tirage (Pull Requests) :
- Contributions provenant de pays non anglophones
- Après les docs espagnoles : +40 % de contributions des développeurs LATAM

Étoiles/Forks :
- Suivre la croissance après les sorties de traductions

3. Croissance de la communauté

Discord/Slack :
- Activité des chaînes spécifiques à une langue
- Questions en langues maternelles

Stack Overflow :
- Questions étiquetées avec votre bibliothèque dans différentes langues

4. Téléchargements npm/PyPI par géographie

npm statistiques de téléchargement par pays :
Avant la traduction chinoise :
- Chine : 5 % des téléchargements

Après la traduction chinoise :
- Chine : 22 % des téléchargements (croissance x4,4 !)

Coûts et ROI

Investissement en traduction

Petite bibliothèque open-source (5 000 mots de docs) :

Traduction professionnelle :

Traduction : 5 000 × 0,08 $ = 400 $ par langue
Relecture : 100 $
Total par langue : 500 $

3 langues (es, fr, zh) : 1 500 $

Traduction assistée par IA :

Traduction IA (AI Trans) : 5 000 mots × 6 caractères en moyenne = 30 000 caractères = 0,30 $
Relecteur technique : 5 heures × 75 $ = 375 $
Total par langue : 375,30 $

3 langues : 1 126 $ (économies de 25 %)

Contributions communautaires (gratuites mais plus lentes) :

Mise en place de Crowdin : Gratuit pour l'open-source
Traductions : Gratuites (volontaires de la communauté)
Temps de relecture : Votre temps (5-10 heures par langue)

3 langues : 0 $ en coût monétaire, 15-30 heures d'investissement temps

ROI pour les projets open-source

Le ROI n'est pas toujours monétaire — c'est la croissance de la communauté :

Métriques avant traductions espagnole/chinoise :
- Téléchargements npm mensuels : 50 000
- Étoiles GitHub : 2 500
- Contributeurs : 40 (surtout US/Europe)

6 mois après les traductions :
- Téléchargements npm mensuels : 120 000 (croissance de 140 %)
- Étoiles GitHub : 6 800 (croissance de 172 %)
- Contributeurs : 95 (55 nouveaux de LATAM/Asie)

Valeur communautaire : Inestimable
Coût : 1 500 $ pour traduction assistée par IA + relecture

Outils et ressources

Outils de traduction

AI Trans

  • Préserve automatiquement la mise en forme markdown
  • Garde les blocs de code intacts (ne traduit jamais le code)
  • Maintient la structure des liens
  • 10 $ par 1M de caractères (Standard) ou 50 $ par 10M de caractères (Business)
  • Pack de démarrage gratuit 100K caractères
  • 57 langues prises en charge

DeepL API

  • Haute qualité pour les langues européennes
  • Support markdown avec prétraitement
  • 25 $ par million de caractères + abonnement 5,49 $/mois

Google Cloud Translation

  • 133 langues
  • Bon pour une couverture linguistique large
  • 20 $ par million de caractères
  • Pas de conscience markdown (nécessite prétraitement)

Lint et validation Markdown

markdownlint

  • Valide la syntaxe markdown
  • Assure une mise en forme cohérente
  • CLI et plugins d'éditeur
npm install -g markdownlint-cli
markdownlint docs/es/*.md

markdown-link-check

  • Valide tous les liens dans les fichiers markdown
  • Détecte les liens relatifs cassés
npm install -g markdown-link-check
markdown-link-check docs/es/README.md

Constructeurs de sites de documentation

Docusaurus (React)

  • Idéal pour : Développeurs React, docs SPA modernes
  • i18n intégré
  • Gratuit

VuePress (Vue.js)

  • Idéal pour : Développeurs Vue
  • Configuration simple
  • Gratuit

MkDocs (Python)

  • Idéal pour : Projets Python
  • Configuration minimale
  • Gratuit

GitBook

  • Idéal pour : Non-développeurs (éditeur GUI)
  • Solution hébergée
  • Gratuit pour l'open-source

Conclusion

Traduire la documentation markdown est l'une des contributions à fort impact que vous pouvez faire pour construire une communauté de développeurs mondiale. En rendant votre projet accessible dans plusieurs langues, vous débloquez l'adoption par des milliards de développeurs non anglophones et favorisez une collaboration diversifiée et internationale.

Points clés :

  • Préserver les blocs de code, la syntaxe markdown et la structure des liens
  • Utiliser des répertoires séparés par langue pour une organisation claire
  • Automatiser la synchronisation des traductions avec les workflows Git
  • Exploiter la traduction IA + relecture humaine pour une qualité rentable
  • Construire des sites multilingues avec Docusaurus, VuePress ou MkDocs
  • Suivre les traductions avec des métadonnées et des vérifications automatisées
  • Encourager les contributions communautaires pour une traduction durable

Les outils IA modernes comme AI Trans peuvent réduire les coûts de traduction de 70-90 % tout en préservant tous les éléments markdown critiques comme les blocs de code, les liens et la mise en forme. Le workflow optimal : l'IA traduit la documentation initiale (minutes, pas de semaines), les relecteurs techniques assurent la précision et la cohérence, puis la communauté aide à maintenir les mises à jour.

Coût typique de traduction de documentation :

  • Petit projet (50K caractères) : 0,50 $ avec AI Trans vs. 400 $ traduction humaine
  • Projet moyen (200K caractères) : 2 $ avec AI Trans vs. 1 600 $ traduction humaine
  • Grand projet (1M caractères) : 10 $ avec AI Trans vs. 8 000 $ traduction humaine

Économies de temps : 95 %+ (minutes vs. semaines)

Que vous mainteniez une petite bibliothèque utilitaire ou un framework open-source majeur, une documentation traduite supprime les barrières linguistiques et accueille les développeurs du monde entier dans votre projet.

Prêt à traduire votre documentation ? Commencez à traduire vos docs Markdown avec le moteur de traduction préservant le code d'AI Trans et atteignez les développeurs du monde entier.