Formats alternatifs de dates anglaises

Proposition d’un fichier de langue pour afficher les dates selon un des formats alternatifs anglais.

Les balises de dates de SPIP comme [(#DATE|affdate)] affichent les dates en anglais dans ce format : 23 September 2006.

C’est — pour autant qu’un standard existe — l’usage correct pour les Britanniques :

“Dates should be shown in the order day, month, year, without internal punctuation, as : 2 November 1993. A named day preceding a date is separated by a comma : Tuesday, 2 November 1993. There is no comma between month and year. (...) In US style the order is month, day, year : November 2, 1993 (...)
Do not use the endings ‘st’, ‘rd’ or ‘th’ in conjunction with a figure.”
(Oxford Guide to Style pp. 178-9, Oxford University Press, 2002)

Mais on peut le changer cela !

SPIP 1.8 permet de créer un fichier de langue (dans ce cas, un fichier appelé local_en.php3) pour remplacer les valeurs par défaut de la distribution.

format U.S.

Voici les quelques lignes nécessaires d’un tel fichier pour afficher les dates dans le format en usage aux Etats-Unis (i.e. September 23 ; September 23, 2006) :

<?php
// This is a SPIP language file
$GLOBALS[$GLOBALS['idx_lang']] = array(

'date_de_mois_1' => '@nommois@ @j@',
'date_de_mois_10' => '@nommois@ @j@',
'date_de_mois_11' => '@nommois@ @j@',
'date_de_mois_12' => '@nommois@ @j@',
'date_de_mois_2' => '@nommois@ @j@',
'date_de_mois_3' => '@nommois@ @j@',
'date_de_mois_4' => '@nommois@ @j@',
'date_de_mois_5' => '@nommois@ @j@',
'date_de_mois_6' => '@nommois@ @j@',
'date_de_mois_7' => '@nommois@ @j@',
'date_de_mois_8' => '@nommois@ @j@',
'date_de_mois_9' => '@nommois@ @j@',
'date_fmt_jour_mois_annee' => '@jourmois@, @annee@'

);
?>

format alternatif britannique

Même si le Oxford Guide to Style suggère de ne pas le faire, certains apprécient les ‘st’, ‘th’, etc. dans leurs dates. Aussi, pouvez vous les avoir vous aussi avec ces quelques lignes :

<?php
// This is a SPIP language file
$GLOBALS[$GLOBALS['idx_lang']] = array(

'date_jnum1' => '1st',
'date_jnum2' => '2nd',
'date_jnum3' => '3rd',
'date_jnum4' => '4th',
'date_jnum5' => '5th',
'date_jnum6' => '6th',
'date_jnum7' => '7th',
'date_jnum8' => '8th',
'date_jnum9' => '9th',
'date_jnum10' => '10th',
'date_jnum11' => '11th',
'date_jnum12' => '12th',
'date_jnum13' => '13th',
'date_jnum14' => '14th',
'date_jnum15' => '15th',
'date_jnum16' => '16th',
'date_jnum17' => '17th',
'date_jnum18' => '18th',
'date_jnum19' => '19th',
'date_jnum20' => '20th',
'date_jnum21' => '21st',
'date_jnum22' => '22nd',
'date_jnum23' => '23rd',
'date_jnum24' => '24th',
'date_jnum25' => '25th',
'date_jnum26' => '26th',
'date_jnum27' => '27th',
'date_jnum28' => '28th',
'date_jnum29' => '29th',
'date_jnum30' => '30th',
'date_jnum31' => '31st'

);
?>

Instructions

Si vous voulez que les balises SPIP affichent ces formats alternatifs alors :

  1. Créez un fichier local_en.php3. [1]
  2. Copiez les lignes de code du format de votre choix (toutes les lignes, depuis <?php jusqu’à ?> inclus) dans le fichier.
  3. Placez le fichier dans votre dossier de squelettes, ou à la racine du site, ou dans le dossier ecrire/lang/ du site.

Notes

[1Si vous utilisez déjà un fichier portant ce nom, alors intégrer les lignes vues plus haut sans répéter ni les trois premières lignes ni les deux dernières du code.

Discussion

Une discussion

  • 2
    nddinechin

    Bonjour et merci.

    Mon site s’adresse à un public américain, et la remarque m’avait été faite également. Merci pour cette astuce qui répond tout à fait aux exigences de l’usage local.

    Par contre, j’ai le même problème pour les heures : certains sont perturbés de lire 7:00 et 18:00 au lieu de 7:00 am et 6:00 pm. Sauriez vous me dire comment compléter le fichier de langue pour effectuer cette correction ?

    Merci d’avance.

    • certains sont perturbés de lire 7:00 et 18:00 au lieu de 7:00 am et 6:00 pm.

      Tu peux utiliser les formats PHP dans des filtres (comme expliqué ici) pour faire cela.

      Essaie, par exemple,
      [(#DATE|affdate{'g:i a'})] dans le squelette pour afficher l’heure et les minutes + am/pm.

    • nddinechin

      Merci Paolo pour ta réponse rapide.

      En fait, je ne peux pas trop modifier le squelette, car le site est multilingue et sert autant en environnement portugais que français, anglais ou américain.

      D’autre part, il utilise des fonctions d’affichage calculé de dates et heures du plugin Agenda2. C’est pour cela que la solution de la surcharge du fichier /lang/local_en.php était idéale pour moi. Ça fonctionne d’ailleurs très bien pour les dates.

      Avec tes orientations, j’ai essayé pas mal de choses, notamment ceci, qui me semble être une syntaxe correcte :
      ’date_fmt_heures_minutes’ => ’@g@ :@i@ @a@’

      Malheureusement, ça ne fonctionne pas. Si je demande l’affichage des révisions d’un article par exemple, j’obtiens :
      July 3, 2009 at @j@ :@i@ @a@ (ndd) (compare)
      June 19, 2009 at @j@ :@i@ @a@ (ndd) (compare)

      Je cale...

    Répondre à ce message

Ajouter un commentaire

Qui êtes-vous ?
  • [Se connecter]

Pour afficher votre trombine avec votre message, enregistrez-la d’abord sur gravatar.com (gratuit et indolore) et n’oubliez pas d’indiquer votre adresse e-mail ici.

Ajoutez votre commentaire ici

Ce champ accepte les raccourcis SPIP {{gras}} {italique} -*liste [texte->url] <quote> <code> et le code HTML <q> <del> <ins>. Pour créer des paragraphes, laissez simplement des lignes vides.

Ajouter un document

Suivre les commentaires : RSS 2.0 | Atom

Dernière modification de cette page le 21 janvier 2007