Table des matières
$LANG
»Le multilinguisme (M17N) ou la gestion de la langue natale (« Native Language Support ») d'un logiciel applicatif est réalisé en deux étapes :
![]() |
Astuce |
---|---|
Il y a 17, 18, ou 10 lettres entre « m » et « n », « i » et « n » ou « l » et « n » dans « multilingualization », « internationalization » et « localization » ce qui correspond à M17N, I18N, et L10N. |
Des logiciels modernes, tels que GNOME et KDE, gèrent le multilinguisme. Ils
sont internationalisés en les faisant gérer les données UTF-8 et localisés en leur donnant les messages
traduits par l'intermédiaire de l'infrastructure
gettext
(1). Les messages traduits peuvent être offerts
sous forme de paquets de localisation séparés. Il sont simplement
sélectionnés en donnant la valeur du paramètres linguistique approprié à des
variables d'environnement pertinentes.
La représentation la plus simple d'un texte de données est l'ASCII qui suffit à l'anglais et utilise moins de 127 caractères (qui peuvent être représentés avec 7 bits). De manière à pouvoir prendre en compte bien plus de caractères pour l'internationalisation, de nombreux systèmes de codage des caractères ont été inventés. Le système moderne et préféré est UTF-8 qui peut prendre en charge tous les caractères connus des êtres humains (voir Section 8.3.1, « Bases du codage »).
Voir Introduction à i18n pour davantage d'informations.
La prise en charge du matériel international est activée par des données de configuration du matériel localisées.
Le système Debian peut être configuré pour travailler avec de nombreuses configurations de claviers internationaux.
Tableau 8.1. Liste des méthodes de reconfiguration du clavier :
environnement | commande |
---|---|
console LInux |
dpkg-reconfigure --priority=low console-data
|
X Window |
dpkg-reconfigure --priority=low xserver-xorg
|
This supports keyboard input for accented characters of many European languages with its dead-key function. For Asian languages, you need more complicated input method support such as IBus discussed next.
Setup of multilingual input for the Debian system is simplified by using the
IBus family of packages with the
im-switch
package. The list of IBus packages are the
following.
Tableau 8.2. List of input method supports with IBus
paquet | popcon | taille | paramètres linguistiques pris en charge |
---|---|---|---|
ibus * | V:0.11, I:0.2 | 4300 | input method framework using dbus |
ibus-anthy * | V:0.02, I:0.07 | 612 | Japonais |
ibus-skk * | V:0.00, I:0.02 | 352 | , , |
ibus-pinyin * | V:0.05, I:0.08 | 1348 | Chinois (pour zh_CN) |
ibus-chewing * | V:0.00, I:0.02 | 252 | , , (pour zh_TW) |
ibus-hangul * | V:0.00, I:0.01 | 216 | Coréen |
ibus-table * | V:0.04, I:0.08 | 840 | table engine for IBus |
ibus-table-thai * | I:0.00 | 160 | Thaï |
ibus-unikey * | V:0.00, I:0.00 | 316 | Vietnamien |
ibus-m17n * | V:0.02, I:0.03 | 128 | Multilingue : Indic, Arabe et autres |
The kinput2 method and other locale dependent Asian classic input methods still exist but are not recommended for the modern UTF-8 X environment. The SCIM and uim tool chains are an slightly older approach for the international input method for the modern UTF-8 X environment.
I find the Japanese input method started under English environment
("en_US.UTF-8
") very useful. Here is how I did this with
IBus.
ibus-anthy
avec ses paquets recommandés comme im-switch
.
im-switch -c
» depuis l'interpréteur
de commande de l'utilisateur et sélectionnez
« ibus
».
im-switch -l
».
Veuillez noter ce qui suit :
im-switch
(8) se comporte différemment selon que la
commande est exécutée depuis le compte de l'administrateur ou non.
im-switch
dépends des
paramètres linguistiques.
Si vous désirez effectuer une entrée sans passer par XIM, définissez la
valeur de « $XMODIFIERS
» à « none »
lors du lancement d'un programme. Ceci peut être le cas si vous utilisez
l'infrastructure d'entrée japonaise egg
sous
emacs
(1). Depuis l'interpréteur de commandes, lancez ce
qui suit :
$ XMODIFIERS=none emacs
Pour ajuster la commande exécutée par le menu Debian, placez la
configuration personnalisée dans « /etc/menu/
»
en suivant la méthode décrite dans
« /usr/share/doc/menu/html
».
La console Linux ne peut afficher qu'un nombre restreint de
caractères. (Vous devrez avoir un programme de terminal particulier tels que
jfbterm
(1) pour afficher les langues non-européennes sur
des consoles autres que la console X).
Le système X Window peut afficher tous les caractères UTF-8 dès que les données de polices de caractères existent. (Le codage des données de police d'origine est pris en charge par le système X Window de manière transparente pour l'utilisateur).
Ce qui suit met l'accent sur les paramètres linguistiques pour les
applications tournant sous l'environnement X Window lancé par
gdm
(1).
La variable d'environnement « LANG=xx_YY.ZZZZ
»
définit les paramètres linguistiques avec le code de langue
« xx
», le code de pays
« yy
» et le codage
« ZZZZ
» (voir Section 1.5.2, « Variable « $LANG
» »).
Le système Debian actuel définit normalement les paramètres linguistiques
avec « LANG=xx_YY.UTF-8
». Ceci utilise le
codage UTF-8 avec le jeu de caractèresUnicode. Ce système de codage UTF-8 est un système de code multi-octets qui utilise
intelligemment les éléments du code. Les données ASCII, qui sont uniquement constituées de code sur 7
bits, sont toujours des données UTF-8 valables qui ne comportent qu'un octet
par caractère.
Le système Debian précédent définissait habituellement les paramètres
linguistiques avec « LANG=C
» ou
« LANG=xx_YY
» (sans
« .UTF-8
»).
LANG=C
» ou
« LANG=POSIX
».
LANG=xx_YY
».
Le système de codage traditionnel actuel utilisé pour
« LANG=xx_YY
» peut être identifié en vérifiant
« /usr/share/i18n/SUPPORTED
». Par exemple,
« en_US
» utilise le codage
« ISO-8859-1
» et
« fr_FR@euro
» utilise le codage
« ISO-8859-15
.
![]() |
Astuce |
---|---|
Pour la signification des valeurs de codage, voir Tableau 11.2, « Liste de valeurs de codage et leur utilisation ». |
Le codage UTF-8 est le codage moderne et sage pour I18N, il permet la représentation des caractères Unicode, c'est-à-dire de pratiquement tous les caractères humains connus, UTF signifie Format de transformation Unicode (« Unicode Transformation Format »).
Je recommande l'utilisation de paramètres linguistiques UTF-8 pour votre bureau, par exemple
« LANG=fr_FR.UTF-8
». La première partie du
paramètre linguistique (« locale ») détermine comment les messages
seront présentés par les applications. Par exemple,
gedit
(1) (éditeur de texte pour le Bureau GNOME ) avec le
paramètre de langue « LANG=fr_FR.UTF-8
» peut
afficher et éditer des données textuelles avec des caractères chinois tout
en présentant les menus en français, dans la mesure où les polices et les
méthodes d'entrée sont installées.
Je recommande aussi de ne définir que la variable d'environnement
« $LANG
», je ne vois pas beaucoup d'avantages
à définir une combinaison compliquée de variables
« LC_*
» (voir locale
(1))
avec les paramètres linguistiques UTF-8.
Même le texte anglais en texte brut peut contenir des caractères non-ASCII, par exemple les marques de citations gauche et droite ne sont pas disponibles en ASCII.
“texte entre doubles marques de citation” ‘texte entre simples marques de citation’
Lorsque le texte brut ASCII est converti en UTF-8, il a exactement le même contenu et la même taille que le texte original en ASCII. Il n'y a donc rien à perdre en mettant en œuvre des paramètres régionaux UTF-8.
Certains programmes utilisent davantage de mémoire lors de l'utilisation de I18N. Ceci parce qu'ils sont codés avec l'utilisation interne d'UTF-32(UCS4) pour la prise en compte d'Unicode afin d'optimiser la vitesse, ils utilisent 4 octets pour chaque caractère ASCII indépendamment de la « locale » sélectionnée. De nouveau, il n'y a rien à perdre en mettant en œuvre des paramètres linguistiques UTF-8.
Les anciens systèmes de codage propriétaires non UTF-8 tendent à avoir une différence mineure mais ennuyeuse pour certains caractères tels que les caractères graphiques pour de nombreux pays. La mise en œuvre du système UTF-8 sur les systèmes d'exploitation modernes a pratiquement résolu ces problèmes de codage conflictuels.
Pour accéder à un paramètre linguistique particulier, les données de
paramètres linguistiques doivent être compilées dans la base de données des
paramètres linguistiques. (Le système Debian n'est pas distribué avec tous les paramètres
linguistiques précompilés à moins que vous n'ayez installé le paquet
locales-all
). La liste complète des paramètres
linguistiques pris en charge pour être compilés se trouve dans
« /usr/share/i18n/SUPPORTED
». On y trouve la
liste de tous les noms des « locale ». La commande ci-après
affiche la liste de tous les paramètres linguistiques UTF-8 déjà compilés
sous forme binaire :
$ locale -a | grep utf8
L'exécution de la commande suivante va reconfigurer le paquet
locales
:
# dpkg-reconfigure locales
Ce processus se déroule en trois étapes :
/etc/defaults/locale
» pour une
utilisation par PAM (voir Section 4.5, « PAM et NSS »).
La liste des paramètres linguistiques disponible devra comporter
« fr_FR.UTF-8
» et toutes les langues
intéressantes avec « UTF-8
».
Pour l'anglais des USA, le paramètre linguistique recommandés est
« en_US.UTF-8
». Pour les autres langues,
assurez-vous de bien choisir une valeur avec
« UTF-8
» (NdT : prendre
« de_FR.UTF-8
» pour la langue française en
France) . Les caractères internationaux sont tous pris en charge par l'un
quelconque de ces paramétrage.
![]() |
Note |
---|---|
Bien que le paramètre linguistique « |
La valeur de la variable d'environnement
« $LANG
» est définie et modifiée par de
nombreuses applications.
login
(1) pour les programmes de console locale de Linux
ssh
(1)
pour les programmes de la console distante
gdm
(1) pour tous les programmes X
~/.xsessionrc
» pour tous les programmes X
(fonctionnalité de lenny
)
~/.bashrc
», pour tous les programmes de
console
![]() |
Astuce |
---|---|
C'est une bonne idée de définir les paramètres linguistiques par défaut pour
l'ensemble du système à « |
Vous pouvez choisir vos paramètres linguistiques spécifiques sous X Window indépendamment de leur valeur par défaut valable pour l'ensemble du système en utilisant une personnalisation de PAM (voir Section 4.5, « PAM et NSS ») comme suit :.
Cet environnement devrait vous apporter la meilleure expérience d'environnement de bureau stable. Vous avez accès à un terminal en mode caractères fonctionnel avec des messages lisibles même lorsque le système X Window ne fonctionne pas. Ceci devient essentiel pour des langues qui utilisent des caractères non romains tels que le chinois, le japonais et le coréen.
![]() |
Note |
---|---|
Il peut exister une autre manière comme l'amélioration du paquet de gestion
de session de X mais veuillez lire ce qui suit qui est la méthode générique
et basique pour définir les paramètres linguistiques. Pour
|
La ligne suivante définit l'emplacement du fichier de l'environnement de
langue dans le fichier de configuration de PAM, tels que
« /etc/pam.d/gdm
» :
auth required pam_env.so read_env=1 envfile=/etc/default/locale
Modifiez-la avec ce qui suit :
auth required pam_env.so read_env=1 envfile=/etc/default/locale-x
Pour le japonais, créez un fichier
« /etc/defaults/locale-gdm
» avec les
permissions « -rw-r--r-- 1 root root
» et
contenant ce qui suit :
LANG="ja_JP.UTF-8"
Conservez le fichier « /etc/defaults/locale
»
suivant par défaut pour les autre programmes :
LANG="en_US.UTF-8"
C'est la technique la plus générique de personnaliser les paramètres
linguistiques et faire que la fenêtre du menu de sélection de
gdm
(1) lui-même soit affichée dans la bonne langue.
Pour ce cas, vous pouvez aussi simplement modifier les paramètres
linguistiques en utilisant le fichier
« ~/.xsessionrc
».
Pour les échanges de données entre plateformes (voir Section 10.1.10, « Périphériques d'enregistrement amovibles »), il vous faudra peut-être monter
certains systèmes de fichiers ayant un codage particulier. Par exemple,
, la commande mount
(8) pour un système de fichiers vfat suppose que l'on
utilise CP437 si on l'utilise sans option. Vous
devrez fournir les options explicites à mount pour utiliser des noms de
fichiers codés en UTF-8 ou en CP932.
![]() |
Note |
---|---|
Lors du montage automatique d'un clé USB pouvant être branchée à chaud sur un environnement de bureau moderne comme GNOME, vous pouvezindiquer ces options de montage avec un clic-droit sur l'icône du bureau. Cliquez l'onglet « Drive », cliquez « Paramètres » pour l'étendre et entrez « utf8 » dans « Options de montage ». La prochaine fois que vous monterez cette clé mémoire, le montage avec UTF-8 sera activé. |
![]() |
Note |
---|---|
Si vous êtes en train de mettre à jour le système ou de déplacer des disques depuis un ancien système qui n'était pas UTF-8, les noms de fichiers avec des caractères non-ASCII peuvent être codées avec des codages historiques et obsolètes tels que ISO-8859-1 ou eucJP. Veuillez consulter l'aide des outils de conversion de texte pour les convertir en UTF-8. VoirSection 11.1, « Outils de conversion de données textuelles ». |
Samba utilise Unicode pour les clients les plus
récents (Windows NT, 200x, XP) mais utilise par défaut CP850 pour des clients plus anciens (DOS and Windows
9x/Me). Cette valeur par défaut pour les anciens clients peut être modifiée
en utilisant « dos charset
» dans le fichier
« /etc/samba/smb.conf
», par exemple,
avecCP932 pour le japonais.
Il existe des traductions de nombreux messages et documents affichés par le système Debian, comme les message d'erreur, la sortie standard des programmes,les menus et la pages de manuel. La GNU gettext(1) command tool chain est utilisé comme outil de base pour la plupart des activités de traduction.
aptitude
(8) affiche sous « Tâches » →
« Localisation » une liste de paquets binaires utiles qui ajoutent
les traductions de messages aux applications et fournissent de la
documentation traduite.
Vous pouvez, par exemple, obtenir les messages traduits pour une page de
manuel en installant le paquet
manpages-<LANG>
. Pour lire la page de manuel de
<nom_programme> en italien depuis
« /usr/share/man/it/
», lancez le programme de
la manière suivante :
LANG=it_IT.UTF-8 man <nom_programme>
L'ordre de tri des caractères avec sort
(1) est affecté
par le choix de la langue des paramètres linguistiques. Les paramètres
linguistiques espagnol et anglais effectuent le tri de manière différente.
Le format de la date de ls
(1) est affecté par les
paramètres linguistiques . Le format de la date de « LANG=C ls
-l
» et « LANG=en_US.UTF-8
»
sont différents (voir Section 9.2.5, « Affichage personnalisé de la date et de l'heure »).
La ponctuation des nombres est différente selon les paramètres
linguistiques.Par exemple, avec les paramètres linguistiques anglais, Mille
un est affiché la forme « 1,000.1
» alors
qu'avec les paramètres linguistiques
« 1.000,1
». Vous pouvez voir cette différence
dans un programme de feuille de calculs.