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 :
L’internationalisation (I18N) : donne la possibilité à un logiciel de gérer plusieurs paramètres linguistiques ;
La localisation (L10N) : permet au logiciel de prendre en charge des paramètres linguistiques particuliers.
![]() |
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. Ils 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 (consultez Section 8.3.1, « Bases du codage »).
Consultez 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.
The Debian system can be configured to work with many international keyboard
arrangements using the keyboard-configuration
and
console-setup
packages.
# dpkg-reconfigure keyboard-configuration # dpkg-reconfigure console-setup
This configures the keyboard for the Linux console and the X Window updates
configuration parameters in "/etc/default/keyboard
" and
"/etc/default/console-setup
". This also configures the
Linux console font.
Many non-ASCII characters including accented characters used by many European languages can be made available with dead key, AltGr key, and compose key.
For Asian languages, you need more complicated input method support such as IBus discussed next.
Multilingual input to the application is processed as:
Keyboard Application | ^ | | +-> Linux kernel -> Input method -> Gtk, Qt, or X
La configuration de l’entrée multilingue du système Debian est simplifiée
par l’utilisation de la famille de paquets IBus
avec le paquet im-config
. La liste des paquets IBus est
la suivante :
Tableau 8.1. Liste des méthodes d’entrées prises en charge par iBus
paquet | popcon | taille | paramètres linguistiques pris en charge |
---|---|---|---|
ibus | V:7, I:9 | 2170 | infrastructure de méthode d’entrée utilisant dbus |
ibus-mozc | V:1, I:1 | 871 | Japonais |
ibus-anthy | V:1, I:3 | 746 | , , |
ibus-kkc | V:0, I:0 | 266 | , , |
ibus-skk | V:0, I:0 | 230 | , , |
ibus-pinyin | V:1, I:2 | 1452 | Chinois (pour zh_CN) |
ibus-chewing | V:0, I:0 | 325 | , , (pour zh_TW) |
ibus-hangul | V:0, I:1 | 297 | Coréen |
ibus-table | V:1, I:2 | 706 | moteur de tables pour iBus |
ibus-table-thai | I:0 | 143 | Thaï |
ibus-unikey | V:0, I:0 | 276 | Vietnamien |
ibus-m17n | V:0, I:1 | 163 | Multilingue : Indien, Arabe et autres |
La méthode kinput2 et d’autres méthodes d’entrée dépendant des paramètres linguistiques asiatiques classiques existent encore mais ne sont pas recommandées avec l’environnement X UTF-8 moderne. Les chaînes d’outils SCIM et uim sont une approche légèrement plus ancienne de méthode d’entrée internationale de l’environnement X UTF-8 moderne.
J’ai trouvé très utile la méthode d’entrée du japonais lancée depuis un
environnement anglais (« en_US.UTF-8
»). Voici
comment j’ai procédé avec iBus pour GNOME3 :
Installez le paquet d’outil d’entrée du japonais
ibus-anthy
avec ses paquets recommandés comme
im-config
.
Exécutez « im-config
» depuis l’interpréteur de
commandes de l’utilisateur et sélectionnez
« ibus
» comme méthode de saisie.
Sélectionnez "Settings" → "Keyboard" → "Input Sources" → click
"+
" dans "Input Sources" → "Japanese" → "Japanese
(anthy)" et cliquez "Add".
Sélectionnez « Japonais » et cliquez sur « Ajouter » pour activer le support de la disposition de clavier japonnais sans conversion de caractère. (Vous pouvez choisir autant de sources d’entrée que souhaité.)
Reconnectez-vous au compte utilisateur.
Vérifiez le paramétrage par « im-config
».
Spécifiez la source d’entrée par un clic-droit sur l’icône de barre d’outils de l’interface graphique.
Choisissez parmi les sources d’entrée installées avec SUPER+ESPACE. (en général, SUPER désigne la touche Windows)
Veuillez noter ce qui suit :
im-config(8) se comporte différemment selon que la commande est exécutée depuis le compte de l’administrateur ou non.
im-config(8) active la meilleure méthode de saisie sur le système par défaut sans intervention de l’utilisateur.
L’entrée du menu de l’interface graphique pour im-config(8) est désactivée par défaut pour éviter de l’encombrer.
If you wish to input without going through XIM (mechanism used by the X),
set "$XMODIFIERS
" value to "none" while starting a
program. This may be the case if you use Japanese input infrastructure
egg
on
emacs(1)
while disabling ibus
. From shell, execute as the
following.
$ 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 tel 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 gdm3(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
» (consultez Section 1.5.2, « La variable « $LANG
» »).
Le système Debian actuel définit normalement les paramètres linguistiques
avec « LANG=xx_YY.UTF-8
». Cela 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
»).
Le jeu de caractères ASCII est utilisé avec
« LANG=C
» ou
« LANG=POSIX
».
Le système de codage traditionnel sous UNIX est utilisé avec
« 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, consultez Tableau 11.2, « Liste de valeurs de codage et leur utilisation ». |
Unicode character set can represent practically all characters known to human with code point range from 0 to 10FFFF in hexadecimal notation. Its storage requires at least 21 bits.
Text encoding system UTF-8 fits Unicode code points into a sensible 8 bit data stream compatible with the ASCII data processing system. UTF stands for 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_*
» (consultez
locale(1))
avec les paramètres linguistiques UTF-8.
Even plain English text may contain non-ASCII characters, e.g. slightly curly left and right quotation marks are not available in ASCII.
“double quoted text” is not "double quoted ASCII" ‘single quoted text’ is not 'single quoted ASCII'
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. Cela 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.
In order for the system to access a particular locale, the locale data must
be compiled from the locale database. (The Debian system does not come with all available locales pre-compiled
unless you installed the locales-all
package.) The full
list of supported locales available for compiling is available in
"/usr/share/i18n/SUPPORTED
". This lists all the proper
locale names. The following lists all the available UTF-8 locales already
compiled to the binary form.
$ 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 :
mettre à jour la liste des paramètres linguistiques disponibles ;
les compiler sous forme binaire ;
Set the system wide default locale value in
"/etc/default/locale
" for use by PAM (see Section 4.5, « PAM et NSS »)
La liste des paramètres linguistiques disponibles 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é 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étrages.
![]() |
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.
Elle est définie au départ par le mécanisme PAM de login(1) pour les programmes de console locale de Linux
Elle est définie au départ par le mécanisme PAM du gestionnaire d’affichage pour tous les programmes X
Elle est définie au départ par le mécanisme PAM dessh(1) pour les programmes de la console distante
Modifiée par certains gestionnaires d’affichage tels que gdm3(1) pour tous les programmes X
Changed by the X session startup code via "~/.xsessionrc
"
for all X programs
Modifiée par le code de démarrage de l’interpréteur de commandes, par
exemple « ~/.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 (consultez 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. Cela 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 gdm3(1), je sais que l’on peut sélectionner la « locale » de la session X par l’intermédiaire de son memu. |
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/gdm3
» :
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/default/locale-x
» avec les permissions
« -rw-r--r-- 1 root root
» et contenant ce qui
suit :
LANG="ja_JP.UTF-8"
Conservez le fichier « /etc/default/locale
»
suivant par défaut pour les autres programmes :
LANG="en_US.UTF-8"
C’est la technique la plus générique pour personnaliser les paramètres linguistiques et faire que la fenêtre du menu de sélection de gdm3(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 (consultez Section 10.1.7, « 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 pouvez indiquer 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és 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. Consultez Section 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 et 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 messages d’erreur, la sortie standard des programmes,les menus et les pages de manuel. La GNU gettext(1) command tool chain est utilisé comme outil de base pour la plupart des activités de traduction.
Under "Tasks" → "Localization" aptitude(8) provides an extensive list of useful binary packages which add localized messages to applications and provide translated documentation.
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 date de
ls(1)
est affecté par les paramètres linguistiques. Les formats de date de
« LANG=C ls -l
» et
« LANG=en_US.UTF-8
» sont différents (consultez
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é sous la forme « 1,000.1
» alors
qu’avec les paramètres linguistiques allemands ce sera
« 1.000,1
». Vous pouvez voir cette différence
dans un programme de feuille de calculs.