Problème d'encodage (Bug #583)


Added by Denis Bitouzé over 5 years ago. Updated about 3 years ago.


Status:Closed Start date:09/03/2018
Priority:Normal Due date:
Assignee:- % Done:

100%

Category:Graphical Interface
Target version:-

Description

Bonsoir et merci pour AMC !

Même en faisant précéder la commande auto-multiple-choice de
LANG=fr_FR.utf8, il y a un problème d'encodage avec le texte de certaines
parties de l'interface, ainsi que le montre la copie d'écran jointe.


Screenshot_20180903_205802.png (131.5 kB) Denis Bitouzé, 09/03/2018 09:00 pm

Screenshot_20180904_102748.png (58.9 kB) Denis Bitouzé, 09/04/2018 10:29 am

test_locale.pl (501 Bytes) Alexis Bienvenüe, 09/27/2018 09:44 am

Screenshot_20180927_162203.png (57.2 kB) Denis Bitouzé, 09/27/2018 04:25 pm

Screenshot_20180927_162230.png (62.2 kB) Denis Bitouzé, 09/27/2018 04:25 pm


History

Updated by Alexis Bienvenüe over 5 years ago

Quelle est votre environnement et comment avez-vous installé AMC ?

  • Status changed from New to Feedback

Updated by Denis Bitouzé over 5 years ago

Environnement : Linux Mageia 6
Installation : au moyen de auto-multiple-choice_current_precomp.tar.gz.

Updated by Alexis Bienvenüe over 5 years ago

Pouvez-vous essayer avec le fichier auto-multiple-choice_1.4.0-rc1_dist.tar.gz disponible ici ?

Updated by Denis Bitouzé over 5 years ago

Même punition ainsi que le montre la copie d'écran jointe.

Updated by Denis Bitouzé over 5 years ago

Voici un message qui est apparu dans le terminal après avoir lancé la mise à jour des documents, et qui est peut-être lié au problème rencontré :

Unable to open amc-compiled.cs: No such file or directory at /usr/lib/AMC/perl/AMC-prepare.pl line 291.
*** unhandled exception in callback:
***   Cannot decode string with wide characters at /usr/lib/perl5/5.22.3/x86_64-linux-thread-multi/Encode.pm line 243.
***  ignoring at /usr/lib/perl5/vendor_perl/5.22.3/Gtk3.pm line 566.

Updated by Alexis Bienvenüe over 5 years ago

Je ne sais pas pourquoi les choses se passent de manière différente sur Mageia. Pouvez-vous essayer en appliquant le patch suivant au fichier AMC/Basic.pm une fois installé ?

577c577
<     $localisation=Locale::gettext->domain("auto-multiple-choice");
---
>     $localisation=Locale::gettext->domain_raw("auto-multiple-choice");
654c654
< sub __($) { return($localisation->get(shift)); }
---
> sub __($) { my $s=$localisation->get(shift);utf8::decode($s);return($s); }

Updated by Alexis Bienvenüe over 5 years ago

Le problème est peut-être le même que celui signalé ici : https://sourceforge.net/p/gscan2pdf/bugs/230/. Il semblerait que ce soit un patch à Locale::gettext appliqué par Mageia qui en soit la source.

Updated by Denis Bitouzé over 5 years ago

Alexis Bienvenüe wrote:

Je ne sais pas pourquoi les choses se passent de manière différente sur Mageia. Pouvez-vous essayer en appliquant le patch suivant au fichier AMC/Basic.pm une fois installé ?
[...]

Même punition.

Updated by Denis Bitouzé over 5 years ago

Alexis Bienvenüe wrote:

Le problème est peut-être le même que celui signalé ici : https://sourceforge.net/p/gscan2pdf/bugs/230/. Il semblerait que ce soit un patch à Locale::gettext appliqué par Mageia qui en soit la source.

Les symptômes sont effectivement les mêmes que dans ce rapport de bug. En revanche, j'ai l'impression que Mageia a appliqué un patch qui, justement, règle le bug signalé.

