Tous les articles

FourA Digest, 19 au 26 juin 2026

foura.ai est désormais disponible en six langues : routage par préfixe d'URL, SEO et hreflang adaptés à la locale, et un sitemap XSLT qui s'affiche sous forme de tableau stylisé dans les navigateurs.

Highlights

foura.ai est désormais disponible en six langues. Le site, l'interface du Dashboard et les neuf pages marketing ont été extraits, traduits et reconfigurés pour servir la bonne locale en fonction de l'URL. Ouvrez le sitemap dans un navigateur et il s'affichera sous forme de tableau stylisé plutôt qu'en XML brut.

What's New

Le site parle six langues

Anglais, bulgare, allemand, polonais, vietnamien et chinois. Le routage par préfixe d'URL signifie que chaque locale réside sur son propre chemin : /de/, /pl/, /zh/, etc. Le chemin racine sert la version anglaise, et /en/ redirige vers celui-ci afin qu'il n'y ait qu'une seule URL canonique par page en anglais. Un globe dans la navigation supérieure permet de changer de langue, et votre choix persiste d'une page à l'autre.

Le rendu côté serveur fait le plus gros du travail pour le SEO. Chaque page est désormais livrée avec un attribut lang correct, un ensemble complet de balises hreflang, des métadonnées Open Graph spécifiques à la locale, ainsi qu'un <title> et une <meta description> localisés. Le sitemap expose chaque URL pour toutes les locales. Les moteurs de recherche qui préfèrent une locale à une autre (Baidu pour le chinois, la version polonaise d'un moteur de recherche pour le polonais) obtiennent désormais la bonne page dès le premier crawl.

Les pluriels ICU fonctionnent comme prévu. « 1 API key » reste au singulier, « 2 API keys » passe au pluriel, et la règle change selon la langue. Le polonais a trois formes de pluriel, l'anglais en a deux, le chinois une seule. Le résolveur d'exécution utilise Intl.PluralRules, une API intégrée au navigateur, de sorte qu'aucun code supplémentaire n'a été ajouté à votre bundle.

Et si vous lisez en anglais, rien ne change visiblement. Vos URL restent là où elles étaient.

L'interface du Playground est localisée

Environ 80 chaînes de caractères dans l'outil Playground (libellés, indices, placeholders, infobulles) suivent désormais la locale que vous avez sélectionnée. Le contenu technique reste volontairement en anglais : les noms des méthodes HTTP, les exemples de code, les clés JSON, les noms de headers, les codes d'état et les valeurs que vous colleriez dans une request s'affichent de la même manière dans toutes les locales. L'interface utilisateur qui les entoure parle votre langue ; le flux reste en anglais.

Cette séparation est importante. Quiconque débogue une request au sein d'une équipe qui ne partage pas la même langue maternelle peut toujours copier le corps de la request et le comparer à la documentation sans dérive de traduction.

Le sitemap s'affiche sous forme de tableau

Saisissez https://foura.ai/sitemap.xml dans l'onglet d'un navigateur et vous verrez un tableau stylisé aux couleurs du thème sombre de FourA au lieu du XML brut. Nous avons ajouté une feuille de style XSLT qui gère à la fois les sitemaps individuels et l'index des sitemaps.

La raison pour laquelle nous en avions besoin : les navigateurs ont cessé d'afficher les sitemaps localisés sous forme d'arborescence stylisée intégrée dès que des entrées de locale alternative <xhtml:link> apparaissent. Le choix était soit de livrer un sitemap sans alternatives (et de perdre le signal SEO qui lie les locales entre elles), soit de générer notre propre style. Nous avons donc choisi la seconde option. Les robots d'indexation ignorent la feuille de style et analysent le XML comme auparavant, rien ne change donc pour eux.

Un sitemap est une vraie page sur un vrai site. Il doit en avoir l'air.

Under the Hood

Les traductions proviennent d'un pipeline automatisé. Nous ne validons que les chaînes sources en anglais ; lors de la fusion vers la branche principale, le pipeline génère toutes les autres locales et valide le résultat. Une correction de texte s'effectue à un seul endroit et se propage dans les six langues.

Une correction de bug mérite d'être signalée. Le premier déploiement localisé a brièvement envoyé des placeholders de traduction bruts en production (vous auriez vu home.h1a là où le titre aurait dû se trouver) car l'étape de build ne disposait pas du répertoire des locales. Nous avons appliqué le correctif et configuré le build pour qu'il lise le répertoire des locales avant de générer le bundle, afin que cela ne se reproduise plus.

Un site disponible en six langues est, structurellement, six sites différents. Les moteurs de recherche, les lecteurs d'écran et un client à Varsovie qui effectue des recherches sur Google en polonais bénéficient tous de l'arrivée de la bonne locale sur la bonne URL avec les bonnes métadonnées. Le flux reste le même ; l'interface va à la rencontre de chaque lecteur là où il se trouve.