Ce site est un site officiel de l’ODERSA. Voici comment le savoir

Le domaine officiel

L’adresse de ce site se termine par odersa.org. Chaque service de l’association vit sur un sous-domaine de odersa.org et nulle part ailleurs. Si l’adresse dans la barre de votre navigateur ne finit pas par odersa.org, ce site n’est pas le nôtre.

Gratuit, et sans compte

Tout est ouvert tout de suite. Aucune inscription, aucun compte, aucun mot de passe, aucun abonnement, aucune publicité. Rien n’est réservé à qui paie, puisque rien ne se paie.

Aucune donnée collectée

Ce site ne vous suit pas : ni mouchard, ni mesure d’audience, ni cookie de traçage. Vous n’avez pas à nous croire : ouvrez les outils de développement de votre navigateur, onglet Réseau, et rechargez la page. Vous verrez la liste complète de ce que le site demande. Tout vient de odersa.org, rien ne part ailleurs.

Contenus libres

Les contenus sont publiés sous licence CC BY 4.0. Vous pouvez les copier, les traduire, les imprimer et les redistribuer, pour vos cours comme pour vos proches, à la seule condition de citer l’ODERSA.

Comptoir d’enlèvement

Les paquets de langue

Toutes les chaînes d’interface d’une langue de la maison, déjà traduites et vérifiées, réunies dans un seul fichier prêt à embarquer dans un site ou une application : ce que ce site appelle un paquet de langue, et que le reste de cette documentation nomme simplement un pack. Ce qu’il contient, comment le prendre et le citer, ce qui le distingue d’une traduction automatique, et ce qui n’y est pas encore.

Sur le comptoir

Les sept paquets, adresse par adresse

Les adresses réelles pour chacune des 7 langues de la maison, telles que le manifeste de l’API les déclare. Chaque code de deux lettres est celui de toute la flotte ODERSA ; le chinois s’écrit zh dans les adresses, son étiquette complète zh-Hans ne servant que dans l’attribut lang.

Les sept paquets de chaînes, un fichier par langue
Langue Code Chaînes Part du total Adresse
Français fr 674 14 % /api/v2/packs/fr.json
English en 674 14 % /api/v2/packs/en.json
Español es 674 14 % /api/v2/packs/es.json
العربية ar 674 14 % /api/v2/packs/ar.json
हिन्दी hi 674 14 % /api/v2/packs/hi.json
বাংলা bn 674 14 % /api/v2/packs/bn.json
简体中文 zh 674 14 % /api/v2/packs/zh.json

Tous paquets confondus, 4718 entrées sont servies aujourd’hui : un total d’entrées de paquet, chaque chaîne comptée une fois par langue qui la porte, jamais un nombre de phrases distinctes. Pour ce dernier, c’est la mémoire de traduction qui fait foi. La part de chaque paquet dans ce total est tronquée, jamais arrondie à la hausse : un chiffre qui sert de preuve doit pouvoir se refaire à la main sur les fichiers servis.

Le poids exact de chaque paquet, mesuré à l’octet à chaque construction, ne se recopie pas ici : une valeur qui doit rester vraie dans la durée se lit dans /api/v2/manifeste.json, pas sur cette page.

Traduire une interface sans repartir de zéro

Un site ou une application qui s’ouvre à une nouvelle langue doit, tôt ou tard, traduire les mêmes petites choses : le bouton « Enregistrer », le message « Une erreur est survenue », le libellé « Rechercher », le lien « Mentions légales ». Rien de tout cela n’est propre au projet : ce sont, presque toujours, les mêmes mots qu’un autre site a déjà traduits et publiés avant lui.

Un paquet est le fichier qui porte cette réserve commune, une langue par fichier : une clé, une chaîne, prête à associer directement à ce que le site affiche déjà en français. Personne ne repaie la traduction d’« Enregistrer » en arabe pour la centième fois.

