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.

Footnotes

[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

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

    Reply to this message

Add a comment

Avant de faire part d’un problème sur un plugin X, merci de lire ce qui suit :

  • Désactiver tous les plugins que vous ne voulez pas tester afin de vous assurer que le bug vient bien du plugin X. Cela vous évitera d’écrire sur le forum d’une contribution qui n’est finalement pas en cause.
  • Cherchez et notez les numéros de version de tout ce qui est en place au moment du test :
    • version de SPIP, en bas de la partie privée
    • version du plugin testé et des éventuels plugins nécessités
    • version de PHP (exec=info en partie privée)
    • version de MySQL / SQLite / PostgreSQL
  • Si votre problème concerne la partie publique de votre site, donnez une URL où le bug est visible, pour que les gens puissent voir par eux-mêmes.
  • En cas de page blanche, merci d’activer l’affichage des erreurs, et d’indiquer ensuite l’erreur qui apparait.

Merci d’avance pour les personnes qui vous aideront !

Par ailleurs, n’oubliez pas que les contributeurs et contributrices ont une vie en dehors de SPIP.

Who are you?
[Log in]

To show your avatar with your message, register it first on gravatar.com (free et painless) and don’t forget to indicate your Email addresse here.

Enter your comment here

This form accepts SPIP shortcuts {{bold}} {italic} -*list [text->url] <quote> <code> and HTML code <q> <del> <ins>. To create paragraphs, just leave empty lines.

Add a document

Follow the comments: RSS 2.0 | Atom