Je voudrais modifier la présentation des dates en arabe. Actuellement, spip utilise simultanément deux dénominations des mois, l'une en standard, et l'équivalent dans la deuxième dénomination entre parenthèses. Je voudrais me contenter d'une seule dénomination pour les mois. Quel fichier dois-je modifier ?
Question subsidiaire : Dans de nombreux pays arabes (hors Maghreb), on utilise des chiffres indiens pour l'affichage des nombres. Est-il possible d'améliorer la localisation des dates en affichant les nombres (jour, année) en chiffres indiens ? Quels fichiers faut-il tripatouiller ? Je peux m'y essayer éventuellement.
Dans de nombreux pays arabes (hors Maghreb), on utilise des chiffres indiens pour l'affichage des nombres. Est-il possible d'améliorer la localisation des dates en affichant les nombres (jour, année) en chiffres indiens ?
je te propose un filtre à placer dans 'mes_fonctions.php' :
function arabe_2_hindi($une_date) {
if (!defined('_ARABE_TO_HINDI')) {
return $une_date;
}
$to_hindi = array('0'=>'٠', '1'=>'١',
'2'=>'٢', '3'=>'٣',
'4'=>'٤', '5'=>'٥',
'6'=>'٦', '7'=>'٧',
'8'=>'٨', '9'=>'٩'
);
return strtr($une_date, $to_hindi);
}
et à appeler ainsi (par exemple) sur la balise date :
[(#DATE|affdate{'Y-m'}|arabe_2_hindi)]
j'ai placé une vérification par constante.
pour que ce filtre soit actif, la déclarer, dans 'mes_options.php' :
define('_ARABE_TO_HINDI', 1);
ainsi le jour où tu veux retrouver le format 'arabe' (0,1,2...),
plutôt que d'aller supprimer tous les filtres de tes squelettes,
tu commentes juste la définition de cette constante
dans ton 'mes_options.php'
Merci, cette solution marche bien pour renommer les mois à ma guise. Mais elle ne résout pas le problème des chiffres en hindi, notamment pour les années (pas de tableau associatif dans ce cas). Plutôt un filtre comme proposé par denisb. Merci à tous les deux.
Merci pour ce filtre qui fait pile poil ce que je cherche.
Sur un site multilingue, je voudrais appliquer ce filtre de manière conditionnelle : en fonction de la valeur du critère {lang}. Si la langue sélectionnée est l'arabe, il s'applique. Sinon, je garde les dates telles quelles.
Par exemple, comment faire ça sur la boucle ci-dessous du fichier sommaire.html de la dist ? Je peux sans doute créer un sommaire.ar.html appliquant le filtre sur les dates. Qui dit mieux ?
Puisque le sujet a ete aborde j'utilise exactement la meme fonction pour mes dates (sans la variable de mes_options mais cette variable est une tres bonne idee).
Mon probleme est que j'aimerai aussi que les chiffres des textes des articles soit en hindi aussi mais en appliquant une fonction de ce genre sur le texte, les chiffres des leins hypertexte et des notes de bas de page sont aussi convertis, et ca, ca ne va pas. Une idee?
J'ai aussi remarqué que le filtre mangeait les entités HTML comportant des chiffres (typiquement le nom du mois en lettres codé en HTML), ce qui n'est pas top non plus. J'ai contournée en saucissonnant la date avant d'appliquer le filtre.
Pour les chiffres en plein texte, il y a sans doute moyen d'utiliser une expression régulière bien sentie et une autre fonction PHP au lieu de strtr, comme preg_replace pour ne remplacer que les séquences de chiffres entourés de blancs par exemple... Il faut voir si ça couvre tous les cas et si on n'a pas de séparateurs de milliers ou autres particularités typographiques dont il faut tenir compte.
GLG
P.S.: On pourrait en faire une contrib intéressante.
Sur un site multilingue, je voudrais appliquer ce filtre de manière conditionnelle : en fonction de la valeur du critère {lang}. Si la langue sélectionnée est l'arabe, il s'applique. Sinon, je garde les dates telles quelles.
Sur un site multilingue, je voudrais appliquer ce filtre de manière
conditionnelle : en fonction de la valeur du critère {lang}. Si la langue
sélectionnée est l'arabe, il s'applique. Sinon, je garde les dates telles
quelles.