La mesure en a été faite sur un projet réel de la flotte, Avant les secours, en écartant d’abord ses propres chaînes de la mémoire commune pour ne rien lui devoir : sur les 154 couples source et contexte qu’il emploie, 49 étaient déjà traduits dans les sept langues par une mémoire qui ne contenait encore aucune de ses propres chaînes, soit 31 % de réutilisation, mesuré et jamais arrondi à la hausse. C’est ce qu’un projet qui rejoint la flotte aujourd’hui retrouve avant d’avoir traduit la moindre ligne pour lui-même.

Ce qu’il y a dedans, et sous quelle forme

Un extrait réel du paquet anglais, réduit à trois chaînes et à la date remplacée par son patron pour tenir sur cette page. Les valeurs bougent à chaque construction : c’est le fichier servi qui fait foi, jamais cet extrait.

{
 "langue": "en",
 "etiquette": "en",
 "version": 1,
 "genere_le": "AAAA-MM-JJ",
 "licence": "CC-BY-4.0",
 "attribution": "ODERSA, translate.odersa.org, CC BY 4.0",
 "entrees": 674,
 "chaines": {
  "013d74a213bf5b5c": "Credits",
  "0181d851061b7a92": "Written by",
  "048a5330216a9d8f": "The organisation"
 },
 "a_relire": [],
 "provenance_resume": { "institution": 0, "flotte": 664, "relecture": 10, "import": 0 }
}

langue et etiquette identifient le fichier ; version est celle du contrat de format, pas celle du contenu, elle ne bouge que si la forme même du paquet change. genere_le et licence datent et couvrent tout le fichier ; attribution porte la formule de citation exacte, en clair, prête à recopier telle quelle : voir plus bas.

chaines est le cœur du paquet : un objet où chaque clé est une empreinte de seize caractères hexadécimaux, calculée sur la phrase source normalisée, et chaque valeur le texte à afficher tel quel, dans cette langue. La même clé désigne la même phrase source dans les sept paquets et dans la mémoire : c’est elle qui permet de retrouver une chaîne d’un fichier à l’autre, voir plus bas comment.

a_relire liste les clés de niveau de provenance import : moissonnées, mais jamais relues par personne. Elle est vide ici, et dans les six autres paquets. provenance_resume compte les chaînes du paquet par niveau : sur l’anglais, 664 de niveau flotte, 10 de niveau relecture, aucune de niveau institution ni import. Ce que ces niveaux signifient, et pourquoi ils comptent, plus bas.

Le prendre sans écrire une ligne de code

Trois gestes.

  1. Télécharger. Ouvrez l’adresse du paquet qui vous intéresse, par exemple /api/v2/packs/es.json, et enregistrez la page comme un fichier .json ordinaire.

  2. Ouvrir. Un fichier .json se lit dans un éditeur de texte, ou directement dans le navigateur qui vient de l’afficher.

  3. Chercher. Utilisez la recherche de votre éditeur ou de votre navigateur pour retrouver une valeur, un texte que vous reconnaissez dans la langue du paquet.

Une difficulté se pose tout de suite, et elle mérite d’être dite franchement : la clé de chaque chaîne n’est pas un mot, c’est une empreinte, une suite de seize caractères hexadécimaux du genre 013d74a213bf5b5c. Elle ne se lit pas, et elle ne se devine pas : chercher « accueil » dans les clés d’un paquet ne trouvera jamais rien.

La mémoire, elle, porte la source en clair. /api/v2/memoire/tout.json la rassemble en un seul fichier, et chaque entrée y associe la même clé à la phrase source telle qu’elle a été rencontrée. Pour retrouver un texte précis : ouvrez ce fichier, cherchez la phrase que vous connaissez, relevez sa clé de seize caractères, puis cherchez cette même clé dans le paquet de la langue qui vous intéresse. C’est la même partout. Le détail complet du format de la mémoire est sur la mémoire de traduction.

S’en servir en code

Un paquet se télécharge et se lit comme n’importe quel JSON, avec ou sans le fichier client.

const T = OdersaTranslate.ouvrir({ base: "https://translate.odersa.org/api/v2" });
const en = await T.pack("en");
document.querySelector("#titre").textContent = en.chaines["013d74a213bf5b5c"];
// "Credits", jamais en innerHTML : une chaîne traduite reste du texte.

Le détail des fonctions du fichier client, les adresses et les limites de l’API : le fichier client et l’API.

