[spip-dev] charsets

Salut

j'ai entièrement repris la question des charsets par la racine. Du coup on
peut indexer du russe ou n'importe quelle langue indépendamment du charset
choisi dans le site. La translittération fonctionne aussi indépendamment du
charset, ce qui veut dire que si vous avez un fichier PDF téléchargé depuis
Moscou, qui porte un nom de fichier en cyrillique, l'upload lui donnera un
nom en ascii correspondant à la translittération du truc. Etonnant !

Le plus important, peut-être, est que l'intégration d'un charset
supplémentaire est d'une simplicité élémentaire : par exemple, pour assurer
le support d'iso-8859-15 (demandé par Gaetan), il suffit des lignes
suivantes, qui récupèrent l'iso8859-1 et apportent les quelques correctifs
nécessaires :

        // iso latin 15 - Gaetan Ryckeboer <gryckeboer@virtual-net.fr>
        case 'iso-8859-15':
            $trans = load_charset('iso-8859-1');
            $trans[164]=8364;
            $trans[166]=352;
            $trans[168]=353;
            $trans[180]=381;
            $trans[184]=382;
            $trans[188]=338;
            $trans[189]=339;
            $trans[190]=376;
            return $GLOBALS['CHARSET'][$charset] = $trans;

le numéro 164 est la position du symbole euro dans iso-8859-15, et 8364 le
numéro unicode du symbole. Qui, par ailleurs, est translittéré depuis une
autre table assez amusante à regarder et qui contient la mention "8364=>'EUR'"

Une autre conséquence, anodine, c'est que si vous indexez les OGMs (je
propose de le mettre par défaut?) et que vous tapez le symbole euro,
l'article est trouvable via la recherche "EUR" (en majuscules).

Les textes contenant des expressions &eacute; tapées à la main sont aussi
désormais correctement indexés... en contrepartie & # et ; ne sont plus des
séparateurs pour l'indexation.

-- Fil

Les textes contenant des expressions &eacute; tapées à la main sont aussi
désormais correctement indexés... en contrepartie & # et ; ne sont plus des
séparateurs pour l'indexation.

T'es sûr que tu veux indexer les entités ? Le point-virgule doit agir
comme séparateur (la plupart des langues ne mettent pas d'insécable
avant).

T'es sûr que tu veux indexer les entités ?

Ah oui, c'est assez bonnard d'indexer du russe et du vietnamien.

Le point-virgule doit agir comme séparateur (la plupart des langues ne
mettent pas d'insécable avant).

Peu importe, car 1) elles mettent un espace après. 2) le ; final est
nettoyé non pas comme séparateur mais dans nettoyer_chaine_indexation().

-- Fil