Annonce

  •  » Utilisation
  •  » Passage à l'utf-8 et IPTC. Vos conseils ?

#1 2007-09-20 20:37:53

galain
Former Piwigo Team
2007-09-20
32

Passage à l'utf-8 et IPTC. Vos conseils ?

Bonjour,

J'ai ajouté à la plupart de mes photos des données IPTC et je sais, pour l'avoir déjà testé, que PhpWebGallery est capable de les exploiter correctement.

Parfait, sauf que toutes mes données IPTC sont encodées en UTF-8 et que PhpWebGallery est en iso-8859-1.

J'aimerais alors que vous me conseilliez pour mon installation. Parmi les solutions :

• attendre. J'ai lu que la version 1.8 pourrait passer en UTF-8. Mais ça risque peut-être d'être long…
• utiliser je ne sais où une fonction php pour convertir les caractères accentués et spéciaux en entités numériques.
• tenter de passer PhpWebGallery en UTF-8

Cette dernière solution me plairait bien, même si je n'ai pas tellement de compétences, mais est-ce que ça poserait  pour l'upgrade du programme ?

Par avance merci.

Hors ligne

#2 2007-09-20 23:06:36

rvelices
Équipe Piwigo
2005-12-29
1417

Re: Passage à l'utf-8 et IPTC. Vos conseils ?

galain a écrit:

J'ai ajouté à la plupart de mes photos des données IPTC et je sais, pour l'avoir déjà testé, que PhpWebGallery est capable de les exploiter correctement.
Parfait, sauf que toutes mes données IPTC sont encodées en UTF-8 et que PhpWebGallery est en iso-8859-1.
J'aimerais alors que vous me conseilliez pour mon installation. Parmi les solutions :
• attendre. J'ai lu que la version 1.8 pourrait passer en UTF-8. Mais ça risque peut-être d'être long…
• utiliser je ne sais où une fonction php pour convertir les caractères accentués et spéciaux en entités numériques.
• tenter de passer PhpWebGallery en UTF-8
Cette dernière solution me plairait bien, même si je n'ai pas tellement de compétences, mais est-ce que ça poserait  pour l'upgrade du programme ?

Le plus simple c'est la 2eme solution. La 3eme peut aussi bien marcher mais tu risques de te casser la tete avec le charset de la base, le charset de la connection MySql, les fichiers de langue et php lui meme...

La solution 2 en qq mots (non teste !):
A. pour la synchronisation IPTC (site local) et affichage IPTC (page picture)
  rajouter dans include/functions_metadata.inc.php, fonction clean_iptc_value la ligne rouge

function clean_iptc_value($value)
{
  $value = utf8_decode($value);

  // strip leading zeros (weird Kodak Scanner software)
  while ( isset($value[0]) and $value[0] == chr(0))
  {
    $value = substr($value, 1);
  }
  // remove binary nulls
  $value = str_replace(chr(0x00), ' ', $value);

  return $value;
}

B. pour la synchronisation IPTC (site remote), faire la meme modifs dans create_listing_file.php, fonction pwg_clean_iptc_value

Hors ligne

#3 2007-09-21 11:10:08

galain
Former Piwigo Team
2007-09-20
32

Re: Passage à l'utf-8 et IPTC. Vos conseils ?

Bonjour et merci rvelices pour ces indications précises.

La solution fonctionne bien, mais en même temps pas assez : les lettres accentuées comme éàè… apparaissent correctement, mais pas les autres caractères spéciaux (remplacés par des ?).

Il faudrait donc que je fasse les modifications que tu as indiquées mais en définissant une fonction pour convertir en entités numériques.

sur la page http://fr2.php.net/utf8_decode , j'ai trouvé

Code:

function utf8_to_html ($data)
    {
    return preg_replace("/([\\xC0-\\xF7]{1,1}[\\x80-\\xBF]+)/e", '_utf8_to_html("\\1")', $data);
    }

function _utf8_to_html ($data)
    {
    $ret = 0;
    foreach((str_split(strrev(chr((ord($data{0}) % 252 % 248 % 240 % 224 % 192) + 128) . substr($data, 1)))) as $k => $v)
        $ret += (ord($v) % 128) * pow(64, $k);
    return "&#$ret;";
    }

ça marche parfaitement en local, mais pas sur mon espace web ovh :-( ("Call to undefined function: str_split()")

La code suivant
http://www.asp-php.net/ressources/codes … ities.aspx
est plus complexe mais à l'air de bien fonctionner sur mon espace OVH.

Dernière modification par galain (2007-09-21 12:02:11)

Hors ligne

#4 2007-09-21 12:21:14

VDigital
Former Piwigo Team
Montpellier (FR)
2005-05-04
15127

Re: Passage à l'utf-8 et IPTC. Vos conseils ?

Sur http://fr.php.net/manual/en/function.str-split.php

Regarde un developpeur a donné la fonction équivalente pour php 4.

Mais sais-tu que sur OVH tu peux passer en php 5 par une simple modif du .htaccess ?

SetEnv PHP_VER 5

8-)

Dernière modification par VDigital (2007-09-21 12:24:38)


Vincent -« Plus vidéaste averti que photographe amateur... »
La galerie - Le blog   

Piwigo est une application libre de gestion de photos en ligne.

Hors ligne

#5 2007-09-21 12:45:37

galain
Former Piwigo Team
2007-09-20
32

Re: Passage à l'utf-8 et IPTC. Vos conseils ?