Je peux essayer de faire un nouveau rapport de bug à Mageia, mais je crains que l'équipe soit moins encline à le régler car, si AMC est bien packagé pour cette distribution, c'est seulement dans sa version 1.2.1 (qui, d'ailleurs ne fonctionne pas au motif que :

Undefined subroutine &main::proj2abs called at /usr/lib64/AMC/perl/AMC-gui.pl line 819.

mais je ne sais pas si ça vient de mes installations manuelles d'AMC).

Updated by Alexis Bienvenüe over 5 years ago

Même punition.

J'ai installé une mageia6,
  1. téléchargé et extrait les fichiers de l'archive auto-multiple-choice_1.4.0-rc1_dist.tar.gz,
  2. changé la valeur de PERLDIR dans Makefile.conf pour avoir PERLDIR=/usr/lib/perl5/vendor_perl,
  3. compilé avec make,
  4. modifié le fichier AMC-perl/AMC/Basic.pm comme ci-dessus,
  5. installé avec sudo make install

et le problème a disparu chez moi.
Pouvez-vous vérifier que le Basic.pm qui est installé chez vous est bien modifié ?

Updated by Denis Bitouzé over 5 years ago

Alexis Bienvenüe wrote:

J'ai installé une mageia6,
  1. téléchargé et extrait les fichiers de l'archive auto-multiple-choice_1.4.0-rc1_dist.tar.gz,
  2. changé la valeur de PERLDIR dans Makefile.conf pour avoir PERLDIR=/usr/lib/perl5/vendor_perl,
  3. compilé avec make,
  4. modifié le fichier AMC-perl/AMC/Basic.pm comme ci-dessus,
  5. installé avec sudo make install

et le problème a disparu chez moi.
Pouvez-vous vérifier que le Basic.pm qui est installé chez vous est bien modifié ?

Hum, le problème est que je n'ai pas qu'un seul Basic.pm :

$ locate '*AMC/Basic.pm'
/home/bitouze/InstallationsLocales/auto-multiple-choice-1.3.0/AMC-perl/AMC/Basic.pm
/home/bitouze/InstallationsLocales/auto-multiple-choice-1.4.0~rc1/AMC-perl/AMC/Basic.pm
/usr/lib/perl5/5.22.3/AMC/Basic.pm
/usr/lib/perl5/AMC/Basic.pm
/usr/lib/perl5/vendor_perl/AMC/Basic.pm

l'occurrence ...5.22.3... venant de ce que, lors de mes premières installations de AMC, j'avais noté qu'il me fallait modifier la valeur de PERLDIR dans Makefile.conf et que PERLDIR=/usr/lib/perl5/5.22.3 fonctionnait.

Quoi qu'il en soit, j'ai procédé comme vous l'indiquez :

  • en utilisant le dossier .../vendor_perl et en patchant tous les Basic.pm ;
  • en renommant le dossier .AMC.d en .AMC.d-old pour éviter que d'anciennes configurations interfèrent ;

mais la punition est la même.

Peut-être y a-t-il une interférence entre les versions 1.3.0 et 1.4.0~rc1 qui ont été installées successivement (sans désinstallation propre entre les deux).

Updated by Alexis Bienvenüe over 5 years ago

Quelle est votre version de Locale::gettext (à retrouver dans le début du fichier gettext.pm, la mienne est $VERSION = "1.05") ?

Updated by Denis Bitouzé over 5 years ago

Alexis Bienvenüe wrote:

Quelle est votre version de Locale::gettext (à retrouver dans le début du fichier gettext.pm, la mienne est $VERSION = "1.05") ?

Même version :

$ locate gettext.pm
/usr/lib/perl5/vendor_perl/5.22.2/x86_64-linux-thread-multi/Locale/gettext.pm
$ grep '$VERSION =' /usr/lib/perl5/vendor_perl/5.22.2/x86_64-linux-thread-multi/Locale/gettext.pm
$VERSION = "1.05" ;

Updated by Alexis Bienvenüe over 5 years ago

Bon. Je n'arrive pas à reproduire ce problème et je ne sais pas pourquoi…

Updated by Denis Bitouzé over 5 years ago

Alexis Bienvenüe wrote:

Bon. Je n'arrive pas à reproduire ce problème et je ne sais pas pourquoi…

Ça n'est pas trop grave : il est quand même possible de deviner le texte :)

Merci !

Updated by Alexis Bienvenüe over 5 years ago

Pouvez-vous exécuter le petit script ci-joint dans un terminal et me dire ce qu'il affiche ?

Updated by Denis Bitouzé over 5 years ago

Alexis Bienvenüe wrote:

Pouvez-vous exécuter le petit script ci-joint dans un terminal et me dire ce qu'il affiche ?

Voici :

$ perl test_locale.pl                  
* utf8
Des œufs cassés
* simple
Copie des scans dans le r�pertoire projet...
* raw
Copie des scans dans le répertoire projet...
* decode
Copie des scans dans le répertoire projet...

Updated by Denis Bitouzé over 5 years ago

Tiens, ce qui est à l'intérieur de la paire de @ n'a pas été interprété comme du code ?

Updated by Alexis Bienvenüe over 5 years ago

Pour du code sur plusieurs lignes, utiliser

<pre>...</pre>

Updated by Alexis Bienvenüe over 5 years ago

Bon. Je ne vois donc pas pourquoi le patch pour Basic.pm ne fonctionne pas…

Updated by Denis Bitouzé over 5 years ago

Alexis Bienvenüe wrote:

Bon. Je ne vois donc pas pourquoi le patch pour Basic.pm ne fonctionne pas…

Hum ! Je suis vraiment désolé mais il semblerait que je n'avais pas patché tous
les Basic.pm.

En fait, chez moi, cela ne fonctionne que si la valeur par défaut de PERLDIR
dans Makefile.conf est changée en PERLDIR=/usr/lib/perl5/vendor_perl (et
donc pas en PERLDIR=/usr/lib/perl5/vendor_perl).

Cette fois-ci, les problèmes d'accents sont tous résolus... ou presque comme en
attestent les copies d'écran jointes.

Updated by Denis Bitouzé over 5 years ago

Denis Bitouzé wrote:

Alexis Bienvenüe wrote:

Bon. Je ne vois donc pas pourquoi le patch pour Basic.pm ne fonctionne pas…

Hum ! Je suis vraiment désolé mais il semblerait que je n'avais pas patché tous
les Basic.pm.

En fait, chez moi, cela ne fonctionne que si la valeur par défaut de PERLDIR
dans Makefile.conf est changée en PERLDIR=/usr/lib/perl5/vendor_perl (et
donc pas en PERLDIR=/usr/lib/perl5/vendor_perl).

Cette fois-ci, les problèmes d'accents sont tous résolus... ou presque comme en
attestent les copies d'écran jointes.

Hum ! Je voulais dire « changée en PERLDIR=/usr/lib/perl5/5.22.3 (et
donc pas en ... »

Updated by Alexis Bienvenüe over 5 years ago

  • Target version deleted (1.4.0)

Updated by Denis Bitouzé over 4 years ago

Le problème est toujours présent dans le contexte suivant :

  • OS : Linux Mageia 7
  • AMC 1.4.0 (package de la distribution Linux)

Updated by Denis Bitouzé over 3 years ago

Problème réglé en appliquant le patch signalé en commentaire #6 à tous les fichiers suivants (sans trop savoir lequel était le coupable) :

/usr/lib/perl5/5.22.3/AMC/Basic.pm
/usr/lib/perl5/AMC/Basic.pm
/usr/lib/perl5/vendor_perl/AMC/Basic.pm
/usr/share/perl5/vendor_perl/AMC/Basic.pm

Merci !

Updated by Denis Bitouzé over 3 years ago

Curieuse coïncidence : le paquet RPM de AMC a été mis à jour ce matin, écrasant /usr/share/perl5/vendor_perl/AMC/Basic.pm ce qui a conduit à la réapparition du présent bug. Après application du patch à ce fichier, tout est rentré dans l'ordre, ce qui prouve que c'est bien lui le coupable ! :)

Updated by Alexis Bienvenüe about 3 years ago

  • Status changed from Feedback to Closed
  • % Done changed from 0 to 100

Also available in: Atom PDF