Décisions

ADR 012 : Version anglaise

Statut

Accepté (25/10/2026), précise ADR 005

Contexte

La vitrine s'adresse aussi à des publics internationaux : chercheurs, entreprises, étudiants. Les textes d'interface sont maîtrisés. Les données (présentations des laboratoires, titres de projets) n'existent le plus souvent qu'en français.

Décision

  • Routage : les pages sont rangées sous src/app/[lang]/. Le français est servi sans préfixe (/structures) et l'anglais sous /en (/en/structures). next.config.ts réécrit, avant le routage dynamique (beforeFiles), les URL sans préfixe vers /fr/…, et redirige /fr/… vers l'URL sans préfixe. Les segments d'URL restent en français dans les deux langues.
  • Textes d'interface : src/i18n/messages.ts, un dictionnaire typé. La version anglaise doit fournir toutes les clés, sinon le typage échoue.
  • Libellés d'instance (nom des groupes, thématiques, types d'entités, introduction) : champ en des Localized de research.config.ts, avec repli sur le français. Un test vérifie que chaque groupe et chaque thématique a son libellé anglais.
  • Données : publiées dans leur langue d'origine. Les textes français portent lang="fr" (accessibilité, synthèse vocale), avec la mention « Text available in French only » sous les présentations. Les disciplines HAL sont traduites grâce au référentiel HAL (en_domain_s).
  • Référencement : alternates.languages (hreflang) sur chaque page et dans le sitemap. Un sélecteur de langue en en-tête renvoie vers la même page dans l'autre langue.
  • Recherche : Pagefind construit un index par langue d'après l'attribut lang de <html>. Chaque version ne cherche que dans ses propres pages.

Conséquences

  • Le nombre de pages générées double.
  • Traduire les présentations des laboratoires est un chantier de contenu, hors code.
  • Ajouter une langue demande : un dictionnaire dans messages.ts, la langue dans LOCALES et dans site.locales, et des libellés Localized (schéma à étendre au-delà de fr et en).