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.tsréé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
endesLocalizedderesearch.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
langde<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 dansLOCALESet danssite.locales, et des libellésLocalized(schéma à étendre au-delà defreten).