J'ai pas mal questionné Google, mais j'ai dû mal m'y prendre...
Comment donc faut-il faire pour que Linux boote en français, sachant que je suis en Debian/sarge avec Lilo ?
Merci d'avance.
Qu'est ce que tu entends par booter ?
Les messages du noyau au démarrage ?
Les messages des différents services lancés au démarrage ?
Ou l'interface graphique finale (KDE, Gnome, etc...) ?
Tout ça à la fois !
En fait, c'est partit de la configuration de Gdm : la mire de login est en Anglais. J'ai cherché pour y mettre en français, et le seul truc que j'ai trouvé, c'est d'ajouter une ligne "LC_ALL=fr_FR@euro" (par exemple) dans /etc/init.d/gdm. Cette solution ne me semble pas très propre.
Il doit tout de même bien y avoir un moyen propre, type "The Right Way (tm)", pour que l'ensemble de la séquence de boot se déroule en français, et par conséquent que Gdm se lance également en français.
Les messages du boot du noyau en Français, c'est simple : il faut le traduire. Si tu finis, ca serait sympa que tu fournisses le patch...
Sinon, la solution en dessous est la bonne, en choisissant le francais comme locale par défaut (deuxième question). Reste les messages des services, et là, c'est pas gagné non plus, il faut faire au cas par cas.
Les messages du boot du noyau en Français, c'est simple : il faut le traduire. Si tu finis, ca serait sympa que tu fournisses le patch...
M'étonnerait qu'ils en veuillent. déjà ça ferait un mega-patch, ensuite les libs comme gettext ne sont pas dispos dans le noyau (forcément), et surtout, ça compliquerait terriblement le travail de debug des développeurs à qui on envoie des dmesg et des stacktraces...
Maintenant, pour que tout [ce qui est traduit] s'affiche dans la bonne langue dès après le lancement d'init, ce serait dans /etc/default/i18n (où il faut définir LC_ALL) ou équivalent...
Entièrement d'accord avec toi. Il n'empêche que pour un public averti, ca peut être sympa. Ex : tu mets le noyau par défaut de la Sarge lors de sa sortie, tu te fais un noyau correspondant en francais, et tu gardes le noyau (en faisant quand même les mises à jour de sécu) jusqu'à la prochaine stable !
OK, les msg de boot ne sont pas traduit.
Indépendamment de ça, il doit bien y avoir un moyen de spécifier quelque part LC_ALL=fr_FR@euro de sorte que cela soit pris en compte le plus tôt possible dans la séquence de boot ? La question c'est où...
Par exemple, j'ai trouvé ça sur le net dans un man init, mais ça n'a l'air de marcher que sous Solaris. Dommage...
init and System Booting
When the system is booted, init is invoked and the following
occurs. First, it reads /etc/default/init to set environment
variables. This is typically where TZ (time zone) and
locale-related environments such as LANG or LC_CTYPE get
set.
La version dispo dans debian de GDM est bugguée depuis des lustres et ne gère pas les locales (enfin si mais très mal) et je ne suis toujours pas arrivé à le mettre en français... Visiblement la 2.0.17 (ou un truc comme ça) corrige le problème mais aucun paquet debian ne propose de gdm supérieur à 2.0.7...
Il faut utiliser un petit truc pour démarrer GDM dans la locale désirée. Le plus efficace étant celui-ci :
$ mv /usr/bin/gdm /usr/bin/gdm-binary
ensuite se créer un petit script shell qui va wrapper tout ça : /usr/bin/gdm
-- couper là--
#! /bin/sh
if [ -f /etc/environment ]; then
source /etc/environment
fi
export LANG LANGUAGE LC_ALL
exec /usr/bin/gdm-binary
-- couper là--
ensuite, il suffit de faire un ` kill -TERM gdm && gdm-binary ` ou pour vraiment vérifier que ça marche bien : reboot et cette fois GDM devrait être en français.
Voilà, c'est tout. C'est simple et bidon, mais le mainteneur officiel du paquet GDM (Debian) ne veut pas utiliser ce genre de truc, pour certaines raisons obscures [et en plus il toujours très en retard sur les versions de GDM].
Nota: un script plus propre ne ferait que parcourir le fichier /etc/environment pour y extraire seulement les variables nécessaires ( LANG, LANGUAGE et LC_ALL )
en mettant dans /etc/environment
LANG=fr_FR@euro (ou fr_FR)
tu dois pouvoir franciser tout ce qui est localisable (si les utilisateurs n'ont pas leurs propres réglages LC_*). mais je ne pense pas que lilo puisse être francisé, et encore moins les messages du noyau...
Tu n'aurais pas utilisé l'utilitaire localepurge par hasard ?
Qu'est-ce qui n'est pas en Français ? les pages de mans ? les menus ?
tu as les caractères accentués ? dans les consoles ça marche ? par exemple est-ce que dselect est en Français ? Le display manager est comment ?
Oui j'ai localepurge. Mais il garde le français, bien sûr !
Les process lancés par init ne sont pas en français.
Tout simplement parce que je ne sais pas positionner la variable d'environnement LC_ALL (ni n'importe quelle autre) pour init.
C'est ça la question en fait.
L'idéal serait de pouvoir passer la variable d'environnement LC_ALL à init, père de tous les process.
Cela ne semble pas possible sous Linux.
Sous Solaris, cela peut se faire via le fichier /etc/default/init.
La meilleure solution ensuite semble être "dpkg-reconfigure locales" : le deuxième écran permet de choisir la locale par défaut du système.
Son action se limite cependant à ajouter la ligne "LANG=fr_FR@euro" dans /etc/environment.
Ce que j'ai fait :
Modifié /etc/environment avec "export LC_ALL=fr_FR@euro". Cela ne suffit pas.
Pour Gdm, j'ajoute une ligne ". /etc/environment" au début de /etc/init.d/gdm.
Voilà. Je ne suis pas entièrement satisfait, mais ça devrait pouvoir tourner comme ça.
Merci à tous.
L'intérêt pour moi est savoir s'il y a moyen d'avoir un Linux 100% localisé (au moins au niveau des variables d'environnement, je ne parle pas d'avoir toutes les traductions disponibles) dès le démarrage. La motivation initiale étant de trouver le bon endroit où changer la config une fois pour toutes, histoire de ne pas me disperser.
Cela ne me paraît pas complètement crétin comme idée, d'autres systèmes (Solaris) permettant de le faire (/etc/default/init).
# Re: Booter Linux en francais ?
Posté par lezardbreton . Évalué à 1.
Les messages du noyau au démarrage ?
Les messages des différents services lancés au démarrage ?
Ou l'interface graphique finale (KDE, Gnome, etc...) ?
[^] # Re: Booter Linux en francais ?
Posté par pini . Évalué à 1.
En fait, c'est partit de la configuration de Gdm : la mire de login est en Anglais. J'ai cherché pour y mettre en français, et le seul truc que j'ai trouvé, c'est d'ajouter une ligne "LC_ALL=fr_FR@euro" (par exemple) dans /etc/init.d/gdm. Cette solution ne me semble pas très propre.
Il doit tout de même bien y avoir un moyen propre, type "The Right Way (tm)", pour que l'ensemble de la séquence de boot se déroule en français, et par conséquent que Gdm se lance également en français.
[^] # Re: Booter Linux en francais ?
Posté par lezardbreton . Évalué à 1.
Sinon, la solution en dessous est la bonne, en choisissant le francais comme locale par défaut (deuxième question). Reste les messages des services, et là, c'est pas gagné non plus, il faut faire au cas par cas.
[^] # Re: Booter Linux en francais ?
Posté par Colin Leroy (site web personnel) . Évalué à 1.
M'étonnerait qu'ils en veuillent. déjà ça ferait un mega-patch, ensuite les libs comme gettext ne sont pas dispos dans le noyau (forcément), et surtout, ça compliquerait terriblement le travail de debug des développeurs à qui on envoie des dmesg et des stacktraces...
Maintenant, pour que tout [ce qui est traduit] s'affiche dans la bonne langue dès après le lancement d'init, ce serait dans /etc/default/i18n (où il faut définir LC_ALL) ou équivalent...
[^] # Re: Booter Linux en francais ?
Posté par lezardbreton . Évalué à 1.
[^] # Re: Booter Linux en francais ?
Posté par pini . Évalué à 1.
Indépendamment de ça, il doit bien y avoir un moyen de spécifier quelque part LC_ALL=fr_FR@euro de sorte que cela soit pris en compte le plus tôt possible dans la séquence de boot ? La question c'est où...
[^] # Re: Booter Linux en francais ?
Posté par pini . Évalué à 1.
[^] # Re: Booter Linux en francais ?
Posté par bohwaz . Évalué à 1.
[^] # Re: Booter Linux en francais ?
Posté par Julien Portalier . Évalué à 3.
$ mv /usr/bin/gdm /usr/bin/gdm-binary
ensuite se créer un petit script shell qui va wrapper tout ça : /usr/bin/gdm
-- couper là--
#! /bin/sh
if [ -f /etc/environment ]; then
source /etc/environment
fi
export LANG LANGUAGE LC_ALL
exec /usr/bin/gdm-binary
-- couper là--
ensuite, il suffit de faire un ` kill -TERM gdm && gdm-binary ` ou pour vraiment vérifier que ça marche bien : reboot et cette fois GDM devrait être en français.
Voilà, c'est tout. C'est simple et bidon, mais le mainteneur officiel du paquet GDM (Debian) ne veut pas utiliser ce genre de truc, pour certaines raisons obscures [et en plus il toujours très en retard sur les versions de GDM].
Nota: un script plus propre ne ferait que parcourir le fichier /etc/environment pour y extraire seulement les variables nécessaires ( LANG, LANGUAGE et LC_ALL )
[^] # Re: Booter Linux en francais ?
Posté par Mr F . Évalué à 1.
[^] # Re: Booter Linux en francais ?
Posté par corn . Évalué à 1.
choisir les locales à compiler, choisir la locale par défaut du système, et ça roule...
# Re: Booter Linux en francais ?
Posté par peyo (site web personnel) . Évalué à 2.
dpkg-reconfigure locales :
sélectionner les iso8859-1 ou/et utf-8 français puis fr_FR
et roulez
[^] # Re: Booter Linux en francais ?
Posté par pini . Évalué à 1.
en_US ISO-8859-1
fr_FR ISO-8859-1
fr_FR@euro ISO-8859-15
En gros, je ne veux pas me priver définitivement des locales en_US. Je vais essayer de changer l'ordre mais je suis sceptique quant au résultat.
[^] # Re: Booter Linux en francais ?
Posté par tinodeleste . Évalué à 2.
LANG=fr_FR@euro (ou fr_FR)
tu dois pouvoir franciser tout ce qui est localisable (si les utilisateurs n'ont pas leurs propres réglages LC_*). mais je ne pense pas que lilo puisse être francisé, et encore moins les messages du noyau...
[^] # Re: Booter Linux en francais ?
Posté par pini . Évalué à 1.
[^] # Re: Booter Linux en francais ?
Posté par peyo (site web personnel) . Évalué à 1.
Qu'est-ce qui n'est pas en Français ? les pages de mans ? les menus ?
tu as les caractères accentués ? dans les consoles ça marche ? par exemple est-ce que dselect est en Français ? Le display manager est comment ?
[^] # Re: Booter Linux en francais ?
Posté par pini . Évalué à 1.
Les process lancés par init ne sont pas en français.
Tout simplement parce que je ne sais pas positionner la variable d'environnement LC_ALL (ni n'importe quelle autre) pour init.
C'est ça la question en fait.
[^] # Re: Booter Linux en francais ?
Posté par peyo (site web personnel) . Évalué à 1.
#! /bin/sh
case "$1" in
start)
# tu définis tes variables d'environnement
;;
esac
puis tu linkes depuis /etc/rc2.d
si 2 est bien ton runlevel par défaut.
genre :
$ ln -s /etc/init.d/meslocales /etc/rc2.d/S10meslocales
[^] # Re: Booter Linux en francais ?
Posté par pini . Évalué à 0.
Il me semble que ces scripts (init.d) sont exécutés et non sourcés.
# Re: Booter Linux en francais ?
Posté par pini . Évalué à 1.
Cela ne semble pas possible sous Linux.
Sous Solaris, cela peut se faire via le fichier /etc/default/init.
Son action se limite cependant à ajouter la ligne "LANG=fr_FR@euro" dans /etc/environment.
Modifié /etc/environment avec "export LC_ALL=fr_FR@euro". Cela ne suffit pas.
Pour Gdm, j'ajoute une ligne ". /etc/environment" au début de /etc/init.d/gdm.
Voilà. Je ne suis pas entièrement satisfait, mais ça devrait pouvoir tourner comme ça.
Merci à tous.
[^] # Re: Booter Linux en francais ?
Posté par Mr F . Évalué à 1.
Tu passe des heures à regarder et lire le processus de démarage de ton ordinateur ?
[^] # Re: Booter Linux en francais ?
Posté par pini . Évalué à 1.
L'intérêt pour moi est savoir s'il y a moyen d'avoir un Linux 100% localisé (au moins au niveau des variables d'environnement, je ne parle pas d'avoir toutes les traductions disponibles) dès le démarrage. La motivation initiale étant de trouver le bon endroit où changer la config une fois pour toutes, histoire de ne pas me disperser.
Cela ne me paraît pas complètement crétin comme idée, d'autres systèmes (Solaris) permettant de le faire (/etc/default/init).
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.