La licence, et la citation exacte

Les sept paquets sont publiés sous licence Creative Commons Attribution 4.0 (CC BY 4.0). Vous pouvez les copier, les republier, les intégrer à un projet commercial, à trois conditions que pose la licence : citer l’ODERSA, indiquer si le contenu a été modifié, et joindre le lien vers la licence.

La formule exacte n’est pas à deviner ni à composer soi-même : chaque paquet la porte, en clair, dans son propre champ attribution, vu plus haut.

ODERSA, translate.odersa.org, CC BY 4.0

La recopier telle quelle remplit la condition de citation, dans un fichier de données comme dans un crédit de pied de page. Deux autres formes, pour un texte rédigé ou pour le pied de page d’un site qui embarque un paquet, sont sur licence et réutilisation et sur les données ouvertes.

Ce qui distingue ces chaînes d’une traduction automatique

Ce site sert aussi une boîte de traduction qui calcule, dans le navigateur, une traduction pour n’importe quel texte, à la demande. Elle n’a rien à voir avec un paquet, et les deux ne se mélangent jamais.

Une sortie de la boîte porte toujours l’attribut data-provenance="machine" : une machine a produit ce texte, à la volée, et rien sur ce site ne le fait passer pour autre chose. Une chaîne d’un paquet, elle, ne porte jamais ce niveau. Chacune vient d’une des quatre provenances du contrat, institution, flotte, relecture ou import, tracée par langue dans la mémoire commune, avec sa source et sa date.

Aujourd’hui, dans les sept paquets, la provenance qui domine de loin est flotte : la chaîne a déjà servi en production sur un site de l’ODERSA, devant de vraies personnes, avant même de rejoindre ce fichier. C’est le sens exact d’une chaîne « éprouvée par l’usage » : pas une supposition sur ce qui devrait fonctionner, la trace de ce qui a déjà fonctionné.

Le niveau import, des chaînes moissonnées mais jamais relues par personne, est servi mais jamais caché : il apparaît dans la liste a_relire de chaque paquet. Elle est vide aujourd’hui dans les sept : rien de non relu n’est distribué par cette API en ce moment. Le jour où cela changerait, la clé concernée apparaîtrait dans cette liste, jamais mêlée au reste en silence.

Ce qui n’est pas au dépôt

Ce qui manque, et pourquoi c’est nommé plutôt que comblé

Un paquet complet pour les sept langues n’est pas la même chose qu’un paquet qui couvre tout ce que la flotte de l’ODERSA a un jour écrit. L’inventaire de la flotte recense 14 projets voisins portant des chaînes identifiables, pour 12597 chaînes sources au total, comptées une seule fois chacune, jamais multipliées par le nombre de langues. 5 adaptateurs de projet sont écrits aujourd’hui : chacun verse dans la mémoire commune les chaînes déjà vivantes d’un site de la flotte, qui rejoignent ensuite les sept paquets.

Deux projets à sept langues n’ont pas encore le leur, et cela se dit par leur nom plutôt que de se deviner : Avant d’y croire et Clic par clic. Leurs propres chaînes existent, tout aussi réelles que celles déjà versées, mais n’ont pas encore rejoint la mémoire commune, donc pas les paquets. Voir les adaptateurs pour ce qui est déjà écrit et ce qui reste à faire.

Une autre limite tient à la langue d’origine plutôt qu’à l’adaptateur : plusieurs projets de la flotte n’existent aujourd’hui qu’en français. Même raccordés, ils ne verseraient que des chaînes françaises : aucune traduction vers les six autres langues n’existe encore chez eux à moissonner.

Nommer ces manques plutôt que les taire n’est pas un aveu gêné, c’est ce qui rend le reste crédible. Une couverture annoncée complète sans preuve ne se vérifie pas ; une couverture mesurée, avec ses trous cités par leur nom, se vérifie en une visite sur la page qui les liste. Un paquet qui dit ce qu’il ne contient pas encore reste digne de confiance pour ce qu’il contient déjà. D’autres manques, ceux qui tiennent à la rareté d’une source institutionnelle vérifiable dans certaines langues, sont détaillés sur les données ouvertes.