[spip-dev] formats de dates - heure / multilinguisme

Salut,

comme le souligne Klaus, la gestion des dates dans l'espace privé est un peu
aléatoire ; mais plutôt que d'aller corriger des trucs du genre

"le ".affdate($date)." à ".heures($date)."h".minutes($date)." min"...

il vaudrait mieux étendre la panoplie de formats de dates proposés dans
inc_filtres, les utiliser... et les traduire au niveau des filtres.

Ce qui nous amène à une question importante : puisque ces filtres sont aussi
utilisés dans l'espace public, comment faire pour que ça ne soit pas la
langue du visiteur qui s'applique quand on calcule la page (histoire que le
visiteur suivant n'ait pas une date en russe alors qu'il parle japonais) ?

Je proposerais bien le schéma suivant, à partir de la définition d'une
"langue du site" (lire_meta('langue_site')).

On aurait deux variables globales de langue : $lang et $afflang ; afflang
indique comment on doit calculer/afficher les dates, quelle typo appliquer,
etc.

Cela implique d'avoir une idée plus ou moins claire de ce qu'on ferait
éventuellement pour un site multilingue, d'où cette proposition :

0) inc_version :
    $lang = 'fr'; // site pas configuré

1) espace privé :

    // langue du site
    si lire_meta('langue_site') => $lang = lire_meta('langue_site')

    // langue du rédacteur
    si $prefs['lang'] => $lang = $prefs['lang']

    par la suite, $afflang = $lang

    AFFLANG PEUT ÊTRE DONNÉ PAR L'OBJET REGARDÉ (LANGUE DE L'ARTICLE, DE LA
    RUBRIQUE, DU SITE RÉFÉRENCÉ, ETC.)

2) espace public

    // langue du site
    par défaut $lang = lire_meta('langue_site')

    CE QUI SUIT EST POUR LES SITES MULTILINGUES UNIQUEMENT :

    dans les boucles, un critère {lang=xx} permet de SELECTIONNER les objets
    de la langue xx, et implique afflang = langue de l'objet

    un critère {afflang=en} passe le *contexte* afflang de la boucle en
    anglais, ce qui fait que les dates s'affichent, pour cette boucle et ses
    sous-boucles, en anglais.

    Exemples:

    <BOUCLE(ARTICLES)> => affichage dans la langue du site

    <BOUCLE(ARTICLES){lang==.}> => affichage de chaque objet dans
        sa langue

    <BOUCLE(RUBRIQUES){lang=en}> => sélectionner les rubriques
        'en' et les afficher dans leur langue

    <BOUCLE(RUBRIQUES){lang=en}{afflang=ru}> => sélectionner les rubriques
        anglaises mais afficher les dates en russe.

L'idée de base serait de séparer le critère de sélection de langue et celui
d'affichage, en faisant une sélection automatique de l'affichage selon le
critère de sélection, sauf mention contraire.

Si ce cadre général vous va, moyennant quelques détails sur les critères en
question, on peut finir les filtres de date et de typo...

-- Fil

il vaudrait mieux étendre la panoplie de formats de dates proposés dans
inc_filtres, les utiliser... et les traduire au niveau des filtres.

Oui.

Cela implique d'avoir une idée plus ou moins claire de ce qu'on ferait
éventuellement pour un site multilingue, d'où cette proposition :

Je propose qu'on laisse les sites multilingues à plus tard, d'autant
que ça ne remet pas en cause l'opposition langue du site <-> langue
du visiteur.