Sept langues en une journée, et les deux pages que j'ai retenues
Comment j'ai fait passer laithjunaidy.com de trois langues à sept en trois heures, les deux contrôles avant publication et leurs consignes à copier.
Sur cette page

Le matin du 9 novembre 2026, ce site parlait trois langues : anglais, arabe et chinois. Elles couvrent les marchés où je travaille aujourd’hui. Je voulais ouvrir le suivant avant d’en avoir besoin.
À 10:07, j’ai donné la direction :
Ajoute l'allemand, le français, l'espagnol et le turc à tout le site. Chaque étude de cas, chaque article, chaque page de recherche. Je veux aussi proposer mes services dans l'Union européenne.À 13:21, le site était en ligne en sept langues. Trois heures et quatorze minutes.
Je construis avec des agents de programmation IA, et je les organise comme mon équipe. Je donne la direction et les règles. Ils réalisent le travail. Rien n’est publié avant qu’un second agent, qui n’a rien écrit de ce travail, ne l’ait lu comme une personne qui le découvre. Cette dernière règle a arrêté ce lancement deux fois en trois heures, à juste titre dans les deux cas.
Ce texte s’adresse à toute personne qui ajoute une langue à un site ou à un produit. Pas besoin de savoir coder pour le suivre. Toutes mes consignes sont ici, prêtes à être copiées.
Quelle langue le visiteur voit-il ?
La première décision ne concernait pas la traduction. Elle concernait la langue sur laquelle une personne arrive.
La plupart des sites se basent sur le pays du visiteur. C’est une impasse. Un Allemand qui travaille à Dubaï reçoit l’arabe. Un responsable anglophone à Amman reçoit l’arabe. Un fondateur saoudien en déplacement à Berlin reçoit l’allemand. Les trois réponses sont fausses, et chacun avait déjà donné la bonne : la langue sur laquelle son téléphone est réglé.
J’ai donc fixé cette règle :
Ouvre le site dans la langue du système du visiteur, jamais selon son pays. Un téléphone réglé sur l'arabe reçoit l'arabe. Fais-le uniquement sur la page d'accueil : un lien partagé doit s'ouvrir exactement tel qu'il a été envoyé. Si le visiteur choisit une langue dans le menu, donne ensuite la priorité à son choix. Ne redirige jamais un moteur de recherche. Pour une langue que nous ne proposons pas encore, affiche l'anglais.
Voici comment le site en ligne répond à cinq visiteurs le 14 novembre :
| Le visiteur | Ce que fait le site |
|---|---|
| Téléphone réglé sur l’allemand, ouvre l’accueil | Redirigé vers l’accueil allemand |
| Téléphone réglé sur l’arabe, puis l’anglais, ouvre l’accueil | Redirigé vers l’accueil arabe |
| Téléphone réglé sur l’anglais, puis l’arabe, ouvre l’accueil | Reste sur l’anglais |
| Téléphone réglé sur l’italien, ouvre l’accueil | Reste sur l’anglais |
| Téléphone réglé sur l’arabe, ouvre un lien partagé vers une étude de cas | Ouvre le lien tel qu’il a été envoyé |
La troisième ligne est celle que la détection du pays ne peut pas traiter. Ce lecteur connaît l’arabe et préfère l’anglais, donc il reste sur l’anglais.
Est-ce prêt à être publié ?
À 11:21, les nouvelles langues étaient prêtes. J’ai dit :
Publie maintenant.Le site n’a pas été publié. Ma propre règle l’a retenu : la revue n’était pas encore revenue. Voici la revue par laquelle passe chaque lancement :
Examine ce lancement comme une personne qui visite le site pour la première fois. Tu n'as rien écrit de ce travail. Ouvre chaque nouvelle page dans chaque langue et lis-la jusqu'au bout. Signale tout ce qu'un visiteur pourrait trouver vide, incorrect ou inachevé. Ne corrige rien. Fais uniquement un rapport.À 11:29, elle est revenue avec un avertissement : ne pas publier tout de suite.
Les nouvelles langues utilisaient les mêmes modèles que les trois premières. Chacune avait donc une page Projets, une page Articles et une page Boutique dès la première minute. Les traductions arrivaient encore. Voici la page Articles allemande telle que cette version l’avait produite :

