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 |
|---|---|
|
When auto-mounting a hot-pluggable USB flash drive under modern desktop environment such as GNOME, you may provide such mount option by right clicking the icon on the desktop, click "Drive" tab, click to expand "Setting", and entering "utf8" to "Mount options:". The next time this USB flash drive is mounted, mount with UTF-8 is enabled. |
|
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.
The keyboard system can be configured at different layers of the system.
Linux kernel: keyboard(5)
X server: setxkbmap(1),
xkeyboard-config(5), environment variable
XMODIFIERS
GUI desktop environment: Input Method framework: ibus,
fcitx5
Application: environment variables to set its input source:
GTK_IM_MODULE, QT_IM_MODULE,
QT_IM_MODULES, ...
Input method framework (IM) consists of:
Input method engine (IME): Actual input method
Configuration: Handles the configuration for IBus and other services such as IME
Panel: User interface such as language bar and candidate selection table
Multilingual input to the application is processed roughly as:
Keyboard UI panel Configuration Application
| ^ | | ^ ^
v | v v | |
Linux kernel -> Input method engine (IME) -+-> Gtk, Qt -+ |
| ^ | |
| | +-> X, Wayland -+
v |
IME plugin (ibus-mozc, ...)
The Debian system can be configured to work with many international keyboard
arrangements using the keyboard-configuration package.
# dpkg-reconfigure keyboard-configuration
For the Linux console and the X Window system, this updates configuration
parameters in "/etc/default/keyboard". Many non-ASCII
characters including accented characters used by many European languages can
be made available with dead key, AltGr key, and compose
key.
|
Note |
|---|---|
|
Si ibus est actif, votre configuration de clavier X classique avec
|
Unlike the X Window protocol, the Wayland core protocol doesn't even support
the input of accented characters. Popular Wayland Compositors, such as
Mutter for GNOME or KWin for KDE, implement extension protocols such as the
text-input-unstable-v3 for the text input (see "current Wayland protocols and their
support status").
The text-input-unstable-v3 protocol works well with Input
methods for Wayland (see "Wayland input method project
post-mortem").
Most GUI applications are built with GUI libraries such as GTK or Qt which
support this text-input-unstable-v3.
Popular Input Method Engines (IME), such as IBus
or Fcitx (version 5), can work with
this text-input-unstable-v3.
IMEs support text input for many languages with plugins.
Recent IMEs integrate X Keyboard
Extension (XKB) functionalities such as setxkbmap
previously provided by the X Window to support accented character text input
for European languages for Wayland.
For GNOME, "ibus" is the default IME which is
automatically installed via its package dependency.
Most multilingualized keyboard input features can be configured from "GNOME Settings" or "GNOME Tweaks".
Some multilingualized keyboard input features may need to be configured from
the ibus-setup(1) command.
The emoji keyboard input is available by typing SUPER-. (period) followed by a keyword for each emoji and SPACE-keys.
The list of IBus and its plugin packages are the following.
Tableau 8.1. List of IBus and its plugin packages
| paquet | popularité | taille | paramètres linguistiques pris en charge |
|---|---|---|---|
| ibus | V:213, I:253 | 1828 | infrastructure de méthode d’entrée utilisant dbus |
| ibus-mozc | V:2.1, I:3.8 | 978 | Japonais |
| ibus-anthy | V:0.5, I:1.2 | 8958 | Japonais |
| ibus-skk | V:0.04, I:0.15 | 242 | Japonais |
| ibus-kkc | V:0.03, I:0.19 | 211 | Japonais |
| ibus-libpinyin | V:1.2, I:5.1 | 2767 | Chinois (pour zh_CN) |
| ibus-chewing | V:0.18, I:0.90 | 288 | Chinese (for zh_TW) |
| ibus-libzhuyin | V:0.00, I:0.11 | 41009 | Chinese (for zh_TW) |
| ibus-rime | V:0.27, I:0.49 | 78 | Chinese (for zh_CN/zh_TW) |
| ibus-cangjie | V:0.02, I:0.12 | 235 | Chinese (for zh_HK) |
| ibus-hangul | V:0.3, I:2.0 | 264 | Coréen |
| ibus-libthai | V:0.00, I:0.05 | 84 | Thaï |
| ibus-table-thai | I:0.05 | 59 | Thaï |
| ibus-unikey | V:0.20, I:0.42 | 286 | Vietnamien |
| keyman | I:0.10 | 507 | Multilingual: Keyman plugin for over 2000 languages |
| ibus-table | V:0.08, I:0.99 | 2271 | table plugin for IBus |
| ibus-m17n | V:0.3, I:2.0 | 373 | Multilingue : Indien, Arabe et autres |
The Fcitx (version 5) input method framework is
popular with Chinese users and compatible with "ibus".
The list of "fcitx5" and its plugin packages are the
following.
Tableau 8.2. List of Fcitx5 and its plugin packages
| paquet | popularité | taille | paramètres linguistiques pris en charge |
|---|---|---|---|
| fcitx5 | V:7, I:12 | 761 | input method framework compatible with "ibus" |
| fcitx5-mozc | V:1.0, I:1.6 | 1260 | Japonais |
| fcitx5-anthy | V:0.06, I:0.20 | 808 | Japonais |
| fcitx5-skk | V:0.05, I:0.14 | 369 | Japonais |
| fcitx5-kkc | V:0.00, I:0.06 | 416 | Japonais |
| fcitx5-chinese-addons | I:9.0 | 17 | Chinese (metapackage for zh_*) |
| fcitx5-pinyin | V:3.8, I:9.4 | 1044 | Chinois (pour zh_CN) |
| fcitx5-chewing | V:0.2, I:1.0 | 217 | Chinese (for zh_TW) |
| fcitx5-zhuyin | I:0.06 | 41051 | Chinese (for zh_TW) |
| fcitx5-rime | V:0.44, I:0.84 | 371 | Chinese (for zh_CN/zh_TW) |
| fcitx5-table-cangjie-large | I:0.12 | 1292 | Chinese (for zh_HK) |
| fcitx5-hangul | V:0.09, I:0.23 | 235 | Coréen |
| fcitx5-libthai | I:0.05 | 119 | Thaï |
| fcitx5-table-thai | I:0.08 | 34 | Thaï |
| fcitx5-unikey | V:0.08, I:0.20 | 588 | Vietnamien |
| fcitx5-m17n | V:0.12, I:0.51 | 259 | Multilingue : Indien, Arabe et autres |
| fcitx5-table | V:0.4, I:9.2 | 520 | table plugin for fcitx5 |
| fcitx5-keyman | V:0.03, I:0.04 | 235 | Multilingual: Keyman plugin for over 2000 languages |
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 :
Install the Japanese input tool package ibus-mozc (or
ibus-anthy).
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- |
For Wayland:
The im-config package does nothing and can be removed
safely.
You probably don't need to set environment variables except for the backward compatibility etc.
If you need to set environment variables, create a file such as
~/.config/environment.d/50-input-method.conf to set them.
For X Window:
Install the im-config package.
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.
The Debian system can be configured to work with many international console
arrangements using the console-setup package.
# dpkg-reconfigure console-setup
For the Linux console and the X Window system, this updates configuration
parameters in "/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.
Il existe plusieurs composants pour configurer la console en mode caractères
et les fonctionnalités du système ncurses(3).
Le fichier « /etc/terminfo/*/* »
(terminfo(5))
La variable d’environnement
« $TERM »(term(7))
setterm(1), stty(1),
tic(1) et toe(1)
Si l’entrée terminfo pour xterm ne
fonctionne pas avec un xterm non Debian, changez le type
de terminal dans « $TERM » de
« xterm » pour une version limitée en
fonctionnalités comme « xterm-r6 » lorsque
vous-vous connectez à distance à un système Debian. Consultez
« /usr/share/doc/libncurses5/FAQ » pour
davantage d’informations. « dumb » est le plus
petit dénominateur commun pour « $TERM ».
Under the East Asian locale, the box drawing, Greek, and Cyrillic characters may be displayed wider than your desired width to cause the unaligned terminal output (see Unicode Standard Annex #11, 4.2 Ambiguous Characters).
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.