Project

General

Profile

Documentation #4777

Les labels et chaines de langue avec ou sans deux points.

Added by marcimat 🌻 about 1 month ago. Updated 19 days ago.

Status:
Résolu
Priority:
Normal
Assignee:
-
Category:
-
Target version:
Start date:
05/08/2021
Due date:
% Done:

0%


Description

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.»


Related issues

Related to SPIP - Anomalie #4560: Améliorer l'accessibilité de la page de login Fermé 09/30/2020

History

#1 Updated by marcimat 🌻 about 1 month ago

  • Related to Anomalie #4560: Améliorer l'accessibilité de la page de login added

#2 Updated by marcimat 🌻 about 1 month ago

Eric propose : 

- label_nettoyer (à la place de uniformiser_label, qui enlève " :")
- label_ponctuer (pour installer les " :")

#3 Updated by RastaPopoulos ♥ about 1 month ago

si plusieurs fonctions, je trouve aussi que c'est une bonne idée de préfixer par "label" tout ce qui travaille sur la même chose

#4 Updated by tcharlss 🐽 about 1 month ago

Oui c'est bien la proposition d'Eric

#5 Updated by b b about 1 month ago

+1 pour les propositions de tonton, nettoyer est un peu évasif, mais on ne va pas introduire deponctuer "comme même" :p

#6 Updated by marcimat 🌻 19 days ago

  • Status changed from Nouveau to Fermé
  • Resolution set to fixed

Appliqué avec https://git.spip.net/spip/spip/commit/f4173fd3

TODO: à documenter.

#7 Updated by RastaPopoulos ♥ 19 days ago

  • Tracker changed from Anomalie to Documentation
  • Status changed from Fermé to Résolu

On laisse ouvert mais en Documentation, une fois intégré, pour pas l'oublier.

Also available in: Atom PDF