Les labels et chaines de langue avec ou sans deux points.
Des labels avec ou sans deux points...
Les chaines de langues des labels, historiques de SPIP, ont parfois des deux points, parfois pas.
Donc dès fois 'truc' => 'Truc'
, dès fois 'truc' => 'Truc :'
C'est embêtant quand on veut quelque chose d'homogène.
On se propose ici de réfléchir à une transition vers des chaines "sans deux points".
uniformiser_label
J'ai déjà introduit (dans SPIP 4.0-alpha) une fonction / filtre dans inc/utils.php
et utilisée dans le plugin 'statistiques' : uniformiser_label
.
Ce filtre, dans un squelette avec un idiome tel que <:module:chaine|uniformiser_label:>
enlève les espaces divers et : qui pourraient être présents.
uniformiser_label_inline ?
Il faudrait trouver un autre filtre pour faire l'inverse : mettre systématiquement les deux points. Notamment pour des couples ou énumérations sur la même ligne "label : texte". Trouver un nom du filtre pour ça n'est pas évident ; par contre on pense avoir trouvé à peu près la méthode
function uniformiser_label_inline(string $label) : string {
$label = uniformiser_label($label);
return _T('uniformiser_label_inline', ['label' => $label]);
}
// avec la chaine de langue (pareil nom à trouver)
[
// ...
'uniformiser_label_inline' => '`label` :'
]
ou… uniformiser_label_enumeration
Une autre solution pour la même chose, est de proposer de s'occuper directement des textes de couples "nom : texte" ou "nom : texte, texte, texte." Mais c'est peut être plus difficile pour gérer les traductions
Exemple
function uniformiser_label_enumeration(string $label, ...$enums = []) : string {
$label = uniformiser_label($label);
// la première entrée peut être un déjà un tableau ?
if ($enums and is_array($enums[0])) {
$enums[0] = implode(', ', $enums[0]);
}
$enums = implode(', ', $enums);
return trim(_T('label_enumeration', ['label' => $label, 'enums' => $enums]));
}
// avec la chaine de langue (pareil nom à trouver)
[
// ...
'label_enumeration' => '`label` : `enums`.'
]
Ça veut dire ici que toutes les langues ont "virgule" en séparateur…
Quelques notes sur les deux points
Je suppose qu'ulitiser le terme "deux_points" dans les chaines de langue ne marche pas car ce n'est pas très sémantique. Mais pas facile de trouver un super terme.
https://www.noslangues-ourlanguages.gc.ca/fr/cles-de-la-redaction/deux-points
«On utilise le deux-points pour annoncer ce qui s’en vient dans le texte, que ce soit un exemple, une énumération, une explication, une citation, un discours direct, une analyse ou un récit. Le deux-points sert aussi à annoncer un jugement, une synthèse, une conclusion, une cause, une conséquence, etc.»