Nos copines, on va en voir plein ce soir au Paris-Carnet, tu veux venir aussi ? C’est par là. Bon y’aura aussi un mec ou deux !
Sinon et rien à voir, je cherche toujours un moyen de trier lexicographiquement et sans tenir compte des accents et autres diacritiques des chaînes de caractères, ou pour dire ça autrement faire en sorte que le é ou le ô ne viennent pas après le z. Ça n’a pas l’air si simple que ça en fait, mais je finirai bien par trouver quelque chose, parole de … gascon — en fait je ne le suis pas, mais ça sonne bien je trouve.
Je pense que pour Dotclear il va falloir se baser sur la langue choisie par l’utilisateur (côté administration) et pour le blog (côté public) et s’appuyer sur le système de locale, un truc du genre :
setlocale(LC_COLLATE, 'English'); usort($arr, function($a, $b){ return strcoll(strtolower($a), strtolower($b)); });
À ce soir !
1 De lipki -
Si tu enlève les accents au moment de la comparaison, il ni a pas de raison qu’il soit reléguer à la fin de l’alphabet ?
2 De Franck -
Je sais bien lipki, c’est d’ailleurs comme ça que fait WordPress pour ses tris, mais je ne trouve pas ça vraiment très élégant comme solution et de plus il y a le risque d’oublier au passage certaines langues qui mériteraient elles aussi le même traitement.
3 De lipki -
Je n’avais jamais eu besoin de trier par ordre alphabétique en fonction d’un pays où d’un autre.
Du coup j’ai creusé un peu, je pense que les accents sont relégués en fin d’alphabet à cause de l’ordre UTF8.
http://www.utf8-chartable.de/
Finalement, il faudrait une méthode de trie qui prend une liste alphabétique en référence.
$truc.sort(‘0123456789aàáâãäåaebcçdeèéêëfghiìíîïjklmnñoòóôõöpqrstuùúûüvwxyýÿz’);
Liste qui pourrait être fournies par la locale.
$truc.sort(‘FR:fr’);
Comme ça tu mets tes accents où tu veux.
$truc.sort(‘んわらやまはなたさかあゐりみひにちしきいるゆむふぬつすくうゑれめへねてせけえをろよもほのとそこお’);
Je sait pas du tout ce qui existe.
4 De Franck -
Oui lipki c’était ma première idée, utiliser une liste de caractères comme source de tri. Facile à faire dans les langues latines, je pense, mais quid des autres ?
5 De Nicolas -
Il ne faut pas réinventer la roue et utiliser intl
Le résultat est bien celui attendu :
6 De Nicolas -
Elle est toute cassée ta wikibarre. Remboursé.
7 De Franck -
C’est aussi une piste que j’avais regardée, mais il va falloir modifier Clearbricks pour gérer les codes des locales. On ne les a pour l’instant pas dans la lib.l10b.php
8 De Franck -
D’autre part, ça requiert php 5.3 mininum et PECL intl installé. Pas certain que ce soit le cas pour toutes les installs Dotclear.
9 De Franck -
Comment ça elle est toute cassée ma wikibarre, mais tu délires Nicolas !