Aucun test ne l’avait détecté, car chacun vérifiait si la page existait. Un visiteur allemand serait arrivé sur un site lui annonçant, dans un bon allemand, qu’il n’y avait rien ici.
La correction tient en une règle qui mérite d’être reprise :
Crée une page de liste pour une langue uniquement quand elle a quelque chose à répertorier. Tant que le premier article dans cette langue n'existe pas, ne génère pas sa page Articles, ne crée pas de lien vers elle et ne la montre pas aux moteurs de recherche. Applique la même règle aux pages Projets et Boutique.La revue a recensé neuf problèmes en tout. Un autre mérite d’être connu. Un lecteur sur une étude de cas en anglais, avec un téléphone réglé sur l’allemand, a appuyé sur Accueil et s’est retrouvé en allemand. Sa présence sur cette page constituait déjà un choix de l’anglais. La redirection laisse désormais tranquilles les clics provenant de l’intérieur du site.
Un fichier traduit est-il un fichier terminé ?
À 13:16, les 108 fichiers traduits étaient là, 27 par nouvelle langue, et les tests passaient. J’ai demandé une nouvelle revue.
À 13:19, la revue est revenue avec un constat. Les versions espagnole et turque de la checklist du processus de design, le plus long article du site, étaient tronquées.
| Version | Mots | Titres |
|---|---|---|
| Anglais | 10,918 | 83 |
| Allemand | 10,973 | 83 |
| Turc | 5,318 | 50 |
| Espagnol | 2,914 | 16 |
Le fichier espagnol s’arrêtait après 16 titres sur 83. Il avait un titre traduit, un résumé traduit, une date valide et une mise en forme propre. Rien n’y était cassé. Il était court, et le haut de la page semblait parfait.
Une traduction qui s’arrête trop tôt ressemble exactement à une traduction terminée tant que personne ne fait défiler la page. J’ai donc fait du défilement une règle. Voici le contrôle, utilisable sur n’importe quel ensemble de fichiers traduits :
Compare chaque fichier traduit à son original. Pour chaque paire, compte les titres et les mots. Dresse la liste des traductions qui ont moins de 80 pour cent des titres de l'original, en indiquant les deux nombres. Ne corrige rien. Fais uniquement un rapport.Sur ce site, le contrôle s’exécute désormais avant chaque lancement, et une traduction qui échoue bloque la publication. Le fichier espagnol a échoué avec 16 titres sur 83. Le fichier turc a échoué avec 50 sur 83.
Je n’ai pas publié les deux fichiers courts et je n’ai pas retardé les 106 autres pour eux. Je les ai tous deux marqués comme brouillons. Un brouillon n’a pas de page : les douze liens qui pointaient vers ces deux pages pointent donc désormais vers l’article anglais. Le site a été mis en ligne à 13:21, deux minutes après le constat.

Au moment où j’écris, le 14 novembre, les adresses espagnole et turque de cette checklist renvoient « page introuvable », tandis que les adresses allemande et française renvoient l’article. Les deux pages retenues le sont toujours.
Si vous ajoutez une langue
- Au lieu de choisir la langue selon le pays du visiteur, lisez celle que son appareil demande.
- Au lieu de rediriger chaque page, redirigez l’accueil et ouvrez les liens partagés tels qu’ils ont été envoyés.
- Au lieu de générer toutes les pages dans toutes les langues, créez une page de liste quand son premier contenu existe.
- Au lieu de vous fier à des tests au vert, demandez à une personne qui n’a pas construit le site d’ouvrir la nouvelle langue comme un visiteur.
- Au lieu de vérifier qu’une traduction existe, vérifiez qu’elle a la taille de l’original. Comptez les titres.
- Au lieu de publier une traduction trop courte ou de tout retarder pour elle, marquez-la comme brouillon et faites pointer ses liens vers l’original.
La question que j’attends : pourquoi ne pas terminer les deux fichiers et tout publier au complet ? Je ne l’ai pas fait pour deux raisons. 106 fichiers sur 108 étaient entiers, et les deux fichiers courts concernent un seul article dans deux des quatre langues. Et un brouillon ne retire rien au lecteur espagnol ou turc : la veille, cet article n’existait pas dans sa langue, et il n’y existe toujours pas.