VDigital a écrit:

Mais sais-tu que sur OVH tu peux passer en php 5 par une simple modif du .htaccess ?

SetEnv PHP_VER 5

Ah mais non je ne savais même pas oO !
Effectivement, ça fonctionne bien maintenant !

Merci ;-)

Dernière modification par galain (2007-09-21 12:48:22)

Hors ligne

#6 2007-09-22 12:31:09

galain
Former Piwigo Team
2007-09-20
32

Re: Passage à l'utf-8 et IPTC. Vos conseils ?

Finalement je pense que je vais tenter de passer PhpWebGallery en utf-8.

La solution ci-dessus peut-être satisfaisante, mais il y aurait encore quelques modifications à faire. Par exemple, étant donné que les accents sont convertis en entités numériques, cela pose en l'état actuel problème pour la recherche. Pour trouver les photos de René, il faudrait chercher René :-D

Et surtout, je viens d'essayer brièvement une conversion vers l'UTF-8 et ça a l'air de se faire sans mal.

Je n'ai fait que trois modifications générales sur les fichiers venant d'être désarchivés :
• conversion de l'encodage de caractères de latin-1 en à l'utf-8
• remplacement de toutes les occurrences de iso-8859-1(5) par utf-8 (charset et autres)
• renommage des fichiers ou dossiers contenant dans leur nom iso-8859-1 (il doit  y en n'avoir que 6 je crois)

Pour les deux premières tâches, je les ai effectuées avec la ligne de commande suivante (qui vise les types de  fichiers plus ou moins susceptibles d'être concernés) :

Code:

find .  \( -name '*.php' -o -name '*.js' -o -name '*.css' -o -name '*.htm' -o -name '*.tpl' -o -name '*.html' -o -name '*.txt' \) \
-exec recode latin1..utf8 '{}' \; \
-exec sed -i 's/iso-8859-15*/utf-8/gI' '{}' \;

La troisième :

Code:

find . -name '*8859*' -exec rename 's/iso-8859-1/utf-8/' '{}' \;

Après ces seules modifications, tout à l'air de bien fonctionner, depuis l'installation jusqu'aux différentes utilisations (j'ai testé l'ajout de tags, de commentaires, la synchronisation IPTC, la recherche, les flux rss…)

Est-ce que, selon vous,il y a des points qui pourraient être problématiques ? Que je vérifie avant de commencer à alimenter ma galerie.

Dernière modification par galain (2007-09-22 13:04:35)

Hors ligne

#7 2007-09-22 15:47:47

galain
Former Piwigo Team
2007-09-20
32

Re: Passage à l'utf-8 et IPTC. Vos conseils ?

Bon je continue ma tentative.

Alors je n'ai pas réussi à vraiment comprendre comment faire pour que les tables se créent directement avec les bons paramètres… une idée ?

Du coup je les ai exportées dans un fichier, modifié :
latin1_german2_ci par utf8_general_ci
latin1_bin par utf8_bin
latin1 par utf8
puis mis à jour

Et j'ai ajouté mysql_query("SET NAMES 'utf8'"); au code php

Tout à l'air de fonctionner mais est-ce vraiment correct ce bricolage ?

Dernière modification par galain (2007-09-22 15:53:48)

Hors ligne

#8 2007-09-22 18:15:44

vimages
Membre
2004-03-27
2429

Re: Passage à l'utf-8 et IPTC. Vos conseils ?

galain,

est-ce que ces modif n'ont pas induit une invalidation des mots de passe ?

Hors ligne

#9 2007-09-22 23:23:36

galain
Former Piwigo Team
2007-09-20
32

Re: Passage à l'utf-8 et IPTC. Vos conseils ?

Moi j'en ai utilisé un n'ayant aucun caractère non-ascii, donc pas de problème. Mais si le mot de passe est par exemple "école", ça ne devrait pas fonctionner à cause du "é". Je ne sais pas s'il peut y avoir une opération spéciale pour la conversion vu que c'est crypté (plus justement hashé, irréversible). 
Au pire les utilisateurs ayant choisi un mot de passe avec des caractères non ascii pourront en obtenir un autre en donnant leur email et remettre le mot de passe de leur choix dans "personnaliser".

Sinon j'ai dit des bêtises dans le message précédent, il suffit de paramétrer sa base avant.

Dernière modification par galain (2007-09-23 09:05:28)

Hors ligne

#10 2007-10-09 04:11:37

rvelices
Équipe Piwigo
2005-12-29
1417

Re: Passage à l'utf-8 et IPTC. Vos conseils ?

La version 1.8 fera automatiquement tout ceci. C'est probablement mieux si tu ne faisais pas grande chose pour passer tout a utf-8 (si ce n'est pas trop tard).

Dernière modification par rvelices (2007-10-09 04:12:02)

Hors ligne

#11 2007-10-09 22:32:31

galain
Former Piwigo Team
2007-09-20
32

Re: Passage à l'utf-8 et IPTC. Vos conseils ?

Non ce n'est pas trop tard, en fait je n'ai pas commencé ma galerie.
D'ailleurs je suis volontaire pour tester la version en développement, entre autres sur la question de l'encodage des IPTC. Je m'abonne à l'autre sujet

a+

Hors ligne

  •  » Utilisation
  •  » Passage à l'utf-8 et IPTC. Vos conseils ?

Pied de page des forums

Propulsé par FluxBB

github twitter newsletter Faire un don Piwigo.org © 2002-2024 · Contact