Table des matières
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. Consulter Internationalisation et localisation pour plus de détails. |
Le comportement des programmes prenant en charge l’internationalisation est
configuré par la variable d’environnement « $LANG
» pour
prendre en charge la régionalisation. La prise en charge effective des
fonctionnalités dépendantes des paramètres régionaux par la bibliothèque
libc
nécessite l’installation des paquets
locales
ou locales-all
. Le paquet
locales
doit être initialisé correctement.
Si ni le paquet locales
ni le paquet
locales-all
n’est installé, la prise en charge des
fonctionnalités régionales est impossible et le système utilise des messages
en anglais américain et gère les données en tant que ASCII. Ce comportement est le même que si
« $LANG
» est défini par « LANG=
»,
« LANG=C
» ou « LANG= POSIX
».
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 régionalisés en leur donnant les messages
traduits par l’intermédiaire de l’infrastructure
gettext
(1). Les messages traduits peuvent être fournis
sous forme de paquets de régionalisation séparés.
Le système actuel d'interface graphique du bureau Debian définit normalement
les paramètres régionaux pour l'environnement graphique comme
« LANG=xx_YY.UTF-8
». Ici, « xx
»
correspond aux codes de langue
ISO 639 et « YY
» correspond aux codes de pays ISO 3166. Ces valeurs sont
définies par la boîte de dialogue de configuration de l'interface graphique
de bureau et modifient le comportement du programme. Consulter la Section 1.5.2, « La variable « $LANG
» ».
La représentation la plus simple des données textuelles est en ASCII, ce qui est suffisant pour l'anglais et utilise moins de 127 caractères (représentables avec 7 bits).
Même le texte anglais en texte brut peut contenir des caractères non-ASCII, par exemple les guillemets apostrophes culbutés gauches et droits ne sont pas disponibles en ASCII.
“double quoted text” is not "double quoted ASCII" ‘single quoted text’ is not 'single quoted ASCII'
Afin de prendre en charge un plus grand nombre de caractères, de nombreux jeux de caractères et systèmes de codage ont été utilisés pour prendre en charge beaucoup de langues (consulter le Tableau 11.2, « Liste de valeurs de codage et leur utilisation »).
Le jeu de caractères Unicode peut représenter pratiquement tous les caractères humainement connus avec une plage de points de code de 21 bits (c'est-à-dire de 0 à 10FFFF en notation hexadécimale).
Le système de codage de texte UTF-8 adapte les points de code Unicode dans un flux de données pratique de 8 bits grandement compatible avec le système de traitement de données ASCII. Cela fait de UTF-8 le choix moderne privilégié. UTF signifie Unicode Transformation Format. Lorsque les données en texte brut ASCII sont converties en données UTF-8, elles ont exactement le même contenu et la même taille que l’ASCII originel. Ainsi, vous ne perdez rien en déployant les paramètres régionaux UTF-8.
Sous les paramètres régionaux UTF-8 avec le
programme d’application compatible, vous pouvez afficher et modifier toutes
les données textuelles en langue étrangère tant que les fontes et les
méthodes de saisie requises sont installées et activées. Par exemple avec le
paramètre « LANG=fr_FR. UTF-8
»,
gedit
(1) (éditeur de texte pour le bureau GNOME) peut
afficher et modifier des données de texte en caractères chinois tout en
présentant des menus en français.
Astuce | |
---|---|
Le nouveau paramètre régional standard " |
Note | |
---|---|
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. |
Pour que le système puisse accéder à un paramètre régional particulier, les données de paramètres régionaux doivent être compilées à partir de la base de données de paramètres régionaux.
Le paquet locales
n’est pas fourni avec des données de paramètres régionaux
précompilées. Vous devez le configurer comme suit :
# dpkg-reconfigure locales
Ce processus se déroule en deux étapes :
Sélectionnez toutes les données de paramètres régionaux requis à compiler dans une forme binaire (assurez-vous d’inclure au moins un paramètre régional UTF-8) ;
Définissez la valeur des paramètres linguistiques par défaut pour l’ensemble
du système dans « /etc/default/locale
» pour
une utilisation par PAM (consulter la Section 4.5, « PAM et NSS »).
La valeur des paramètres régionaux par défaut pour l’ensemble du système
définie dans « /etc/default/locale
» peut être remplacée
par la configuration de l’interface graphique pour les applications
graphiques.
Note | |
---|---|
Le système d’encodage traditionnel réel peut être identifié par
« |
Le paquet locales-all
est livré avec les données de
paramètres régionaux pré-compilées pour toutes les données de paramètres
régionaux. Comme il ne crée pas « /etc/default/locale
»,
vous devrez peut-être encore installer le paquet locales
.
Astuce | |
---|---|
Le paquet |
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.
Dans « Tâches » → « Localisation »
aptitude
(8) fournit une liste exhaustive 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 programname
GNU gettext peut s’adapter à la liste de priorité des langues de traduction
avec la variable d’environnement $LANGUAGE
. Par exemple :
$ export LANGUAGE="pt:pt_BR:es:it:fr"
Pour en savoir plus, consultez info gettext
et lisez la
section « The LANGUAGE variable ».
L’ordre de tri des caractères par sort
(1) et
ls
(1) est affecté par la régionalisation. L’export
LANG=en_US.UTF-8
trie dans l’ordre du dictionnaire
A->a->B->b...->Z->z
, tandis que l’export
LANG=C.UTF-8
trie dans l’ordre binaire ASCII
A->B->...->Z->a->b...
.
Le format de date de ls
(1) est affecté par les paramètres
linguistiques (consultez Section 9.3.4, « Affichage personnalisé de la date et de l’heure »).
Le format de date
(1) est affecté par la
régionalisation. Par exemple :
$ unset LC_ALL $ LANG=en_US.UTF-8 date Thu Dec 24 08:30:00 PM JST 2023 $ LANG=en_GB.UTF-8 date Thu 24 Dec 20:30:10 JST 2023 $ LANG=es_ES.UTF-8 date jue 24 dic 2023 20:30:20 JST $ LC_TIME=en_DK.UTF-8 date 2023-12-24T20:30:30 JST
La ponctuation des nombres est différente selon les régions. Par exemple,
dans la langue anglaise, mille virgule un est affiché comme
« 1,000.1
» alors que dans la langue allemande, il est
affiché comme « 1.000,1
». Vous pouvez constater cette
différence dans un tableur.
Chaque caractéristique détaillée de la variable d'environnement
« $LANG
» peut être remplacée en réglant les variables à
« $LC_*
». Ces variables d'environnement peuvent être
remplacées à nouveau par la variable réglée à
« $LC_ALL
». Consultez la page de manuel
locale
(7) pour plus de détails. À moins que vous n'ayez
de bonnes raisons de créer une configuration compliquée, n'utilisez pas ces
variables et utilisez uniquement la variable « $LANG
»
définie à un des paramètres régionaux UTF-8.
Le système Debian peut être configuré pour travailler avec de nombreuses
configurations de clavier internationales en utilisant les paquets
keybord-configuration
et
console-setup
.
# dpkg-reconfigure keyboard-configuration # dpkg-reconfigure console-setup
Pour la console Linux et le système X Window, cela met à jour les paramètres
de configuration dans « /etc/default/keyboard
» et
« /etc/default/console-setup
». Cela configure également
la fonte de la console Linux. De nombreux caractères non ASCII, y compris
les caractères accentués utilisés par de nombreuses langues européennes,
peuvent être disponibles avec les touches
mortes, la touche AltGr et la touche compose.
Pour le système de bureau GNOME avec Wayland, la Section 8.2.1, « La saisie avec le clavier pour la console Linux et X Window » ne peut pas
prendre en charge les langues européennes autres que l’anglais. IBus a été conçu pour prendre en charge non seulement
les langues asiatiques, mais aussi les langues européennes. Les dépendances
du paquet d’environnement de bureau GNOME recommandent
« ibus
» à travers « gnome-shell
». Le
code de « ibus
» a été mis à jour pour intégrer les
fonctionnalités des options setxkbmap
et XKB. Vous devez
configurer ibus
à partir de « Paramètres GNOME » ou
« Réglages GNOME » pour la saisie clavier multilingue.
Note | |
---|---|
Si ibus est actif, votre configuration de clavier X classique avec
|
Étant donné que l'environnement de bureau GNOME recommande
« ibus
» à travers « gnome-shell
»,
« ibus
» est le bon choix comme méthode de saisie.
Les entrées multilingues dans une application sont traitées comme suit :
Keyboard Application | ^ | | +-> Linux kernel -> Input method (ibus) -> Gtk, Qt, X, Wayland +-- Engine--+
La liste des paquets IBus et de ses moteurs est la suivante.
Tableau 8.1. Liste des paquets IBus et de ses moteurs
paquet | popularité | taille | paramètres linguistiques pris en charge |
---|---|---|---|
ibus | V:198, I:245 | 1723 | infrastructure de méthode d’entrée utilisant dbus |
ibus-mozc | V:1, I:3 | 944 | Japonais |
ibus-anthy | V:0, I:1 | 8856 | , , |
ibus-skk | V:0, I:0 | 242 | , , |
ibus-kkc | V:0, I:0 | 210 | , , |
ibus-libpinyin | V:1, I:3 | 2761 | Chinois (pour zh_CN) |
ibus-chewing | V:0, I:0 | 247 | , , (pour zh_TW) |
ibus-libzhuyin | V:0, I:0 | 40995 | , , (pour zh_TW) |
ibus-rime | V:0, I:0 | 73 | , , (for zh_CN/zh_TW) |
ibus-cangjie | V:0, I:0 | 119 | , , (for zh_HK) |
ibus-hangul | V:0, I:2 | 264 | Coréen |
ibus-libthai | I:0 | 90 | Thaï |
ibus-table-thai | I:0 | 58 | Thaï |
ibus-unikey | V:0, I:0 | 318 | Vietnamien |
ibus-keyman | V:0, I:0 | 161 | Multilingue : moteur Keyman pour plus de 2 000 langues |
ibus-table | V:0, I:1 | 2176 | moteur de tables pour iBus |
ibus-m17n | V:0, I:1 | 395 | Multilingue : Indien, Arabe et autres |
plasma-widgets-addons | V:50, I:100 | 1992 | composants graphiques supplémentaires pour Plasma 5 contenant un indicateur de clavier |
Note | |
---|---|
Pour le chinois, « |
J’ai trouvé très utile la méthode de saisie du japonais lancée depuis un
environnement anglais (« en_US.UTF-8
»). Voici
comment j’ai procédé avec iBus pour GNOME avec Wayland :
Installez le paquet d’outil de saisie du japonais
ibus-mozc
(ou ibus-anthy
) avec ses
paquets recommandés tels queim-config
;
Sélectionnez « Settings » → « Keyboard » → « Input Sources » → clic
« +
» dans « Input Sources » → « Japanese » → « Japanese
mozc (anthy) » et cliquez « Add » si ce n’est déjà activé ;
Vous pouvez choisir autant de « Input Sources » que vous le souhaitez ;
Reconnectez-vous au compte utilisateur.
Configurez chaque « Input Source » avec un clic droit sur l’icône de la 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)
Astuce | |
---|---|
Si vous souhaitez avoir accès à l’environnement de clavier alphabétique
uniquement avec le clavier japonais physique sur lequel
shift- |
L'entrée du menu graphique pour im-config
(8) est « Input
method ».
Alternativement, exécutez « im-config
" à partir de
l’interpréteur de commande de l'utilisateur.
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.
La console Linux ne peut afficher qu’un nombre restreint de caractères. Vous
devez avoir un programme de terminal particulier tel que
jfbterm
(1) pour afficher les langues non européennes sur
des consoles autres que la console graphique.
L'environnement graphique (Chapitre 7, Système d’interface graphique) peut afficher n'importe quel caractère en UTF-8 tant que les fontes requises soient installées et activées. L'encodage des données de la fonte originelle est pris en compte et est transparent pour l'utilisateur.
Avec les paramètres régionaux d’Asie de l’Est, le dessin de la boîte, les caractères grecs et cyrilliques peuvent être affichés plus larges que la largeur souhaitée et provoquer une sortie sur le terminal non alignée (consulter l’Annexe n° 11 de la norme Unicode).
Vous pouvez contourner ce problème :
gnome-terminal
: Préférences → Profils → Nom du
profil (Sans nom) → Compatibilité → Caractères de largeur ambigüe
→ Fins ;
ncurses
: paramètre l'environnement export
NCURSES_NO_UTF8_ACS=0
.