Aller au contenu

Messages

phil/accessibility-check

Un constat porte un Message : une clé, par exemple link-text.generic, et les valeurs de ses paramètres substituables, par exemple ['href' => '/booking', 'text' => 'here']. symfony/translation le rédige dans une langue, dans le domaine phil_accessibility_check.

use Phil\AccessibilityCheck\Translation\Messages;

$report->message($finding);                       // in the report's locale, the policy's `locale`
$report->inLocale('de')->message($finding);       // in German
Messages::translate(Messages::translator(), $finding->message, 'pt-BR');

Langues

Translation\Messages::translator() donne un Translator qui parle anglais (en), français (fr), espagnol (es), allemand (de), italien (it) et portugais (pt), l'anglais en repli : Translation\English, French, Spanish, German, Italian et Portuguese contiennent leurs messages, que Messages::resources() donne par locale. Une locale se lit comme une étiquette de langue, avec - ou _, sans égard à la casse : fr-ca se lit fr_CA, qui prend les messages de fr_CA, puis de fr, puis ceux de l'anglais. Ce qui n'est pas une étiquette de langue, comme la locale d'un rapport relu d'un fichier, se lit comme de l'anglais. Une clé qu'aucune locale ne connaît est écrite telle quelle.

Clés

Les clés des règles sont énumérées avec chaque règle dans Règles. report.blocked, avec count et message, est le message avec lequel bloque la garde de publication. Un paramètre substituable s'écrit {name} dans un message.

Ajouter ou remplacer des messages

use Phil\AccessibilityCheck\AccessibilityChecker;
use Phil\AccessibilityCheck\Translation\Messages;

$translator = Messages::translator();
$translator->addResource('array', ['image-alt.missing' => 'De afbeelding {source} heeft geen tekstalternatief.'], 'nl', Messages::DOMAIN);
$translator->addResource('array', ['link-text.generic' => 'Le lien vers {href} dit seulement « {text} ».'], 'fr_CA', Messages::DOMAIN);
$translator->addResource('array', ['my-rule.found' => 'Found {what}.'], 'en', Messages::DOMAIN);

$checker = new AccessibilityChecker(translator: $translator);

Une ressource ajoutée plus tard remplace les messages des mêmes clés dans sa locale. Une application donne plutôt au vérificateur son propre traducteur, le service translator de Symfony avec Messages::resources() chargé dans le domaine phil_accessibility_check, ou traduit messageKey avec parameters, que porte le JSON du rapport.