Subject: Codage des messages de LilyPond sous Windows

From: John Mandereau <[email-masked]>
Date: Tue, 01 May 2007 13:28:38 +0200

Chers LilyPondeurs,

Si vous utilisez Windows, vous êtes certainement irrités par le mauvais
codage des caractères des messages de LilyPond.  Je vous propose
d'essayer de donner à la variable d'environnement LC_CTYPE une des
valeurs suivantes :

WINDOWS-1252
ISO_8859-15
ISO_8859-15:1998
CP850

Une bonne façon de tester laquelle est appropriée est d'ouvrir une
fenêtre de ligne de commande et pour chaque codage de caractères TOTO
ci-dessus, de lancer les commandes

set LC_CTYPE=TOTO
lilypond

Une fois que vous avez trouvé le bon codage, vous pouvez vérifier que ce
codage est approprié dans d'autres contextes de lecture des messages de
LilyPond (lecture des fichiers .log, utilisation avec JEdit), puis
définir cette variable d'environnement de façon permanente (dans les
propriétés du poste de travail sous Windows XP).

Notez que je n'ai rien testé en pratique, car je n'utilise pas Windows,
je propose simplement des pistes à tester.  Par contre, comme je fais
partie de l'équipe de développement, si vous nous dites quelle version
de Windows vous utilisez et quel codage est approprié pour votre
version, nous pourrons automatiser la définition de LC_CTYPE lors de
l'installation de LilyPond.

Bonne bidouille :-)
-- 
John Mandereau <[email-masked]>

---

From: Jean Argenty <[email-masked]>
Date: Tue, 01 May 2007 18:49:03 +0200

John Mandereau a écrit :
> ------------------------------------------------------------------------
>
> _______________________________________________
> liste de diffusion lilypond-user-fr
> [email-masked]
> http://lists.gnu.org/mailman/listinfo/lilypond-user-fr
>   
Merci John  mais les solutions que tu préconises ne fonctionnent pas 
chez moi. WinXP Pro Pack2, je retrouve à chaque fois les signes 
cabalistiques qui tiennent lieu d'accents. J'ai fait une petite 
recherche et la solution ne me semble pas évidente, je ne l'ai pas 
trouvée en tout cas.

---

From: Gilles THIBAULT <[email-masked]>
Date: Tue, 01 May 2007 22:56:59 +0200

>WinXP Pro Pack2, je retrouve à chaque fois les signes
>cabalistiques qui tiennent lieu d'accents.

Même chose pour XP pack 2 édition familiale.
Et ceci  même en faisant ça "proprement" :
    - modification de la variable système
    - redémarrage de la machine ( ouf  ..pénible).

Dommage ...

Gilles.

---

From: Gilles THIBAULT <[email-masked]>
Date: Wed, 02 May 2007 00:28:44 +0200

>>si vous nous dites quelle version

En mode console, la commande :
    chcp     (change code page)
indique la page code utilisé par XP.
Sous XP pack 2 edition familiale, j'obtiens
"Page de codes active : 850"
(ce qui semblerait correspondre avec CP850 ?).

mais on peut apparemment la changer.

Quel est le code page réclamé par lilypond ?

Gilles

---

From: John Mandereau <[email-masked]>
Date: Wed, 02 May 2007 23:02:25 +0200

>     - redémarrage de la machine ( ouf  ..pénible).

Changer une variable "proprement" ou pas ne devrait pas avoir une
influence sur la prise en compte de cette variable, mais seulement sa
permanence ; j'espérais que cette sutie de commandes produise le
résultat espéré :

set LC_CTYPE=CP850
lilypond

> mais on peut apparemment la changer.

Ce serait formidable de pouvoir définir UTF-8 comme page de code.

chcp /?

peut peut-être donner une indication...

On peut déplorer que l'interpréteur de commandes de Win$ XP en soit
resté à un coadge datant du DOS.  J'espère simplement pour ses
utilisateurs que la dernière mouture du système d'exploitation dominant
a fait un grand pas vers LE codage standard du futur (du présent même
pour certains systèmes) : UTF-8.

> Quel est le code page réclamé par lilypond ?

Les messages traduits de LilyPond sont (ou devraient être) codés en
UTF-8 pour toutes les langues, étant entendu que l'anglais peut se
restreindre à US-ASCII (qui est inclus dans tous les codages que je
propose dans mon premier courriel), et que les messages en français sont
bien codés en UTF-8.

