Salut,
j'intègre le support du charset windows-1251 dans SPIP. Question : est-ce
que je le mets au même niveau que l'iso-latin et l'utf-8, dans la
configuration du site, ou est-ce qu'on le laisse comme une feature masquée ?
-- Fil
Salut,
j'intègre le support du charset windows-1251 dans SPIP. Question : est-ce
que je le mets au même niveau que l'iso-latin et l'utf-8, dans la
configuration du site, ou est-ce qu'on le laisse comme une feature masquée ?
-- Fil
Plutôt masqué, ce n'est pas un standard ("windows-"). C'est quoi
le charset ISO pour le russe ? Qu'est-ce qui empêche de l'utiliser ?
a+
Antoine.
Plutôt masqué, ce n'est pas un standard ("windows-"). C'est quoi
le charset ISO pour le russe ? Qu'est-ce qui empêche de l'utiliser ?
Les anciens navigateurs connaissent 'windows-1251', les nouveaux l'utf-8;
c'est donc plus par souci de compatibilité maxi que de respect des standards
que les Russes continuent à utiliser ce charset (à ce que j'en ai compris).
Autre avantage, j'ai codé la translittération pour ce charset... je pourrais
changer de tactique, et tout coder en utf-8 (y compris la translittération
du bout de russe dans l'utf-8), puis faire un 'kodo' à la volée pour les
anciens navigateurs... ça serait un peu de boulot, mais peut-être plus
conforme à l'iso-truc... Qu'en pensez-vous ?
-- Fil
> Plutôt masqué, ce n'est pas un standard ("windows-"). C'est quoi
> le charset ISO pour le russe ? Qu'est-ce qui empêche de l'utiliser ?Les anciens navigateurs connaissent 'windows-1251', les nouveaux l'utf-8;
c'est donc plus par souci de compatibilité maxi que de respect des
standards que les Russes continuent à utiliser ce charset (à ce que j'en ai
compris).
Le charset le plus utilisé chez les russes, c'est KOI8-R
Ph.
> Le charset le plus utilisé chez les russes, c'est KOI8-R
Cf. http://czyborra.com/charsets/cyrillic.html
Tout ça me donne une idée : pour le support de tous les charsets 8bits (sauf
iso-8859-1, notre charset de référence) il suffirait d'extraire les données
de conversion du code actuel et de le mettre dans un fichier texte dans le
répertoire lang/, et ce serait bon.
Exemple : le charset windows-1251 serait "supporté" par SPIP à condition
qu'un fichier charset_windows_1251.txt se trouve dans lang/ et contienne une
liste complète des code + équivalent unicode + translittération, de la façon
suivante :
#code unicode translitteration
129 1027 G
131 1107 D
...
Pour "charger" un code il suffit alors de lire ce petit fichier et hop. La
partie translittération sert à nourrir le moteur de recherche, et
éventuellement à afficher le texte en "translittéré" -- pour le wap ;-).
Seule inconnue, comment décrire les caractères "interdits" : ceux qui
servent à délimiter des mots (guillemets, etc...) ; ceux qu'il faut
nettoyer.
Ensuite, dans la configuration de SPIP, on propose autant de charsets qu'on
arrive à lire de fichiers dans lang... ou on décide de laisser ça
relativement "secret", sachant que le support utf-8 est le plus important ?
-- Fil
Tout ça me donne une idée : pour le support de tous les charsets 8bits (sauf
iso-8859-1, notre charset de référence) il suffirait d'extraire les données
de conversion du code actuel et de le mettre dans un fichier texte dans le
répertoire lang/, et ce serait bon.Exemple : le charset windows-1251 serait "supporté" par SPIP à condition
qu'un fichier charset_windows_1251.txt se trouve dans lang/ et contienne une
liste complète des code + équivalent unicode + translittération, de la façon
suivante :#code unicode translitteration
129 1027 G
131 1107 D
...
Autant faire un tableau PHP dans le même style que les spip_fr.php3 :
$GLOBALS['charset_unicode'] = array(
129 => 1027,
...
);
$GLOBALS['charset_translitteration'] = array(
129 => 'G',
...
);
Bon, mais je n'ai pas d'avis sur l'importance et la priorité de la
chose.
Autant faire un tableau PHP dans le même style que les spip_fr.php3 :
$GLOBALS['charset_unicode'] = array(
129 => 1027,
...
);
Pas faux. Le format CSV a l'avantage d'être relativement standard (si tu vas
sur l'URL susmentionnée concernant les charsets russes, il y a pas mal de
ces tableaux). Mais le format php marchera aussi, et sera peut-être plus
adaptable si jamais il y a d'autres éléments à prendre en compte par la
suite.
-- Fil
> Autant faire un tableau PHP dans le même style que les spip_fr.php3 :
> $GLOBALS['charset_unicode'] = array(
> 129 => 1027,
> ...
> );
A y re-réfléchir, le charset devrait donner uniquement les paires
code-unicode ; pour la translittération, il faut plutôt la faire au niveau
d'unicode-translit, ce qui permettra à une même translittération de
s'appliquer à tous les charsets. Une fois que je sais translittérer tous les
caractères cyrilliques, le moteur de recherche marchera donc, pour les
caractères cyrilliques, que je me trouve en utf-8, en KOI8-R, en
windows-1251 -- voire même en iso8859-1 en ayant des caractères marqués
Ӓ !
a +
-- Fil