Gettext (la bibliothèque utilisée pour traduire les messages) est censé
changer le codage des messages traduits selon la variable
d'environnement LC_CTYPE, mais ça n'a pas l'air de marcher.

Je propose d'autres pistes :

1)  Dis-moi quelle version de LilyPond tu utilises, et je t'enverrai un
fichier compilé de messages français codé en CP850, pour remplacer celui
fourni avec le programme d'install de Lily.

2)  Utilisez un autre interpréteur de ligne de commandes, qui accepte
UTF-8, comme bash + xterm sous Cygwin (http://cygwin.com )

Bien cordialement

---

From: Gilles THIBAULT <[email-masked]>
Date: Thu, 03 May 2007 09:53:25 +0200

Bon, je crois qu'à force d'écumer le Web et de bidouiller mon système, j'ai 
finalement trouvé ...

Il faut en fait 2 choses :

1) Il ne faut pas choisir pour la console, "polices Raster" (ne me demandez 
pas ce que ça veut dire...)
Pour cela,
- ouvrer une fenêtre console (Excecuter : cmd).
- Cliquer sur la petite icône en haut à gauche
- Sélectionner dans le menu "propriétés"
- Dans l'onglet "polices", choisissez "Lucida Console" puis OK
- Choisissez la 2ème option dans la boîte de dialogue "Appliquer les 
propriétés à"

2)
Taper dans la fenêtre Dos
chcp 65001   (c'est le code page de l'UTF-8 ...)

=> taper lilypond
Les caractères accentués sont reconnus. (Enfin chez moi en tout cas ça 
mache.)

Je suis en train de trouver un moyen pour automatiser le chcp 65001.
Si vous avez une idée...

Gilles

---

From: Gilles THIBAULT <[email-masked]>
Date: Thu, 03 May 2007 12:16:47 +0200

>Je suis en train de trouver un moyen pour automatiser le chcp 65001.

Je voulais dire "chercher" et non "trouver".
Et en fait je crois que c'est impossible à automatiser car je viens de me 
rendre compte
que Windows refuse d'executer tout fichier Batch dans le mode Utf-8.

Si vous faites un fichier batch tout simple avec ces 2 lignes :
        chcp 65001
        lilypond

La 1ère ligne s'execute mais pas la 2nde !!!
Un fichier batch ne s'exécute qu'en code page 850 !

Gilles

---

From: John Mandereau <[email-masked]>
Date: Fri, 04 May 2007 00:00:19 +0200

> que Windows refuse d'executer tout fichier Batch dans le mode Utf-8.

C'est une désagréable surprise.  Est-ce documenté quelque part ?  Est-ce
reporté quelque part sur le Web ?

> Un fichier batch ne s'exécute qu'en code page 850 !

Peut-être le problème pourrait être réglé en fixant la page de code
manière permanente (dans la base de registres, dans autoexec.bat ou
autoexec.nt ou autre...).  Bon, comme je ne suis pas sous Windows, je
vous laisse creuser plus loin et faire part de vos expériences.

Lorsque nous serons fixés sur les différents remèdes à ce problème, nous
pourrons ajouter des instructions dans la doc et/ou modifier le
programme d'installation de LilyPond.

Bon courage

---

From: Gilles THIBAULT <[email-masked]>
Date: Fri, 04 May 2007 18:58:39 +0200

> reporté quelque part sur le Web ?

Oui.
http://blogs.msdn.com/michkap/archive/2006/03/06/544251.aspx
(dans le 2ème commentaire en bas de la page)

A bien tiens justement, dans le dernier commentaire, il donne une astuce que 
je connaissais pas.
Il conseille
chcp 65001 && <your_command>

Je viens d'essayer avec
chcp 65001 && lilypond
dans un fichier batch ...
et ça à l'aire de marcher !!!
Bon je dois partir ce soir, mais j'essaierai de creuser la question ce 
Week-End.

Gilles

---

From: Gilles THIBAULT <[email-masked]>
Date: Sat, 05 May 2007 14:46:31 +0200

Le fichier bat suivant (que j'ai appelé lilywin.bat) semble fonctionner :

@echo off
chcp 65001 > nul &lilypond %1 %2 %3 %4 %5 %6 %7 %8 %9 &chcp 850  > nul

Il change le code page en utf-8 (en empéchant les messages de chcp de 
s'afficher),
appelle lilypond avec les paramètres éventuels (nom de fichier etc),
puis retourne au code page initiale.

Voilà.

Gilles